aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaolo T <tuscanhobbit@users.noreply.github.com>2014-02-25 16:33:40 +0100
committerPaolo T <tuscanhobbit@users.noreply.github.com>2014-02-25 16:33:40 +0100
commit0a98f6b878ec89be7282621192d9daf80f125e6c (patch)
tree718a4771ce1fb86931531226898b0b5d00e4a337
parent34d30e4d7eb48bd801482531a0d775328bd43ab4 (diff)
parentb1021df485fb6129acda5bba616bac10aea75a45 (diff)
downloadvolse-hubzilla-0a98f6b878ec89be7282621192d9daf80f125e6c.tar.gz
volse-hubzilla-0a98f6b878ec89be7282621192d9daf80f125e6c.tar.bz2
volse-hubzilla-0a98f6b878ec89be7282621192d9daf80f125e6c.zip
Merge pull request #1 from friendica/master
Update this fork
-rwxr-xr-x.gitignore1
-rw-r--r--.htaccess2
-rw-r--r--README.md6
-rw-r--r--assets/diamondlattice.pngbin0 -> 534585 bytes
-rw-r--r--assets/home.html75
-rw-r--r--assets/logo_antiprism.pngbin0 -> 62321 bytes
-rw-r--r--assets/narrow.css218
-rw-r--r--assets/redmatrixlogo.pngbin0 -> 105403 bytes
-rw-r--r--assets/theRedMatrix.pptxbin0 -> 686353 bytes
-rw-r--r--assets/wide.css396
-rwxr-xr-xboot.php119
-rw-r--r--doc/Account-Basics.md4
-rw-r--r--doc/Cloud.md53
-rw-r--r--doc/External-Resources.md27
-rw-r--r--doc/Home.md4
-rw-r--r--doc/Install.md4
-rw-r--r--doc/Profiles.md30
-rw-r--r--doc/Tags-and-Mentions.md12
-rw-r--r--doc/TermsOfService.md4
-rw-r--r--doc/To-Do-Code.md26
-rw-r--r--doc/Translations.md6
-rw-r--r--doc/about.bb24
-rw-r--r--doc/account_basics.bb33
-rw-r--r--doc/api_functions.bb130
-rw-r--r--doc/bbcode.html72
-rw-r--r--doc/campaign.bb234
-rw-r--r--doc/channels.bb27
-rw-r--r--doc/checking_account_quota_usage.bb26
-rw-r--r--doc/cloud.bb25
-rw-r--r--doc/cloud_desktop_clients.bb16
-rw-r--r--doc/comanche.bb146
-rw-r--r--doc/connecting_to_channels.bb17
-rw-r--r--doc/dav_davfs2.md58
-rw-r--r--doc/dav_dolphin.bb9
-rw-r--r--doc/dav_konqueror.bb11
-rw-r--r--doc/dav_mount.bb63
-rw-r--r--doc/dav_nautilus.bb9
-rw-r--r--doc/dav_nemo.bb19
-rw-r--r--doc/dav_windows.bb11
-rw-r--r--doc/de/Home.md43
-rw-r--r--doc/de/Kontengrundlagen.md72
-rw-r--r--doc/de/Profile.md97
-rw-r--r--doc/debian_install.bb29
-rw-r--r--doc/developer_function_primer.bb45
-rw-r--r--doc/developers.bb52
-rw-r--r--doc/external-resource-links.bb22
-rw-r--r--doc/extra_features.bb103
-rw-r--r--doc/features.bb111
-rw-r--r--doc/git_for_non_developers.bb46
-rw-r--r--doc/html/Contact_8php.html14
-rw-r--r--doc/html/account_8php.html21
-rw-r--r--doc/html/account_8php.js1
-rw-r--r--doc/html/achievements_8php.html137
-rw-r--r--doc/html/achievements_8php.js4
-rw-r--r--doc/html/acl__selectors_8php.html4
-rw-r--r--doc/html/annotated.html6
-rw-r--r--doc/html/annotated.js2
-rw-r--r--doc/html/apw_2php_2style_8php.html2
-rw-r--r--doc/html/auth_8php.html25
-rw-r--r--doc/html/auth_8php.js1
-rw-r--r--doc/html/bbcode_8php.html116
-rw-r--r--doc/html/bbcode_8php.js8
-rw-r--r--doc/html/boot_8php.html344
-rw-r--r--doc/html/boot_8php.js11
-rw-r--r--doc/html/channel_8php.html18
-rw-r--r--doc/html/channel_8php.js1
-rw-r--r--doc/html/chatsvc_8php.html173
-rw-r--r--doc/html/chatsvc_8php.js6
-rw-r--r--doc/html/classApp-members.html30
-rw-r--r--doc/html/classApp.html28
-rw-r--r--doc/html/classApp.js2
-rw-r--r--doc/html/classItem-members.html1
-rw-r--r--doc/html/classItem.html26
-rw-r--r--doc/html/classItem.js1
-rw-r--r--doc/html/classRedBasicAuth-members.html13
-rw-r--r--doc/html/classRedBasicAuth.html178
-rw-r--r--doc/html/classRedBasicAuth.js13
-rw-r--r--doc/html/classRedBrowser-members.html123
-rw-r--r--doc/html/classRedBrowser.html284
-rw-r--r--doc/html/classRedBrowser.js9
-rw-r--r--doc/html/classRedBrowser.pngbin0 -> 418 bytes
-rw-r--r--doc/html/classRedDirectory-members.html15
-rw-r--r--doc/html/classRedDirectory.html163
-rw-r--r--doc/html/classRedDirectory.js15
-rw-r--r--doc/html/classRedDirectory.pngbin615 -> 773 bytes
-rw-r--r--doc/html/classRedFile-members.html20
-rw-r--r--doc/html/classRedFile.html143
-rw-r--r--doc/html/classRedFile.js10
-rw-r--r--doc/html/classes.html6
-rw-r--r--doc/html/cloud_8php.html18
-rw-r--r--doc/html/cloud_8php.js3
-rw-r--r--doc/html/comanche_8php.html2
-rw-r--r--doc/html/common_8php.html18
-rw-r--r--doc/html/common_8php.js1
-rw-r--r--doc/html/connections_8php.html20
-rw-r--r--doc/html/connections_8php.js1
-rw-r--r--doc/html/connedit_8php.html193
-rw-r--r--doc/html/connedit_8php.js7
-rw-r--r--doc/html/contact__selectors_8php.html4
-rw-r--r--doc/html/contact__widgets_8php.html27
-rw-r--r--doc/html/contact__widgets_8php.js3
-rw-r--r--doc/html/conversation_8php.html10
-rw-r--r--doc/html/crypto_8php.html6
-rw-r--r--doc/html/datetime_8php.html6
-rw-r--r--doc/html/dba__driver_8php.html6
-rw-r--r--doc/html/dir_24b9ffacd044b9b20a6b863179c605d1.html112
-rw-r--r--doc/html/dir_24b9ffacd044b9b20a6b863179c605d1.js4
-rw-r--r--doc/html/dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.html2
-rw-r--r--doc/html/dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.js3
-rw-r--r--doc/html/dir_817f6d302394b98e59575acdb59998bc.html4
-rw-r--r--doc/html/dir_817f6d302394b98e59575acdb59998bc.js2
-rw-r--r--doc/html/dir__fns_8php.html37
-rw-r--r--doc/html/dir__fns_8php.js2
-rw-r--r--doc/html/dir_b2f003339c516cc00c8cadcafbe82f13.html2
-rw-r--r--doc/html/dir_b2f003339c516cc00c8cadcafbe82f13.js1
-rw-r--r--doc/html/dir_d41ce877eb409a4791b288730010abe2.html38
-rw-r--r--doc/html/dir_d41ce877eb409a4791b288730010abe2.js21
-rw-r--r--doc/html/dir_d44c64559bbebec7f509842c48db8b23.html8
-rw-r--r--doc/html/dir_d44c64559bbebec7f509842c48db8b23.js9
-rw-r--r--doc/html/dirprofile_8php.html137
-rw-r--r--doc/html/dirprofile_8php.js4
-rw-r--r--doc/html/docblox__errorchecker_8php.html4
-rw-r--r--doc/html/extract_8php.html6
-rw-r--r--doc/html/features_8php.html2
-rw-r--r--doc/html/files.html469
-rw-r--r--doc/html/filestorage_8php.html18
-rw-r--r--doc/html/filestorage_8php.js3
-rw-r--r--doc/html/fpostit_8php.html8
-rw-r--r--doc/html/full_8php.html4
-rw-r--r--doc/html/functions.html54
-rw-r--r--doc/html/functions_0x5f.html6
-rw-r--r--doc/html/functions_0x64.html2
-rw-r--r--doc/html/functions_0x67.html26
-rw-r--r--doc/html/functions_0x68.html3
-rw-r--r--doc/html/functions_0x6c.html4
-rw-r--r--doc/html/functions_0x73.html18
-rw-r--r--doc/html/functions_func.html6
-rw-r--r--doc/html/functions_func_0x64.html2
-rw-r--r--doc/html/functions_func_0x67.html26
-rw-r--r--doc/html/functions_func_0x68.html3
-rw-r--r--doc/html/functions_func_0x6c.html4
-rw-r--r--doc/html/functions_func_0x73.html18
-rw-r--r--doc/html/functions_vars.html54
-rw-r--r--doc/html/globals.html63
-rw-r--r--doc/html/globals_0x61.html15
-rw-r--r--doc/html/globals_0x62.html21
-rw-r--r--doc/html/globals_0x63.html72
-rw-r--r--doc/html/globals_0x64.html9
-rw-r--r--doc/html/globals_0x66.html6
-rw-r--r--doc/html/globals_0x67.html34
-rw-r--r--doc/html/globals_0x68.html20
-rw-r--r--doc/html/globals_0x69.html27
-rw-r--r--doc/html/globals_0x6c.html12
-rw-r--r--doc/html/globals_0x6d.html25
-rw-r--r--doc/html/globals_0x6e.html3
-rw-r--r--doc/html/globals_0x6f.html8
-rw-r--r--doc/html/globals_0x70.html29
-rw-r--r--doc/html/globals_0x71.html3
-rw-r--r--doc/html/globals_0x72.html22
-rw-r--r--doc/html/globals_0x73.html42
-rw-r--r--doc/html/globals_0x74.html15
-rw-r--r--doc/html/globals_0x75.html3
-rw-r--r--doc/html/globals_0x76.html3
-rw-r--r--doc/html/globals_0x77.html66
-rw-r--r--doc/html/globals_0x78.html9
-rw-r--r--doc/html/globals_0x7a.html2
-rw-r--r--doc/html/globals_func_0x61.html12
-rw-r--r--doc/html/globals_func_0x62.html21
-rw-r--r--doc/html/globals_func_0x63.html72
-rw-r--r--doc/html/globals_func_0x64.html9
-rw-r--r--doc/html/globals_func_0x66.html6
-rw-r--r--doc/html/globals_func_0x67.html34
-rw-r--r--doc/html/globals_func_0x68.html20
-rw-r--r--doc/html/globals_func_0x69.html23
-rw-r--r--doc/html/globals_func_0x6c.html12
-rw-r--r--doc/html/globals_func_0x6d.html21
-rw-r--r--doc/html/globals_func_0x6e.html3
-rw-r--r--doc/html/globals_func_0x6f.html8
-rw-r--r--doc/html/globals_func_0x70.html18
-rw-r--r--doc/html/globals_func_0x71.html3
-rw-r--r--doc/html/globals_func_0x72.html22
-rw-r--r--doc/html/globals_func_0x73.html42
-rw-r--r--doc/html/globals_func_0x74.html8
-rw-r--r--doc/html/globals_func_0x75.html3
-rw-r--r--doc/html/globals_func_0x76.html3
-rw-r--r--doc/html/globals_func_0x77.html66
-rw-r--r--doc/html/globals_func_0x78.html3
-rw-r--r--doc/html/globals_func_0x7a.html2
-rw-r--r--doc/html/globals_vars.html63
-rw-r--r--doc/html/globals_vars_0x61.html3
-rw-r--r--doc/html/globals_vars_0x69.html3
-rw-r--r--doc/html/globals_vars_0x6d.html6
-rw-r--r--doc/html/globals_vars_0x70.html11
-rw-r--r--doc/html/globals_vars_0x74.html3
-rw-r--r--doc/html/globals_vars_0x78.html6
-rw-r--r--doc/html/help_8php.html4
-rw-r--r--doc/html/hierarchy.html14
-rw-r--r--doc/html/hierarchy.js7
-rw-r--r--doc/html/home_8php.html43
-rw-r--r--doc/html/home_8php.js5
-rw-r--r--doc/html/identity_8php.html210
-rw-r--r--doc/html/identity_8php.js9
-rw-r--r--doc/html/include_2attach_8php.html279
-rw-r--r--doc/html/include_2attach_8php.js4
-rw-r--r--doc/html/include_2bookmarks_8php.html161
-rw-r--r--doc/html/include_2bookmarks_8php.js4
-rw-r--r--doc/html/include_2chat_8php.html277
-rw-r--r--doc/html/include_2chat_8php.js8
-rw-r--r--doc/html/include_2config_8php.html10
-rw-r--r--doc/html/include_2group_8php.html26
-rw-r--r--doc/html/include_2group_8php.js2
-rw-r--r--doc/html/include_2menu_8php.html53
-rw-r--r--doc/html/include_2menu_8php.js4
-rw-r--r--doc/html/include_2message_8php.html8
-rw-r--r--doc/html/include_2network_8php.html10
-rw-r--r--doc/html/include_2photos_8php.html4
-rw-r--r--doc/html/item_8php.html22
-rw-r--r--doc/html/item_8php.js2
-rw-r--r--doc/html/items_8php.html152
-rw-r--r--doc/html/items_8php.js6
-rw-r--r--doc/html/language_8php.html91
-rw-r--r--doc/html/language_8php.js1
-rw-r--r--doc/html/mail_8php.html155
-rw-r--r--doc/html/mail_8php.js5
-rw-r--r--doc/html/minimalisticdarkness_8php.html2
-rw-r--r--doc/html/mod_2bookmarks_8php.html155
-rw-r--r--doc/html/mod_2bookmarks_8php.js5
-rw-r--r--doc/html/mod_2chat_8php.html173
-rw-r--r--doc/html/mod_2chat_8php.js6
-rw-r--r--doc/html/mod_2directory_8php.html18
-rw-r--r--doc/html/mod_2directory_8php.js1
-rw-r--r--doc/html/mod_2group_8php.html18
-rw-r--r--doc/html/mod_2group_8php.js1
-rw-r--r--doc/html/mod_2message_8php.html45
-rw-r--r--doc/html/mod_2message_8php.js4
-rw-r--r--doc/html/mod_2network_8php.html20
-rw-r--r--doc/html/mod_2network_8php.js3
-rw-r--r--doc/html/mod__filestorage_8php.html112
-rw-r--r--doc/html/nav_8php.html2
-rw-r--r--doc/html/navtree.js16
-rw-r--r--doc/html/navtreeindex0.js408
-rw-r--r--doc/html/navtreeindex1.js342
-rw-r--r--doc/html/navtreeindex2.js186
-rw-r--r--doc/html/navtreeindex3.js376
-rw-r--r--doc/html/navtreeindex4.js260
-rw-r--r--doc/html/navtreeindex5.js474
-rw-r--r--doc/html/navtreeindex6.js428
-rw-r--r--doc/html/navtreeindex7.js460
-rw-r--r--doc/html/navtreeindex8.js84
-rw-r--r--doc/html/notes_8php.html137
-rw-r--r--doc/html/notes_8php.js4
-rw-r--r--doc/html/notred_8php.html112
-rw-r--r--doc/html/online_8php.html137
-rw-r--r--doc/html/online_8php.js4
-rw-r--r--doc/html/openid_8php.html137
-rw-r--r--doc/html/openid_8php.js4
-rw-r--r--doc/html/parse__url_8php.html4
-rw-r--r--doc/html/permissions_8php.html6
-rw-r--r--doc/html/photo__driver_8php.html20
-rw-r--r--doc/html/photo__driver_8php.js2
-rw-r--r--doc/html/php2po_8php.html8
-rw-r--r--doc/html/php_2default_8php.html4
-rw-r--r--doc/html/php_2theme__init_8php.html2
-rw-r--r--doc/html/plugin_8php.html75
-rw-r--r--doc/html/plugin_8php.js3
-rw-r--r--doc/html/post_8php.html6
-rw-r--r--doc/html/profile_8php.html18
-rw-r--r--doc/html/profile_8php.js1
-rw-r--r--doc/html/profile__photo_8php.html18
-rw-r--r--doc/html/profile__photo_8php.js1
-rw-r--r--doc/html/profiles_8php.html18
-rw-r--r--doc/html/profiles_8php.js1
-rw-r--r--doc/html/profperm_8php.html18
-rw-r--r--doc/html/profperm_8php.js1
-rw-r--r--doc/html/pubsites_8php.html2
-rw-r--r--doc/html/redbasic_2php_2style_8php.html312
-rw-r--r--doc/html/redbasic_2php_2style_8php.js23
-rw-r--r--doc/html/reddav_8php.html99
-rw-r--r--doc/html/reddav_8php.js10
-rw-r--r--doc/html/search/all_24.js44
-rw-r--r--doc/html/search/all_5f.js2
-rw-r--r--doc/html/search/all_61.js9
-rw-r--r--doc/html/search/all_62.js9
-rw-r--r--doc/html/search/all_63.js35
-rw-r--r--doc/html/search/all_64.js6
-rw-r--r--doc/html/search/all_66.js2
-rw-r--r--doc/html/search/all_67.js24
-rw-r--r--doc/html/search/all_68.js10
-rw-r--r--doc/html/search/all_69.js13
-rw-r--r--doc/html/search/all_6c.js6
-rw-r--r--doc/html/search/all_6d.js19
-rw-r--r--doc/html/search/all_6e.js5
-rw-r--r--doc/html/search/all_6f.js8
-rw-r--r--doc/html/search/all_70.js11
-rw-r--r--doc/html/search/all_71.js2
-rw-r--r--doc/html/search/all_72.js11
-rw-r--r--doc/html/search/all_73.js26
-rw-r--r--doc/html/search/all_74.js3
-rw-r--r--doc/html/search/all_75.js1
-rw-r--r--doc/html/search/all_76.js1
-rw-r--r--doc/html/search/all_77.js22
-rw-r--r--doc/html/search/all_78.js6
-rw-r--r--doc/html/search/all_7a.js2
-rw-r--r--doc/html/search/classes_72.js4
-rw-r--r--doc/html/search/files_61.js4
-rw-r--r--doc/html/search/files_62.js2
-rw-r--r--doc/html/search/files_63.js7
-rw-r--r--doc/html/search/files_64.js1
-rw-r--r--doc/html/search/files_68.js1
-rw-r--r--doc/html/search/files_69.js1
-rw-r--r--doc/html/search/files_6c.js1
-rw-r--r--doc/html/search/files_6d.js6
-rw-r--r--doc/html/search/files_6e.js4
-rw-r--r--doc/html/search/files_6f.js2
-rw-r--r--doc/html/search/files_71.js1
-rw-r--r--doc/html/search/files_72.js1
-rw-r--r--doc/html/search/files_73.js2
-rw-r--r--doc/html/search/files_78.js3
-rw-r--r--doc/html/search/functions_5f.js2
-rw-r--r--doc/html/search/functions_61.js4
-rw-r--r--doc/html/search/functions_62.js7
-rw-r--r--doc/html/search/functions_63.js26
-rw-r--r--doc/html/search/functions_64.js5
-rw-r--r--doc/html/search/functions_66.js2
-rw-r--r--doc/html/search/functions_67.js22
-rw-r--r--doc/html/search/functions_68.js9
-rw-r--r--doc/html/search/functions_69.js9
-rw-r--r--doc/html/search/functions_6c.js5
-rw-r--r--doc/html/search/functions_6d.js11
-rw-r--r--doc/html/search/functions_6e.js1
-rw-r--r--doc/html/search/functions_6f.js4
-rw-r--r--doc/html/search/functions_70.js6
-rw-r--r--doc/html/search/functions_71.js1
-rw-r--r--doc/html/search/functions_72.js8
-rw-r--r--doc/html/search/functions_73.js22
-rw-r--r--doc/html/search/functions_74.js2
-rw-r--r--doc/html/search/functions_75.js1
-rw-r--r--doc/html/search/functions_76.js1
-rw-r--r--doc/html/search/functions_77.js22
-rw-r--r--doc/html/search/functions_78.js3
-rw-r--r--doc/html/search/functions_7a.js2
-rw-r--r--doc/html/search/variables_24.js44
-rw-r--r--doc/html/search/variables_61.js1
-rw-r--r--doc/html/search/variables_69.js3
-rw-r--r--doc/html/search/variables_6d.js4
-rw-r--r--doc/html/search/variables_70.js5
-rw-r--r--doc/html/search/variables_74.js1
-rw-r--r--doc/html/search/variables_78.js4
-rw-r--r--doc/html/search_8php.html37
-rw-r--r--doc/html/search_8php.js4
-rw-r--r--doc/html/security_8php.html12
-rw-r--r--doc/html/settings_8php.html18
-rw-r--r--doc/html/settings_8php.js1
-rw-r--r--doc/html/setup_8php.html22
-rw-r--r--doc/html/setup_8php.js1
-rw-r--r--doc/html/socgraph_8php.html4
-rw-r--r--doc/html/spam_8php.html165
-rw-r--r--doc/html/spam_8php.js5
-rw-r--r--doc/html/sslify_8php.html137
-rw-r--r--doc/html/sslify_8php.js4
-rw-r--r--doc/html/suggest_8php.html18
-rw-r--r--doc/html/suggest_8php.js1
-rw-r--r--doc/html/taxonomy_8php.html49
-rw-r--r--doc/html/taxonomy_8php.js3
-rw-r--r--doc/html/text_8php.html203
-rw-r--r--doc/html/text_8php.js10
-rw-r--r--doc/html/theme_2blogga_2php_2default_8php.html4
-rw-r--r--doc/html/theme_2blogga_2view_2theme_2blog_2default_8php.html6
-rw-r--r--doc/html/tpldebug_8php.html4
-rw-r--r--doc/html/typo_8php.html2
-rw-r--r--doc/html/typohelper_8php.html2
-rw-r--r--doc/html/viewconnections_8php.html18
-rw-r--r--doc/html/viewconnections_8php.js1
-rw-r--r--doc/html/widgets_8php.html399
-rw-r--r--doc/html/widgets_8php.js24
-rw-r--r--doc/html/xref_8php.html137
-rw-r--r--doc/html/xref_8php.js4
-rw-r--r--doc/html/zfinger_8php.html2
-rw-r--r--doc/html/zot_8php.html42
-rw-r--r--doc/html/zot_8php.js2
-rw-r--r--doc/install.bb103
-rw-r--r--doc/install/sample-lighttpd.conf2
-rw-r--r--doc/install/sample-nginx.conf8
-rw-r--r--doc/intro_for_developers.bb99
-rw-r--r--doc/main.bb59
-rw-r--r--doc/permissions.bb97
-rw-r--r--doc/plugins.bb257
-rw-r--r--doc/problems-following-an-update.bb37
-rw-r--r--doc/profiles.bb33
-rw-r--r--doc/red2pi.bb349
-rw-r--r--doc/remove_account.bb17
-rw-r--r--doc/schema_development.bb74
-rw-r--r--doc/tags_and_mentions.bb23
-rw-r--r--doc/to_do_code.bb51
-rw-r--r--doc/to_do_doco.bb21
-rw-r--r--doc/troubleshooting.bb5
-rw-r--r--doc/webpages.bb13
-rw-r--r--doc/what_is_zot.bb61
-rw-r--r--images/default_profile_photos/blank/175.jpgbin0 -> 910 bytes
-rw-r--r--images/default_profile_photos/blank/48.jpgbin0 -> 566 bytes
-rw-r--r--images/default_profile_photos/blank/80.jpgbin0 -> 614 bytes
-rw-r--r--images/default_profile_photos/red_koala/175.jpgbin0 -> 22969 bytes
-rw-r--r--images/default_profile_photos/red_koala/48.jpgbin0 -> 4856 bytes
-rw-r--r--images/default_profile_photos/red_koala/80.jpgbin0 -> 9105 bytes
-rw-r--r--include/Contact.php30
-rw-r--r--include/ItemObject.php20
-rw-r--r--include/account.php60
-rw-r--r--include/acl_selectors.php2
-rw-r--r--include/activities.php2
-rw-r--r--include/api.php58
-rw-r--r--include/attach.php367
-rw-r--r--include/auth.php50
-rw-r--r--include/bbcode.php256
-rw-r--r--include/bookmarks.php85
-rw-r--r--include/chat.php184
-rw-r--r--include/config.php8
-rw-r--r--include/contact_selectors.php2
-rw-r--r--include/contact_widgets.php3
-rw-r--r--include/conversation.php91
-rw-r--r--include/crypto.php4
-rw-r--r--include/deliver.php1
-rw-r--r--include/dir_fns.php26
-rw-r--r--include/directory.php11
-rw-r--r--include/enotify.php13
-rw-r--r--include/event.php22
-rw-r--r--include/features.php11
-rw-r--r--include/follow.php131
-rw-r--r--include/group.php32
-rw-r--r--include/identity.php274
-rwxr-xr-xinclude/items.php400
-rw-r--r--include/js_strings.php27
-rw-r--r--include/language.php171
-rw-r--r--include/menu.php74
-rw-r--r--include/nav.php16
-rw-r--r--include/network.php10
-rw-r--r--include/notifier.php24
-rwxr-xr-xinclude/oembed.php31
-rw-r--r--include/permissions.php24
-rw-r--r--include/photo/photo_driver.php72
-rw-r--r--include/photos.php37
-rwxr-xr-xinclude/plugin.php42
-rw-r--r--include/poller.php34
-rw-r--r--include/reddav.php1070
-rw-r--r--include/security.php108
-rw-r--r--include/session.php9
-rw-r--r--include/spam.php35
-rw-r--r--include/taxonomy.php95
-rwxr-xr-xinclude/text.php188
-rw-r--r--include/widgets.php296
-rw-r--r--include/zot.php155
-rwxr-xr-xindex.php35
-rw-r--r--install/INSTALL.txt6
-rw-r--r--install/database.sql94
-rwxr-xr-xinstall/htconfig.sample.php2
-rw-r--r--install/update.php183
-rwxr-xr-xlibrary/bootstrap-datetimepicker/css/bootstrap-datetimepicker.css174
-rwxr-xr-xlibrary/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css8
-rwxr-xr-xlibrary/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js28
-rw-r--r--library/bootstrap-datetimepicker/js/moment.js7063
-rw-r--r--library/bootstrap/css/bootstrap-theme.css282
-rw-r--r--library/bootstrap/css/bootstrap-theme.min.css8
-rw-r--r--library/bootstrap/css/bootstrap.css3853
-rw-r--r--library/bootstrap/css/bootstrap.min.css8
-rw-r--r--library/bootstrap/fonts/glyphicons-halflings-regular.eotbin20290 -> 20335 bytes
-rw-r--r--library/bootstrap/fonts/glyphicons-halflings-regular.svg94
-rw-r--r--library/bootstrap/fonts/glyphicons-halflings-regular.ttfbin41236 -> 41280 bytes
-rw-r--r--library/bootstrap/fonts/glyphicons-halflings-regular.woffbin23292 -> 23320 bytes
-rw-r--r--library/bootstrap/js/bootstrap.js517
-rw-r--r--library/bootstrap/js/bootstrap.min.js9
-rw-r--r--library/jqupload/.gitignore3
-rw-r--r--library/jqupload/.jshintrc81
-rw-r--r--library/jqupload/CONTRIBUTING.md42
-rw-r--r--library/jqupload/Gruntfile.js37
-rw-r--r--library/jqupload/README.md123
-rw-r--r--library/jqupload/angularjs.html211
-rw-r--r--library/jqupload/basic-plus.html226
-rw-r--r--library/jqupload/basic.html136
-rw-r--r--library/jqupload/blueimp-file-upload.jquery.json50
-rw-r--r--library/jqupload/bower.json85
-rw-r--r--library/jqupload/cors/postmessage.html75
-rw-r--r--library/jqupload/cors/result.html24
-rw-r--r--library/jqupload/css/demo-ie8.css21
-rw-r--r--library/jqupload/css/demo.css67
-rw-r--r--library/jqupload/css/jquery.fileupload-noscript.css22
-rw-r--r--library/jqupload/css/jquery.fileupload-ui-noscript.css17
-rw-r--r--library/jqupload/css/jquery.fileupload-ui.css57
-rw-r--r--library/jqupload/css/jquery.fileupload.css36
-rw-r--r--library/jqupload/css/style.css15
-rw-r--r--library/jqupload/img/loading.gifbin0 -> 3897 bytes
-rw-r--r--library/jqupload/img/progressbar.gifbin0 -> 3323 bytes
-rw-r--r--library/jqupload/index.html255
-rw-r--r--library/jqupload/jquery-ui.html250
-rw-r--r--library/jqupload/js/app.js101
-rw-r--r--library/jqupload/js/cors/jquery.postmessage-transport.js117
-rw-r--r--library/jqupload/js/cors/jquery.xdr-transport.js86
-rw-r--r--library/jqupload/js/jquery.fileupload-angular.js428
-rw-r--r--library/jqupload/js/jquery.fileupload-audio.js106
-rw-r--r--library/jqupload/js/jquery.fileupload-image.js309
-rwxr-xr-xlibrary/jqupload/js/jquery.fileupload-jquery-ui.js144
-rw-r--r--library/jqupload/js/jquery.fileupload-process.js172
-rw-r--r--library/jqupload/js/jquery.fileupload-ui.js701
-rw-r--r--library/jqupload/js/jquery.fileupload-validate.js119
-rw-r--r--library/jqupload/js/jquery.fileupload-video.js106
-rw-r--r--library/jqupload/js/jquery.fileupload.js1420
-rw-r--r--library/jqupload/js/jquery.iframe-transport.js214
-rw-r--r--library/jqupload/js/main.js75
-rw-r--r--library/jqupload/js/vendor/jquery.ui.widget.js530
-rw-r--r--library/jqupload/package.json54
-rw-r--r--library/jqupload/server/gae-go/app.yaml12
-rw-r--r--library/jqupload/server/gae-go/app/main.go296
-rw-r--r--library/jqupload/server/gae-go/static/robots.txt2
-rw-r--r--library/jqupload/server/gae-python/app.yaml16
-rw-r--r--library/jqupload/server/gae-python/main.py170
-rw-r--r--library/jqupload/server/gae-python/static/robots.txt2
-rw-r--r--library/jqupload/server/node/.gitignore2
-rw-r--r--library/jqupload/server/node/package.json41
-rw-r--r--library/jqupload/server/node/public/files/.gitignore2
-rwxr-xr-xlibrary/jqupload/server/node/server.js292
-rw-r--r--library/jqupload/server/node/tmp/.gitignore0
-rw-r--r--library/jqupload/server/php/UploadHandler.php1329
-rw-r--r--library/jqupload/server/php/files/.gitignore3
-rw-r--r--library/jqupload/server/php/files/.htaccess18
-rw-r--r--library/jqupload/server/php/index.php19
-rw-r--r--library/jqupload/test/index.html166
-rw-r--r--library/jqupload/test/test.js1288
-rw-r--r--library/openid/README49
-rw-r--r--library/openid/example-google.php24
-rw-r--r--library/openid/example.php23
-rw-r--r--library/openid/openid.php (renamed from library/openid.php)268
-rw-r--r--library/openid/provider/example-mysql.php194
-rw-r--r--library/openid/provider/example.php53
-rw-r--r--library/openid/provider/provider.php845
-rw-r--r--library/phpqrcode/CHANGELOG38
-rw-r--r--library/phpqrcode/INSTALL67
-rw-r--r--library/phpqrcode/LICENSE165
-rw-r--r--library/phpqrcode/README45
-rw-r--r--library/phpqrcode/VERSION2
-rw-r--r--library/phpqrcode/bindings/tcpdf/qrcode.php2875
-rw-r--r--library/phpqrcode/cache/frame_1.dat2
-rw-r--r--library/phpqrcode/cache/frame_1.pngbin0 -> 126 bytes
-rw-r--r--library/phpqrcode/cache/frame_10.datbin0 -> 204 bytes
-rw-r--r--library/phpqrcode/cache/frame_10.pngbin0 -> 202 bytes
-rw-r--r--library/phpqrcode/cache/frame_11.datbin0 -> 210 bytes
-rw-r--r--library/phpqrcode/cache/frame_11.pngbin0 -> 205 bytes
-rw-r--r--library/phpqrcode/cache/frame_12.datbin0 -> 222 bytes
-rw-r--r--library/phpqrcode/cache/frame_12.pngbin0 -> 216 bytes
-rw-r--r--library/phpqrcode/cache/frame_13.datbin0 -> 223 bytes
-rw-r--r--library/phpqrcode/cache/frame_13.pngbin0 -> 210 bytes
-rw-r--r--library/phpqrcode/cache/frame_14.datbin0 -> 227 bytes
-rw-r--r--library/phpqrcode/cache/frame_14.pngbin0 -> 213 bytes
-rw-r--r--library/phpqrcode/cache/frame_15.datbin0 -> 242 bytes
-rw-r--r--library/phpqrcode/cache/frame_15.pngbin0 -> 219 bytes
-rw-r--r--library/phpqrcode/cache/frame_16.dat1
-rw-r--r--library/phpqrcode/cache/frame_16.pngbin0 -> 211 bytes
-rw-r--r--library/phpqrcode/cache/frame_17.datbin0 -> 237 bytes
-rw-r--r--library/phpqrcode/cache/frame_17.pngbin0 -> 211 bytes
-rw-r--r--library/phpqrcode/cache/frame_18.dat2
-rw-r--r--library/phpqrcode/cache/frame_18.pngbin0 -> 228 bytes
-rw-r--r--library/phpqrcode/cache/frame_19.dat3
-rw-r--r--library/phpqrcode/cache/frame_19.pngbin0 -> 225 bytes
-rw-r--r--library/phpqrcode/cache/frame_2.dat1
-rw-r--r--library/phpqrcode/cache/frame_2.pngbin0 -> 144 bytes
-rw-r--r--library/phpqrcode/cache/frame_20.datbin0 -> 250 bytes
-rw-r--r--library/phpqrcode/cache/frame_20.pngbin0 -> 225 bytes
-rw-r--r--library/phpqrcode/cache/frame_21.dat1
-rw-r--r--library/phpqrcode/cache/frame_21.pngbin0 -> 235 bytes
-rw-r--r--library/phpqrcode/cache/frame_22.dat3
-rw-r--r--library/phpqrcode/cache/frame_22.pngbin0 -> 226 bytes
-rw-r--r--library/phpqrcode/cache/frame_23.dat3
-rw-r--r--library/phpqrcode/cache/frame_23.pngbin0 -> 220 bytes
-rw-r--r--library/phpqrcode/cache/frame_24.dat1
-rw-r--r--library/phpqrcode/cache/frame_24.pngbin0 -> 242 bytes
-rw-r--r--library/phpqrcode/cache/frame_25.dat3
-rw-r--r--library/phpqrcode/cache/frame_25.pngbin0 -> 242 bytes
-rw-r--r--library/phpqrcode/cache/frame_26.dat2
-rw-r--r--library/phpqrcode/cache/frame_26.pngbin0 -> 244 bytes
-rw-r--r--library/phpqrcode/cache/frame_27.datbin0 -> 284 bytes
-rw-r--r--library/phpqrcode/cache/frame_27.pngbin0 -> 237 bytes
-rw-r--r--library/phpqrcode/cache/frame_28.datbin0 -> 318 bytes
-rw-r--r--library/phpqrcode/cache/frame_28.pngbin0 -> 234 bytes
-rw-r--r--library/phpqrcode/cache/frame_29.dat2
-rw-r--r--library/phpqrcode/cache/frame_29.pngbin0 -> 232 bytes
-rw-r--r--library/phpqrcode/cache/frame_3.dat1
-rw-r--r--library/phpqrcode/cache/frame_3.pngbin0 -> 147 bytes
-rw-r--r--library/phpqrcode/cache/frame_30.datbin0 -> 324 bytes
-rw-r--r--library/phpqrcode/cache/frame_30.pngbin0 -> 255 bytes
-rw-r--r--library/phpqrcode/cache/frame_31.dat1
-rw-r--r--library/phpqrcode/cache/frame_31.pngbin0 -> 260 bytes
-rw-r--r--library/phpqrcode/cache/frame_32.dat2
-rw-r--r--library/phpqrcode/cache/frame_32.pngbin0 -> 262 bytes
-rw-r--r--library/phpqrcode/cache/frame_33.dat14
-rw-r--r--library/phpqrcode/cache/frame_33.pngbin0 -> 253 bytes
-rw-r--r--library/phpqrcode/cache/frame_34.datbin0 -> 331 bytes
-rw-r--r--library/phpqrcode/cache/frame_34.pngbin0 -> 256 bytes
-rw-r--r--library/phpqrcode/cache/frame_35.datbin0 -> 342 bytes
-rw-r--r--library/phpqrcode/cache/frame_35.pngbin0 -> 243 bytes
-rw-r--r--library/phpqrcode/cache/frame_36.datbin0 -> 370 bytes
-rw-r--r--library/phpqrcode/cache/frame_36.pngbin0 -> 272 bytes
-rw-r--r--library/phpqrcode/cache/frame_37.datbin0 -> 376 bytes
-rw-r--r--library/phpqrcode/cache/frame_37.pngbin0 -> 279 bytes
-rw-r--r--library/phpqrcode/cache/frame_38.dat1
-rw-r--r--library/phpqrcode/cache/frame_38.pngbin0 -> 279 bytes
-rw-r--r--library/phpqrcode/cache/frame_39.datbin0 -> 404 bytes
-rw-r--r--library/phpqrcode/cache/frame_39.pngbin0 -> 264 bytes
-rw-r--r--library/phpqrcode/cache/frame_4.dat1
-rw-r--r--library/phpqrcode/cache/frame_4.pngbin0 -> 149 bytes
-rw-r--r--library/phpqrcode/cache/frame_40.dat2
-rw-r--r--library/phpqrcode/cache/frame_40.pngbin0 -> 267 bytes
-rw-r--r--library/phpqrcode/cache/frame_5.dat1
-rw-r--r--library/phpqrcode/cache/frame_5.pngbin0 -> 150 bytes
-rw-r--r--library/phpqrcode/cache/frame_6.datbin0 -> 132 bytes
-rw-r--r--library/phpqrcode/cache/frame_6.pngbin0 -> 151 bytes
-rw-r--r--library/phpqrcode/cache/frame_7.datbin0 -> 196 bytes
-rw-r--r--library/phpqrcode/cache/frame_7.pngbin0 -> 189 bytes
-rw-r--r--library/phpqrcode/cache/frame_8.datbin0 -> 201 bytes
-rw-r--r--library/phpqrcode/cache/frame_8.pngbin0 -> 204 bytes
-rw-r--r--library/phpqrcode/cache/frame_9.datbin0 -> 206 bytes
-rw-r--r--library/phpqrcode/cache/frame_9.pngbin0 -> 199 bytes
-rw-r--r--library/phpqrcode/cache/mask_0/mask_101_0.datbin0 -> 157 bytes
-rw-r--r--library/phpqrcode/cache/mask_0/mask_105_0.datbin0 -> 162 bytes
-rw-r--r--library/phpqrcode/cache/mask_0/mask_109_0.dat2
-rw-r--r--library/phpqrcode/cache/mask_0/mask_113_0.dat2
-rw-r--r--library/phpqrcode/cache/mask_0/mask_117_0.dat2
-rw-r--r--library/phpqrcode/cache/mask_0/mask_121_0.dat1
-rw-r--r--library/phpqrcode/cache/mask_0/mask_125_0.dat2
-rw-r--r--library/phpqrcode/cache/mask_0/mask_129_0.dat2
-rw-r--r--library/phpqrcode/cache/mask_0/mask_133_0.dat2
-rw-r--r--library/phpqrcode/cache/mask_0/mask_137_0.dat1
-rw-r--r--library/phpqrcode/cache/mask_0/mask_141_0.dat2
-rw-r--r--library/phpqrcode/cache/mask_0/mask_145_0.dat2
-rw-r--r--library/phpqrcode/cache/mask_0/mask_149_0.dat3
-rw-r--r--library/phpqrcode/cache/mask_0/mask_153_0.dat1
-rw-r--r--library/phpqrcode/cache/mask_0/mask_157_0.dat2
-rw-r--r--library/phpqrcode/cache/mask_0/mask_161_0.datbin0 -> 241 bytes
-rw-r--r--library/phpqrcode/cache/mask_0/mask_165_0.dat2
-rw-r--r--library/phpqrcode/cache/mask_0/mask_169_0.dat2
-rw-r--r--library/phpqrcode/cache/mask_0/mask_173_0.dat1
-rw-r--r--library/phpqrcode/cache/mask_0/mask_177_0.dat2
-rw-r--r--library/phpqrcode/cache/mask_0/mask_21_0.datbin0 -> 48 bytes
-rw-r--r--library/phpqrcode/cache/mask_0/mask_25_0.datbin0 -> 57 bytes
-rw-r--r--library/phpqrcode/cache/mask_0/mask_29_0.datbin0 -> 59 bytes
-rw-r--r--library/phpqrcode/cache/mask_0/mask_33_0.datbin0 -> 62 bytes
-rw-r--r--library/phpqrcode/cache/mask_0/mask_37_0.datbin0 -> 65 bytes
-rw-r--r--library/phpqrcode/cache/mask_0/mask_41_0.datbin0 -> 68 bytes
-rw-r--r--library/phpqrcode/cache/mask_0/mask_45_0.datbin0 -> 106 bytes
-rw-r--r--library/phpqrcode/cache/mask_0/mask_49_0.dat2
-rw-r--r--library/phpqrcode/cache/mask_0/mask_53_0.dat2
-rw-r--r--library/phpqrcode/cache/mask_0/mask_57_0.dat4
-rw-r--r--library/phpqrcode/cache/mask_0/mask_61_0.datbin0 -> 119 bytes
-rw-r--r--library/phpqrcode/cache/mask_0/mask_65_0.datbin0 -> 123 bytes
-rw-r--r--library/phpqrcode/cache/mask_0/mask_69_0.dat1
-rw-r--r--library/phpqrcode/cache/mask_0/mask_73_0.dat1
-rw-r--r--library/phpqrcode/cache/mask_0/mask_77_0.dat2
-rw-r--r--library/phpqrcode/cache/mask_0/mask_81_0.dat2
-rw-r--r--library/phpqrcode/cache/mask_0/mask_85_0.dat2
-rw-r--r--library/phpqrcode/cache/mask_0/mask_89_0.dat1
-rw-r--r--library/phpqrcode/cache/mask_0/mask_93_0.dat3
-rw-r--r--library/phpqrcode/cache/mask_0/mask_97_0.datbin0 -> 150 bytes
-rw-r--r--library/phpqrcode/cache/mask_1/mask_101_1.dat2
-rw-r--r--library/phpqrcode/cache/mask_1/mask_105_1.dat1
-rw-r--r--library/phpqrcode/cache/mask_1/mask_109_1.dat1
-rw-r--r--library/phpqrcode/cache/mask_1/mask_113_1.dat1
-rw-r--r--library/phpqrcode/cache/mask_1/mask_117_1.dat2
-rw-r--r--library/phpqrcode/cache/mask_1/mask_121_1.dat2
-rw-r--r--library/phpqrcode/cache/mask_1/mask_125_1.dat2
-rw-r--r--library/phpqrcode/cache/mask_1/mask_129_1.datbin0 -> 164 bytes
-rw-r--r--library/phpqrcode/cache/mask_1/mask_133_1.dat1
-rw-r--r--library/phpqrcode/cache/mask_1/mask_137_1.dat3
-rw-r--r--library/phpqrcode/cache/mask_1/mask_141_1.dat2
-rw-r--r--library/phpqrcode/cache/mask_1/mask_145_1.dat1
-rw-r--r--library/phpqrcode/cache/mask_1/mask_149_1.dat1
-rw-r--r--library/phpqrcode/cache/mask_1/mask_153_1.dat2
-rw-r--r--library/phpqrcode/cache/mask_1/mask_157_1.dat2
-rw-r--r--library/phpqrcode/cache/mask_1/mask_161_1.dat1
-rw-r--r--library/phpqrcode/cache/mask_1/mask_165_1.dat1
-rw-r--r--library/phpqrcode/cache/mask_1/mask_169_1.dat1
-rw-r--r--library/phpqrcode/cache/mask_1/mask_173_1.dat1
-rw-r--r--library/phpqrcode/cache/mask_1/mask_177_1.dat1
-rw-r--r--library/phpqrcode/cache/mask_1/mask_21_1.datbin0 -> 42 bytes
-rw-r--r--library/phpqrcode/cache/mask_1/mask_25_1.datbin0 -> 48 bytes
-rw-r--r--library/phpqrcode/cache/mask_1/mask_29_1.datbin0 -> 50 bytes
-rw-r--r--library/phpqrcode/cache/mask_1/mask_33_1.datbin0 -> 53 bytes
-rw-r--r--library/phpqrcode/cache/mask_1/mask_37_1.datbin0 -> 56 bytes
-rw-r--r--library/phpqrcode/cache/mask_1/mask_41_1.datbin0 -> 58 bytes
-rw-r--r--library/phpqrcode/cache/mask_1/mask_45_1.datbin0 -> 82 bytes
-rw-r--r--library/phpqrcode/cache/mask_1/mask_49_1.datbin0 -> 84 bytes
-rw-r--r--library/phpqrcode/cache/mask_1/mask_53_1.datbin0 -> 87 bytes
-rw-r--r--library/phpqrcode/cache/mask_1/mask_57_1.datbin0 -> 92 bytes
-rw-r--r--library/phpqrcode/cache/mask_1/mask_61_1.dat1
-rw-r--r--library/phpqrcode/cache/mask_1/mask_65_1.datbin0 -> 99 bytes
-rw-r--r--library/phpqrcode/cache/mask_1/mask_69_1.datbin0 -> 102 bytes
-rw-r--r--library/phpqrcode/cache/mask_1/mask_73_1.datbin0 -> 104 bytes
-rw-r--r--library/phpqrcode/cache/mask_1/mask_77_1.datbin0 -> 110 bytes
-rw-r--r--library/phpqrcode/cache/mask_1/mask_81_1.datbin0 -> 114 bytes
-rw-r--r--library/phpqrcode/cache/mask_1/mask_85_1.dat2
-rw-r--r--library/phpqrcode/cache/mask_1/mask_89_1.dat1
-rw-r--r--library/phpqrcode/cache/mask_1/mask_93_1.dat2
-rw-r--r--library/phpqrcode/cache/mask_1/mask_97_1.dat2
-rw-r--r--library/phpqrcode/cache/mask_2/mask_101_2.dat3
-rw-r--r--library/phpqrcode/cache/mask_2/mask_105_2.dat1
-rw-r--r--library/phpqrcode/cache/mask_2/mask_109_2.dat2
-rw-r--r--library/phpqrcode/cache/mask_2/mask_113_2.dat1
-rw-r--r--library/phpqrcode/cache/mask_2/mask_117_2.dat2
-rw-r--r--library/phpqrcode/cache/mask_2/mask_121_2.datbin0 -> 127 bytes
-rw-r--r--library/phpqrcode/cache/mask_2/mask_125_2.dat1
-rw-r--r--library/phpqrcode/cache/mask_2/mask_129_2.dat2
-rw-r--r--library/phpqrcode/cache/mask_2/mask_133_2.dat10
-rw-r--r--library/phpqrcode/cache/mask_2/mask_137_2.dat2
-rw-r--r--library/phpqrcode/cache/mask_2/mask_141_2.dat2
-rw-r--r--library/phpqrcode/cache/mask_2/mask_145_2.dat4
-rw-r--r--library/phpqrcode/cache/mask_2/mask_149_2.dat1
-rw-r--r--library/phpqrcode/cache/mask_2/mask_153_2.dat2
-rw-r--r--library/phpqrcode/cache/mask_2/mask_157_2.dat3
-rw-r--r--library/phpqrcode/cache/mask_2/mask_161_2.datbin0 -> 190 bytes
-rw-r--r--library/phpqrcode/cache/mask_2/mask_165_2.dat2
-rw-r--r--library/phpqrcode/cache/mask_2/mask_169_2.datbin0 -> 196 bytes
-rw-r--r--library/phpqrcode/cache/mask_2/mask_173_2.dat1
-rw-r--r--library/phpqrcode/cache/mask_2/mask_177_2.dat2
-rw-r--r--library/phpqrcode/cache/mask_2/mask_21_2.datbin0 -> 35 bytes
-rw-r--r--library/phpqrcode/cache/mask_2/mask_25_2.datbin0 -> 41 bytes
-rw-r--r--library/phpqrcode/cache/mask_2/mask_29_2.datbin0 -> 45 bytes
-rw-r--r--library/phpqrcode/cache/mask_2/mask_33_2.datbin0 -> 47 bytes
-rw-r--r--library/phpqrcode/cache/mask_2/mask_37_2.datbin0 -> 47 bytes
-rw-r--r--library/phpqrcode/cache/mask_2/mask_41_2.dat1
-rw-r--r--library/phpqrcode/cache/mask_2/mask_45_2.datbin0 -> 68 bytes
-rw-r--r--library/phpqrcode/cache/mask_2/mask_49_2.datbin0 -> 70 bytes
-rw-r--r--library/phpqrcode/cache/mask_2/mask_53_2.datbin0 -> 73 bytes
-rw-r--r--library/phpqrcode/cache/mask_2/mask_57_2.datbin0 -> 76 bytes
-rw-r--r--library/phpqrcode/cache/mask_2/mask_61_2.datbin0 -> 78 bytes
-rw-r--r--library/phpqrcode/cache/mask_2/mask_65_2.datbin0 -> 89 bytes
-rw-r--r--library/phpqrcode/cache/mask_2/mask_69_2.datbin0 -> 88 bytes
-rw-r--r--library/phpqrcode/cache/mask_2/mask_73_2.datbin0 -> 94 bytes
-rw-r--r--library/phpqrcode/cache/mask_2/mask_77_2.dat1
-rw-r--r--library/phpqrcode/cache/mask_2/mask_81_2.dat2
-rw-r--r--library/phpqrcode/cache/mask_2/mask_85_2.dat2
-rw-r--r--library/phpqrcode/cache/mask_2/mask_89_2.dat1
-rw-r--r--library/phpqrcode/cache/mask_2/mask_93_2.datbin0 -> 103 bytes
-rw-r--r--library/phpqrcode/cache/mask_2/mask_97_2.dat2
-rw-r--r--library/phpqrcode/cache/mask_3/mask_101_3.dat1
-rw-r--r--library/phpqrcode/cache/mask_3/mask_105_3.dat1
-rw-r--r--library/phpqrcode/cache/mask_3/mask_109_3.dat1
-rw-r--r--library/phpqrcode/cache/mask_3/mask_113_3.dat2
-rw-r--r--library/phpqrcode/cache/mask_3/mask_117_3.dat4
-rw-r--r--library/phpqrcode/cache/mask_3/mask_121_3.datbin0 -> 212 bytes
-rw-r--r--library/phpqrcode/cache/mask_3/mask_125_3.dat2
-rw-r--r--library/phpqrcode/cache/mask_3/mask_129_3.dat8
-rw-r--r--library/phpqrcode/cache/mask_3/mask_133_3.datbin0 -> 216 bytes
-rw-r--r--library/phpqrcode/cache/mask_3/mask_137_3.dat2
-rw-r--r--library/phpqrcode/cache/mask_3/mask_141_3.dat2
-rw-r--r--library/phpqrcode/cache/mask_3/mask_145_3.dat3
-rw-r--r--library/phpqrcode/cache/mask_3/mask_149_3.dat1
-rw-r--r--library/phpqrcode/cache/mask_3/mask_153_3.dat2
-rw-r--r--library/phpqrcode/cache/mask_3/mask_157_3.datbin0 -> 248 bytes
-rw-r--r--library/phpqrcode/cache/mask_3/mask_161_3.dat3
-rw-r--r--library/phpqrcode/cache/mask_3/mask_165_3.dat2
-rw-r--r--library/phpqrcode/cache/mask_3/mask_169_3.dat1
-rw-r--r--library/phpqrcode/cache/mask_3/mask_173_3.dat1
-rw-r--r--library/phpqrcode/cache/mask_3/mask_177_3.datbin0 -> 312 bytes
-rw-r--r--library/phpqrcode/cache/mask_3/mask_21_3.datbin0 -> 60 bytes
-rw-r--r--library/phpqrcode/cache/mask_3/mask_25_3.datbin0 -> 75 bytes
-rw-r--r--library/phpqrcode/cache/mask_3/mask_29_3.datbin0 -> 75 bytes
-rw-r--r--library/phpqrcode/cache/mask_3/mask_33_3.datbin0 -> 79 bytes
-rw-r--r--library/phpqrcode/cache/mask_3/mask_37_3.datbin0 -> 83 bytes
-rw-r--r--library/phpqrcode/cache/mask_3/mask_41_3.datbin0 -> 85 bytes
-rw-r--r--library/phpqrcode/cache/mask_3/mask_45_3.dat2
-rw-r--r--library/phpqrcode/cache/mask_3/mask_49_3.datbin0 -> 127 bytes
-rw-r--r--library/phpqrcode/cache/mask_3/mask_53_3.dat2
-rw-r--r--library/phpqrcode/cache/mask_3/mask_57_3.datbin0 -> 126 bytes
-rw-r--r--library/phpqrcode/cache/mask_3/mask_61_3.dat2
-rw-r--r--library/phpqrcode/cache/mask_3/mask_65_3.dat2
-rw-r--r--library/phpqrcode/cache/mask_3/mask_69_3.dat2
-rw-r--r--library/phpqrcode/cache/mask_3/mask_73_3.dat2
-rw-r--r--library/phpqrcode/cache/mask_3/mask_77_3.dat2
-rw-r--r--library/phpqrcode/cache/mask_3/mask_81_3.dat2
-rw-r--r--library/phpqrcode/cache/mask_3/mask_85_3.datbin0 -> 160 bytes
-rw-r--r--library/phpqrcode/cache/mask_3/mask_89_3.dat2
-rw-r--r--library/phpqrcode/cache/mask_3/mask_93_3.dat2
-rw-r--r--library/phpqrcode/cache/mask_3/mask_97_3.datbin0 -> 175 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_101_4.dat2
-rw-r--r--library/phpqrcode/cache/mask_4/mask_105_4.dat2
-rw-r--r--library/phpqrcode/cache/mask_4/mask_109_4.datbin0 -> 182 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_113_4.dat2
-rw-r--r--library/phpqrcode/cache/mask_4/mask_117_4.dat2
-rw-r--r--library/phpqrcode/cache/mask_4/mask_121_4.datbin0 -> 208 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_125_4.datbin0 -> 213 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_129_4.datbin0 -> 220 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_133_4.dat3
-rw-r--r--library/phpqrcode/cache/mask_4/mask_137_4.datbin0 -> 248 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_141_4.datbin0 -> 254 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_145_4.datbin0 -> 255 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_149_4.dat2
-rw-r--r--library/phpqrcode/cache/mask_4/mask_153_4.dat2
-rw-r--r--library/phpqrcode/cache/mask_4/mask_157_4.dat1
-rw-r--r--library/phpqrcode/cache/mask_4/mask_161_4.dat1
-rw-r--r--library/phpqrcode/cache/mask_4/mask_165_4.dat3
-rw-r--r--library/phpqrcode/cache/mask_4/mask_169_4.datbin0 -> 297 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_173_4.dat2
-rw-r--r--library/phpqrcode/cache/mask_4/mask_177_4.dat2
-rw-r--r--library/phpqrcode/cache/mask_4/mask_21_4.datbin0 -> 57 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_25_4.datbin0 -> 76 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_29_4.datbin0 -> 78 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_33_4.datbin0 -> 89 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_37_4.datbin0 -> 86 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_41_4.datbin0 -> 89 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_45_4.datbin0 -> 120 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_49_4.datbin0 -> 124 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_53_4.datbin0 -> 128 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_57_4.datbin0 -> 130 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_61_4.datbin0 -> 132 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_65_4.dat2
-rw-r--r--library/phpqrcode/cache/mask_4/mask_69_4.dat1
-rw-r--r--library/phpqrcode/cache/mask_4/mask_73_4.dat3
-rw-r--r--library/phpqrcode/cache/mask_4/mask_77_4.dat2
-rw-r--r--library/phpqrcode/cache/mask_4/mask_81_4.dat3
-rw-r--r--library/phpqrcode/cache/mask_4/mask_85_4.datbin0 -> 154 bytes
-rw-r--r--library/phpqrcode/cache/mask_4/mask_89_4.dat2
-rw-r--r--library/phpqrcode/cache/mask_4/mask_93_4.dat2
-rw-r--r--library/phpqrcode/cache/mask_4/mask_97_4.datbin0 -> 176 bytes
-rw-r--r--library/phpqrcode/cache/mask_5/mask_101_5.dat2
-rw-r--r--library/phpqrcode/cache/mask_5/mask_105_5.datbin0 -> 224 bytes
-rw-r--r--library/phpqrcode/cache/mask_5/mask_109_5.datbin0 -> 211 bytes
-rw-r--r--library/phpqrcode/cache/mask_5/mask_113_5.dat9
-rw-r--r--library/phpqrcode/cache/mask_5/mask_117_5.dat1
-rw-r--r--library/phpqrcode/cache/mask_5/mask_121_5.datbin0 -> 256 bytes
-rw-r--r--library/phpqrcode/cache/mask_5/mask_125_5.dat2
-rw-r--r--library/phpqrcode/cache/mask_5/mask_129_5.datbin0 -> 259 bytes
-rw-r--r--library/phpqrcode/cache/mask_5/mask_133_5.dat2
-rw-r--r--library/phpqrcode/cache/mask_5/mask_137_5.dat3
-rw-r--r--library/phpqrcode/cache/mask_5/mask_141_5.datbin0 -> 297 bytes
-rw-r--r--library/phpqrcode/cache/mask_5/mask_145_5.datbin0 -> 300 bytes
-rw-r--r--library/phpqrcode/cache/mask_5/mask_149_5.dat3
-rw-r--r--library/phpqrcode/cache/mask_5/mask_153_5.dat2
-rw-r--r--library/phpqrcode/cache/mask_5/mask_157_5.dat1
-rw-r--r--library/phpqrcode/cache/mask_5/mask_161_5.dat2
-rw-r--r--library/phpqrcode/cache/mask_5/mask_165_5.datbin0 -> 332 bytes
-rw-r--r--library/phpqrcode/cache/mask_5/mask_169_5.dat1
-rw-r--r--library/phpqrcode/cache/mask_5/mask_173_5.dat4
-rw-r--r--library/phpqrcode/cache/mask_5/mask_177_5.dat11
-rw-r--r--library/phpqrcode/cache/mask_5/mask_21_5.datbin0 -> 74 bytes
-rw-r--r--library/phpqrcode/cache/mask_5/mask_25_5.dat2
-rw-r--r--library/phpqrcode/cache/mask_5/mask_29_5.dat2
-rw-r--r--library/phpqrcode/cache/mask_5/mask_33_5.datbin0 -> 106 bytes
-rw-r--r--library/phpqrcode/cache/mask_5/mask_37_5.datbin0 -> 103 bytes
-rw-r--r--library/phpqrcode/cache/mask_5/mask_41_5.dat2
-rw-r--r--library/phpqrcode/cache/mask_5/mask_45_5.dat1
-rw-r--r--library/phpqrcode/cache/mask_5/mask_49_5.datbin0 -> 146 bytes
-rw-r--r--library/phpqrcode/cache/mask_5/mask_53_5.dat1
-rw-r--r--library/phpqrcode/cache/mask_5/mask_57_5.dat2
-rw-r--r--library/phpqrcode/cache/mask_5/mask_61_5.dat1
-rw-r--r--library/phpqrcode/cache/mask_5/mask_65_5.datbin0 -> 163 bytes
-rw-r--r--library/phpqrcode/cache/mask_5/mask_69_5.datbin0 -> 167 bytes
-rw-r--r--library/phpqrcode/cache/mask_5/mask_73_5.datbin0 -> 184 bytes
-rw-r--r--library/phpqrcode/cache/mask_5/mask_77_5.dat1
-rw-r--r--library/phpqrcode/cache/mask_5/mask_81_5.dat3
-rw-r--r--library/phpqrcode/cache/mask_5/mask_85_5.datbin0 -> 186 bytes
-rw-r--r--library/phpqrcode/cache/mask_5/mask_89_5.dat2
-rw-r--r--library/phpqrcode/cache/mask_5/mask_93_5.dat2
-rw-r--r--library/phpqrcode/cache/mask_5/mask_97_5.dat1
-rw-r--r--library/phpqrcode/cache/mask_6/mask_101_6.dat2
-rw-r--r--library/phpqrcode/cache/mask_6/mask_105_6.dat3
-rw-r--r--library/phpqrcode/cache/mask_6/mask_109_6.dat1
-rw-r--r--library/phpqrcode/cache/mask_6/mask_113_6.dat3
-rw-r--r--library/phpqrcode/cache/mask_6/mask_117_6.dat1
-rw-r--r--library/phpqrcode/cache/mask_6/mask_121_6.datbin0 -> 309 bytes
-rw-r--r--library/phpqrcode/cache/mask_6/mask_125_6.dat1
-rw-r--r--library/phpqrcode/cache/mask_6/mask_129_6.datbin0 -> 310 bytes
-rw-r--r--library/phpqrcode/cache/mask_6/mask_133_6.datbin0 -> 296 bytes
-rw-r--r--library/phpqrcode/cache/mask_6/mask_137_6.dat2
-rw-r--r--library/phpqrcode/cache/mask_6/mask_141_6.dat10
-rw-r--r--library/phpqrcode/cache/mask_6/mask_145_6.datbin0 -> 357 bytes
-rw-r--r--library/phpqrcode/cache/mask_6/mask_149_6.dat2
-rw-r--r--library/phpqrcode/cache/mask_6/mask_153_6.datbin0 -> 367 bytes
-rw-r--r--library/phpqrcode/cache/mask_6/mask_157_6.dat1
-rw-r--r--library/phpqrcode/cache/mask_6/mask_161_6.datbin0 -> 399 bytes
-rw-r--r--library/phpqrcode/cache/mask_6/mask_165_6.datbin0 -> 400 bytes
-rw-r--r--library/phpqrcode/cache/mask_6/mask_169_6.dat1
-rw-r--r--library/phpqrcode/cache/mask_6/mask_173_6.dat1
-rw-r--r--library/phpqrcode/cache/mask_6/mask_177_6.dat14
-rw-r--r--library/phpqrcode/cache/mask_6/mask_21_6.dat1
-rw-r--r--library/phpqrcode/cache/mask_6/mask_25_6.dat1
-rw-r--r--library/phpqrcode/cache/mask_6/mask_29_6.dat3
-rw-r--r--library/phpqrcode/cache/mask_6/mask_33_6.datbin0 -> 124 bytes
-rw-r--r--library/phpqrcode/cache/mask_6/mask_37_6.dat1
-rw-r--r--library/phpqrcode/cache/mask_6/mask_41_6.datbin0 -> 132 bytes
-rw-r--r--library/phpqrcode/cache/mask_6/mask_45_6.datbin0 -> 189 bytes
-rw-r--r--library/phpqrcode/cache/mask_6/mask_49_6.dat2
-rw-r--r--library/phpqrcode/cache/mask_6/mask_53_6.datbin0 -> 195 bytes
-rw-r--r--library/phpqrcode/cache/mask_6/mask_57_6.dat2
-rw-r--r--library/phpqrcode/cache/mask_6/mask_61_6.dat2
-rw-r--r--library/phpqrcode/cache/mask_6/mask_65_6.dat1
-rw-r--r--library/phpqrcode/cache/mask_6/mask_69_6.dat1
-rw-r--r--library/phpqrcode/cache/mask_6/mask_73_6.datbin0 -> 230 bytes
-rw-r--r--library/phpqrcode/cache/mask_6/mask_77_6.dat1
-rw-r--r--library/phpqrcode/cache/mask_6/mask_81_6.dat3
-rw-r--r--library/phpqrcode/cache/mask_6/mask_85_6.datbin0 -> 229 bytes
-rw-r--r--library/phpqrcode/cache/mask_6/mask_89_6.datbin0 -> 263 bytes
-rw-r--r--library/phpqrcode/cache/mask_6/mask_93_6.datbin0 -> 276 bytes
-rw-r--r--library/phpqrcode/cache/mask_6/mask_97_6.dat2
-rw-r--r--library/phpqrcode/cache/mask_7/mask_101_7.dat1
-rw-r--r--library/phpqrcode/cache/mask_7/mask_105_7.dat2
-rw-r--r--library/phpqrcode/cache/mask_7/mask_109_7.dat2
-rw-r--r--library/phpqrcode/cache/mask_7/mask_113_7.dat11
-rw-r--r--library/phpqrcode/cache/mask_7/mask_117_7.dat2
-rw-r--r--library/phpqrcode/cache/mask_7/mask_121_7.dat2
-rw-r--r--library/phpqrcode/cache/mask_7/mask_125_7.datbin0 -> 288 bytes
-rw-r--r--library/phpqrcode/cache/mask_7/mask_129_7.datbin0 -> 282 bytes
-rw-r--r--library/phpqrcode/cache/mask_7/mask_133_7.datbin0 -> 281 bytes
-rw-r--r--library/phpqrcode/cache/mask_7/mask_137_7.dat5
-rw-r--r--library/phpqrcode/cache/mask_7/mask_141_7.dat1
-rw-r--r--library/phpqrcode/cache/mask_7/mask_145_7.dat2
-rw-r--r--library/phpqrcode/cache/mask_7/mask_149_7.dat1
-rw-r--r--library/phpqrcode/cache/mask_7/mask_153_7.dat2
-rw-r--r--library/phpqrcode/cache/mask_7/mask_157_7.dat2
-rw-r--r--library/phpqrcode/cache/mask_7/mask_161_7.dat1
-rw-r--r--library/phpqrcode/cache/mask_7/mask_165_7.dat1
-rw-r--r--library/phpqrcode/cache/mask_7/mask_169_7.datbin0 -> 383 bytes
-rw-r--r--library/phpqrcode/cache/mask_7/mask_173_7.dat1
-rw-r--r--library/phpqrcode/cache/mask_7/mask_177_7.datbin0 -> 407 bytes
-rw-r--r--library/phpqrcode/cache/mask_7/mask_21_7.dat4
-rw-r--r--library/phpqrcode/cache/mask_7/mask_25_7.dat1
-rw-r--r--library/phpqrcode/cache/mask_7/mask_29_7.dat2
-rw-r--r--library/phpqrcode/cache/mask_7/mask_33_7.dat1
-rw-r--r--library/phpqrcode/cache/mask_7/mask_37_7.datbin0 -> 122 bytes
-rw-r--r--library/phpqrcode/cache/mask_7/mask_41_7.dat1
-rw-r--r--library/phpqrcode/cache/mask_7/mask_45_7.datbin0 -> 173 bytes
-rw-r--r--library/phpqrcode/cache/mask_7/mask_49_7.dat1
-rw-r--r--library/phpqrcode/cache/mask_7/mask_53_7.dat1
-rw-r--r--library/phpqrcode/cache/mask_7/mask_57_7.dat1
-rw-r--r--library/phpqrcode/cache/mask_7/mask_61_7.dat2
-rw-r--r--library/phpqrcode/cache/mask_7/mask_65_7.dat1
-rw-r--r--library/phpqrcode/cache/mask_7/mask_69_7.datbin0 -> 202 bytes
-rw-r--r--library/phpqrcode/cache/mask_7/mask_73_7.datbin0 -> 221 bytes
-rw-r--r--library/phpqrcode/cache/mask_7/mask_77_7.datbin0 -> 226 bytes
-rw-r--r--library/phpqrcode/cache/mask_7/mask_81_7.dat1
-rw-r--r--library/phpqrcode/cache/mask_7/mask_85_7.datbin0 -> 213 bytes
-rw-r--r--library/phpqrcode/cache/mask_7/mask_89_7.datbin0 -> 244 bytes
-rw-r--r--library/phpqrcode/cache/mask_7/mask_93_7.datbin0 -> 248 bytes
-rw-r--r--library/phpqrcode/cache/mask_7/mask_97_7.dat2
-rw-r--r--library/phpqrcode/index.php94
-rw-r--r--library/phpqrcode/phpqrcode.php3312
-rw-r--r--library/phpqrcode/qrbitstream.php180
-rw-r--r--library/phpqrcode/qrconfig.php17
-rw-r--r--library/phpqrcode/qrconst.php54
-rw-r--r--library/phpqrcode/qrencode.php502
-rw-r--r--library/phpqrcode/qrimage.php95
-rw-r--r--library/phpqrcode/qrinput.php729
-rw-r--r--library/phpqrcode/qrlib.php43
-rw-r--r--library/phpqrcode/qrmask.php328
-rw-r--r--library/phpqrcode/qrrscode.php210
-rw-r--r--library/phpqrcode/qrspec.php592
-rw-r--r--library/phpqrcode/qrsplit.php311
-rw-r--r--library/phpqrcode/qrtools.php172
-rw-r--r--library/phpqrcode/tools/merge.bat2
-rw-r--r--library/phpqrcode/tools/merge.php70
-rw-r--r--library/phpqrcode/tools/merge.sh2
-rw-r--r--library/phpqrcode/tools/merged_config.php17
-rw-r--r--library/phpqrcode/tools/merged_header.php36
-rwxr-xr-xlibrary/prettyphoto/README30
-rw-r--r--library/prettyphoto/css/prettyPhoto.css170
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_rounded/btnNext.pngbin1411 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_rounded/btnPrevious.pngbin1442 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_rounded/contentPattern.pngbin130 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_rounded/default_thumbnail.gifbin227 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_rounded/loader.gifbin2545 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_rounded/sprite.pngbin4076 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_square/btnNext.pngbin1411 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_square/btnPrevious.pngbin1442 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_square/contentPattern.pngbin121 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_square/default_thumbnail.gifbin227 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_square/loader.gifbin2545 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/dark_square/sprite.pngbin3507 -> 0 bytes
-rw-r--r--library/prettyphoto/images/prettyPhoto/default/default_thumb.pngbin1537 -> 0 bytes
-rw-r--r--library/prettyphoto/images/prettyPhoto/default/loader.gifbin6331 -> 0 bytes
-rw-r--r--library/prettyphoto/images/prettyPhoto/default/sprite.pngbin6682 -> 0 bytes
-rw-r--r--library/prettyphoto/images/prettyPhoto/default/sprite_next.pngbin1358 -> 0 bytes
-rw-r--r--library/prettyphoto/images/prettyPhoto/default/sprite_prev.pngbin1376 -> 0 bytes
-rw-r--r--library/prettyphoto/images/prettyPhoto/default/sprite_x.pngbin1097 -> 0 bytes
-rw-r--r--library/prettyphoto/images/prettyPhoto/default/sprite_y.pngbin1162 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/facebook/btnNext.pngbin845 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/facebook/btnPrevious.pngbin828 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/facebook/contentPatternBottom.pngbin142 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/facebook/contentPatternLeft.pngbin137 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/facebook/contentPatternRight.pngbin136 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/facebook/contentPatternTop.pngbin142 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/facebook/default_thumbnail.gifbin227 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/facebook/loader.gifbin2545 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/facebook/sprite.pngbin4227 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/light_rounded/btnNext.pngbin1411 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/light_rounded/btnPrevious.pngbin1442 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/light_rounded/default_thumbnail.gifbin227 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/light_rounded/loader.gifbin2545 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/light_rounded/sprite.pngbin4099 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/light_square/btnNext.pngbin1411 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/light_square/btnPrevious.pngbin1442 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/light_square/default_thumbnail.gifbin227 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/light_square/loader.gifbin2545 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/images/prettyPhoto/light_square/sprite.pngbin3507 -> 0 bytes
-rwxr-xr-xlibrary/prettyphoto/js/jquery-1.3.2.min.js19
-rw-r--r--library/prettyphoto/js/jquery-1.4.4.min.js167
-rw-r--r--library/prettyphoto/js/jquery-1.6.1.min.js18
-rw-r--r--library/prettyphoto/js/jquery.prettyPhoto.js7
-rw-r--r--library/spam/b8/storage/storage_frndc.php8
-rw-r--r--library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin.js21
-rw-r--r--library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js7
-rw-r--r--library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js2216
-rw-r--r--mod/achievements.php84
-rw-r--r--mod/acl.php49
-rw-r--r--mod/admin.php79
-rw-r--r--mod/allfriends.php60
-rw-r--r--mod/attach.php33
-rw-r--r--mod/authtest.php7
-rw-r--r--mod/blocks.php6
-rw-r--r--mod/bookmarks.php81
-rw-r--r--mod/channel.php87
-rw-r--r--mod/chanview.php23
-rw-r--r--mod/chat.php229
-rw-r--r--mod/chatsvc.php150
-rw-r--r--mod/cloud.php151
-rw-r--r--mod/common.php8
-rw-r--r--mod/connect.php4
-rw-r--r--mod/connections.php361
-rw-r--r--mod/connedit.php500
-rw-r--r--mod/contactgroup.php2
-rw-r--r--mod/crepair.php171
-rw-r--r--mod/directory.php27
-rw-r--r--mod/dirprofile.php190
-rw-r--r--mod/dirsearch.php26
-rw-r--r--mod/display.php12
-rw-r--r--mod/editblock.php15
-rw-r--r--mod/editlayout.php17
-rw-r--r--mod/editpost.php26
-rw-r--r--mod/editwebpage.php13
-rwxr-xr-xmod/events.php5
-rw-r--r--mod/fbrowser.php2
-rw-r--r--mod/filestorage.php171
-rw-r--r--mod/follow.php2
-rw-r--r--mod/group.php22
-rw-r--r--mod/hcard.php53
-rw-r--r--mod/help.php31
-rw-r--r--mod/home.php100
-rw-r--r--mod/import.php2
-rw-r--r--mod/invite.php2
-rw-r--r--mod/item.php294
-rw-r--r--mod/layouts.php6
-rwxr-xr-xmod/like.php1
-rw-r--r--mod/lockview.php4
-rw-r--r--mod/magic.php37
-rw-r--r--mod/mail.php349
-rw-r--r--mod/manage.php5
-rw-r--r--mod/menu.php9
-rw-r--r--mod/message.php454
-rw-r--r--mod/mitem.php5
-rwxr-xr-xmod/mood.php7
-rw-r--r--mod/network.php30
-rw-r--r--mod/notes.php4
-rw-r--r--mod/online.php11
-rw-r--r--mod/openid.php189
-rw-r--r--mod/parse_url.php2
-rw-r--r--mod/photo.php20
-rw-r--r--mod/photos.php366
-rw-r--r--mod/ping.php36
-rw-r--r--mod/post.php29
-rw-r--r--mod/profile_photo.php10
-rw-r--r--mod/profiles.php53
-rw-r--r--mod/profperm.php72
-rw-r--r--mod/pubsites.php6
-rw-r--r--mod/qsearch.php50
-rw-r--r--mod/rbmark.php112
-rw-r--r--mod/redir.php60
-rw-r--r--mod/register.php15
-rw-r--r--mod/removeme.php2
-rw-r--r--mod/rmagic.php58
-rw-r--r--mod/rpost.php8
-rw-r--r--mod/search.php136
-rw-r--r--mod/settings.php169
-rwxr-xr-xmod/setup.php29
-rw-r--r--mod/siteinfo.php48
-rw-r--r--mod/sources.php28
-rw-r--r--mod/sslify.php24
-rw-r--r--mod/suggest.php7
-rw-r--r--mod/thing.php240
-rw-r--r--mod/toggle_safesearch.php2
-rw-r--r--mod/viewconnections.php22
-rw-r--r--mod/wall_attach.php17
-rw-r--r--mod/wall_upload.php11
-rw-r--r--mod/webpages.php6
-rw-r--r--mod/xchan.php4
-rw-r--r--mod/xref.php20
-rw-r--r--mod/zfinger.php38
-rw-r--r--util/messages.po6677
-rwxr-xr-xutil/run_xgettext.sh15
-rw-r--r--version.inc2
-rw-r--r--view/css/bootstrap-red.css45
-rw-r--r--view/css/conversation.css17
-rw-r--r--view/css/default.css14
-rw-r--r--view/css/mod_chat.css55
-rw-r--r--view/css/mod_connections.css81
-rw-r--r--view/css/mod_connedit.css151
-rw-r--r--view/css/mod_directory.css5
-rw-r--r--view/css/mod_filestorage.css11
-rw-r--r--view/css/mod_mail.css100
-rw-r--r--view/css/mod_manage.css17
-rw-r--r--view/css/mod_mitem.css7
-rw-r--r--view/css/mod_profiles.css16
-rw-r--r--view/css/mod_register.css7
-rw-r--r--view/css/mod_settings.css29
-rw-r--r--view/css/mod_thing.css14
-rw-r--r--view/css/widgets.css126
-rw-r--r--view/de/messages.po8372
-rw-r--r--view/de/strings.php2133
-rw-r--r--view/en/htconfig.tpl3
-rw-r--r--view/fr/messages.po9947
-rw-r--r--view/fr/strings.php2778
-rw-r--r--view/it/messages.po2
-rw-r--r--view/it/strings.php2
-rw-r--r--view/js/acl.js (renamed from js/acl.js)4
-rw-r--r--view/js/ajaxupload.js (renamed from js/ajaxupload.js)0
-rw-r--r--view/js/autocomplete.js (renamed from js/fk.autocomplete.js)4
-rw-r--r--view/js/crypto.js (renamed from js/crypto.js)15
-rw-r--r--view/js/icon_translate.js (renamed from js/icon_translate.js)3
-rw-r--r--view/js/jquery-compat.js (renamed from js/jquery-compat.js)0
-rw-r--r--view/js/jquery-migrate-1.1.1.js (renamed from js/jquery-migrate-1.1.1.js)0
-rw-r--r--view/js/jquery.htmlstream.js (renamed from js/jquery.htmlstream.js)0
-rw-r--r--view/js/jquery.js (renamed from js/jquery.js)0
-rw-r--r--view/js/jquery.spin.js (renamed from js/jquery.spin.js)0
-rw-r--r--view/js/jquery.textinputs.js (renamed from js/jquery.textinputs.js)0
-rw-r--r--view/js/main.js (renamed from js/main.js)106
-rw-r--r--view/js/mod_chat.js16
-rw-r--r--view/js/mod_connections.js82
-rw-r--r--view/js/mod_connedit.js83
-rw-r--r--view/js/mod_directory.js8
-rw-r--r--view/js/mod_filestorage.php16
-rw-r--r--view/js/mod_mail.js13
-rw-r--r--view/js/mod_photos.js8
-rw-r--r--view/js/mod_settings.js34
-rw-r--r--view/js/mod_sources.js4
-rw-r--r--view/js/spin.js (renamed from js/spin.js)0
-rw-r--r--view/js/webtoolkit.base64.js (renamed from js/webtoolkit.base64.js)0
-rw-r--r--view/pdl/mod_blocks.pdl3
-rw-r--r--view/pdl/mod_chanview.pdl3
-rw-r--r--view/pdl/mod_chat.pdl3
-rw-r--r--view/pdl/mod_cloud.pdl3
-rw-r--r--view/pdl/mod_common.pdl3
-rw-r--r--view/pdl/mod_connect.pdl3
-rw-r--r--view/pdl/mod_connections.pdl5
-rw-r--r--view/pdl/mod_connedit.pdl6
-rw-r--r--view/pdl/mod_directory.pdl7
-rw-r--r--view/pdl/mod_group.pdl3
-rw-r--r--view/pdl/mod_layouts.pdl3
-rw-r--r--view/pdl/mod_mail.pdl3
-rw-r--r--view/pdl/mod_menu.pdl3
-rw-r--r--view/pdl/mod_message.pdl3
-rw-r--r--view/pdl/mod_mitem.pdl4
-rw-r--r--view/pdl/mod_network.pdl7
-rw-r--r--view/pdl/mod_new_channel.pdl1
-rw-r--r--view/pdl/mod_photos.pdl4
-rw-r--r--view/pdl/mod_profile_photo.pdl3
-rw-r--r--view/pdl/mod_profiles.pdl3
-rw-r--r--view/pdl/mod_profperm.pdl3
-rw-r--r--view/pdl/mod_register.pdl1
-rw-r--r--view/pdl/mod_search.pdl3
-rw-r--r--view/pdl/mod_settings.pdl4
-rw-r--r--view/pdl/mod_suggest.pdl4
-rw-r--r--view/pdl/mod_viewconnections.pdl3
-rw-r--r--view/pdl/mod_webpages.pdl3
-rw-r--r--view/php/mod_new_channel.php3
-rw-r--r--view/php/mod_register.php3
-rw-r--r--view/php/theme_init.php30
-rw-r--r--view/pt-br/follow_notify_eml.tpl12
-rw-r--r--view/pt-br/friend_complete_eml.tpl23
-rw-r--r--view/pt-br/intro_complete_eml.tpl26
-rw-r--r--view/pt-br/lostpass_eml.tpl33
-rw-r--r--view/pt-br/messages.po1575
-rw-r--r--view/pt-br/passchanged_eml.tpl24
-rw-r--r--view/pt-br/register_open_eml.tpl23
-rw-r--r--view/pt-br/register_verify_eml.tpl18
-rw-r--r--view/pt-br/request_notify_eml.tpl16
-rw-r--r--view/pt-br/strings.php246
-rw-r--r--view/ru/messages.po7757
-rw-r--r--view/ru/strings.php1862
-rw-r--r--view/theme/redbasic/css/dark.css186
-rw-r--r--view/theme/redbasic/css/fancy.css107
-rw-r--r--view/theme/redbasic/css/narrow_navbar.css27
-rw-r--r--view/theme/redbasic/css/style.css650
-rw-r--r--view/theme/redbasic/js/redbasic.js12
-rw-r--r--view/theme/redbasic/php/config.php20
-rw-r--r--view/theme/redbasic/php/style.php46
-rw-r--r--view/theme/redbasic/schema/notred.php5
-rw-r--r--view/theme/redbasic/tpl/theme_settings.tpl6
-rwxr-xr-xview/tpl/abook_edit.tpl47
-rwxr-xr-xview/tpl/admin_hubloc.tpl11
-rwxr-xr-xview/tpl/admin_site.tpl1
-rwxr-xr-xview/tpl/admin_users.tpl5
-rw-r--r--view/tpl/attach_edit.tpl39
-rwxr-xr-xview/tpl/build_query.tpl2
-rwxr-xr-xview/tpl/channel.tpl4
-rwxr-xr-xview/tpl/channels.tpl5
-rwxr-xr-xview/tpl/chanview.tpl2
-rw-r--r--view/tpl/chat.tpl117
-rw-r--r--view/tpl/chatroom_new.tpl12
-rw-r--r--view/tpl/chatroomlist.tpl11
-rw-r--r--view/tpl/chatrooms.tpl10
-rwxr-xr-xview/tpl/conv_item.tpl9
-rw-r--r--view/tpl/design_tools.tpl2
-rwxr-xr-xview/tpl/direntry.tpl2
-rwxr-xr-xview/tpl/direntry_large.tpl43
-rwxr-xr-xview/tpl/field_combobox.tpl2
-rw-r--r--view/tpl/field_select_disabled.tpl7
-rw-r--r--view/tpl/filestorage.tpl11
-rwxr-xr-xview/tpl/head.tpl1
-rw-r--r--view/tpl/item_attach.tpl2
-rwxr-xr-xview/tpl/jot-header.tpl38
-rwxr-xr-xview/tpl/jot.tpl45
-rwxr-xr-xview/tpl/js_strings.tpl54
-rw-r--r--view/tpl/list_things.tpl13
-rwxr-xr-xview/tpl/mail_conv.tpl4
-rwxr-xr-xview/tpl/mail_list.tpl2
-rw-r--r--view/tpl/menuedit.tpl6
-rw-r--r--view/tpl/mitemlist.tpl5
-rwxr-xr-xview/tpl/msg-header.tpl2
-rwxr-xr-xview/tpl/nav.tpl311
-rw-r--r--view/tpl/notes.tpl9
-rwxr-xr-xview/tpl/oembed_video.tpl6
-rwxr-xr-xview/tpl/page_display.tpl2
-rwxr-xr-xview/tpl/peoplefind.tpl4
-rwxr-xr-xview/tpl/photo_album.tpl1
-rwxr-xr-xview/tpl/photo_view.tpl39
-rw-r--r--view/tpl/prettyphoto.tpl6
-rwxr-xr-xview/tpl/profile_advanced.tpl7
-rwxr-xr-xview/tpl/profile_edit.tpl2
-rwxr-xr-xview/tpl/profile_listing_header.tpl5
-rwxr-xr-xview/tpl/profile_vcard.tpl9
-rwxr-xr-xview/tpl/prv_message.tpl2
-rwxr-xr-xview/tpl/pwdreset.tpl4
-rw-r--r--view/tpl/rbmark.tpl16
-rwxr-xr-xview/tpl/register.tpl10
-rw-r--r--view/tpl/saved_searches.tpl2
-rwxr-xr-xview/tpl/search_item.tpl8
-rwxr-xr-xview/tpl/settings.tpl59
-rwxr-xr-xview/tpl/settings_display.tpl1
-rw-r--r--view/tpl/show_thing.tpl16
-rwxr-xr-xview/tpl/siteinfo.tpl5
-rw-r--r--view/tpl/sources_edit.tpl2
-rw-r--r--view/tpl/sources_new.tpl2
-rw-r--r--view/tpl/thing_edit.tpl33
-rw-r--r--view/tpl/thing_input.tpl5
-rw-r--r--view/tpl/usermenu.tpl3
-rw-r--r--view/tpl/webpagelist.tpl4
1248 files changed, 75933 insertions, 31142 deletions
diff --git a/.gitignore b/.gitignore
index 77cc26aab..21f90f09a 100755
--- a/.gitignore
+++ b/.gitignore
@@ -10,6 +10,7 @@ home.html
addon
*~
compiled/
+custom/
# patch attempts
*.orig
diff --git a/.htaccess b/.htaccess
index 2f4fb1381..7f752018c 100644
--- a/.htaccess
+++ b/.htaccess
@@ -1,6 +1,7 @@
Options -Indexes
AddType application/x-java-archive .jar
AddType audio/ogg .oga
+#SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH
# don't allow any web access to logfiles, even after rotation/compression
<FilesMatch "\.(out|log|gz)$">
@@ -11,6 +12,7 @@ Deny from all
RewriteEngine on
# Protect repository directory from browsing
RewriteRule "(^|/)\.git" - [F]
+ RewriteRule "(^|/)store" - [F]
# Rewrite current-style URLs of the form 'index.php?q=x'.
diff --git a/README.md b/README.md
index 8bc45e55e..419793e19 100644
--- a/README.md
+++ b/README.md
@@ -32,9 +32,9 @@ Within the Red Matrix, identity is nomadic. It defines you and it belongs to you
The Red Matrix is free and open source distributed under the MIT license.
-Currently the project is in "Public Preview". A lot of work remains, but many important bits are functioning. Please connect with one of the developer channels ("Channel One" would be a good choice) if you are interested in helping us out.
+Please connect with one of the developer channels ("Channel One" would be a good choice) if you are interested in helping us out.
-[Please help us change the world by providing a small donation.](http://pledgie.com/campaigns/18417) (Large donations are also graciously accepted).
+[Please help us change the world by providing a small donation.](http://redmatrix.me/siteinfo) (Large donations are also graciously accepted).
-If you would like to become part of the Red Matrix **right now** (and aren't concerned that there may be a few bugs), please select a public hub from one of our open providers at [https://zothub.com/pubsites](https://zothub.com/pubsites). All sites are interlinked and you can always move to another, so the choice of site can be somewhat arbitrary. \ No newline at end of file
+If you would like to become a member of the Red Matrix **right now** , please select a public hub from one of our open providers at [https://zothub.com/pubsites](https://zothub.com/pubsites). All sites are interlinked and you can always move to another, so the choice of site can be somewhat arbitrary. \ No newline at end of file
diff --git a/assets/diamondlattice.png b/assets/diamondlattice.png
new file mode 100644
index 000000000..f1ed7dbd0
--- /dev/null
+++ b/assets/diamondlattice.png
Binary files differ
diff --git a/assets/home.html b/assets/home.html
new file mode 100644
index 000000000..1a0a13481
--- /dev/null
+++ b/assets/home.html
@@ -0,0 +1,75 @@
+<style>
+section { position: relative; margin-left: 15px;}
+nav { z-index: 9999; position: fixed; width: 100%; top: 0; left: 0; }
+header { z-index: 10000; }
+
+.tr {
+ clear: both;
+}
+.tab {
+ float: left;
+ width: 25px;
+}
+.td {
+ float: left;
+ width: 200px;
+ font-size: 1.8em;
+ margin-bottom: 5px;
+ margin-right: 25px;
+ color: #808080;
+
+}
+
+
+</style>
+
+<div style="margin-top: 50px;"></div>
+
+<center>
+<div style="color:#808080;font-weight:bold;font-size:4.0em; margin-bottom: 15px;">Dream it. Do it.</div>
+<img style="width: 175px; margin-bottom: 45px;" src="assets/logo_antiprism.png" >
+</center>
+<div class="tr">
+<div class="td">Communications</div>
+<div class="td">Message Expiration</div>
+<div class="td">Photo Albums</div>
+<div class="td">Decentralised</div>
+<div class="td">Cloud Storage</div>
+<div class="td">Own Your Content</div>
+<div class="td">Blogging</div>
+<div class="td">Decent Encryption</div>
+<div class="td">Chatrooms</div>
+<div class="td">Unsend Private Mail</div>
+<div class="td">Webpage Creation</div>
+<div class="td">Content Management</div>
+<div class="td">Games</div>
+<div class="td">Unincorporated</div>
+<div class="td">Forums</div>
+<div class="td">Share Anything Digital</div>
+<div class="td">Pseudonyms</div>
+<div class="td">Multiple Identities</div>
+<div class="td">No Advertising</div>
+<div class="td">Event Calendar</div>
+<div class="td">Bookmarking</div>
+<div class="td">Community Tagging</div>
+<div class="td">Internet-scale Privacy</div>
+<div class="td">Single Sign-On</div>
+<div class="td">Directory Services</div>
+<div class="td">Nomadic Identity</div>
+<div class="td">Social Networking</div>
+<div class="td">Derivative Channels</div>
+<div class="td">Multiple Profiles</div>
+<div class="td">Privacy Groups</div>
+<div class="td">Autonomy</div>
+<div class="td">Affinity Filtering</div>
+<div class="td">Friend Suggestions</div>
+<div class="td">Cross-Site Auth</div>
+<div class="td">Themes</div>
+<div class="td">Plugins</div>
+<div class="td">External API</div>
+<div class="td">3rd Party Apps</div>
+<div class="td">Open Source</div>
+
+<div class="tr"></div>
+
+<center><div style="margin-top: 35px; color: #808080; font-size: 1.8em;">Welcome to the Matrix</div><div style="font-size: 1.4em; color: #808080;">&ldquo;The most fun you ever had without taking your clothes off.&rdquo;<br /><a href="pubsites">Public Sites</a> | <a href="https://redmatrix.me">Project Home</a> | <a href="https://github.com/friendica/red">Git</a> | <a href="https://zothub.com/channel/one">Developers</a></div></center>
diff --git a/assets/logo_antiprism.png b/assets/logo_antiprism.png
new file mode 100644
index 000000000..b72e2a211
--- /dev/null
+++ b/assets/logo_antiprism.png
Binary files differ
diff --git a/assets/narrow.css b/assets/narrow.css
new file mode 100644
index 000000000..dc47c6984
--- /dev/null
+++ b/assets/narrow.css
@@ -0,0 +1,218 @@
+body {
+ font-family: 'Ubuntu',Tahoma,Helvetica,Arial,sans-serif;
+ color: #111111;
+ text-align: center;
+ padding:0 0 22px 0;
+}
+
+ div#header{
+ position:absolute;
+ z-index: 100;
+ top:0;
+ left:0;
+ width:100%;
+ height: 55px;
+ background: rgba(100, 0, 0, 0.8);
+ background-size:3000px 55px;
+ color: #fff;
+ display:none;
+ }
+
+ @media screen{
+ body>div#header{
+ position: fixed;
+ }
+ body>div#footer{
+ position:fixed;
+ }
+
+ }
+
+
+ div#footer{
+ position:absolute;
+ bottom:0;
+ left:0;
+ width:100%;
+ height:22px;
+ background: #AD002C;
+ color: #fff;
+}
+
+#intro-text {
+color:#c60032;font-size:1.2em;width:70%;margin-right:auto;margin-left:auto;text-align:justify;
+}
+div.section-text {
+color:#c60032;font-size:1.2em;width:80%;margin-right:auto;margin-left:auto;text-align:justify;
+}
+
+#tagline {
+ color: #c60032;
+ width:80%;
+ margin-top:0px;
+ margin-bottom:20px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+div.red-button {
+ width:150px;
+ margin-left: auto;
+ margin-right: auto;
+ font-weight: 500;
+ font-size: larger;
+ background-color: #c60032;
+ border: 2px solid lightgray;
+ border-radius: 5px;
+ padding: 12px;
+}
+div.red-button a {
+ text-decoration: none;
+ color:#FFFFFF;
+}
+div.red-button a:hover {
+ text-decoration: none;
+ font-weight:600;
+
+}
+
+#footer {
+ font-size: 12px;
+ color:#fff;
+ padding-top: 4px;
+}
+
+#footer a {
+ text-decoration: none;
+ color:#fff;
+}
+.bg {
+ display:none;
+}
+.bg2 {
+ display:none;
+}
+.bg-mask {
+ display:none;
+}
+
+#bg-narrow {
+ background: url('diamondlattice.png') center center no-repeat ;
+ opacity: 0.05;
+ position:absolute;
+ top:0;
+ left:0;
+ z-index: -1;
+ width:100%;
+ height:300%;
+ display:none;
+}
+
+div.summary-nodes-container {
+ display:none;
+}
+div.summary-menu-container {
+ display:block;
+}
+a.summary-menu-item {
+ display: block;
+ width:70%;
+ margin-left:auto;margin-right:auto;
+ border-radius:10px;
+ color:#FFFFFF;
+ font-size:1.2em;
+ text-align:center;
+ background:#c60032;
+ margin-bottom:5px;
+}
+a.summary-menu-item:hover{
+ color:#FFFFFF;
+ text-decoration:none;
+ background:#550000
+}
+
+
+div#menubutton1 {
+ position: fixed;
+ top:10px;
+ left:200px;
+ width:150px;
+ height:30px;
+ border-radius:10px;
+ color:#FFFFFF;
+ /* line-height:100px; */
+ text-align:center;
+ background:#c60032;
+ display: none;
+ z-index:200;
+}
+div#menubutton1:hover {
+ color:#FFFFFF;
+ text-decoration:none;
+ background:#550000
+}
+div#menubutton2 {
+ position: fixed;
+ top:10px;
+ left:350px;
+ width:150px;
+ height:30px;
+ border-radius:10px;
+ color:#FFFFFF;
+ /* line-height:100px; */
+ text-align:center;
+ background:#c60032;
+ display: none;
+ z-index:200;
+}
+div#menubutton2:hover {
+ color:#FFFFFF;
+ text-decoration:none;
+ background:#550000
+}
+div#menubutton3 {
+ position: fixed;
+ top:10px;
+ right:350px;
+ width:150px;
+ height:30px;
+ border-radius:10px;
+ color:#FFFFFF;
+ /* line-height:100px; */
+ text-align:center;
+ background:#c60032;
+ display: none;
+ z-index:200;
+}
+div#menubutton3:hover {
+ color:#FFFFFF;
+ text-decoration:none;
+ background:#550000
+}
+div#menubutton4 {
+ position: fixed;
+ top:10px;
+ right:200px;
+ width:150px;
+ height:30px;
+ border-radius:10px;
+ color:#FFFFFF;
+ /* line-height:100px; */
+ text-align:center;
+ background:#c60032;
+ display: none;
+ z-index:200;
+}
+div#menubutton4:hover {
+ color:#FFFFFF;
+ text-decoration:none;
+ background:#550000
+}
+div.section-heading {
+ font-size:2.0em;
+ color:#c60032;
+}
+div.section-subtitle {
+ font-size:1.5em;
+ color:#c60032;
+} \ No newline at end of file
diff --git a/assets/redmatrixlogo.png b/assets/redmatrixlogo.png
new file mode 100644
index 000000000..6929ae14f
--- /dev/null
+++ b/assets/redmatrixlogo.png
Binary files differ
diff --git a/assets/theRedMatrix.pptx b/assets/theRedMatrix.pptx
new file mode 100644
index 000000000..b6b6a2680
--- /dev/null
+++ b/assets/theRedMatrix.pptx
Binary files differ
diff --git a/assets/wide.css b/assets/wide.css
new file mode 100644
index 000000000..77b7370a3
--- /dev/null
+++ b/assets/wide.css
@@ -0,0 +1,396 @@
+body {
+ font-family: 'Ubuntu',Tahoma,Helvetica,Arial,sans-serif;
+ color: #111111;
+ /*color: rgba(0,0,0,0.0); */
+ text-align: center;
+ /* background-image: url("redmatrixbkgd.jpg"); */
+ /*background: #ececec;*/
+ padding:0 0 22px 0;
+ /* background: url(redmatrixbkgd.jpg) no-repeat center center scroll; */
+ /*
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -o-background-size: cover;
+ background-size: cover;
+ */
+}
+
+#intro-textl, #intro-textr {
+text-align: left; color:#444444;font-size:1.3em;
+}
+div.section-text {
+color:#C60032;font-size:1.2em;width:700px;margin-right:auto;margin-left:auto;text-align:justify;
+}
+
+
+ div#header{
+ display:none;
+ position:absolute;
+ z-index: 100;
+ top:0;
+ left:0;
+ width:100%;
+ height: 55px;
+ /* background-image: url("redmatrixbkgd.jpg"); */
+ background: rgba(198, 0, 50, 0.8);
+ background-size:3000px 55px;
+ /* background: #afafaf;*/
+ color: #fff;
+ }
+ @media screen{
+ body>div#header{
+ position: fixed;
+ }
+ body>div#footer{
+ position:fixed;
+ }
+
+ }
+
+ div#footer{
+ position:absolute;
+ bottom:0;
+ left:0;
+ width:100%;
+ height:22px;
+ background: #AD002C;
+ color: #fff;
+ }
+
+
+
+#tagline {
+ color: #880000;
+/* width:600px;
+ margin-top:0px;
+ margin-bottom:20px;
+ margin-left: auto;
+ margin-right: auto; */
+}
+
+
+.clear {
+ clear: both;
+}
+
+div.red-button {
+ width:150px;
+ margin-left: auto;
+ margin-right: auto;
+ font-weight: 500;
+ font-size: larger;
+ background-color: #C60032;
+ border: 2px solid lightgray;
+ border-radius: 5px;
+ padding: 12px;
+}
+div.red-button a {
+ text-decoration: none;
+ color:#FFFFFF;
+}
+div.red-button a:hover {
+ text-decoration: none;
+ font-weight:600;
+}
+
+#footer {
+ font-size: 12px;
+ color:#fff;
+ padding-top: 4px;
+}
+
+#footer a {
+ text-decoration: none;
+ color:#fff;
+}
+
+.bg {
+ background: url('diamondlattice.png') center center no-repeat ;
+ position: fixed;
+ width: 100%;
+ height: 1350px;
+
+ top:0px;
+ left:0px;
+ opacity: 1.0;
+ z-index: -1;
+}
+.bg2 {
+ background: url('diamondlattice.png') center center no-repeat;
+ position: fixed;
+
+ width: 100%;
+ height: 1350px;
+ top:0px;
+ left:0px;
+ opacity: 1.0;
+ z-index: -1;
+}
+.bg-mask {
+ background: rgba(255, 255, 255, 0.95) center center no-repeat;
+ position: fixed;
+ width: 100%;
+ height: 1350px;
+ top:0;
+ left:0px;
+ z-index: -1;
+
+}
+.bg-narrow {
+ display:none;
+}
+div.summary-menu-container {
+ display:none;
+}
+div.summary-node {
+ position: fixed;
+ width: 50px;
+ text-align: center ;
+ font-size:1.2em;
+
+
+}
+div.summary-node-header {
+ font-size: 1.2em;
+ color:#FFFFFF;
+ font-weight:bold;
+}
+div.summary-node-1 {
+ position: absolute;
+ top:0px;
+ left:0px;
+ width:200px;
+ height:200px;
+ border-radius:100px;
+ color:#CCCCCC;
+ /* line-height:100px; */
+ text-align:center;
+ background:#C60032;
+}
+div.summary-node-1:hover{
+ color:#FFFFFF;
+ text-decoration:none;
+ background:#550000
+}
+div.summary-node-1-text {
+ margin-top:25%;
+ width: 150px;
+ margin-left:auto;
+ margin-right:auto;
+}
+div.summary-node-2 {
+ position: absolute;
+ top:50px;
+ left:170px;
+ width:220px;
+ height:220px;
+ border-radius:200px;
+ color:#CCCCCC;
+ /* line-height:100px; */
+ text-align:center;
+ background:#C60032;
+}
+div.summary-node-2:hover{
+ color:#FFFFFF;
+ text-decoration:none;
+ background:#550000
+}
+div.summary-node-2-text {
+ margin-top:30%;
+ width: 150px;
+ margin-left:auto;
+ margin-right:auto;
+}
+div.summary-node-3 {
+ position: absolute;
+ top:0px;
+ right:20px;
+ width:250px;
+ height:250px;
+ border-radius:200px;
+ color:#FFFFFF;
+ /* line-height:100px; */
+ text-align:center;
+ background:#C60032;
+}
+div.summary-node-3:hover{
+ color:#FFFFFF;
+ text-decoration:none;
+ background:#550000
+}
+div.summary-node-3-text {
+ margin-top:25%;
+ width: 200px;
+ margin-left:auto;
+ margin-right:auto;
+}
+
+div.summary-node-4 {
+ position: absolute;
+ top:200px;
+ right:180px;
+ width:200px;
+ height:200px;
+ border-radius:200px;
+ color:#FFFFFF;
+ /* line-height:100px; */
+ text-align:center;
+ background:#C60032;
+}
+div.summary-node-4:hover{
+ color:#FFFFFF;
+ text-decoration:none;
+ background:#550000
+}
+div.summary-node-4-text {
+ margin-top:25%;
+ width: 150px;
+ margin-left:auto;
+ margin-right:auto;
+}
+div.summary-node-5 {
+ position: absolute;
+ top:250px;
+ left:120px;
+ width:150px;
+ height:150px;
+ border-radius:150px;
+ color:#FFFFFF;
+ /* line-height:100px; */
+ text-align:center;
+ background:#C60032;
+}
+div.summary-node-5:hover{
+ color:#FFFFFF;
+ text-decoration:none;
+ background:#550000
+}
+div.summary-node-5-text {
+ margin-top:55px;
+ width: 150px;
+ margin-left:auto;
+ margin-right:auto;
+ font-size:2.0em;
+
+}
+div.summary-node-6 {
+ position: absolute;
+ top:20px;
+ right:270px;
+ width:150px;
+ height:150px;
+ border-radius:150px;
+ color:#FFFFFF;
+ /* line-height:100px; */
+ text-align:center;
+ background:#C60032;
+}
+div.summary-node-6:hover{
+ color:#FFFFFF;
+ text-decoration:none;
+ background:#550000
+}
+div.summary-node-6-text {
+ margin-top:30px;
+ width: 100px;
+ margin-left:auto;
+ margin-right:auto;
+}
+div.summary-nodes-container {
+ position: relative;
+ margin-left: auto ;
+ margin-right: auto ;
+ margin-top:30px;
+ margin-bottom:30px;
+ width: 800px;
+ height: 400px;
+ text-align: center ;
+}
+div#menubutton1 {
+ position: fixed;
+ top:10px;
+ left:200px;
+ width:150px;
+ height:30px;
+ border-radius:10px;
+ color:#FFFFFF;
+ /* line-height:100px; */
+ text-align:center;
+ background:#C60032;
+ display: none;
+ z-index:200;
+}
+div#menubutton1:hover {
+ color:#FFFFFF;
+ text-decoration:none;
+ background:#550000
+}
+div#menubutton2 {
+ position: fixed;
+ top:10px;
+ left:350px;
+ width:150px;
+ height:30px;
+ border-radius:10px;
+ color:#FFFFFF;
+ /* line-height:100px; */
+ text-align:center;
+ background:#C60032;
+ display: none;
+ z-index:200;
+}
+div#menubutton2:hover {
+ color:#FFFFFF;
+ text-decoration:none;
+ background:#550000
+}
+div#menubutton3 {
+ position: fixed;
+ top:10px;
+ right:350px;
+ width:150px;
+ height:30px;
+ border-radius:10px;
+ color:#FFFFFF;
+ /* line-height:100px; */
+ text-align:center;
+ background:#C60032;
+ display: none;
+ z-index:200;
+}
+div#menubutton3:hover {
+ color:#FFFFFF;
+ text-decoration:none;
+ background:#550000
+}
+div#menubutton4 {
+ position: fixed;
+ top:10px;
+ right:200px;
+ width:150px;
+ height:30px;
+ border-radius:10px;
+ color:#FFFFFF;
+ /* line-height:100px; */
+ text-align:center;
+ background:#C60032;
+ display: none;
+ z-index:200;
+}
+div#menubutton4:hover {
+ color:#FFFFFF;
+ text-decoration:none;
+ background:#550000
+}
+div.section-heading {
+ font-size:2.0em;
+ color:#C60032;
+ width:700px;
+ margin-bottom: 1em;
+ margin-left:auto;
+ margin-right:auto;
+}
+div.section-subtitle {
+ font-size:1.5em;
+ color:#BB0000;
+} \ No newline at end of file
diff --git a/boot.php b/boot.php
index ce85de89c..fbab83f05 100755
--- a/boot.php
+++ b/boot.php
@@ -40,13 +40,14 @@ require_once('include/BaseObject.php');
require_once('include/features.php');
require_once('include/taxonomy.php');
require_once('include/identity.php');
+require_once('include/Contact.php');
define ( 'RED_PLATFORM', 'Red Matrix' );
define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R');
define ( 'ZOT_REVISION', 1 );
-define ( 'DB_UPDATE_VERSION', 1084 );
+define ( 'DB_UPDATE_VERSION', 1098 );
define ( 'EOL', '<br />' . "\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
@@ -205,6 +206,7 @@ define ( 'PAGE_DIRECTORY_CHANNEL', 0x0008 ); // system channel used for director
define ( 'PAGE_PREMIUM', 0x0010 );
define ( 'PAGE_ADULT', 0x0020 );
+define ( 'PAGE_SYSTEM', 0x1000 );
define ( 'PAGE_REMOVED', 0x8000 );
@@ -217,7 +219,12 @@ define ( 'PHOTO_PROFILE', 0x0001 );
define ( 'PHOTO_XCHAN', 0x0002 );
define ( 'PHOTO_THING', 0x0004 );
-
+/**
+ * Menu types
+ */
+
+define ( 'MENU_SYSTEM', 0x0001 );
+define ( 'MENU_BOOKMARK', 0x0002 );
/**
* Network and protocol family types
@@ -264,6 +271,7 @@ define ( 'PERMS_W_STORAGE', 0x02000);
define ( 'PERMS_R_PAGES', 0x04000);
define ( 'PERMS_W_PAGES', 0x08000);
define ( 'PERMS_A_REPUBLISH', 0x10000);
+define ( 'PERMS_A_BOOKMARK', 0x20000);
// General channel permissions
@@ -272,6 +280,7 @@ define ( 'PERMS_NETWORK' , 0x0002 );
define ( 'PERMS_SITE' , 0x0004 );
define ( 'PERMS_CONTACTS' , 0x0008 );
define ( 'PERMS_SPECIFIC' , 0x0080 );
+define ( 'PERMS_AUTHED' , 0x0100 );
// Address book flags
@@ -298,9 +307,9 @@ define ( 'ATTACH_FLAG_OS', 0x0002);
-define ( 'MENU_ITEM_ZID', 0x0001);
-define ( 'MENU_ITEM_NEWWIN', 0x0002);
-
+define ( 'MENU_ITEM_ZID', 0x0001);
+define ( 'MENU_ITEM_NEWWIN', 0x0002);
+define ( 'MENU_ITEM_CHATROOM', 0x0004);
/**
* Poll/Survey types
@@ -362,11 +371,12 @@ define ( 'HUBLOC_FLAGS_PRIMARY', 0x0001);
define ( 'HUBLOC_FLAGS_UNVERIFIED', 0x0002);
define ( 'HUBLOC_FLAGS_DELETED', 0x1000);
-
+define ( 'XCHAN_FLAGS_NORMAL', 0x0000);
define ( 'XCHAN_FLAGS_HIDDEN', 0x0001);
define ( 'XCHAN_FLAGS_ORPHAN', 0x0002);
define ( 'XCHAN_FLAGS_CENSORED', 0x0004);
define ( 'XCHAN_FLAGS_SELFCENSORED', 0x0008);
+define ( 'XCHAN_FLAGS_SYSTEM', 0x0010);
define ( 'XCHAN_FLAGS_DELETED', 0x1000);
/*
* Traficlights for Administration of HubLoc
@@ -391,6 +401,7 @@ define ( 'TERM_PCATEGORY', 4 );
define ( 'TERM_FILE', 5 );
define ( 'TERM_SAVEDSEARCH', 6 );
define ( 'TERM_THING', 7 );
+define ( 'TERM_BOOKMARK', 8 );
define ( 'TERM_OBJ_POST', 1 );
define ( 'TERM_OBJ_PHOTO', 2 );
@@ -478,8 +489,10 @@ define ( 'ACCOUNT_PENDING', 0x0010 );
* Account roles
*/
-define ( 'ACCOUNT_ROLE_ADMIN', 0x1000 );
define ( 'ACCOUNT_ROLE_ALLOWCODE', 0x0001 );
+define ( 'ACCOUNT_ROLE_SYSTEM', 0x0002 );
+
+define ( 'ACCOUNT_ROLE_ADMIN', 0x1000 );
/**
* Item visibility
@@ -492,10 +505,11 @@ define ( 'ITEM_MODERATED', 0x0004);
define ( 'ITEM_SPAM', 0x0008);
define ( 'ITEM_DELETED', 0x0010);
define ( 'ITEM_UNPUBLISHED', 0x0020);
-define ( 'ITEM_WEBPAGE', 0x0040); // is a static web page, not a conversational item
+define ( 'ITEM_WEBPAGE', 0x0040); // is a static web page, not a conversational item
define ( 'ITEM_DELAYED_PUBLISH', 0x0080);
-define ( 'ITEM_BUILDBLOCK', 0x0100); // Named thusly to make sure nobody confuses this with ITEM_BLOCKED
-define ( 'ITEM_PDL', 0x0200); // Page Description Language - e.g. Comanche
+define ( 'ITEM_BUILDBLOCK', 0x0100); // Named thusly to make sure nobody confuses this with ITEM_BLOCKED
+define ( 'ITEM_PDL', 0x0200); // Page Description Language - e.g. Comanche
+define ( 'ITEM_BUG', 0x0400); // Is a bug, can be used by the internal bug tracker
/**
* Item Flags
*/
@@ -514,7 +528,6 @@ define ( 'ITEM_MENTIONSME', 0x0400);
define ( 'ITEM_NOCOMMENT', 0x0800); // commenting/followups are disabled
define ( 'ITEM_OBSCURED', 0x1000); // bit-mangled to protect from casual browsing by site admin
define ( 'ITEM_VERIFIED', 0x2000); // Signature verification was successful
-
/**
*
* Reverse the effect of magic_quotes_gpc if it is enabled.
@@ -567,12 +580,14 @@ function startup() {
class App {
+ public $install = false; // true if we are installing the software
- public $account = null; // account record
- public $channel = null; // channel record
- public $observer = null; // xchan record
- public $profile_uid = 0; // If applicable, the uid of the person whose stuff this is.
- public $layout = array(); // Comanche parsed template
+ public $account = null; // account record of the logged-in account
+ public $channel = null; // channel record of the current channel of the logged-in account
+ public $observer = null; // xchan record of the page observer
+ public $profile_uid = 0; // If applicable, the channel_id of the "page owner"
+ public $poi = null; // "person of interest", generally a referenced connection
+ public $layout = array(); // Comanche parsed template
private $perms = null; // observer permissions
@@ -899,44 +914,8 @@ class App {
return $this->groups;
}
- /*
- * Use a theme or app specific widget ordering list to determine what widgets should be included
- * for each module and in what order and optionally what region of the page to place them.
- * For example:
- * view/wgl/mod_connections.wgl:
- * -----------------------------
- * vcard aside
- * follow aside
- * findpeople rightside
- * collections aside
- *
- * If your widgetlist does not include a widget that is destined for the page, it will not be rendered.
- * You can also use this to change the order of presentation, as they will be presented in the order you specify.
- *
- */
-
function set_widget($title,$html, $location = 'aside') {
- $widgetlist_file = 'mod_' . $this->module . '.wgl';
- if(! $this->widgetlist) {
- if($this->module && (($f = theme_include($widgetlist_file)) !== '')) {
- $s = file($f, FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
- if(is_array($s)) {
- foreach($s as $x) {
- $this->widgetlist[] = explode(' ', $x);
- }
- }
- }
- else {
- $this->widgets[] = array('title' => $title, 'html' => $html, 'location' => $location);
- }
- }
- if($this->widgetlist) {
- foreach($this->widgetlist as $k => $v) {
- if($v[0] && $v[0] === $title) {
- $this->widgets[$k] = array('title' => $title, 'html' => $html, 'location' => (($v[1]) ?$v[1] : $location));
- }
- }
- }
+ $this->widgets[] = array('title' => $title, 'html' => $html, 'location' => $location);
}
function get_widgets($location = '') {
@@ -1388,7 +1367,14 @@ function fix_system_urls($oldurl,$newurl) {
dbesc($rr['xchan_hash']),
dbesc($oldurl)
);
-
+
+
+ $z = q("update profile set photo = '%s', thumb = '%s' where uid = %d",
+ dbesc(str_replace($oldurl,$newurl,$rr['xchan_photo_l'])),
+ dbesc(str_replace($oldurl,$newurl,$rr['xchan_photo_m'])),
+ intval($rr['channel_id'])
+ );
+
proc_run('php', 'include/notifier.php', 'refresh_all', $rr['channel_id']);
}
@@ -1590,13 +1576,22 @@ function proc_run($cmd){
$args[$x] = escapeshellarg($args[$x]);
$cmdline = implode($args," ");
- if(get_config('system','proc_windows'))
- proc_close(proc_open('cmd /c start /b ' . $cmdline,array(),$foo));
+
+
+ if(is_windows()) {
+ $cwd = getcwd();
+ $cmd = "cmd /c start \"title\" /D \"$cwd\" /b $cmdline";
+ proc_close(proc_open($cmd, array(), $foo));
+ }
else
proc_close(proc_open($cmdline." &",array(),$foo));
}
+function is_windows() {
+ return ((strtoupper(substr(PHP_OS,0,3)) === 'WIN') ? true : false);
+}
+
function current_theme(){
$app_base_themes = array('redbasic');
@@ -1809,7 +1804,10 @@ function construct_page(&$a) {
require_once('include/comanche.php');
- if(($p = theme_include('mod_' . $a->module . '.pdl')) != '')
+ // in case a page has overloaded a module, see if we already have a layout defined
+ // otherwise, if a pdl file exists for this module, use it
+
+ if((! count($a->layout)) && ($p = theme_include('mod_' . $a->module . '.pdl')) != '')
comanche_parser($a,@file_get_contents($p));
$comanche = ((count($a->layout)) ? true : false);
@@ -1871,6 +1869,10 @@ function construct_page(&$a) {
// layout completely with a new layout definition, or replace/remove existing content.
if($comanche) {
+ $arr = array('module' => $a->module, 'layout' => $a->layout);
+ call_hooks('construct_page',$arr);
+ $a->layout = $arr['layout'];
+
foreach($a->layout as $k => $v) {
if((strpos($k,'region_') === 0) && strlen($v)) {
if(strpos($v,'$region_') !== false) {
@@ -1883,7 +1885,8 @@ function construct_page(&$a) {
$v = str_replace('$nav',$a->page['nav'],$v);
}
if(strpos($v,'$content') !== false) {
- $v = str_replace('$content',$a->page['section'],$v);
+
+ $v = str_replace('$content',$a->page['content'],$v);
}
$a->page[substr($k,7)] = $v;
diff --git a/doc/Account-Basics.md b/doc/Account-Basics.md
index 5d937cb1c..c4a8f3bc4 100644
--- a/doc/Account-Basics.md
+++ b/doc/Account-Basics.md
@@ -18,7 +18,7 @@ Enter a password of your choice, and repeat it in the second box to ensure it wa
*Terms Of Service*
-Click the link to read the site's terms of service. This will open in a new tab. Once you've read them, tick the box to confirm.
+Click the link to read the site's terms of service. Once you've read them, tick the box in the register form to confirm.
*Register*
@@ -38,4 +38,4 @@ When your channel is created you will be taken straight to your settings page wh
* [Remove Account](help/Remove-Account)
- \ No newline at end of file
+
diff --git a/doc/Cloud.md b/doc/Cloud.md
new file mode 100644
index 000000000..ae1e3c754
--- /dev/null
+++ b/doc/Cloud.md
@@ -0,0 +1,53 @@
+Personal Cloud Storage
+======================
+
+
+The Red Matrix provides an ability to store privately and/or share arbitrary files with friends.
+
+You may either upload files from your computer into your storage area, or copy them directly from the operating system using the WebDAV protocol.
+
+On many public servers there may be limits on disk usage.
+
+
+**File Attachments**
+
+The quickest and easiest way to share files is through file attachments. In the row of icons below the status post editor is a tool to upload attachments. Click the tool, select a file and submit. After the file is uploaded, you will see an attachment code placed inside the text region. Do not edit this line or it may break the ability for your friends to see the attachment. You can use the post permissions dialogue box or privacy hashtags to restrict the visibility of the file - which will be set to match the permissions of the post your are sending.
+
+To delete attachments or change the permissions on the stored files, visit "filestorage/$channel_nickname" replacing $channel_nickname with the nickname you provided during channel creation.
+
+**Web Access**
+
+Your files are visible on the web at the location "cloud/$channel_nickname" to anybody who is allowed to view them. If the viewer has sufficient privileges, they may also have the ability to create new files and folders/directories.
+
+
+**WebDAV access**
+
+This varies by operating system.
+
+
+*Windows*
+
+In Windows, open the Windows Explorer (file manager) and type "$yoursite\cloud\$channel_nickname" into the address bar. Replace $yoursite with the URL to your Red Matrix hub and $channel_nickname with the nickname for your channel.
+
+You will be prompted for a username and password. For the username, you may supply either your account email address (which will select the default channel), or a channel nickname for the channel you wish to authenticate as. In either case use your account password for the password field. You will then be able to copy, drag/drop, edit, delete and otherwise work with files as if they were an attached disk drive.
+
+*Linux KDE*
+
+Simply log in to your hub as normal using Konqueror. Once logged in, visit webdavs://$yoursite/cloud. No further authentication is required.
+
+*Linux GNOME*
+
+Open a File browsing window (that's Nautilus), Select File > Connect to server from the menu. Type davs://$yoursite/cloud/$channel_nickname and click Connect. You will be prompted for your username and password. For the username, you may supply either your account email address (which will select the default channel) or a channel nickname.
+
+
+*See Also*
+
+- [Linux - Mounting the cloud as a file system](help/dav_davfs2)
+
+**Permissions**
+
+When using WebDAV, the file is created with your channel's default file permissions and this cannot be changed from within the operating system. It also may not be as restrictive as you would like. What we've found is that the preferred method of making files private is to first create folders or directories; then visit "filestorage/$channel_nickname"; select the directory and change the permissions. Do this before you put anything into the directory. The directory permissions take precedence so you can then put files or other folders into that container and they will be protected from unwanted viewers by the directory permissions. It is common for folks to create a "personal" or "private" folder which is restricted to themselves. You can use this as a personal cloud to store anything from anywhere on the web or any computer and it is protected from others. You might also create folders for "family" and "friends" with permission granted to appropriate collections of channels.
+
+
+
+
diff --git a/doc/External-Resources.md b/doc/External-Resources.md
new file mode 100644
index 000000000..c0880f362
--- /dev/null
+++ b/doc/External-Resources.md
@@ -0,0 +1,27 @@
+External Resources
+==================
+
+
+
+**Third-Party Themes**
+
+* [APW](https://github.com/beardy-unixer/apw)
+* [Redstrap](https://github.com/omigeot/redstrap3)
+* [Pluto](https://github.com/23n/Pluto)
+* [clean](https://bitbucket.org/tobiasd/red-clean)
+
+
+**Third-Party Addons**
+
+* [BBCode Extensions for Webpages/Wikis](https://github.com/beardy-unixer/red-addons-extra)
+* [ABCjs integration - display scores in posts (WIP)](https://abcentric.net/git/abcjsplugin.git)
+
+**Related projects**
+
+* [Redshare for Firefox](https://addons.mozilla.org/en-US/firefox/addon/redshare/)
+* [Red for Android](https://github.com/cvogeley/red-for-android)
+* [feed2red.pl (posts Atom/RSS feeds to channels)](https://github.com/zzottel/feed2red)
+
+**Utilities**
+
+* [Debian Install Script](https://github.com/beardy-unixer/lowendscript-ng)
diff --git a/doc/Home.md b/doc/Home.md
index 4a37e6c82..de2353470 100644
--- a/doc/Home.md
+++ b/doc/Home.md
@@ -9,10 +9,12 @@ Red Matrix Documentation and Resources
* [Channels](help/Channels)
* [Connecting to Channels](help/Connecting-to-Channels)
* [Permissions](help/Permissions)
+* [Cloud Storage](help/Cloud)
* [But Wait - There's More. MUCH More...](help/Features)
* [Tags and Mentions](help/Tags-and-Mentions)
* [Web Pages](help/Webpages)
* [Remove Account](help/Remove-Account)
+* [BBcode reference for posts and comments](help/bbcode)
**Technical Documentation**
@@ -30,10 +32,10 @@ Red Matrix Documentation and Resources
**External Resources**
+* [External Resource Links](help/External-Resources)
* [Main Website](https://github.com/friendica/red)
* [Plugin/Addon Website](https://github.com/friendica/red-addons)
* [Assets Website](https://github.com/friendica/red-assets)
-
* [Development Channel](http://zothub.com/channel/one)
**About**
diff --git a/doc/Install.md b/doc/Install.md
index 389c9d632..2df82b181 100644
--- a/doc/Install.md
+++ b/doc/Install.md
@@ -47,7 +47,7 @@ you might have trouble getting everything to work.]
`mkdir view/tpl/smarty3`
- `chown 777 view/smarty3`
+ `chmod 777 view/smarty3`
- For installing addons
@@ -102,4 +102,4 @@ one shown, substituting for your unique paths and settings:
You can generally find the location of PHP by executing "which php". If you
have troubles with this section please contact your hosting provider for
-assistance. Red will not work correctly if you cannot perform this step. \ No newline at end of file
+assistance. Red will not work correctly if you cannot perform this step.
diff --git a/doc/Profiles.md b/doc/Profiles.md
index 249ea4f29..1e9e0fe5e 100644
--- a/doc/Profiles.md
+++ b/doc/Profiles.md
@@ -3,46 +3,34 @@ Profiles
* [Home](help)
-Red has unlimited profiles. You may use different profiles to show different "sides of yourself" to different audiences. This is different to having different _channels_. Different channels allow for completely sets of information. You may have a channel for yourself, a channel for your sports team, a channel for your website, or whatever else. A profile allows for finely graded "sides" of each channel. For example, your default public profile might say "Hello, I'm Fred, and I like laughing". You may show your close friends a profile that adds "and I also enjoy dwarf tossing".
+Red has unlimited profiles. You may use different profiles to show different "sides of yourself" to different audiences. This is different to having different _channels_. Different channels allow for completely different sets of information. You may have a channel for yourself, a channel for your sports team, a channel for your website, or whatever else. A profile allows for finely graded "sides" of each channel. For example, your default public profile might say "Hello, I'm Fred, and I like laughing". You may show your close friends a profile that adds "and I also enjoy dwarf tossing".
You always have a profile known as your "default" or "public" profile. This profile is always available to the general public and cannot be hidden (there may be rare exceptions on privately run or disconnected sites). You may, and probably should restrict the information you make available on your public profile.
That said, if you want other friends to be able to find you, it helps to have the following information in your public profile...
-* Your real name
+* Your real name or at least a nickname everybody knows
* A photo of **you**
* Your location on the planet, at least to a country level.
Without this basic information, you could get very lonely here. Most people (even your best friends) will not try and connect with somebody that has a fake name or doesn't contain a real photo.
-In addition, if you'd like to meet people that share some general interests with you, please take a moment and add some "Public Keywords" to your profile. Such as "music, linux, photography" or whatever. You can add as many keywords as you like.
+In addition, if you'd like to meet people that share some general interests with you, please take a moment and add some "Keywords" to your profile. Such as "music, linux, photography" or whatever. You can add as many keywords as you like.
-Your default or public profile is also shown to contacts on other networks, since they do not have the ability to view your private profiles. Only members of the Friendica network can see alternate/private profiles.
+To create an alternate profile, select "View Profile" from the menu of your Red Matrix site, then click on the pencil at your profile photo. You may edit an existing profile, change the profile photo, add things to a profile or create a new profile. You may also create a "clone" of an existing profile if you only wish to change a few items but don't wish to enter all the information again. To do that, click on the profile you want to clone and choose "Clone this profile" there.
-
-To create an alternate profile, select "Profiles" from the menu of your Friendica site. You may edit an existing profile, change the profile photo, or create a new profile. You may also create a "clone" of an existing profile if you only wish to change a few items but don't wish to enter all the information again.
-
-To assign a profile to specific persons, select the person from your "Connections" page and click the pencil "Edit" icon. You will find a dropdown box listing the various profiles available. If this box is not selectable, the person is not in a supported network and cannot be assigned a specific profile.
+In the list of your profiles, you can also choose the contacts who can see a specific profile. Just click on "Edit visibility" next to the profile in question (only available for the profiles that are not your default profile) and then click on user images to add them to or remove them from the group of people who can see this profile.
Once a profile has been selected, when the person views your profile, they will see the private profile you have assigned. If they are not authenticated, they will see your public profile.
-You may also discover that (assuming you have the proper permissions) you may be able to post directly on the other person's channel (often called a "wall-to-wall" post). You may also be able to comment directly on posts from while visiting the other person's profile page.
-
-There is a setting which allow you to publish your profile to a directory and ensure that it can be found by others. You can change this setting on the "Settings" page.
+There is a setting which allows you to publish your profile to a directory and ensure that it can be found by others. You can change this setting on the "Settings" page.
-If you do not wish to be visible to any of these sites, you may leave your profile unpublished.
-
-Although you may have multiple profiles, you only have one profile photo. This is intentional. In early tests we experimented with different photos for each profile and found it was very confusing for people. They might see a different picture depending on what website they visited or what conversation they were in, and often alerted them to the fact that other people might be able to see different profiles of you than they could see.
-
-(But you can use the rich-text information boxes within a profile such as "Tell us about yourself" and link other photos onto the page.)
+If you do not wish to be found be people unless you give them your channel address, you may leave your profile unpublished.
**Keywords and Directory Search**
-On the site Directory page, you may search for people with published profiles. The search is typically for your nickname or part of your full name. However this search will also match against other profile fields - such as gender, location, "about", work, and education. You may also include "Keywords" in your default profile - which may be used to search for common interests with other members. You have two sets of keywords available - public and private. Private keywords are *not* visible to anybody. You could use these keywords to locate people who share membership in secret societies, or that share a love of fishing (for example) - without making this information visible on your public profile. Public keywords are used in the friend suggestion tool and although they aren't readily visible, they may be seen by viewing the HTML of your profile page.
+On the directory page, you may search for people with published profiles. The search is typically for your nickname or part of your full name. However this search will also match against other profile fields - such as gender, location, "about", work, and education. You may also include "Keywords" in your default profile - which may be used to search for common interests with other members. Keywords are used in the channel suggestion tool and although they aren't visible in the directory, they are shown if people visit your profile page.
Directory searches are also able to use "boolean" logic so that you can search for "+lesbian +Florida" and find those who's sexual preference (or keywords) contain the world "lesbian" and that live in Florida. See the section on "Topical Tags" on the [Tags-and-Mentions](help/Tags-and-Mentions) page for more information on performing boolean searches.
-On your Contacts page is a link to "Find People with Shared Interests". This will combine both your public and private keywords, and find people who have matching and/or similar keywords. The more keywords you provide, the more relevant the search results that are returned. These are sorted by relevance. You may discover that you are the first person on the list - because you are very likely the most relevant match for your keywords in the directory.
-
-
- \ No newline at end of file
+On your Connnections page and in the directory there is a link to "Suggestions" or "Channel Suggestions", respectively. This will find channels who have matching and/or similar keywords. The more keywords you provide, the more relevant the search results that are returned. These are sorted by relevance.
diff --git a/doc/Tags-and-Mentions.md b/doc/Tags-and-Mentions.md
index bcf69736f..cdee73167 100644
--- a/doc/Tags-and-Mentions.md
+++ b/doc/Tags-and-Mentions.md
@@ -5,9 +5,17 @@ Like many other platforms, Red uses a special notation inside messages to indica
**Mentions**
-Channels are tagged by simply preceding their name with the @ character. Unless their system blocks unsolicited "mentions", the person tagged will likely receive a "Mention" post/activity or become a direct participant in the conversation in the case of public posts.
+Channels are tagged by simply preceding their name with the @ character. Unless their system blocks unsolicited "mentions", the person tagged will likely receive a "Mention" post/activity or become a direct participant in the conversation in the case of public posts.
+
+When you start to mention somebody, it will create an auto-complete box to select from your immediate connections. Select one as appropriate. Some connections will be displayed in different colours. A light blue entry (using the default theme) indicates a channel which will redeliver to others if tagged. This is generally a conversation group or forum. But be aware that when tagged, the message will also go to anybody they choose, in addition to anybody you choose.
+
+**Private Mentions**
+
+If you wish to restrict a post to a single person or a number of people, you can do this by selecting channels or collections from the privacy tool. You can also just tag them with a privacy tag. A privacy tag is a name preceded by the two characters @! - and in addition to tagging these channels, will also change the privacy permissions of the post to include them (and perhaps restrict the post from "everybody" if this was the default). You can have more than one privacy tag, for instance @!bob and @!linda will send the post only to Bob and Linda (in addition to any recipients you selected with the privacy selector - if any).
+
+You may also tag public collections. When you create or edit a collection, there is a checkbox to allow the group members to be seen by others. If this box is checked for a collection and you tag (for instance) @!Friends - the post will be restricted to the Friends collection. Check that the collection is public before doing this - as there is no way to take back a post except to delete it. The collection name will appear in the post and will alert members of that collection that they are members of it.
+
-Red makes no distinction between different types of channel for the purpose of tagging.
**Topical Tags**
diff --git a/doc/TermsOfService.md b/doc/TermsOfService.md
new file mode 100644
index 000000000..41e9c0de7
--- /dev/null
+++ b/doc/TermsOfService.md
@@ -0,0 +1,4 @@
+Terms of Service
+================
+
+#include doc/SiteTOS.md;
diff --git a/doc/To-Do-Code.md b/doc/To-Do-Code.md
index 60b94e6da..b13689d5e 100644
--- a/doc/To-Do-Code.md
+++ b/doc/To-Do-Code.md
@@ -3,36 +3,44 @@ Project Code To-Do List
We need much more than this, but here are areas where developers can help. Please edit this page when items are finished. Another place for developers to start is with the issues list.
-* ACL widget - provide cc/bcc toggle to allow recipients to be discoverable at receiving end. This should integrate with public/private collections which currently exist but have no defined function.
-
* Turn top-level Apps menu into an Apps page - which will probably require App plugins to have icons. Add documentation specifically to the plugin/addon documentation for creating apps. Add links to the App Store (which doesn't currently exist).
* Documentation - see [Red Documentation Project To-Do List](help/To-Do)
+* Infinite scroll to the directory pages
+
* Finish the anti-spam bayesian engine
+* Integrate the "open site" list with the register page
+
* Write more webpage layouts
* Write more webpage widgets
* (Advanced) create a UI for building Comanche pages
-* Help with WebDAV and file storage implementation
+* templatise and translate the Web interface to webDAV
-* Extend WebDAV to provide desktop access to photo albums and existing file (attachment) storage
+* Extend WebDAV to provide desktop access to photo albums
-* Directory - provide a hover popup providing much more detail about the channel of interest. Keywords, additional public profile details, perhaps the last public post, anything else of interest.
+* service classes - provide a pluggable subscription payment gateway for premium accounts
-* Events module - bring back birthday reminders for friends, fix permissions on events, and provide JS translation support for the calendar overview
+* service classes - account overview page showing resources consumed by channel. With special consideration this page can also be accessed at a meta level by the site admin to drill down on problematic accounts/channels.
+
+* Events module - bring back birthday reminders for friends, fix permissions on events, and provide JS translation support for the calendar overview; integrate with calDAV
* Events module - event followups and RSVP
+
+* Uploads - integrate https://github.com/blueimp/jQuery-File-Upload
+
+
+* replace the tinymce visual editor and/or make the visual editor pluggable and responsive to different output formats. We probably want library/bbedit for bbcode. This needs a fair bit of work to catch up with our "enhanced bbcode", but start with images, links, bold and highlight and work from there.
+
* Photos module - turn photos into normal conversations and fix tagging
* Provide RSS feed support which look like channels (in matrix only - copyright issues)
-* Fully implement "things".
-
* Create mobile clients for the top platforms - which involves extending the API so that we can do stuff far beyond the current crop of Twitter/Statusnet clients. Ditto for mobile themes. We can probably use something like the Friendica Android app as a base to start from.
* Activity Stream generation for liking things, liking channels and other combinations.
@@ -41,7 +49,7 @@ We need much more than this, but here are areas where developers can help. Pleas
* Family Account creation - using service classes (an account holder can create a certain number of sub-accounts which are all tied to their subscription - if the subscription lapses they all go away).
-* Re-working of widgets so that entire application and page contents (e.g. modules) will be available to and under the control of themes/apps using Comanche layouts.
+* Put mod_admin under Comanche
In many cases some of the work has already been started and code exists so that you needn't start from scratch. Please contact one of the developer channels like Channel One (one@zothub.com) before embarking and we can tell you what we already have and provide some insights on how we envision these features fitting together.
diff --git a/doc/Translations.md b/doc/Translations.md
index 1ebdfb67d..724286052 100644
--- a/doc/Translations.md
+++ b/doc/Translations.md
@@ -32,13 +32,13 @@ The location of the translated files in the source tree is
/view/LNG-CODE/
where LNG-CODE is the language code used, e.g. de for German or fr for French.
For the email templates (the *.tpl files) just place them into the directory
-and you are done. The translated strings come as a "message.po" file from
+and you are done. The translated strings come as a "messages.po" file from
transifex which needs to be translated into the PHP file Red uses. To do
so, place the file in the directory mentioned above and use the "po2php"
utility from the util directory of your Red installation.
Assuming you want to convert the German localization which is placed in
-view/de/message.po you would do the following.
+view/de/messages.po you would do the following.
1. Navigate at the command prompt to the base directory of your
Red installation
@@ -46,7 +46,7 @@ view/de/message.po you would do the following.
2. Execute the po2php script, which will place the translation
in the strings.php file that is used by Red.
- $> php util/po2php.php view/de/message.po
+ $> php util/po2php.php view/de/messages.po
The output of the script will be placed at view/de/strings.php where
froemdoca os expecting it, so you can test your translation mmediately.
diff --git a/doc/about.bb b/doc/about.bb
new file mode 100644
index 000000000..90992b925
--- /dev/null
+++ b/doc/about.bb
@@ -0,0 +1,24 @@
+[b]About[/b]
+
+The Red Matrix is a decentralized communication network, which aims to provide communication that is censorship-resistant, privacy-respecting, and thus free from the oppressive claws of contemporary corporate communication giants. These giants function primarily as spy networks for paying clients of all sorts and types, in addition to monopolizing and centralizing the Internet; a feature that was not part of the original and revolutionary goals that produced the World Wide Web.
+
+The Red Matrix is free and open source. It is designed to scale from a $35 Raspberry Pi, to top of the line AMD and Intel Xeon-powered multi-core enterprise servers. It can be used to support communication between a few individuals, or scale to many thousands and more.
+
+Red aims to be skill and resource agnostic. It is easy to use by everyday computer users, as well as by systems administrators and developers.
+
+How you use it depends on how you want to use it.
+
+It is written in the PHP scripting language, thus making it trivial to install on any hosting platform in use today. This includes self-hosting at home, at hosting providers such as [url=http://mediatemple.com/]Media Temple[/url] and [url=http://www.dreamhost.com/]Dreamhost[/url], or on virtual and dedicated servers, offered by the likes of [url=https://www.linode.com]Linode[/url], [url=http://greenqloud.com]GreenQloud[/url] or [url=https://aws.amazon.com]Amazon AWS[/url].
+
+In other words, the Red Matrix can run on any computing platform that comes with a web server, a MySQL-compatible database, and the PHP scripting language.
+
+Along the way, Red offers a number of unique goodies:
+
+[b][color= grey]Single-click user identification:[/color][/b] meaning you can access sites on the Red Matrix simply by clicking on links to remote sites. Authentication just happens automagically behind the scenes. Forget about remembering multiple user names with multiple passwords when accessing different sites online.
+
+[b][color= grey]Cloning:[/color][/b] of online identities. Your online presence no longer has to be tied to a single server, domain name or IP address. You can clone and import your identity to another server (or, a hub as servers are known in the Red Matrix). Now, should your primary hub go down, no worries, your contacts, posts, messages, and content will automagically continue to be available and accessible under your cloned identity.
+
+[b][color= grey]Privacy:[/color][/b] Red identities (Zot IDs) can be deleted, backed up/downloaded, and cloned. The user is in full control of their data. Should you decide to delete all your content and erase your Zot ID, all you have to do is click on a link and it's immediately deleted from the hub. No questions, no fuss.
+
+Return to the [url=[baseurl]/help/main]Main documentation page[/url]
+
diff --git a/doc/account_basics.bb b/doc/account_basics.bb
new file mode 100644
index 000000000..902ff8bd0
--- /dev/null
+++ b/doc/account_basics.bb
@@ -0,0 +1,33 @@
+[b]Account Basics[/b]
+
+[b]Registration[/b]
+
+Not all Red Matrix sites allow open registration. If registration is allowed, you will see a &quot;Register&quot; link immediately below the login prompts on the site home page. Following this link will take you to the site Registration page. On some sites it may redirect you to another site which allow registrations. As all Red Matrix sites are linked, it does not matter where your account resides.
+
+[b]Your Email Address[/b]
+
+Please provide a valid email address. Your email address is never published. This address will be used to (optionally) send email notifications for incoming messages or items, and used to recover lost passwords.
+
+[b]Password[/b]
+
+Enter a password of your choice, and repeat it in the second box to ensure it was typed correctly. As the Red Matrix offers a decentralised identity, your account can log you in to many other websites.
+
+[b]Terms Of Service[/b]
+
+Click the link to read the site's terms of service. Once you've read them, tick the box in the register form to confirm.
+
+[b]Register[/b]
+
+Once you have provided the necessary details, click the 'Register' button. Some sites may require administrator approval before the registration is processed, and you will be alerted if this is the case. Please watch your email (including spam folders) for your registration approval.
+
+[b]Create a Channel[/b]
+
+Next, you will be presented with the &quot;Add a channel&quot; screen. Normally, your first channel will be one that represents you - so using your own name (or psuedonym) as the channel name is a good idea. The channel name should be thought of as a title, or brief description of your channel. The &quot;choose a short nickname&quot; box is similar to a &quot;username&quot; field. We will use whatever you enter here to create a channel address, which other people will use to connect to you, and you will use to log in to other sites. This looks like an email address, and takes the form nickname@siteyouregisteredat.xyz
+
+When your channel is created you will be taken straight to your settings page where you can define permissions, enable features, etc. All these things are covered in the appropriate section of the helpfiles.
+
+See Also
+
+[zrl=[baseurl]/help/permissions]Permissions[/zrl]
+[zrl=[baseurl]/help/profiles]Profiles[/zrl]
+[zrl=[baseurl]/help/remove_account]Remove Account[/zrl] \ No newline at end of file
diff --git a/doc/api_functions.bb b/doc/api_functions.bb
new file mode 100644
index 000000000..13460c1b9
--- /dev/null
+++ b/doc/api_functions.bb
@@ -0,0 +1,130 @@
+[b]Red Twitter API[/b]
+
+The &quot;basic&quot; Red web API is based on the Twitter API, as this provides instant compatibility with a huge number of third-party clients and applications without requiring any code changes on their part. It is also a super-set of the StatusNet version of the Twitter API, as this also has existing wide support.
+
+Red has a lot more capability that isn't exposed in the Twitter interfaces or where we are forced to &quot;dumb-down&quot; the API functions to work with the primitive Twitter/StatusNet communications and privacy model. So we plan to extend the Twitter API in ways that will allow Red-specific clients to make full use of Red features without being crippled.
+
+A dedicated Red API is also being developed to work with native data structures and permissions and which do not require translating to different privacy and permission models and storage formats. This will be described in other documents. The prefix for all of the native endpoints is 'api/red'.
+
+Red provides multiple channels accesible via the same login account. With Red, any API function which requires authentication will accept a parameter &amp;channel={channel_nickname} - and will select that channel and make it current before executing the API command. By default, the default channel associated with an account is selected.
+
+Red also provides an extended permission model. In the absence of any Red specific API calls to set permissions, they will be set to the default permissions settings which are associated with the current channel.
+
+Red will probably never be able to support the Twitter 'api/friendships' functions fully because Red is not a social network and has no concept of &quot;friendships&quot; - it only recognises permissions to do stuff (or not do stuff as the case may be).
+
+Legend: T= Twitter, S= StatusNet, F= Friendica, R= Red, ()=Not yet working, J= JSON only (XML formats deprecated)
+
+Twitter API compatible functions:
+
+ api/account/verify_credentials T,S,F,R
+ api/statuses/update T,S,F,R
+ api/users/show T,S,F,R
+ api/statuses/home_timeline T,S,F,R
+ api/statuses/friends_timeline T,S,F,R
+ api/statuses/public_timeline T,S,F,R
+ api/statuses/show T,S,F,R
+ api/statuses/retweet T,S,F,R
+ api/statuses/destroy T,S,F,(R)
+ api/statuses/mentions T,S,F,(R)
+ api/statuses/replies T,S,F,(R)
+ api/statuses/user_timeline T,S,F,(R)
+ api/favorites T,S,F,(R)
+ api/account/rate_limit_status T,S,F,R
+ api/help/test T,S,F,R
+ api/statuses/friends T,S,F,R
+ api/statuses/followers T,S,F,R
+ api/friends/ids T,S,F,R
+ api/followers/ids T,S,F,R
+ api/direct_messages/new T,S,F,(R)
+ api/direct_messages/conversation T,S,F,(R)
+ api/direct_messages/all T,S,F,(R)
+ api/direct_messages/sent T,S,F,(R)
+ api/direct_messages T,S,F,(R)
+ api/oauth/request_token T,S,F,R
+ api/oauth/access_token T,S,F,R
+
+Twitter API functions supported by StatusNet but not currently by Friendica or Red
+
+ api/favorites T,S
+ api/favorites/create T,S
+ api/favorites/destroy T,S
+ api/statuses/retweets_of_me T,S
+ api/friendships/create T,S
+ api/friendships/destroy T,S
+ api/friendships/exists T,S
+ api/friendships/show T,S
+ api/account/update_location T,S
+ api/account/update_profile_background_image T,S
+ api/account/update_profile_image T,S
+ api/blocks/create T,S
+ api/blocks/destroy T,S
+
+Twitter API functions not currently supported by StatusNet
+
+ api/statuses/retweeted_to_me T
+ api/statuses/retweeted_by_me T
+ api/direct_messages/destroy T
+ api/account/end_session T,(R)
+ api/account/update_delivery_device T
+ api/notifications/follow T
+ api/notifications/leave T
+ api/blocks/exists T
+ api/blocks/blocking T
+ api/lists T
+
+Statusnet compatible extensions to the Twitter API supported in both Friendica and Red
+
+ api/statusnet/version S,F,R
+ api/statusnet/config S,F,R
+
+Friendica API extensions to the Twitter API supported in both Friendica and Red
+
+ api/statuses/mediap F,R
+
+Red specific API extensions to the Twitter API not supported in Friendica
+
+ api/account/logout R
+ api/export/basic R,J
+ api/friendica/config R
+ api/red/config R
+ api/friendica/version R
+
+ api/red/version R
+
+ api/red/channel/export/basic R,J
+ api/red/channel/stream R,J (currently post only)
+ api/red/albums R,J
+ api/red/photos R,J (option album=xxxx)
+
+Red proposed API extensions to the Twitter API
+
+ api/statuses/edit (R),J
+ api/statuses/permissions (R),J
+ api/statuses/permissions/update (R),J
+ api/statuses/ids (R),J # search for existing message_id before importing a foreign post
+ api/files/show (R),J
+ api/files/destroy (R),J
+ api/files/update (R),J
+ api/files/permissions (R),J
+ api/files/permissions/update (R),J
+ api/pages/show (R),J
+ api/pages/destroy (R),J
+ api/pages/update (R),J
+ api/pages/permissions (R),J
+ api/pages/permissions/update (R),J
+ api/events/show (R),J
+ api/events/update (R),J
+ api/events/permissions (R),J
+ api/events/permissions/update (R),J
+ api/events/destroy (R),J
+ api/photos/show (R),J
+ api/photos/update (R),J
+ api/photos/permissions (R),J
+ api/photos/permissions/update (R),J
+ api/albums/destroy (R),J
+ api/albums/show (R),J
+ api/albums/update (R),J
+ api/albums/permissions (R),J
+ api/albums/permissions/update (R),J
+ api/albums/destroy (R),J
+ api/friends/permissions (R),J \ No newline at end of file
diff --git a/doc/bbcode.html b/doc/bbcode.html
new file mode 100644
index 000000000..cb8286ad7
--- /dev/null
+++ b/doc/bbcode.html
@@ -0,0 +1,72 @@
+<h3>BBcode reference</h3>
+<div style="font-size: 14px;">
+<br /><br />
+<ul class="listdecimal" style="list-style-type: decimal;">
+<li>[b]bold[/b] - <strong>bold</strong><br />
+<li>[i]italic[/i] - <em>italic</em><br />
+<li>[u]underlined[/u] - <u>underlined</u><br />
+<li>[s]strike[/s] - <strike>strike</strike><br />
+<li>[color=red]red[/color] - <span style="color: red;">red</span><br />
+<li>[url=https://redmatrix.me]Red Matrix[/url] <a href="https://redmatrix.me">Red Matrix</a><br />
+<li>[img]https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg[/img] <img src="https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg" alt="Image/photo" /><br />
+<li>[img float=left]https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg[/img] <img src="https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg" style="float:left;" alt="Image/photo" /><br />
+<div style="clear:both;"></div>
+<li>[img float=right]https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg[/img] <img src="https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg" style="float:right;" alt="Image/photo" /><br />
+<div style="clear:both;"></div>
+<li>[code]code[/code] <code>code</code><br />
+<li>[quote]quote[/quote] <blockquote>quote</blockquote><br />
+<li>[quote=Author]Author? Me? No, no, no...[/quote] <br /><strong class="author">Author wrote:</strong><blockquote>Author? Me? No, no, no...</blockquote><br />
+<li> [nobb] may be used to escape bbcode.</ul><br />
+
+<br />You can make lists with:<br />
+<ul class="listbullet" style="list-style-type: circle;">
+<li>[list]<br />
+<li>[list=1]<br />
+<li>[list=i]<br />
+<li>[list=I] <br />
+<li>[list=a]<br />
+<li>[list=A] <br />
+<li>[ul]<br />
+<li>[ol]
+
+</ul>For example:<br />[ul]<br />[*] First list element<br />[*] Second list element<br />[/ul]<br /><br />Will render something like: <br />
+<ul class="listbullet" style="list-style-type: circle;">
+<li> First list element<br />
+<li> Second list element</ul><br />
+<br />There's also:<br />
+<ul class="listloweralpha" style="list-style-type: lower-alpha;">
+<li>[hr]<br />
+<li>[video]video URL[/video]<br />
+<li>[audio]audio URL[/audio]<br />
+<li>[table]<br />
+<li>[th] <br />
+<li>[td]<br />
+<li>[tr]<br />
+<li>[center]<br />
+<li>[font=courier]some text[/font] <span style="font-family: courier;">some text</span><br />
+</ul><br />
+<br />Tables? Yes!<br /><br />[table border=1]<br /> [tr]<br /> [th]Tables now[/th]<br /> [/tr]<br /> [tr]<br /> [td]Have headers[/td]<br /> [/tr]<br />[/table]<br /><br /><table border="1" ><tr><th>Tables now</th></tr><tr><td>Have headers</td></tr></table><br />All sizes, <br />From the [size=xx-small] - <span style="font-size: xx-small;">xx-small</span>.<br />To the [size=xx-large] - <span style="font-size: xx-large;">xx-large</span>.<br />To fit exactly <span style="font-size: 20px;">20px</span> use [size=20].<br /><br />
+
+<p>Red Matrix specific codes</p>
+<ul class="listbullet" style="list-style-type: circle;">
+<li>[&amp;copy;] &copy; This works for many HTML entities<br />
+<li>[zrl]https://redmatrix.me[/zrl] Magic-auth version of [url] tag<br />
+<li>[zmg]https://redmatrix.me/some/photo.jpg[/zmg] Magic-auth version of [img] tag<br />
+<br />
+<li>[observer=1]Text to display if observer is authenticated in the matrix[/observer]
+<li>[observer=0]Text to display if observer is <strong>not</strong> authenticated in the matrix[/observer]<br />
+<li>[observer.baseurl] website of observer <br />
+<li>[observer.url] channel URL of observer <br />
+<li>[observer.name] name of observer <br />
+<li>[observer.address] address (zot-id) of observer <br />
+<li>[observer.photo] profile photo of observer <br />
+<br />
+
+<li>[rpost=title]Text to post[/rpost] The observer will be returned to their home hub to enter a post with the specified title and body. Both are optional <br />
+
+
+
+</div>
+
+
+
diff --git a/doc/campaign.bb b/doc/campaign.bb
new file mode 100644
index 000000000..63a072d42
--- /dev/null
+++ b/doc/campaign.bb
@@ -0,0 +1,234 @@
+[b]Initial Indiegg pitch[/b]
+
+[b][color= grey][size=20]What have we done, and what we hope to achieve[/size][/color][/b]
+
+[b][color= grey][size=18]Single-click sign on, nomadic identity, censorship-resistance, privacy, self-hosting[/size][/color][/b]
+
+We started the Red Matrix project by asking ourselves a few questions:
+
+- Imagine if it was possible to just access the content of different web sites, without the need to enter usernames and passwords for every site. Such a feature would permit Single-Click user identification: the ability to access sites simply by clicking on links to remote sites.
+Authentication just happens automagically behind the scenes. Forget about remembering multiple user names with multiple passwords when accessing different sites online.
+
+We liked this idea and went ahead with coding it immediately. Today, single-click sign is in alpha state. It needs more love, which means a solid three months of full-time development efforts.
+
+- Think of your Facebook, Twitter, WordPress, or any other website where you currently have an account. Now imagine being able to clone your account, to make an exact duplicate of it (with all of your friends, posts and settings), then export your cloned account into another server that is part of this communication network. After you're done, both of your accounts are synced from the time they were cloned. It doesn't matter where you log in (at your original location, or where you imported your clone). You see the same content, the same friends, posts, and account settings.
+At that point, it is more appropriate to call your account an identity that is nomadic (it is not tied to one home, unless you choose to do so!).
+It's 2013, our online presence no longer has to be tied to a single server, domain name or IP address. We should be able to clone and import our identities to other servers. In such a network, it should only matter who you are, not where you are.
+
+We're very intrigued by the possibilities nomadic identities open up for freedom, censorship-resistance, and identity resilience. Consider the following scenarios:
+
+ -- Should a repressive government or corporation decide to delete your account, your cloned identity lives on, because it is located on another server, across the world, which is part of the same communication network. You can't be silenced!
+
+ -- What if there is a server meltdown, and your identity goes off line. No problem, you log into your clone and all is good.
+
+ -- Your server administrator can no longer afford to keep paying to support a free service (a labor love and principle, which all of us have participating in as system administrators of Friendica sites!). She notifies you that you must clone your account before the shutoff date. Rather than loose all your friends, and start from scratch by creating a new identity somewhere, you clone and move to another server.
+We feel this is especially helpful for the free web, where administrators of FOSS community sites are often faced with difficult financial decisions. Since many of them rely on donations, sometimes servers have to be taken offline, when costs become prohibitive for the brave DIY souls running those server. Nomadic identities should relieve some of the pressures associated with such situations.
+
+At the same time, we are also thinking of solutions that would make it possible for people running Red hubs to be financially sustainable. To that end, we're starting to implement service classes in our code, which would allow administrators to structure paid levels of service, if they choose to do so.
+
+Today, nomadic identity is currently in alpha state. It also needs more love, which means a solid three months of full-time development efforts.
+
+- Imagine a social network that is censorship-resistant, and privacy-respecting by design. It is not controlled by one mega-corporation, and where users cannot be easily censored by oppressive governments. So, in addition to nomadic identities, we are talking about decentralization, open source, freely software, that can run on any hardware that supports a database and a modern web browser. And we mean &quot;any hardware&quot;, from a self-hosted $35 Raspberry Pi, to the very latest Intel Xeon and AMD Bulldozer-powered server behemoths.
+
+We've realized that privacy requires full control over content. We should be able to delete, backup and download all of our content, as well as associated account/identity information. To this end, we have already implemented the initial version of account export and backup.
+
+Concerned about pages and pages of posts from months and years past? The solution should be simple: visit your settings page, specify that all content older than 7 days, with the exception of starred posts, should be automatically deleted. Done, the clutter is gone! (Consider also the privacy and anti-mass surveillance implications of this feature. PRISM disclosures have hinted that three-letter spying agencies around the world are recording all internet traffic and storing it for a few days at a time. We feel that automatic post expiration becomes a rather useful feature in this context, and implementing it is one of our near future priorities.)
+
+[b][color= grey][size=18]The Affinity Slider and Access Control Lists[/size][/color][/b]
+
+- What if the permissions and access control lists that help secure modern operating systems were extended into a communication network that lived on the internet? This means somebody could log into this network from their home site, and with the simple click of a few buttons dynamically sort who can have access to their online content on a very fine level: from restricting others from seeing your latest blog post, to sharing your bookmarks with the world.
+
+We've coded the initial version of such a new feature. It is called the &quot;Affinity Slider&quot;, and in our very-alpha user interface it looks like this.
+[img]https://friendicared.net/photo/b07b0262e3146325508b81a9d1ae4a1e-0.png[/img]
+
+{INSERT SCREENSHOT OF A MATRIX PAGE}
+
+Think of it as an easy way to filter content that you see, based on the degree of &quot;closeness&quot; to you. Move the slider to Friends, and only content coming from contacts you've tagged as friends is displayed on your home page. Uncluttering thousands of contacts, friends, RSS feeds, and other content should be a basic feature of modern communication on the web, but not at the expense of ease of use.
+
+In addition to the Affinity Slider, we also have the ACL (Access Control List). Say you want to share something with only 5 of your contacts (a blog, two friends from college, and two forums). You click on the padlock, choose the recipients, and that's it. Only those identities will recieve their posts. Furthermore, the post will be encrypted via PKI (pulic key encryption) to help maintain privacy. In the age of PRISM, we don't know all the details on what's safe out there, but we still think that privacy by design should be automatically present, invisible to the user, and easy to use.
+Attaching permissions to any data that lives on this network, potentially solves a great many headaches, while achieving simplicity in communication.
+
+Think of it this way: the internet is nothing, but a bunch of permissions and a folder of data. You, the user controls the permissions and thus the data that is relevant to you.
+
+[b][color= grey][size=20]The Matrix is Born![/size][/color][/b]
+
+After asking and striving to answer a number of such questions, we realized that we were imagining a general purpose communication network with a number of unique, and potentially game-changing, features. We called it the Red Matrix and started thinking of it as an over-lay on top of the internet as it exists today; an operating system re-invented as a communication network, with its own permissions, access control lists, protocol, connectors to others services, and open-ended possibilities via its API. The sum of the matrix is greater than it's parts. We're not building website, but a way for websites to link together and grow into something that is unique and ever-changing, with autonomy and privacy.
+
+It's a lot of work, for anyone. So far, we've got a team of a handful of volunteers, code geeks, brave early adopters, system administrators and other good people, willing to give the project a shot. We're motivated by our commitment to a free web, where privacy is built-in, and corporations don't have a stranglehold on our daily communication.
+
+We need your help to finish it and release it to the world!
+
+[b][color= grey][size=20]What have we written so far[/size][/color][/b]
+
+As of the today, the Red Matrix is in developer preview (alpha) state. It is not ready for everyday use, but some of the initial set of core features are implemented (again, in alpha state). These include:
+
+- Zot, the protocol powering the matrix
+- Single-signon logins.
+- Nomadic identities
+- Basic content manipulation: creation, deletion, rudimentary handling of photos, and media files
+- A bare-bones outline of the API and user documentation.
+
+
+[b][color= grey][size=20]Our TO-DO List[/size][/color][/b]
+
+However, in addition to finishing and polishing the above, there are a number of features that have to implemented to make the Red Matrix ready for daily use. If we meet our fundraising goal, we hope to dive into the following road map, by order of priority:
+
+- A professionally designed user interface (UI), interface that is adaptive to any user level, from end users who want to use the Matrix as a social network, to tinkerers who will put together a customized blog using Comanche, to hackers who will develop and extend the matrix using a built-in code editor, that hooks to the API and the git.
+
+- Comanche, our new markup language, similar to BBCode, with which to create elaborate and complex web pages by assembling them from a series of components - some of which are pre-built and others which can be defined on the fly. You can read more about it on our github wiki: https://github.com/friendica/red/wiki/Comanche
+
+- A unique help system that lives in the matrix, but is not based on the principles of a search engine. We have some interesting ideas about decentralizing help documentation, without going down the road of distributed search engines. Here's a hint: We shouldn't be searching at all, we should just be filtering what's already there in new, and cunning ways.
+
+- An appropriate logo, along with professionally done documentation system, both for our API, as well as users.
+
+- WordPress-like single button software upgrades
+
+- A built-in development environment, using an integrated web-based code editor such as Ace9
+
+[b][color= grey][size=20]What will the money be used for[/size][/color][/b]
+
+If we raise our targeted amount of funds, we plan to use it as follows:
+
+1) Fund 6 months {OR WHATEVER} of full time work for our current core developers, Mike, Thomas, and Tobias {ANYONE ELSE?]
+
+2) Pay a professional web developer to design an kick ass reference theme, along with a project logo.
+
+3) {WHAT ELSE?}
+
+[b][color= grey][size=20]Deadlines[/size][/color][/b]
+
+[b]March, 2014: Red Matrix Beta with the following features[/b]
+
+- {LIST FEATURES}
+
+[b][color= grey][size=20]Who We Are[/size][/color][/b]
+
+Mike: {FILL IN BIO, reference Friendica, etc.}
+
+Thomas: {bio blurb}
+
+Tobias: {bio blurb}
+
+Arto: {documentation, etc.}
+
+{WHO ELSE? WE NEED A TEAM, AT LEAST 3-4 PEOPLE}
+
+[b][color= grey][size=20]What Do I Get as a Supporter?[/size][/color][/b]
+
+Our ability to reach 1.0 stable release depends on your generosity and support. We appreciate your help, regardless of the amount! Here's what we're thinking as far as different contribution levels go:
+
+[b]$1: {CATCHY TAGLINE}[/b]
+
+We'll list your name on our initial supporters list, a Hall of Fame of the matrix!
+
+[b]$5:[/b]
+
+[b]$10: [/b]
+
+[b]$16: [/b]
+
+You get one of your Red Matrix t-shirts, as well as our undying gratitude.
+
+[b]$32: [/b]
+
+[b]$64 [/b]
+
+[b]128 [/b]
+
+[b]$256: [/b]
+
+[b]$512: [/b]
+
+[b]$1024 [/b]
+
+[b]$2048[/b]
+
+Each contributor at this level gets their own Red Matrix virtual private server, installed, hosted and supported by us for a period of 1 year.
+
+[b][color= grey][size=20]Why are we so excited about the Red Matrix?[/size][/color][/b]
+
+{SOMETHING ABOUT THE POTENTIAL IMPACT OF RED, ITS INNOVATIONS, ETC&gt;
+
+[b][color= grey][size=20]Other Ways to Help[/size][/color][/b]
+
+We're a handful of volunteers, and we understand that not everyone can contribute by donating money. There are many other ways you can in getting the Matrix to version 1.0!
+
+First, you can checkout our source code on github: https://github.com/friendica/red
+
+Maybe you can dive in and help us out with some development.
+
+Second, you can install the current developer preview on a server and start compiling bug reports.
+
+Third, register at one of the public alpha Red hubs, and get a feel for what Red is trying to do!
+
+Perhaps you're good at writing and documenting stuff. Grab an account at one of the public alphas and give us a hand.
+
+[b][color= grey][size=20]Frequently Asked Questions[/size][/color][/b]
+
+[b]1. Is Red a social network?[/b]
+
+The Red Matrix is not a social network. We're thinking of it as a general purpose communication network, with sharing, and public/private communications built into the matrix.
+
+[b]2. What is the difference between Red and Friendica?[/b]
+
+What's the difference between a passport, and a postcard?
+
+Friendica is really, really good at sending postcards. It can do all sorts of things with postcards. It can send them to your friends. It can send them to people you don't know. It can put them in an envelope and send them privately. It can run them through a photocopier and plaster them all over the internet. It can even take postcards in one language and convert them to many others so your friends who speak a different language can read them.
+
+What Friendica can't do, is wave a postcard at somebody and expect them to believe that holding this postcard prove you are who you say you are. Sure, if you've been sending somebody postcards, they might accept that it is you in the picture, but somebody who has never heard of you will not accept ownership of a postcard as proof of identity.
+
+The Red Matrix offers a passport.
+
+You can still use it to send postcards. At the same time, when you wave your passport at somebody, they do accept it as proof of identity. No longer do you need to register at every single site you use. You already have an account - it's just not necessarily at our site - so we'll ask to see your passport instead.
+
+Once you've proven your identity, a Red hub lets you use our services, as though you'd registered with directly, and we'd verified your credentials as would have happened in the olden days. These resources can, of course, be anything at all.
+
+[b]2. Why did you choose PHP, instead of Ruby or Python?[/b]
+
+The reference implementation is in PHP. We chose PHP, because it is available everywhere, and is easily configurable. We understand the debates between proponents and opponents of PHP, Ruby and Python. Nothing prevents implementations of Zot and the matrix in those languages. In fact, people on the matrix have already started developing a version of Red in Python [SOURCE?], and there is talk about future implementations in C (aiming for blazing native performance) and Java. It's free and open source, so we feel it's only a matter of time, once Red is initially completed.
+
+[b]4. Other than PHP, what other technology does Red use?[/b]
+
+We use MySQL as our database (this include any forks such as, MariaDB or Percona), and any modern webserver (Apache, nginx, etc.).
+
+[b]5. How is the Affinity Slider different from Mozilla's Persona?[/b]
+{COMPLETE}
+
+[b]6. Does the Red Matrix use encryption? Details please![/b]
+
+Yes, we do our best to use free and open source encryption libraries to help achieve privacy from general, mass surveillance.
+
+Communication between web browsers and Red hubs is encrypted using SSL certificates.
+
+Private communication on the matrix is protected by AES symmetric encryption, which is itself protected by RSA PKI (public key encryption). By default, we use AES-256-CBC, and our RSA keys are set to 4096-bits.
+
+For more info on our initial implementation of encrypted communication, check out our source code at Github: https://github.com/friendica/red/blob/master/include/crypto.php
+
+[b]7. What do you mean by decentralization? [/b]
+
+
+[b]8. Can I build my own website with in the Red Matrix?[/b]
+
+Yes. The short explanation: We've got this spiffy idea we're calling &quot;Comanche&quot;, which will allow non-programmers to build complete custom websites, and any such website will be able to connect to any other website or channel in the matrix. The goal of Comanche is to hide the technical complexities of communicating in the matrix, while encouraging people to use their creativity and put together their own unique presence on the matrix.
+
+The longer explanation: Comanche is a markup language, similar to bbcode, with which to create elaborate and complex web pages by assembling them from a series of components - some of which are pre-built and others which can be defined on the fly. Comanche uses a Page Description Language file (&quot;.pdl&quot;, pronounced &quot;puddle&quot;) to create these pages. Bbcode is not a requirement; an XML PDL file could also be used. The tag delimiters would be different. Usage is the same.
+
+Additional information is available on our Github project wiki: https://github.com/friendica/red/wiki/Comanche
+
+Comanche is another one of our priorities for the next six months.
+
+[b]9. Where can I see some technical description of Zot?[/b]
+
+Our github wiki contains a number of high-level and technical descriptions of Zot, Comanche, and Red in general: https://github.com/friendica/red/wiki
+
+[b]10. What happens if you raise more than {TARGETED NUMBER}?[/b]
+
+Raising more than our initial goal of funds, will speed up our development efforts. More developers will be able to take time off from other jobs, and concentrate efforts on finishing Red.
+
+[b]11 Can I make a contribution via Bitcoin?[/b]
+
+{YES/NO}
+
+[b]12. I have additional Questions[/]
+
+Awesome. We'd be more than happy to chat. You can find us {HERE} \ No newline at end of file
diff --git a/doc/channels.bb b/doc/channels.bb
new file mode 100644
index 000000000..3be1211a6
--- /dev/null
+++ b/doc/channels.bb
@@ -0,0 +1,27 @@
+[b]Channels[/b]
+
+Channels are simply collections of content stored in one place. A channel can represent anything. It could represent you, a website, a forum, photo albums, anything. For most people, their first channel with be &quot;Me&quot;.
+
+The most important features for a channel that represents &quot;me&quot; are:
+
+Secure and private &quot;spam free&quot; communications
+
+Identity and &quot;single-signon&quot; across the entire network
+
+Privacy controls and permissions which extend to the entire network
+
+Directory services (like a phone book)
+
+In short, a channel that represents yourself is &quot;me, on the internet&quot;.
+
+You will be required to create your first channel as part of the sign up process. You can also create additonal channels from the &quot;Select channel&quot; link.
+
+You will be asked to provide a channel name, and a short nick name. For a channel that represents yourself, it is a good idea to use your real name here to ensure your friends can find you, and connect to your channel. The short nickname will be used to generate a &quot;webbie&quot;. This is a bit like a username, and will look like an email address, taking the form nickname@domain. You should put a little thought into what you want to use here. Imagine somebody asking for your webbie and having to tell them it is &quot;llamas-are_kewl.123&quot;. &quot;llamasarecool&quot; would be a much better choice.
+
+Once you have created your channel, you will be taken to the settings page, where you can configure your channel, and set your default permissions.
+
+Once you have done this, your channel is ready to use. At [observer.url] you will find your channel &quot;stream&quot;. This is where your recent activity will appear, in reverse chronological order. If you post in the box marked &quot;share&quot;, the entry will appear at the top of your stream. You will also find links to all the other communication areas for this channel here. The &quot;About&quot; tab contains your &quot;profile&quot;, the photos page contain photo albums, and the events page contains events share by both yourself and your contacts.
+
+The &quot;Matrix&quot; page contains all recent posts from across the matrix, again in reverse chronologial order. The exact posts that appear here depend largely on your permissions. At their most permissive, you will receive posts from complete strangers. At the other end of the scale, you may see posts from only your friends - or if you're feeling really anti-social, only your own posts.
+
+As mentioned at the start, many other kinds of channel are possible, however, the creation procedure is the same. The difference between channels lies primarily in the permissions assigned. For example, a channel for sharing documents with colleagues at work would probably want more permissive settings for &quot;Can write to my &quot;public&quot; file storage&quot; than a personal account. For more information, see the permissions section. \ No newline at end of file
diff --git a/doc/checking_account_quota_usage.bb b/doc/checking_account_quota_usage.bb
new file mode 100644
index 000000000..198b15bfd
--- /dev/null
+++ b/doc/checking_account_quota_usage.bb
@@ -0,0 +1,26 @@
+[b]Checking your account quota usage (service limits usage)[/b]
+
+Your hub might implement service class limits, assigning limits to the total size of file, photo, channels, top-level posts, etc., that can be created by an account holder for a specific service level.
+
+Here's how you can quickly check how much of your assigned quota you're currently using:
+
+[b][color= grey]Check file storage quota levels[/color][/b]
+Visit the following URL in your browser:
+[code]
+https://{Red-domain}/filestorage/{your_username}
+[/code]
+
+Example:
+[code]https://friendicared.net/filestorage/test2
+[/code]
+
+[b][color= grey]Check uploaded photos storage quota levels[/color][/b]
+[code]
+https://{Red-domain}photos/{your_username}/upload/
+[/code]
+
+Example:
+[code]https://friendicared.net/photos/test2/upload/
+[/code]
+
+Return to the [url=[baseurl]/help/main]Main documentation page[/url] \ No newline at end of file
diff --git a/doc/cloud.bb b/doc/cloud.bb
new file mode 100644
index 000000000..8997b88fe
--- /dev/null
+++ b/doc/cloud.bb
@@ -0,0 +1,25 @@
+[b]Personal Cloud Storage[/b]
+
+The Red Matrix provides an ability to store privately and/or share arbitrary files with friends.
+
+You may either upload files from your computer into your storage area, or copy them directly from the operating system using the WebDAV protocol.
+
+On many public servers there may be limits on disk usage.
+
+[b]File Attachments[/b]
+
+The quickest and easiest way to share files is through file attachments. In the row of icons below the status post editor is a tool to upload attachments. Click the tool, select a file and submit. After the file is uploaded, you will see an attachment code placed inside the text region. Do not edit this line or it may break the ability for your friends to see the attachment. You can use the post permissions dialogue box or privacy hashtags to restrict the visibility of the file - which will be set to match the permissions of the post your are sending.
+
+To delete attachments or change the permissions on the stored files, visit [observer.baseurl]/filestorage/{{username}}&quot; replacing {{username}} with the nickname you provided during channel creation.
+
+[b]Web Access[/b]
+
+Your files are visible on the web at the location &quot;cloud/{{username}}&quot; to anybody who is allowed to view them. If the viewer has sufficient privileges, they may also have the ability to create new files and folders/directories.
+
+[b]WebDAV access[/b]
+
+See: [zrl=[baseurl]/help/cloud_desktop_clients]Cloud Desktop Clients[/zrl]
+
+[b]Permissions[/b]
+
+When using WebDAV, the file is created with your channel's default file permissions and this cannot be changed from within the operating system. It also may not be as restrictive as you would like. What we've found is that the preferred method of making files private is to first create folders or directories; then visit &quot;filestorage/{{username}}&quot;; select the directory and change the permissions. Do this before you put anything into the directory. The directory permissions take precedence so you can then put files or other folders into that container and they will be protected from unwanted viewers by the directory permissions. It is common for folks to create a &quot;personal&quot; or &quot;private&quot; folder which is restricted to themselves. You can use this as a personal cloud to store anything from anywhere on the web or any computer and it is protected from others. You might also create folders for &quot;family&quot; and &quot;friends&quot; with permission granted to appropriate collections of channels. \ No newline at end of file
diff --git a/doc/cloud_desktop_clients.bb b/doc/cloud_desktop_clients.bb
new file mode 100644
index 000000000..b715678d9
--- /dev/null
+++ b/doc/cloud_desktop_clients.bb
@@ -0,0 +1,16 @@
+[b]Cloud Desktop Clients[/b]
+
+[b]Windows Clients[/b]
+
+[li][zrl=[baseurl]/help/dav_windows]Windows Internal Client[/zrl][/li]
+
+
+[b]Linux Clients[/b]
+
+[li][zrl=[baseurl]/help/dav_mount]Command Line as a Filesystem[/zrl][/li]
+[li][zrl=[baseurl]/help/dav_dolphin]Dolphin[/zrl][/li]
+[li][zrl=[baseurl]/help/dav_konqueror]Konqueror[/zrl][/li]
+[li][zrl=[baseurl]/help/dav_nautilus]Nautilus[/zrl][/li]
+[li][zrl=[baseurl]/help/dav_nemo]Nemo[/zrl][/li]
+
+Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl] \ No newline at end of file
diff --git a/doc/comanche.bb b/doc/comanche.bb
new file mode 100644
index 000000000..ea2069b35
--- /dev/null
+++ b/doc/comanche.bb
@@ -0,0 +1,146 @@
+[b]Comanche Page Description Language[/b]
+
+Comanche is a markup language similar to bbcode with which to create elaborate and complex web pages by assembling them from a series of components - some of which are pre-built and others which can be defined on the fly. Comanche uses a Page Decription Language to create these pages.
+
+Comanche primarily chooses what content will appear in various regions of the page. The various regions have names and these names can change depending on what layout template you choose.
+
+Currently there are two layout templates, unless your site provides additional layouts (TODO list all templates)
+
+[code]
+ default
+
+ The default template defines a &quot;nav&quot; region across the top, &quot;aside&quot; as a fixed width sidebar,
+ &quot;content&quot; for the main content region, and &quot;footer&quot; for a page footer.
+
+
+ full
+
+ The full template defines the same as the default template with the exception that there is no &quot;aside&quot; region.
+[/code]
+
+To choose a layout template, use the 'layout' tag.
+
+[code]
+ [layout]full[/layout]
+[/code]
+
+The default template will be used if no other template is specified. The template can use any names it desires for content regions. You will be using 'region' tags to decide what content to place in the respective regions.
+
+
+Two &quot;macros&quot; have been defined for your use.
+[code]
+ $nav - replaced with the site navigation bar content.
+ $content - replaced with the main page content.
+[/code]
+
+By default, $nav is placed in the &quot;nav&quot; page region and $content is placed in the &quot;content&quot; region. You only need to use these macros if you wish to re-arrange where these items appear, either to change the order or to move them to other regions.
+
+
+To select a theme for your page, use the 'theme' tag.
+[code]
+ [theme]apw[/theme]
+[/code]
+This will select the theme named &quot;apw&quot;. By default your channel's preferred theme will be used.
+
+
+[b]Regions[/b]
+
+Each region has a name, as noted above. You will specify the region of interest using a 'region' tag, which includes the name. Any content you wish placed in this region should be placed between the opening region tag and the closing tag.
+
+[code]
+ [region=aside]....content goes here....[/region]
+ [region=nav]....content goes here....[/region]
+[/code]
+
+
+[b]Menus and Blocks[/b]
+
+Your webpage creation tools allow you to create menus and blocks, in addition to page content. These provide a chunk of existing content to be placed in whatever regions and whatever order you specify. Each of these has a name which you define when the menu or block is created.
+[code]
+ [menu]mymenu[/menu]
+[/code]
+This places the menu called &quot;mymenu&quot; at this location on the page, which must be inside a region.
+[code]
+ [block]contributors[/block]
+[/code]
+This places a block named &quot;contributors&quot; in this region.
+
+
+[b]Widgets[/b]
+
+Widgets are executable apps provided by the system which you can place on your page. Some widgets take arguments which allows you to tailor the widget to your purpose. (TODO: list available widgets and arguments). The base system provides
+[code]
+ profile - widget which duplicates the profile sidebar of your channel page. This widget takes no arguments
+ tagcloud - provides a tag cloud of categories
+ count - maximum number of category tags to list
+[/code]
+
+
+Widgets and arguments are specified with the 'widget' and 'arg' tags.
+[code]
+ [widget=recent_visitors][arg=count]24[/arg][/widget]
+[/code]
+
+This loads the &quot;recent_visitors&quot; widget and supplies it with the argument &quot;count&quot; set to &quot;24&quot;.
+
+
+[b]Comments[/b]
+
+The 'comment' tag is used to delimit comments. These comments will not appear on the rendered page.
+
+[code]
+ [comment]This is a comment[/comment]
+[/code]
+
+
+[b]Complex Example[/b]
+
+[code]
+ [comment]use an existing page template which provides a banner region plus 3 columns beneath it[/comment]
+
+ [layout]3-column-with-header[/layout]
+
+ [comment]Use the &quot;darknight&quot; theme[/comment]
+
+ [theme]darkknight[/theme]
+
+ [comment]Use the existing site navigation menu[/comment]
+
+ [region=nav]$nav[/region]
+
+ [region=side]
+
+ [comment]Use my chosen menu and a couple of widgets[/comment]
+
+ [menu]myfavouritemenu[/menu]
+
+ [widget=recent_visitors]
+ [arg=count]24[/arg]
+ [arg=names_only]1[/arg]
+ [/widget]
+
+ [widget=tagcloud][/widget]
+ [block]donate[/block]
+
+ [/region]
+
+
+
+ [region=middle]
+
+ [comment]Show the normal page content[/comment]
+
+ $content
+
+ [/region]
+
+
+
+ [region=right]
+
+ [comment]Show my condensed channel &quot;wall&quot; feed and allow interaction if the observer is allowed to interact[/comment]
+
+ [widget]channel[/widget]
+
+ [/region]
+[/code] \ No newline at end of file
diff --git a/doc/connecting_to_channels.bb b/doc/connecting_to_channels.bb
new file mode 100644
index 000000000..b81abc7bd
--- /dev/null
+++ b/doc/connecting_to_channels.bb
@@ -0,0 +1,17 @@
+[b]Connecting To Channels[/b]
+
+Connections in the Red Matrix can take on a great many different meanings. But let's keep it simple, you want to be friends with somebody like you are familiar with from social networking. How do you do it?
+
+First, you need to find some channels to connect to. There are two primary ways of doing this. Firstly, setting the &quot;Can send me their channel stream and posts&quot; permission to &quot;Anybody in this network&quot; will bring posts from complete strangers to your matrix. This will give you a lot of public content and should hopefully help you find interesting, entertaing people, forums, and channels.
+
+The next thing you can do is look at the Directory. The directory is available on every Red Matrix website which means searching from your own site will bring in results from the entire network. You can search by name, interest, location and keyword. This is incomplete, so we'll improve this paragraph later.
+
+To connect with other Red Matrix channels:
+
+Visit their profile by clicking their photograph in the directory, matrix, or comments, and it will open their channel home page in the channel viewer. At the left hand side of the screen, you will usually see a link called &quot;connect&quot;. Click it, and you're done. Depending on the settings of the channel you are connecting to, you may need to wait for them to approve your connection, but no further action is needed on your part. Once you've initiated the connection, you will be taken to the connection editor. This allows you to assign specific permissions for this channel. If you don't allow any permissions, communication will be very limited. There are some quick links which you can use to avoid setting individual permissions. To provide a social network environment, &quot;Full Sharing&quot; is recommended. You may review the settings that are applied with the quick links to ensure they are suitable for the channel you are connecting with and adjust if necessary. Then scroll to the bottom of the page and click &quot;Submit&quot;.
+
+You may also connect with any channel by visiting the &quot;Connections&quot; page of your site or the Directory and typing their &quot;webbie&quot; into the &quot;Add New Connection&quot; field. Use this method if somebody tells you their webbie and you wish to connect with them. A webbie looks like an email address; for example &quot;bob@example.com&quot;. The process is the same as connecting via the &quot;Connect&quot; button - you will then be taken to the connection editor to set permissions.
+
+[b]Premium Channels[/b]
+
+Some channels are designated &quot;Premium Channels&quot; and may require some action on your part before a connection can be established. The Connect button will for these channels will take you to a page which lists in detail what terms the channel owner has set. If the terms are accepted, the connection will then proceed normally. In some cases, such as with celebrities and world-reknowned publishers, this may involve payment. If you do not agree to the terms, the connection will not proceed, or it may proceed but with reduced permissions allowed on your interactions with that channel. \ No newline at end of file
diff --git a/doc/dav_davfs2.md b/doc/dav_davfs2.md
new file mode 100644
index 000000000..e4313e810
--- /dev/null
+++ b/doc/dav_davfs2.md
@@ -0,0 +1,58 @@
+**Installing The Cloud as a Filesystem on Linux**
+
+To install your cloud directory as a filesystem, you first need davfs2 installed. 99% of the time, this will be included in your distributions repositories. In Debian
+
+`apt-get install davfs2`
+
+If you want to let normal users mount the filesystem
+
+`dpkg-reconfigure davfs2`
+
+and select "yes" at the prompt.
+
+Now you need to add any user you want to be able to mount dav to the davfs2 group
+
+`usermod -aG davfs2 {{DesktopUser}}`
+
+Edit /etc/fstab
+
+`nano /etc/fstab`
+
+to include your cloud directory by adding
+
+`example.com/cloud/{{Username}} /mount/point davfs user,noauto,uid={{DesktopUser}},file_mode=600,dir_mode=700 0 1`
+
+Where {{Username}} is your username at your Red hub, example.com is the URL of your hub, /mount/point is the location you want to mount the cloud, and {{DesktopUser}} is the user you log in to one your computer. Note that if you are mounting as a normal user (not root) the mount point must be in your home directory.
+
+For example, if I wanted to mount my cloud to a directory called 'cloud' in my home directory, and my username was bob, my fstab would be
+
+`example.com/cloud/ /home/bob/cloud davfs user,noauto,uid=bob,file_mode=600,dir_mode=700 0 1`
+
+Now, create the mount point.
+
+`mkdir /home/bob/cloud`
+
+and also create a directory file to store your credentials
+
+`mkdir /home/bob/.davfs2`
+
+Create a file called 'secrets'
+
+`nano /home/bob/.davfs2/secrets`
+
+and add your cloud login credentials
+
+`example.com/cloud {{username}} {{password}}`
+
+
+Where {{username}} and {{password}} are the username and password for your hub.
+
+Don't let this file be writeable by anyone who doesn't need it with
+
+`chmod 600 /home/bob/.davfs2/secrets`
+
+Finally, mount the drive.
+
+`mount example.com/cloud/{{username}}`
+
+You can now find your cloud at /home/bob/cloud and use it as though it were part of your local filesystem - even if the applications you are using have no dav support themselves.
diff --git a/doc/dav_dolphin.bb b/doc/dav_dolphin.bb
new file mode 100644
index 000000000..4429303d3
--- /dev/null
+++ b/doc/dav_dolphin.bb
@@ -0,0 +1,9 @@
+[b]Using The Cloud - Dolphin[/b]
+
+Visit webdavs://example.com/cloud where &quot;example.com&quot; is the URL of your hub.
+
+When prompted for a username and password, enter your username (the first part of your webbie - no @ or domain name) and password for your normal account.
+
+Note, if you are already logged in to the web interface via Konqueror, you will not be prompted for further authentication.
+
+Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl] \ No newline at end of file
diff --git a/doc/dav_konqueror.bb b/doc/dav_konqueror.bb
new file mode 100644
index 000000000..f44c11fb2
--- /dev/null
+++ b/doc/dav_konqueror.bb
@@ -0,0 +1,11 @@
+[b]Using The Cloud - Konqueror[/b]
+
+Simply visit webdavs://example.com/cloud after logging in to your hub, where &quot;example.com&quot; is the URL of your hub.
+
+No further authentication is required if you are logged in to your hub in the normal manner.
+
+Additionally, if one has authenticated at a different hub during their normal browser session, your identity will be passed to the cloud for these hubs too - meaning you can access any private files on any server, as long as you have permissions to see them, as long as you have visited that site earlier in your session.
+
+This functionality is normally restricted to the web interface, and is not available to any desktop software other than KDE.
+
+Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl] \ No newline at end of file
diff --git a/doc/dav_mount.bb b/doc/dav_mount.bb
new file mode 100644
index 000000000..f86e2a6e5
--- /dev/null
+++ b/doc/dav_mount.bb
@@ -0,0 +1,63 @@
+[b]Mounting As A Filesystem[/b]
+
+To install your cloud directory as a filesystem, you first need davfs2 installed. 99% of the time, this will be included in your distributions repositories. In Debian
+
+[code]apt-get install davfs2[/code]
+
+If you want to let normal users mount the filesystem
+
+[code] dpkg-reconfigure davfs2[/code]
+
+and select &quot;yes&quot; at the prompt.
+
+Now you need to add any user you want to be able to mount dav to the davfs2 group
+
+[code]usermod -aG davfs2 &lt;DesktopUser&gt;[/code]
+
+Edit /etc/fstab
+
+[code]nano /etc/fstab[/code]
+
+ to include your cloud directory by adding
+
+[code]
+example.com/cloud/ /mount/point davfs user,noauto,uid=&lt;DesktopUser&gt;,file_mode=600,dir_mode=700 0 1
+[/code]
+
+Where example.com is the URL of your hub, /mount/point is the location you want to mount the cloud, and &lt;DesktopUser&gt; is the user you log in to one your computer. Note that if you are mounting as a normal user (not root) the mount point must be in your home directory.
+
+For example, if I wanted to mount my cloud to a directory called 'cloud' in my home directory, and my username was bob, my fstab would be
+
+[code]example.com/cloud/ /home/bob/cloud davfs user,noauto,uid=bob,file_mode=600,dir_mode=700 0 1[/code]
+
+Now, create the mount point.
+
+[code]mkdir /home/bob/cloud[/code]
+
+and also create a directory file to store your credentials
+
+[code]mkdir /home/bob/.davfs2[/code]
+
+Create a file called 'secrets'
+
+[code]nano /home/bob/.davfs2/secrets[/code]
+
+and add your cloud login credentials
+
+[code]
+example.com/cloud &lt;username&gt; &lt;password&gt;
+[/code]
+
+Where &lt;username&gt; and &lt;password&gt; are the username and password [i]for your hub[/i].
+
+Don't let this file be writeable by anyone who doesn't need it with
+
+[code]chmod 600 /home/bob/.davfs2/secrets[/code]
+
+Finally, mount the drive.
+
+[code]mount example.com/cloud[/code]
+
+You can now find your cloud at /home/bob/cloud and use it as though it were part of your local filesystem - even if the applications you are using have no dav support themselves.
+
+Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl] \ No newline at end of file
diff --git a/doc/dav_nautilus.bb b/doc/dav_nautilus.bb
new file mode 100644
index 000000000..d3c478aa0
--- /dev/null
+++ b/doc/dav_nautilus.bb
@@ -0,0 +1,9 @@
+[b]Using The Cloud - Nautilus[/b]
+
+1. Open a File browsing window (that's Nautilus)
+2. Select File &gt; Connect to server from the menu
+3. Type davs://&lt;domain_name&gt;/cloud/&lt;your_username&gt; and click Connect
+4. You will be prompted for your username (same as above) and password
+5. Your personal DAV directory will be shown in the window
+
+Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl] \ No newline at end of file
diff --git a/doc/dav_nemo.bb b/doc/dav_nemo.bb
new file mode 100644
index 000000000..a2553c1d5
--- /dev/null
+++ b/doc/dav_nemo.bb
@@ -0,0 +1,19 @@
+[b]Using The Cloud - Nemo[/b]
+
+For (file browser) Nemo 1.8.2 under Linux Mint 15, Cinnamon 1.8.8. Nemo ist the standard file browser there.
+
+1st way
+type &quot;davs://yourusername@friendicared.net/cloud&quot; in the address bar
+
+2nd way
+Menu &gt; file &gt; connect to server
+Fill the dialog
+- Server: friendicared.net
+- Type: Secure WebDAV (https)
+- Folder: /cloud
+- Username: yourusername
+- Passwort: yourpasswort
+
+Once open you can set a bookmark.
+
+Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl] \ No newline at end of file
diff --git a/doc/dav_windows.bb b/doc/dav_windows.bb
new file mode 100644
index 000000000..600944b68
--- /dev/null
+++ b/doc/dav_windows.bb
@@ -0,0 +1,11 @@
+[b]Using The Cloud - Windows Internal Client[/b]
+
+RedDav using Windows 7 graphical user interface wizard:
+1. Left-click the Start-button to open the start menu.
+2. Right-click the My computer icon to access its menu.
+3. Left-click Map network drive... to open the connection dialog wizard.
+4. Type #^[url=https://example.net/cloud/your_user_name]https://example.net/cloud/your_user_name[/url] in the textbox and click the Complete button where &quot;example.net&quot; is the URL of your hub.
+5. Type your Red account's user name. IMPORTANT - NO at-sign or domain name.
+6. Type your Red password
+
+Return to the [zrl=[baseurl]/help/main]Main documentation page[/zrl] \ No newline at end of file
diff --git a/doc/de/Home.md b/doc/de/Home.md
new file mode 100644
index 000000000..d603af11b
--- /dev/null
+++ b/doc/de/Home.md
@@ -0,0 +1,43 @@
+Dokumentation und Ressourcen zur Red-Matrix
+===========================================
+
+
+**Inhalt**
+
+* [Grundlagen zu Red-Konten](help/Kontengrundlagen)
+* [Profile](help/Profile)
+* [Channels](help/Channels)
+* [Connecting to Channels](help/Connecting-to-Channels)
+* [Permissions](help/Permissions)
+* [Cloud Storage](help/Cloud)
+* [But Wait - There's More. MUCH More...](help/Features)
+* [Tags and Mentions](help/Tags-and-Mentions)
+* [Web Pages](help/Webpages)
+* [Remove Account](help/Remove-Account)
+* [BBcode reference for posts and comments](help/bbcode)
+
+**Technische Dokumentation**
+
+* [Install](help/Install)
+* [Comanche Page Descriptions](help/Comanche)
+* [Plugins](help/Plugins)
+* [Schemas](help/Schema-development)
+* [Developers](help/Developers)
+* [Intro for Developers](help/Intro-for-Developers)
+* [API functions](help/api_functions)
+* [Red Functions 101](help/dev-function-overview)
+* [Code-Referenz (mit doxygen generiert, Englisch)](doc/html)
+* [To-Do list for the Red Documentation Project](help/To-Do)
+* [To-Do list for Developers](help/To-Do-Code)
+
+**Externe Ressourcen**
+
+* [External Resource Links](help/External-Resources)
+* [Haupt-Website](https://github.com/friendica/red)
+* [Plugins/Addons-Website](https://github.com/friendica/red-addons)
+* [Assets-Website](https://github.com/friendica/red-assets)
+* [Entwickler-Kanal](http://zothub.com/channel/one)
+
+**Ãœber**
+
+* [Server- und Versionsinformationen](siteinfo)
diff --git a/doc/de/Kontengrundlagen.md b/doc/de/Kontengrundlagen.md
new file mode 100644
index 000000000..23a8da87a
--- /dev/null
+++ b/doc/de/Kontengrundlagen.md
@@ -0,0 +1,72 @@
+Grundlagen zu Red-Konten
+========================
+
+* [Zurück zur Hilfe-Startseite](help)
+
+
+**Registrieren**
+
+Nicht alle Server in der Red-Matrix erlauben jedem, sich zu registrieren.
+Wenn eine Registrierung möglich ist, erscheint unter dem Anmelde-Formular
+ein Link mit dem Titel „Registrieren“, der Dich zur Registrierungs-Seite
+des Servers führt. Auf manchen Servern wirst Du auf einen anderen Server
+weitergeleitet, der Registrierungen erlaubt. Da alle Red-Server
+miteinander verbunden sind, ist es egal, auf welchem Du Dich registrierst.
+
+*Deine E-Mail-Adresse*
+
+Bitte gib eine funktionierende E-Mail-Adresse an. Sie wird **nie**
+veröffentlicht. Wenn Du willst, kannst Du Dir an diese Adresse
+Benachrichtigungen schicken lassen, wenn Du neue Nachrichten oder Beiträge
+erhalten hast. Sie wird außerdem benutzt, um vergessene Passwörter
+wiederherstellen zu können.
+
+*Passwort*
+
+Gib ein Passwort Deiner Wahl ein und wiederhole es in der zweiten Box, um
+sicherzugehen, dass Du Dich nicht vertippt hast. Da die Red-Matrix
+dezentralisierten Identitäsnachweis beherrscht, kannst Du Dich mit Deinem
+Konto auf vielen anderen Webseiten anmelden.
+
+*Nutzungsbedingungen*
+
+Klicke auf den Link, um die Nutzungsbedingungen dieses Servers zu lesen.
+Wenn Du sie gelesen hast, setze den Haken im Registrierungsformular, um
+sie zu akzeptieren.
+
+*Registrieren*
+
+Wenn Du alles ausgefüllt hast, klicke auf den „Registrieren“-Knopf. Bei
+manchen Servern muss der Administrator Deiner Registrierung erst noch
+zustimmen, bevor Du Dein Konto nutzen kannst. Falls das der Fall ist,
+wird Dir das entsprechend angezeigt. Du erhältst dann eine E-Mail, wenn
+die Registrierung vollendet wurde. (Sicherheitshalber auch Spam-Ordner
+überprüfen!)
+
+*Einen Kanal anlegen*
+
+Als nächstes kommst Du direkt auf den „Kanal hinzufügen“-Bildschirm. Dein
+erster Kanal wird normalerweise der sein, der Dich selbst repräsentiert.
+Es ist also sinnvoll, Deinen Namen oder Dein Pseudonym als Kanal-Namen zu
+verwenden.
+
+Der Kanal-Name ist der Titel oder eine kurze Beschreibung des Kanals. Der
+„Spitzname“ ist so etwas wie ein Benutzername. Was Du hier eingibst wird
+Teil Deiner Kanal-Adresse, die Andere benutzen, um sich mit Dir zu
+verbinden, und die Du selbst benutzt, um Dich auf anderen Servern
+anzumelden. Die Kanal-Adresse sieht aus wie eine E-Mail-Adresse, zum
+Beispiel so: spitzname@deinserver.xyz
+
+Wenn Dein Kanal angelegt ist, geht es direkt weiter zu den Einstellungen.
+Dort kannst Du Zugriffsrechte setzen, Funktionen zu- oder abschalten und
+so weiter. Diese Punkte werden auf den entsprechenden Hilfeseiten erklärt.
+
+**Siehe auch**
+
+* [Permissions](help/Permissions)
+
+* [Profile](help/Profile)
+
+* [Remove Account](help/Remove-Account)
+
+
diff --git a/doc/de/Profile.md b/doc/de/Profile.md
new file mode 100644
index 000000000..6ee06a55d
--- /dev/null
+++ b/doc/de/Profile.md
@@ -0,0 +1,97 @@
+Profile
+=======
+
+* [Zurück zur Hilfe-Startseite](help)
+
+In Red kannst Du beliebig viele Profile anlegen. Du kannst mehrere Profile
+nutzen, um verschiedenen Kontakten und Profilbesuchern unterschiedliche
+Seiten Deiner Persönlichkeit zu zeigen. Das ist nicht das gleiche wie das
+Anlegen mehrerer _Kanäle_.
+
+Mehrere Kanäle erlauben es, komplett voneinander getrennte Informationen
+zu verwalten. Du könntest zum Beispiel einen Kanal für Dich selbst
+anlegen, einen für Deinen Schwimmverein, einen für Dein Blog und so weiter
+und so fort.
+
+Ein Profil erlaubt es, unterschiedlichen Leuten unterschiedliche
+Informationen über einen Kanal zu präsentieren. Beispiel: In Deinem
+Standard-Profil, das alle Profilbesucher zu sehen bekommen, könnte nur
+Dein Vorname stehen, sonst keine weiteren Informationen. Freunde und
+Bekannte könnten Deinen kompletten Realnamen und Deine Postadresse zu
+sehen bekommen, und im Profil für Deinen engsten Freundeskreis könnten
+peinliche Hobbies Trinkrekorde ihren Platz finden.
+
+Jeder Kanal hat ein Standard-Profil (öffentliches Profil), das vor niemandem
+versteckt werden kann (außer evtl. auf privaten Servern, die nicht mit der
+Matrix verbunden sind). Du kannst und solltest Dich in der Auswahl dessen, was
+Du im Standard-Profil von Dir preisgibst, stark einschränken.
+
+Trotzdem: Wenn Du willst, dass Freunde Dich finden können, macht es Sinn,
+folgende Informationen ins öffentliche Profil einzutragen:
+
+* Deinen Realnamen oder zumindest einen Spitznamen, unter dem Dich jeder kennt
+* Ein Foto, das auch wirklich Dich zeigt
+* Deinen Wohnort, oder zumindest Land oder Bundesland
+
+Ohne diese Informationen könnte es passieren, dass Du hier sehr einsam
+bist. Die meisten Leute verbinden sich nicht mit jemandem, von dem sie nur
+einen Fake-Namen und ein Foto sehen, das noch nicht einmal einen Menschen
+zeigt.
+
+Wenn Du Leute kennenlernen möchtest, die ähnliche Interessen haben wie Du,
+nimm Dir einen Moment Zeit und füge einige Schlüsselwörter hinzu. Zum
+Beispiel „Musik, Linux, Fotografie“ oder was auch immer. Danach können
+andere dann im Verzeichnis suchen. Du kannst so viele Schlüsselwörter
+eingeben wie Du möchtest.
+
+Um alternative Profile zu erstellen, klicke auf „Profil ansehen“ im Menü
+Deines Red-Servers und dann auf den Bleistift am Profilfoto. Dann kannst
+Du existierende Profile bearbeiten, Dein Profilfoto verändern, Dinge zu
+einem Profil hinzufügen oder ein neues Profil erstellen. Du kannst auch
+ein Profil „klonen“, wenn Du nur einige wenige Einträge ändern willst,
+ohne die ganzen Informationen noch einmal einzugeben. Klicke dazu auf das
+Profil, das Du klonen willst, und wähle dann „Dieses Profil klonen“.
+
+In der Liste Deiner Profile kannst Du auch bestimmen, wer ein bestimmtes
+Profil zu sehen bekommt. Klicke dazu auf „Sichtbarkeit bearbeiten“ neben
+dem Profil, um das es geht (gibt es nur bei Profilen, die nicht Dein
+Standard-Profil sind). Klicke dann auf die Bilder derjenigen Kontakte, die
+dieses Profil sehen sollen – sie sind dann oben zu sehen. Wenn Du oben auf
+ein Bild klickst, wird dieser Kontakt wieder aus der Gruppe derjenigen
+herausgenommen, die dieses Profil zu sehen bekommen.
+
+Hast Du einem Kontakt ein Profil zugeordnet, wird er immer dieses Profil
+sehen, wenn er sich Dein Profil ansieht. Besucht er Deinen Red-Server,
+ohne sich anzumelden, sieht er aber weiterhin Dein Standard-Profil.
+
+Auf der allgemeinen „Einstellungen“-Seite gibt es eine Einstellung, mit
+der Du festlegen kannst, ob Dein Standard-Profil in den Red-Verzeichnissen
+veröffentlicht werden soll.
+
+Wenn Du nicht möchtest, dass andere Dich finden können, ohne dass Du ihnen
+Deine Kanal-Adresse gibst, kannst Du so verhindern, dass Dein Profil
+veröffentlicht wird.
+
+**Schlüsselwörter und Verzeichnissuche**
+
+Im Verzeichnis (Kanal-Anzeiger) kannst Du nach Leuten suchen, die ihre
+Profile veröffentlichen. Zum Beispiel, indem Du Namen oder Spitznamen
+eingibst. Es werden aber auch viele andere Profilfelder durchsucht, zum
+Beispiel Geschlecht, Wohnort, Hobbys, Arbeit/Anstellung und
+Schule/Ausbildung und die Schlüsselwörter. Wenn Du Schlüsselwörter in Dein
+Profil einträgst, können Dich Leute mit ähnlichen Interessen finden. Sie
+werden außerdem bei den Kanal-Vorschlägen benutzt. Sie sind im Verzeichnis
+nicht direkt sichtbar, wohl aber auf Deiner Profil-Seite.
+
+In Verzeichnis-Suchen kann auch boolesche Logik benutzt werden. Du kannst
+also nach „+lesbisch +Hamburg“ suchen, um Leute zu finden, deren sexuelle
+Orientierung lesbisch ist (oder deren Schlüsselwörter „lesbisch“
+enthalten), und die in Hamburg leben. Mehr Informationen über boolesche
+Suchen findest Du im Abschnitt „Topical Tags“ auf der Hilfeseite
+[Tags-and-Mentions](help/Tags-and-Mentions).
+
+Auf Deiner „Verbindungen“-Seite und im Verzeichnis (Kanal-Anzeiger) gibt
+es einen Link „Vorschläge“ bzw. „Kanal-Vorschläge“. Dort findest Du
+Kanäle, die gleiche oder ähnliche Schlüsselwörter im Profil haben wie Du.
+Je mehr Schlüsselwörter Du in Dein Standard-Profil einträgst, desto besser
+werden die Suchergebnisse. Sie sind nach relevanz sortiert.
diff --git a/doc/debian_install.bb b/doc/debian_install.bb
new file mode 100644
index 000000000..b2e74fdde
--- /dev/null
+++ b/doc/debian_install.bb
@@ -0,0 +1,29 @@
+[b]Installing On Debian[/b]
+
+While following the instructions for any other installation will work on Debian, for this platform we also provide an install script which can be [zrl=https://friendicared.net/cloud/docs/debian-setup.sh]downloaded here[/zrl]
+
+[b]THIS SCRIPT IS MEANT TO BE RUN ON A NEW OR JUST REINSTALLED SERVER[/b]
+
+Some programs such as Apache &amp; Samba are removed by this script.
+
+Note, this script will use Nginx as the webserver, and dropbear for ssh. It will also install PHP and MySQL from the DotDeb repository. The DotDeb is not an official Debian repository, though it is maintained by Debian developers.
+
+The file setup-debian.sh has to be on your server.
+
+For the initial setup git may not be installed on your server, to install git:
+
+[code]apt-get install git[/code]
+
+If wget is installed try
+
+[code]wget --no-check-certificate --timestamping [zrl=https://friendicared.net/cloud/docs/setup-debian.sh]https://friendicared.net/cloud/docs/debian-setup.sh[/zrl][/code]
+
+To install wget:
+[code]apt-get install wget[/code]
+
+For intitial server setup run
+[code]bash setup-debian.sh all[/code]
+
+To install Red for domain example.com, after the initial server setup run
+
+[code]bash setup-debian.sh red example.com[/code] \ No newline at end of file
diff --git a/doc/developer_function_primer.bb b/doc/developer_function_primer.bb
new file mode 100644
index 000000000..8a41c81f4
--- /dev/null
+++ b/doc/developer_function_primer.bb
@@ -0,0 +1,45 @@
+[b]Red development - some useful basic functions[/b]
+
+[b]get_account_id()[/b]
+
+Returns numeric account_id if authenticated or 0. It is possible to be authenticated and not connected to a channel.
+
+[b]local_user()[/b]
+
+Returns authenticated numeric channel_id if authenticated and connected to a channel or 0. Sometimes referred to as $uid in the code.
+
+[b]remote_user()[/b]
+
+Returns authenticated string hash of Red global identifier, if authenticated via remote auth, or an empty string.
+
+[b]get_app()[/b]
+
+Returns the global app structure ($a).
+
+[b]App::get_observer()[/b]
+
+(App:: is usually assigned to the global $a), so $a-&gt;get_observer() or get_app()-&gt;get_observer() - returns an xchan structure representing the current viewer if authenticated (locally or remotely).
+
+[b]get_config($family,$key), get_pconfig($uid,$family,$key)[/b]
+
+Returns the config setting for $family and $key or false if unset.
+
+[b] set_config($family,$key,$value), set_pconfig($uid,$family,$key,$value)[/b]
+
+Sets the value of config setting for $family and $key to $value. Returns $value. The config versions operate on system-wide settings. The pconfig versions get/set the values for a specific integer uid (channel_id).
+
+[b]dbesc()[/b]
+
+Always escape strings being used in DB queries. This function returns the escaped string. Integer DB parameters should all be proven integers by wrapping with intval()
+
+[b]q($sql,$var1...)[/b]
+
+Perform a DB query with the SQL statement $sql. printf style arguments %s and %d are replaced with variable arguments, which should each be appropriately dbesc() or intval(). SELECT queries return an array of results or false if SQL or DB error. Other queries return true if the command was successful or false if it wasn't.
+
+[b]t($string)[/b]
+
+Returns the translated variant of $string for the current language or $string (default 'en' language) if the language is unrecognised or a translated version of the string does not exist.
+
+[b]x($var), $x($array,$key)[/b]
+
+Shorthand test to see if variable $var is set and is not empty. Tests vary by type. Returns false if $var or $key is not set. If variable is set, returns 1 if has 'non-zero' value, otherwise returns 0. -- e.g. x('') or x(0) returns 0; \ No newline at end of file
diff --git a/doc/developers.bb b/doc/developers.bb
new file mode 100644
index 000000000..b925d31fb
--- /dev/null
+++ b/doc/developers.bb
@@ -0,0 +1,52 @@
+[b]Red Developer Guide[/b]
+
+[b]Here is how you can join us.[/b]
+
+First, get yourself a working git package on the system where you will be
+doing development.
+
+Create your own github account.
+
+You may fork/clone the Red repository from [url=https://github.com/friendica/red.git]https://github.com/friendica/red.git[/url]
+
+Follow the instructions provided here: [url=http://help.github.com/fork-a-repo/]http://help.github.com/fork-a-repo/[/url]
+to create and use your own tracking fork on github
+
+Then go to your github page and create a &quot;Pull request&quot; when you are ready
+to notify us to merge your work.
+
+[b]Translations[/b]
+
+Our translations are managed through Transifex. If you wish to help out translating the Red Matrix to another language, sign up on transifex.com, visit [url=https://www.transifex.com/projects/p/red-matrix/]https://www.transifex.com/projects/p/red-matrix/[/url] and request to join one of the existing language teams or create a new one. Notify one of the core developers when you have a translation update which requires merging, or ask about merging it yourself if you're comfortable with git and PHP. We have a string file called 'messages.po' which is gettext compliant and a handful of email templates, and from there we automatically generate the application's language files.
+
+[zrl=https://friendicared.net/pages/doc/translations]Translations - More Info[/zrl]
+
+[b]Important[/b]
+
+Please pull in any changes from the project repository and merge them with your work **before** issuing a pull request. We reserve the right to reject any patch which results in a large number of merge conflicts. This is especially true in the case of language translations - where we may not be able to understand the subtle differences between conflicting versions.
+
+Also - **test your changes**. Don't assume that a simple fix won't break something else. If possible get an experienced Red developer to review the code.
+
+Further documentation can be found at the Github wiki pages at: [url=https://github.com/friendica/red/wiki]https://github.com/friendica/red/wiki[/url]
+
+[b]Licensing[/b]
+
+All code contributed to the project falls under the MIT license, unless otherwise specified. We will accept third-party code which falls under MIT, BSD and LGPL, but copyleft licensing (GPL, and AGPL) is only permitted in addons. It must be possible to completely remove the GPL (copyleft) code from the main project without breaking anything.
+
+[b]Coding Style[/b]
+
+In the interests of consistency we adopt the following code styling. We may accept patches using other styles, but where possible please try to provide a consistent code style. We aren't going to argue or debate the merits of this style, and it is irrelevant what project 'xyz' uses. This is not project 'xyz'. This is a baseline to try and keep the code readable now and in the future.
+
+[li] All comments should be in English.[/li]
+
+[li] We use doxygen to generate documentation. This hasn't been consistently applied, but learning it and using it are highly encouraged.[/li]
+
+[li] Indentation is accomplished primarily with tabs using a tab-width of 4.[/li]
+
+[li] String concatenation and operators should be separated by whitespace. e.g. &quot;$foo = $bar . 'abc';&quot; instead of &quot;$foo=$bar.'abc';&quot;[/li]
+
+[li] Generally speaking, we use single quotes for string variables and double quotes for SQL statements. &quot;Here documents&quot; should be avoided. Sometimes using double quoted strings with variable replacement is the most efficient means of creating the string. In most cases, you should be using single quotes.[/li]
+
+[li] Use whitespace liberally to enhance readability. When creating arrays with many elements, we will often set one key/value pair per line, indented from the parent line appropriately. Lining up the assignment operators takes a bit more work, but also increases readability.[/li]
+
+[li] Generally speaking, opening braces go on the same line as the thing which opens the brace. They are the last character on the line. Closing braces are on a line by themselves. [/li] \ No newline at end of file
diff --git a/doc/external-resource-links.bb b/doc/external-resource-links.bb
new file mode 100644
index 000000000..09ac48a47
--- /dev/null
+++ b/doc/external-resource-links.bb
@@ -0,0 +1,22 @@
+[b]External Resource Links[/b]
+
+[b][color= grey][size=24]External Links[/size][/color][/b]
+[b]Third-Party Themes[/b]
+
+[*][url=https://github.com/beardy-unixer/apw]APW[/url]
+[*][url=https://github.com/omigeot/redstrap3]Redstrap[/url]
+[*][url=https://github.com/23n/Pluto]Pluto[/url]
+[*][url=https://bitbucket.org/tobiasd/red-clean]Clean[/url]
+
+[b]Third-Party Addons[/b]
+[*][url=https://github.com/beardy-unixer/red-addons-extra]BBCode Extensions for Webpages/Wikis[/url]
+[*][url=https://abcentric.net/git/abcjsplugin.git]ABCjs integration - display scores in posts (WIP)[/url]
+
+[b]Related Projects[/b]
+
+[*][url=https://addons.mozilla.org/en-US/firefox/addon/redshare/]Redshare for Firefox[/url]
+[*][url=https://github.com/cvogeley/red-for-android]Red for Android[/url]
+[*][url=https://github.com/zzottel/feed2red]feed2red.pl (posts Atom/RSS feeds to channel)[/url]
+
+[b]Utilities[/b]
+[*][url=https://github.com/beardy-unixer/lowendscript-ng]Debian Install Script[/url] \ No newline at end of file
diff --git a/doc/extra_features.bb b/doc/extra_features.bb
new file mode 100644
index 000000000..91a16d365
--- /dev/null
+++ b/doc/extra_features.bb
@@ -0,0 +1,103 @@
+[b]Features[/b]
+
+The default interface of the Red Matrix was designed to be uncluttered. There are a huge number of extra features (some of which are extremely useful) which you can turn on and get the most of the application. These are found under the Extra Features link of your Settings page.
+
+[b]Content Expiration[/b]
+
+Remove posts/comments and/or private messages at a future time. An extra button is added to the post editor which asks you for an expiration. Typically this in &quot;yyyy-mm-dd hh:mm&quot; format, but in the English language you have a bit more freedom and can use most any recognisable date reference such as &quot;next Thursday&quot; or &quot;+1 day&quot;. At the specified time (give or take approximately ten minutes based on the remote system's checking frequency) the post is removed.
+
+[b]Multiple Profiles[/b]
+
+The ability to create multiple profiles which are visible only to specific persons or groups. Your default profile may be visible to anybody, but secondary profiles can all contain different or additional information and can only be seen by those to whom that profile is assigned.
+
+[b]Web Pages[/b]
+
+Provides the ability to use web page design feaures and create custom webpages from your own content and also to design the pages with page layouts, custom menus, and content blocks.
+
+[b]Private Notes[/b]
+
+On pages where it is available (your matrix page and personal web pages) provide a &quot;widget&quot; to create and store personal reminders and notes.
+
+[b]Enhanced Photo Albums[/b]
+
+Provides a photo album viewer that is a bit prettier than the normal interface.
+
+[b]Extended Identity Sharing[/b]
+
+By default your identity travels with you as you browse the matrix to remote sites - and they know who you are and can show you content that only you can see. With Extended Identity Sharing you can provide this information to any website you visit from within the matrix.
+
+[b]Expert Mode[/b]
+
+This allows you to see some advanced configuration options that would confuse some people or cause support issues. In particular this can give you full control over theme features and colours - so that you can tweak a large number of settings of the display theme to your liking.
+
+[b]Premium Channel[/b]
+
+This allows you to set restrictions and terms on those that connect with your channel. This may be used by celebrities or anybody else who wishes to describe their channel to people who wish to connect with it. In certain cases you may be asked for payment in order to connect.
+
+[b]Richtext Editor[/b]
+
+The status post editor is plaintext, but the matrix allows a wide range of markup using BBcode. The visual editor provides &quot;what you see is what you get&quot; for many of the most frequently used markup tags.
+
+[b]Post Preview[/b]
+
+Allows previewing posts and comments exactly as they would look on the page before publishing them.
+
+[b]Channel Sources[/b]
+
+Automatically import and re-publish channel content from other channels or feeds. This allows you to create sub-channels and super-channels from content provided elsewhere. The rules are that the content must be public, and the channel owner must give you permission to source their channel.
+
+[b]Even More Encryption[/b]
+
+Private messages are encrypted during transport and storage. In this day and age, this encyption may not be enough if your communications are extremely sensitive. This options lets you provide optional encryption of content &quot;end-to-end&quot; with a shared secret key. How the recipient learns the secret key is completely up to you. You can provide a hint such as &quot;the name of aunt Claire's first dog&quot;.
+
+[b]Search by Date[/b]
+
+This provides the ability to select posts by date ranges
+
+[b]Collections Filter[/b]
+
+Enable widget to display stream posts only from selected collections. This also toggles the outbound permissions while you are viewing a collection. This is analogous to Google &quot;circles&quot; or Disapora &quot;aspects&quot;.
+
+[b]Saved Searches[/b]
+
+Provides a search widget on your matrix page which can save selected search terms for re-use.
+
+[b]Personal Tab[/b]
+
+Enable tab to display only matrix posts that you've interacted with in some way, as an author or a contributor to the conversation.
+
+[b]New Tab[/b]
+
+Enables a tab to display all new matrix activity as a firehose or timeline.
+
+[b]Affinity Tool[/b]
+
+Filter matrix stream activity by the depth of your relationships
+
+[b]Edit Sent Posts[/b]
+
+Edit and correct posts and comments after sending
+
+[b]Tagging[/b]
+
+Ability to tag existing posts, including those written by others.
+
+[b]Post Categories[/b]
+
+Add categories to your channel posts
+
+[b]Saved Folders[/b]
+
+Ability to file posts under folders or tags for later recall
+
+[b]Dislike Posts[/b]
+
+Ability to dislike posts/comments
+
+[b]Star Posts[/b]
+
+Ability to mark special posts with a star indicator
+
+[b]Tag Cloud[/b]
+
+Provide a personal tag cloud on your channel page \ No newline at end of file
diff --git a/doc/features.bb b/doc/features.bb
new file mode 100644
index 000000000..8fcbef02f
--- /dev/null
+++ b/doc/features.bb
@@ -0,0 +1,111 @@
+[b]Features[/b]
+
+[b][color= grey][size=24]Red Matrix Features[/size][/color][/b]
+
+
+The Red Matrix is a general-purpose communication network, with several unique features. It is designed to be used by the widest range of users on the web, from non-technical bloggers, to expert PHP programmers and seasoned systems administrators.
+
+This page lists some of the core features of Red that are bundled with the official. As we any free and open source software, there many other extensions, additions, plugins, themes and configurations that limited only by the needs and imagination of Red's users.
+
+[b][color= grey][size=20]Built for Privacy and Freedom[/size][/color][/b]
+
+One of the design goals of Red is to enable easy communication on the web, while preserving privacy, if so desired by users. To achieve this goal, Red includes a number of features allowing arbitrary levels of privacy:
+
+[b][color= grey]Affinity Slider[/color][/b]
+
+When adding contacts in the Red Matrix, users have the option of assigning affinity levels to the new member in their contact list. For example, when adding someone who happens to be a person who's blog you follow, you could assign their channel an affinity level of &quot;Acquaintances&quot;.
+
+[img]https://friendicared.net/photo/b07b0262e3146325508b81a9d1ae4a1e-0.png[/img]
+
+On the other hand, when adding a friend's channel, they could be placed under the affinity level of &quot;Friends&quot;.
+
+At this point, Red's [i]Affinity Slider[/i] tool, which usually appears at the top of your &quot;Matrix&quot; page, allows content on your Red account to be displayed by desired affinity levels. By moving the slider to cover all contacts with affinity levels of &quot;Me&quot; to &quot;Friends&quot;, only contacts (or channels) that are marked as &quot;Me&quot;, &quot;Best Friends&quot;, and &quot;Friends&quot; will be displayed on your page. All other channels and contacts, such as the contact added under affinity level &quot;Acquaintances&quot;, will not be displayed.
+
+The Affinity Slider allows instantaneous filtering of large amounts of content, grouped by levels of closeness.
+
+[b][color= grey]Access Control Lists[/color][/b]
+
+When sharing content with someone in their contact list, users have the option of restricting who sees the content. By clicking on the padlock underneath the sharing box, one could choose desired recipients of the post, by clicking on their names.
+
+Once sent, the message will be viewable only by the sender and the selected recipients. In other words, the message will not appear on any public walls.
+
+
+[b][color=grey]Private Message Encryption and Privacy Concerns[/color][/b]
+
+In the Red Matrix, public messages are not encrypted prior to leaving the originating server, they are also stored in the database in clear text.
+
+Messages marked [b][color=white]private[/color][/b], however, are encrypted with AES-CBC 256-bit symmetric cipher, which is then protected (encrypted in turn) by public key cryptography, based on 4096-bit RSA keys, associated with the channel that is sending the message.
+
+Each Red channel has it's own unique set of private and associated public RSA 4096-bit keys, generated when the channels is first created.
+
+[b][color= grey]TLS/SSL[/color][/b]
+
+For Red hubs that use TLS/SSL, client to server communications are encrypted via TLS/SSL. Given recent disclosures in the media regarding widespread, global surveillance and encryption circumvention by the NSA and GCHQ, it is reasonable to assume that HTTPS-protected communications may be compromised in various ways.
+
+[b][color= grey]Channel Settings[/color][/b]
+
+In Red, each channel allows fine-grained permissions to be set for various aspects of communication. For example, under the &quot;Security and Privacy Settings&quot; heading, each aspect on the left side of the page, has six (6) possible viewing/access options, that can be selected by clicking on the dropdown menu.
+
+[img]https://friendicared.net/photo/0f5be8da282858edd645b0a1a6626491.png[/img]
+
+The six options are:
+
+ - Nobody except yourself.
+ - Only those you specifically allow.
+ - Anybody in your address book.
+ - Anybody on this website.
+ - Anybody in this network.
+ - Anybody on the Internet.
+
+
+[b][color= grey]Account Cloning[/color][/b]
+
+Accounts in the Red Matrix are called to as [i]nomadic identities[/]. Nomadic, because a user's identity (see What is Zot? for the full explanation) is stuck to the hub where the identity was originally created. For example, when you created your Facebook, or Gmail account, it is tied to those services. They cannot function without Facebook.com or Gmail.com.
+
+By contrast, say you've created a Red identity called [b][color=white]tina@redhub.com[/color][/b]. You can clone it to another Red hub by choosing the same, or a different name: [b][color=white]liveForever@SomeRedMatrixHub.info[/color][/b]
+
+Both channels are now synchronized, which means all your contacts and preferences will be duplicated on your clone. It doesn't matter whether you send a post from your original hub, or the new hub. Posts will be mirrored on both accounts.
+
+This is a rather revolutionary feature, if we consider some scenarios:
+
+ - What happens if the hub where an identity is based, suddenly goes offline? Without cloning, a user will not be able to communicate until that hub comes back online. With cloning, you just log into your cloned account, and life goes on happily ever after.
+
+ - The administrator of your hub can no longer afford to pay for his free and public Red Matrix hub. He announces that the hub will be shutting down in two weeks. This gives you ample time to clone your identity(ies) and preserve your Red relationships, friends and content.
+
+ - What if your identity is subject to government censorship? Your hub provider is compelled to delete your account, along with any identities and associated data. With cloning, the Red Matrix offers [b][color=white]censorship resistance [/color][/b]. You can have hundreds of clones, if you wanted to, all named different, and existing on many different hubs, strewn around the internet.
+
+Red offers interesting new possibilities for privacy. You can read more at the &lt;&lt;Private Communications Best Practices&gt;&gt; page.
+
+Some caveats apply. For a full explanation of identity cloning, read the &lt;HOW TO CLONE MY IDENTITY&gt;.
+
+
+[b][color= grey]Account Backup[/color][/b]
+
+Red offers a simple, one-click account backup, where you can download a complete backup of your profile(s).
+
+Backups can then be used to clone or restore a profile.
+
+[b][color= grey]Account Deletion[/color][/b]
+
+Accounts can be immediately deleted by clicking on a link. That's it. All associated content is immediately deleted from the matrix (this includes posts and any other content produced by the deleted profile).
+
+[b][color=grey][size=20]Content Creation[/size][/color][/b]
+
+[b][color=white]Writing Posts[/color][/b]
+
+Red supports a number of different ways of adding content, from a graphical text editor, to various types of markup and pure HTML.
+
+Red bundles the TinyMCE rich text editor, which can be turned on under &quot;Settings.&quot;
+For user who prefer not to use TinyMCE, content can be entered by typing BBCode markup.
+Furthermore, when creating &quot;Websites&quot; or using &quot;Comanche&quot; and its PCL[FINISH], content can be entered in HTML, Markdown and plain text.
+
+[b][color=white]Deletion of content[/color][/b]
+Any content created in the Red Matrix remains under the control of the user (or channel) that originally created. At any time, a user can delete a message, or a range of messages. The deletion process ensures that the content is deleted, regardless of whether it was posted on a channel's primary (home) hub, or on another hub, where the channel was remotely authenticated via Zot.
+
+[b][color=white]Media[/color][/b]
+Similar to any other modern blogging system, social network, or a micro-blogging service, Red supports the uploading of files, embedding of videos, linking web pages.
+
+[b][color=white]Previewing[/color][/b]
+Post can be previewed prior to sending.
+
+Return to the [url=[baseurl]/help/main]Main documentation page[/url] \ No newline at end of file
diff --git a/doc/git_for_non_developers.bb b/doc/git_for_non_developers.bb
new file mode 100644
index 000000000..e68634da1
--- /dev/null
+++ b/doc/git_for_non_developers.bb
@@ -0,0 +1,46 @@
+[b]Git For Non-Developers[/b]
+
+So you're handling a translation, or you're contributing to a theme, and every time you make a pull request you have to talk to one of the developers before your changes can be merged in?
+
+Chances are, you just haven't found a quick how-to explaining how to keep things in sync on your end. It's really very easy.
+
+After you've created a fork of the repo (just click &quot;fork&quot; at github), you need to clone your own copy.
+
+For the sake of examples, we'll assume you're working on a theme called redexample (which does not exist).
+
+[code]git clone https://github.com/username/red.git[/code]
+
+Once you've done that, cd into the directory, and add an upstream.
+
+[code]
+cd red
+git remote add upstream https://github.com/friendica/red
+[/code]
+
+From now on, you can pull upstream changes with the command
+[code]git fetch upstream[/code]
+
+Before your changes can be merged automatically, you will often need to merge upstream changes.
+
+[code]
+git merge upstream/master
+[/code]
+
+You should always merge upstream before pushing any changes, and [i]must[/i] merge upstream with any pull requests to make them automatically mergeable.
+
+99% of the time, this will all go well. The only time it won't is if somebody else has been editing the same files as you - and often, only if they have been editing the same lines of the same files. If that happens, that would be a good time to request help until you get the hang of handling your own merge conflicts.
+
+Then you just need to add your changes [code]git add view/theme/redexample/[/code]
+
+This will add all the files in view/theme/redexample and any subdirectories. If your particular files are mixed throughout the code, you should add one at a time. Try not to do git add -a, as this will add everything, including temporary files (we mostly, but not always catch those with a .gitignore) and any local changes you have, but did not intend to commit.
+
+Once you have added all the files you have changed, you need to commit them. [code]git commit[/code]
+
+This will open up an editor where you can describe the changes you have made. Save this file, and exit the editor.
+
+Finally, push the changes to your own git
+[code]git push[/code]
+
+And that's it!
+
+Return to the [url=[baseurl]/help/main]Main documentation page[/url] \ No newline at end of file
diff --git a/doc/html/Contact_8php.html b/doc/html/Contact_8php.html
index ead25e6a2..682ad9137 100644
--- a/doc/html/Contact_8php.html
+++ b/doc/html/Contact_8php.html
@@ -140,8 +140,8 @@ Functions</h2></td></tr>
<tr class="separator:a28e062c884331dbb5dfa713228c25ad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38daa1c210b78385307123450ca9a1fc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#a38daa1c210b78385307123450ca9a1fc">terminate_friendship</a> ($user, $self, $contact)</td></tr>
<tr class="separator:a38daa1c210b78385307123450ca9a1fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a852fa476f0c70bde10a4f2533aec5f71"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(!function_exists('mark_for_death')) <br class="typebreak"/>
-<a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(!function_exists('unmark_for_death'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#a852fa476f0c70bde10a4f2533aec5f71">random_profile</a> ()</td></tr>
+<tr class="memitem:a852fa476f0c70bde10a4f2533aec5f71"><td class="memItemLeft" align="right" valign="top"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(!function_exists('mark_for_death')) <br class="typebreak"/>
+<a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(!function_exists('unmark_for_death'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Contact_8php.html#a852fa476f0c70bde10a4f2533aec5f71">random_profile</a> ()</td></tr>
<tr class="separator:a852fa476f0c70bde10a4f2533aec5f71"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
@@ -213,7 +213,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>.</p>
+<p>Referenced by <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>.</p>
</div>
</div>
@@ -303,6 +303,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Referenced by <a class="el" href="widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e">widget_photo_albums()</a>.</p>
+
</div>
</div>
<a class="anchor" id="a87e699f74a1102b25e8aa0432d86a91e"></a>
@@ -347,7 +349,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, and <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>.</p>
+<p>Referenced by <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, and <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>.</p>
</div>
</div>
@@ -356,7 +358,7 @@ Functions</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (!function_exists('mark_for_death')) <a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (!function_exists('unmark_for_death')) random_profile </td>
+ <td class="memname"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (!function_exists('mark_for_death')) <a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (!function_exists('unmark_for_death')) random_profile </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
@@ -502,7 +504,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="connections_8php.html#af48f7ad20914760ba9874c090384e35a">connections_aside()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, and <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>.</p>
+<p>Referenced by <a class="el" href="widgets_8php.html#abe03366fd22fd27d683518fa0765da50">widget_vcard()</a>.</p>
</div>
</div>
diff --git a/doc/html/account_8php.html b/doc/html/account_8php.html
index 547c7016e..9a2a3b43c 100644
--- a/doc/html/account_8php.html
+++ b/doc/html/account_8php.html
@@ -132,6 +132,8 @@ Functions</h2></td></tr>
<tr class="separator:ac5c570a2d46446bad4dd2501e9c5a4b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1653efba62493b9d87513e1b6c04c83"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">user_deny</a> ($hash)</td></tr>
<tr class="separator:ac1653efba62493b9d87513e1b6c04c83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d183a3cb4c67a0f5e906811df7a1fc9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="account_8php.html#a0d183a3cb4c67a0f5e906811df7a1fc9">downgrade_accounts</a> ()</td></tr>
+<tr class="separator:a0d183a3cb4c67a0f5e906811df7a1fc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a43e3042b2723d76915a030bac3c668b6"></a>
@@ -241,6 +243,25 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a0d183a3cb4c67a0f5e906811df7a1fc9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">downgrade_accounts </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p><a class="el" href="account_8php.html#a0d183a3cb4c67a0f5e906811df7a1fc9">downgrade_accounts()</a> Checks for accounts that have past their expiration date. If the account has a service class which is not the site default, the service class is reset to the site default and expiration reset to never. If the account has no service class it is expired and subsequently disabled. called from <a class="el" href="poller_8php.html">include/poller.php</a> as a scheduled task.</p>
+<p>Reclaiming resources which are no longer within the service class limits is not the job of this function, but this can be implemented by plugin if desired. Default behaviour is to stop allowing additional resources to be consumed. </p>
+
+<p>Referenced by <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a014de2d5d5c9785de5bf547a485822fa"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/account_8php.js b/doc/html/account_8php.js
index 2e43e4b46..59e2dc3d8 100644
--- a/doc/html/account_8php.js
+++ b/doc/html/account_8php.js
@@ -6,6 +6,7 @@ var account_8php =
[ "check_account_invite", "account_8php.html#aaff7720423417a4333697894ffd9ddeb", null ],
[ "check_account_password", "account_8php.html#a144b4891022567668375b58ea61cfff0", null ],
[ "create_account", "account_8php.html#a141fe579c351c78209d425473f978eb5", null ],
+ [ "downgrade_accounts", "account_8php.html#a0d183a3cb4c67a0f5e906811df7a1fc9", null ],
[ "send_reg_approval_email", "account_8php.html#a014de2d5d5c9785de5bf547a485822fa", null ],
[ "send_verification_email", "account_8php.html#aa9c29c497c17d8f9344dce8631ad8761", null ],
[ "user_allow", "account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1", null ],
diff --git a/doc/html/achievements_8php.html b/doc/html/achievements_8php.html
new file mode 100644
index 000000000..894abb4a4
--- /dev/null
+++ b/doc/html/achievements_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/achievements.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('achievements_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">achievements.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a35ae04ada0e227d19671f289a32fb30e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e">achievements_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a35ae04ada0e227d19671f289a32fb30e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a35ae04ada0e227d19671f289a32fb30e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">achievements_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/achievements_8php.js b/doc/html/achievements_8php.js
new file mode 100644
index 000000000..319ac33da
--- /dev/null
+++ b/doc/html/achievements_8php.js
@@ -0,0 +1,4 @@
+var achievements_8php =
+[
+ [ "achievements_content", "achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e", null ]
+]; \ No newline at end of file
diff --git a/doc/html/acl__selectors_8php.html b/doc/html/acl__selectors_8php.html
index 337a2fc68..bc3bbfae3 100644
--- a/doc/html/acl__selectors_8php.html
+++ b/doc/html/acl__selectors_8php.html
@@ -188,7 +188,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>.</p>
+<p>Referenced by <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>.</p>
</div>
</div>
@@ -270,7 +270,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, and <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>.</p>
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, and <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>.</p>
</div>
</div>
diff --git a/doc/html/annotated.html b/doc/html/annotated.html
index 32271b4f4..63c8fe26e 100644
--- a/doc/html/annotated.html
+++ b/doc/html/annotated.html
@@ -135,9 +135,9 @@ $(document).ready(function(){initNavTree('annotated.html','');});
<tr id="row_21_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classphoto__imagick.html" target="_self">photo_imagick</a></td><td class="desc"></td></tr>
<tr id="row_22_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classProtoDriver.html" target="_self">ProtoDriver</a></td><td class="desc"></td></tr>
<tr id="row_23_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classRedBasicAuth.html" target="_self">RedBasicAuth</a></td><td class="desc"></td></tr>
-<tr id="row_24_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classRedDirectory.html" target="_self">RedDirectory</a></td><td class="desc"></td></tr>
-<tr id="row_25_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classRedFile.html" target="_self">RedFile</a></td><td class="desc"></td></tr>
-<tr id="row_26_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classRedInode.html" target="_self">RedInode</a></td><td class="desc"></td></tr>
+<tr id="row_24_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classRedBrowser.html" target="_self">RedBrowser</a></td><td class="desc"></td></tr>
+<tr id="row_25_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classRedDirectory.html" target="_self">RedDirectory</a></td><td class="desc"></td></tr>
+<tr id="row_26_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classRedFile.html" target="_self">RedFile</a></td><td class="desc"></td></tr>
<tr id="row_27_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classTemplate.html" target="_self">Template</a></td><td class="desc"></td></tr>
<tr id="row_28_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classZotDriver.html" target="_self">ZotDriver</a></td><td class="desc"></td></tr>
</table>
diff --git a/doc/html/annotated.js b/doc/html/annotated.js
index c1197fb1e..c6ab45689 100644
--- a/doc/html/annotated.js
+++ b/doc/html/annotated.js
@@ -24,9 +24,9 @@ var annotated =
[ "photo_imagick", "classphoto__imagick.html", "classphoto__imagick" ],
[ "ProtoDriver", "classProtoDriver.html", "classProtoDriver" ],
[ "RedBasicAuth", "classRedBasicAuth.html", "classRedBasicAuth" ],
+ [ "RedBrowser", "classRedBrowser.html", "classRedBrowser" ],
[ "RedDirectory", "classRedDirectory.html", "classRedDirectory" ],
[ "RedFile", "classRedFile.html", "classRedFile" ],
- [ "RedInode", "classRedInode.html", "classRedInode" ],
[ "Template", "classTemplate.html", "classTemplate" ],
[ "ZotDriver", "classZotDriver.html", "classZotDriver" ]
]; \ No newline at end of file
diff --git a/doc/html/apw_2php_2style_8php.html b/doc/html/apw_2php_2style_8php.html
index 59038c4ab..6b54273e1 100644
--- a/doc/html/apw_2php_2style_8php.html
+++ b/doc/html/apw_2php_2style_8php.html
@@ -128,7 +128,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586">all_friends()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="items_8php.html#a87ac9e359591721a824ecd23bbb56296">check_item_source()</a>, <a class="el" href="permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7">check_list_permissions()</a>, <a class="el" href="socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918">common_friends()</a>, <a class="el" href="socgraph_8php.html#ac343a846241d36cdf046b08f3396cfe9">common_friends_zcid()</a>, <a class="el" href="socgraph_8php.html#af29d056beec10b4e38e5209c92452894">count_all_friends()</a>, <a class="el" href="socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84">count_common_friends()</a>, <a class="el" href="socgraph_8php.html#af175807406d94407a5e11742a3287746">count_common_friends_zcid()</a>, <a class="el" href="boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3">current_theme_url()</a>, <a class="el" href="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">del_pconfig()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55">drop_items()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled()</a>, <a class="el" href="items_8php.html#a0cf98bb619f07dd18f602683a55a5f59">first_post_date()</a>, <a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">fix_attached_photo_permissions()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="contact__widgets_8php.html#af24e693532a045954caab515942cfc6f">follow_widget()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig()</a>, <a class="el" href="identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">get_theme_uid()</a>, <a class="el" href="include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce">group_add()</a>, <a class="el" href="include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b">group_add_member()</a>, <a class="el" href="include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb">group_byname()</a>, <a class="el" href="include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245">group_rec_byhash()</a>, <a class="el" href="include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5">group_rmv()</a>, <a class="el" href="include_2group_8php.html#a540e3ef36f47d47532646be4241f6518">group_rmv_member()</a>, <a class="el" href="include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f">groups_containing()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links()</a>, <a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">load_pconfig()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8">menu_add_item()</a>, <a class="el" href="include_2menu_8php.html#a9aa8e0052dd47c1a93f53a983bd4620a">menu_del_item()</a>, <a class="el" href="include_2menu_8php.html#a3884bda4d85d84ec99447db9403a68d8">menu_delete()</a>, <a class="el" href="include_2menu_8php.html#ad87f51ce85172bcc3f931aa0cd96a804">menu_delete_id()</a>, <a class="el" href="include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa">menu_edit_item()</a>, <a class="el" href="include_2menu_8php.html#a68ebbf492470c930f652013656f9071d">menu_fetch()</a>, <a class="el" href="include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32">mini_group_select()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="comanche_8php.html#af7150df735e5ff9d467994cd6f769c6e">pdl_selector()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="items_8php.html#abe695dd89e1e10ed042c26b80114f0ed">posted_date_widget()</a>, <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">posted_dates()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">set_pconfig()</a>, <a class="el" href="classConversation.html#a8898bddc1e8990e81dab9a13a532cc93">Conversation\set_profile_owner()</a>, <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>, <a class="el" href="taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd">store_item_tag()</a>, <a class="el" href="socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329">suggestion_query()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="taxonomy_8php.html#aaf90ba8b839d6459065f39a4f1109b8a">tagadelic()</a>, <a class="el" href="taxonomy_8php.html#ac21d1dff16d569e7d110167aea4e63c2">tagblock()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widget_tagcloud()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+<p>Referenced by <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586">all_friends()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="include_2chat_8php.html#aedcb532a0627b8644001a2fadab4e87a">chatroom_list()</a>, <a class="el" href="items_8php.html#a87ac9e359591721a824ecd23bbb56296">check_item_source()</a>, <a class="el" href="permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7">check_list_permissions()</a>, <a class="el" href="socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918">common_friends()</a>, <a class="el" href="socgraph_8php.html#ac343a846241d36cdf046b08f3396cfe9">common_friends_zcid()</a>, <a class="el" href="socgraph_8php.html#af29d056beec10b4e38e5209c92452894">count_all_friends()</a>, <a class="el" href="socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84">count_common_friends()</a>, <a class="el" href="socgraph_8php.html#af175807406d94407a5e11742a3287746">count_common_friends_zcid()</a>, <a class="el" href="boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3">current_theme_url()</a>, <a class="el" href="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">del_pconfig()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55">drop_items()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled()</a>, <a class="el" href="items_8php.html#a0cf98bb619f07dd18f602683a55a5f59">first_post_date()</a>, <a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">fix_attached_photo_permissions()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig()</a>, <a class="el" href="identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">get_theme_uid()</a>, <a class="el" href="taxonomy_8php.html#a7747fa859ac56fbffd4f9782d85505de">get_things()</a>, <a class="el" href="spam_8php.html#ab8fd81a82c9622cbebb8ceab6b310ca6">get_words()</a>, <a class="el" href="include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce">group_add()</a>, <a class="el" href="include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b">group_add_member()</a>, <a class="el" href="include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb">group_byname()</a>, <a class="el" href="include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245">group_rec_byhash()</a>, <a class="el" href="include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5">group_rmv()</a>, <a class="el" href="include_2group_8php.html#a540e3ef36f47d47532646be4241f6518">group_rmv_member()</a>, <a class="el" href="include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f">groups_containing()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links()</a>, <a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">load_pconfig()</a>, <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">local_dir_update()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8">menu_add_item()</a>, <a class="el" href="include_2menu_8php.html#a9aa8e0052dd47c1a93f53a983bd4620a">menu_del_item()</a>, <a class="el" href="include_2menu_8php.html#a3884bda4d85d84ec99447db9403a68d8">menu_delete()</a>, <a class="el" href="include_2menu_8php.html#ad87f51ce85172bcc3f931aa0cd96a804">menu_delete_id()</a>, <a class="el" href="include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa">menu_edit_item()</a>, <a class="el" href="include_2menu_8php.html#a68ebbf492470c930f652013656f9071d">menu_fetch()</a>, <a class="el" href="include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32">mini_group_select()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="comanche_8php.html#af7150df735e5ff9d467994cd6f769c6e">pdl_selector()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">posted_dates()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">set_pconfig()</a>, <a class="el" href="classConversation.html#a8898bddc1e8990e81dab9a13a532cc93">Conversation\set_profile_owner()</a>, <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>, <a class="el" href="taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd">store_item_tag()</a>, <a class="el" href="socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329">suggestion_query()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="taxonomy_8php.html#aaf90ba8b839d6459065f39a4f1109b8a">tagadelic()</a>, <a class="el" href="taxonomy_8php.html#ac21d1dff16d569e7d110167aea4e63c2">tagblock()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widget_archive()</a>, <a class="el" href="widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd">widget_follow()</a>, <a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widget_tagcloud()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
</div>
</div>
diff --git a/doc/html/auth_8php.html b/doc/html/auth_8php.html
index 79e1ce375..0599457cf 100644
--- a/doc/html/auth_8php.html
+++ b/doc/html/auth_8php.html
@@ -117,10 +117,13 @@ Functions</h2></td></tr>
<tr class="separator:a2add3a1129ffa4d5515442a9d52a9b1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07bae0e623e2daa9ee2cd5a8aa294dee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password</a> ($email, $pass)</td></tr>
<tr class="separator:a07bae0e623e2daa9ee2cd5a8aa294dee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab7be44ee051c0aa29847807cf2c5dd38"><td class="memItemLeft" align="right" valign="top"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>((<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_POST,'auth-params'))&amp;&amp;$_POST['auth-params']=== <br class="typebreak"/>
+'<a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login</a>')&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="auth_8php.html#ab7be44ee051c0aa29847807cf2c5dd38">match_openid</a> ($authid)</td></tr>
+<tr class="separator:ab7be44ee051c0aa29847807cf2c5dd38"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
-<tr class="memitem:a0950af7c2888ca1d4743fe5d0bff9ae5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>((isset($_SESSION))&amp;&amp;(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_SESSION,'authenticated'))&amp;&amp;((!(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_POST,'auth-params')))||($_POST['auth-params']!== <br class="typebreak"/>
+<tr class="memitem:a0950af7c2888ca1d4743fe5d0bff9ae5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>((isset($_SESSION))&amp;&amp;(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_SESSION,'authenticated'))&amp;&amp;((!(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_POST,'auth-params')))||($_POST['auth-params']!== <br class="typebreak"/>
'<a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login</a>')))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="auth_8php.html#a0950af7c2888ca1d4743fe5d0bff9ae5">else</a></td></tr>
<tr class="separator:a0950af7c2888ca1d4743fe5d0bff9ae5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -156,6 +159,24 @@ Variables</h2></td></tr>
</div>
</div>
+<a class="anchor" id="ab7be44ee051c0aa29847807cf2c5dd38"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> ((<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_POST,'auth-params'))&amp;&amp;$_POST['auth-params']=== '<a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login</a>') match_openid </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$authid</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a2add3a1129ffa4d5515442a9d52a9b1a"></a>
<div class="memitem">
<div class="memproto">
@@ -179,7 +200,7 @@ Variables</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> ((isset($_SESSION))&amp;&amp;(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_SESSION,'authenticated'))&amp;&amp;((!(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_POST,'auth-params')))||($_POST['auth-params']!== '<a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login</a>'))) else</td>
+ <td class="memname"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> ((isset($_SESSION))&amp;&amp;(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_SESSION,'authenticated'))&amp;&amp;((!(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_POST,'auth-params')))||($_POST['auth-params']!== '<a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login</a>'))) else</td>
</tr>
</table>
</div><div class="memdoc">
diff --git a/doc/html/auth_8php.js b/doc/html/auth_8php.js
index 88b106675..75241485b 100644
--- a/doc/html/auth_8php.js
+++ b/doc/html/auth_8php.js
@@ -1,6 +1,7 @@
var auth_8php =
[
[ "account_verify_password", "auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee", null ],
+ [ "match_openid", "auth_8php.html#ab7be44ee051c0aa29847807cf2c5dd38", null ],
[ "nuke_session", "auth_8php.html#a2add3a1129ffa4d5515442a9d52a9b1a", null ],
[ "else", "auth_8php.html#a0950af7c2888ca1d4743fe5d0bff9ae5", null ]
]; \ No newline at end of file
diff --git a/doc/html/bbcode_8php.html b/doc/html/bbcode_8php.html
index 455cfac95..1726b8b9b 100644
--- a/doc/html/bbcode_8php.html
+++ b/doc/html/bbcode_8php.html
@@ -114,29 +114,73 @@ $(document).ready(function(){initNavTree('bbcode_8php.html','');});
Functions</h2></td></tr>
<tr class="memitem:a55b0cb6973f1ec731de0e726bcc0efa7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7">tryoembed</a> ($match)</td></tr>
<tr class="separator:a55b0cb6973f1ec731de0e726bcc0efa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a39de4de32a9456d1ca914d0dc52bd322"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a39de4de32a9456d1ca914d0dc52bd322">tryzrlaudio</a> ($match)</td></tr>
+<tr class="separator:a39de4de32a9456d1ca914d0dc52bd322"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa92f119341f4c69dcef2768a013079b8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#aa92f119341f4c69dcef2768a013079b8">tryzrlvideo</a> ($match)</td></tr>
+<tr class="separator:aa92f119341f4c69dcef2768a013079b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8911e027907820df3db03b4f76724b50"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a8911e027907820df3db03b4f76724b50">bb_spacefy</a> ($st)</td></tr>
<tr class="separator:a8911e027907820df3db03b4f76724b50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a064dcfd9767df6f53be1a0e11ceeb15d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a064dcfd9767df6f53be1a0e11ceeb15d">bb_unspacefy_and_trim</a> ($st)</td></tr>
<tr class="separator:a064dcfd9767df6f53be1a0e11ceeb15d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a851f5aafefe52474201b83f9fd65931f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(!function_exists('bb_extract_images')) <br class="typebreak"/>
-<a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(!function_exists('bb_replace_images'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a851f5aafefe52474201b83f9fd65931f">bb_parse_crypt</a> ($match)</td></tr>
+<tr class="memitem:a851f5aafefe52474201b83f9fd65931f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(!function_exists('bb_extract_images')) <br class="typebreak"/>
+<a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(!function_exists('bb_replace_images'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a851f5aafefe52474201b83f9fd65931f">bb_parse_crypt</a> ($match)</td></tr>
<tr class="separator:a851f5aafefe52474201b83f9fd65931f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a98d0eecc620c19561639f06cfbe8e74c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a98d0eecc620c19561639f06cfbe8e74c">bb_qr</a> ($match)</td></tr>
+<tr class="separator:a98d0eecc620c19561639f06cfbe8e74c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c69e021d5e0aef97d6966bf3169c86a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a1c69e021d5e0aef97d6966bf3169c86a">bb_ShareAttributes</a> ($match)</td></tr>
<tr class="separator:a1c69e021d5e0aef97d6966bf3169c86a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3435c82a6c7693557800cdeb6848d0bd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a3435c82a6c7693557800cdeb6848d0bd">bb_location</a> ($match)</td></tr>
+<tr class="separator:a3435c82a6c7693557800cdeb6848d0bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7cc811ff1939a508cfb54f39c1d584d7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a7cc811ff1939a508cfb54f39c1d584d7">bbiframe</a> ($match)</td></tr>
+<tr class="separator:a7cc811ff1939a508cfb54f39c1d584d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2be26414a367118143cc89e2d58e7377"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a2be26414a367118143cc89e2d58e7377">bb_ShareAttributesSimple</a> ($match)</td></tr>
<tr class="separator:a2be26414a367118143cc89e2d58e7377"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5165a5221a52cf1bc1d7812ebd2069c7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a5165a5221a52cf1bc1d7812ebd2069c7">rpost_callback</a> ($match)</td></tr>
<tr class="separator:a5165a5221a52cf1bc1d7812ebd2069c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3a989cbf308a32468d171d83e9c51d1e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a3a989cbf308a32468d171d83e9c51d1e">bb_sanitize_style</a> ($input)</td></tr>
+<tr class="separator:a3a989cbf308a32468d171d83e9c51d1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a009f61aaf78771737ed0765c8463911b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode</a> ($Text, $preserve_nl=false, $<a class="el" href="bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7">tryoembed</a>=true)</td></tr>
<tr class="separator:a009f61aaf78771737ed0765c8463911b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a3435c82a6c7693557800cdeb6848d0bd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bb_location </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$match</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="a851f5aafefe52474201b83f9fd65931f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (!function_exists('bb_extract_images')) <a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (!function_exists('bb_replace_images')) bb_parse_crypt </td>
+ <td class="memname"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (!function_exists('bb_extract_images')) <a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (!function_exists('bb_replace_images')) bb_parse_crypt </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$match</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a98d0eecc620c19561639f06cfbe8e74c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bb_qr </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$match</em></td><td>)</td>
@@ -147,6 +191,22 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a3a989cbf308a32468d171d83e9c51d1e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bb_sanitize_style </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$input</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="a1c69e021d5e0aef97d6966bf3169c86a"></a>
<div class="memitem">
<div class="memproto">
@@ -241,7 +301,23 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c">bb2diaspora()</a>, <a class="el" href="items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee">construct_activity_object()</a>, <a class="el" href="items_8php.html#aa579bc4445d60098b1410961ca8e96b7">construct_activity_target()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="event_8php.html#a2ac9f1b08de03250ecd794f705781d17">format_event_html()</a>, <a class="el" href="include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3">format_notification()</a>, <a class="el" href="identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, and <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>.</p>
+<p>Referenced by <a class="el" href="bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c">bb2diaspora()</a>, <a class="el" href="chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9">chatsvc_content()</a>, <a class="el" href="items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee">construct_activity_object()</a>, <a class="el" href="items_8php.html#aa579bc4445d60098b1410961ca8e96b7">construct_activity_target()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="event_8php.html#a2ac9f1b08de03250ecd794f705781d17">format_event_html()</a>, <a class="el" href="include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3">format_notification()</a>, <a class="el" href="identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="include_2menu_8php.html#a4d7123b0577fa994770199f9b831da11">menu_render()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, and <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7cc811ff1939a508cfb54f39c1d584d7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bbiframe </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$match</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
</div>
</div>
@@ -277,6 +353,38 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a39de4de32a9456d1ca914d0dc52bd322"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tryzrlaudio </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$match</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa92f119341f4c69dcef2768a013079b8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tryzrlvideo </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$match</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/bbcode_8php.js b/doc/html/bbcode_8php.js
index a2d64b997..c3bd2dc6f 100644
--- a/doc/html/bbcode_8php.js
+++ b/doc/html/bbcode_8php.js
@@ -1,11 +1,17 @@
var bbcode_8php =
[
+ [ "bb_location", "bbcode_8php.html#a3435c82a6c7693557800cdeb6848d0bd", null ],
[ "bb_parse_crypt", "bbcode_8php.html#a851f5aafefe52474201b83f9fd65931f", null ],
+ [ "bb_qr", "bbcode_8php.html#a98d0eecc620c19561639f06cfbe8e74c", null ],
+ [ "bb_sanitize_style", "bbcode_8php.html#a3a989cbf308a32468d171d83e9c51d1e", null ],
[ "bb_ShareAttributes", "bbcode_8php.html#a1c69e021d5e0aef97d6966bf3169c86a", null ],
[ "bb_ShareAttributesSimple", "bbcode_8php.html#a2be26414a367118143cc89e2d58e7377", null ],
[ "bb_spacefy", "bbcode_8php.html#a8911e027907820df3db03b4f76724b50", null ],
[ "bb_unspacefy_and_trim", "bbcode_8php.html#a064dcfd9767df6f53be1a0e11ceeb15d", null ],
[ "bbcode", "bbcode_8php.html#a009f61aaf78771737ed0765c8463911b", null ],
+ [ "bbiframe", "bbcode_8php.html#a7cc811ff1939a508cfb54f39c1d584d7", null ],
[ "rpost_callback", "bbcode_8php.html#a5165a5221a52cf1bc1d7812ebd2069c7", null ],
- [ "tryoembed", "bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7", null ]
+ [ "tryoembed", "bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7", null ],
+ [ "tryzrlaudio", "bbcode_8php.html#a39de4de32a9456d1ca914d0dc52bd322", null ],
+ [ "tryzrlvideo", "bbcode_8php.html#aa92f119341f4c69dcef2768a013079b8", null ]
]; \ No newline at end of file
diff --git a/doc/html/boot_8php.html b/doc/html/boot_8php.html
index 0146399a4..7b700a6c6 100644
--- a/doc/html/boot_8php.html
+++ b/doc/html/boot_8php.html
@@ -161,6 +161,8 @@ Functions</h2></td></tr>
<tr class="separator:a97769915c9f14adc4f8ab1ea2cecfd90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab346a2ece14993861f3e4206befa94f0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run</a> ($cmd)</td></tr>
<tr class="separator:ab346a2ece14993861f3e4206befa94f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac5e74f899f6e98d8e91b14ba1c08bc08"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ac5e74f899f6e98d8e91b14ba1c08bc08">is_windows</a> ()</td></tr>
+<tr class="separator:ac5e74f899f6e98d8e91b14ba1c08bc08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad206598b909e8eb67eb0e0bb5ef69c13"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme</a> ()</td></tr>
<tr class="separator:ad206598b909e8eb67eb0e0bb5ef69c13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a926cad0b3d8b9d9ee5da1898fc063ba3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3">current_theme_url</a> ($installing=false)</td></tr>
@@ -200,7 +202,7 @@ Variables</h2></td></tr>
<tr class="separator:a21cc29e0025943e7c28ff58cb4856ac3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36b31575f992a10b5927b76efba9362e"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a36b31575f992a10b5927b76efba9362e">ZOT_REVISION</a> 1</td></tr>
<tr class="separator:a36b31575f992a10b5927b76efba9362e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac59a18a4838710d6c2de37aed6b21f03"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ac59a18a4838710d6c2de37aed6b21f03">DB_UPDATE_VERSION</a> 1084</td></tr>
+<tr class="memitem:ac59a18a4838710d6c2de37aed6b21f03"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ac59a18a4838710d6c2de37aed6b21f03">DB_UPDATE_VERSION</a> 1098</td></tr>
<tr class="separator:ac59a18a4838710d6c2de37aed6b21f03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0603d6ece8c5d37b4b7db697db053a4b"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a0603d6ece8c5d37b4b7db697db053a4b">EOL</a> '&lt;br /&gt;' . &quot;\r\n&quot;</td></tr>
<tr class="separator:a0603d6ece8c5d37b4b7db697db053a4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -292,6 +294,8 @@ Variables</h2></td></tr>
<tr class="separator:ab3920c2f3cd64802c0b7ff625c3b2ea8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace83842dbeb84f7ed9ac59a9f57a7c32"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ace83842dbeb84f7ed9ac59a9f57a7c32">PAGE_ADULT</a> 0x0020</td></tr>
<tr class="separator:ace83842dbeb84f7ed9ac59a9f57a7c32"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6ee7a72d558d1851bbb9e3cdde377932"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a6ee7a72d558d1851bbb9e3cdde377932">PAGE_SYSTEM</a> 0x1000</td></tr>
+<tr class="separator:a6ee7a72d558d1851bbb9e3cdde377932"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4edce16cb7f21cdafa1e85bf63d713e6"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a4edce16cb7f21cdafa1e85bf63d713e6">PAGE_REMOVED</a> 0x8000</td></tr>
<tr class="separator:a4edce16cb7f21cdafa1e85bf63d713e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a49b29838ef2c45ab3556b52baec6a4"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a4a49b29838ef2c45ab3556b52baec6a4">PHOTO_NORMAL</a> 0x0000</td></tr>
@@ -302,6 +306,10 @@ Variables</h2></td></tr>
<tr class="separator:ac43182e0d8bae7576a30b603774974f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78849a1bf8ce8d9804b4cbb502e8f383"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a78849a1bf8ce8d9804b4cbb502e8f383">PHOTO_THING</a> 0x0004</td></tr>
<tr class="separator:a78849a1bf8ce8d9804b4cbb502e8f383"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a718a801b0be6cbaef5e519516da12721"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a718a801b0be6cbaef5e519516da12721">MENU_SYSTEM</a> 0x0001</td></tr>
+<tr class="separator:a718a801b0be6cbaef5e519516da12721"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a458e19af801bc4b0d1f1ce1a6d9e857e"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a458e19af801bc4b0d1f1ce1a6d9e857e">MENU_BOOKMARK</a> 0x0002</td></tr>
+<tr class="separator:a458e19af801bc4b0d1f1ce1a6d9e857e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3cef7b63e25e7bafea3fcf6b99fad0e"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ae3cef7b63e25e7bafea3fcf6b99fad0e">NETWORK_DFRN</a> 'dfrn'</td></tr>
<tr class="separator:ae3cef7b63e25e7bafea3fcf6b99fad0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c65e925994566a63e6c03c381f1b4a0"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a2c65e925994566a63e6c03c381f1b4a0">NETWORK_ZOT</a> 'zot!'</td></tr>
@@ -362,6 +370,8 @@ Variables</h2></td></tr>
<tr class="separator:aa9244fc9cc221980c07a20cc534111be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae6c941bde5fd6fce07e51dba7326ead"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aae6c941bde5fd6fce07e51dba7326ead">PERMS_A_REPUBLISH</a> 0x10000</td></tr>
<tr class="separator:aae6c941bde5fd6fce07e51dba7326ead"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b2af16eaee9e7768a88d0e437877f3b"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a8b2af16eaee9e7768a88d0e437877f3b">PERMS_A_BOOKMARK</a> 0x20000</td></tr>
+<tr class="separator:a8b2af16eaee9e7768a88d0e437877f3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff210e8403dd72368522b17fb6e5d4e7"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aff210e8403dd72368522b17fb6e5d4e7">PERMS_PUBLIC</a> 0x0001</td></tr>
<tr class="separator:aff210e8403dd72368522b17fb6e5d4e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6df1102664f64b274810db85197c2755"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a6df1102664f64b274810db85197c2755">PERMS_NETWORK</a> 0x0002</td></tr>
@@ -372,6 +382,8 @@ Variables</h2></td></tr>
<tr class="separator:ab2d0e8a9b81ee548ef2ce8e4560da2f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cc986b4f9dd6558cbb2e25aadbfd964"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a9cc986b4f9dd6558cbb2e25aadbfd964">PERMS_SPECIFIC</a> 0x0080</td></tr>
<tr class="separator:a9cc986b4f9dd6558cbb2e25aadbfd964"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a852d4036a3bed66af1534d014c4ecde2"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a852d4036a3bed66af1534d014c4ecde2">PERMS_AUTHED</a> 0x0100</td></tr>
+<tr class="separator:a852d4036a3bed66af1534d014c4ecde2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52b599cd13e152ebc80d7e4413683195"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a52b599cd13e152ebc80d7e4413683195">ABOOK_FLAG_BLOCKED</a> 0x0001</td></tr>
<tr class="separator:a52b599cd13e152ebc80d7e4413683195"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3425e2de85b08f7041656d3a8502cb6"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aa3425e2de85b08f7041656d3a8502cb6">ABOOK_FLAG_IGNORED</a> 0x0002</td></tr>
@@ -448,6 +460,8 @@ Variables</h2></td></tr>
<tr class="separator:ab54b24cc302e1a42a67a49d788b6b764"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c286add8961fd2d79216314cd4aadd8"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a7c286add8961fd2d79216314cd4aadd8">HUBLOC_FLAGS_DELETED</a> 0x1000</td></tr>
<tr class="separator:a7c286add8961fd2d79216314cd4aadd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8fdcc4ffb365a3267bd02ce8a8d466d6"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a8fdcc4ffb365a3267bd02ce8a8d466d6">XCHAN_FLAGS_NORMAL</a> 0x0000</td></tr>
+<tr class="separator:a8fdcc4ffb365a3267bd02ce8a8d466d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1af3ed96de14aa0d7891b39cc75b60f2"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a1af3ed96de14aa0d7891b39cc75b60f2">XCHAN_FLAGS_HIDDEN</a> 0x0001</td></tr>
<tr class="separator:a1af3ed96de14aa0d7891b39cc75b60f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c923b99bf77e4203ae94e5684b6ad0f"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a1c923b99bf77e4203ae94e5684b6ad0f">XCHAN_FLAGS_ORPHAN</a> 0x0002</td></tr>
@@ -456,6 +470,8 @@ Variables</h2></td></tr>
<tr class="separator:accd6f36cc9f40225cbd720e4d12a7c6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a681a672e007cdc22b43345d71f07c6"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a5a681a672e007cdc22b43345d71f07c6">XCHAN_FLAGS_SELFCENSORED</a> 0x0008</td></tr>
<tr class="separator:a5a681a672e007cdc22b43345d71f07c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afef254290febac854c85fc698d9483a6"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#afef254290febac854c85fc698d9483a6">XCHAN_FLAGS_SYSTEM</a> 0x0010</td></tr>
+<tr class="separator:afef254290febac854c85fc698d9483a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ea1290e00c6d40684892047f2c778a9"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a9ea1290e00c6d40684892047f2c778a9">XCHAN_FLAGS_DELETED</a> 0x1000</td></tr>
<tr class="separator:a9ea1290e00c6d40684892047f2c778a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa589421267f0c2f0d643f727792cce35"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#aa589421267f0c2f0d643f727792cce35">HUBLOC_NOTUSED</a> 0x0000</td></tr>
@@ -484,6 +500,8 @@ Variables</h2></td></tr>
<tr class="separator:abd7bb40da9cc073297e49736b338ca07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d877df1e20bae765e1708be50f6b503"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a0d877df1e20bae765e1708be50f6b503">TERM_THING</a> 7</td></tr>
<tr class="separator:a0d877df1e20bae765e1708be50f6b503"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a115faf8797718c3165498abbd6895843"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a115faf8797718c3165498abbd6895843">TERM_BOOKMARK</a> 8</td></tr>
+<tr class="separator:a115faf8797718c3165498abbd6895843"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9eeb8989272d5ff804a616898bb13659"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a9eeb8989272d5ff804a616898bb13659">TERM_OBJ_POST</a> 1</td></tr>
<tr class="separator:a9eeb8989272d5ff804a616898bb13659"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64617d4655804de2a3c86501ab4fdbfd"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a64617d4655804de2a3c86501ab4fdbfd">TERM_OBJ_PHOTO</a> 2</td></tr>
@@ -596,10 +614,12 @@ Variables</h2></td></tr>
<tr class="separator:ab5ddbe69d3d03acd06e1fb281488cb78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a032bbd6d0321e99e9117332c9ed2b1b8"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a032bbd6d0321e99e9117332c9ed2b1b8">ACCOUNT_PENDING</a> 0x0010</td></tr>
<tr class="separator:a032bbd6d0321e99e9117332c9ed2b1b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac8400313df2c831653f9036f71ebd86d"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ac8400313df2c831653f9036f71ebd86d">ACCOUNT_ROLE_ADMIN</a> 0x1000</td></tr>
-<tr class="separator:ac8400313df2c831653f9036f71ebd86d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84f48897059bbd4a8738d7ee4cec6688"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a84f48897059bbd4a8738d7ee4cec6688">ACCOUNT_ROLE_ALLOWCODE</a> 0x0001</td></tr>
<tr class="separator:a84f48897059bbd4a8738d7ee4cec6688"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7c2eb822d50e1554bf5c32861f36342b"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a7c2eb822d50e1554bf5c32861f36342b">ACCOUNT_ROLE_SYSTEM</a> 0x0002</td></tr>
+<tr class="separator:a7c2eb822d50e1554bf5c32861f36342b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac8400313df2c831653f9036f71ebd86d"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ac8400313df2c831653f9036f71ebd86d">ACCOUNT_ROLE_ADMIN</a> 0x1000</td></tr>
+<tr class="separator:ac8400313df2c831653f9036f71ebd86d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab55b16ae7fc19fafe5afaedd49163bbf"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ab55b16ae7fc19fafe5afaedd49163bbf">ITEM_VISIBLE</a> 0x0000</td></tr>
<tr class="separator:ab55b16ae7fc19fafe5afaedd49163bbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac99fc4d040764eac1736bec6973556fe"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#ac99fc4d040764eac1736bec6973556fe">ITEM_HIDDEN</a> 0x0001</td></tr>
@@ -622,6 +642,8 @@ Variables</h2></td></tr>
<tr class="separator:a7fc4b291a7cdaa48b38e27344ea183cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e57d913634d033b4d5ad72d99fd3e9d"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a6e57d913634d033b4d5ad72d99fd3e9d">ITEM_PDL</a> 0x0200</td></tr>
<tr class="separator:a6e57d913634d033b4d5ad72d99fd3e9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a87b0f279f8413c7e4d805c5d85f20d34"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a87b0f279f8413c7e4d805c5d85f20d34">ITEM_BUG</a> 0x0400</td></tr>
+<tr class="separator:a87b0f279f8413c7e4d805c5d85f20d34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c9dce0ef27b35397e29298eb966f7f7"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a8c9dce0ef27b35397e29298eb966f7f7">ITEM_ORIGIN</a> 0x0001</td></tr>
<tr class="separator:a8c9dce0ef27b35397e29298eb966f7f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a009e6a0637cb65804ea8094ecc4450b0"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="boot_8php.html#a009e6a0637cb65804ea8094ecc4450b0">ITEM_UNSEEN</a> 0x0002</td></tr>
@@ -698,7 +720,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">App\__construct()</a>, <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36">connect_init()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections_init()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="lastpost_8php.html#ab4c6ebd25736af678e64d55ce508ce8c">lastpost_init()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a9627cd857cafdf04e4fc0ae48c8e8518">mitem_init()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164">new_channel_init()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014">oembed_init()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange_init()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c">profiles_aside()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="register_8php.html#ae20c0cd40f738d6295de58b9202c83d5">register_init()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a267555abd17290e659b4bf44b885e4e0">setup_init()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred_init()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport_init()</a>, <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel_content()</a>, <a class="el" href="update__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display_content()</a>, <a class="el" href="update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41">update_network_content()</a>, <a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search_content()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+<p>Referenced by <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">App\__construct()</a>, <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>, <a class="el" href="achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e">achievements_content()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="mod_2chat_8php.html#aa9ae4782e9baef0b7314ab9527c2707e">chat_init()</a>, <a class="el" href="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud_init()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36">connect_init()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="connedit_8php.html#a4da871e075597a09a8b374b9171dd92e">connedit_init()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a9627cd857cafdf04e4fc0ae48c8e8518">mitem_init()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164">new_channel_init()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014">oembed_init()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange_init()</a>, <a class="el" href="online_8php.html#a80e107c84eb722b0ca11d0413b96f9f7">online_init()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="register_8php.html#ae20c0cd40f738d6295de58b9202c83d5">register_init()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="settings_8php.html#a3a4cde287482fced008583f54ba2a722">settings_init()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a267555abd17290e659b4bf44b885e4e0">setup_init()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred_init()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport_init()</a>, <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel_content()</a>, <a class="el" href="update__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display_content()</a>, <a class="el" href="update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41">update_network_content()</a>, <a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search_content()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="xref_8php.html#a9bee399213b8de8226b0d60834307473">xref_init()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
</div>
</div>
@@ -716,7 +738,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">App\__construct()</a>, <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api_statuses_destroy()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36">connect_init()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections_init()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="lastpost_8php.html#ab4c6ebd25736af678e64d55ce508ce8c">lastpost_init()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, <a class="el" href="mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7">message_aside()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a9627cd857cafdf04e4fc0ae48c8e8518">mitem_init()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164">new_channel_init()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014">oembed_init()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange_init()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c">profiles_aside()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="register_8php.html#ae20c0cd40f738d6295de58b9202c83d5">register_init()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a267555abd17290e659b4bf44b885e4e0">setup_init()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred_init()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport_init()</a>, <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel_content()</a>, <a class="el" href="update__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display_content()</a>, <a class="el" href="update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41">update_network_content()</a>, <a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search_content()</a>, <a class="el" href="view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e">view_init()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+<p>Referenced by <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">App\__construct()</a>, <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>, <a class="el" href="achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e">achievements_content()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api_statuses_destroy()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="mod_2chat_8php.html#aa9ae4782e9baef0b7314ab9527c2707e">chat_init()</a>, <a class="el" href="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud_init()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36">connect_init()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="connedit_8php.html#a4da871e075597a09a8b374b9171dd92e">connedit_init()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="identity_8php.html#a332df795f684788002f5a6424abacfd7">get_online_status()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a9627cd857cafdf04e4fc0ae48c8e8518">mitem_init()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164">new_channel_init()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014">oembed_init()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange_init()</a>, <a class="el" href="online_8php.html#a80e107c84eb722b0ca11d0413b96f9f7">online_init()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="register_8php.html#ae20c0cd40f738d6295de58b9202c83d5">register_init()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a267555abd17290e659b4bf44b885e4e0">setup_init()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred_init()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport_init()</a>, <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel_content()</a>, <a class="el" href="update__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display_content()</a>, <a class="el" href="update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41">update_network_content()</a>, <a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search_content()</a>, <a class="el" href="view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e">view_init()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="widgets_8php.html#aa189a07241246d97efbee29f1c6a6f7f">widget_collections()</a>, <a class="el" href="widgets_8php.html#afa2e55a78f95667a6da082efac7fec74">widget_mailmenu()</a>, <a class="el" href="widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01">widget_settings_menu()</a>, <a class="el" href="xref_8php.html#a9bee399213b8de8226b0d60834307473">xref_init()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
</div>
</div>
@@ -804,6 +826,8 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p>Build the page - now that we have all the components</p>
+<p>Referenced by <a class="el" href="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">RedBrowser\generateDirectoryIndex()</a>.</p>
+
</div>
</div>
<a class="anchor" id="aa4221641e5c21db69fa52c426b9017f5"></a>
@@ -919,7 +943,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184">import_content()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="text_8php.html#a1633412120f52bdce5f43e0a127d9293">mimetype_select()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="text_8php.html#a324c58f37f6acdf9cd1922aa76077d9f">z_input_filter()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+<p>Referenced by <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde">home_init()</a>, <a class="el" href="import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184">import_content()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="text_8php.html#a1633412120f52bdce5f43e0a127d9293">mimetype_select()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="text_8php.html#a324c58f37f6acdf9cd1922aa76077d9f">z_input_filter()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
</div>
</div>
@@ -936,7 +960,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6">FriendicaSmarty\__construct()</a>, <a class="el" href="classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6">FriendicaSmartyEngine\__construct()</a>, <a class="el" href="Contact_8php.html#a024919623a830e8703ac4f23496dd66c">abook_toggle_flag()</a>, <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="include_2api_8php.html#a5990101034e7abf6404feba3cd273629">api_apply_template()</a>, <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc()</a>, <a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv()</a>, <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7">avatar_img()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7">best_link_url()</a>, <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#af634a3f721c5e238530d0636d33230ec">blogtheme_imgurl()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c">call_hooks()</a>, <a class="el" href="items_8php.html#a1e75047cf175aaee8dd16aa761913ff9">can_comment_on_post()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="security_8php.html#a9c6180e82150a5a9af91a1255d096b5c">check_form_security_token()</a>, <a class="el" href="security_8php.html#a444ac867dfa8c37cf0a7a226412bee28">check_form_security_token_ForbiddenOnErr()</a>, <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr()</a>, <a class="el" href="setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4">check_htaccess()</a>, <a class="el" href="cli__suggest_8php.html#a8f3a60fc96f4bec7d3837c4efc7725f2">cli_suggest_run()</a>, <a class="el" href="comanche_8php.html#a5a7ab801717d38e91ac910b933973887">comanche_block()</a>, <a class="el" href="comanche_8php.html#a1fe339e1454803aa502ac89379c17f5b">comanche_menu()</a>, <a class="el" href="comanche_8php.html#a028f004d5b8c23d6367816d899e17cfe">comanche_replace_region()</a>, <a class="el" href="comanche_8php.html#a6b0191c1a63db1696a2eb139d90d9e7f">comanche_widget()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="text_8php.html#a87a3cefc603302c78982f1d8e1245265">design_tools()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">fix_attached_photo_permissions()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="contact__widgets_8php.html#af24e693532a045954caab515942cfc6f">follow_widget()</a>, <a class="el" href="bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863">format_event_diaspora()</a>, <a class="el" href="boot_8php.html#afe88b920aa285982edb817a0dd44eb37">get_account_id()</a>, <a class="el" href="language_8php.html#a980dee1d8715a98ab02e36b59facf8ed">get_best_language()</a>, <a class="el" href="identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="security_8php.html#acd06ef411116115c2f0a92633700db8a">get_form_security_token()</a>, <a class="el" href="classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118">FriendicaSmartyEngine\get_intltext_template()</a>, <a class="el" href="plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295">get_intltext_template()</a>, <a class="el" href="plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4">get_markup_template()</a>, <a class="el" href="boot_8php.html#a623e49c79943f3e7bdb770d021683cf7">get_observer_hash()</a>, <a class="el" href="text_8php.html#a3ef8c0cf31f35f77462067de8712fa34">get_plink()</a>, <a class="el" href="settings_8php.html#a39abc76ff5459c57e3b957664f273f18">get_theme_config_file()</a>, <a class="el" href="plugin_8php.html#a48047edfbef770125a5508dcc2f9282f">get_theme_screenshot()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">group_select()</a>, <a class="el" href="photo__driver_8php.html#a243cee492ce443afb6a7d77d54b6c4aa">guess_image_type()</a>, <a class="el" href="plugin_8php.html#a23c4fccf1eb5fcd63b24783ba1f05f7a">head_add_css()</a>, <a class="el" href="plugin_8php.html#a516591850f4fd49fd1425cfa54089db8">head_add_js()</a>, <a class="el" href="plugin_8php.html#af92789f559b89a380e49d303218aeeca">head_get_css()</a>, <a class="el" href="plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1">head_get_js()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498">info()</a>, <a class="el" href="plugin_8php.html#aeaebe63dcf6fa2794f363ba2bc0b2c6b">insert_hook()</a>, <a class="el" href="boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e">is_site_admin()</a>, <a class="el" href="text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e">item_message_id()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533">item_redir_and_replace_images()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links()</a>, <a class="el" href="plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813">load_hooks()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="items_8php.html#ac1fcf621dce7370515b420a7753f4726">map_scope()</a>, <a class="el" href="nav_8php.html#ac3c920ce3ea5b0d9e0678ee37155f06a">nav_set_selected()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">notice()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url()</a>, <a class="el" href="include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3">oembed_format_object()</a>, <a class="el" href="include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed_iframe()</a>, <a class="el" href="onedirsync_8php.html#a411aedd47c57476099647961e6a86691">onedirsync_run()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="text_8php.html#ac19d2b33a58372a357a43d51eed19162">preg_heart()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01">public_permissions_sql()</a>, <a class="el" href="text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09">replace_macros()</a>, <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic_init()</a>, <a class="el" href="bbcode_8php.html#a5165a5221a52cf1bc1d7812ebd2069c7">rpost_callback()</a>, <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">send_status_notifications()</a>, <a class="el" href="account_8php.html#aa9c29c497c17d8f9344dce8631ad8761">send_verification_email()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="Contact_8php.html#a38daa1c210b78385307123450ca9a1fc">terminate_friendship()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2">theme_include()</a>, <a class="el" href="language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d">tt()</a>, <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58">what_next()</a>, <a class="el" href="widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923">widget_profile()</a>, <a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widget_tagcloud()</a>, <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url()</a>, and <a class="el" href="zot_8php.html#a95528377d7303131958c9f0b7158fdce">zot_finger()</a>.</p>
+<p>Referenced by <a class="el" href="classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6">FriendicaSmarty\__construct()</a>, <a class="el" href="classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6">FriendicaSmartyEngine\__construct()</a>, <a class="el" href="Contact_8php.html#a024919623a830e8703ac4f23496dd66c">abook_toggle_flag()</a>, <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="include_2api_8php.html#a5990101034e7abf6404feba3cd273629">api_apply_template()</a>, <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc()</a>, <a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv()</a>, <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7">avatar_img()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7">best_link_url()</a>, <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#af634a3f721c5e238530d0636d33230ec">blogtheme_imgurl()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c">call_hooks()</a>, <a class="el" href="items_8php.html#a1e75047cf175aaee8dd16aa761913ff9">can_comment_on_post()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="security_8php.html#a9c6180e82150a5a9af91a1255d096b5c">check_form_security_token()</a>, <a class="el" href="security_8php.html#a444ac867dfa8c37cf0a7a226412bee28">check_form_security_token_ForbiddenOnErr()</a>, <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr()</a>, <a class="el" href="setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4">check_htaccess()</a>, <a class="el" href="cli__suggest_8php.html#a8f3a60fc96f4bec7d3837c4efc7725f2">cli_suggest_run()</a>, <a class="el" href="comanche_8php.html#a5a7ab801717d38e91ac910b933973887">comanche_block()</a>, <a class="el" href="comanche_8php.html#a1fe339e1454803aa502ac89379c17f5b">comanche_menu()</a>, <a class="el" href="comanche_8php.html#a028f004d5b8c23d6367816d899e17cfe">comanche_replace_region()</a>, <a class="el" href="comanche_8php.html#a6b0191c1a63db1696a2eb139d90d9e7f">comanche_widget()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="text_8php.html#a87a3cefc603302c78982f1d8e1245265">design_tools()</a>, <a class="el" href="taxonomy_8php.html#a599ee71dd3194c8127b00dabec77abc1">dir_tagblock()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">fix_attached_photo_permissions()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863">format_event_diaspora()</a>, <a class="el" href="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">RedBrowser\generateDirectoryIndex()</a>, <a class="el" href="boot_8php.html#afe88b920aa285982edb817a0dd44eb37">get_account_id()</a>, <a class="el" href="language_8php.html#a980dee1d8715a98ab02e36b59facf8ed">get_best_language()</a>, <a class="el" href="identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="security_8php.html#acd06ef411116115c2f0a92633700db8a">get_form_security_token()</a>, <a class="el" href="classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118">FriendicaSmartyEngine\get_intltext_template()</a>, <a class="el" href="plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295">get_intltext_template()</a>, <a class="el" href="plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4">get_markup_template()</a>, <a class="el" href="boot_8php.html#a623e49c79943f3e7bdb770d021683cf7">get_observer_hash()</a>, <a class="el" href="text_8php.html#aac0969ae09853205992ba06ab9f9f61a">get_plink()</a>, <a class="el" href="settings_8php.html#a39abc76ff5459c57e3b957664f273f18">get_theme_config_file()</a>, <a class="el" href="plugin_8php.html#a48047edfbef770125a5508dcc2f9282f">get_theme_screenshot()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">group_select()</a>, <a class="el" href="photo__driver_8php.html#a243cee492ce443afb6a7d77d54b6c4aa">guess_image_type()</a>, <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>, <a class="el" href="plugin_8php.html#a23c4fccf1eb5fcd63b24783ba1f05f7a">head_add_css()</a>, <a class="el" href="plugin_8php.html#a516591850f4fd49fd1425cfa54089db8">head_add_js()</a>, <a class="el" href="plugin_8php.html#af92789f559b89a380e49d303218aeeca">head_get_css()</a>, <a class="el" href="plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1">head_get_js()</a>, <a class="el" href="plugin_8php.html#a9ab6caae31935f6cf781ce7872db7cdf">head_remove_css()</a>, <a class="el" href="plugin_8php.html#a4a0ae7b881e7c8af99a69e3b03f898b4">head_remove_js()</a>, <a class="el" href="classRedBrowser.html#a7f6bf0bda07833f4c647557bd172e349">RedBrowser\htmlActionsPanel()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887">import_profile_photo()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498">info()</a>, <a class="el" href="plugin_8php.html#aeaebe63dcf6fa2794f363ba2bc0b2c6b">insert_hook()</a>, <a class="el" href="boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e">is_site_admin()</a>, <a class="el" href="text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e">item_message_id()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533">item_redir_and_replace_images()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links()</a>, <a class="el" href="plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813">load_hooks()</a>, <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">local_dir_update()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="items_8php.html#ac1fcf621dce7370515b420a7753f4726">map_scope()</a>, <a class="el" href="include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8">menu_add_item()</a>, <a class="el" href="include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa">menu_edit_item()</a>, <a class="el" href="nav_8php.html#ac3c920ce3ea5b0d9e0678ee37155f06a">nav_set_selected()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">notice()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url()</a>, <a class="el" href="include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3">oembed_format_object()</a>, <a class="el" href="include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed_iframe()</a>, <a class="el" href="onedirsync_8php.html#a411aedd47c57476099647961e6a86691">onedirsync_run()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="text_8php.html#ac19d2b33a58372a357a43d51eed19162">preg_heart()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01">public_permissions_sql()</a>, <a class="el" href="text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09">replace_macros()</a>, <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic_init()</a>, <a class="el" href="bbcode_8php.html#a5165a5221a52cf1bc1d7812ebd2069c7">rpost_callback()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search()</a>, <a class="el" href="text_8php.html#aae91e4d2a2c6f7a9daccd2c186ae3447">searchbox()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">send_status_notifications()</a>, <a class="el" href="account_8php.html#aa9c29c497c17d8f9344dce8631ad8761">send_verification_email()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="Contact_8php.html#a38daa1c210b78385307123450ca9a1fc">terminate_friendship()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2">theme_include()</a>, <a class="el" href="bbcode_8php.html#aa92f119341f4c69dcef2768a013079b8">tryzrlvideo()</a>, <a class="el" href="language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d">tt()</a>, <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58">what_next()</a>, <a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widget_archive()</a>, <a class="el" href="widgets_8php.html#af37fdad3b2e861d860a4a8c4d8a76c0b">widget_categories()</a>, <a class="el" href="widgets_8php.html#a47c72aac42058ea086c9ef8651c259da">widget_chatroom_list()</a>, <a class="el" href="widgets_8php.html#aa189a07241246d97efbee29f1c6a6f7f">widget_collections()</a>, <a class="el" href="widgets_8php.html#a145ff35319cfa47a9cc07f9425bd674b">widget_design_tools()</a>, <a class="el" href="widgets_8php.html#a5ab3b64496e02cab56429978ad55f1c0">widget_filer()</a>, <a class="el" href="widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd">widget_follow()</a>, <a class="el" href="widgets_8php.html#a70442dfa079312d9d5e5ee01be51a165">widget_fullprofile()</a>, <a class="el" href="widgets_8php.html#afa2e55a78f95667a6da082efac7fec74">widget_mailmenu()</a>, <a class="el" href="widgets_8php.html#a3bdfb81bf9a8ddf219924fa7eaf22013">widget_menu_preview()</a>, <a class="el" href="widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e">widget_photo_albums()</a>, <a class="el" href="widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923">widget_profile()</a>, <a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widget_savedsearch()</a>, <a class="el" href="widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01">widget_settings_menu()</a>, <a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widget_tagcloud()</a>, <a class="el" href="widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653">widget_tagcloud_wall()</a>, <a class="el" href="widgets_8php.html#abe03366fd22fd27d683518fa0765da50">widget_vcard()</a>, <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url()</a>, and <a class="el" href="zot_8php.html#a95528377d7303131958c9f0b7158fdce">zot_finger()</a>.</p>
</div>
</div>
@@ -998,7 +1022,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="comanche_8php.html#a1fe339e1454803aa502ac89379c17f5b">comanche_menu()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="dir__fns_8php.html#acf621621e929d49441da30aad76a58cf">dir_safe_mode()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="items_8php.html#a079e099e15d88d47aeb6ca6d60da7107">get_public_feed()</a>, <a class="el" href="security_8php.html#a9355488460ab11d6058656ff919e5cf9">item_permissions_sql()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">notice()</a>, <a class="el" href="security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f">permissions_sql()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="security_8php.html#a15e0f8f511cc06192db63387f97238b3">stream_perms_xchans()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="toggle__safesearch_8php.html#a23d5cfb2727a266e44993ffbf5595a79">toggle_safesearch_init()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="vote_8php.html#a6aa67489bf458ca5e3206e46dac68596">vote_content()</a>, <a class="el" href="vote_8php.html#a57a9516ee1b923b224e66dcc47377fb2">vote_post()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, and <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a">bookmarks_content()</a>, <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9">chatsvc_content()</a>, <a class="el" href="chatsvc_8php.html#a28d248b056fa47452e28ed01130e9116">chatsvc_init()</a>, <a class="el" href="chatsvc_8php.html#a7c9a9b9c24a2b02eed8efd6b09632d03">chatsvc_post()</a>, <a class="el" href="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud_init()</a>, <a class="el" href="comanche_8php.html#a1fe339e1454803aa502ac89379c17f5b">comanche_menu()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="dir__fns_8php.html#acf621621e929d49441da30aad76a58cf">dir_safe_mode()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="items_8php.html#a079e099e15d88d47aeb6ca6d60da7107">get_public_feed()</a>, <a class="el" href="security_8php.html#a9355488460ab11d6058656ff919e5cf9">item_permissions_sql()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">notice()</a>, <a class="el" href="security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f">permissions_sql()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="classRedBrowser.html#a40fdbb9d9fe6c1243bbf135dd5b0a06f">RedBrowser\set_writeable()</a>, <a class="el" href="security_8php.html#a15e0f8f511cc06192db63387f97238b3">stream_perms_xchans()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="toggle__safesearch_8php.html#a23d5cfb2727a266e44993ffbf5595a79">toggle_safesearch_init()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="vote_8php.html#a6aa67489bf458ca5e3206e46dac68596">vote_content()</a>, <a class="el" href="vote_8php.html#a57a9516ee1b923b224e66dcc47377fb2">vote_post()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e">widget_photo_albums()</a>, <a class="el" href="widgets_8php.html#a0d404276fedc59f5038cf5c085028326">widget_suggestions()</a>, and <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>.</p>
</div>
</div>
@@ -1016,7 +1040,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a6943543f3138f6ee182cb701f415d1cc">admin_page_hubloc()</a>, <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login_content()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090">randprof_init()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic_init()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="toggle__mobile_8php.html#aca53ade8971802b45c31e722b22c6254">toggle_mobile_init()</a>, <a class="el" href="toggle__safesearch_8php.html#a23d5cfb2727a266e44993ffbf5595a79">toggle_safesearch_init()</a>, and <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>.</p>
+<p>Referenced by <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a6943543f3138f6ee182cb701f415d1cc">admin_page_hubloc()</a>, <a class="el" href="admin_8php.html#a60ba9783ad14545814919970bc3fb725">admin_page_hubloc_post()</a>, <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="mod_2chat_8php.html#a999d594745597c656c9760253ae297ad">chat_post()</a>, <a class="el" href="chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9">chatsvc_content()</a>, <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde">home_init()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login_content()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090">randprof_init()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic_init()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="sslify_8php.html#a75b11e54a3d1fc83e7d4c0e8b4dab316">sslify_init()</a>, <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="toggle__mobile_8php.html#aca53ade8971802b45c31e722b22c6254">toggle_mobile_init()</a>, <a class="el" href="toggle__safesearch_8php.html#a23d5cfb2727a266e44993ffbf5595a79">toggle_safesearch_init()</a>, <a class="el" href="xref_8php.html#a9bee399213b8de8226b0d60834307473">xref_init()</a>, and <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>.</p>
</div>
</div>
@@ -1049,7 +1073,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections_init()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, and <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>.</p>
+<p>Referenced by <a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections_init()</a>, <a class="el" href="connedit_8php.html#a4da871e075597a09a8b374b9171dd92e">connedit_init()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, and <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>.</p>
</div>
</div>
@@ -1067,7 +1091,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, and <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>.</p>
+<p>Referenced by <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, and <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>.</p>
</div>
</div>
@@ -1105,6 +1129,23 @@ Variables</h2></td></tr>
</div>
</div>
+<a class="anchor" id="ac5e74f899f6e98d8e91b14ba1c08bc08"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">is_windows </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, and <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="aea7fc57a4d8e9dcb42f2601b0b9b761c"></a>
<div class="memitem">
<div class="memproto">
@@ -1118,7 +1159,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6">FriendicaSmartyEngine\__construct()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="include_2api_8php.html#a36344c80b8e9755da2f2dd3a0e28cce8">api_ff_ids()</a>, <a class="el" href="include_2api_8php.html#a53b0680b682ae6078f2e1ed18cfb3f74">api_friendica_version()</a>, <a class="el" href="include_2api_8php.html#aff322705cc6084b329003fc8eab0aad0">api_oauth_access_token()</a>, <a class="el" href="include_2api_8php.html#aa1bddb580510e70cc1a7b7381667f1a3">api_oauth_request_token()</a>, <a class="el" href="include_2api_8php.html#a8969e8d9c683f12ba17dcd4b059e020d">api_statusnet_version()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="security_8php.html#a444ac867dfa8c37cf0a7a226412bee28">check_form_security_token_ForbiddenOnErr()</a>, <a class="el" href="cloud_8php.html#a080071b784fe01d04ed6c09d9f2785b8">cloud_init()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="boot_8php.html#a5ab6181607a090bcdbaa13b15b85aba1">goaway()</a>, <a class="el" href="include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2">http_status_exit()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="include_2network_8php.html#a4c5d50079e089168d9248427018fffd4">json_return_and_die()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8">msearch_post()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014">oembed_init()</a>, <a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange_init()</a>, <a class="el" href="opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9">opensearch_init()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="php_8php.html#adb7164dfed9a4ecbe2e168e1e78f12f6">php_init()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="pretheme_8php.html#af5660943ee99db5fd75182316522eafe">pretheme_init()</a>, <a class="el" href="qsearch_8php.html#a0501887b95bd8fa21018b2936a668894">qsearch_init()</a>, <a class="el" href="classApp.html#abf46a653d8499e7c253cc1be894a6d83">App\register_template_engine()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="setup_8php.html#a267555abd17290e659b4bf44b885e4e0">setup_init()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, <a class="el" href="sitelist_8php.html#a665a59bf60f780b40f32c909f4a473b1">sitelist_init()</a>, <a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred_init()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="boot_8php.html#ac608a34f3bc180e7724192e0fd31f9b0">system_unavailable()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="classApp.html#a94a1ed2dc493c58612d17035b74ae736">App\template_engine()</a>, <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport_init()</a>, <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel_content()</a>, <a class="el" href="update__community_8php.html#abdcc5c4ecebbe0b5fcba2755c69cb3b1">update_community_content()</a>, <a class="el" href="update__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display_content()</a>, <a class="el" href="update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41">update_network_content()</a>, <a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search_content()</a>, <a class="el" href="view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e">view_init()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6">xml_status()</a>, and <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>.</p>
+<p>Referenced by <a class="el" href="classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6">FriendicaSmartyEngine\__construct()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="include_2api_8php.html#a36344c80b8e9755da2f2dd3a0e28cce8">api_ff_ids()</a>, <a class="el" href="include_2api_8php.html#a53b0680b682ae6078f2e1ed18cfb3f74">api_friendica_version()</a>, <a class="el" href="include_2api_8php.html#aff322705cc6084b329003fc8eab0aad0">api_oauth_access_token()</a>, <a class="el" href="include_2api_8php.html#aa1bddb580510e70cc1a7b7381667f1a3">api_oauth_request_token()</a>, <a class="el" href="include_2api_8php.html#a8969e8d9c683f12ba17dcd4b059e020d">api_statusnet_version()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="security_8php.html#a444ac867dfa8c37cf0a7a226412bee28">check_form_security_token_ForbiddenOnErr()</a>, <a class="el" href="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud_init()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="boot_8php.html#a5ab6181607a090bcdbaa13b15b85aba1">goaway()</a>, <a class="el" href="include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2">http_status_exit()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="include_2network_8php.html#a4c5d50079e089168d9248427018fffd4">json_return_and_die()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8">msearch_post()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014">oembed_init()</a>, <a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange_init()</a>, <a class="el" href="opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9">opensearch_init()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="php_8php.html#adb7164dfed9a4ecbe2e168e1e78f12f6">php_init()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="pretheme_8php.html#af5660943ee99db5fd75182316522eafe">pretheme_init()</a>, <a class="el" href="classApp.html#abf46a653d8499e7c253cc1be894a6d83">App\register_template_engine()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="setup_8php.html#a267555abd17290e659b4bf44b885e4e0">setup_init()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, <a class="el" href="sitelist_8php.html#a665a59bf60f780b40f32c909f4a473b1">sitelist_init()</a>, <a class="el" href="sslify_8php.html#a75b11e54a3d1fc83e7d4c0e8b4dab316">sslify_init()</a>, <a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred_init()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="boot_8php.html#ac608a34f3bc180e7724192e0fd31f9b0">system_unavailable()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="classApp.html#a94a1ed2dc493c58612d17035b74ae736">App\template_engine()</a>, <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport_init()</a>, <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel_content()</a>, <a class="el" href="update__community_8php.html#abdcc5c4ecebbe0b5fcba2755c69cb3b1">update_community_content()</a>, <a class="el" href="update__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display_content()</a>, <a class="el" href="update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41">update_network_content()</a>, <a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search_content()</a>, <a class="el" href="view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e">view_init()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6">xml_status()</a>, and <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>.</p>
</div>
</div>
@@ -1153,7 +1194,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classConversation.html#af84ea6ccd72214c9bb4c504461cc8b09">Conversation\__construct()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api_post()</a>, <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, <a class="el" href="conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7">best_link_url()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="community_8php.html#a56c94ec978a38633c5628fa6f8e386d9">community_init()</a>, <a class="el" href="connect_8php.html#a489f0a66c660de6ec4d6917b27674f07">connect_content()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="connections_8php.html#af48f7ad20914760ba9874c090384e35a">connections_aside()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections_init()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair_content()</a>, <a class="el" href="crepair_8php.html#ab089978e50df156bbfabf9f8f5ccd198">crepair_init()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="mod_2directory_8php.html#aa1d928543212871491706216742dd73c">directory_aside()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55">drop_items()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="mod_2follow_8php.html#a4c540ea4e9f5c581c1a53516ac585592">follow_content()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest_content()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">get_theme_uid()</a>, <a class="el" href="mod_2group_8php.html#aeb0784dd928e53e6d8693513bec8928c">group_aside()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09">group_get_members()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">group_select()</a>, <a class="el" href="include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17">group_side()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content()</a>, <a class="el" href="security_8php.html#a9355488460ab11d6058656ff919e5cf9">item_permissions_sql()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="lastpost_8php.html#ab4c6ebd25736af678e64d55ce508ce8c">lastpost_init()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login_content()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, <a class="el" href="mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7">message_aside()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="text_8php.html#a1633412120f52bdce5f43e0a127d9293">mimetype_select()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a9627cd857cafdf04e4fc0ae48c8e8518">mitem_init()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f">permissions_sql()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="identity_8php.html#ad4a2c8caca8f6ae93633ebeca0ed6620">profile_create_sidebar()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#ac9cd968a767e2ae1b88383b6cdd6dbe3">profile_photo_aside()</a>, <a class="el" href="profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02">profile_photo_init()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c">profiles_aside()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#a77fd398ae7c25142e1d9ad724ec347cc">profperm_aside()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6">profperm_init()</a>, <a class="el" href="qsearch_8php.html#a0501887b95bd8fa21018b2936a668894">qsearch_init()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793">redbasic_form()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme_post()</a>, <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic_init()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search_init()</a>, <a class="el" href="search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6">search_saved_searches()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation\set_mode()</a>, <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside()</a>, <a class="el" href="settings_8php.html#a3a4cde287482fced008583f54ba2a722">settings_init()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred_init()</a>, <a class="el" href="security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a15e0f8f511cc06192db63387f97238b3">stream_perms_xchans()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c">suggest_init()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6">theme_post()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport_init()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6">viewconnections_aside()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923">widget_profile()</a>, <a class="el" href="text_8php.html#a324c58f37f6acdf9cd1922aa76077d9f">z_input_filter()</a>, <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, and <a class="el" href="zping_8php.html#a4d3a6b0b8b04ed6469015823e615ee75">zping_content()</a>.</p>
+<p>Referenced by <a class="el" href="classConversation.html#af84ea6ccd72214c9bb4c504461cc8b09">Conversation\__construct()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api_post()</a>, <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, <a class="el" href="conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7">best_link_url()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a">bookmarks_content()</a>, <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="mod_2chat_8php.html#aa9ae4782e9baef0b7314ab9527c2707e">chat_init()</a>, <a class="el" href="mod_2chat_8php.html#a999d594745597c656c9760253ae297ad">chat_post()</a>, <a class="el" href="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud_init()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="community_8php.html#a56c94ec978a38633c5628fa6f8e386d9">community_init()</a>, <a class="el" href="connect_8php.html#a489f0a66c660de6ec4d6917b27674f07">connect_content()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections_init()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="connedit_8php.html#a4da871e075597a09a8b374b9171dd92e">connedit_init()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55">drop_items()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd">filestorage_post()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="mod_2follow_8php.html#a4c540ea4e9f5c581c1a53516ac585592">follow_content()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest_content()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="identity_8php.html#a332df795f684788002f5a6424abacfd7">get_online_status()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">get_theme_uid()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09">group_get_members()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">group_select()</a>, <a class="el" href="include_2group_8php.html#a6a69bd7be032fa8ce4e49c43a42cc6e9">group_side()</a>, <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>, <a class="el" href="home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde">home_init()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content()</a>, <a class="el" href="security_8php.html#a9355488460ab11d6058656ff919e5cf9">item_permissions_sql()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login_content()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8">menu_add_item()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa">menu_edit_item()</a>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, <a class="el" href="text_8php.html#a1633412120f52bdce5f43e0a127d9293">mimetype_select()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a9627cd857cafdf04e4fc0ae48c8e8518">mitem_init()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="notes_8php.html#a4dbd7b1f906440746af48b484d66535a">notes_init()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f">permissions_sql()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="identity_8php.html#ad4a2c8caca8f6ae93633ebeca0ed6620">profile_create_sidebar()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02">profile_photo_init()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6">profperm_init()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793">redbasic_form()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme_post()</a>, <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic_init()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="text_8php.html#aae91e4d2a2c6f7a9daccd2c186ae3447">searchbox()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation\set_mode()</a>, <a class="el" href="settings_8php.html#a3a4cde287482fced008583f54ba2a722">settings_init()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred_init()</a>, <a class="el" href="security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a15e0f8f511cc06192db63387f97238b3">stream_perms_xchans()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c">suggest_init()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6">theme_post()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport_init()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="widgets_8php.html#add9b24d3304e529a7975e96122315554">widget_affinity()</a>, <a class="el" href="widgets_8php.html#a145ff35319cfa47a9cc07f9425bd674b">widget_design_tools()</a>, <a class="el" href="widgets_8php.html#a5ab3b64496e02cab56429978ad55f1c0">widget_filer()</a>, <a class="el" href="widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd">widget_follow()</a>, <a class="el" href="widgets_8php.html#a70442dfa079312d9d5e5ee01be51a165">widget_fullprofile()</a>, <a class="el" href="widgets_8php.html#afa2e55a78f95667a6da082efac7fec74">widget_mailmenu()</a>, <a class="el" href="widgets_8php.html#a45ea061dabe9a8372e4ca3b9e5714256">widget_notes()</a>, <a class="el" href="widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923">widget_profile()</a>, <a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widget_savedsearch()</a>, <a class="el" href="widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01">widget_settings_menu()</a>, <a class="el" href="widgets_8php.html#a0d404276fedc59f5038cf5c085028326">widget_suggestions()</a>, <a class="el" href="text_8php.html#a324c58f37f6acdf9cd1922aa76077d9f">z_input_filter()</a>, <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, and <a class="el" href="zping_8php.html#a4d3a6b0b8b04ed6469015823e615ee75">zping_content()</a>.</p>
</div>
</div>
@@ -1187,7 +1228,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="mod_2follow_8php.html#a4c540ea4e9f5c581c1a53516ac585592">follow_content()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login_content()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="post__to__red_8php.html#a75db5d87226a0287a0ac0fa315f2bcfd">post_to_red_displayAdminContent()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, and <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>.</p>
+<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="mod_2follow_8php.html#a4c540ea4e9f5c581c1a53516ac585592">follow_content()</a>, <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home_content()</a>, <a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login_content()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="post__to__red_8php.html#a75db5d87226a0287a0ac0fa315f2bcfd">post_to_red_displayAdminContent()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, and <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>.</p>
</div>
</div>
@@ -1205,7 +1246,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#a6943543f3138f6ee182cb701f415d1cc">admin_page_hubloc()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api_post()</a>, <a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36">connect_init()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair_content()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest_content()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce">group_add()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184">import_content()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="lastpost_8php.html#ab4c6ebd25736af678e64d55ce508ce8c">lastpost_init()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a9627cd857cafdf04e4fc0ae48c8e8518">mitem_init()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">user_deny()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, and <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>.</p>
+<p>Referenced by <a class="el" href="achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e">achievements_content()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#a6943543f3138f6ee182cb701f415d1cc">admin_page_hubloc()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api_post()</a>, <a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a">bookmarks_content()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="mod_2chat_8php.html#aa9ae4782e9baef0b7314ab9527c2707e">chat_init()</a>, <a class="el" href="include_2chat_8php.html#a2c95b545e46bfee64faa05ecf0afea91">chatroom_enter()</a>, <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36">connect_init()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd">filestorage_post()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest_content()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce">group_add()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home_content()</a>, <a class="el" href="import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184">import_content()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a9627cd857cafdf04e4fc0ae48c8e8518">mitem_init()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">user_deny()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, and <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>.</p>
</div>
</div>
@@ -1227,7 +1268,7 @@ Variables</h2></td></tr>
<p>e.g.: proc_run("ls","-la","/tmp");</p>
<p>$cmd and string args are surrounded with "" </p>
-<p>Referenced by <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55">drop_items()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, and <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>.</p>
+<p>Referenced by <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55">drop_items()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, and <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>.</p>
</div>
</div>
@@ -1244,7 +1285,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="mod_2directory_8php.html#aa1d928543212871491706216742dd73c">directory_aside()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55">drop_items()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content()</a>, <a class="el" href="security_8php.html#a9355488460ab11d6058656ff919e5cf9">item_permissions_sql()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f">permissions_sql()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="identity_8php.html#ad4a2c8caca8f6ae93633ebeca0ed6620">profile_create_sidebar()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6">viewconnections_aside()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, <a class="el" href="widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923">widget_profile()</a>, <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55">drop_items()</a>, <a class="el" href="identity_8php.html#a332df795f684788002f5a6424abacfd7">get_online_status()</a>, <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content()</a>, <a class="el" href="security_8php.html#a9355488460ab11d6058656ff919e5cf9">item_permissions_sql()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f">permissions_sql()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="identity_8php.html#ad4a2c8caca8f6ae93633ebeca0ed6620">profile_create_sidebar()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, <a class="el" href="widgets_8php.html#a70442dfa079312d9d5e5ee01be51a165">widget_fullprofile()</a>, <a class="el" href="widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923">widget_profile()</a>, <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
</div>
</div>
@@ -1305,7 +1346,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6">FriendicaSmarty\__construct()</a>, <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">App\__construct()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5">api_direct_messages_box()</a>, <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new()</a>, <a class="el" href="include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f">api_favorites()</a>, <a class="el" href="include_2api_8php.html#ae82608c317421f27446465aa6724733d">api_format_messages()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api_post()</a>, <a class="el" href="include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410">api_statuses_f()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update()</a>, <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="event_8php.html#a180cccd63c2a2f00ff432b03113531f3">bbtoevent()</a>, <a class="el" href="conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7">best_link_url()</a>, <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="security_8php.html#a9c6180e82150a5a9af91a1255d096b5c">check_form_security_token()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connections_8php.html#af48f7ad20914760ba9874c090384e35a">connections_aside()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="crepair_8php.html#ab089978e50df156bbfabf9f8f5ccd198">crepair_init()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme()</a>, <a class="el" href="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">del_pconfig()</a>, <a class="el" href="include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72">del_xconfig()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">detect_language()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="items_8php.html#aa723c0571e314a1853a24c5854b4f54f">encode_rel_links()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="language_8php.html#ace67d6cad57da08d030ad9dc9b8c836e">get_browser_language()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="identity_8php.html#a490972c02fdb638c52ec0e012a30bfd2">get_my_address()</a>, <a class="el" href="identity_8php.html#aa46321e1cd6a3b8dfde8bf9510112fec">get_my_url()</a>, <a class="el" href="text_8php.html#a3ef8c0cf31f35f77462067de8712fa34">get_plink()</a>, <a class="el" href="items_8php.html#a079e099e15d88d47aeb6ca6d60da7107">get_public_feed()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce">group_add()</a>, <a class="el" href="include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5">group_rmv()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498">info()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="text_8php.html#a71f6952243d3fe1c5a8154f78027e29c">lang_selector()</a>, <a class="el" href="lastpost_8php.html#a6108289ef2a767495c7c85a24f364983">lastpost_aside()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links()</a>, <a class="el" href="boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44">local_user()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">notice()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="dba__driver_8php.html#a55bf30d8176967e682656b5be4ad9249">printable()</a>, <a class="el" href="probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="qsearch_8php.html#a0501887b95bd8fa21018b2936a668894">qsearch_init()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e">ref_session_read()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="classApp.html#abf46a653d8499e7c253cc1be894a6d83">App\register_template_engine()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="boot_8php.html#a5542c5c2806ab8bca04bad53d47b5209">remote_user()</a>, <a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme_post()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search_init()</a>, <a class="el" href="search_8php.html#a230ec9681ddee3b5b8b40c8d550f32f7">search_post()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="classApp.html#a78788f6e9d8b713b138f81e457c5cd08">App\set_baseurl()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="setup_8php.html#a267555abd17290e659b4bf44b885e4e0">setup_init()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, <a class="el" href="suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c">suggest_init()</a>, <a class="el" href="language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04">t()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="classApp.html#a94a1ed2dc493c58612d17035b74ae736">App\template_engine()</a>, <a class="el" href="language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d">tt()</a>, <a class="el" href="identity_8php.html#af2802bc13a00a17b867bba7978ba8f58">validate_channelname()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webfinger_8php.html#a17dd28db6d390194bf9ecb809739d1d3">webfinger_content()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widget_tagcloud()</a>, <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>, <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url()</a>, <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">z_post_url()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+<p>Referenced by <a class="el" href="classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6">FriendicaSmarty\__construct()</a>, <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">App\__construct()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5">api_direct_messages_box()</a>, <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new()</a>, <a class="el" href="include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f">api_favorites()</a>, <a class="el" href="include_2api_8php.html#ae82608c317421f27446465aa6724733d">api_format_messages()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api_post()</a>, <a class="el" href="include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410">api_statuses_f()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update()</a>, <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="event_8php.html#a180cccd63c2a2f00ff432b03113531f3">bbtoevent()</a>, <a class="el" href="conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7">best_link_url()</a>, <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9">chatsvc_content()</a>, <a class="el" href="security_8php.html#a9c6180e82150a5a9af91a1255d096b5c">check_form_security_token()</a>, <a class="el" href="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud_init()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme()</a>, <a class="el" href="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">del_pconfig()</a>, <a class="el" href="include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72">del_xconfig()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">detect_language()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#aa723c0571e314a1853a24c5854b4f54f">encode_rel_links()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd">filestorage_post()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="language_8php.html#ace67d6cad57da08d030ad9dc9b8c836e">get_browser_language()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="identity_8php.html#a490972c02fdb638c52ec0e012a30bfd2">get_my_address()</a>, <a class="el" href="identity_8php.html#aa46321e1cd6a3b8dfde8bf9510112fec">get_my_url()</a>, <a class="el" href="text_8php.html#aac0969ae09853205992ba06ab9f9f61a">get_plink()</a>, <a class="el" href="items_8php.html#a079e099e15d88d47aeb6ca6d60da7107">get_public_feed()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce">group_add()</a>, <a class="el" href="include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5">group_rmv()</a>, <a class="el" href="include_2group_8php.html#a6a69bd7be032fa8ce4e49c43a42cc6e9">group_side()</a>, <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home_content()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498">info()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="text_8php.html#a71f6952243d3fe1c5a8154f78027e29c">lang_selector()</a>, <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links()</a>, <a class="el" href="boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44">local_user()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="session_8php.html#a4c0ead624f95483e386bc80abf570a8f">new_cookie()</a>, <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">notice()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="dba__driver_8php.html#a55bf30d8176967e682656b5be4ad9249">printable()</a>, <a class="el" href="probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e">ref_session_read()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="classApp.html#abf46a653d8499e7c253cc1be894a6d83">App\register_template_engine()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="boot_8php.html#a5542c5c2806ab8bca04bad53d47b5209">remote_user()</a>, <a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme_post()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="plugin_8php.html#a0e8c2ea50bfdbc39e17ccccaea21ddc3">script_path()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search_init()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="classApp.html#a78788f6e9d8b713b138f81e457c5cd08">App\set_baseurl()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="setup_8php.html#a267555abd17290e659b4bf44b885e4e0">setup_init()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, <a class="el" href="suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c">suggest_init()</a>, <a class="el" href="language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04">t()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="classApp.html#a94a1ed2dc493c58612d17035b74ae736">App\template_engine()</a>, <a class="el" href="language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d">tt()</a>, <a class="el" href="identity_8php.html#af2802bc13a00a17b867bba7978ba8f58">validate_channelname()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webfinger_8php.html#a17dd28db6d390194bf9ecb809739d1d3">webfinger_content()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="widgets_8php.html#add9b24d3304e529a7975e96122315554">widget_affinity()</a>, <a class="el" href="widgets_8php.html#af37fdad3b2e861d860a4a8c4d8a76c0b">widget_categories()</a>, <a class="el" href="widgets_8php.html#a5ab3b64496e02cab56429978ad55f1c0">widget_filer()</a>, <a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widget_savedsearch()</a>, <a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widget_tagcloud()</a>, <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>, <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url()</a>, <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">z_post_url()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
</div>
</div>
@@ -1339,7 +1380,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="bbcode_8php.html#a851f5aafefe52474201b83f9fd65931f">bb_parse_crypt()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="text_8php.html#a85e3a4851c16674834010d8419a5d7ca">chanlink_cid()</a>, <a class="el" href="text_8php.html#a55ab893be57feda59c2a7ba1e58ff2d0">chanlink_hash()</a>, <a class="el" href="text_8php.html#a2e8d6c402603be3a1256a16605e09c2a">chanlink_url()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">format_categories()</a>, <a class="el" href="plugin_8php.html#a9039e15aae27676af7777dcbee5a11d6">format_css_if_exists()</a>, <a class="el" href="text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91">format_filer()</a>, <a class="el" href="plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f">format_js_if_exists()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="classApp.html#af17df107f2216ddf5ad2a7e0f2ba2166">App\head_get_icon()</a>, <a class="el" href="boot_8php.html#a24a7a70afedd5d85fe0eadc85afa9f77">head_get_icon()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login_content()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="text_8php.html#a24d441d30df4b8e6bf6780bf62a5e2c6">magiclink_url()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="pubsites_8php.html#af614e279aab54065345bda6b03eafdf0">pubsites_content()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic_init()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="account_8php.html#aa9c29c497c17d8f9344dce8631ad8761">send_verification_email()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53">theme_attachments()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="toggle__safesearch_8php.html#a23d5cfb2727a266e44993ffbf5595a79">toggle_safesearch_init()</a>, <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, and <a class="el" href="zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7">zot_new_uid()</a>.</p>
+<p>Referenced by <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="bbcode_8php.html#a851f5aafefe52474201b83f9fd65931f">bb_parse_crypt()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="text_8php.html#a85e3a4851c16674834010d8419a5d7ca">chanlink_cid()</a>, <a class="el" href="text_8php.html#a55ab893be57feda59c2a7ba1e58ff2d0">chanlink_hash()</a>, <a class="el" href="text_8php.html#a2e8d6c402603be3a1256a16605e09c2a">chanlink_url()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="mod_2chat_8php.html#a999d594745597c656c9760253ae297ad">chat_post()</a>, <a class="el" href="chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9">chatsvc_content()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">format_categories()</a>, <a class="el" href="text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91">format_filer()</a>, <a class="el" href="classRedBrowser.html#a87529b4988a7777b49616f5c0a1c55d3">RedBrowser\getAssetUrl()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>, <a class="el" href="classApp.html#af17df107f2216ddf5ad2a7e0f2ba2166">App\head_get_icon()</a>, <a class="el" href="boot_8php.html#a24a7a70afedd5d85fe0eadc85afa9f77">head_get_icon()</a>, <a class="el" href="home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde">home_init()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login_content()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="text_8php.html#a24d441d30df4b8e6bf6780bf62a5e2c6">magiclink_url()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos_albums_list()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="pubsites_8php.html#af614e279aab54065345bda6b03eafdf0">pubsites_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic_init()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="plugin_8php.html#a0e8c2ea50bfdbc39e17ccccaea21ddc3">script_path()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="text_8php.html#aae91e4d2a2c6f7a9daccd2c186ae3447">searchbox()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="account_8php.html#aa9c29c497c17d8f9344dce8631ad8761">send_verification_email()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="text_8php.html#a33bdb5d4bfff2ede7caf61a98ac0a2e9">sslify()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53">theme_attachments()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="toggle__safesearch_8php.html#a23d5cfb2727a266e44993ffbf5595a79">toggle_safesearch_init()</a>, <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widget_archive()</a>, <a class="el" href="widgets_8php.html#a47c72aac42058ea086c9ef8651c259da">widget_chatroom_list()</a>, <a class="el" href="widgets_8php.html#a08035db02ff6a23260146b4c64153422">widget_dirtags()</a>, <a class="el" href="widgets_8php.html#a5ab3b64496e02cab56429978ad55f1c0">widget_filer()</a>, <a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widget_savedsearch()</a>, <a class="el" href="widgets_8php.html#a0d404276fedc59f5038cf5c085028326">widget_suggestions()</a>, <a class="el" href="xref_8php.html#a9bee399213b8de8226b0d60834307473">xref_init()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, and <a class="el" href="zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7">zot_new_uid()</a>.</p>
</div>
</div>
@@ -1354,7 +1395,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">collect_recipients()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">contact_remove()</a>, and <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
+<p>Referenced by <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">collect_recipients()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">contact_remove()</a>, and <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
</div>
</div>
@@ -1368,7 +1409,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09">group_get_members()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, and <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>.</p>
+<p>Referenced by <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09">group_get_members()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, and <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>.</p>
</div>
</div>
@@ -1382,7 +1423,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, and <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
+<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, and <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
</div>
</div>
@@ -1396,7 +1437,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, and <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>.</p>
+<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, and <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>.</p>
</div>
</div>
@@ -1410,7 +1451,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">collect_recipients()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09">group_get_members()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, and <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>.</p>
+<p>Referenced by <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">collect_recipients()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09">group_get_members()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, and <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>.</p>
</div>
</div>
@@ -1424,7 +1465,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="Contact_8php.html#ae8803c330352cbf1e828eb7490edf47e">abook_connections()</a>, <a class="el" href="Contact_8php.html#ad5b02c2a962ee55b1b7ca6c159d6e4c5">abook_self()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">collect_recipients()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">contact_remove()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="contact__widgets_8php.html#af24e693532a045954caab515942cfc6f">follow_widget()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09">group_get_members()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside()</a>, and <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>.</p>
+<p>Referenced by <a class="el" href="Contact_8php.html#ae8803c330352cbf1e828eb7490edf47e">abook_connections()</a>, <a class="el" href="Contact_8php.html#ad5b02c2a962ee55b1b7ca6c159d6e4c5">abook_self()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">collect_recipients()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">contact_remove()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd">widget_follow()</a>, <a class="el" href="widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01">widget_settings_menu()</a>, and <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>.</p>
</div>
</div>
@@ -1509,7 +1550,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
+<p>Referenced by <a class="el" href="account_8php.html#a0d183a3cb4c67a0f5e906811df7a1fc9">downgrade_accounts()</a>.</p>
</div>
</div>
@@ -1524,7 +1565,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p>Account Flags </p>
-<p>Referenced by <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, and <a class="el" href="classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b">RedBasicAuth\validateUserPass()</a>.</p>
+<p>Referenced by <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, and <a class="el" href="classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b">RedBasicAuth\validateUserPass()</a>.</p>
</div>
</div>
@@ -1563,7 +1604,6 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>Account roles </p>
<p>Referenced by <a class="el" href="Contact_8php.html#a6e64de7db60b7243dce45fb6347636ff">account_remove()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e">is_site_admin()</a>, and <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>.</p>
@@ -1578,11 +1618,24 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+<p>Account roles </p>
<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="text_8php.html#a1633412120f52bdce5f43e0a127d9293">mimetype_select()</a>, and <a class="el" href="text_8php.html#a324c58f37f6acdf9cd1922aa76077d9f">z_input_filter()</a>.</p>
</div>
</div>
+<a class="anchor" id="a7c2eb822d50e1554bf5c32861f36342b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ACCOUNT_ROLE_SYSTEM 0x0002</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="af3a4271630aabd8be592213f925d6a36"></a>
<div class="memitem">
<div class="memproto">
@@ -1593,7 +1646,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, and <a class="el" href="classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b">RedBasicAuth\validateUserPass()</a>.</p>
+<p>Referenced by <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, and <a class="el" href="classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b">RedBasicAuth\validateUserPass()</a>.</p>
</div>
</div>
@@ -1607,7 +1660,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51">Item\add_child()</a>, <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, and <a class="el" href="conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3">visible_activity()</a>.</p>
+<p>Referenced by <a class="el" href="classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51">Item\add_child()</a>, <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, and <a class="el" href="conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3">visible_activity()</a>.</p>
</div>
</div>
@@ -1647,7 +1700,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, and <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>.</p>
+<p>Referenced by <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>.</p>
</div>
</div>
@@ -1674,7 +1727,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p>activity stream defines </p>
-<p>Referenced by <a class="el" href="classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51">Item\add_child()</a>, <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, and <a class="el" href="conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3">visible_activity()</a>.</p>
+<p>Referenced by <a class="el" href="classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51">Item\add_child()</a>, <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, and <a class="el" href="conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3">visible_activity()</a>.</p>
</div>
</div>
@@ -1790,7 +1843,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, and <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, and <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>.</p>
</div>
</div>
@@ -1804,7 +1857,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, and <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>.</p>
+<p>Referenced by <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, and <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>.</p>
</div>
</div>
@@ -1902,7 +1955,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>.</p>
</div>
</div>
@@ -1972,7 +2025,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="classRedInode.html#a5e8f09bc887725c3c448f8d72fe3edfc">RedInode\delete()</a>, and <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>.</p>
+<p>Referenced by <a class="el" href="include_2attach_8php.html#a5c0875eafb8c0f8a0620ff7a875a2221">attach_change_permissions()</a>, <a class="el" href="include_2attach_8php.html#a70bd666e080c2af5a91f5d14c297b8cd">attach_delete()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="classRedFile.html#aef71c9eaac7052be7dc8602eb12171e7">RedFile\delete()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="include_2attach_8php.html#a6aa00ea010ea030110faefb75eafc1ce">get_cloudpath()</a>, <a class="el" href="classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4">RedDirectory\getDir()</a>, <a class="el" href="reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266">RedCollectionData()</a>, <a class="el" href="reddav_8php.html#a9f531641dfb4e43cd88ac1a9ae7e2088">RedFileData()</a>, and <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>.</p>
</div>
</div>
@@ -1986,7 +2039,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, and <a class="el" href="classRedInode.html#a5e8f09bc887725c3c448f8d72fe3edfc">RedInode\delete()</a>.</p>
+<p>Referenced by <a class="el" href="include_2attach_8php.html#a70bd666e080c2af5a91f5d14c297b8cd">attach_delete()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">RedDirectory\createFile()</a>, <a class="el" href="classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535">RedFile\get()</a>, and <a class="el" href="classRedFile.html#a41a49a583eb276b75626fcf97f4a699c">RedFile\put()</a>.</p>
</div>
</div>
@@ -2076,7 +2129,7 @@ Variables</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">const DB_UPDATE_VERSION 1084</td>
+ <td class="memname">const DB_UPDATE_VERSION 1098</td>
</tr>
</table>
</div><div class="memdoc">
@@ -2108,7 +2161,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="pubsites_8php.html#af614e279aab54065345bda6b03eafdf0">pubsites_content()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, and <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>.</p>
+<p>Referenced by <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="pubsites_8php.html#af614e279aab54065345bda6b03eafdf0">pubsites_content()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, and <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>.</p>
</div>
</div>
@@ -2136,7 +2189,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="pubsites_8php.html#af614e279aab54065345bda6b03eafdf0">pubsites_content()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+<p>Referenced by <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="pubsites_8php.html#af614e279aab54065345bda6b03eafdf0">pubsites_content()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
</div>
</div>
@@ -2164,7 +2217,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="pubsites_8php.html#af614e279aab54065345bda6b03eafdf0">pubsites_content()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+<p>Referenced by <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="pubsites_8php.html#af614e279aab54065345bda6b03eafdf0">pubsites_content()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
</div>
</div>
@@ -2190,7 +2243,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a6943543f3138f6ee182cb701f415d1cc">admin_page_hubloc()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api_post()</a>, <a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="security_8php.html#a20f8b9851f23ee8894b8925584ef6821">check_form_security_std_err_msg()</a>, <a class="el" href="setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76">check_keys()</a>, <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36">connect_init()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair_content()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3">format_like()</a>, <a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest_content()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce">group_add()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="lastpost_8php.html#ab4c6ebd25736af678e64d55ce508ce8c">lastpost_init()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a">load_database()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a9627cd857cafdf04e4fc0ae48c8e8518">mitem_init()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="pubsites_8php.html#af614e279aab54065345bda6b03eafdf0">pubsites_content()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">user_deny()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, and <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>.</p>
+<p>Referenced by <a class="el" href="achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e">achievements_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a6943543f3138f6ee182cb701f415d1cc">admin_page_hubloc()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api_post()</a>, <a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a">bookmarks_content()</a>, <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="mod_2chat_8php.html#aa9ae4782e9baef0b7314ab9527c2707e">chat_init()</a>, <a class="el" href="include_2chat_8php.html#a2c95b545e46bfee64faa05ecf0afea91">chatroom_enter()</a>, <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="security_8php.html#a20f8b9851f23ee8894b8925584ef6821">check_form_security_std_err_msg()</a>, <a class="el" href="setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76">check_keys()</a>, <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, <a class="el" href="setup_8php.html#ab4b71369a25021d59247c917e98d8246">check_store()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36">connect_init()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd">filestorage_post()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3">format_like()</a>, <a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest_content()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce">group_add()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home_content()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a">load_database()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a9627cd857cafdf04e4fc0ae48c8e8518">mitem_init()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="pubsites_8php.html#af614e279aab54065345bda6b03eafdf0">pubsites_content()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">user_deny()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, and <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>.</p>
</div>
</div>
@@ -2257,7 +2310,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d">import_author_zot()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="Contact_8php.html#a2f4f495d53f2a334ab75292af79d3c91">rconnect_url()</a>, <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">xchan_mail_query()</a>, <a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">xchan_query()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="zot_8php.html#a95528377d7303131958c9f0b7158fdce">zot_finger()</a>, and <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d">import_author_zot()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="Contact_8php.html#a2f4f495d53f2a334ab75292af79d3c91">rconnect_url()</a>, <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">xchan_mail_query()</a>, <a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">xchan_query()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="zot_8php.html#a95528377d7303131958c9f0b7158fdce">zot_finger()</a>, and <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>.</p>
</div>
</div>
@@ -2335,6 +2388,8 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Referenced by <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>.</p>
+
</div>
</div>
<a class="anchor" id="ab28dc518fa90b6f617dd8c564eb4f35f"></a>
@@ -2349,6 +2404,18 @@ Variables</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a87b0f279f8413c7e4d805c5d85f20d34"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const ITEM_BUG 0x0400</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="a7fc4b291a7cdaa48b38e27344ea183cf"></a>
<div class="memitem">
<div class="memproto">
@@ -2359,7 +2426,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, and <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>.</p>
+<p>Referenced by <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, and <a class="el" href="items_8php.html#a2baa9e05f1e8aa3dd61c85803ae39bd6">update_remote_id()</a>.</p>
</div>
</div>
@@ -2387,7 +2454,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259">delete_item_lowlevel()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, and <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259">delete_item_lowlevel()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="item_8php.html#a5b1b36cb301a94b38150074f0d424e74">item_check_service_class()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, and <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>.</p>
</div>
</div>
@@ -2485,7 +2552,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="text_8php.html#a8264348059abd1d4d5bb521323d3b19a">unobscure()</a>.</p>
+<p>Referenced by <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="text_8php.html#a8264348059abd1d4d5bb521323d3b19a">unobscure()</a>.</p>
</div>
</div>
@@ -2514,7 +2581,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="text_8php.html#a3999a0b3e22e440f280ee791ce34d384">layout_select()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, and <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>.</p>
+<p>Referenced by <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="text_8php.html#a3999a0b3e22e440f280ee791ce34d384">layout_select()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, and <a class="el" href="items_8php.html#a2baa9e05f1e8aa3dd61c85803ae39bd6">update_remote_id()</a>.</p>
</div>
</div>
@@ -2566,7 +2633,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="items_8php.html#a5f690fc2484abec07840b4f9dd525bd9">encode_item_flags()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3">format_notification()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="items_8php.html#a5f690fc2484abec07840b4f9dd525bd9">encode_item_flags()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3">format_notification()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
</div>
</div>
@@ -2592,7 +2659,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3">format_notification()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
+<p>Referenced by <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3">format_notification()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
</div>
</div>
@@ -2606,7 +2673,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, and <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>.</p>
</div>
</div>
@@ -2632,7 +2699,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, and <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>.</p>
+<p>Referenced by <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, and <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>.</p>
</div>
</div>
@@ -2647,7 +2714,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p><a class="el" href="classItem.html">Item</a> visibility </p>
-<p>Referenced by <a class="el" href="items_8php.html#a0cf98bb619f07dd18f602683a55a5f59">first_post_date()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, and <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a0cf98bb619f07dd18f602683a55a5f59">first_post_date()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, and <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
</div>
</div>
@@ -2661,7 +2728,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="items_8php.html#a0cf98bb619f07dd18f602683a55a5f59">first_post_date()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="lastpost_8php.html#a6108289ef2a767495c7c85a24f364983">lastpost_aside()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+<p>Referenced by <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="items_8php.html#a0cf98bb619f07dd18f602683a55a5f59">first_post_date()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653">widget_tagcloud_wall()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
</div>
</div>
@@ -2675,7 +2742,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="item_8php.html#a5b1b36cb301a94b38150074f0d424e74">item_check_service_class()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, and <a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widget_tagcloud()</a>.</p>
+<p>Referenced by <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home_content()</a>, <a class="el" href="item_8php.html#a5b1b36cb301a94b38150074f0d424e74">item_check_service_class()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="items_8php.html#a2baa9e05f1e8aa3dd61c85803ae39bd6">update_remote_id()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, and <a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widget_tagcloud()</a>.</p>
</div>
</div>
@@ -2747,7 +2814,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="security_8php.html#a444ac867dfa8c37cf0a7a226412bee28">check_form_security_token_ForbiddenOnErr()</a>, <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr()</a>, <a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">detect_language()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32">mini_group_select()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6">parse_xml_string()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13">update_directory_entry()</a>, <a class="el" href="include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335">webfinger_dfrn()</a>, <a class="el" href="include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff">xml2array()</a>, <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url()</a>, <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">z_post_url()</a>, <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>, <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot_process_response()</a>, <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
+<p>Referenced by <a class="el" href="classRedFile.html#a9a67bdb34c9db6ce144b3f371148b183">RedFile\__construct()</a>, <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="security_8php.html#a444ac867dfa8c37cf0a7a226412bee28">check_form_security_token_ForbiddenOnErr()</a>, <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr()</a>, <a class="el" href="classRedDirectory.html#a5e3fc08b2bf9f61cea4d2ccae0495bec">RedDirectory\childExists()</a>, <a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">detect_language()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569">RedDirectory\getChild()</a>, <a class="el" href="classRedDirectory.html#aa42d3065f6f065b17db87146a7cb031a">RedDirectory\getChildren()</a>, <a class="el" href="classRedDirectory.html#af6e4475dbd5abcdede00d20b8d388583">RedDirectory\getName()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="classRedDirectory.html#a11376aed1963b4471eb1592c13c63976">RedDirectory\log()</a>, <a class="el" href="classRedBasicAuth.html#a2cc8b1eac9c5a799bfb53ea7f287f3f0">RedBasicAuth\log()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32">mini_group_select()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6">parse_xml_string()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66">RedChannelList()</a>, <a class="el" href="reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266">RedCollectionData()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13">update_directory_entry()</a>, <a class="el" href="include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335">webfinger_dfrn()</a>, <a class="el" href="include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff">xml2array()</a>, <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url()</a>, <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">z_post_url()</a>, <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>, <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot_process_response()</a>, <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
</div>
</div>
@@ -2761,7 +2828,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51">Item\add_child()</a>, <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7">avatar_img()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="classConversation.html#a2a96b7a6573ae53db861624659e831cb">Conversation\get_template_data()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="photo__driver_8php.html#a243cee492ce443afb6a7d77d54b6c4aa">guess_image_type()</a>, <a class="el" href="zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d">import_author_zot()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="items_8php.html#af94c281016c6c912d06e064113336c5c">limit_body_size()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">process_profile_delivery()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="classItem.html#a2ce70ef63f9f4d86a09c351678806925">Item\remove_child()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="classenotify.html#afbc088860f534c6c05788b48cfc262c6">enotify\send()</a>, <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation\set_mode()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, <a class="el" href="plugin_8php.html#a90538627db68605aeb6db17a8ead6523">unload_plugin()</a>, <a class="el" href="zot_8php.html#a95528377d7303131958c9f0b7158fdce">zot_finger()</a>, <a class="el" href="zot_8php.html#a55056e863a7860bc0cf922e78fcce073">zot_gethub()</a>, <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+<p>Referenced by <a class="el" href="classRedDirectory.html#a1e35e3cd31d2a15250655e4cafdea180">RedDirectory\__construct()</a>, <a class="el" href="classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51">Item\add_child()</a>, <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#a60ba9783ad14545814919970bc3fb725">admin_page_hubloc_post()</a>, <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, <a class="el" href="include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7">avatar_img()</a>, <a class="el" href="include_2bookmarks_8php.html#a88ce7dee6a3dc7465aa9b8eaa45b0087">bookmark_add()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="classRedDirectory.html#a986936910f0216887a25e28916c166c7">RedDirectory\createDirectory()</a>, <a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">RedDirectory\createFile()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535">RedFile\get()</a>, <a class="el" href="language_8php.html#a43e6ddba9df019c9ac3ab4c94c444ae7">get_language_name()</a>, <a class="el" href="classConversation.html#a2a96b7a6573ae53db861624659e831cb">Conversation\get_template_data()</a>, <a class="el" href="classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4">RedDirectory\getDir()</a>, <a class="el" href="classRedFile.html#a0c961c5f49544d2502420361fa526437">RedFile\getName()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="photo__driver_8php.html#a243cee492ce443afb6a7d77d54b6c4aa">guess_image_type()</a>, <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">import_author_rss()</a>, <a class="el" href="zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d">import_author_zot()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887">import_profile_photo()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="items_8php.html#af94c281016c6c912d06e064113336c5c">limit_body_size()</a>, <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">local_dir_update()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">process_profile_delivery()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="classRedFile.html#a41a49a583eb276b75626fcf97f4a699c">RedFile\put()</a>, <a class="el" href="reddav_8php.html#a9f531641dfb4e43cd88ac1a9ae7e2088">RedFileData()</a>, <a class="el" href="classItem.html#a2ce70ef63f9f4d86a09c351678806925">Item\remove_child()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="classenotify.html#afbc088860f534c6c05788b48cfc262c6">enotify\send()</a>, <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation\set_mode()</a>, <a class="el" href="classRedFile.html#a38a82bfc1b30028ea6ac75923e90fa25">RedFile\setName()</a>, <a class="el" href="plugin_8php.html#a90538627db68605aeb6db17a8ead6523">unload_plugin()</a>, <a class="el" href="zot_8php.html#a95528377d7303131958c9f0b7158fdce">zot_finger()</a>, <a class="el" href="zot_8php.html#a55056e863a7860bc0cf922e78fcce073">zot_gethub()</a>, <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
</div>
</div>
@@ -2844,7 +2911,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">encode_mail()</a>, <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">get_mail_elements()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, and <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">encode_mail()</a>, <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">get_mail_elements()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, and <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>.</p>
</div>
</div>
@@ -2905,6 +2972,20 @@ Variables</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a458e19af801bc4b0d1f1ce1a6d9e857e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const MENU_BOOKMARK 0x0002</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="include_2bookmarks_8php.html#a88ce7dee6a3dc7465aa9b8eaa45b0087">bookmark_add()</a>, <a class="el" href="mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a">bookmarks_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, and <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="ad11f30a6590d3d77f0c5e1e3909af8f5"></a>
<div class="memitem">
<div class="memproto">
@@ -2915,7 +2996,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2menu_8php.html#a890cc6237971e15f15702e6b2e88502e">menu_render()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, and <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>.</p>
+<p>Referenced by <a class="el" href="include_2menu_8php.html#a4d7123b0577fa994770199f9b831da11">menu_render()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, and <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>.</p>
</div>
</div>
@@ -2929,7 +3010,22 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2menu_8php.html#a890cc6237971e15f15702e6b2e88502e">menu_render()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, and <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>.</p>
+<p>Referenced by <a class="el" href="include_2bookmarks_8php.html#a88ce7dee6a3dc7465aa9b8eaa45b0087">bookmark_add()</a>, <a class="el" href="include_2menu_8php.html#a4d7123b0577fa994770199f9b831da11">menu_render()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, and <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a718a801b0be6cbaef5e519516da12721"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const MENU_SYSTEM 0x0001</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Menu types </p>
+
+<p>Referenced by <a class="el" href="include_2bookmarks_8php.html#a88ce7dee6a3dc7465aa9b8eaa45b0087">bookmark_add()</a>, <a class="el" href="mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a">bookmarks_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, and <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>.</p>
</div>
</div>
@@ -3143,7 +3239,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p>Network and protocol family types </p>
-<p>Referenced by <a class="el" href="conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7">best_link_url()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, and <a class="el" href="Contact_8php.html#a38daa1c210b78385307123450ca9a1fc">terminate_friendship()</a>.</p>
+<p>Referenced by <a class="el" href="conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7">best_link_url()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>, and <a class="el" href="Contact_8php.html#a38daa1c210b78385307123450ca9a1fc">terminate_friendship()</a>.</p>
</div>
</div>
@@ -3510,8 +3606,6 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd">create_dir_account()</a>.</p>
-
</div>
</div>
<a class="anchor" id="a5e322a2a2d0f51924c0b2e874988e640"></a>
@@ -3524,7 +3618,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd">create_dir_account()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+<p>Referenced by <a class="el" href="reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66">RedChannelList()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
</div>
</div>
@@ -3567,7 +3661,35 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="Contact_8php.html#a483cda56f9e37c3a4a8773dcdfeb0258">channelx_by_hash()</a>, <a class="el" href="Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc">channelx_by_n()</a>, <a class="el" href="Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e">channelx_by_nick()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, and <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>.</p>
+<p>Referenced by <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="identity_8php.html#a77d2237f1846964634b1c99089c27c7d">channel_total()</a>, <a class="el" href="Contact_8php.html#a483cda56f9e37c3a4a8773dcdfeb0258">channelx_by_hash()</a>, <a class="el" href="Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc">channelx_by_n()</a>, <a class="el" href="Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e">channelx_by_nick()</a>, <a class="el" href="classRedDirectory.html#a986936910f0216887a25e28916c166c7">RedDirectory\createDirectory()</a>, <a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">RedDirectory\createFile()</a>, <a class="el" href="classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4">RedDirectory\getDir()</a>, <a class="el" href="classRedDirectory.html#a2f7a574f2115f099d6dd103d5b252375">RedDirectory\getQuotaInfo()</a>, <a class="el" href="identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633">identity_check_service_class()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="classRedFile.html#a41a49a583eb276b75626fcf97f4a699c">RedFile\put()</a>, <a class="el" href="reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66">RedChannelList()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, and <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6ee7a72d558d1851bbb9e3cdde377932"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PAGE_SYSTEM 0x1000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05">create_sys_channel()</a>, <a class="el" href="identity_8php.html#aaff86ee3b5984821e7a256c2da5f1a51">get_sys_channel()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8b2af16eaee9e7768a88d0e437877f3b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_A_BOOKMARK 0x20000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>.</p>
</div>
</div>
@@ -3599,6 +3721,20 @@ Variables</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a852d4036a3bed66af1534d014c4ecde2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const PERMS_AUTHED 0x0100</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, and <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="ab2d0e8a9b81ee548ef2ce8e4560da2f6"></a>
<div class="memitem">
<div class="memproto">
@@ -3722,7 +3858,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p>Permissions </p>
-<p>Referenced by <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, and <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>.</p>
+<p>Referenced by <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, and <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>.</p>
</div>
</div>
@@ -3750,7 +3886,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, and <a class="el" href="permissions_8php.html#aa8b7b102c653649d7a71b5a1c044d90d">site_default_perms()</a>.</p>
+<p>Referenced by <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, and <a class="el" href="permissions_8php.html#aa8b7b102c653649d7a71b5a1c044d90d">site_default_perms()</a>.</p>
</div>
</div>
@@ -3792,7 +3928,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, and <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>.</p>
+<p>Referenced by <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, and <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>.</p>
</div>
</div>
@@ -3919,6 +4055,8 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Referenced by <a class="el" href="photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887">import_profile_photo()</a>.</p>
+
</div>
</div>
<a class="anchor" id="ac43182e0d8bae7576a30b603774974f8"></a>
@@ -3931,7 +4069,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>.</p>
+<p>Referenced by <a class="el" href="photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887">import_profile_photo()</a>.</p>
</div>
</div>
@@ -4045,7 +4183,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="dirsearch_8php.html#a985d410a170549429857af6ff2673149">list_public_sites()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+<p>Referenced by <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="dirsearch_8php.html#a985d410a170549429857af6ff2673149">list_public_sites()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
</div>
</div>
@@ -4060,7 +4198,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p>registration policies </p>
-<p>Referenced by <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login_content()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+<p>Referenced by <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home_content()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login_content()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
</div>
</div>
@@ -4126,7 +4264,21 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p>Default permissions for file-based storage (webDAV, etc.) These files will be owned by the webserver who will need write access to the "storage" folder. Ideally you should make this 700, however some hosted platforms may not let you change ownership of this directory so we're defaulting to both owner-write and group-write privilege. This should work for most cases without modification. Over-ride this in your .htconfig.php if you need something either more or less restrictive. </p>
-<p>Referenced by <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>.</p>
+<p>Referenced by <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="setup_8php.html#ab4b71369a25021d59247c917e98d8246">check_store()</a>, and <a class="el" href="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a115faf8797718c3165498abbd6895843"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const TERM_BOOKMARK 8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, <a class="el" href="items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a">encode_item_terms()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>, and <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>.</p>
</div>
</div>
@@ -4154,7 +4306,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, <a class="el" href="taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1">file_tag_file_query()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91">format_filer()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, and <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, <a class="el" href="taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1">file_tag_file_query()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91">format_filer()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="widgets_8php.html#a5ab3b64496e02cab56429978ad55f1c0">widget_filer()</a>.</p>
</div>
</div>
@@ -4168,7 +4320,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#a87ac9e359591721a824ecd23bbb56296">check_item_source()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, <a class="el" href="items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a">encode_item_terms()</a>, <a class="el" href="taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1">format_term_for_display()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="item_8php.html#abd0e603a6696051af16476eb968d52e7">handle_tag()</a>, <a class="el" href="items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7">item_getfeedtags()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a87ac9e359591721a824ecd23bbb56296">check_item_source()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, <a class="el" href="items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a">encode_item_terms()</a>, <a class="el" href="taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1">format_term_for_display()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>, <a class="el" href="items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7">item_getfeedtags()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>.</p>
</div>
</div>
@@ -4182,7 +4334,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, <a class="el" href="items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a">encode_item_terms()</a>, <a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">fetch_post_tags()</a>, <a class="el" href="taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1">format_term_for_display()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="text_8php.html#a76d1b3435c067978d7b484c45f56472b">get_mentions()</a>, <a class="el" href="item_8php.html#abd0e603a6696051af16476eb968d52e7">handle_tag()</a>, <a class="el" href="items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7">item_getfeedtags()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>.</p>
+<p>Referenced by <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, <a class="el" href="items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a">encode_item_terms()</a>, <a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">fetch_post_tags()</a>, <a class="el" href="taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1">format_term_for_display()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="text_8php.html#a76d1b3435c067978d7b484c45f56472b">get_mentions()</a>, <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>, <a class="el" href="items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7">item_getfeedtags()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>.</p>
</div>
</div>
@@ -4232,7 +4384,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259">delete_item_lowlevel()</a>, <a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">fetch_post_tags()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="taxonomy_8php.html#aaf90ba8b839d6459065f39a4f1109b8a">tagadelic()</a>, and <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259">delete_item_lowlevel()</a>, <a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">fetch_post_tags()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="taxonomy_8php.html#aaf90ba8b839d6459065f39a4f1109b8a">tagadelic()</a>, and <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>.</p>
</div>
</div>
@@ -4258,7 +4410,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
+<p>Referenced by <a class="el" href="taxonomy_8php.html#a7747fa859ac56fbffd4f9782d85505de">get_things()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
</div>
</div>
@@ -4286,7 +4438,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, <a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search_init()</a>, and <a class="el" href="search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6">search_saved_searches()</a>.</p>
+<p>Referenced by <a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widget_savedsearch()</a>.</p>
</div>
</div>
@@ -4300,7 +4452,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
</div>
</div>
@@ -4315,7 +4467,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p>Tag/term types </p>
-<p>Referenced by <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, <a class="el" href="items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a">encode_item_terms()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, and <a class="el" href="item_8php.html#abd0e603a6696051af16476eb968d52e7">handle_tag()</a>.</p>
+<p>Referenced by <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="items_8php.html#a56b2a4abcadfac71175cd50555528cc3">decode_tags()</a>, <a class="el" href="items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a">encode_item_terms()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, and <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>.</p>
</div>
</div>
@@ -4400,7 +4552,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, and <a class="el" href="Contact_8php.html#acc12cda999c88c4d6185cca967c15125">remove_all_xchan_resources()</a>.</p>
+<p>Referenced by <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09">group_get_members()</a>, <a class="el" href="Contact_8php.html#acc12cda999c88c4d6185cca967c15125">remove_all_xchan_resources()</a>, <a class="el" href="socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329">suggestion_query()</a>, and <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>.</p>
</div>
</div>
@@ -4414,7 +4566,21 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329">suggestion_query()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+<p>Referenced by <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">local_dir_update()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329">suggestion_query()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8fdcc4ffb365a3267bd02ce8a8d466d6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XCHAN_FLAGS_NORMAL 0x0000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>.</p>
</div>
</div>
@@ -4428,7 +4594,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>.</p>
+<p>Referenced by <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, and <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>.</p>
</div>
</div>
@@ -4446,6 +4612,20 @@ Variables</h2></td></tr>
</div>
</div>
+<a class="anchor" id="afef254290febac854c85fc698d9483a6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const XCHAN_FLAGS_SYSTEM 0x0010</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05">create_sys_channel()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a3cd42a70c6b3999590e4fd7a1a9096af"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/boot_8php.js b/doc/html/boot_8php.js
index 04dc56157..7bcf18827 100644
--- a/doc/html/boot_8php.js
+++ b/doc/html/boot_8php.js
@@ -25,6 +25,7 @@ var boot_8php =
[ "info", "boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498", null ],
[ "is_ajax", "boot_8php.html#ac17fc8a416ea79e9d5cb4dc9a8ff8c5c", null ],
[ "is_site_admin", "boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e", null ],
+ [ "is_windows", "boot_8php.html#ac5e74f899f6e98d8e91b14ba1c08bc08", null ],
[ "killme", "boot_8php.html#aea7fc57a4d8e9dcb42f2601b0b9b761c", null ],
[ "load_contact_links", "boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6", null ],
[ "local_user", "boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44", null ],
@@ -54,6 +55,7 @@ var boot_8php =
[ "ACCOUNT_REMOVED", "boot_8php.html#ab5ddbe69d3d03acd06e1fb281488cb78", null ],
[ "ACCOUNT_ROLE_ADMIN", "boot_8php.html#ac8400313df2c831653f9036f71ebd86d", null ],
[ "ACCOUNT_ROLE_ALLOWCODE", "boot_8php.html#a84f48897059bbd4a8738d7ee4cec6688", null ],
+ [ "ACCOUNT_ROLE_SYSTEM", "boot_8php.html#a7c2eb822d50e1554bf5c32861f36342b", null ],
[ "ACCOUNT_UNVERIFIED", "boot_8php.html#af3a4271630aabd8be592213f925d6a36", null ],
[ "ACTIVITY_DISLIKE", "boot_8php.html#a0e57f846e6d47a308feced0f7274f178", null ],
[ "ACTIVITY_FAVORITE", "boot_8php.html#a3e2ea123d29a72012db1241f96280b0e", null ],
@@ -111,6 +113,7 @@ var boot_8php =
[ "HUBLOC_SEND_ERROR", "boot_8php.html#a3b56bfc6a0dd159070e316ddac3b7456", null ],
[ "HUBLOC_WORKS", "boot_8php.html#a7a8ba64d089cc0412c59a2eefc6d655c", null ],
[ "ITEM_BLOCKED", "boot_8php.html#ab28dc518fa90b6f617dd8c564eb4f35f", null ],
+ [ "ITEM_BUG", "boot_8php.html#a87b0f279f8413c7e4d805c5d85f20d34", null ],
[ "ITEM_BUILDBLOCK", "boot_8php.html#a7fc4b291a7cdaa48b38e27344ea183cf", null ],
[ "ITEM_DELAYED_PUBLISH", "boot_8php.html#ac890557fedc5b5a3b1d996249b1e1a20", null ],
[ "ITEM_DELETED", "boot_8php.html#a3515ea6bf77495de89b93e9ccd881c49", null ],
@@ -151,8 +154,10 @@ var boot_8php =
[ "MAIL_SEEN", "boot_8php.html#a1fbb93cf030f07391f22cc2948744869", null ],
[ "MAX_IMAGE_LENGTH", "boot_8php.html#a525ca93ff35d3535d1a2b8ba57876afa", null ],
[ "MAX_LIKERS", "boot_8php.html#a35625dacd2158b9f1f1a8e77f9f081fd", null ],
+ [ "MENU_BOOKMARK", "boot_8php.html#a458e19af801bc4b0d1f1ce1a6d9e857e", null ],
[ "MENU_ITEM_NEWWIN", "boot_8php.html#ad11f30a6590d3d77f0c5e1e3909af8f5", null ],
[ "MENU_ITEM_ZID", "boot_8php.html#aed0dfb35f7dd00dc9e4f868ea7f7ff53", null ],
+ [ "MENU_SYSTEM", "boot_8php.html#a718a801b0be6cbaef5e519516da12721", null ],
[ "NAMESPACE_ACTIVITY", "boot_8php.html#a5df5359090d1f8e898c36d7cf8878ad2", null ],
[ "NAMESPACE_ACTIVITY_SCHEMA", "boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133", null ],
[ "NAMESPACE_ATOM1", "boot_8php.html#a444ce608ce34efb82ee11852f36e825f", null ],
@@ -200,8 +205,11 @@ var boot_8php =
[ "PAGE_NORMAL", "boot_8php.html#a09532c3f750ae8c4527e63b2b790cbf3", null ],
[ "PAGE_PREMIUM", "boot_8php.html#ab3920c2f3cd64802c0b7ff625c3b2ea8", null ],
[ "PAGE_REMOVED", "boot_8php.html#a4edce16cb7f21cdafa1e85bf63d713e6", null ],
+ [ "PAGE_SYSTEM", "boot_8php.html#a6ee7a72d558d1851bbb9e3cdde377932", null ],
+ [ "PERMS_A_BOOKMARK", "boot_8php.html#a8b2af16eaee9e7768a88d0e437877f3b", null ],
[ "PERMS_A_DELEGATE", "boot_8php.html#a423505ab8dbd8e39d04ae3fe1374102b", null ],
[ "PERMS_A_REPUBLISH", "boot_8php.html#aae6c941bde5fd6fce07e51dba7326ead", null ],
+ [ "PERMS_AUTHED", "boot_8php.html#a852d4036a3bed66af1534d014c4ecde2", null ],
[ "PERMS_CONTACTS", "boot_8php.html#ab2d0e8a9b81ee548ef2ce8e4560da2f6", null ],
[ "PERMS_NETWORK", "boot_8php.html#a6df1102664f64b274810db85197c2755", null ],
[ "PERMS_PUBLIC", "boot_8php.html#aff210e8403dd72368522b17fb6e5d4e7", null ],
@@ -240,6 +248,7 @@ var boot_8php =
[ "SSL_POLICY_NONE", "boot_8php.html#af86c651547aa8f9e549ee40a09455549", null ],
[ "SSL_POLICY_SELFSIGN", "boot_8php.html#adca48aee78465ae3064ca4432c0d87b5", null ],
[ "STORAGE_DEFAULT_PERMISSIONS", "boot_8php.html#aecaa1b6945b317ba8f1daf4af2aed8e6", null ],
+ [ "TERM_BOOKMARK", "boot_8php.html#a115faf8797718c3165498abbd6895843", null ],
[ "TERM_CATEGORY", "boot_8php.html#af33d1b2e98a1e21af672005525d46dfe", null ],
[ "TERM_FILE", "boot_8php.html#afb97615e985a013799839b68b99018d7", null ],
[ "TERM_HASHTAG", "boot_8php.html#a2750985ec445617d7e82ae3098c91e3f", null ],
@@ -261,8 +270,10 @@ var boot_8php =
[ "XCHAN_FLAGS_CENSORED", "boot_8php.html#accd6f36cc9f40225cbd720e4d12a7c6e", null ],
[ "XCHAN_FLAGS_DELETED", "boot_8php.html#a9ea1290e00c6d40684892047f2c778a9", null ],
[ "XCHAN_FLAGS_HIDDEN", "boot_8php.html#a1af3ed96de14aa0d7891b39cc75b60f2", null ],
+ [ "XCHAN_FLAGS_NORMAL", "boot_8php.html#a8fdcc4ffb365a3267bd02ce8a8d466d6", null ],
[ "XCHAN_FLAGS_ORPHAN", "boot_8php.html#a1c923b99bf77e4203ae94e5684b6ad0f", null ],
[ "XCHAN_FLAGS_SELFCENSORED", "boot_8php.html#a5a681a672e007cdc22b43345d71f07c6", null ],
+ [ "XCHAN_FLAGS_SYSTEM", "boot_8php.html#afef254290febac854c85fc698d9483a6", null ],
[ "ZCURL_TIMEOUT", "boot_8php.html#a3cd42a70c6b3999590e4fd7a1a9096af", null ],
[ "ZOT_REVISION", "boot_8php.html#a36b31575f992a10b5927b76efba9362e", null ]
]; \ No newline at end of file
diff --git a/doc/html/channel_8php.html b/doc/html/channel_8php.html
index bea337346..61550f610 100644
--- a/doc/html/channel_8php.html
+++ b/doc/html/channel_8php.html
@@ -114,28 +114,10 @@ $(document).ready(function(){initNavTree('channel_8php.html','');});
Functions</h2></td></tr>
<tr class="memitem:ac7c8c7845741baadf87fae6bc279f3dc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init</a> (&amp;$a)</td></tr>
<tr class="separator:ac7c8c7845741baadf87fae6bc279f3dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aea8e189f2fbabfda779349dd94082e8e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside</a> (&amp;$a)</td></tr>
-<tr class="separator:aea8e189f2fbabfda779349dd94082e8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c6a6179e0e626398ebecc6151905ef1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content</a> (&amp;$a, $update=0, $load=false)</td></tr>
<tr class="separator:a9c6a6179e0e626398ebecc6151905ef1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="aea8e189f2fbabfda779349dd94082e8e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">channel_aside </td>
- <td>(</td>
- <td class="paramtype">&amp;&#160;</td>
- <td class="paramname"><em>$a</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
<a class="anchor" id="a9c6a6179e0e626398ebecc6151905ef1"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/channel_8php.js b/doc/html/channel_8php.js
index 4aa5d2d20..b76a435de 100644
--- a/doc/html/channel_8php.js
+++ b/doc/html/channel_8php.js
@@ -1,6 +1,5 @@
var channel_8php =
[
- [ "channel_aside", "channel_8php.html#aea8e189f2fbabfda779349dd94082e8e", null ],
[ "channel_content", "channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1", null ],
[ "channel_init", "channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc", null ]
]; \ No newline at end of file
diff --git a/doc/html/chatsvc_8php.html b/doc/html/chatsvc_8php.html
new file mode 100644
index 000000000..108ad1820
--- /dev/null
+++ b/doc/html/chatsvc_8php.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/chatsvc.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('chatsvc_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">chatsvc.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a28d248b056fa47452e28ed01130e9116"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="chatsvc_8php.html#a28d248b056fa47452e28ed01130e9116">chatsvc_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a28d248b056fa47452e28ed01130e9116"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7c9a9b9c24a2b02eed8efd6b09632d03"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="chatsvc_8php.html#a7c9a9b9c24a2b02eed8efd6b09632d03">chatsvc_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a7c9a9b9c24a2b02eed8efd6b09632d03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7032784215e1f6747cf385a6598770f9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9">chatsvc_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a7032784215e1f6747cf385a6598770f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a7032784215e1f6747cf385a6598770f9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">chatsvc_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a28d248b056fa47452e28ed01130e9116"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">chatsvc_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7c9a9b9c24a2b02eed8efd6b09632d03"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">chatsvc_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/chatsvc_8php.js b/doc/html/chatsvc_8php.js
new file mode 100644
index 000000000..65b3df3d1
--- /dev/null
+++ b/doc/html/chatsvc_8php.js
@@ -0,0 +1,6 @@
+var chatsvc_8php =
+[
+ [ "chatsvc_content", "chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9", null ],
+ [ "chatsvc_init", "chatsvc_8php.html#a28d248b056fa47452e28ed01130e9116", null ],
+ [ "chatsvc_post", "chatsvc_8php.html#a7c9a9b9c24a2b02eed8efd6b09632d03", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classApp-members.html b/doc/html/classApp-members.html
index d13d7f14c..6e2218d84 100644
--- a/doc/html/classApp-members.html
+++ b/doc/html/classApp-members.html
@@ -138,20 +138,22 @@ $(document).ready(function(){initNavTree('classApp.html','');});
<tr><td class="entry"><a class="el" href="classApp.html#a3694aa1907aa103a2adbc71f926f0fa0">$hooks</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classApp.html#a037049cba88dfc6ff94f4b5b779e3fd3">$hostname</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr><td class="entry"><a class="el" href="classApp.html#a7954862f44f606b0ff83d4c74d15e792">$identities</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classApp.html#a4c7cfc62d39508086cf300dc2e39c4df">$interactive</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d">$js_sources</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classApp.html#a1a297e70b3667b83f4460aa7ed9f5d6f">$language</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classApp.html#a58ac598544892ff7c32890291b72635e">$layout</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classApp.html#a59dd4b665c70e7dbd80682c014ff7145">$ldelim</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr><td class="entry"><a class="el" href="classApp.html#a9bf62f8e39585c0aa48fcffc3bf3484d">$module</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classApp.html#a6e4f0fbfa3cf6c11baebe22a03db6165">$module_loaded</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classApp.html#a33a8e90b60ec4438f6fbf299d0f6839c">$nav_sel</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f">$observer</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classApp.html#a4b67935096f66d1f14b657399a8461ac">$page</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classApp.html#a6bcb19cdc4907077da72864686d5a780">$pager</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classApp.html#acad5896b7a79ae31433ad8f89606c728">$path</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classApp.html#ab47de68fa39806d1fb0976407e188b77">$perms</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr><td class="entry"><a class="el" href="classApp.html#ae9f96338f32187d308b67b980eea0008">$plugins</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a576ecb1c5b4a283221e6f2f0ec248251">$install</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a4c7cfc62d39508086cf300dc2e39c4df">$interactive</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d">$js_sources</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a1a297e70b3667b83f4460aa7ed9f5d6f">$language</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a58ac598544892ff7c32890291b72635e">$layout</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a59dd4b665c70e7dbd80682c014ff7145">$ldelim</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a9bf62f8e39585c0aa48fcffc3bf3484d">$module</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a6e4f0fbfa3cf6c11baebe22a03db6165">$module_loaded</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a33a8e90b60ec4438f6fbf299d0f6839c">$nav_sel</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f">$observer</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#a4b67935096f66d1f14b657399a8461ac">$page</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a6bcb19cdc4907077da72864686d5a780">$pager</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#acad5896b7a79ae31433ad8f89606c728">$path</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#ab47de68fa39806d1fb0976407e188b77">$perms</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classApp.html#ae9f96338f32187d308b67b980eea0008">$plugins</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classApp.html#a1936f2afce0dc0d1bbed15ae1f2ee81a">$poi</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classApp.html#a57d041fcc003d08c127dfa99a02bc192">$profile</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classApp.html#a08c24d6a6fc52fcc784b0f765f13b820">$profile_uid</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classApp.html#a2e82da4aecfc2017a8d1d332ca501f9f">$query_string</a></td><td class="entry"><a class="el" href="classApp.html">App</a></td><td class="entry"></td></tr>
diff --git a/doc/html/classApp.html b/doc/html/classApp.html
index 38ed4ada3..bd8e6bbf0 100644
--- a/doc/html/classApp.html
+++ b/doc/html/classApp.html
@@ -184,6 +184,8 @@ Public Member Functions</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
+<tr class="memitem:a576ecb1c5b4a283221e6f2f0ec248251"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a576ecb1c5b4a283221e6f2f0ec248251">$install</a> = false</td></tr>
+<tr class="separator:a576ecb1c5b4a283221e6f2f0ec248251"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14bd4b1c29f3aff371fe5d4cb11aeea3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a14bd4b1c29f3aff371fe5d4cb11aeea3">$account</a> = null</td></tr>
<tr class="separator:a14bd4b1c29f3aff371fe5d4cb11aeea3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a050b0696118da47e8b30859ad1a2c149"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a050b0696118da47e8b30859ad1a2c149">$channel</a> = null</td></tr>
@@ -192,6 +194,8 @@ Public Attributes</h2></td></tr>
<tr class="separator:a4ffe529fb14389f7fedf5fdc5f722e7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08c24d6a6fc52fcc784b0f765f13b820"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a08c24d6a6fc52fcc784b0f765f13b820">$profile_uid</a> = 0</td></tr>
<tr class="separator:a08c24d6a6fc52fcc784b0f765f13b820"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1936f2afce0dc0d1bbed15ae1f2ee81a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a1936f2afce0dc0d1bbed15ae1f2ee81a">$poi</a> = null</td></tr>
+<tr class="separator:a1936f2afce0dc0d1bbed15ae1f2ee81a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58ac598544892ff7c32890291b72635e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#a58ac598544892ff7c32890291b72635e">$layout</a> = array()</td></tr>
<tr class="separator:a58ac598544892ff7c32890291b72635e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6e6b1c7d6df408580ff79977fcfa656"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classApp.html#ac6e6b1c7d6df408580ff79977fcfa656">$groups</a></td></tr>
@@ -1254,6 +1258,18 @@ Private Attributes</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a576ecb1c5b4a283221e6f2f0ec248251"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$install = false</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="a4c7cfc62d39508086cf300dc2e39c4df"></a>
<div class="memitem">
<div class="memproto">
@@ -1456,6 +1472,18 @@ Private Attributes</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a1936f2afce0dc0d1bbed15ae1f2ee81a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">App::$poi = null</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="a57d041fcc003d08c127dfa99a02bc192"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/classApp.js b/doc/html/classApp.js
index 51d9daba4..c7c8e3b05 100644
--- a/doc/html/classApp.js
+++ b/doc/html/classApp.js
@@ -58,6 +58,7 @@ var classApp =
[ "$hooks", "classApp.html#a3694aa1907aa103a2adbc71f926f0fa0", null ],
[ "$hostname", "classApp.html#a037049cba88dfc6ff94f4b5b779e3fd3", null ],
[ "$identities", "classApp.html#a7954862f44f606b0ff83d4c74d15e792", null ],
+ [ "$install", "classApp.html#a576ecb1c5b4a283221e6f2f0ec248251", null ],
[ "$interactive", "classApp.html#a4c7cfc62d39508086cf300dc2e39c4df", null ],
[ "$js_sources", "classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d", null ],
[ "$language", "classApp.html#a1a297e70b3667b83f4460aa7ed9f5d6f", null ],
@@ -72,6 +73,7 @@ var classApp =
[ "$path", "classApp.html#acad5896b7a79ae31433ad8f89606c728", null ],
[ "$perms", "classApp.html#ab47de68fa39806d1fb0976407e188b77", null ],
[ "$plugins", "classApp.html#ae9f96338f32187d308b67b980eea0008", null ],
+ [ "$poi", "classApp.html#a1936f2afce0dc0d1bbed15ae1f2ee81a", null ],
[ "$profile", "classApp.html#a57d041fcc003d08c127dfa99a02bc192", null ],
[ "$profile_uid", "classApp.html#a08c24d6a6fc52fcc784b0f765f13b820", null ],
[ "$query_string", "classApp.html#a2e82da4aecfc2017a8d1d332ca501f9f", null ],
diff --git a/doc/html/classItem-members.html b/doc/html/classItem-members.html
index a4c9c11b1..3da704b93 100644
--- a/doc/html/classItem-members.html
+++ b/doc/html/classItem-members.html
@@ -159,6 +159,7 @@ $(document).ready(function(){initNavTree('classItem.html','');});
<tr class="even"><td class="entry"><a class="el" href="classItem.html#aa1bd19fc8b5577078530265a7bf64123">set_commentable</a>($val)</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classItem.html#aa8b1bbc4236890694635295e46d7fd72">set_conversation</a>($conv)</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classItem.html#a9890ff72662d5bba301d1f2dd8aec9d7">set_parent</a>($item)</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classItem.html#af1b73df9b7c4b927e26b7e243b491f42">set_template</a>($t)</td><td class="entry"><a class="el" href="classItem.html">Item</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/classItem.html b/doc/html/classItem.html
index 5239498e5..2fccecd96 100644
--- a/doc/html/classItem.html
+++ b/doc/html/classItem.html
@@ -180,6 +180,8 @@ Protected Member Functions</h2></td></tr>
Private Member Functions</h2></td></tr>
<tr class="memitem:aba23a0a9d89e316d2b343cc46d695d91"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#aba23a0a9d89e316d2b343cc46d695d91">get_template</a> ()</td></tr>
<tr class="separator:aba23a0a9d89e316d2b343cc46d695d91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1b73df9b7c4b927e26b7e243b491f42"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#af1b73df9b7c4b927e26b7e243b491f42">set_template</a> ($<a class="el" href="language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04">t</a>)</td></tr>
+<tr class="separator:af1b73df9b7c4b927e26b7e243b491f42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa49e40f961dff66da32c5ae110e32993"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#aa49e40f961dff66da32c5ae110e32993">is_toplevel</a> ()</td></tr>
<tr class="separator:aa49e40f961dff66da32c5ae110e32993"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca1e66988ed00cd627b2a359b72cd0ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classItem.html#aca1e66988ed00cd627b2a359b72cd0ae">count_descendants</a> ()</td></tr>
@@ -887,6 +889,30 @@ Additional Inherited Members</h2></td></tr>
</div>
</div>
+<a class="anchor" id="af1b73df9b7c4b927e26b7e243b491f42"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">Item::set_template </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$t</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="acc32426c0f465391be8a99ad810c7b8e"></a>
<div class="memitem">
diff --git a/doc/html/classItem.js b/doc/html/classItem.js
index 3e0b0082f..afdf7677d 100644
--- a/doc/html/classItem.js
+++ b/doc/html/classItem.js
@@ -29,6 +29,7 @@ var classItem =
[ "set_commentable", "classItem.html#aa1bd19fc8b5577078530265a7bf64123", null ],
[ "set_conversation", "classItem.html#aa8b1bbc4236890694635295e46d7fd72", null ],
[ "set_parent", "classItem.html#a9890ff72662d5bba301d1f2dd8aec9d7", null ],
+ [ "set_template", "classItem.html#af1b73df9b7c4b927e26b7e243b491f42", null ],
[ "$channel", "classItem.html#acc32426c0f465391be8a99ad810c7b8e", null ],
[ "$children", "classItem.html#a80dcd0fb7673776c0967839d429c2a0f", null ],
[ "$comment_box_template", "classItem.html#a90743c8348b13213275c223bb9333aa0", null ],
diff --git a/doc/html/classRedBasicAuth-members.html b/doc/html/classRedBasicAuth-members.html
index 10817e697..ab4dd9f76 100644
--- a/doc/html/classRedBasicAuth-members.html
+++ b/doc/html/classRedBasicAuth-members.html
@@ -112,7 +112,18 @@ $(document).ready(function(){initNavTree('classRedBasicAuth.html','');});
<p>This is the complete list of members for <a class="el" href="classRedBasicAuth.html">RedBasicAuth</a>, including all inherited members.</p>
<table class="directory">
- <tr class="even"><td class="entry"><a class="el" href="classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b">validateUserPass</a>($username, $password)</td><td class="entry"><a class="el" href="classRedBasicAuth.html">RedBasicAuth</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedBasicAuth.html#af14337f1baad407f8a85d48205c0f30e">$browser</a></td><td class="entry"><a class="el" href="classRedBasicAuth.html">RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedBasicAuth.html#ad5a3ea4dc4783b242d9dc6e76478b6ef">$channel_hash</a></td><td class="entry"><a class="el" href="classRedBasicAuth.html">RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedBasicAuth.html#a2dab393650d1573e3515969a153e8354">$channel_id</a></td><td class="entry"><a class="el" href="classRedBasicAuth.html">RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedBasicAuth.html#a438ab125b6ef46581947e35d49cdebac">$channel_name</a></td><td class="entry"><a class="el" href="classRedBasicAuth.html">RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedBasicAuth.html#aa75dc43b59adc98e38a98517d3fd35d1">$observer</a></td><td class="entry"><a class="el" href="classRedBasicAuth.html">RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedBasicAuth.html#a09c1488a0b290f5a54dc15180c5690d7">$owner_id</a></td><td class="entry"><a class="el" href="classRedBasicAuth.html">RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedBasicAuth.html#a8d09b8d784cc810a0b3be580d05106a7">$owner_nick</a></td><td class="entry"><a class="el" href="classRedBasicAuth.html">RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedBasicAuth.html#a2d0246ed446fd5e55c17938b4ce6ac47">$timezone</a></td><td class="entry"><a class="el" href="classRedBasicAuth.html">RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedBasicAuth.html#a2cc8b1eac9c5a799bfb53ea7f287f3f0">log</a>()</td><td class="entry"><a class="el" href="classRedBasicAuth.html">RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedBasicAuth.html#a358ddad4abb5aa8c1382cf49a907adbc">setBrowserPlugin</a>($browser)</td><td class="entry"><a class="el" href="classRedBasicAuth.html">RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedBasicAuth.html#a072e8244a9a7f191b32d3db5ac94f857">setCurrentUser</a>($name)</td><td class="entry"><a class="el" href="classRedBasicAuth.html">RedBasicAuth</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b">validateUserPass</a>($username, $password)</td><td class="entry"><a class="el" href="classRedBasicAuth.html">RedBasicAuth</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/classRedBasicAuth.html b/doc/html/classRedBasicAuth.html
index 8bf5996ca..a5da94f90 100644
--- a/doc/html/classRedBasicAuth.html
+++ b/doc/html/classRedBasicAuth.html
@@ -106,6 +106,8 @@ $(document).ready(function(){initNavTree('classRedBasicAuth.html','');});
<div class="header">
<div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classRedBasicAuth-members.html">List of all members</a> </div>
<div class="headertitle">
@@ -121,12 +123,87 @@ Inheritance diagram for RedBasicAuth:</div>
</map>
</div></div>
<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a072e8244a9a7f191b32d3db5ac94f857"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBasicAuth.html#a072e8244a9a7f191b32d3db5ac94f857">setCurrentUser</a> ($name)</td></tr>
+<tr class="separator:a072e8244a9a7f191b32d3db5ac94f857"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a358ddad4abb5aa8c1382cf49a907adbc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBasicAuth.html#a358ddad4abb5aa8c1382cf49a907adbc">setBrowserPlugin</a> ($browser)</td></tr>
+<tr class="separator:a358ddad4abb5aa8c1382cf49a907adbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2cc8b1eac9c5a799bfb53ea7f287f3f0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBasicAuth.html#a2cc8b1eac9c5a799bfb53ea7f287f3f0">log</a> ()</td></tr>
+<tr class="separator:a2cc8b1eac9c5a799bfb53ea7f287f3f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:a438ab125b6ef46581947e35d49cdebac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBasicAuth.html#a438ab125b6ef46581947e35d49cdebac">$channel_name</a> = ''</td></tr>
+<tr class="separator:a438ab125b6ef46581947e35d49cdebac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2dab393650d1573e3515969a153e8354"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBasicAuth.html#a2dab393650d1573e3515969a153e8354">$channel_id</a> = 0</td></tr>
+<tr class="separator:a2dab393650d1573e3515969a153e8354"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad5a3ea4dc4783b242d9dc6e76478b6ef"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBasicAuth.html#ad5a3ea4dc4783b242d9dc6e76478b6ef">$channel_hash</a> = ''</td></tr>
+<tr class="separator:ad5a3ea4dc4783b242d9dc6e76478b6ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa75dc43b59adc98e38a98517d3fd35d1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBasicAuth.html#aa75dc43b59adc98e38a98517d3fd35d1">$observer</a> = ''</td></tr>
+<tr class="separator:aa75dc43b59adc98e38a98517d3fd35d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af14337f1baad407f8a85d48205c0f30e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBasicAuth.html#af14337f1baad407f8a85d48205c0f30e">$browser</a></td></tr>
+<tr class="separator:af14337f1baad407f8a85d48205c0f30e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a09c1488a0b290f5a54dc15180c5690d7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBasicAuth.html#a09c1488a0b290f5a54dc15180c5690d7">$owner_id</a></td></tr>
+<tr class="separator:a09c1488a0b290f5a54dc15180c5690d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d09b8d784cc810a0b3be580d05106a7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBasicAuth.html#a8d09b8d784cc810a0b3be580d05106a7">$owner_nick</a> = ''</td></tr>
+<tr class="separator:a8d09b8d784cc810a0b3be580d05106a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2d0246ed446fd5e55c17938b4ce6ac47"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBasicAuth.html#a2d0246ed446fd5e55c17938b4ce6ac47">$timezone</a></td></tr>
+<tr class="separator:a2d0246ed446fd5e55c17938b4ce6ac47"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a8dfd9a0953f8884723b421b7c1acf79b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b">validateUserPass</a> ($username, $password)</td></tr>
<tr class="separator:a8dfd9a0953f8884723b421b7c1acf79b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a2cc8b1eac9c5a799bfb53ea7f287f3f0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBasicAuth::log </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a358ddad4abb5aa8c1382cf49a907adbc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBasicAuth::setBrowserPlugin </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$browser</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a072e8244a9a7f191b32d3db5ac94f857"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBasicAuth::setCurrentUser </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$name</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="a8dfd9a0953f8884723b421b7c1acf79b"></a>
<div class="memitem">
<div class="memproto">
@@ -161,8 +238,107 @@ Protected Member Functions</h2></td></tr>
</div>
</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="af14337f1baad407f8a85d48205c0f30e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBasicAuth::$browser</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedBasicAuth.html#a358ddad4abb5aa8c1382cf49a907adbc">setBrowserPlugin()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad5a3ea4dc4783b242d9dc6e76478b6ef"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBasicAuth::$channel_hash = ''</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2dab393650d1573e3515969a153e8354"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBasicAuth::$channel_id = 0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a438ab125b6ef46581947e35d49cdebac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBasicAuth::$channel_name = ''</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa75dc43b59adc98e38a98517d3fd35d1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBasicAuth::$observer = ''</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a09c1488a0b290f5a54dc15180c5690d7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBasicAuth::$owner_id</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8d09b8d784cc810a0b3be580d05106a7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBasicAuth::$owner_nick = ''</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2d0246ed446fd5e55c17938b4ce6ac47"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBasicAuth::$timezone</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<hr/>The documentation for this class was generated from the following file:<ul>
-<li>mod/<a class="el" href="cloud_8php.html">cloud.php</a></li>
+<li>include/<a class="el" href="reddav_8php.html">reddav.php</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/classRedBasicAuth.js b/doc/html/classRedBasicAuth.js
index 5c1d058d4..ab8a752b6 100644
--- a/doc/html/classRedBasicAuth.js
+++ b/doc/html/classRedBasicAuth.js
@@ -1,4 +1,15 @@
var classRedBasicAuth =
[
- [ "validateUserPass", "classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b", null ]
+ [ "log", "classRedBasicAuth.html#a2cc8b1eac9c5a799bfb53ea7f287f3f0", null ],
+ [ "setBrowserPlugin", "classRedBasicAuth.html#a358ddad4abb5aa8c1382cf49a907adbc", null ],
+ [ "setCurrentUser", "classRedBasicAuth.html#a072e8244a9a7f191b32d3db5ac94f857", null ],
+ [ "validateUserPass", "classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b", null ],
+ [ "$browser", "classRedBasicAuth.html#af14337f1baad407f8a85d48205c0f30e", null ],
+ [ "$channel_hash", "classRedBasicAuth.html#ad5a3ea4dc4783b242d9dc6e76478b6ef", null ],
+ [ "$channel_id", "classRedBasicAuth.html#a2dab393650d1573e3515969a153e8354", null ],
+ [ "$channel_name", "classRedBasicAuth.html#a438ab125b6ef46581947e35d49cdebac", null ],
+ [ "$observer", "classRedBasicAuth.html#aa75dc43b59adc98e38a98517d3fd35d1", null ],
+ [ "$owner_id", "classRedBasicAuth.html#a09c1488a0b290f5a54dc15180c5690d7", null ],
+ [ "$owner_nick", "classRedBasicAuth.html#a8d09b8d784cc810a0b3be580d05106a7", null ],
+ [ "$timezone", "classRedBasicAuth.html#a2d0246ed446fd5e55c17938b4ce6ac47", null ]
]; \ No newline at end of file
diff --git a/doc/html/classRedBrowser-members.html b/doc/html/classRedBrowser-members.html
new file mode 100644
index 000000000..f1c78fc3c
--- /dev/null
+++ b/doc/html/classRedBrowser-members.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classRedBrowser.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">RedBrowser Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classRedBrowser.html">RedBrowser</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classRedBrowser.html#ab6d6d1e2a67e06b344a4cede1bd00b35">$auth</a></td><td class="entry"><a class="el" href="classRedBrowser.html">RedBrowser</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedBrowser.html#a4b76be9ccef0262cf78fffb4129eda93">__construct</a>(&amp;$auth)</td><td class="entry"><a class="el" href="classRedBrowser.html">RedBrowser</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">generateDirectoryIndex</a>($path)</td><td class="entry"><a class="el" href="classRedBrowser.html">RedBrowser</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedBrowser.html#a87529b4988a7777b49616f5c0a1c55d3">getAssetUrl</a>($assetName)</td><td class="entry"><a class="el" href="classRedBrowser.html">RedBrowser</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedBrowser.html#a7f6bf0bda07833f4c647557bd172e349">htmlActionsPanel</a>(DAV\INode $node, &amp;$output)</td><td class="entry"><a class="el" href="classRedBrowser.html">RedBrowser</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedBrowser.html#a40fdbb9d9fe6c1243bbf135dd5b0a06f">set_writeable</a>()</td><td class="entry"><a class="el" href="classRedBrowser.html">RedBrowser</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classRedBrowser.html b/doc/html/classRedBrowser.html
new file mode 100644
index 000000000..c1a5e5ad9
--- /dev/null
+++ b/doc/html/classRedBrowser.html
@@ -0,0 +1,284 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: RedBrowser Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classRedBrowser.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="classRedBrowser-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">RedBrowser Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for RedBrowser:</div>
+<div class="dyncontent">
+ <div class="center">
+ <img src="classRedBrowser.png" usemap="#RedBrowser_map" alt=""/>
+ <map id="RedBrowser_map" name="RedBrowser_map">
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a4b76be9ccef0262cf78fffb4129eda93"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBrowser.html#a4b76be9ccef0262cf78fffb4129eda93">__construct</a> (&amp;$auth)</td></tr>
+<tr class="separator:a4b76be9ccef0262cf78fffb4129eda93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a40fdbb9d9fe6c1243bbf135dd5b0a06f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBrowser.html#a40fdbb9d9fe6c1243bbf135dd5b0a06f">set_writeable</a> ()</td></tr>
+<tr class="separator:a40fdbb9d9fe6c1243bbf135dd5b0a06f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1f7daf50bb9bfcde7345b3b1908dbd7e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">generateDirectoryIndex</a> ($path)</td></tr>
+<tr class="separator:a1f7daf50bb9bfcde7345b3b1908dbd7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7f6bf0bda07833f4c647557bd172e349"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBrowser.html#a7f6bf0bda07833f4c647557bd172e349">htmlActionsPanel</a> (DAV\INode $node, &amp;$output)</td></tr>
+<tr class="separator:a7f6bf0bda07833f4c647557bd172e349"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a87529b4988a7777b49616f5c0a1c55d3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBrowser.html#a87529b4988a7777b49616f5c0a1c55d3">getAssetUrl</a> ($assetName)</td></tr>
+<tr class="separator:a87529b4988a7777b49616f5c0a1c55d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:ab6d6d1e2a67e06b344a4cede1bd00b35"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBrowser.html#ab6d6d1e2a67e06b344a4cede1bd00b35">$auth</a></td></tr>
+<tr class="separator:ab6d6d1e2a67e06b344a4cede1bd00b35"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a4b76be9ccef0262cf78fffb4129eda93"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBrowser::__construct </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$auth</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a1f7daf50bb9bfcde7345b3b1908dbd7e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBrowser::generateDirectoryIndex </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$path</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a87529b4988a7777b49616f5c0a1c55d3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBrowser::getAssetUrl </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$assetName</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<p>This method takes a path/name of an asset and turns it into url suiteable for http access.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$assetName</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
+<p>Referenced by <a class="el" href="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">generateDirectoryIndex()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7f6bf0bda07833f4c647557bd172e349"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBrowser::htmlActionsPanel </td>
+ <td>(</td>
+ <td class="paramtype">DAV\INode&#160;</td>
+ <td class="paramname"><em>$node</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$output</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a40fdbb9d9fe6c1243bbf135dd5b0a06f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBrowser::set_writeable </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="ab6d6d1e2a67e06b344a4cede1bd00b35"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedBrowser::$auth</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedBrowser.html#a4b76be9ccef0262cf78fffb4129eda93">__construct()</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>include/<a class="el" href="reddav_8php.html">reddav.php</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/classRedBrowser.js b/doc/html/classRedBrowser.js
new file mode 100644
index 000000000..b6e9b2a91
--- /dev/null
+++ b/doc/html/classRedBrowser.js
@@ -0,0 +1,9 @@
+var classRedBrowser =
+[
+ [ "__construct", "classRedBrowser.html#a4b76be9ccef0262cf78fffb4129eda93", null ],
+ [ "generateDirectoryIndex", "classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e", null ],
+ [ "getAssetUrl", "classRedBrowser.html#a87529b4988a7777b49616f5c0a1c55d3", null ],
+ [ "htmlActionsPanel", "classRedBrowser.html#a7f6bf0bda07833f4c647557bd172e349", null ],
+ [ "set_writeable", "classRedBrowser.html#a40fdbb9d9fe6c1243bbf135dd5b0a06f", null ],
+ [ "$auth", "classRedBrowser.html#ab6d6d1e2a67e06b344a4cede1bd00b35", null ]
+]; \ No newline at end of file
diff --git a/doc/html/classRedBrowser.png b/doc/html/classRedBrowser.png
new file mode 100644
index 000000000..df14b3aa8
--- /dev/null
+++ b/doc/html/classRedBrowser.png
Binary files differ
diff --git a/doc/html/classRedDirectory-members.html b/doc/html/classRedDirectory-members.html
index a3a9ea6a3..81295f977 100644
--- a/doc/html/classRedDirectory-members.html
+++ b/doc/html/classRedDirectory-members.html
@@ -113,15 +113,22 @@ $(document).ready(function(){initNavTree('classRedDirectory.html','');});
<p>This is the complete list of members for <a class="el" href="classRedDirectory.html">RedDirectory</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classRedDirectory.html#a9616af16cd19a18a6afebebcc2881c44">$auth</a></td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr><td class="entry"><a class="el" href="classRedDirectory.html#ae624dcaa4d73a517f4b1616d33df690d">$channel_id</a></td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classRedDirectory.html#a8d5df814b2f825dd14c628a51b5829b5">$dir_key</a></td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr><td class="entry"><a class="el" href="classRedDirectory.html#acb32b8df27538c57772824a745e751d7">$red_path</a></td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classRedDirectory.html#add0bf2c049230fec4913e769d126e6e6">__construct</a>($red_path, $auth_plugin)</td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedDirectory.html#a0f113244cd85c17848df991001d024f4">$ext_path</a></td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedDirectory.html#aa10254abf177bb2a0e4a88495725e09b">$folder_hash</a></td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedDirectory.html#a3c148c07ad909985125aa4926d8d0021">$os_path</a></td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedDirectory.html#acb32b8df27538c57772824a745e751d7">$red_path</a></td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedDirectory.html#ad87c514a307ec97ba0f1372e9bcfa6a4">$root_dir</a></td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedDirectory.html#a1e35e3cd31d2a15250655e4cafdea180">__construct</a>($ext_path, &amp;$auth_plugin)</td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRedDirectory.html#a5e3fc08b2bf9f61cea4d2ccae0495bec">childExists</a>($name)</td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRedDirectory.html#a986936910f0216887a25e28916c166c7">createDirectory</a>($name)</td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">createFile</a>($name, $data=null)</td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569">getChild</a>($name)</td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classRedDirectory.html#aa42d3065f6f065b17db87146a7cb031a">getChildren</a>()</td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4">getDir</a>()</td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedDirectory.html#a6c7e08199abc24e6eeb94a4037ef8bfc">getLastModified</a>()</td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedDirectory.html#af6e4475dbd5abcdede00d20b8d388583">getName</a>()</td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedDirectory.html#a2f7a574f2115f099d6dd103d5b252375">getQuotaInfo</a>()</td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedDirectory.html#a11376aed1963b4471eb1592c13c63976">log</a>()</td><td class="entry"><a class="el" href="classRedDirectory.html">RedDirectory</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/classRedDirectory.html b/doc/html/classRedDirectory.html
index bec72e8f4..03de4b3ca 100644
--- a/doc/html/classRedDirectory.html
+++ b/doc/html/classRedDirectory.html
@@ -124,32 +124,46 @@ Inheritance diagram for RedDirectory:</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
-<tr class="memitem:add0bf2c049230fec4913e769d126e6e6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html#add0bf2c049230fec4913e769d126e6e6">__construct</a> ($red_path, $auth_plugin)</td></tr>
-<tr class="separator:add0bf2c049230fec4913e769d126e6e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1e35e3cd31d2a15250655e4cafdea180"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html#a1e35e3cd31d2a15250655e4cafdea180">__construct</a> ($ext_path, &amp;$auth_plugin)</td></tr>
+<tr class="separator:a1e35e3cd31d2a15250655e4cafdea180"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a11376aed1963b4471eb1592c13c63976"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html#a11376aed1963b4471eb1592c13c63976">log</a> ()</td></tr>
+<tr class="separator:a11376aed1963b4471eb1592c13c63976"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa42d3065f6f065b17db87146a7cb031a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html#aa42d3065f6f065b17db87146a7cb031a">getChildren</a> ()</td></tr>
<tr class="separator:aa42d3065f6f065b17db87146a7cb031a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa20f0f44da23781917af8170c0a2569"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569">getChild</a> ($name)</td></tr>
<tr class="separator:aaa20f0f44da23781917af8170c0a2569"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af6e4475dbd5abcdede00d20b8d388583"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html#af6e4475dbd5abcdede00d20b8d388583">getName</a> ()</td></tr>
+<tr class="separator:af6e4475dbd5abcdede00d20b8d388583"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d12d99d38a6a75fc9a830b2f7fc0bf0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">createFile</a> ($name, $data=null)</td></tr>
<tr class="separator:a2d12d99d38a6a75fc9a830b2f7fc0bf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a986936910f0216887a25e28916c166c7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html#a986936910f0216887a25e28916c166c7">createDirectory</a> ($name)</td></tr>
<tr class="separator:a986936910f0216887a25e28916c166c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e3fc08b2bf9f61cea4d2ccae0495bec"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html#a5e3fc08b2bf9f61cea4d2ccae0495bec">childExists</a> ($name)</td></tr>
<tr class="separator:a5e3fc08b2bf9f61cea4d2ccae0495bec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a70173d4458572d95e586b2037d2fd2f4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4">getDir</a> ()</td></tr>
+<tr class="separator:a70173d4458572d95e586b2037d2fd2f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c7e08199abc24e6eeb94a4037ef8bfc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html#a6c7e08199abc24e6eeb94a4037ef8bfc">getLastModified</a> ()</td></tr>
+<tr class="separator:a6c7e08199abc24e6eeb94a4037ef8bfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f7a574f2115f099d6dd103d5b252375"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html#a2f7a574f2115f099d6dd103d5b252375">getQuotaInfo</a> ()</td></tr>
+<tr class="separator:a2f7a574f2115f099d6dd103d5b252375"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:acb32b8df27538c57772824a745e751d7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html#acb32b8df27538c57772824a745e751d7">$red_path</a></td></tr>
<tr class="separator:acb32b8df27538c57772824a745e751d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8d5df814b2f825dd14c628a51b5829b5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html#a8d5df814b2f825dd14c628a51b5829b5">$dir_key</a></td></tr>
-<tr class="separator:a8d5df814b2f825dd14c628a51b5829b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa10254abf177bb2a0e4a88495725e09b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html#aa10254abf177bb2a0e4a88495725e09b">$folder_hash</a></td></tr>
+<tr class="separator:aa10254abf177bb2a0e4a88495725e09b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f113244cd85c17848df991001d024f4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html#a0f113244cd85c17848df991001d024f4">$ext_path</a></td></tr>
+<tr class="separator:a0f113244cd85c17848df991001d024f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad87c514a307ec97ba0f1372e9bcfa6a4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html#ad87c514a307ec97ba0f1372e9bcfa6a4">$root_dir</a> = ''</td></tr>
+<tr class="separator:ad87c514a307ec97ba0f1372e9bcfa6a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9616af16cd19a18a6afebebcc2881c44"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html#a9616af16cd19a18a6afebebcc2881c44">$auth</a></td></tr>
<tr class="separator:a9616af16cd19a18a6afebebcc2881c44"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae624dcaa4d73a517f4b1616d33df690d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html#ae624dcaa4d73a517f4b1616d33df690d">$channel_id</a></td></tr>
-<tr class="separator:ae624dcaa4d73a517f4b1616d33df690d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c148c07ad909985125aa4926d8d0021"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html#a3c148c07ad909985125aa4926d8d0021">$os_path</a> = ''</td></tr>
+<tr class="separator:a3c148c07ad909985125aa4926d8d0021"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="add0bf2c049230fec4913e769d126e6e6"></a>
+<a class="anchor" id="a1e35e3cd31d2a15250655e4cafdea180"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -157,12 +171,12 @@ Private Attributes</h2></td></tr>
<td class="memname">RedDirectory::__construct </td>
<td>(</td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$red_path</em>, </td>
+ <td class="paramname"><em>$ext_path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
- <td class="paramtype">&#160;</td>
+ <td class="paramtype">&amp;&#160;</td>
<td class="paramname"><em>$auth_plugin</em>&#160;</td>
</tr>
<tr>
@@ -265,6 +279,85 @@ Private Attributes</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a70173d4458572d95e586b2037d2fd2f4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedDirectory::getDir </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedDirectory.html#a1e35e3cd31d2a15250655e4cafdea180">__construct()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6c7e08199abc24e6eeb94a4037ef8bfc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedDirectory::getLastModified </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af6e4475dbd5abcdede00d20b8d388583"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedDirectory::getName </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2f7a574f2115f099d6dd103d5b252375"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedDirectory::getQuotaInfo </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a11376aed1963b4471eb1592c13c63976"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedDirectory::log </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedDirectory.html#aa42d3065f6f065b17db87146a7cb031a">getChildren()</a>.</p>
+
+</div>
+</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a9616af16cd19a18a6afebebcc2881c44"></a>
<div class="memitem">
@@ -286,7 +379,29 @@ Private Attributes</h2></td></tr>
</div>
</div>
-<a class="anchor" id="ae624dcaa4d73a517f4b1616d33df690d"></a>
+<a class="anchor" id="a0f113244cd85c17848df991001d024f4"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedDirectory::$ext_path</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedDirectory.html#a1e35e3cd31d2a15250655e4cafdea180">__construct()</a>, and <a class="el" href="classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4">getDir()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa10254abf177bb2a0e4a88495725e09b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
@@ -294,7 +409,7 @@ Private Attributes</h2></td></tr>
<td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname">RedDirectory::$channel_id</td>
+ <td class="memname">RedDirectory::$folder_hash</td>
</tr>
</table>
</td>
@@ -306,7 +421,7 @@ Private Attributes</h2></td></tr>
</div>
</div>
-<a class="anchor" id="a8d5df814b2f825dd14c628a51b5829b5"></a>
+<a class="anchor" id="a3c148c07ad909985125aa4926d8d0021"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
@@ -314,7 +429,7 @@ Private Attributes</h2></td></tr>
<td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname">RedDirectory::$dir_key</td>
+ <td class="memname">RedDirectory::$os_path = ''</td>
</tr>
</table>
</td>
@@ -324,6 +439,8 @@ Private Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Referenced by <a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">createFile()</a>, and <a class="el" href="classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4">getDir()</a>.</p>
+
</div>
</div>
<a class="anchor" id="acb32b8df27538c57772824a745e751d7"></a>
@@ -344,7 +461,25 @@ Private Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classRedDirectory.html#add0bf2c049230fec4913e769d126e6e6">__construct()</a>.</p>
+</div>
+</div>
+<a class="anchor" id="ad87c514a307ec97ba0f1372e9bcfa6a4"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedDirectory::$root_dir = ''</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
</div>
</div>
diff --git a/doc/html/classRedDirectory.js b/doc/html/classRedDirectory.js
index c03c41503..7ff86f78a 100644
--- a/doc/html/classRedDirectory.js
+++ b/doc/html/classRedDirectory.js
@@ -1,13 +1,20 @@
var classRedDirectory =
[
- [ "__construct", "classRedDirectory.html#add0bf2c049230fec4913e769d126e6e6", null ],
+ [ "__construct", "classRedDirectory.html#a1e35e3cd31d2a15250655e4cafdea180", null ],
[ "childExists", "classRedDirectory.html#a5e3fc08b2bf9f61cea4d2ccae0495bec", null ],
[ "createDirectory", "classRedDirectory.html#a986936910f0216887a25e28916c166c7", null ],
[ "createFile", "classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0", null ],
[ "getChild", "classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569", null ],
[ "getChildren", "classRedDirectory.html#aa42d3065f6f065b17db87146a7cb031a", null ],
+ [ "getDir", "classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4", null ],
+ [ "getLastModified", "classRedDirectory.html#a6c7e08199abc24e6eeb94a4037ef8bfc", null ],
+ [ "getName", "classRedDirectory.html#af6e4475dbd5abcdede00d20b8d388583", null ],
+ [ "getQuotaInfo", "classRedDirectory.html#a2f7a574f2115f099d6dd103d5b252375", null ],
+ [ "log", "classRedDirectory.html#a11376aed1963b4471eb1592c13c63976", null ],
[ "$auth", "classRedDirectory.html#a9616af16cd19a18a6afebebcc2881c44", null ],
- [ "$channel_id", "classRedDirectory.html#ae624dcaa4d73a517f4b1616d33df690d", null ],
- [ "$dir_key", "classRedDirectory.html#a8d5df814b2f825dd14c628a51b5829b5", null ],
- [ "$red_path", "classRedDirectory.html#acb32b8df27538c57772824a745e751d7", null ]
+ [ "$ext_path", "classRedDirectory.html#a0f113244cd85c17848df991001d024f4", null ],
+ [ "$folder_hash", "classRedDirectory.html#aa10254abf177bb2a0e4a88495725e09b", null ],
+ [ "$os_path", "classRedDirectory.html#a3c148c07ad909985125aa4926d8d0021", null ],
+ [ "$red_path", "classRedDirectory.html#acb32b8df27538c57772824a745e751d7", null ],
+ [ "$root_dir", "classRedDirectory.html#ad87c514a307ec97ba0f1372e9bcfa6a4", null ]
]; \ No newline at end of file
diff --git a/doc/html/classRedDirectory.png b/doc/html/classRedDirectory.png
index 192133f6a..75da336b4 100644
--- a/doc/html/classRedDirectory.png
+++ b/doc/html/classRedDirectory.png
Binary files differ
diff --git a/doc/html/classRedFile-members.html b/doc/html/classRedFile-members.html
index 31c1eb782..343fe2a82 100644
--- a/doc/html/classRedFile-members.html
+++ b/doc/html/classRedFile-members.html
@@ -112,13 +112,19 @@ $(document).ready(function(){initNavTree('classRedFile.html','');});
<p>This is the complete list of members for <a class="el" href="classRedFile.html">RedFile</a>, including all inherited members.</p>
<table class="directory">
- <tr class="even"><td class="entry"><a class="el" href="classRedFile.html#a2ff12032b45538353eded9809d3b7550">$data</a></td><td class="entry"><a class="el" href="classRedFile.html">RedFile</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
- <tr><td class="entry"><a class="el" href="classRedFile.html#ad4588b90004a2741b1a4ced10355904c">__construct</a>($data)</td><td class="entry"><a class="el" href="classRedFile.html">RedFile</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535">get</a>()</td><td class="entry"><a class="el" href="classRedFile.html">RedFile</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classRedFile.html#a26416827eb68554d033d1e2e5cc6dd3b">getContentType</a>()</td><td class="entry"><a class="el" href="classRedFile.html">RedFile</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classRedFile.html#ae96d5caa2db7a461c57b24380fa87e28">getETag</a>()</td><td class="entry"><a class="el" href="classRedFile.html">RedFile</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classRedFile.html#acb1edbe1848fab05347746fa1ea09d8f">getSize</a>()</td><td class="entry"><a class="el" href="classRedFile.html">RedFile</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classRedFile.html#a41a49a583eb276b75626fcf97f4a699c">put</a>($data)</td><td class="entry"><a class="el" href="classRedFile.html">RedFile</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedFile.html#a4b5d0e33f919c6c175b30a55de6263f2">$auth</a></td><td class="entry"><a class="el" href="classRedFile.html">RedFile</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedFile.html#a2ff12032b45538353eded9809d3b7550">$data</a></td><td class="entry"><a class="el" href="classRedFile.html">RedFile</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedFile.html#acc48c05cd5a70951cb3c615ad84f03ba">$name</a></td><td class="entry"><a class="el" href="classRedFile.html">RedFile</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedFile.html#a9a67bdb34c9db6ce144b3f371148b183">__construct</a>($name, $data, &amp;$auth)</td><td class="entry"><a class="el" href="classRedFile.html">RedFile</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedFile.html#aef71c9eaac7052be7dc8602eb12171e7">delete</a>()</td><td class="entry"><a class="el" href="classRedFile.html">RedFile</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535">get</a>()</td><td class="entry"><a class="el" href="classRedFile.html">RedFile</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedFile.html#a26416827eb68554d033d1e2e5cc6dd3b">getContentType</a>()</td><td class="entry"><a class="el" href="classRedFile.html">RedFile</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedFile.html#ae96d5caa2db7a461c57b24380fa87e28">getETag</a>()</td><td class="entry"><a class="el" href="classRedFile.html">RedFile</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedFile.html#a41562a28007789bbe7fe06d6a20eef47">getLastModified</a>()</td><td class="entry"><a class="el" href="classRedFile.html">RedFile</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedFile.html#a0c961c5f49544d2502420361fa526437">getName</a>()</td><td class="entry"><a class="el" href="classRedFile.html">RedFile</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedFile.html#acb1edbe1848fab05347746fa1ea09d8f">getSize</a>()</td><td class="entry"><a class="el" href="classRedFile.html">RedFile</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classRedFile.html#a41a49a583eb276b75626fcf97f4a699c">put</a>($data)</td><td class="entry"><a class="el" href="classRedFile.html">RedFile</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classRedFile.html#a38a82bfc1b30028ea6ac75923e90fa25">setName</a>($newName)</td><td class="entry"><a class="el" href="classRedFile.html">RedFile</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/classRedFile.html b/doc/html/classRedFile.html
index 1fa5b9e54..c45b36c39 100644
--- a/doc/html/classRedFile.html
+++ b/doc/html/classRedFile.html
@@ -124,8 +124,12 @@ Inheritance diagram for RedFile:</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
-<tr class="memitem:ad4588b90004a2741b1a4ced10355904c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedFile.html#ad4588b90004a2741b1a4ced10355904c">__construct</a> ($data)</td></tr>
-<tr class="separator:ad4588b90004a2741b1a4ced10355904c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9a67bdb34c9db6ce144b3f371148b183"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedFile.html#a9a67bdb34c9db6ce144b3f371148b183">__construct</a> ($name, $data, &amp;$auth)</td></tr>
+<tr class="separator:a9a67bdb34c9db6ce144b3f371148b183"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0c961c5f49544d2502420361fa526437"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedFile.html#a0c961c5f49544d2502420361fa526437">getName</a> ()</td></tr>
+<tr class="separator:a0c961c5f49544d2502420361fa526437"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a38a82bfc1b30028ea6ac75923e90fa25"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedFile.html#a38a82bfc1b30028ea6ac75923e90fa25">setName</a> ($newName)</td></tr>
+<tr class="separator:a38a82bfc1b30028ea6ac75923e90fa25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41a49a583eb276b75626fcf97f4a699c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedFile.html#a41a49a583eb276b75626fcf97f4a699c">put</a> ($data)</td></tr>
<tr class="separator:a41a49a583eb276b75626fcf97f4a699c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c868dfcef6c70cd0e24cf3caa2c3535"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535">get</a> ()</td></tr>
@@ -136,14 +140,22 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a26416827eb68554d033d1e2e5cc6dd3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb1edbe1848fab05347746fa1ea09d8f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedFile.html#acb1edbe1848fab05347746fa1ea09d8f">getSize</a> ()</td></tr>
<tr class="separator:acb1edbe1848fab05347746fa1ea09d8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a41562a28007789bbe7fe06d6a20eef47"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedFile.html#a41562a28007789bbe7fe06d6a20eef47">getLastModified</a> ()</td></tr>
+<tr class="separator:a41562a28007789bbe7fe06d6a20eef47"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aef71c9eaac7052be7dc8602eb12171e7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedFile.html#aef71c9eaac7052be7dc8602eb12171e7">delete</a> ()</td></tr>
+<tr class="separator:aef71c9eaac7052be7dc8602eb12171e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a2ff12032b45538353eded9809d3b7550"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedFile.html#a2ff12032b45538353eded9809d3b7550">$data</a></td></tr>
<tr class="separator:a2ff12032b45538353eded9809d3b7550"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b5d0e33f919c6c175b30a55de6263f2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedFile.html#a4b5d0e33f919c6c175b30a55de6263f2">$auth</a></td></tr>
+<tr class="separator:a4b5d0e33f919c6c175b30a55de6263f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc48c05cd5a70951cb3c615ad84f03ba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedFile.html#acc48c05cd5a70951cb3c615ad84f03ba">$name</a></td></tr>
+<tr class="separator:acc48c05cd5a70951cb3c615ad84f03ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="ad4588b90004a2741b1a4ced10355904c"></a>
+<a class="anchor" id="a9a67bdb34c9db6ce144b3f371148b183"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -151,8 +163,24 @@ Private Attributes</h2></td></tr>
<td class="memname">RedFile::__construct </td>
<td>(</td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$data</em></td><td>)</td>
+ <td class="paramname"><em>$name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$data</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$auth</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
@@ -160,6 +188,21 @@ Private Attributes</h2></td></tr>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="aef71c9eaac7052be7dc8602eb12171e7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedFile::delete </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="a7c868dfcef6c70cd0e24cf3caa2c3535"></a>
<div class="memitem">
<div class="memproto">
@@ -205,6 +248,36 @@ Private Attributes</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a41562a28007789bbe7fe06d6a20eef47"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedFile::getLastModified </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0c961c5f49544d2502420361fa526437"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedFile::getName </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="acb1edbe1848fab05347746fa1ea09d8f"></a>
<div class="memitem">
<div class="memproto">
@@ -236,7 +309,45 @@ Private Attributes</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a38a82bfc1b30028ea6ac75923e90fa25"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedFile::setName </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$newName</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<h2 class="groupheader">Member Data Documentation</h2>
+<a class="anchor" id="a4b5d0e33f919c6c175b30a55de6263f2"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedFile::$auth</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedFile.html#a9a67bdb34c9db6ce144b3f371148b183">__construct()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a2ff12032b45538353eded9809d3b7550"></a>
<div class="memitem">
<div class="memproto">
@@ -255,7 +366,29 @@ Private Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classRedFile.html#ad4588b90004a2741b1a4ced10355904c">__construct()</a>.</p>
+<p>Referenced by <a class="el" href="classRedFile.html#a9a67bdb34c9db6ce144b3f371148b183">__construct()</a>, and <a class="el" href="classRedFile.html#a41a49a583eb276b75626fcf97f4a699c">put()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acc48c05cd5a70951cb3c615ad84f03ba"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedFile::$name</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedFile.html#a9a67bdb34c9db6ce144b3f371148b183">__construct()</a>.</p>
</div>
</div>
diff --git a/doc/html/classRedFile.js b/doc/html/classRedFile.js
index 526eb7ae7..4f03440ad 100644
--- a/doc/html/classRedFile.js
+++ b/doc/html/classRedFile.js
@@ -1,10 +1,16 @@
var classRedFile =
[
- [ "__construct", "classRedFile.html#ad4588b90004a2741b1a4ced10355904c", null ],
+ [ "__construct", "classRedFile.html#a9a67bdb34c9db6ce144b3f371148b183", null ],
+ [ "delete", "classRedFile.html#aef71c9eaac7052be7dc8602eb12171e7", null ],
[ "get", "classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535", null ],
[ "getContentType", "classRedFile.html#a26416827eb68554d033d1e2e5cc6dd3b", null ],
[ "getETag", "classRedFile.html#ae96d5caa2db7a461c57b24380fa87e28", null ],
+ [ "getLastModified", "classRedFile.html#a41562a28007789bbe7fe06d6a20eef47", null ],
+ [ "getName", "classRedFile.html#a0c961c5f49544d2502420361fa526437", null ],
[ "getSize", "classRedFile.html#acb1edbe1848fab05347746fa1ea09d8f", null ],
[ "put", "classRedFile.html#a41a49a583eb276b75626fcf97f4a699c", null ],
- [ "$data", "classRedFile.html#a2ff12032b45538353eded9809d3b7550", null ]
+ [ "setName", "classRedFile.html#a38a82bfc1b30028ea6ac75923e90fa25", null ],
+ [ "$auth", "classRedFile.html#a4b5d0e33f919c6c175b30a55de6263f2", null ],
+ [ "$data", "classRedFile.html#a2ff12032b45538353eded9809d3b7550", null ],
+ [ "$name", "classRedFile.html#acc48c05cd5a70951cb3c615ad84f03ba", null ]
]; \ No newline at end of file
diff --git a/doc/html/classes.html b/doc/html/classes.html
index ec9ffc484..4125fa1dd 100644
--- a/doc/html/classes.html
+++ b/doc/html/classes.html
@@ -125,11 +125,11 @@ $(document).ready(function(){initNavTree('classes.html','');});
<tr><td valign="top"><a class="el" href="classBaseObject.html">BaseObject</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_E"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;E&#160;&#160;</div></td></tr></table>
</td><td valign="top"><a class="el" href="classItem.html">Item</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classRedBasicAuth.html">RedBasicAuth</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;C&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="interfaceITemplateEngine.html">ITemplateEngine</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classRedDirectory.html">RedDirectory</a>&#160;&#160;&#160;</td><td></td></tr>
+</td><td valign="top"><a class="el" href="interfaceITemplateEngine.html">ITemplateEngine</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classRedBrowser.html">RedBrowser</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td valign="top"><a class="el" href="classenotify.html">enotify</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;P&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classRedFile.html">RedFile</a>&#160;&#160;&#160;</td><td></td></tr>
+</td><td valign="top"><a class="el" href="classRedDirectory.html">RedDirectory</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td valign="top"><a class="el" href="classCache.html">Cache</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;F&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classRedInode.html">RedInode</a>&#160;&#160;&#160;</td><td></td></tr>
+</td><td valign="top"><a class="el" href="classRedFile.html">RedFile</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td valign="top"><a class="el" href="classConversation.html">Conversation</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classphoto__driver.html">photo_driver</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;T&#160;&#160;</div></td></tr></table>
</td><td></td></tr>
<tr><td></td><td valign="top"><a class="el" href="classFKOAuth1.html">FKOAuth1</a>&#160;&#160;&#160;</td><td></td><td></td></tr>
diff --git a/doc/html/cloud_8php.html b/doc/html/cloud_8php.html
index 68c42f825..a5ea81c0a 100644
--- a/doc/html/cloud_8php.html
+++ b/doc/html/cloud_8php.html
@@ -104,32 +104,28 @@ $(document).ready(function(){initNavTree('cloud_8php.html','');});
<div class="header">
<div class="summary">
-<a href="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">cloud.php File Reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
-Classes</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBasicAuth.html">RedBasicAuth</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:a080071b784fe01d04ed6c09d9f2785b8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cloud_8php.html#a080071b784fe01d04ed6c09d9f2785b8">cloud_init</a> ()</td></tr>
-<tr class="separator:a080071b784fe01d04ed6c09d9f2785b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b79a6fe0454bc76673ad9aef55bf02d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_SERVER,'REDIRECT_REMOTE_USER')) <br class="typebreak"/>
+<a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_SERVER,'HTTP_AUTHORIZATION'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a1b79a6fe0454bc76673ad9aef55bf02d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a080071b784fe01d04ed6c09d9f2785b8"></a>
+<a class="anchor" id="a1b79a6fe0454bc76673ad9aef55bf02d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">cloud_init </td>
+ <td class="memname"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_SERVER,'REDIRECT_REMOTE_USER')) <a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($_SERVER,'HTTP_AUTHORIZATION')) cloud_init </td>
<td>(</td>
- <td class="paramname"></td><td>)</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
<td></td>
</tr>
</table>
diff --git a/doc/html/cloud_8php.js b/doc/html/cloud_8php.js
index 9463067b2..6b3de1272 100644
--- a/doc/html/cloud_8php.js
+++ b/doc/html/cloud_8php.js
@@ -1,5 +1,4 @@
var cloud_8php =
[
- [ "RedBasicAuth", "classRedBasicAuth.html", "classRedBasicAuth" ],
- [ "cloud_init", "cloud_8php.html#a080071b784fe01d04ed6c09d9f2785b8", null ]
+ [ "cloud_init", "cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d", null ]
]; \ No newline at end of file
diff --git a/doc/html/comanche_8php.html b/doc/html/comanche_8php.html
index 4b6a86ba4..57572239d 100644
--- a/doc/html/comanche_8php.html
+++ b/doc/html/comanche_8php.html
@@ -190,7 +190,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>.</p>
+<p>Referenced by <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, and <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>.</p>
</div>
</div>
diff --git a/doc/html/common_8php.html b/doc/html/common_8php.html
index 4fea80ece..e70c1adb9 100644
--- a/doc/html/common_8php.html
+++ b/doc/html/common_8php.html
@@ -114,28 +114,10 @@ $(document).ready(function(){initNavTree('common_8php.html','');});
Functions</h2></td></tr>
<tr class="memitem:aca62f113655809f41f49042ce9b123c2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init</a> (&amp;$a)</td></tr>
<tr class="separator:aca62f113655809f41f49042ce9b123c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3b12ec67b3d3edcf595c8d195da5d14a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8php.html#a3b12ec67b3d3edcf595c8d195da5d14a">common_aside</a> (&amp;$a)</td></tr>
-<tr class="separator:a3b12ec67b3d3edcf595c8d195da5d14a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab63408f39abef7a6915186e8dabc5a96"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content</a> (&amp;$a)</td></tr>
<tr class="separator:ab63408f39abef7a6915186e8dabc5a96"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a3b12ec67b3d3edcf595c8d195da5d14a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">common_aside </td>
- <td>(</td>
- <td class="paramtype">&amp;&#160;</td>
- <td class="paramname"><em>$a</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
<a class="anchor" id="ab63408f39abef7a6915186e8dabc5a96"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/common_8php.js b/doc/html/common_8php.js
index 6f763d046..85ca9299c 100644
--- a/doc/html/common_8php.js
+++ b/doc/html/common_8php.js
@@ -1,6 +1,5 @@
var common_8php =
[
- [ "common_aside", "common_8php.html#a3b12ec67b3d3edcf595c8d195da5d14a", null ],
[ "common_content", "common_8php.html#ab63408f39abef7a6915186e8dabc5a96", null ],
[ "common_init", "common_8php.html#aca62f113655809f41f49042ce9b123c2", null ]
]; \ No newline at end of file
diff --git a/doc/html/connections_8php.html b/doc/html/connections_8php.html
index 28d066222..cd24a6a61 100644
--- a/doc/html/connections_8php.html
+++ b/doc/html/connections_8php.html
@@ -114,8 +114,6 @@ $(document).ready(function(){initNavTree('connections_8php.html','');});
Functions</h2></td></tr>
<tr class="memitem:a1f23623f802af7bd35e95b0e94e5d558"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections_init</a> (&amp;$a)</td></tr>
<tr class="separator:a1f23623f802af7bd35e95b0e94e5d558"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af48f7ad20914760ba9874c090384e35a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="connections_8php.html#af48f7ad20914760ba9874c090384e35a">connections_aside</a> (&amp;$a)</td></tr>
-<tr class="separator:af48f7ad20914760ba9874c090384e35a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1224058db8e3fb56463eb312f98e561d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post</a> (&amp;$a)</td></tr>
<tr class="separator:a1224058db8e3fb56463eb312f98e561d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15af118efee9c948b6f8294e54a73bb2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="connections_8php.html#a15af118efee9c948b6f8294e54a73bb2">connections_clone</a> (&amp;$a)</td></tr>
@@ -124,22 +122,6 @@ Functions</h2></td></tr>
<tr class="separator:aec2e457420fce3e3bf6a9f48e36df25c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="af48f7ad20914760ba9874c090384e35a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">connections_aside </td>
- <td>(</td>
- <td class="paramtype">&amp;&#160;</td>
- <td class="paramname"><em>$a</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
<a class="anchor" id="a15af118efee9c948b6f8294e54a73bb2"></a>
<div class="memitem">
<div class="memproto">
@@ -154,7 +136,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, and <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>.</p>
+<p>Referenced by <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>.</p>
</div>
</div>
diff --git a/doc/html/connections_8php.js b/doc/html/connections_8php.js
index ecab7efc9..962b1f866 100644
--- a/doc/html/connections_8php.js
+++ b/doc/html/connections_8php.js
@@ -1,6 +1,5 @@
var connections_8php =
[
- [ "connections_aside", "connections_8php.html#af48f7ad20914760ba9874c090384e35a", null ],
[ "connections_clone", "connections_8php.html#a15af118efee9c948b6f8294e54a73bb2", null ],
[ "connections_content", "connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c", null ],
[ "connections_init", "connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558", null ],
diff --git a/doc/html/connedit_8php.html b/doc/html/connedit_8php.html
new file mode 100644
index 000000000..53c6eeda6
--- /dev/null
+++ b/doc/html/connedit_8php.html
@@ -0,0 +1,193 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/connedit.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('connedit_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">connedit.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a4da871e075597a09a8b374b9171dd92e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="connedit_8php.html#a4da871e075597a09a8b374b9171dd92e">connedit_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a4da871e075597a09a8b374b9171dd92e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a234c48426b652bf4d37053f2af329ac5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a234c48426b652bf4d37053f2af329ac5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a707ea7e63cf9674025b1d6b081ae74f5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="connedit_8php.html#a707ea7e63cf9674025b1d6b081ae74f5">connedit_clone</a> (&amp;$a)</td></tr>
+<tr class="separator:a707ea7e63cf9674025b1d6b081ae74f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a795acb3d9d841f55c255d7611681ab67"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a795acb3d9d841f55c255d7611681ab67"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a707ea7e63cf9674025b1d6b081ae74f5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">connedit_clone </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, and <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a795acb3d9d841f55c255d7611681ab67"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">connedit_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4da871e075597a09a8b374b9171dd92e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">connedit_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a234c48426b652bf4d37053f2af329ac5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">connedit_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/connedit_8php.js b/doc/html/connedit_8php.js
new file mode 100644
index 000000000..0492ead35
--- /dev/null
+++ b/doc/html/connedit_8php.js
@@ -0,0 +1,7 @@
+var connedit_8php =
+[
+ [ "connedit_clone", "connedit_8php.html#a707ea7e63cf9674025b1d6b081ae74f5", null ],
+ [ "connedit_content", "connedit_8php.html#a795acb3d9d841f55c255d7611681ab67", null ],
+ [ "connedit_init", "connedit_8php.html#a4da871e075597a09a8b374b9171dd92e", null ],
+ [ "connedit_post", "connedit_8php.html#a234c48426b652bf4d37053f2af329ac5", null ]
+]; \ No newline at end of file
diff --git a/doc/html/contact__selectors_8php.html b/doc/html/contact__selectors_8php.html
index e7dcf48f7..ca9945e46 100644
--- a/doc/html/contact__selectors_8php.html
+++ b/doc/html/contact__selectors_8php.html
@@ -146,7 +146,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>.</p>
+<p>Referenced by <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>.</p>
</div>
</div>
@@ -164,7 +164,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, and <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>.</p>
+<p>Referenced by <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, and <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>.</p>
</div>
</div>
diff --git a/doc/html/contact__widgets_8php.html b/doc/html/contact__widgets_8php.html
index 179eded89..a9febe165 100644
--- a/doc/html/contact__widgets_8php.html
+++ b/doc/html/contact__widgets_8php.html
@@ -112,8 +112,6 @@ $(document).ready(function(){initNavTree('contact__widgets_8php.html','');});
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:af24e693532a045954caab515942cfc6f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="contact__widgets_8php.html#af24e693532a045954caab515942cfc6f">follow_widget</a> ()</td></tr>
-<tr class="separator:af24e693532a045954caab515942cfc6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57e73ebcfd62bb5d8c7a7b9e663726d6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget</a> ()</td></tr>
<tr class="separator:a57e73ebcfd62bb5d8c7a7b9e663726d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1eda66319d170f60a8d07c7ece95533b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget</a> ($baseurl, $selected= '')</td></tr>
@@ -148,7 +146,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside()</a>, and <a class="el" href="lastpost_8php.html#a6108289ef2a767495c7c85a24f364983">lastpost_aside()</a>.</p>
+<p>Referenced by <a class="el" href="widgets_8php.html#af37fdad3b2e861d860a4a8c4d8a76c0b">widget_categories()</a>.</p>
</div>
</div>
@@ -166,7 +164,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, and <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>.</p>
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>.</p>
</div>
</div>
@@ -194,8 +192,6 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>.</p>
-
</div>
</div>
<a class="anchor" id="a57e73ebcfd62bb5d8c7a7b9e663726d6"></a>
@@ -211,24 +207,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="connections_8php.html#af48f7ad20914760ba9874c090384e35a">connections_aside()</a>, <a class="el" href="mod_2directory_8php.html#aa1d928543212871491706216742dd73c">directory_aside()</a>, and <a class="el" href="suggest_8php.html#a4df91c84594d51ba56b5918de414230d">suggest_aside()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="af24e693532a045954caab515942cfc6f"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">follow_widget </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Referenced by <a class="el" href="connections_8php.html#af48f7ad20914760ba9874c090384e35a">connections_aside()</a>, <a class="el" href="intro_8php.html#abc3abf25da64f98f215126eb08c7936b">intro_aside()</a>, and <a class="el" href="suggest_8php.html#a4df91c84594d51ba56b5918de414230d">suggest_aside()</a>.</p>
+<p>Referenced by <a class="el" href="widgets_8php.html#ade630b19fb4c622b7b2f6f8ef89eefa2">widget_findpeople()</a>.</p>
</div>
</div>
diff --git a/doc/html/contact__widgets_8php.js b/doc/html/contact__widgets_8php.js
index 1b2a8ecd5..2963a1227 100644
--- a/doc/html/contact__widgets_8php.js
+++ b/doc/html/contact__widgets_8php.js
@@ -3,6 +3,5 @@ var contact__widgets_8php =
[ "categories_widget", "contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353", null ],
[ "common_friends_visitor_widget", "contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65", null ],
[ "fileas_widget", "contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b", null ],
- [ "findpeople_widget", "contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6", null ],
- [ "follow_widget", "contact__widgets_8php.html#af24e693532a045954caab515942cfc6f", null ]
+ [ "findpeople_widget", "contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6", null ]
]; \ No newline at end of file
diff --git a/doc/html/conversation_8php.html b/doc/html/conversation_8php.html
index bc9198ee2..c2b005065 100644
--- a/doc/html/conversation_8php.html
+++ b/doc/html/conversation_8php.html
@@ -230,7 +230,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
</div>
</div>
@@ -287,7 +287,7 @@ Functions</h2></td></tr>
<li>conversation view The $mode parameter decides between the various renderings and also figures out how to determine page owner and other contextual items that are based on unique features of the calling module. </li>
</ul>
-<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="classItem.html#aa452b5bcd8dea12119b09212c615cb41">Item\remove_parent()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, and <a class="el" href="classItem.html#aa8b1bbc4236890694635295e46d7fd72">Item\set_conversation()</a>.</p>
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="classItem.html#aa452b5bcd8dea12119b09212c615cb41">Item\remove_parent()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, and <a class="el" href="classItem.html#aa8b1bbc4236890694635295e46d7fd72">Item\set_conversation()</a>.</p>
</div>
</div>
@@ -574,7 +574,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>.</p>
+<p>Referenced by <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home_content()</a>, and <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>.</p>
</div>
</div>
@@ -608,7 +608,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, and <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>.</p>
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, and <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>.</p>
</div>
</div>
@@ -752,7 +752,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, and <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>.</p>
+<p>Referenced by <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, and <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>.</p>
</div>
</div>
diff --git a/doc/html/crypto_8php.html b/doc/html/crypto_8php.html
index 3bf683aef..f2c686711 100644
--- a/doc/html/crypto_8php.html
+++ b/doc/html/crypto_8php.html
@@ -228,7 +228,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="crypto_8php.html#a32fc08d57a5694f94d8543ecbb03323c">crypto_encapsulate()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+<p>Referenced by <a class="el" href="crypto_8php.html#a32fc08d57a5694f94d8543ecbb03323c">crypto_encapsulate()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
</div>
</div>
@@ -318,7 +318,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">encode_mail()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="text_8php.html#a8264348059abd1d4d5bb521323d3b19a">unobscure()</a>, <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>, and <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>.</p>
+<p>Referenced by <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">encode_mail()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="text_8php.html#a8264348059abd1d4d5bb521323d3b19a">unobscure()</a>, <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>, and <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>.</p>
</div>
</div>
@@ -416,7 +416,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet()</a>, and <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet()</a>, and <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>.</p>
</div>
</div>
diff --git a/doc/html/datetime_8php.html b/doc/html/datetime_8php.html
index fa92b651f..ba5154227 100644
--- a/doc/html/datetime_8php.html
+++ b/doc/html/datetime_8php.html
@@ -172,7 +172,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">local_dir_update()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
</div>
</div>
@@ -334,7 +334,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="datetime_8php.html#abc1652f96799cec6fce8797ba2ebc2df">age()</a>, <a class="el" href="include_2api_8php.html#ae8f5863e18d69421005c71441c9d99a5">api_account_rate_limit_status()</a>, <a class="el" href="include_2api_8php.html#aea2dda92a155f2843a0ca188d8dfdf25">api_date()</a>, <a class="el" href="include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f">api_rss_extra()</a>, <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="datetime_8php.html#aea356409ba69f9de412298c998595dd2">cal()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="classCache.html#ab14d0f4bdf7116a94d545c574b38f568">Cache\clear()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca">cronhooks_run()</a>, <a class="el" href="items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259">delete_item_lowlevel()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c">dlogger()</a>, <a class="el" href="datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8">dob()</a>, <a class="el" href="event_8php.html#a32ba1b9ddf7a744a9a1512b052e5f850">ev_compare()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="items_8php.html#a0cf98bb619f07dd18f602683a55a5f59">first_post_date()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863">format_event_diaspora()</a>, <a class="el" href="event_8php.html#a2ac9f1b08de03250ecd794f705781d17">format_event_html()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="datetime_8php.html#aba971b67f17fecf050813f1eba72367f">get_first_dim()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">get_mail_elements()</a>, <a class="el" href="items_8php.html#a251343637ff40a50cca93452cd530c26">get_profile_elements()</a>, <a class="el" href="items_8php.html#a079e099e15d88d47aeb6ca6d60da7107">get_public_feed()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="text_8php.html#a030fa5ecc64168af0c4f44897a9bce63">logger()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">posted_dates()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="classdba__mysql.html#ac3fd60c278f400907322dac578754a99">dba_mysql\q()</a>, <a class="el" href="classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec">dba_mysqli\q()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82">relative_date()</a>, <a class="el" href="classphoto__driver.html#a5864fae7d8389372955a8e78cec527ac">photo_driver\save()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="classCache.html#ae622b82adc1c2fb1f3e2cc4fd9688fce">Cache\set()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13">update_directory_entry()</a>, <a class="el" href="zot_8php.html#ab319d1d9fff9c7775d9daef42d1f33dd">update_modtime()</a>, <a class="el" href="queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1">update_queue_time()</a>, <a class="el" href="datetime_8php.html#ab55e545b72ec8c097e052ea7d373491f">z_birthday()</a>, <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>, <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot_process_response()</a>, <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+<p>Referenced by <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</a>, <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="datetime_8php.html#abc1652f96799cec6fce8797ba2ebc2df">age()</a>, <a class="el" href="include_2api_8php.html#ae8f5863e18d69421005c71441c9d99a5">api_account_rate_limit_status()</a>, <a class="el" href="include_2api_8php.html#aea2dda92a155f2843a0ca188d8dfdf25">api_date()</a>, <a class="el" href="include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f">api_rss_extra()</a>, <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="datetime_8php.html#aea356409ba69f9de412298c998595dd2">cal()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="include_2chat_8php.html#acdc80dba4eb796c7472b21129b435422">chatroom_create()</a>, <a class="el" href="include_2chat_8php.html#a2c95b545e46bfee64faa05ecf0afea91">chatroom_enter()</a>, <a class="el" href="chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9">chatsvc_content()</a>, <a class="el" href="chatsvc_8php.html#a7c9a9b9c24a2b02eed8efd6b09632d03">chatsvc_post()</a>, <a class="el" href="classCache.html#ab14d0f4bdf7116a94d545c574b38f568">Cache\clear()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">RedDirectory\createFile()</a>, <a class="el" href="cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca">cronhooks_run()</a>, <a class="el" href="items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259">delete_item_lowlevel()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c">dlogger()</a>, <a class="el" href="datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8">dob()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="event_8php.html#a32ba1b9ddf7a744a9a1512b052e5f850">ev_compare()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="items_8php.html#a0cf98bb619f07dd18f602683a55a5f59">first_post_date()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863">format_event_diaspora()</a>, <a class="el" href="event_8php.html#a2ac9f1b08de03250ecd794f705781d17">format_event_html()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">RedBrowser\generateDirectoryIndex()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="datetime_8php.html#aba971b67f17fecf050813f1eba72367f">get_first_dim()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">get_mail_elements()</a>, <a class="el" href="items_8php.html#a251343637ff40a50cca93452cd530c26">get_profile_elements()</a>, <a class="el" href="items_8php.html#a079e099e15d88d47aeb6ca6d60da7107">get_public_feed()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="classRedDirectory.html#a6c7e08199abc24e6eeb94a4037ef8bfc">RedDirectory\getLastModified()</a>, <a class="el" href="classRedFile.html#a41562a28007789bbe7fe06d6a20eef47">RedFile\getLastModified()</a>, <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">import_author_rss()</a>, <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="text_8php.html#a030fa5ecc64168af0c4f44897a9bce63">logger()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">posted_dates()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="classRedFile.html#a41a49a583eb276b75626fcf97f4a699c">RedFile\put()</a>, <a class="el" href="classdba__mysql.html#ac3fd60c278f400907322dac578754a99">dba_mysql\q()</a>, <a class="el" href="classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec">dba_mysqli\q()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82">relative_date()</a>, <a class="el" href="classphoto__driver.html#a5864fae7d8389372955a8e78cec527ac">photo_driver\save()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="classCache.html#ae622b82adc1c2fb1f3e2cc4fd9688fce">Cache\set()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13">update_directory_entry()</a>, <a class="el" href="zot_8php.html#ab319d1d9fff9c7775d9daef42d1f33dd">update_modtime()</a>, <a class="el" href="queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1">update_queue_time()</a>, <a class="el" href="datetime_8php.html#ab55e545b72ec8c097e052ea7d373491f">z_birthday()</a>, <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>, <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot_process_response()</a>, <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
</div>
</div>
@@ -476,7 +476,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3">format_notification()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, and <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3">format_notification()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, and <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>.</p>
</div>
</div>
diff --git a/doc/html/dba__driver_8php.html b/doc/html/dba__driver_8php.html
index da6e5eb43..8c47a8a44 100644
--- a/doc/html/dba__driver_8php.html
+++ b/doc/html/dba__driver_8php.html
@@ -202,7 +202,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api_statuses_destroy()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata()</a>, <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files()</a>, <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c">call_hooks()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="Contact_8php.html#a483cda56f9e37c3a4a8773dcdfeb0258">channelx_by_hash()</a>, <a class="el" href="Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc">channelx_by_n()</a>, <a class="el" href="Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e">channelx_by_nick()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="items_8php.html#a87ac9e359591721a824ecd23bbb56296">check_item_source()</a>, <a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">check_webbie()</a>, <a class="el" href="classRedDirectory.html#a5e3fc08b2bf9f61cea4d2ccae0495bec">RedDirectory\childExists()</a>, <a class="el" href="classCache.html#ab14d0f4bdf7116a94d545c574b38f568">Cache\clear()</a>, <a class="el" href="comanche_8php.html#a5a7ab801717d38e91ac910b933973887">comanche_block()</a>, <a class="el" href="socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918">common_friends()</a>, <a class="el" href="connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36">connect_init()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">contact_remove()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84">count_common_friends()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="dba__driver_8php.html#af531546fac5f0836a8557a4f6dfee930">dbesc_array_cb()</a>, <a class="el" href="include_2config_8php.html#a549910227348003efc3c05c9105c42da">del_config()</a>, <a class="el" href="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">del_pconfig()</a>, <a class="el" href="include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72">del_xconfig()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259">delete_item_lowlevel()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">fetch_post_tags()</a>, <a class="el" href="taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1">file_tag_file_query()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">fix_attached_photo_permissions()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="text_8php.html#ae4f6881d7e13623f8eded6277595112a">generate_user_guid()</a>, <a class="el" href="classCache.html#a70392b109331897bf9fdd7f1960e21de">Cache\get()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="include_2config_8php.html#af08b7adb63adfb2eda7c466fba0cce74">get_config_from_storage()</a>, <a class="el" href="identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569">RedDirectory\getChild()</a>, <a class="el" href="classRedDirectory.html#aa42d3065f6f065b17db87146a7cb031a">RedDirectory\getChildren()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce">group_add()</a>, <a class="el" href="include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b">group_add_member()</a>, <a class="el" href="include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb">group_byname()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245">group_rec_byhash()</a>, <a class="el" href="include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5">group_rmv()</a>, <a class="el" href="include_2group_8php.html#a540e3ef36f47d47532646be4241f6518">group_rmv_member()</a>, <a class="el" href="include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f">groups_containing()</a>, <a class="el" href="item_8php.html#abd0e603a6696051af16476eb968d52e7">handle_tag()</a>, <a class="el" href="zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d">import_author_zot()</a>, <a class="el" href="zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a">import_directory_keywords()</a>, <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5">install_plugin()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e">item_message_id()</a>, <a class="el" href="security_8php.html#a9355488460ab11d6058656ff919e5cf9">item_permissions_sql()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1">load_config()</a>, <a class="el" href="plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d">load_plugin()</a>, <a class="el" href="include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33">load_xconfig()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1">FKOAuthDataStore\lookup_consumer()</a>, <a class="el" href="classFKOAuthDataStore.html#a4edfe2e77ecd2e16ff6b5eb516ed3599">FKOAuthDataStore\lookup_nonce()</a>, <a class="el" href="classFKOAuthDataStore.html#a96f76387c3a93b0abe27a98013804bab">FKOAuthDataStore\lookup_token()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="include_2group_8php.html#a048f6892bfd28852de1b76470df411de">member_of()</a>, <a class="el" href="include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8">menu_add_item()</a>, <a class="el" href="include_2menu_8php.html#a08a800821721781a8dfffbe31481ff98">menu_create()</a>, <a class="el" href="include_2menu_8php.html#a3884bda4d85d84ec99447db9403a68d8">menu_delete()</a>, <a class="el" href="include_2menu_8php.html#a6a33c6a3db2a7510b16cc656edaec571">menu_edit()</a>, <a class="el" href="include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa">menu_edit_item()</a>, <a class="el" href="include_2menu_8php.html#a68ebbf492470c930f652013656f9071d">menu_fetch()</a>, <a class="el" href="msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8">msearch_post()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934">FKOAuthDataStore\new_access_token()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="session_8php.html#a4c0ead624f95483e386bc80abf570a8f">new_cookie()</a>, <a class="el" href="classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050">FKOAuthDataStore\new_request_token()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="mod_2api_8php.html#a02ae0f60e240dc806b860edb7d582117">oauth_get_client()</a>, <a class="el" href="onedirsync_8php.html#a411aedd47c57476099647961e6a86691">onedirsync_run()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f">permissions_sql()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="text_8php.html#aa5528f41533927e1bd2da3618a74a6d7">photo_new_resource()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#a8e8b7be99e24c2497bc2cb3339280c35">photos_album_exists()</a>, <a class="el" href="include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe">photos_album_get_db_idstr()</a>, <a class="el" href="include_2photos_8php.html#ab0365f25b22ccea5f085fe7c49e1f4ab">photos_album_rename()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="include_2message_8php.html#aed272d77c06a309e2836ac79e75613f1">private_messages_drop()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>, <a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">process_profile_delivery()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01">public_permissions_sql()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="qsearch_8php.html#a0501887b95bd8fa21018b2936a668894">qsearch_init()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="Contact_8php.html#a2f4f495d53f2a334ab75292af79d3c91">rconnect_url()</a>, <a class="el" href="items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b">red_zrl_callback()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="session_8php.html#af230b86bfff7db66c3bdd7e0bbc24052">ref_session_destroy()</a>, <a class="el" href="session_8php.html#ac95373f4966862a028033dd2f94d4da1">ref_session_gc()</a>, <a class="el" href="session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e">ref_session_read()</a>, <a class="el" href="session_8php.html#ac4461c1984543d3553e73dba2771568f">ref_session_write()</a>, <a class="el" href="plugin_8php.html#a425472c5f3afc137268b2ad45652b209">register_hook()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="Contact_8php.html#acc12cda999c88c4d6185cca967c15125">remove_all_xchan_resources()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24">remove_queue_item()</a>, <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic_init()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="classphoto__driver.html#a5864fae7d8389372955a8e78cec527ac">photo_driver\save()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search_init()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">send_status_notifications()</a>, <a class="el" href="classCache.html#ae622b82adc1c2fb1f3e2cc4fd9688fce">Cache\set()</a>, <a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a">set_config()</a>, <a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">set_pconfig()</a>, <a class="el" href="include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e">set_xconfig()</a>, <a class="el" href="classRedInode.html#a3d76322f25d847b123b3df37a26dd04e">RedInode\setName()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>, <a class="el" href="taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd">store_item_tag()</a>, <a class="el" href="security_8php.html#a15e0f8f511cc06192db63387f97238b3">stream_perms_xchans()</a>, <a class="el" href="text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13">stringify_array_elms()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c">suggest_init()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c">term_query()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76">uninstall_plugin()</a>, <a class="el" href="plugin_8php.html#a56f71fe5adf9586ce950523d8180443e">unregister_hook()</a>, <a class="el" href="dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13">update_directory_entry()</a>, <a class="el" href="zot_8php.html#ab319d1d9fff9c7775d9daef42d1f33dd">update_modtime()</a>, <a class="el" href="queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1">update_queue_time()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">user_deny()</a>, <a class="el" href="classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b">RedBasicAuth\validateUserPass()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="vote_8php.html#a57a9516ee1b923b224e66dcc47377fb2">vote_post()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>, <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">xchan_mail_query()</a>, <a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">xchan_query()</a>, <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>, <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>, <a class="el" href="zot_8php.html#a95528377d7303131958c9f0b7158fdce">zot_finger()</a>, <a class="el" href="zot_8php.html#ae7cec2b417b5858fd4a41070f843d1d7">zot_get_hublocs()</a>, <a class="el" href="zot_8php.html#a55056e863a7860bc0cf922e78fcce073">zot_gethub()</a>, <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot_process_response()</a>, <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+<p>Referenced by <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</a>, <a class="el" href="achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e">achievements_content()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api_statuses_destroy()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata()</a>, <a class="el" href="include_2attach_8php.html#a5c0875eafb8c0f8a0620ff7a875a2221">attach_change_permissions()</a>, <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files()</a>, <a class="el" href="include_2attach_8php.html#a70bd666e080c2af5a91f5d14c297b8cd">attach_delete()</a>, <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="include_2bookmarks_8php.html#a88ce7dee6a3dc7465aa9b8eaa45b0087">bookmark_add()</a>, <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c">call_hooks()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="Contact_8php.html#a483cda56f9e37c3a4a8773dcdfeb0258">channelx_by_hash()</a>, <a class="el" href="Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc">channelx_by_n()</a>, <a class="el" href="Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e">channelx_by_nick()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="mod_2chat_8php.html#a999d594745597c656c9760253ae297ad">chat_post()</a>, <a class="el" href="include_2chat_8php.html#acdc80dba4eb796c7472b21129b435422">chatroom_create()</a>, <a class="el" href="include_2chat_8php.html#a2ba3af6884ecdce95de69262fe599639">chatroom_destroy()</a>, <a class="el" href="include_2chat_8php.html#a2c95b545e46bfee64faa05ecf0afea91">chatroom_enter()</a>, <a class="el" href="include_2chat_8php.html#a1ee1360f7d2549c7549ae07cb5190f0f">chatroom_leave()</a>, <a class="el" href="chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9">chatsvc_content()</a>, <a class="el" href="chatsvc_8php.html#a7c9a9b9c24a2b02eed8efd6b09632d03">chatsvc_post()</a>, <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="items_8php.html#a87ac9e359591721a824ecd23bbb56296">check_item_source()</a>, <a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">check_webbie()</a>, <a class="el" href="classCache.html#ab14d0f4bdf7116a94d545c574b38f568">Cache\clear()</a>, <a class="el" href="comanche_8php.html#a5a7ab801717d38e91ac910b933973887">comanche_block()</a>, <a class="el" href="socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918">common_friends()</a>, <a class="el" href="connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36">connect_init()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">contact_remove()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84">count_common_friends()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">RedDirectory\createFile()</a>, <a class="el" href="dba__driver_8php.html#af531546fac5f0836a8557a4f6dfee930">dbesc_array_cb()</a>, <a class="el" href="include_2config_8php.html#a549910227348003efc3c05c9105c42da">del_config()</a>, <a class="el" href="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">del_pconfig()</a>, <a class="el" href="include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72">del_xconfig()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259">delete_item_lowlevel()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="account_8php.html#a0d183a3cb4c67a0f5e906811df7a1fc9">downgrade_accounts()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">fetch_post_tags()</a>, <a class="el" href="taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1">file_tag_file_query()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">fix_attached_photo_permissions()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="classCache.html#a70392b109331897bf9fdd7f1960e21de">Cache\get()</a>, <a class="el" href="classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535">RedFile\get()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="identity_8php.html#ac73b3e13778c564c877554517a7f51ba">get_channel_by_nick()</a>, <a class="el" href="include_2attach_8php.html#a6aa00ea010ea030110faefb75eafc1ce">get_cloudpath()</a>, <a class="el" href="include_2config_8php.html#af08b7adb63adfb2eda7c466fba0cce74">get_config_from_storage()</a>, <a class="el" href="identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="identity_8php.html#a332df795f684788002f5a6424abacfd7">get_online_status()</a>, <a class="el" href="classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4">RedDirectory\getDir()</a>, <a class="el" href="classRedDirectory.html#a6c7e08199abc24e6eeb94a4037ef8bfc">RedDirectory\getLastModified()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce">group_add()</a>, <a class="el" href="include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b">group_add_member()</a>, <a class="el" href="include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb">group_byname()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245">group_rec_byhash()</a>, <a class="el" href="include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5">group_rmv()</a>, <a class="el" href="include_2group_8php.html#a540e3ef36f47d47532646be4241f6518">group_rmv_member()</a>, <a class="el" href="include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f">groups_containing()</a>, <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>, <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home_content()</a>, <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">import_author_rss()</a>, <a class="el" href="zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d">import_author_zot()</a>, <a class="el" href="zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a">import_directory_keywords()</a>, <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887">import_profile_photo()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5">install_plugin()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e">item_message_id()</a>, <a class="el" href="security_8php.html#a9355488460ab11d6058656ff919e5cf9">item_permissions_sql()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1">load_config()</a>, <a class="el" href="plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d">load_plugin()</a>, <a class="el" href="include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33">load_xconfig()</a>, <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">local_dir_update()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1">FKOAuthDataStore\lookup_consumer()</a>, <a class="el" href="classFKOAuthDataStore.html#a4edfe2e77ecd2e16ff6b5eb516ed3599">FKOAuthDataStore\lookup_nonce()</a>, <a class="el" href="classFKOAuthDataStore.html#a96f76387c3a93b0abe27a98013804bab">FKOAuthDataStore\lookup_token()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="auth_8php.html#ab7be44ee051c0aa29847807cf2c5dd38">match_openid()</a>, <a class="el" href="include_2group_8php.html#a048f6892bfd28852de1b76470df411de">member_of()</a>, <a class="el" href="include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8">menu_add_item()</a>, <a class="el" href="include_2menu_8php.html#a08a800821721781a8dfffbe31481ff98">menu_create()</a>, <a class="el" href="include_2menu_8php.html#a3884bda4d85d84ec99447db9403a68d8">menu_delete()</a>, <a class="el" href="include_2menu_8php.html#a6a33c6a3db2a7510b16cc656edaec571">menu_edit()</a>, <a class="el" href="include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa">menu_edit_item()</a>, <a class="el" href="include_2menu_8php.html#a68ebbf492470c930f652013656f9071d">menu_fetch()</a>, <a class="el" href="include_2menu_8php.html#a32701c4245e78ba9106eef52c08bf33d">menu_list()</a>, <a class="el" href="msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8">msearch_post()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934">FKOAuthDataStore\new_access_token()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="session_8php.html#a4c0ead624f95483e386bc80abf570a8f">new_cookie()</a>, <a class="el" href="classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050">FKOAuthDataStore\new_request_token()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="mod_2api_8php.html#a02ae0f60e240dc806b860edb7d582117">oauth_get_client()</a>, <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url()</a>, <a class="el" href="onedirsync_8php.html#a411aedd47c57476099647961e6a86691">onedirsync_run()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f">permissions_sql()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="text_8php.html#aa5528f41533927e1bd2da3618a74a6d7">photo_new_resource()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#a8e8b7be99e24c2497bc2cb3339280c35">photos_album_exists()</a>, <a class="el" href="include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe">photos_album_get_db_idstr()</a>, <a class="el" href="include_2photos_8php.html#ab0365f25b22ccea5f085fe7c49e1f4ab">photos_album_rename()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="include_2message_8php.html#aed272d77c06a309e2836ac79e75613f1">private_messages_drop()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>, <a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">process_profile_delivery()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01">public_permissions_sql()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="classRedFile.html#a41a49a583eb276b75626fcf97f4a699c">RedFile\put()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="Contact_8php.html#a2f4f495d53f2a334ab75292af79d3c91">rconnect_url()</a>, <a class="el" href="items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b">red_zrl_callback()</a>, <a class="el" href="reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266">RedCollectionData()</a>, <a class="el" href="reddav_8php.html#a9f531641dfb4e43cd88ac1a9ae7e2088">RedFileData()</a>, <a class="el" href="session_8php.html#af230b86bfff7db66c3bdd7e0bbc24052">ref_session_destroy()</a>, <a class="el" href="session_8php.html#ac95373f4966862a028033dd2f94d4da1">ref_session_gc()</a>, <a class="el" href="session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e">ref_session_read()</a>, <a class="el" href="session_8php.html#ac4461c1984543d3553e73dba2771568f">ref_session_write()</a>, <a class="el" href="plugin_8php.html#a425472c5f3afc137268b2ad45652b209">register_hook()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="identity_8php.html#a47d6f53216f23a3484061793bef29854">remote_online_status()</a>, <a class="el" href="Contact_8php.html#acc12cda999c88c4d6185cca967c15125">remove_all_xchan_resources()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24">remove_queue_item()</a>, <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic_init()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="classphoto__driver.html#a5864fae7d8389372955a8e78cec527ac">photo_driver\save()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">send_status_notifications()</a>, <a class="el" href="classCache.html#ae622b82adc1c2fb1f3e2cc4fd9688fce">Cache\set()</a>, <a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a">set_config()</a>, <a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">set_pconfig()</a>, <a class="el" href="include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e">set_xconfig()</a>, <a class="el" href="classRedFile.html#a38a82bfc1b30028ea6ac75923e90fa25">RedFile\setName()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>, <a class="el" href="taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd">store_item_tag()</a>, <a class="el" href="security_8php.html#a15e0f8f511cc06192db63387f97238b3">stream_perms_xchans()</a>, <a class="el" href="text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13">stringify_array_elms()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c">suggest_init()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c">term_query()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="bbcode_8php.html#a39de4de32a9456d1ca914d0dc52bd322">tryzrlaudio()</a>, <a class="el" href="bbcode_8php.html#aa92f119341f4c69dcef2768a013079b8">tryzrlvideo()</a>, <a class="el" href="plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76">uninstall_plugin()</a>, <a class="el" href="plugin_8php.html#a56f71fe5adf9586ce950523d8180443e">unregister_hook()</a>, <a class="el" href="dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13">update_directory_entry()</a>, <a class="el" href="zot_8php.html#ab319d1d9fff9c7775d9daef42d1f33dd">update_modtime()</a>, <a class="el" href="queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1">update_queue_time()</a>, <a class="el" href="items_8php.html#a2baa9e05f1e8aa3dd61c85803ae39bd6">update_remote_id()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">user_deny()</a>, <a class="el" href="classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b">RedBasicAuth\validateUserPass()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="vote_8php.html#a57a9516ee1b923b224e66dcc47377fb2">vote_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widget_savedsearch()</a>, <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>, <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">xchan_mail_query()</a>, <a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">xchan_query()</a>, <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>, <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>, <a class="el" href="zot_8php.html#a95528377d7303131958c9f0b7158fdce">zot_finger()</a>, <a class="el" href="zot_8php.html#ae7cec2b417b5858fd4a41070f843d1d7">zot_get_hublocs()</a>, <a class="el" href="zot_8php.html#a55056e863a7860bc0cf922e78fcce073">zot_gethub()</a>, <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot_process_response()</a>, <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
</div>
</div>
@@ -264,8 +264,6 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>.</p>
-
</div>
</div>
<a class="anchor" id="aa377074e70981e8c4e82ca0accd068ee"></a>
@@ -320,7 +318,7 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<p>This will happen occasionally trying to store the session data after abnormal program termination</p>
-<p>Referenced by <a class="el" href="Contact_8php.html#ae8803c330352cbf1e828eb7490edf47e">abook_connections()</a>, <a class="el" href="Contact_8php.html#ad5b02c2a962ee55b1b7ca6c159d6e4c5">abook_self()</a>, <a class="el" href="Contact_8php.html#a024919623a830e8703ac4f23496dd66c">abook_toggle_flag()</a>, <a class="el" href="Contact_8php.html#a6e64de7db60b7243dce45fb6347636ff">account_remove()</a>, <a class="el" href="account_8php.html#a43e3042b2723d76915a030bac3c668b6">account_total()</a>, <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a6943543f3138f6ee182cb701f415d1cc">admin_page_hubloc()</a>, <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586">all_friends()</a>, <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5">api_direct_messages_box()</a>, <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new()</a>, <a class="el" href="include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f">api_favorites()</a>, <a class="el" href="include_2api_8php.html#a36344c80b8e9755da2f2dd3a0e28cce8">api_ff_ids()</a>, <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api_statuses_destroy()</a>, <a class="el" href="include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410">api_statuses_f()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata()</a>, <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files()</a>, <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c">call_hooks()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="include_2chanman_8php.html#a21ba9a5c961e866ff27aee3ee67bf99b">chanman_remove_everything_from_network()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="identity_8php.html#a77d2237f1846964634b1c99089c27c7d">channel_total()</a>, <a class="el" href="Contact_8php.html#a483cda56f9e37c3a4a8773dcdfeb0258">channelx_by_hash()</a>, <a class="el" href="Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc">channelx_by_n()</a>, <a class="el" href="Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e">channelx_by_nick()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="items_8php.html#a87ac9e359591721a824ecd23bbb56296">check_item_source()</a>, <a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">check_webbie()</a>, <a class="el" href="classRedDirectory.html#a5e3fc08b2bf9f61cea4d2ccae0495bec">RedDirectory\childExists()</a>, <a class="el" href="classCache.html#ab14d0f4bdf7116a94d545c574b38f568">Cache\clear()</a>, <a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">collect_recipients()</a>, <a class="el" href="comanche_8php.html#a5a7ab801717d38e91ac910b933973887">comanche_block()</a>, <a class="el" href="socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918">common_friends()</a>, <a class="el" href="socgraph_8php.html#ac343a846241d36cdf046b08f3396cfe9">common_friends_zcid()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36">connect_init()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections_init()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="contact__selectors_8php.html#a2c743d2eb526eb758d943a1490162d75">contact_profile_assign()</a>, <a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">contact_remove()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="socgraph_8php.html#af29d056beec10b4e38e5209c92452894">count_all_friends()</a>, <a class="el" href="socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84">count_common_friends()</a>, <a class="el" href="socgraph_8php.html#af175807406d94407a5e11742a3287746">count_common_friends_zcid()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair_content()</a>, <a class="el" href="crepair_8php.html#ab089978e50df156bbfabf9f8f5ccd198">crepair_init()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme()</a>, <a class="el" href="include_2config_8php.html#a549910227348003efc3c05c9105c42da">del_config()</a>, <a class="el" href="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">del_pconfig()</a>, <a class="el" href="include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72">del_xconfig()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="classRedInode.html#a5e8f09bc887725c3c448f8d72fe3edfc">RedInode\delete()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259">delete_item_lowlevel()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="taxonomy_8php.html#a088371f4bc19155b2291508f5cd63332">dir_tagadelic()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345">expand_groups()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">fetch_post_tags()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="items_8php.html#a0cf98bb619f07dd18f602683a55a5f59">first_post_date()</a>, <a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">fix_attached_photo_permissions()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="contact__widgets_8php.html#af24e693532a045954caab515942cfc6f">follow_widget()</a>, <a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest_content()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="text_8php.html#ae4f6881d7e13623f8eded6277595112a">generate_user_guid()</a>, <a class="el" href="classCache.html#a70392b109331897bf9fdd7f1960e21de">Cache\get()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="include_2config_8php.html#af08b7adb63adfb2eda7c466fba0cce74">get_config_from_storage()</a>, <a class="el" href="identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569">RedDirectory\getChild()</a>, <a class="el" href="classRedDirectory.html#aa42d3065f6f065b17db87146a7cb031a">RedDirectory\getChildren()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce">group_add()</a>, <a class="el" href="include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b">group_add_member()</a>, <a class="el" href="include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb">group_byname()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09">group_get_members()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245">group_rec_byhash()</a>, <a class="el" href="include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5">group_rmv()</a>, <a class="el" href="include_2group_8php.html#a540e3ef36f47d47532646be4241f6518">group_rmv_member()</a>, <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">group_select()</a>, <a class="el" href="include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17">group_side()</a>, <a class="el" href="include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f">groups_containing()</a>, <a class="el" href="item_8php.html#abd0e603a6696051af16476eb968d52e7">handle_tag()</a>, <a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity_basic_export()</a>, <a class="el" href="identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633">identity_check_service_class()</a>, <a class="el" href="zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d">import_author_zot()</a>, <a class="el" href="zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a">import_directory_keywords()</a>, <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5">install_plugin()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a5b1b36cb301a94b38150074f0d424e74">item_check_service_class()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e">item_message_id()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="text_8php.html#a3999a0b3e22e440f280ee791ce34d384">layout_select()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="dirsearch_8php.html#a985d410a170549429857af6ff2673149">list_public_sites()</a>, <a class="el" href="include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1">load_config()</a>, <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links()</a>, <a class="el" href="plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813">load_hooks()</a>, <a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">load_pconfig()</a>, <a class="el" href="plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d">load_plugin()</a>, <a class="el" href="language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05">load_translation_table()</a>, <a class="el" href="include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33">load_xconfig()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1">FKOAuthDataStore\lookup_consumer()</a>, <a class="el" href="classFKOAuthDataStore.html#a4edfe2e77ecd2e16ff6b5eb516ed3599">FKOAuthDataStore\lookup_nonce()</a>, <a class="el" href="classFKOAuthDataStore.html#a96f76387c3a93b0abe27a98013804bab">FKOAuthDataStore\lookup_token()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="include_2group_8php.html#a048f6892bfd28852de1b76470df411de">member_of()</a>, <a class="el" href="include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8">menu_add_item()</a>, <a class="el" href="include_2menu_8php.html#a08a800821721781a8dfffbe31481ff98">menu_create()</a>, <a class="el" href="include_2menu_8php.html#a9aa8e0052dd47c1a93f53a983bd4620a">menu_del_item()</a>, <a class="el" href="include_2menu_8php.html#a3884bda4d85d84ec99447db9403a68d8">menu_delete()</a>, <a class="el" href="include_2menu_8php.html#ad87f51ce85172bcc3f931aa0cd96a804">menu_delete_id()</a>, <a class="el" href="include_2menu_8php.html#a6a33c6a3db2a7510b16cc656edaec571">menu_edit()</a>, <a class="el" href="include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa">menu_edit_item()</a>, <a class="el" href="include_2menu_8php.html#a68ebbf492470c930f652013656f9071d">menu_fetch()</a>, <a class="el" href="include_2menu_8php.html#a47447c01ba8ea04cd74af1d4c5b68fc7">menu_fetch_id()</a>, <a class="el" href="include_2menu_8php.html#acef15a498d52666b1c7e5c12765c689b">menu_list()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="text_8php.html#a1633412120f52bdce5f43e0a127d9293">mimetype_select()</a>, <a class="el" href="include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32">mini_group_select()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8">msearch_post()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934">FKOAuthDataStore\new_access_token()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="session_8php.html#a4c0ead624f95483e386bc80abf570a8f">new_cookie()</a>, <a class="el" href="classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050">FKOAuthDataStore\new_request_token()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="mod_2api_8php.html#a02ae0f60e240dc806b860edb7d582117">oauth_get_client()</a>, <a class="el" href="onedirsync_8php.html#a411aedd47c57476099647961e6a86691">onedirsync_run()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="page__widgets_8php.html#ad82011c1ed90d9de8b9f34c12af5c6f0">pagelist_widget()</a>, <a class="el" href="comanche_8php.html#af7150df735e5ff9d467994cd6f769c6e">pdl_selector()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="text_8php.html#aa5528f41533927e1bd2da3618a74a6d7">photo_new_resource()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#a8e8b7be99e24c2497bc2cb3339280c35">photos_album_exists()</a>, <a class="el" href="include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe">photos_album_get_db_idstr()</a>, <a class="el" href="include_2photos_8php.html#ab0365f25b22ccea5f085fe7c49e1f4ab">photos_album_rename()</a>, <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos_albums_list()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="include_2message_8php.html#aed272d77c06a309e2836ac79e75613f1">private_messages_drop()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>, <a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">process_profile_delivery()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="qsearch_8php.html#a0501887b95bd8fa21018b2936a668894">qsearch_init()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="Contact_8php.html#a852fa476f0c70bde10a4f2533aec5f71">random_profile()</a>, <a class="el" href="Contact_8php.html#a2f4f495d53f2a334ab75292af79d3c91">rconnect_url()</a>, <a class="el" href="items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b">red_zrl_callback()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="session_8php.html#af230b86bfff7db66c3bdd7e0bbc24052">ref_session_destroy()</a>, <a class="el" href="session_8php.html#ac95373f4966862a028033dd2f94d4da1">ref_session_gc()</a>, <a class="el" href="session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e">ref_session_read()</a>, <a class="el" href="session_8php.html#ac4461c1984543d3553e73dba2771568f">ref_session_write()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="plugin_8php.html#a425472c5f3afc137268b2ad45652b209">register_hook()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025">reload_plugins()</a>, <a class="el" href="Contact_8php.html#acc12cda999c88c4d6185cca967c15125">remove_all_xchan_resources()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24">remove_queue_item()</a>, <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic_init()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="classphoto__driver.html#a5864fae7d8389372955a8e78cec527ac">photo_driver\save()</a>, <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search_init()</a>, <a class="el" href="search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6">search_saved_searches()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">send_status_notifications()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="classCache.html#ae622b82adc1c2fb1f3e2cc4fd9688fce">Cache\set()</a>, <a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a">set_config()</a>, <a class="el" href="identity_8php.html#a78151baf4407a8482d2681a91a9c486b">set_default_login_identity()</a>, <a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">set_pconfig()</a>, <a class="el" href="include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e">set_xconfig()</a>, <a class="el" href="classRedInode.html#a3d76322f25d847b123b3df37a26dd04e">RedInode\setName()</a>, <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, <a class="el" href="sitelist_8php.html#a665a59bf60f780b40f32c909f4a473b1">sitelist_init()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred_init()</a>, <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>, <a class="el" href="taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd">store_item_tag()</a>, <a class="el" href="security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a15e0f8f511cc06192db63387f97238b3">stream_perms_xchans()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c">suggest_init()</a>, <a class="el" href="socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329">suggestion_query()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="taxonomy_8php.html#aaf90ba8b839d6459065f39a4f1109b8a">tagadelic()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76">uninstall_plugin()</a>, <a class="el" href="plugin_8php.html#a56f71fe5adf9586ce950523d8180443e">unregister_hook()</a>, <a class="el" href="dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13">update_directory_entry()</a>, <a class="el" href="zot_8php.html#ab319d1d9fff9c7775d9daef42d1f33dd">update_modtime()</a>, <a class="el" href="queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1">update_queue_time()</a>, <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">user_deny()</a>, <a class="el" href="classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b">RedBasicAuth\validateUserPass()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="vote_8php.html#a6aa67489bf458ca5e3206e46dac68596">vote_content()</a>, <a class="el" href="vote_8php.html#ae0c6610f40afbbc1f4fe6494c51fbab2">vote_init()</a>, <a class="el" href="vote_8php.html#a57a9516ee1b923b224e66dcc47377fb2">vote_post()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>, <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">xchan_mail_query()</a>, <a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">xchan_query()</a>, <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>, <a class="el" href="text_8php.html#a324c58f37f6acdf9cd1922aa76077d9f">z_input_filter()</a>, <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>, <a class="el" href="zot_8php.html#a95528377d7303131958c9f0b7158fdce">zot_finger()</a>, <a class="el" href="zot_8php.html#ae7cec2b417b5858fd4a41070f843d1d7">zot_get_hublocs()</a>, <a class="el" href="zot_8php.html#a55056e863a7860bc0cf922e78fcce073">zot_gethub()</a>, <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>, <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot_process_response()</a>, <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+<p>Referenced by <a class="el" href="Contact_8php.html#ae8803c330352cbf1e828eb7490edf47e">abook_connections()</a>, <a class="el" href="Contact_8php.html#ad5b02c2a962ee55b1b7ca6c159d6e4c5">abook_self()</a>, <a class="el" href="Contact_8php.html#a024919623a830e8703ac4f23496dd66c">abook_toggle_flag()</a>, <a class="el" href="Contact_8php.html#a6e64de7db60b7243dce45fb6347636ff">account_remove()</a>, <a class="el" href="account_8php.html#a43e3042b2723d76915a030bac3c668b6">account_total()</a>, <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</a>, <a class="el" href="achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e">achievements_content()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a6943543f3138f6ee182cb701f415d1cc">admin_page_hubloc()</a>, <a class="el" href="admin_8php.html#a60ba9783ad14545814919970bc3fb725">admin_page_hubloc_post()</a>, <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586">all_friends()</a>, <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5">api_direct_messages_box()</a>, <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new()</a>, <a class="el" href="include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f">api_favorites()</a>, <a class="el" href="include_2api_8php.html#a36344c80b8e9755da2f2dd3a0e28cce8">api_ff_ids()</a>, <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api_statuses_destroy()</a>, <a class="el" href="include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410">api_statuses_f()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata()</a>, <a class="el" href="include_2attach_8php.html#a5c0875eafb8c0f8a0620ff7a875a2221">attach_change_permissions()</a>, <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files()</a>, <a class="el" href="include_2attach_8php.html#a70bd666e080c2af5a91f5d14c297b8cd">attach_delete()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="include_2bookmarks_8php.html#a88ce7dee6a3dc7465aa9b8eaa45b0087">bookmark_add()</a>, <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c">call_hooks()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="include_2chanman_8php.html#a21ba9a5c961e866ff27aee3ee67bf99b">chanman_remove_everything_from_network()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="identity_8php.html#a77d2237f1846964634b1c99089c27c7d">channel_total()</a>, <a class="el" href="Contact_8php.html#a483cda56f9e37c3a4a8773dcdfeb0258">channelx_by_hash()</a>, <a class="el" href="Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc">channelx_by_n()</a>, <a class="el" href="Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e">channelx_by_nick()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="mod_2chat_8php.html#a999d594745597c656c9760253ae297ad">chat_post()</a>, <a class="el" href="include_2chat_8php.html#acdc80dba4eb796c7472b21129b435422">chatroom_create()</a>, <a class="el" href="include_2chat_8php.html#a2ba3af6884ecdce95de69262fe599639">chatroom_destroy()</a>, <a class="el" href="include_2chat_8php.html#a2c95b545e46bfee64faa05ecf0afea91">chatroom_enter()</a>, <a class="el" href="include_2chat_8php.html#a1ee1360f7d2549c7549ae07cb5190f0f">chatroom_leave()</a>, <a class="el" href="include_2chat_8php.html#aedcb532a0627b8644001a2fadab4e87a">chatroom_list()</a>, <a class="el" href="chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9">chatsvc_content()</a>, <a class="el" href="chatsvc_8php.html#a28d248b056fa47452e28ed01130e9116">chatsvc_init()</a>, <a class="el" href="chatsvc_8php.html#a7c9a9b9c24a2b02eed8efd6b09632d03">chatsvc_post()</a>, <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="items_8php.html#a87ac9e359591721a824ecd23bbb56296">check_item_source()</a>, <a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">check_webbie()</a>, <a class="el" href="classCache.html#ab14d0f4bdf7116a94d545c574b38f568">Cache\clear()</a>, <a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">collect_recipients()</a>, <a class="el" href="comanche_8php.html#a5a7ab801717d38e91ac910b933973887">comanche_block()</a>, <a class="el" href="socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918">common_friends()</a>, <a class="el" href="socgraph_8php.html#ac343a846241d36cdf046b08f3396cfe9">common_friends_zcid()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36">connect_init()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="connedit_8php.html#a4da871e075597a09a8b374b9171dd92e">connedit_init()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="contact__selectors_8php.html#a2c743d2eb526eb758d943a1490162d75">contact_profile_assign()</a>, <a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">contact_remove()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="socgraph_8php.html#af29d056beec10b4e38e5209c92452894">count_all_friends()</a>, <a class="el" href="socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84">count_common_friends()</a>, <a class="el" href="socgraph_8php.html#af175807406d94407a5e11742a3287746">count_common_friends_zcid()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="classRedDirectory.html#a986936910f0216887a25e28916c166c7">RedDirectory\createDirectory()</a>, <a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">RedDirectory\createFile()</a>, <a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme()</a>, <a class="el" href="include_2config_8php.html#a549910227348003efc3c05c9105c42da">del_config()</a>, <a class="el" href="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">del_pconfig()</a>, <a class="el" href="include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72">del_xconfig()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259">delete_item_lowlevel()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="taxonomy_8php.html#a088371f4bc19155b2291508f5cd63332">dir_tagadelic()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="account_8php.html#a0d183a3cb4c67a0f5e906811df7a1fc9">downgrade_accounts()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345">expand_groups()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">fetch_post_tags()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="items_8php.html#a0cf98bb619f07dd18f602683a55a5f59">first_post_date()</a>, <a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">fix_attached_photo_permissions()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest_content()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="classCache.html#a70392b109331897bf9fdd7f1960e21de">Cache\get()</a>, <a class="el" href="classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535">RedFile\get()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="identity_8php.html#ac73b3e13778c564c877554517a7f51ba">get_channel_by_nick()</a>, <a class="el" href="include_2attach_8php.html#a6aa00ea010ea030110faefb75eafc1ce">get_cloudpath()</a>, <a class="el" href="include_2config_8php.html#af08b7adb63adfb2eda7c466fba0cce74">get_config_from_storage()</a>, <a class="el" href="identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="identity_8php.html#a332df795f684788002f5a6424abacfd7">get_online_status()</a>, <a class="el" href="identity_8php.html#aaff86ee3b5984821e7a256c2da5f1a51">get_sys_channel()</a>, <a class="el" href="taxonomy_8php.html#a7747fa859ac56fbffd4f9782d85505de">get_things()</a>, <a class="el" href="spam_8php.html#ab8fd81a82c9622cbebb8ceab6b310ca6">get_words()</a>, <a class="el" href="classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4">RedDirectory\getDir()</a>, <a class="el" href="classRedDirectory.html#a6c7e08199abc24e6eeb94a4037ef8bfc">RedDirectory\getLastModified()</a>, <a class="el" href="classRedDirectory.html#a2f7a574f2115f099d6dd103d5b252375">RedDirectory\getQuotaInfo()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce">group_add()</a>, <a class="el" href="include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b">group_add_member()</a>, <a class="el" href="include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb">group_byname()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09">group_get_members()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245">group_rec_byhash()</a>, <a class="el" href="include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5">group_rmv()</a>, <a class="el" href="include_2group_8php.html#a540e3ef36f47d47532646be4241f6518">group_rmv_member()</a>, <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">group_select()</a>, <a class="el" href="include_2group_8php.html#a6a69bd7be032fa8ce4e49c43a42cc6e9">group_side()</a>, <a class="el" href="include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f">groups_containing()</a>, <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>, <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home_content()</a>, <a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity_basic_export()</a>, <a class="el" href="identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633">identity_check_service_class()</a>, <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">import_author_rss()</a>, <a class="el" href="zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d">import_author_zot()</a>, <a class="el" href="zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a">import_directory_keywords()</a>, <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887">import_profile_photo()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5">install_plugin()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a5b1b36cb301a94b38150074f0d424e74">item_check_service_class()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e">item_message_id()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="text_8php.html#a3999a0b3e22e440f280ee791ce34d384">layout_select()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="dirsearch_8php.html#a985d410a170549429857af6ff2673149">list_public_sites()</a>, <a class="el" href="include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1">load_config()</a>, <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links()</a>, <a class="el" href="plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813">load_hooks()</a>, <a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">load_pconfig()</a>, <a class="el" href="plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d">load_plugin()</a>, <a class="el" href="language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05">load_translation_table()</a>, <a class="el" href="include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33">load_xconfig()</a>, <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">local_dir_update()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1">FKOAuthDataStore\lookup_consumer()</a>, <a class="el" href="classFKOAuthDataStore.html#a4edfe2e77ecd2e16ff6b5eb516ed3599">FKOAuthDataStore\lookup_nonce()</a>, <a class="el" href="classFKOAuthDataStore.html#a96f76387c3a93b0abe27a98013804bab">FKOAuthDataStore\lookup_token()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="auth_8php.html#ab7be44ee051c0aa29847807cf2c5dd38">match_openid()</a>, <a class="el" href="include_2group_8php.html#a048f6892bfd28852de1b76470df411de">member_of()</a>, <a class="el" href="include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8">menu_add_item()</a>, <a class="el" href="include_2menu_8php.html#a08a800821721781a8dfffbe31481ff98">menu_create()</a>, <a class="el" href="include_2menu_8php.html#a9aa8e0052dd47c1a93f53a983bd4620a">menu_del_item()</a>, <a class="el" href="include_2menu_8php.html#a3884bda4d85d84ec99447db9403a68d8">menu_delete()</a>, <a class="el" href="include_2menu_8php.html#ad87f51ce85172bcc3f931aa0cd96a804">menu_delete_id()</a>, <a class="el" href="include_2menu_8php.html#a6a33c6a3db2a7510b16cc656edaec571">menu_edit()</a>, <a class="el" href="include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa">menu_edit_item()</a>, <a class="el" href="include_2menu_8php.html#a68ebbf492470c930f652013656f9071d">menu_fetch()</a>, <a class="el" href="include_2menu_8php.html#a47447c01ba8ea04cd74af1d4c5b68fc7">menu_fetch_id()</a>, <a class="el" href="include_2menu_8php.html#a32701c4245e78ba9106eef52c08bf33d">menu_list()</a>, <a class="el" href="text_8php.html#a1633412120f52bdce5f43e0a127d9293">mimetype_select()</a>, <a class="el" href="include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32">mini_group_select()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8">msearch_post()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934">FKOAuthDataStore\new_access_token()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="session_8php.html#a4c0ead624f95483e386bc80abf570a8f">new_cookie()</a>, <a class="el" href="classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050">FKOAuthDataStore\new_request_token()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="mod_2api_8php.html#a02ae0f60e240dc806b860edb7d582117">oauth_get_client()</a>, <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url()</a>, <a class="el" href="onedirsync_8php.html#a411aedd47c57476099647961e6a86691">onedirsync_run()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="page__widgets_8php.html#ad82011c1ed90d9de8b9f34c12af5c6f0">pagelist_widget()</a>, <a class="el" href="comanche_8php.html#af7150df735e5ff9d467994cd6f769c6e">pdl_selector()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="text_8php.html#aa5528f41533927e1bd2da3618a74a6d7">photo_new_resource()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#a8e8b7be99e24c2497bc2cb3339280c35">photos_album_exists()</a>, <a class="el" href="include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe">photos_album_get_db_idstr()</a>, <a class="el" href="include_2photos_8php.html#ab0365f25b22ccea5f085fe7c49e1f4ab">photos_album_rename()</a>, <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos_albums_list()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="include_2message_8php.html#aed272d77c06a309e2836ac79e75613f1">private_messages_drop()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>, <a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">process_profile_delivery()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="classRedFile.html#a41a49a583eb276b75626fcf97f4a699c">RedFile\put()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="Contact_8php.html#a852fa476f0c70bde10a4f2533aec5f71">random_profile()</a>, <a class="el" href="Contact_8php.html#a2f4f495d53f2a334ab75292af79d3c91">rconnect_url()</a>, <a class="el" href="items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b">red_zrl_callback()</a>, <a class="el" href="reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66">RedChannelList()</a>, <a class="el" href="reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266">RedCollectionData()</a>, <a class="el" href="reddav_8php.html#a9f531641dfb4e43cd88ac1a9ae7e2088">RedFileData()</a>, <a class="el" href="session_8php.html#af230b86bfff7db66c3bdd7e0bbc24052">ref_session_destroy()</a>, <a class="el" href="session_8php.html#ac95373f4966862a028033dd2f94d4da1">ref_session_gc()</a>, <a class="el" href="session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e">ref_session_read()</a>, <a class="el" href="session_8php.html#ac4461c1984543d3553e73dba2771568f">ref_session_write()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="plugin_8php.html#a425472c5f3afc137268b2ad45652b209">register_hook()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025">reload_plugins()</a>, <a class="el" href="identity_8php.html#a47d6f53216f23a3484061793bef29854">remote_online_status()</a>, <a class="el" href="Contact_8php.html#acc12cda999c88c4d6185cca967c15125">remove_all_xchan_resources()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24">remove_queue_item()</a>, <a class="el" href="rmagic_8php.html#a95455edd43f1bff39446a57388cdde16">rmagic_init()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="classphoto__driver.html#a5864fae7d8389372955a8e78cec527ac">photo_driver\save()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="items_8php.html#aab9e0c58247427126de0699c729c3b6c">send_status_notifications()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="classCache.html#ae622b82adc1c2fb1f3e2cc4fd9688fce">Cache\set()</a>, <a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a">set_config()</a>, <a class="el" href="identity_8php.html#a78151baf4407a8482d2681a91a9c486b">set_default_login_identity()</a>, <a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">set_pconfig()</a>, <a class="el" href="include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e">set_xconfig()</a>, <a class="el" href="classRedFile.html#a38a82bfc1b30028ea6ac75923e90fa25">RedFile\setName()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, <a class="el" href="sitelist_8php.html#a665a59bf60f780b40f32c909f4a473b1">sitelist_init()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred_init()</a>, <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver\store()</a>, <a class="el" href="taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd">store_item_tag()</a>, <a class="el" href="security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a15e0f8f511cc06192db63387f97238b3">stream_perms_xchans()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c">suggest_init()</a>, <a class="el" href="socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329">suggestion_query()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="taxonomy_8php.html#aaf90ba8b839d6459065f39a4f1109b8a">tagadelic()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="bbcode_8php.html#a39de4de32a9456d1ca914d0dc52bd322">tryzrlaudio()</a>, <a class="el" href="bbcode_8php.html#aa92f119341f4c69dcef2768a013079b8">tryzrlvideo()</a>, <a class="el" href="plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76">uninstall_plugin()</a>, <a class="el" href="plugin_8php.html#a56f71fe5adf9586ce950523d8180443e">unregister_hook()</a>, <a class="el" href="dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13">update_directory_entry()</a>, <a class="el" href="zot_8php.html#ab319d1d9fff9c7775d9daef42d1f33dd">update_modtime()</a>, <a class="el" href="queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1">update_queue_time()</a>, <a class="el" href="items_8php.html#a2baa9e05f1e8aa3dd61c85803ae39bd6">update_remote_id()</a>, <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">user_deny()</a>, <a class="el" href="classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b">RedBasicAuth\validateUserPass()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="vote_8php.html#a6aa67489bf458ca5e3206e46dac68596">vote_content()</a>, <a class="el" href="vote_8php.html#ae0c6610f40afbbc1f4fe6494c51fbab2">vote_init()</a>, <a class="el" href="vote_8php.html#a57a9516ee1b923b224e66dcc47377fb2">vote_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="widgets_8php.html#a5ab3b64496e02cab56429978ad55f1c0">widget_filer()</a>, <a class="el" href="widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd">widget_follow()</a>, <a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widget_savedsearch()</a>, <a class="el" href="widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01">widget_settings_menu()</a>, <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>, <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">xchan_mail_query()</a>, <a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">xchan_query()</a>, <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>, <a class="el" href="text_8php.html#a324c58f37f6acdf9cd1922aa76077d9f">z_input_filter()</a>, <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>, <a class="el" href="zot_8php.html#a95528377d7303131958c9f0b7158fdce">zot_finger()</a>, <a class="el" href="zot_8php.html#ae7cec2b417b5858fd4a41070f843d1d7">zot_get_hublocs()</a>, <a class="el" href="zot_8php.html#a55056e863a7860bc0cf922e78fcce073">zot_gethub()</a>, <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>, <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot_process_response()</a>, <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
</div>
</div>
diff --git a/doc/html/dir_24b9ffacd044b9b20a6b863179c605d1.html b/doc/html/dir_24b9ffacd044b9b20a6b863179c605d1.html
new file mode 100644
index 000000000..085888ac3
--- /dev/null
+++ b/doc/html/dir_24b9ffacd044b9b20a6b863179c605d1.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/js Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_24b9ffacd044b9b20a6b863179c605d1.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">js Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:mod__filestorage_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod__filestorage_8php.html">mod_filestorage.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dir_24b9ffacd044b9b20a6b863179c605d1.js b/doc/html/dir_24b9ffacd044b9b20a6b863179c605d1.js
new file mode 100644
index 000000000..b46498175
--- /dev/null
+++ b/doc/html/dir_24b9ffacd044b9b20a6b863179c605d1.js
@@ -0,0 +1,4 @@
+var dir_24b9ffacd044b9b20a6b863179c605d1 =
+[
+ [ "mod_filestorage.php", "mod__filestorage_8php.html", null ]
+]; \ No newline at end of file
diff --git a/doc/html/dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.html b/doc/html/dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.html
index 52e50c910..f72ee630b 100644
--- a/doc/html/dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.html
+++ b/doc/html/dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.html
@@ -106,6 +106,8 @@ $(document).ready(function(){initNavTree('dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.h
Files</h2></td></tr>
<tr class="memitem:dark_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dark_8php.html">dark.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:notred_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="notred_8php.html">notred.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.js b/doc/html/dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.js
index 7889bb4f4..b2d60994e 100644
--- a/doc/html/dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.js
+++ b/doc/html/dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.js
@@ -1,4 +1,5 @@
var dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb =
[
- [ "dark.php", "dark_8php.html", null ]
+ [ "dark.php", "dark_8php.html", null ],
+ [ "notred.php", "notred_8php.html", null ]
]; \ No newline at end of file
diff --git a/doc/html/dir_817f6d302394b98e59575acdb59998bc.html b/doc/html/dir_817f6d302394b98e59575acdb59998bc.html
index bd41b7e86..d3e4273ec 100644
--- a/doc/html/dir_817f6d302394b98e59575acdb59998bc.html
+++ b/doc/html/dir_817f6d302394b98e59575acdb59998bc.html
@@ -112,10 +112,6 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:mod__import_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod__import_8php.html">mod_import.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:mod__new__channel_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod__new__channel_8php.html">mod_new_channel.php</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:mod__register_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod__register_8php.html">mod_register.php</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:none_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="none_8php.html">none.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:php_2theme__init_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php_2theme__init_8php.html">theme_init.php</a></td></tr>
diff --git a/doc/html/dir_817f6d302394b98e59575acdb59998bc.js b/doc/html/dir_817f6d302394b98e59575acdb59998bc.js
index cceba4e93..5aad4b24b 100644
--- a/doc/html/dir_817f6d302394b98e59575acdb59998bc.js
+++ b/doc/html/dir_817f6d302394b98e59575acdb59998bc.js
@@ -4,8 +4,6 @@ var dir_817f6d302394b98e59575acdb59998bc =
[ "full.php", "full_8php.html", "full_8php" ],
[ "minimal.php", "minimal_8php.html", null ],
[ "mod_import.php", "mod__import_8php.html", "mod__import_8php" ],
- [ "mod_new_channel.php", "mod__new__channel_8php.html", "mod__new__channel_8php" ],
- [ "mod_register.php", "mod__register_8php.html", "mod__register_8php" ],
[ "none.php", "none_8php.html", null ],
[ "theme_init.php", "php_2theme__init_8php.html", "php_2theme__init_8php" ]
]; \ No newline at end of file
diff --git a/doc/html/dir__fns_8php.html b/doc/html/dir__fns_8php.html
index 5aeb02ea2..bc7ff4367 100644
--- a/doc/html/dir__fns_8php.html
+++ b/doc/html/dir__fns_8php.html
@@ -122,8 +122,8 @@ Functions</h2></td></tr>
<tr class="separator:aa666e7df6ca8c332f4081c9b66b4bdf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44062d4b471d1e83f92f6c184585aa13"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13">update_directory_entry</a> ($ud)</td></tr>
<tr class="separator:a44062d4b471d1e83f92f6c184585aa13"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6cae22cfdd6edda5ddf09e07abb3242a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs</a> ($uid)</td></tr>
-<tr class="separator:a6cae22cfdd6edda5ddf09e07abb3242a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acd37b17dce3bdec6d5a6344a20598c1e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">local_dir_update</a> ($uid, $force)</td></tr>
+<tr class="separator:acd37b17dce3bdec6d5a6344a20598c1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="acf621621e929d49441da30aad76a58cf"></a>
@@ -139,7 +139,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="mod_2directory_8php.html#aa1d928543212871491706216742dd73c">directory_aside()</a>.</p>
+<p>Referenced by <a class="el" href="widgets_8php.html#a268b01ce1ab8fe2cb346cb769b9d1091">widget_dirsafemode()</a>.</p>
</div>
</div>
@@ -156,7 +156,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="mod_2directory_8php.html#aa1d928543212871491706216742dd73c">directory_aside()</a>.</p>
+<p>Referenced by <a class="el" href="widgets_8php.html#a95c06bc9be133e89768746302d2ac395">widget_dirsort()</a>.</p>
</div>
</div>
@@ -174,43 +174,54 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="pubsites_8php.html#af614e279aab54065345bda6b03eafdf0">pubsites_content()</a>, and <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>.</p>
+<p>Referenced by <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="pubsites_8php.html#af614e279aab54065345bda6b03eafdf0">pubsites_content()</a>, and <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>.</p>
</div>
</div>
-<a class="anchor" id="aa666e7df6ca8c332f4081c9b66b4bdf6"></a>
+<a class="anchor" id="acd37b17dce3bdec6d5a6344a20598c1e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">sync_directories </td>
+ <td class="memname">local_dir_update </td>
<td>(</td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$dirmode</em></td><td>)</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$force</em>&#160;</td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
+<p>local_dir_update($uid,$force) push local channel updates to a local directory server </p>
-<p>Referenced by <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
+<p>Referenced by <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>.</p>
</div>
</div>
-<a class="anchor" id="a6cae22cfdd6edda5ddf09e07abb3242a"></a>
+<a class="anchor" id="aa666e7df6ca8c332f4081c9b66b4bdf6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">syncdirs </td>
+ <td class="memname">sync_directories </td>
<td>(</td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$uid</em></td><td>)</td>
+ <td class="paramname"><em>$dirmode</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>.</p>
+<p>Referenced by <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
</div>
</div>
diff --git a/doc/html/dir__fns_8php.js b/doc/html/dir__fns_8php.js
index 5531700f4..9c745ff6f 100644
--- a/doc/html/dir__fns_8php.js
+++ b/doc/html/dir__fns_8php.js
@@ -3,7 +3,7 @@ var dir__fns_8php =
[ "dir_safe_mode", "dir__fns_8php.html#acf621621e929d49441da30aad76a58cf", null ],
[ "dir_sort_links", "dir__fns_8php.html#ae56881d69bb6f8e828c9e35454386774", null ],
[ "find_upstream_directory", "dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d", null ],
+ [ "local_dir_update", "dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e", null ],
[ "sync_directories", "dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6", null ],
- [ "syncdirs", "dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a", null ],
[ "update_directory_entry", "dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13", null ]
]; \ No newline at end of file
diff --git a/doc/html/dir_b2f003339c516cc00c8cadcafbe82f13.html b/doc/html/dir_b2f003339c516cc00c8cadcafbe82f13.html
index 4aa042ef0..c4fb93560 100644
--- a/doc/html/dir_b2f003339c516cc00c8cadcafbe82f13.html
+++ b/doc/html/dir_b2f003339c516cc00c8cadcafbe82f13.html
@@ -104,6 +104,8 @@ $(document).ready(function(){initNavTree('dir_b2f003339c516cc00c8cadcafbe82f13.h
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
Directories</h2></td></tr>
+<tr class="memitem:dir_24b9ffacd044b9b20a6b863179c605d1"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_24b9ffacd044b9b20a6b863179c605d1.html">js</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:dir_817f6d302394b98e59575acdb59998bc"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_817f6d302394b98e59575acdb59998bc.html">php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:dir_8543001e5d25368a6edede3e63efb554"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_8543001e5d25368a6edede3e63efb554.html">theme</a></td></tr>
diff --git a/doc/html/dir_b2f003339c516cc00c8cadcafbe82f13.js b/doc/html/dir_b2f003339c516cc00c8cadcafbe82f13.js
index 991623ea4..9ce51a6ef 100644
--- a/doc/html/dir_b2f003339c516cc00c8cadcafbe82f13.js
+++ b/doc/html/dir_b2f003339c516cc00c8cadcafbe82f13.js
@@ -1,5 +1,6 @@
var dir_b2f003339c516cc00c8cadcafbe82f13 =
[
+ [ "js", "dir_24b9ffacd044b9b20a6b863179c605d1.html", "dir_24b9ffacd044b9b20a6b863179c605d1" ],
[ "php", "dir_817f6d302394b98e59575acdb59998bc.html", "dir_817f6d302394b98e59575acdb59998bc" ],
[ "theme", "dir_8543001e5d25368a6edede3e63efb554.html", "dir_8543001e5d25368a6edede3e63efb554" ]
]; \ No newline at end of file
diff --git a/doc/html/dir_d41ce877eb409a4791b288730010abe2.html b/doc/html/dir_d41ce877eb409a4791b288730010abe2.html
index 6360d6c4d..bbf142733 100644
--- a/doc/html/dir_d41ce877eb409a4791b288730010abe2.html
+++ b/doc/html/dir_d41ce877eb409a4791b288730010abe2.html
@@ -106,12 +106,12 @@ $(document).ready(function(){initNavTree('dir_d41ce877eb409a4791b288730010abe2.h
Files</h2></td></tr>
<tr class="memitem:__well__known_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="__well__known_8php.html">_well_known.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:achievements_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="achievements_8php.html">achievements.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acl_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="acl_8php.html">acl.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:admin_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="admin_8php.html">admin.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:allfriends_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="allfriends_8php.html">allfriends.php</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:mod_2api_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2api_8php.html">api.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:apps_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="apps_8php.html">apps.php</a></td></tr>
@@ -120,12 +120,18 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:blocks_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="blocks_8php.html">blocks.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:mod_2bookmarks_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2bookmarks_8php.html">bookmarks.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:mod_2chanman_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2chanman_8php.html">chanman.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:channel_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="channel_8php.html">channel.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:chanview_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="chanview_8php.html">chanview.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:mod_2chat_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2chat_8php.html">chat.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:chatsvc_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="chatsvc_8php.html">chatsvc.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:cloud_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cloud_8php.html">cloud.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:common_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="common_8php.html">common.php</a></td></tr>
@@ -136,14 +142,16 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:connections_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="connections_8php.html">connections.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:contactgroup_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="contactgroup_8php.html">contactgroup.php</a></td></tr>
+<tr class="memitem:connedit_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="connedit_8php.html">connedit.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:crepair_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="crepair_8php.html">crepair.php</a></td></tr>
+<tr class="memitem:contactgroup_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="contactgroup_8php.html">contactgroup.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:delegate_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="delegate_8php.html">delegate.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:mod_2directory_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2directory_8php.html">directory.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dirprofile_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dirprofile_8php.html">dirprofile.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:dirsearch_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dirsearch_8php.html">dirsearch.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:display_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="display_8php.html">display.php</a></td></tr>
@@ -174,8 +182,6 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:mod_2group_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2group_8php.html">group.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:hcard_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hcard_8php.html">hcard.php</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:help_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="help_8php.html">help.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:home_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="home_8php.html">home.php</a></td></tr>
@@ -184,14 +190,10 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:import_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="import_8php.html">import.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:intro_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="intro_8php.html">intro.php</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:invite_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="invite_8php.html">invite.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:item_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="item_8php.html">item.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:lastpost_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lastpost_8php.html">lastpost.php</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:layouts_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="layouts_8php.html">layouts.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:like_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="like_8php.html">like.php</a></td></tr>
@@ -204,6 +206,8 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:magic_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="magic_8php.html">magic.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:mail_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mail_8php.html">mail.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:manage_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="manage_8php.html">manage.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:match_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="match_8php.html">match.php</a></td></tr>
@@ -222,6 +226,8 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:new__channel_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="new__channel_8php.html">new_channel.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:notes_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="notes_8php.html">notes.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:notifications_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="notifications_8php.html">notifications.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:mod_2notify_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2notify_8php.html">notify.php</a></td></tr>
@@ -230,6 +236,10 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:oexchange_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="oexchange_8php.html">oexchange.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:online_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="online_8php.html">online.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:openid_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="openid_8php.html">openid.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:opensearch_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="opensearch_8php.html">opensearch.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:page_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="page_8php.html">page.php</a></td></tr>
@@ -264,12 +274,8 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:pubsites_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pubsites_8php.html">pubsites.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:qsearch_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qsearch_8php.html">qsearch.php</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:randprof_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="randprof_8php.html">randprof.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:redir_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redir_8php.html">redir.php</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:register_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="register_8php.html">register.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:regmod_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="regmod_8php.html">regmod.php</a></td></tr>
@@ -300,6 +306,8 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:sources_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sources_8php.html">sources.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:sslify_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sslify_8php.html">sslify.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:starred_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="starred_8php.html">starred.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:subthread_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="subthread_8php.html">subthread.php</a></td></tr>
@@ -350,6 +358,8 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:xrd_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xrd_8php.html">xrd.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:xref_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xref_8php.html">xref.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:zfinger_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zfinger_8php.html">zfinger.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:zotfeed_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zotfeed_8php.html">zotfeed.php</a></td></tr>
diff --git a/doc/html/dir_d41ce877eb409a4791b288730010abe2.js b/doc/html/dir_d41ce877eb409a4791b288730010abe2.js
index 25d9c4366..1fd7d42d1 100644
--- a/doc/html/dir_d41ce877eb409a4791b288730010abe2.js
+++ b/doc/html/dir_d41ce877eb409a4791b288730010abe2.js
@@ -1,25 +1,29 @@
var dir_d41ce877eb409a4791b288730010abe2 =
[
[ "_well_known.php", "__well__known_8php.html", "__well__known_8php" ],
+ [ "achievements.php", "achievements_8php.html", "achievements_8php" ],
[ "acl.php", "acl_8php.html", "acl_8php" ],
[ "admin.php", "admin_8php.html", "admin_8php" ],
- [ "allfriends.php", "allfriends_8php.html", "allfriends_8php" ],
[ "api.php", "mod_2api_8php.html", "mod_2api_8php" ],
[ "apps.php", "apps_8php.html", "apps_8php" ],
[ "attach.php", "mod_2attach_8php.html", "mod_2attach_8php" ],
[ "blocks.php", "blocks_8php.html", "blocks_8php" ],
+ [ "bookmarks.php", "mod_2bookmarks_8php.html", "mod_2bookmarks_8php" ],
[ "chanman.php", "mod_2chanman_8php.html", null ],
[ "channel.php", "channel_8php.html", "channel_8php" ],
[ "chanview.php", "chanview_8php.html", "chanview_8php" ],
+ [ "chat.php", "mod_2chat_8php.html", "mod_2chat_8php" ],
+ [ "chatsvc.php", "chatsvc_8php.html", "chatsvc_8php" ],
[ "cloud.php", "cloud_8php.html", "cloud_8php" ],
[ "common.php", "common_8php.html", "common_8php" ],
[ "community.php", "community_8php.html", "community_8php" ],
[ "connect.php", "connect_8php.html", "connect_8php" ],
[ "connections.php", "connections_8php.html", "connections_8php" ],
+ [ "connedit.php", "connedit_8php.html", "connedit_8php" ],
[ "contactgroup.php", "contactgroup_8php.html", "contactgroup_8php" ],
- [ "crepair.php", "crepair_8php.html", "crepair_8php" ],
[ "delegate.php", "delegate_8php.html", "delegate_8php" ],
[ "directory.php", "mod_2directory_8php.html", "mod_2directory_8php" ],
+ [ "dirprofile.php", "dirprofile_8php.html", "dirprofile_8php" ],
[ "dirsearch.php", "dirsearch_8php.html", "dirsearch_8php" ],
[ "display.php", "display_8php.html", "display_8php" ],
[ "editblock.php", "editblock_8php.html", "editblock_8php" ],
@@ -35,21 +39,19 @@ var dir_d41ce877eb409a4791b288730010abe2 =
[ "follow.php", "mod_2follow_8php.html", "mod_2follow_8php" ],
[ "fsuggest.php", "fsuggest_8php.html", "fsuggest_8php" ],
[ "group.php", "mod_2group_8php.html", "mod_2group_8php" ],
- [ "hcard.php", "hcard_8php.html", "hcard_8php" ],
[ "help.php", "help_8php.html", "help_8php" ],
- [ "home.php", "home_8php.html", null ],
+ [ "home.php", "home_8php.html", "home_8php" ],
[ "hostxrd.php", "hostxrd_8php.html", "hostxrd_8php" ],
[ "import.php", "import_8php.html", "import_8php" ],
- [ "intro.php", "intro_8php.html", "intro_8php" ],
[ "invite.php", "invite_8php.html", "invite_8php" ],
[ "item.php", "item_8php.html", "item_8php" ],
- [ "lastpost.php", "lastpost_8php.html", "lastpost_8php" ],
[ "layouts.php", "layouts_8php.html", "layouts_8php" ],
[ "like.php", "like_8php.html", "like_8php" ],
[ "lockview.php", "lockview_8php.html", "lockview_8php" ],
[ "login.php", "login_8php.html", "login_8php" ],
[ "lostpass.php", "lostpass_8php.html", "lostpass_8php" ],
[ "magic.php", "magic_8php.html", "magic_8php" ],
+ [ "mail.php", "mail_8php.html", "mail_8php" ],
[ "manage.php", "manage_8php.html", "manage_8php" ],
[ "match.php", "match_8php.html", "match_8php" ],
[ "menu.php", "mod_2menu_8php.html", "mod_2menu_8php" ],
@@ -59,10 +61,13 @@ var dir_d41ce877eb409a4791b288730010abe2 =
[ "msearch.php", "msearch_8php.html", "msearch_8php" ],
[ "network.php", "mod_2network_8php.html", "mod_2network_8php" ],
[ "new_channel.php", "new__channel_8php.html", "new__channel_8php" ],
+ [ "notes.php", "notes_8php.html", "notes_8php" ],
[ "notifications.php", "notifications_8php.html", "notifications_8php" ],
[ "notify.php", "mod_2notify_8php.html", "mod_2notify_8php" ],
[ "oembed.php", "mod_2oembed_8php.html", "mod_2oembed_8php" ],
[ "oexchange.php", "oexchange_8php.html", "oexchange_8php" ],
+ [ "online.php", "online_8php.html", "online_8php" ],
+ [ "openid.php", "openid_8php.html", "openid_8php" ],
[ "opensearch.php", "opensearch_8php.html", "opensearch_8php" ],
[ "page.php", "page_8php.html", "page_8php" ],
[ "parse_url.php", "parse__url_8php.html", "parse__url_8php" ],
@@ -80,9 +85,7 @@ var dir_d41ce877eb409a4791b288730010abe2 =
[ "profiles.php", "profiles_8php.html", "profiles_8php" ],
[ "profperm.php", "profperm_8php.html", "profperm_8php" ],
[ "pubsites.php", "pubsites_8php.html", "pubsites_8php" ],
- [ "qsearch.php", "qsearch_8php.html", "qsearch_8php" ],
[ "randprof.php", "randprof_8php.html", "randprof_8php" ],
- [ "redir.php", "redir_8php.html", "redir_8php" ],
[ "register.php", "register_8php.html", "register_8php" ],
[ "regmod.php", "regmod_8php.html", "regmod_8php" ],
[ "removeme.php", "removeme_8php.html", "removeme_8php" ],
@@ -98,6 +101,7 @@ var dir_d41ce877eb409a4791b288730010abe2 =
[ "sitelist.php", "sitelist_8php.html", "sitelist_8php" ],
[ "smilies.php", "smilies_8php.html", "smilies_8php" ],
[ "sources.php", "sources_8php.html", "sources_8php" ],
+ [ "sslify.php", "sslify_8php.html", "sslify_8php" ],
[ "starred.php", "starred_8php.html", "starred_8php" ],
[ "subthread.php", "subthread_8php.html", "subthread_8php" ],
[ "suggest.php", "suggest_8php.html", "suggest_8php" ],
@@ -123,6 +127,7 @@ var dir_d41ce877eb409a4791b288730010abe2 =
[ "wfinger.php", "wfinger_8php.html", "wfinger_8php" ],
[ "xchan.php", "xchan_8php.html", "xchan_8php" ],
[ "xrd.php", "xrd_8php.html", "xrd_8php" ],
+ [ "xref.php", "xref_8php.html", "xref_8php" ],
[ "zfinger.php", "zfinger_8php.html", "zfinger_8php" ],
[ "zotfeed.php", "zotfeed_8php.html", "zotfeed_8php" ],
[ "zping.php", "zping_8php.html", "zping_8php" ]
diff --git a/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html b/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html
index 1f931673f..9e31544c7 100644
--- a/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html
+++ b/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html
@@ -120,6 +120,7 @@ Files</h2></td></tr>
<tr class="memitem:include_2api_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2api_8php.html">api.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:include_2attach_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html">attach.php</a></td></tr>
+<tr class="memdesc:include_2attach_8php"><td class="mdescLeft">&#160;</td><td class="mdescRight">File/attach API with the potential for revision control. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:auth_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="auth_8php.html">auth.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -129,10 +130,14 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:bbcode_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bbcode_8php.html">bbcode.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:include_2bookmarks_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2bookmarks_8php.html">bookmarks.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:cache_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cache_8php.html">cache.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:include_2chanman_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2chanman_8php.html">chanman.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:include_2chat_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2chat_8php.html">chat.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:cli__startup_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cli__startup_8php.html">cli_startup.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:cli__suggest_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cli__suggest_8php.html">cli_suggest.php</a></td></tr>
@@ -192,6 +197,7 @@ Files</h2></td></tr>
<tr class="memitem:items_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html">items.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:language_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="language_8php.html">language.php</a></td></tr>
+<tr class="memdesc:language_8php"><td class="mdescLeft">&#160;</td><td class="mdescRight">translation support <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:include_2menu_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2menu_8php.html">menu.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -239,6 +245,8 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:socgraph_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socgraph_8php.html">socgraph.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:spam_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spam_8php.html">spam.php</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:system__unavailable_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="system__unavailable_8php.html">system_unavailable.php</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:taxonomy_8php"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html">taxonomy.php</a></td></tr>
diff --git a/doc/html/dir_d44c64559bbebec7f509842c48db8b23.js b/doc/html/dir_d44c64559bbebec7f509842c48db8b23.js
index fdcafcad3..02d7747fe 100644
--- a/doc/html/dir_d44c64559bbebec7f509842c48db8b23.js
+++ b/doc/html/dir_d44c64559bbebec7f509842c48db8b23.js
@@ -13,10 +13,12 @@ var dir_d44c64559bbebec7f509842c48db8b23 =
] ],
[ "bb2diaspora.php", "bb2diaspora_8php.html", "bb2diaspora_8php" ],
[ "bbcode.php", "bbcode_8php.html", "bbcode_8php" ],
+ [ "bookmarks.php", "include_2bookmarks_8php.html", "include_2bookmarks_8php" ],
[ "cache.php", "cache_8php.html", [
[ "Cache", "classCache.html", null ]
] ],
[ "chanman.php", "include_2chanman_8php.html", "include_2chanman_8php" ],
+ [ "chat.php", "include_2chat_8php.html", "include_2chat_8php" ],
[ "cli_startup.php", "cli__startup_8php.html", "cli__startup_8php" ],
[ "cli_suggest.php", "cli__suggest_8php.html", "cli__suggest_8php" ],
[ "comanche.php", "comanche_8php.html", "comanche_8php" ],
@@ -78,14 +80,11 @@ var dir_d44c64559bbebec7f509842c48db8b23 =
] ],
[ "queue.php", "queue_8php.html", "queue_8php" ],
[ "queue_fn.php", "queue__fn_8php.html", "queue__fn_8php" ],
- [ "reddav.php", "reddav_8php.html", [
- [ "RedInode", "classRedInode.html", "classRedInode" ],
- [ "RedDirectory", "classRedDirectory.html", "classRedDirectory" ],
- [ "RedFile", "classRedFile.html", "classRedFile" ]
- ] ],
+ [ "reddav.php", "reddav_8php.html", "reddav_8php" ],
[ "security.php", "security_8php.html", "security_8php" ],
[ "session.php", "session_8php.html", "session_8php" ],
[ "socgraph.php", "socgraph_8php.html", "socgraph_8php" ],
+ [ "spam.php", "spam_8php.html", "spam_8php" ],
[ "system_unavailable.php", "system__unavailable_8php.html", "system__unavailable_8php" ],
[ "taxonomy.php", "taxonomy_8php.html", "taxonomy_8php" ],
[ "template_processor.php", "template__processor_8php.html", "template__processor_8php" ],
diff --git a/doc/html/dirprofile_8php.html b/doc/html/dirprofile_8php.html
new file mode 100644
index 000000000..94bcb7aad
--- /dev/null
+++ b/doc/html/dirprofile_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/dirprofile.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dirprofile_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">dirprofile.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a3e1d30d3d93863ff5615f2df4ac7f052"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a3e1d30d3d93863ff5615f2df4ac7f052"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a3e1d30d3d93863ff5615f2df4ac7f052"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">dirprofile_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/dirprofile_8php.js b/doc/html/dirprofile_8php.js
new file mode 100644
index 000000000..45cc06441
--- /dev/null
+++ b/doc/html/dirprofile_8php.js
@@ -0,0 +1,4 @@
+var dirprofile_8php =
+[
+ [ "dirprofile_init", "dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052", null ]
+]; \ No newline at end of file
diff --git a/doc/html/docblox__errorchecker_8php.html b/doc/html/docblox__errorchecker_8php.html
index b17226b25..28091a557 100644
--- a/doc/html/docblox__errorchecker_8php.html
+++ b/doc/html/docblox__errorchecker_8php.html
@@ -134,7 +134,7 @@ Variables</h2></td></tr>
<tr class="separator:ab66bc0493d25f39bf8b4dcbb429f04e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a648a570b0f9f6e0e51b7267647c4b09b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="docblox__errorchecker_8php.html#a648a570b0f9f6e0e51b7267647c4b09b">$filelist</a> =array()</td></tr>
<tr class="separator:a648a570b0f9f6e0e51b7267647c4b09b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a49a8a4009b02e49717caa88b128affc5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="docblox__errorchecker_8php.html#af4ca738a05beffe9c8c23e1f7aea3c2d">while</a>($dh=opendir($dir)) <a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(<a class="el" href="docblox__errorchecker_8php.html#a21b4bbe5aae2d85db33affc7126a67ec">runs</a>($filelist))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="docblox__errorchecker_8php.html#a49a8a4009b02e49717caa88b128affc5">$res</a> =$filelist</td></tr>
+<tr class="memitem:a49a8a4009b02e49717caa88b128affc5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="docblox__errorchecker_8php.html#af4ca738a05beffe9c8c23e1f7aea3c2d">while</a>($dh=opendir($dir)) <a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(<a class="el" href="docblox__errorchecker_8php.html#a21b4bbe5aae2d85db33affc7126a67ec">runs</a>($filelist))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="docblox__errorchecker_8php.html#a49a8a4009b02e49717caa88b128affc5">$res</a> =$filelist</td></tr>
<tr class="separator:a49a8a4009b02e49717caa88b128affc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83018d9153d17d91fbcf3bc10158d34f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="docblox__errorchecker_8php.html#a83018d9153d17d91fbcf3bc10158d34f">$i</a> =0</td></tr>
<tr class="separator:a83018d9153d17d91fbcf3bc10158d34f"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -253,7 +253,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>, <a class="el" href="crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914">aes_unencapsulate()</a>, <a class="el" href="text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85">alt_pager()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="bb2diaspora_8php.html#a4c2f8f11b29a06809d9b07782215b1b2">get_bb_tag_pos()</a>, <a class="el" href="text_8php.html#a1557112a774ec00fa06ed6b6f6495506">is_a_date_arg()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533">item_redir_and_replace_images()</a>, <a class="el" href="text_8php.html#ae17b39d5e321debd3ad16dcbbde842b8">jindent()</a>, <a class="el" href="setup_8php.html#a2b375ddc555140236fc500135de99371">load_database_rem()</a>, <a class="el" href="html2bbcode_8php.html#a39c662b19d318990fee2ba795a55d7a7">node2bbcodesub()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="text_8php.html#afe9f178d264d44a94dc1292aaf0fd585">paginate()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025">reload_plugins()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>.</p>
+<p>Referenced by <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>, <a class="el" href="crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914">aes_unencapsulate()</a>, <a class="el" href="text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85">alt_pager()</a>, <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="bb2diaspora_8php.html#a4c2f8f11b29a06809d9b07782215b1b2">get_bb_tag_pos()</a>, <a class="el" href="text_8php.html#a1557112a774ec00fa06ed6b6f6495506">is_a_date_arg()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533">item_redir_and_replace_images()</a>, <a class="el" href="text_8php.html#ae17b39d5e321debd3ad16dcbbde842b8">jindent()</a>, <a class="el" href="setup_8php.html#a2b375ddc555140236fc500135de99371">load_database_rem()</a>, <a class="el" href="html2bbcode_8php.html#a39c662b19d318990fee2ba795a55d7a7">node2bbcodesub()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="text_8php.html#afe9f178d264d44a94dc1292aaf0fd585">paginate()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025">reload_plugins()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>.</p>
</div>
</div>
diff --git a/doc/html/extract_8php.html b/doc/html/extract_8php.html
index 0958db030..2a5b6ba5b 100644
--- a/doc/html/extract_8php.html
+++ b/doc/html/extract_8php.html
@@ -132,7 +132,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#a36e656667193c83aa2cc03a024fc131b">activity_sanitise()</a>, <a class="el" href="include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f">api_rss_extra()</a>, <a class="el" href="items_8php.html#abf7a1b73eb352d79acd36309b0dababd">array_sanitise()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f">check_account_admin()</a>, <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="account_8php.html#a144b4891022567668375b58ea61cfff0">check_account_password()</a>, <a class="el" href="permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7">check_list_permissions()</a>, <a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">check_webbie()</a>, <a class="el" href="connect_8php.html#a489f0a66c660de6ec4d6917b27674f07">connect_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="dba__driver_8php.html#a65b83462bd26968106aebd43f16540e4">dbesc_array()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled()</a>, <a class="el" href="text_8php.html#ace3c98538c63e09b70a363210b414112">find_xchan_in_array()</a>, <a class="el" href="conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3">format_like()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c">get_features()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">get_mail_elements()</a>, <a class="el" href="text_8php.html#a736db13a966b8abaf8c9198faa35911a">get_mood_verbs()</a>, <a class="el" href="text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66">get_poke_verbs()</a>, <a class="el" href="items_8php.html#a251343637ff40a50cca93452cd530c26">get_profile_elements()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="taxonomy_8php.html#a0fb8cf0ac7bcbc8b27d856fe9bf69cd1">get_terms_oftype()</a>, <a class="el" href="classApp.html#a871898becd0697d778f36d9336253ae8">App\get_widgets()</a>, <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">group_select()</a>, <a class="el" href="text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a">ids_to_querystr()</a>, <a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">import_author_xchan()</a>, <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="items_8php.html#a09d425596b9f8663472cf7474ad36d96">item_getfeedattach()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</a>, <a class="el" href="setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a">load_database()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8">menu_add_item()</a>, <a class="el" href="include_2menu_8php.html#a08a800821721781a8dfffbe31481ff98">menu_create()</a>, <a class="el" href="include_2menu_8php.html#a6a33c6a3db2a7510b16cc656edaec571">menu_edit()</a>, <a class="el" href="include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa">menu_edit_item()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce">obj_verbs()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="comanche_8php.html#af7150df735e5ff9d467994cd6f769c6e">pdl_selector()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe">photos_album_get_db_idstr()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="po2php_8php.html#a3b75e36f913198299e99559b175cd8b4">po2php_run()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>, <a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">process_profile_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793">redbasic_form()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09">replace_macros()</a>, <a class="el" href="classphoto__driver.html#a5864fae7d8389372955a8e78cec527ac">photo_driver\save()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="classApp.html#abea5a4f77dcd53c928dc4eed86616637">App\set_apps()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="event_8php.html#a018ea4484910a873a7c1eaa126de9b1a">sort_by_date()</a>, <a class="el" href="text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13">stringify_array_elms()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53">theme_attachments()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="identity_8php.html#af2802bc13a00a17b867bba7978ba8f58">validate_channelname()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">xchan_mail_query()</a>, <a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">xchan_query()</a>, <a class="el" href="include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff">xml2array()</a>, <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="identity_8php.html#a5b815330f3d177ab383af37a6c12e532">zid()</a>, <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, <a class="el" href="zot_8php.html#a55056e863a7860bc0cf922e78fcce073">zot_gethub()</a>, <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>, <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot_process_response()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a36e656667193c83aa2cc03a024fc131b">activity_sanitise()</a>, <a class="el" href="include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f">api_rss_extra()</a>, <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, <a class="el" href="items_8php.html#abf7a1b73eb352d79acd36309b0dababd">array_sanitise()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="include_2bookmarks_8php.html#a88ce7dee6a3dc7465aa9b8eaa45b0087">bookmark_add()</a>, <a class="el" href="mod_2chat_8php.html#a999d594745597c656c9760253ae297ad">chat_post()</a>, <a class="el" href="include_2chat_8php.html#acdc80dba4eb796c7472b21129b435422">chatroom_create()</a>, <a class="el" href="include_2chat_8php.html#a2ba3af6884ecdce95de69262fe599639">chatroom_destroy()</a>, <a class="el" href="account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f">check_account_admin()</a>, <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="account_8php.html#a144b4891022567668375b58ea61cfff0">check_account_password()</a>, <a class="el" href="permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7">check_list_permissions()</a>, <a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">check_webbie()</a>, <a class="el" href="connect_8php.html#a489f0a66c660de6ec4d6917b27674f07">connect_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="dba__driver_8php.html#a65b83462bd26968106aebd43f16540e4">dbesc_array()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled()</a>, <a class="el" href="text_8php.html#ace3c98538c63e09b70a363210b414112">find_xchan_in_array()</a>, <a class="el" href="conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3">format_like()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="include_2attach_8php.html#a6aa00ea010ea030110faefb75eafc1ce">get_cloudpath()</a>, <a class="el" href="features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c">get_features()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">get_mail_elements()</a>, <a class="el" href="text_8php.html#a736db13a966b8abaf8c9198faa35911a">get_mood_verbs()</a>, <a class="el" href="text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66">get_poke_verbs()</a>, <a class="el" href="items_8php.html#a251343637ff40a50cca93452cd530c26">get_profile_elements()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="taxonomy_8php.html#a0fb8cf0ac7bcbc8b27d856fe9bf69cd1">get_terms_oftype()</a>, <a class="el" href="classApp.html#a871898becd0697d778f36d9336253ae8">App\get_widgets()</a>, <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">group_select()</a>, <a class="el" href="text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a">ids_to_querystr()</a>, <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">import_author_rss()</a>, <a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">import_author_xchan()</a>, <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="items_8php.html#a09d425596b9f8663472cf7474ad36d96">item_getfeedattach()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</a>, <a class="el" href="setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a">load_database()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8">menu_add_item()</a>, <a class="el" href="include_2menu_8php.html#a08a800821721781a8dfffbe31481ff98">menu_create()</a>, <a class="el" href="include_2menu_8php.html#a6a33c6a3db2a7510b16cc656edaec571">menu_edit()</a>, <a class="el" href="include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa">menu_edit_item()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce">obj_verbs()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="comanche_8php.html#af7150df735e5ff9d467994cd6f769c6e">pdl_selector()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe">photos_album_get_db_idstr()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="po2php_8php.html#a3b75e36f913198299e99559b175cd8b4">po2php_run()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>, <a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">process_profile_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793">redbasic_form()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09">replace_macros()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="classphoto__driver.html#a5864fae7d8389372955a8e78cec527ac">photo_driver\save()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="classApp.html#abea5a4f77dcd53c928dc4eed86616637">App\set_apps()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="event_8php.html#a018ea4484910a873a7c1eaa126de9b1a">sort_by_date()</a>, <a class="el" href="text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13">stringify_array_elms()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53">theme_attachments()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="identity_8php.html#af2802bc13a00a17b867bba7978ba8f58">validate_channelname()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="widgets_8php.html#add9b24d3304e529a7975e96122315554">widget_affinity()</a>, <a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widget_archive()</a>, <a class="el" href="widgets_8php.html#a0d404276fedc59f5038cf5c085028326">widget_suggestions()</a>, <a class="el" href="widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653">widget_tagcloud_wall()</a>, <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">xchan_mail_query()</a>, <a class="el" href="text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f">xchan_query()</a>, <a class="el" href="include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff">xml2array()</a>, <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="identity_8php.html#a5b815330f3d177ab383af37a6c12e532">zid()</a>, <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, <a class="el" href="zot_8php.html#a55056e863a7860bc0cf922e78fcce073">zot_gethub()</a>, <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>, <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot_process_response()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
</div>
</div>
@@ -146,7 +146,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, and <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793">redbasic_form()</a>.</p>
+<p>Referenced by <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">RedBrowser\generateDirectoryIndex()</a>, and <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793">redbasic_form()</a>.</p>
</div>
</div>
@@ -160,7 +160,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classTemplate.html#ac41c96e1f407b1a910029e5f4b7de8e4">Template\_build_nodes()</a>, <a class="el" href="classTemplate.html#aa6f9bd7a8f7512efcf90e8d376fe05ee">Template\_replcb_node()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="text_8php.html#a95fd2f8f23a1948414a03ebc963bac57">attribute_contains()</a>, <a class="el" href="text_8php.html#a13286f8a95d2de6b102966ecc270c8d6">base64url_decode()</a>, <a class="el" href="text_8php.html#a070384ec000fd65043fce11d5392d241">base64url_encode()</a>, <a class="el" href="bb2diaspora_8php.html#ad0abe1a7ee50aa0736a233df0a422eba">bb_tag_preg_replace()</a>, <a class="el" href="text_8php.html#a3d2793d66db3345fd290b71e2eadf98e">bb_translate_video()</a>, <a class="el" href="event_8php.html#a180cccd63c2a2f00ff432b03113531f3">bbtoevent()</a>, <a class="el" href="event_8php.html#a184d6b9690e5b6dee35a0aa9edd47279">bbtovcal()</a>, <a class="el" href="text_8php.html#a55ab893be57feda59c2a7ba1e58ff2d0">chanlink_hash()</a>, <a class="el" href="text_8php.html#a2e8d6c402603be3a1256a16605e09c2a">chanlink_url()</a>, <a class="el" href="comanche_8php.html#a1a208fdb40dd83d6298caec4290ee922">comanche_parser()</a>, <a class="el" href="comanche_8php.html#a5718daeda40bf835345fe061e8808cdf">comanche_region()</a>, <a class="el" href="comanche_8php.html#ae9fe1ce574db3dd0931eada80234f82a">comanche_webpage()</a>, <a class="el" href="datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226">datetime_convert()</a>, <a class="el" href="text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63">day_translate()</a>, <a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">detect_language()</a>, <a class="el" href="bb2diaspora_8php.html#a26c09c218413610e62e60754c579f6c6">diaspora2bb()</a>, <a class="el" href="bb2diaspora_8php.html#a8b96bd45884fa1c40b942939354197d4">diaspora_ol()</a>, <a class="el" href="bb2diaspora_8php.html#adc92ccda5f85ed27e64fcc17712c89cc">diaspora_ul()</a>, <a class="el" href="text_8php.html#ae4282a39492caa23ccbc2ce98e54f110">expand_acl()</a>, <a class="el" href="taxonomy_8php.html#a08df5164926d2b31b8e9fcfe919de2b6">file_tag_decode()</a>, <a class="el" href="taxonomy_8php.html#a3299482ac20e9d79453048dd52881d37">file_tag_encode()</a>, <a class="el" href="taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1">file_tag_file_query()</a>, <a class="el" href="text_8php.html#afdc69fe3f6c09e35e46304dcea63ae28">fix_mce_lf()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">format_categories()</a>, <a class="el" href="text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91">format_filer()</a>, <a class="el" href="taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1">format_term_for_display()</a>, <a class="el" href="bb2diaspora_8php.html#a4c2f8f11b29a06809d9b07782215b1b2">get_bb_tag_pos()</a>, <a class="el" href="plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295">get_intltext_template()</a>, <a class="el" href="plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4">get_markup_template()</a>, <a class="el" href="text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623">get_tags()</a>, <a class="el" href="text_8php.html#a138a3a611fa7f4f3630674145fc826bf">html2bb_video()</a>, <a class="el" href="boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498">info()</a>, <a class="el" href="text_8php.html#a1557112a774ec00fa06ed6b6f6495506">is_a_date_arg()</a>, <a class="el" href="text_8php.html#a0271381208acfa2d4cff36da281e3e23">json_decode_plus()</a>, <a class="el" href="text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728">legal_webbie()</a>, <a class="el" href="text_8php.html#a11255c8c4e5245b6c24f97684826aa54">linkify()</a>, <a class="el" href="text_8php.html#a1e510c53624933ce9b7d6715784894db">magic_link()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>, <a class="el" href="text_8php.html#adba17ec946f4285285dc100f7860bf51">normalise_openid()</a>, <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">notice()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed_iframe()</a>, <a class="el" href="include_2oembed_8php.html#a00c4c80deffd9daf8dc97b58d4c64ed0">oembed_replacecb()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6">parse_xml_string()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="tpldebug_8php.html#a44778457a6c02554812fbfad19d32ba3">print_template()</a>, <a class="el" href="dba__driver_8php.html#a55bf30d8176967e682656b5be4ad9249">printable()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="text_8php.html#a4e7698aca48982512594b274543c3b9b">protect_sprintf()</a>, <a class="el" href="text_8php.html#a4841df5beabdd1bdd1ed56781a915d61">purify_html()</a>, <a class="el" href="text_8php.html#afc998d2796a6b2a08e96f7cc061e7221">qp()</a>, <a class="el" href="text_8php.html#a9d6a5ee1290de7a8b483fe78585daade">random_string()</a>, <a class="el" href="classTemplate.html#a285b5b2007dbbf733476273df3fed4ef">Template\replace()</a>, <a class="el" href="text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09">replace_macros()</a>, <a class="el" href="classFriendicaSmartyEngine.html#ad62f1181d2f02b54b46731ad2bd46db2">FriendicaSmartyEngine\replace_macros()</a>, <a class="el" href="classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b">Template\replace_macros()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search()</a>, <a class="el" href="classApp.html#a123b903dfe5d3488cc68db3471d36fd2">App\set_widget()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="bb2diaspora_8php.html#a180b0e3a7d702998be19e3c3b44b0e93">stripdcode_br_cb()</a>, <a class="el" href="language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04">t()</a>, <a class="el" href="template__processor_8php.html#ab2bcd8738f20f293636a6ae8e1099db5">template_escape()</a>, <a class="el" href="template__processor_8php.html#ac635bb19a5f6eadd6b0cddefdd537c1e">template_unescape()</a>, <a class="el" href="taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c">term_query()</a>, <a class="el" href="text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53">theme_attachments()</a>, <a class="el" href="text_8php.html#a29d6b804e368d3ef359ee295e96ed4c7">unamp()</a>, <a class="el" href="text_8php.html#a740ad03e00459039a2c0992246c4e727">undo_post_tagging()</a>, <a class="el" href="text_8php.html#a1360fed7f918d859daaca1c9f384f9af">unxmlify()</a>, <a class="el" href="classTemplate.html#abbc484016ddf5d818f55b823cae6feb0">Template\var_replace()</a>, <a class="el" href="include_2network_8php.html#a8122356933bcd6b0a8567e8e15ae5cc5">webfinger()</a>, <a class="el" href="include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335">webfinger_dfrn()</a>, <a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x()</a>, <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url()</a>, <a class="el" href="text_8php.html#a324c58f37f6acdf9cd1922aa76077d9f">z_input_filter()</a>, <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">z_post_url()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, and <a class="el" href="identity_8php.html#a5b815330f3d177ab383af37a6c12e532">zid()</a>.</p>
+<p>Referenced by <a class="el" href="classTemplate.html#ac41c96e1f407b1a910029e5f4b7de8e4">Template\_build_nodes()</a>, <a class="el" href="classTemplate.html#aa6f9bd7a8f7512efcf90e8d376fe05ee">Template\_replcb_node()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="text_8php.html#a95fd2f8f23a1948414a03ebc963bac57">attribute_contains()</a>, <a class="el" href="text_8php.html#a13286f8a95d2de6b102966ecc270c8d6">base64url_decode()</a>, <a class="el" href="text_8php.html#a070384ec000fd65043fce11d5392d241">base64url_encode()</a>, <a class="el" href="bb2diaspora_8php.html#ad0abe1a7ee50aa0736a233df0a422eba">bb_tag_preg_replace()</a>, <a class="el" href="text_8php.html#a3d2793d66db3345fd290b71e2eadf98e">bb_translate_video()</a>, <a class="el" href="event_8php.html#a180cccd63c2a2f00ff432b03113531f3">bbtoevent()</a>, <a class="el" href="event_8php.html#a184d6b9690e5b6dee35a0aa9edd47279">bbtovcal()</a>, <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="text_8php.html#a55ab893be57feda59c2a7ba1e58ff2d0">chanlink_hash()</a>, <a class="el" href="text_8php.html#a2e8d6c402603be3a1256a16605e09c2a">chanlink_url()</a>, <a class="el" href="comanche_8php.html#a1a208fdb40dd83d6298caec4290ee922">comanche_parser()</a>, <a class="el" href="comanche_8php.html#a5718daeda40bf835345fe061e8808cdf">comanche_region()</a>, <a class="el" href="comanche_8php.html#ae9fe1ce574db3dd0931eada80234f82a">comanche_webpage()</a>, <a class="el" href="datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226">datetime_convert()</a>, <a class="el" href="text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63">day_translate()</a>, <a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">detect_language()</a>, <a class="el" href="bb2diaspora_8php.html#a26c09c218413610e62e60754c579f6c6">diaspora2bb()</a>, <a class="el" href="bb2diaspora_8php.html#a8b96bd45884fa1c40b942939354197d4">diaspora_ol()</a>, <a class="el" href="bb2diaspora_8php.html#adc92ccda5f85ed27e64fcc17712c89cc">diaspora_ul()</a>, <a class="el" href="text_8php.html#ae4282a39492caa23ccbc2ce98e54f110">expand_acl()</a>, <a class="el" href="taxonomy_8php.html#a08df5164926d2b31b8e9fcfe919de2b6">file_tag_decode()</a>, <a class="el" href="taxonomy_8php.html#a3299482ac20e9d79453048dd52881d37">file_tag_encode()</a>, <a class="el" href="taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1">file_tag_file_query()</a>, <a class="el" href="text_8php.html#afdc69fe3f6c09e35e46304dcea63ae28">fix_mce_lf()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">format_categories()</a>, <a class="el" href="text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91">format_filer()</a>, <a class="el" href="taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1">format_term_for_display()</a>, <a class="el" href="bb2diaspora_8php.html#a4c2f8f11b29a06809d9b07782215b1b2">get_bb_tag_pos()</a>, <a class="el" href="plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295">get_intltext_template()</a>, <a class="el" href="language_8php.html#a43e6ddba9df019c9ac3ab4c94c444ae7">get_language_name()</a>, <a class="el" href="plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4">get_markup_template()</a>, <a class="el" href="text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623">get_tags()</a>, <a class="el" href="text_8php.html#a138a3a611fa7f4f3630674145fc826bf">html2bb_video()</a>, <a class="el" href="boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498">info()</a>, <a class="el" href="text_8php.html#a1557112a774ec00fa06ed6b6f6495506">is_a_date_arg()</a>, <a class="el" href="identity_8php.html#ae2b140df652a55ca11bb6a99005fce35">is_foreigner()</a>, <a class="el" href="identity_8php.html#a9637c557e13d9671f3eeb124ab98212a">is_member()</a>, <a class="el" href="text_8php.html#a0271381208acfa2d4cff36da281e3e23">json_decode_plus()</a>, <a class="el" href="text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728">legal_webbie()</a>, <a class="el" href="text_8php.html#a11255c8c4e5245b6c24f97684826aa54">linkify()</a>, <a class="el" href="text_8php.html#a1e510c53624933ce9b7d6715784894db">magic_link()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>, <a class="el" href="text_8php.html#adba17ec946f4285285dc100f7860bf51">normalise_openid()</a>, <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">notice()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed_iframe()</a>, <a class="el" href="include_2oembed_8php.html#a00c4c80deffd9daf8dc97b58d4c64ed0">oembed_replacecb()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6">parse_xml_string()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="tpldebug_8php.html#a44778457a6c02554812fbfad19d32ba3">print_template()</a>, <a class="el" href="dba__driver_8php.html#a55bf30d8176967e682656b5be4ad9249">printable()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="text_8php.html#a4e7698aca48982512594b274543c3b9b">protect_sprintf()</a>, <a class="el" href="text_8php.html#a4841df5beabdd1bdd1ed56781a915d61">purify_html()</a>, <a class="el" href="text_8php.html#afc998d2796a6b2a08e96f7cc061e7221">qp()</a>, <a class="el" href="text_8php.html#a9d6a5ee1290de7a8b483fe78585daade">random_string()</a>, <a class="el" href="classTemplate.html#a285b5b2007dbbf733476273df3fed4ef">Template\replace()</a>, <a class="el" href="text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09">replace_macros()</a>, <a class="el" href="classFriendicaSmartyEngine.html#ad62f1181d2f02b54b46731ad2bd46db2">FriendicaSmartyEngine\replace_macros()</a>, <a class="el" href="classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b">Template\replace_macros()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search()</a>, <a class="el" href="text_8php.html#aae91e4d2a2c6f7a9daccd2c186ae3447">searchbox()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="text_8php.html#a33bdb5d4bfff2ede7caf61a98ac0a2e9">sslify()</a>, <a class="el" href="spam_8php.html#a05861201147b9a538d006f0269255cf9">string_splitter()</a>, <a class="el" href="text_8php.html#a2f2585385530cb935a6325c809d84a4d">strip_zids()</a>, <a class="el" href="bb2diaspora_8php.html#a180b0e3a7d702998be19e3c3b44b0e93">stripdcode_br_cb()</a>, <a class="el" href="language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04">t()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="template__processor_8php.html#ab2bcd8738f20f293636a6ae8e1099db5">template_escape()</a>, <a class="el" href="template__processor_8php.html#ac635bb19a5f6eadd6b0cddefdd537c1e">template_unescape()</a>, <a class="el" href="taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c">term_query()</a>, <a class="el" href="text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53">theme_attachments()</a>, <a class="el" href="text_8php.html#a29d6b804e368d3ef359ee295e96ed4c7">unamp()</a>, <a class="el" href="text_8php.html#a740ad03e00459039a2c0992246c4e727">undo_post_tagging()</a>, <a class="el" href="text_8php.html#a1360fed7f918d859daaca1c9f384f9af">unxmlify()</a>, <a class="el" href="classTemplate.html#abbc484016ddf5d818f55b823cae6feb0">Template\var_replace()</a>, <a class="el" href="include_2network_8php.html#a8122356933bcd6b0a8567e8e15ae5cc5">webfinger()</a>, <a class="el" href="include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335">webfinger_dfrn()</a>, <a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x()</a>, <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url()</a>, <a class="el" href="text_8php.html#a324c58f37f6acdf9cd1922aa76077d9f">z_input_filter()</a>, <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">z_post_url()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, and <a class="el" href="identity_8php.html#a5b815330f3d177ab383af37a6c12e532">zid()</a>.</p>
</div>
</div>
diff --git a/doc/html/features_8php.html b/doc/html/features_8php.html
index 437f5cf41..2036487f5 100644
--- a/doc/html/features_8php.html
+++ b/doc/html/features_8php.html
@@ -142,7 +142,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="lastpost_8php.html#a6108289ef2a767495c7c85a24f364983">lastpost_aside()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="items_8php.html#abe695dd89e1e10ed042c26b80114f0ed">posted_date_widget()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793">redbasic_form()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, <a class="el" href="search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6">search_saved_searches()</a>, <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, and <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>.</p>
+<p>Referenced by <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793">redbasic_form()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search()</a>, <a class="el" href="text_8php.html#aae91e4d2a2c6f7a9daccd2c186ae3447">searchbox()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="widgets_8php.html#add9b24d3304e529a7975e96122315554">widget_affinity()</a>, <a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widget_archive()</a>, <a class="el" href="widgets_8php.html#a45ea061dabe9a8372e4ca3b9e5714256">widget_notes()</a>, <a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widget_savedsearch()</a>, <a class="el" href="widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01">widget_settings_menu()</a>, <a class="el" href="widgets_8php.html#a0d404276fedc59f5038cf5c085028326">widget_suggestions()</a>, and <a class="el" href="widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653">widget_tagcloud_wall()</a>.</p>
</div>
</div>
diff --git a/doc/html/files.html b/doc/html/files.html
index 5ab85789e..efc357c1c 100644
--- a/doc/html/files.html
+++ b/doc/html/files.html
@@ -122,199 +122,207 @@ $(document).ready(function(){initNavTree('files.html','');});
<tr id="row_0_3_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="acl__selectors_8php.html" target="_self">acl_selectors.php</a></td><td class="desc"></td></tr>
<tr id="row_0_4_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="activities_8php.html" target="_self">activities.php</a></td><td class="desc"></td></tr>
<tr id="row_0_5_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2api_8php.html" target="_self">api.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_6_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2attach_8php.html" target="_self">attach.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_6_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2attach_8php.html" target="_self">attach.php</a></td><td class="desc">File/attach API with the potential for revision control</td></tr>
<tr id="row_0_7_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="auth_8php.html" target="_self">auth.php</a></td><td class="desc"></td></tr>
<tr id="row_0_8_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="BaseObject_8php.html" target="_self">BaseObject.php</a></td><td class="desc"></td></tr>
<tr id="row_0_9_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="bb2diaspora_8php.html" target="_self">bb2diaspora.php</a></td><td class="desc"></td></tr>
<tr id="row_0_10_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="bbcode_8php.html" target="_self">bbcode.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_11_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="cache_8php.html" target="_self">cache.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_12_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2chanman_8php.html" target="_self">chanman.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_13_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="cli__startup_8php.html" target="_self">cli_startup.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_14_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="cli__suggest_8php.html" target="_self">cli_suggest.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_15_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="comanche_8php.html" target="_self">comanche.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_16_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2config_8php.html" target="_self">config.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_17_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="Contact_8php.html" target="_self">Contact.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_18_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="contact__selectors_8php.html" target="_self">contact_selectors.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_19_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="contact__widgets_8php.html" target="_self">contact_widgets.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_20_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="conversation_8php.html" target="_self">conversation.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_21_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="ConversationObject_8php.html" target="_self">ConversationObject.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_22_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="cronhooks_8php.html" target="_self">cronhooks.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_23_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="crypto_8php.html" target="_self">crypto.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_24_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="datetime_8php.html" target="_self">datetime.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_25_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="deliver_8php.html" target="_self">deliver.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_26_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="dir__fns_8php.html" target="_self">dir_fns.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_27_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2directory_8php.html" target="_self">directory.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_28_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="enotify_8php.html" target="_self">enotify.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_29_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="event_8php.html" target="_self">event.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_30_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="expire_8php.html" target="_self">expire.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_31_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="features_8php.html" target="_self">features.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_32_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2follow_8php.html" target="_self">follow.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_33_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="friendica__smarty_8php.html" target="_self">friendica_smarty.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_34_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="gprobe_8php.html" target="_self">gprobe.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_35_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2group_8php.html" target="_self">group.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_36_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="html2bbcode_8php.html" target="_self">html2bbcode.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_37_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="html2plain_8php.html" target="_self">html2plain.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_38_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="identity_8php.html" target="_self">identity.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_39_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="ItemObject_8php.html" target="_self">ItemObject.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_40_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="ITemplateEngine_8php.html" target="_self">ITemplateEngine.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_41_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="items_8php.html" target="_self">items.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_42_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="language_8php.html" target="_self">language.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_43_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2menu_8php.html" target="_self">menu.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_44_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2message_8php.html" target="_self">message.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_45_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="nav_8php.html" target="_self">nav.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_46_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2network_8php.html" target="_self">network.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_47_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="notifier_8php.html" target="_self">notifier.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_48_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2notify_8php.html" target="_self">notify.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_49_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="oauth_8php.html" target="_self">oauth.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_50_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2oembed_8php.html" target="_self">oembed.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_51_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="onedirsync_8php.html" target="_self">onedirsync.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_52_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="onepoll_8php.html" target="_self">onepoll.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_53_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="page__widgets_8php.html" target="_self">page_widgets.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_54_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="permissions_8php.html" target="_self">permissions.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_55_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2photos_8php.html" target="_self">photos.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_56_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="plugin_8php.html" target="_self">plugin.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_57_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="poller_8php.html" target="_self">poller.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_58_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="profile__selectors_8php.html" target="_self">profile_selectors.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_59_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="ProtoDriver_8php.html" target="_self">ProtoDriver.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_60_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="queue_8php.html" target="_self">queue.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_61_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="queue__fn_8php.html" target="_self">queue_fn.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_62_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="reddav_8php.html" target="_self">reddav.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_63_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="security_8php.html" target="_self">security.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_64_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="session_8php.html" target="_self">session.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_65_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="socgraph_8php.html" target="_self">socgraph.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_66_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="system__unavailable_8php.html" target="_self">system_unavailable.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_67_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="taxonomy_8php.html" target="_self">taxonomy.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_68_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="template__processor_8php.html" target="_self">template_processor.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_69_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="text_8php.html" target="_self">text.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_70_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="widgets_8php.html" target="_self">widgets.php</a></td><td class="desc"></td></tr>
-<tr id="row_0_71_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="zot_8php.html" target="_self">zot.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_11_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2bookmarks_8php.html" target="_self">bookmarks.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_12_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="cache_8php.html" target="_self">cache.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_13_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2chanman_8php.html" target="_self">chanman.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_14_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2chat_8php.html" target="_self">chat.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_15_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="cli__startup_8php.html" target="_self">cli_startup.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_16_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="cli__suggest_8php.html" target="_self">cli_suggest.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_17_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="comanche_8php.html" target="_self">comanche.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_18_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2config_8php.html" target="_self">config.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_19_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="Contact_8php.html" target="_self">Contact.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_20_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="contact__selectors_8php.html" target="_self">contact_selectors.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_21_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="contact__widgets_8php.html" target="_self">contact_widgets.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_22_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="conversation_8php.html" target="_self">conversation.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_23_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="ConversationObject_8php.html" target="_self">ConversationObject.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_24_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="cronhooks_8php.html" target="_self">cronhooks.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_25_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="crypto_8php.html" target="_self">crypto.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_26_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="datetime_8php.html" target="_self">datetime.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_27_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="deliver_8php.html" target="_self">deliver.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_28_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="dir__fns_8php.html" target="_self">dir_fns.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_29_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2directory_8php.html" target="_self">directory.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_30_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="enotify_8php.html" target="_self">enotify.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_31_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="event_8php.html" target="_self">event.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_32_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="expire_8php.html" target="_self">expire.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_33_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="features_8php.html" target="_self">features.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_34_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2follow_8php.html" target="_self">follow.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_35_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="friendica__smarty_8php.html" target="_self">friendica_smarty.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_36_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="gprobe_8php.html" target="_self">gprobe.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_37_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2group_8php.html" target="_self">group.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_38_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="html2bbcode_8php.html" target="_self">html2bbcode.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_39_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="html2plain_8php.html" target="_self">html2plain.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_40_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="identity_8php.html" target="_self">identity.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_41_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="ItemObject_8php.html" target="_self">ItemObject.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_42_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="ITemplateEngine_8php.html" target="_self">ITemplateEngine.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_43_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="items_8php.html" target="_self">items.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_44_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="language_8php.html" target="_self">language.php</a></td><td class="desc">Translation support</td></tr>
+<tr id="row_0_45_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2menu_8php.html" target="_self">menu.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_46_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2message_8php.html" target="_self">message.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_47_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="nav_8php.html" target="_self">nav.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_48_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2network_8php.html" target="_self">network.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_49_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="notifier_8php.html" target="_self">notifier.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_50_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2notify_8php.html" target="_self">notify.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_51_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="oauth_8php.html" target="_self">oauth.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_52_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2oembed_8php.html" target="_self">oembed.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_53_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="onedirsync_8php.html" target="_self">onedirsync.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_54_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="onepoll_8php.html" target="_self">onepoll.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_55_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="page__widgets_8php.html" target="_self">page_widgets.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_56_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="permissions_8php.html" target="_self">permissions.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_57_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="include_2photos_8php.html" target="_self">photos.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_58_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="plugin_8php.html" target="_self">plugin.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_59_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="poller_8php.html" target="_self">poller.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_60_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="profile__selectors_8php.html" target="_self">profile_selectors.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_61_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="ProtoDriver_8php.html" target="_self">ProtoDriver.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_62_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="queue_8php.html" target="_self">queue.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_63_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="queue__fn_8php.html" target="_self">queue_fn.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_64_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="reddav_8php.html" target="_self">reddav.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_65_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="security_8php.html" target="_self">security.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_66_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="session_8php.html" target="_self">session.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_67_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="socgraph_8php.html" target="_self">socgraph.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_68_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="spam_8php.html" target="_self">spam.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_69_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="system__unavailable_8php.html" target="_self">system_unavailable.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_70_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="taxonomy_8php.html" target="_self">taxonomy.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_71_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="template__processor_8php.html" target="_self">template_processor.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_72_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="text_8php.html" target="_self">text.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_73_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="widgets_8php.html" target="_self">widgets.php</a></td><td class="desc"></td></tr>
+<tr id="row_0_74_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="zot_8php.html" target="_self">zot.php</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><img id="arr_1_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('1_')"/><img id="img_1_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('1_')"/><a class="el" href="dir_d41ce877eb409a4791b288730010abe2.html" target="_self">mod</a></td><td class="desc"></td></tr>
<tr id="row_1_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="__well__known_8php.html" target="_self">_well_known.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="acl_8php.html" target="_self">acl.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="admin_8php.html" target="_self">admin.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_3_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="allfriends_8php.html" target="_self">allfriends.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="achievements_8php.html" target="_self">achievements.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="acl_8php.html" target="_self">acl.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_3_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="admin_8php.html" target="_self">admin.php</a></td><td class="desc"></td></tr>
<tr id="row_1_4_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2api_8php.html" target="_self">api.php</a></td><td class="desc"></td></tr>
<tr id="row_1_5_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="apps_8php.html" target="_self">apps.php</a></td><td class="desc"></td></tr>
<tr id="row_1_6_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2attach_8php.html" target="_self">attach.php</a></td><td class="desc"></td></tr>
<tr id="row_1_7_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="blocks_8php.html" target="_self">blocks.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_8_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2chanman_8php.html" target="_self">chanman.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_9_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="channel_8php.html" target="_self">channel.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_10_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="chanview_8php.html" target="_self">chanview.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_11_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="cloud_8php.html" target="_self">cloud.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_12_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="common_8php.html" target="_self">common.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_13_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="community_8php.html" target="_self">community.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_14_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="connect_8php.html" target="_self">connect.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_15_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="connections_8php.html" target="_self">connections.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_16_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="contactgroup_8php.html" target="_self">contactgroup.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_17_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="crepair_8php.html" target="_self">crepair.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_18_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="delegate_8php.html" target="_self">delegate.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_19_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2directory_8php.html" target="_self">directory.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_20_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="dirsearch_8php.html" target="_self">dirsearch.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_21_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="display_8php.html" target="_self">display.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_22_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="editblock_8php.html" target="_self">editblock.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_23_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="editlayout_8php.html" target="_self">editlayout.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_24_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="editpost_8php.html" target="_self">editpost.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_25_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="editwebpage_8php.html" target="_self">editwebpage.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_26_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="events_8php.html" target="_self">events.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_27_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="fbrowser_8php.html" target="_self">fbrowser.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_28_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="feed_8php.html" target="_self">feed.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_29_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="filer_8php.html" target="_self">filer.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_30_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="filerm_8php.html" target="_self">filerm.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_31_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="filestorage_8php.html" target="_self">filestorage.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_32_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2follow_8php.html" target="_self">follow.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_33_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="fsuggest_8php.html" target="_self">fsuggest.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_34_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2group_8php.html" target="_self">group.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_35_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="hcard_8php.html" target="_self">hcard.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_36_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="help_8php.html" target="_self">help.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_37_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="home_8php.html" target="_self">home.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_38_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="hostxrd_8php.html" target="_self">hostxrd.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_39_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="import_8php.html" target="_self">import.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_40_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="intro_8php.html" target="_self">intro.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_41_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="invite_8php.html" target="_self">invite.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_42_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="item_8php.html" target="_self">item.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_43_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="lastpost_8php.html" target="_self">lastpost.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_44_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="layouts_8php.html" target="_self">layouts.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_45_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="like_8php.html" target="_self">like.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_46_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="lockview_8php.html" target="_self">lockview.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_47_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="login_8php.html" target="_self">login.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_48_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="lostpass_8php.html" target="_self">lostpass.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_49_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="magic_8php.html" target="_self">magic.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_50_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="manage_8php.html" target="_self">manage.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_51_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="match_8php.html" target="_self">match.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_52_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2menu_8php.html" target="_self">menu.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_53_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2message_8php.html" target="_self">message.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_54_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mitem_8php.html" target="_self">mitem.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_55_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mood_8php.html" target="_self">mood.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_56_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="msearch_8php.html" target="_self">msearch.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_57_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2network_8php.html" target="_self">network.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_58_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="new__channel_8php.html" target="_self">new_channel.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_59_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="notifications_8php.html" target="_self">notifications.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_60_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2notify_8php.html" target="_self">notify.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_61_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2oembed_8php.html" target="_self">oembed.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_62_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="oexchange_8php.html" target="_self">oexchange.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_63_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="opensearch_8php.html" target="_self">opensearch.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_64_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="page_8php.html" target="_self">page.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_65_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="parse__url_8php.html" target="_self">parse_url.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_66_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="photo_8php.html" target="_self">photo.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_67_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2photos_8php.html" target="_self">photos.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_68_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="php_8php.html" target="_self">php.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_69_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="ping_8php.html" target="_self">ping.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_70_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="poco_8php.html" target="_self">poco.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_71_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="poke_8php.html" target="_self">poke.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_72_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="post_8php.html" target="_self">post.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_73_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="pretheme_8php.html" target="_self">pretheme.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_74_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="probe_8php.html" target="_self">probe.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_75_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="profile_8php.html" target="_self">profile.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_76_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="profile__photo_8php.html" target="_self">profile_photo.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_77_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="profiles_8php.html" target="_self">profiles.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_78_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="profperm_8php.html" target="_self">profperm.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_79_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="pubsites_8php.html" target="_self">pubsites.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_80_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="qsearch_8php.html" target="_self">qsearch.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_81_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="randprof_8php.html" target="_self">randprof.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_82_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="redir_8php.html" target="_self">redir.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_83_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="register_8php.html" target="_self">register.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_84_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="regmod_8php.html" target="_self">regmod.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_85_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="removeme_8php.html" target="_self">removeme.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_86_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="rmagic_8php.html" target="_self">rmagic.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_87_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="rpost_8php.html" target="_self">rpost.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_88_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="rsd__xml_8php.html" target="_self">rsd_xml.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_89_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="search_8php.html" target="_self">search.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_90_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="search__ac_8php.html" target="_self">search_ac.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_91_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="settings_8php.html" target="_self">settings.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_92_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="setup_8php.html" target="_self">setup.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_93_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="share_8php.html" target="_self">share.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_94_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="siteinfo_8php.html" target="_self">siteinfo.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_95_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="sitelist_8php.html" target="_self">sitelist.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_96_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="smilies_8php.html" target="_self">smilies.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_97_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="sources_8php.html" target="_self">sources.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_98_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="starred_8php.html" target="_self">starred.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_99_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="subthread_8php.html" target="_self">subthread.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_100_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="suggest_8php.html" target="_self">suggest.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_101_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="tagger_8php.html" target="_self">tagger.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_102_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="tagrm_8php.html" target="_self">tagrm.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_103_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="thing_8php.html" target="_self">thing.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_104_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="toggle__mobile_8php.html" target="_self">toggle_mobile.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_105_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="toggle__safesearch_8php.html" target="_self">toggle_safesearch.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_106_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="uexport_8php.html" target="_self">uexport.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_107_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="update__channel_8php.html" target="_self">update_channel.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_108_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="update__community_8php.html" target="_self">update_community.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_109_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="update__display_8php.html" target="_self">update_display.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_110_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="update__network_8php.html" target="_self">update_network.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_111_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="update__search_8php.html" target="_self">update_search.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_112_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="view_8php.html" target="_self">view.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_113_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="viewconnections_8php.html" target="_self">viewconnections.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_114_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="viewsrc_8php.html" target="_self">viewsrc.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_115_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="vote_8php.html" target="_self">vote.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_116_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="wall__attach_8php.html" target="_self">wall_attach.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_117_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="wall__upload_8php.html" target="_self">wall_upload.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_118_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="webfinger_8php.html" target="_self">webfinger.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_119_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="webpages_8php.html" target="_self">webpages.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_120_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="wfinger_8php.html" target="_self">wfinger.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_121_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="xchan_8php.html" target="_self">xchan.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_122_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="xrd_8php.html" target="_self">xrd.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_123_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="zfinger_8php.html" target="_self">zfinger.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_124_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="zotfeed_8php.html" target="_self">zotfeed.php</a></td><td class="desc"></td></tr>
-<tr id="row_1_125_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="zping_8php.html" target="_self">zping.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_8_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2bookmarks_8php.html" target="_self">bookmarks.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_9_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2chanman_8php.html" target="_self">chanman.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_10_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="channel_8php.html" target="_self">channel.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_11_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="chanview_8php.html" target="_self">chanview.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_12_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2chat_8php.html" target="_self">chat.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_13_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="chatsvc_8php.html" target="_self">chatsvc.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_14_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="cloud_8php.html" target="_self">cloud.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_15_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="common_8php.html" target="_self">common.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_16_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="community_8php.html" target="_self">community.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_17_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="connect_8php.html" target="_self">connect.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_18_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="connections_8php.html" target="_self">connections.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_19_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="connedit_8php.html" target="_self">connedit.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_20_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="contactgroup_8php.html" target="_self">contactgroup.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_21_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="delegate_8php.html" target="_self">delegate.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_22_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2directory_8php.html" target="_self">directory.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_23_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="dirprofile_8php.html" target="_self">dirprofile.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_24_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="dirsearch_8php.html" target="_self">dirsearch.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_25_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="display_8php.html" target="_self">display.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_26_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="editblock_8php.html" target="_self">editblock.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_27_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="editlayout_8php.html" target="_self">editlayout.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_28_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="editpost_8php.html" target="_self">editpost.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_29_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="editwebpage_8php.html" target="_self">editwebpage.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_30_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="events_8php.html" target="_self">events.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_31_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="fbrowser_8php.html" target="_self">fbrowser.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_32_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="feed_8php.html" target="_self">feed.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_33_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="filer_8php.html" target="_self">filer.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_34_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="filerm_8php.html" target="_self">filerm.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_35_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="filestorage_8php.html" target="_self">filestorage.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_36_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2follow_8php.html" target="_self">follow.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_37_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="fsuggest_8php.html" target="_self">fsuggest.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_38_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2group_8php.html" target="_self">group.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_39_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="help_8php.html" target="_self">help.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_40_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="home_8php.html" target="_self">home.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_41_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="hostxrd_8php.html" target="_self">hostxrd.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_42_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="import_8php.html" target="_self">import.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_43_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="invite_8php.html" target="_self">invite.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_44_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="item_8php.html" target="_self">item.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_45_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="layouts_8php.html" target="_self">layouts.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_46_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="like_8php.html" target="_self">like.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_47_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="lockview_8php.html" target="_self">lockview.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_48_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="login_8php.html" target="_self">login.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_49_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="lostpass_8php.html" target="_self">lostpass.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_50_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="magic_8php.html" target="_self">magic.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_51_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mail_8php.html" target="_self">mail.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_52_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="manage_8php.html" target="_self">manage.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_53_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="match_8php.html" target="_self">match.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_54_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2menu_8php.html" target="_self">menu.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_55_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2message_8php.html" target="_self">message.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_56_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mitem_8php.html" target="_self">mitem.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_57_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mood_8php.html" target="_self">mood.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_58_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="msearch_8php.html" target="_self">msearch.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_59_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2network_8php.html" target="_self">network.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_60_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="new__channel_8php.html" target="_self">new_channel.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_61_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="notes_8php.html" target="_self">notes.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_62_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="notifications_8php.html" target="_self">notifications.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_63_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2notify_8php.html" target="_self">notify.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_64_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2oembed_8php.html" target="_self">oembed.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_65_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="oexchange_8php.html" target="_self">oexchange.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_66_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="online_8php.html" target="_self">online.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_67_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="openid_8php.html" target="_self">openid.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_68_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="opensearch_8php.html" target="_self">opensearch.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_69_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="page_8php.html" target="_self">page.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_70_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="parse__url_8php.html" target="_self">parse_url.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_71_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="photo_8php.html" target="_self">photo.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_72_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod_2photos_8php.html" target="_self">photos.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_73_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="php_8php.html" target="_self">php.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_74_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="ping_8php.html" target="_self">ping.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_75_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="poco_8php.html" target="_self">poco.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_76_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="poke_8php.html" target="_self">poke.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_77_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="post_8php.html" target="_self">post.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_78_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="pretheme_8php.html" target="_self">pretheme.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_79_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="probe_8php.html" target="_self">probe.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_80_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="profile_8php.html" target="_self">profile.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_81_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="profile__photo_8php.html" target="_self">profile_photo.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_82_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="profiles_8php.html" target="_self">profiles.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_83_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="profperm_8php.html" target="_self">profperm.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_84_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="pubsites_8php.html" target="_self">pubsites.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_85_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="randprof_8php.html" target="_self">randprof.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_86_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="register_8php.html" target="_self">register.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_87_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="regmod_8php.html" target="_self">regmod.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_88_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="removeme_8php.html" target="_self">removeme.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_89_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="rmagic_8php.html" target="_self">rmagic.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_90_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="rpost_8php.html" target="_self">rpost.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_91_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="rsd__xml_8php.html" target="_self">rsd_xml.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_92_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="search_8php.html" target="_self">search.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_93_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="search__ac_8php.html" target="_self">search_ac.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_94_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="settings_8php.html" target="_self">settings.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_95_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="setup_8php.html" target="_self">setup.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_96_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="share_8php.html" target="_self">share.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_97_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="siteinfo_8php.html" target="_self">siteinfo.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_98_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="sitelist_8php.html" target="_self">sitelist.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_99_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="smilies_8php.html" target="_self">smilies.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_100_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="sources_8php.html" target="_self">sources.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_101_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="sslify_8php.html" target="_self">sslify.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_102_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="starred_8php.html" target="_self">starred.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_103_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="subthread_8php.html" target="_self">subthread.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_104_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="suggest_8php.html" target="_self">suggest.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_105_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="tagger_8php.html" target="_self">tagger.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_106_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="tagrm_8php.html" target="_self">tagrm.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_107_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="thing_8php.html" target="_self">thing.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_108_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="toggle__mobile_8php.html" target="_self">toggle_mobile.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_109_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="toggle__safesearch_8php.html" target="_self">toggle_safesearch.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_110_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="uexport_8php.html" target="_self">uexport.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_111_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="update__channel_8php.html" target="_self">update_channel.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_112_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="update__community_8php.html" target="_self">update_community.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_113_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="update__display_8php.html" target="_self">update_display.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_114_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="update__network_8php.html" target="_self">update_network.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_115_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="update__search_8php.html" target="_self">update_search.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_116_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="view_8php.html" target="_self">view.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_117_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="viewconnections_8php.html" target="_self">viewconnections.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_118_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="viewsrc_8php.html" target="_self">viewsrc.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_119_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="vote_8php.html" target="_self">vote.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_120_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="wall__attach_8php.html" target="_self">wall_attach.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_121_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="wall__upload_8php.html" target="_self">wall_upload.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_122_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="webfinger_8php.html" target="_self">webfinger.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_123_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="webpages_8php.html" target="_self">webpages.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_124_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="wfinger_8php.html" target="_self">wfinger.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_125_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="xchan_8php.html" target="_self">xchan.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_126_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="xrd_8php.html" target="_self">xrd.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_127_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="xref_8php.html" target="_self">xref.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_128_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="zfinger_8php.html" target="_self">zfinger.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_129_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="zotfeed_8php.html" target="_self">zotfeed.php</a></td><td class="desc"></td></tr>
+<tr id="row_1_130_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="zping_8php.html" target="_self">zping.php</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><img id="arr_2_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('2_')"/><img id="img_2_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('2_')"/><a class="el" href="dir_23ec12649285f9fabf3a6b7380226c28.html" target="_self">util</a></td><td class="desc"></td></tr>
<tr id="row_2_0_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_2_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('2_0_')"/><img id="img_2_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('2_0_')"/><a class="el" href="dir_0eaa4a0adae8ba4811e133c6e594aeee.html" target="_self">fpostit</a></td><td class="desc"></td></tr>
<tr id="row_2_0_0_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="fpostit_8php.html" target="_self">fpostit.php</a></td><td class="desc"></td></tr>
@@ -332,53 +340,54 @@ $(document).ready(function(){initNavTree('files.html','');});
<tr id="row_2_10_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="typohelper_8php.html" target="_self">typohelper.php</a></td><td class="desc"></td></tr>
<tr id="row_2_11_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="updatetpl_8py.html" target="_self">updatetpl.py</a></td><td class="desc"></td></tr>
<tr id="row_3_"><td class="entry"><img id="arr_3_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_')"/><img id="img_3_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_')"/><a class="el" href="dir_b2f003339c516cc00c8cadcafbe82f13.html" target="_self">view</a></td><td class="desc"></td></tr>
-<tr id="row_3_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_3_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_0_')"/><img id="img_3_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_0_')"/><a class="el" href="dir_817f6d302394b98e59575acdb59998bc.html" target="_self">php</a></td><td class="desc"></td></tr>
-<tr id="row_3_0_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="php_2default_8php.html" target="_self">default.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_0_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="full_8php.html" target="_self">full.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_0_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="minimal_8php.html" target="_self">minimal.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_0_3_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod__import_8php.html" target="_self">mod_import.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_0_4_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod__new__channel_8php.html" target="_self">mod_new_channel.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_0_5_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod__register_8php.html" target="_self">mod_register.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_0_6_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="none_8php.html" target="_self">none.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_0_7_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="php_2theme__init_8php.html" target="_self">theme_init.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_3_1_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_1_')"/><img id="img_3_1_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_')"/><a class="el" href="dir_8543001e5d25368a6edede3e63efb554.html" target="_self">theme</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_3_1_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_1_0_')"/><img id="img_3_1_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_0_')"/><a class="el" href="dir_d520c5cf583201d9437764f209363c22.html" target="_self">apw</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_0_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_3_1_0_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_1_0_0_')"/><img id="img_3_1_0_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_0_0_')"/><a class="el" href="dir_cb8a8f75dcdd0b3fbfcc82e9eda410c5.html" target="_self">php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_0_0_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="view_2theme_2apw_2php_2config_8php.html" target="_self">config.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_0_0_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="apw_2php_2style_8php.html" target="_self">style.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_0_0_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="apw_2php_2theme_8php.html" target="_self">theme.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_0_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_3_1_0_1_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_1_0_1_')"/><img id="img_3_1_0_1_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_0_1_')"/><a class="el" href="dir_05f4fba29266e8fd7869afcd6cefb5cb.html" target="_self">schema</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_0_1_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="darkness_8php.html" target="_self">darkness.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_0_1_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="darknessleftaside_8php.html" target="_self">darknessleftaside.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_0_1_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="darknessrightaside_8php.html" target="_self">darknessrightaside.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_0_1_3_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="greenthumbnails_8php.html" target="_self">greenthumbnails.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_0_1_4_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="minimalisticdarkness_8php.html" target="_self">minimalisticdarkness.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_0_1_5_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="olddefault_8php.html" target="_self">olddefault.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_0_1_6_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="passion_8php.html" target="_self">passion.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_0_1_7_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="passionwide_8php.html" target="_self">passionwide.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_0_1_8_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="pine_8php.html" target="_self">pine.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_0_1_9_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="redbasic_8php.html" target="_self">redbasic.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_0_1_10_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="widedarkness_8php.html" target="_self">widedarkness.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_3_1_1_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_1_1_')"/><img id="img_3_1_1_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_1_')"/><a class="el" href="dir_922c77e958c99a98db92d38a3a349bf2.html" target="_self">blogga</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_1_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_3_1_1_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_1_1_0_')"/><img id="img_3_1_1_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_1_0_')"/><a class="el" href="dir_c02447ad39a5307c81c64e880ec9e8d3.html" target="_self">php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_1_0_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="view_2theme_2blogga_2php_2config_8php.html" target="_self">config.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_1_0_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="theme_2blogga_2php_2default_8php.html" target="_self">default.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_1_0_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="blogga_2php_2theme_8php.html" target="_self">theme.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_1_0_3_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="theme_2blogga_2php_2theme__init_8php.html" target="_self">theme_init.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_1_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_3_1_1_1_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_1_1_1_')"/><img id="img_3_1_1_1_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_1_1_')"/><a class="el" href="dir_92d6b429199666aa3765c8a934db5e14.html" target="_self">view</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_1_1_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_3_1_1_1_0_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_1_1_1_0_')"/><img id="img_3_1_1_1_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_1_1_0_')"/><a class="el" href="dir_6cee3bb9ace89cc4e2f065aa2ca7bc5b.html" target="_self">theme</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_1_1_0_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_3_1_1_1_0_0_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_1_1_1_0_0_')"/><img id="img_3_1_1_1_0_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_1_1_0_0_')"/><a class="el" href="dir_a8a0005c2b8590c535262d232c22afab.html" target="_self">blog</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_1_1_0_0_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="view_2theme_2blogga_2view_2theme_2blog_2config_8php.html" target="_self">config.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_1_1_0_0_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="theme_2blogga_2view_2theme_2blog_2default_8php.html" target="_self">default.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_1_1_0_0_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html" target="_self">theme.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_3_1_2_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_1_2_')"/><img id="img_3_1_2_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_2_')"/><a class="el" href="dir_55dbaf9b7b53c4fc605c9011743a7353.html" target="_self">redbasic</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_2_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_3_1_2_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_1_2_0_')"/><img id="img_3_1_2_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_2_0_')"/><a class="el" href="dir_032dd9e2cfe278a2cfa5eb9547448eb9.html" target="_self">php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_2_0_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="view_2theme_2redbasic_2php_2config_8php.html" target="_self">config.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_2_0_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="redbasic_2php_2style_8php.html" target="_self">style.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_2_0_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="redbasic_2php_2theme_8php.html" target="_self">theme.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_2_0_3_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="theme_2redbasic_2php_2theme__init_8php.html" target="_self">theme_init.php</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_2_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_3_1_2_1_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_1_2_1_')"/><img id="img_3_1_2_1_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_2_1_')"/><a class="el" href="dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.html" target="_self">schema</a></td><td class="desc"></td></tr>
-<tr id="row_3_1_2_1_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="dark_8php.html" target="_self">dark.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_3_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_0_')"/><img id="img_3_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_0_')"/><a class="el" href="dir_24b9ffacd044b9b20a6b863179c605d1.html" target="_self">js</a></td><td class="desc"></td></tr>
+<tr id="row_3_0_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod__filestorage_8php.html" target="_self">mod_filestorage.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_3_1_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_1_')"/><img id="img_3_1_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_1_')"/><a class="el" href="dir_817f6d302394b98e59575acdb59998bc.html" target="_self">php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="php_2default_8php.html" target="_self">default.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="full_8php.html" target="_self">full.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="minimal_8php.html" target="_self">minimal.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_3_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="mod__import_8php.html" target="_self">mod_import.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_4_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="none_8php.html" target="_self">none.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_5_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="php_2theme__init_8php.html" target="_self">theme_init.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_3_2_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_2_')"/><img id="img_3_2_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_2_')"/><a class="el" href="dir_8543001e5d25368a6edede3e63efb554.html" target="_self">theme</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_3_2_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_2_0_')"/><img id="img_3_2_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_2_0_')"/><a class="el" href="dir_d520c5cf583201d9437764f209363c22.html" target="_self">apw</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_0_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_3_2_0_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_2_0_0_')"/><img id="img_3_2_0_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_2_0_0_')"/><a class="el" href="dir_cb8a8f75dcdd0b3fbfcc82e9eda410c5.html" target="_self">php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_0_0_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="view_2theme_2apw_2php_2config_8php.html" target="_self">config.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_0_0_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="apw_2php_2style_8php.html" target="_self">style.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_0_0_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="apw_2php_2theme_8php.html" target="_self">theme.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_0_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_3_2_0_1_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_2_0_1_')"/><img id="img_3_2_0_1_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_2_0_1_')"/><a class="el" href="dir_05f4fba29266e8fd7869afcd6cefb5cb.html" target="_self">schema</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_0_1_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="darkness_8php.html" target="_self">darkness.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_0_1_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="darknessleftaside_8php.html" target="_self">darknessleftaside.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_0_1_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="darknessrightaside_8php.html" target="_self">darknessrightaside.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_0_1_3_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="greenthumbnails_8php.html" target="_self">greenthumbnails.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_0_1_4_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="minimalisticdarkness_8php.html" target="_self">minimalisticdarkness.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_0_1_5_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="olddefault_8php.html" target="_self">olddefault.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_0_1_6_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="passion_8php.html" target="_self">passion.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_0_1_7_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="passionwide_8php.html" target="_self">passionwide.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_0_1_8_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="pine_8php.html" target="_self">pine.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_0_1_9_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="redbasic_8php.html" target="_self">redbasic.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_0_1_10_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="widedarkness_8php.html" target="_self">widedarkness.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_3_2_1_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_2_1_')"/><img id="img_3_2_1_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_2_1_')"/><a class="el" href="dir_922c77e958c99a98db92d38a3a349bf2.html" target="_self">blogga</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_1_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_3_2_1_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_2_1_0_')"/><img id="img_3_2_1_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_2_1_0_')"/><a class="el" href="dir_c02447ad39a5307c81c64e880ec9e8d3.html" target="_self">php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_1_0_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="view_2theme_2blogga_2php_2config_8php.html" target="_self">config.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_1_0_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="theme_2blogga_2php_2default_8php.html" target="_self">default.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_1_0_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="blogga_2php_2theme_8php.html" target="_self">theme.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_1_0_3_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="theme_2blogga_2php_2theme__init_8php.html" target="_self">theme_init.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_1_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_3_2_1_1_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_2_1_1_')"/><img id="img_3_2_1_1_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_2_1_1_')"/><a class="el" href="dir_92d6b429199666aa3765c8a934db5e14.html" target="_self">view</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_1_1_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_3_2_1_1_0_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_2_1_1_0_')"/><img id="img_3_2_1_1_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_2_1_1_0_')"/><a class="el" href="dir_6cee3bb9ace89cc4e2f065aa2ca7bc5b.html" target="_self">theme</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_1_1_0_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_3_2_1_1_0_0_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_2_1_1_0_0_')"/><img id="img_3_2_1_1_0_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_2_1_1_0_0_')"/><a class="el" href="dir_a8a0005c2b8590c535262d232c22afab.html" target="_self">blog</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_1_1_0_0_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="view_2theme_2blogga_2view_2theme_2blog_2config_8php.html" target="_self">config.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_1_1_0_0_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="theme_2blogga_2view_2theme_2blog_2default_8php.html" target="_self">default.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_1_1_0_0_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html" target="_self">theme.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_3_2_2_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_2_2_')"/><img id="img_3_2_2_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_2_2_')"/><a class="el" href="dir_55dbaf9b7b53c4fc605c9011743a7353.html" target="_self">redbasic</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_2_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_3_2_2_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('3_2_2_0_')"/><img id="img_3_2_2_0_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_2_2_0_')"/><a class="el" href="dir_032dd9e2cfe278a2cfa5eb9547448eb9.html" target="_self">php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_2_0_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="view_2theme_2redbasic_2php_2config_8php.html" target="_self">config.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_2_0_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="redbasic_2php_2style_8php.html" target="_self">style.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_2_0_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="redbasic_2php_2theme_8php.html" target="_self">theme.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_2_0_3_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="theme_2redbasic_2php_2theme__init_8php.html" target="_self">theme_init.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_2_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_3_2_2_1_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('3_2_2_1_')"/><img id="img_3_2_2_1_" src="ftv2folderclosed.png" alt="+" width="24" height="22" onclick="toggleFolder('3_2_2_1_')"/><a class="el" href="dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.html" target="_self">schema</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_2_1_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="dark_8php.html" target="_self">dark.php</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_2_1_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="notred_8php.html" target="_self">notred.php</a></td><td class="desc"></td></tr>
<tr id="row_4_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="boot_8php.html" target="_self">boot.php</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
diff --git a/doc/html/filestorage_8php.html b/doc/html/filestorage_8php.html
index 7b3d146ab..91508e06f 100644
--- a/doc/html/filestorage_8php.html
+++ b/doc/html/filestorage_8php.html
@@ -112,6 +112,8 @@ $(document).ready(function(){initNavTree('filestorage_8php.html','');});
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
+<tr class="memitem:ad3b64e3ece9831f9d3a9f00c0ae983cd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd">filestorage_post</a> (&amp;$a)</td></tr>
+<tr class="separator:ad3b64e3ece9831f9d3a9f00c0ae983cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61bb1be78472555df4ce619f51014040"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content</a> (&amp;$a)</td></tr>
<tr class="separator:a61bb1be78472555df4ce619f51014040"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -132,6 +134,22 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="ad3b64e3ece9831f9d3a9f00c0ae983cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">filestorage_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/filestorage_8php.js b/doc/html/filestorage_8php.js
index 347b67626..86f35b70c 100644
--- a/doc/html/filestorage_8php.js
+++ b/doc/html/filestorage_8php.js
@@ -1,4 +1,5 @@
var filestorage_8php =
[
- [ "filestorage_content", "filestorage_8php.html#a61bb1be78472555df4ce619f51014040", null ]
+ [ "filestorage_content", "filestorage_8php.html#a61bb1be78472555df4ce619f51014040", null ],
+ [ "filestorage_post", "filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd", null ]
]; \ No newline at end of file
diff --git a/doc/html/fpostit_8php.html b/doc/html/fpostit_8php.html
index c0007a22e..b17a11384 100644
--- a/doc/html/fpostit_8php.html
+++ b/doc/html/fpostit_8php.html
@@ -118,11 +118,11 @@ Functions</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
-<tr class="memitem:a501b5ca82f287509fc691c88524064c1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(($_POST[&quot;friendika_acct_name&quot;]!= <br class="typebreak"/>
+<tr class="memitem:a501b5ca82f287509fc691c88524064c1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(($_POST[&quot;friendika_acct_name&quot;]!= <br class="typebreak"/>
'')&amp;&amp;($_POST[&quot;friendika_password&quot;]!= <br class="typebreak"/>
'')) if(isset($_GET['title'])) <br class="typebreak"/>
-<a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(isset($_GET['text'])) <a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(isset($_GET['url'])) <br class="typebreak"/>
-<a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>((isset($title))&amp;&amp;(isset($text))&amp;&amp;(isset($url)))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpostit_8php.html#a501b5ca82f287509fc691c88524064c1">else</a></td></tr>
+<a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(isset($_GET['text'])) <a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(isset($_GET['url'])) <br class="typebreak"/>
+<a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>((isset($title))&amp;&amp;(isset($text))&amp;&amp;(isset($url)))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpostit_8php.html#a501b5ca82f287509fc691c88524064c1">else</a></td></tr>
<tr class="separator:a501b5ca82f287509fc691c88524064c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
@@ -158,7 +158,7 @@ Variables</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (isset($_POST['submit'])) else</td>
+ <td class="memname"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (isset($_POST['submit'])) else</td>
</tr>
</table>
</div><div class="memdoc">
diff --git a/doc/html/full_8php.html b/doc/html/full_8php.html
index 2e22f58c7..acfbf2149 100644
--- a/doc/html/full_8php.html
+++ b/doc/html/full_8php.html
@@ -112,7 +112,7 @@ $(document).ready(function(){initNavTree('full_8php.html','');});
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
-<tr class="memitem:a6fac1b4b8cdfde06ea1b7713479e92db"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="full_8php.html#a6fac1b4b8cdfde06ea1b7713479e92db">if</a> (<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>,'htmlhead')) echo $<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>['htmlhead']?&gt;&lt;/head &gt;&lt; body &gt;&lt; <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav</a> &gt;&lt;?php if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a></td></tr>
+<tr class="memitem:a6fac1b4b8cdfde06ea1b7713479e92db"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="full_8php.html#a6fac1b4b8cdfde06ea1b7713479e92db">if</a> (<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>,'htmlhead')) echo $<a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>['htmlhead']?&gt;&lt;/head &gt;&lt; body &gt;&lt; <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav</a> &gt;&lt;?php if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a></td></tr>
<tr class="separator:a6fac1b4b8cdfde06ea1b7713479e92db"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Variable Documentation</h2>
@@ -121,7 +121,7 @@ Variables</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>,'htmlhead')) echo $<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>['htmlhead']?&gt;&lt;/head &gt;&lt; body &gt;&lt; <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav</a> &gt;&lt;?php if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a></td>
+ <td class="memname">if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>,'htmlhead')) echo $<a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>['htmlhead']?&gt;&lt;/head &gt;&lt; body &gt;&lt; <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav</a> &gt;&lt;?php if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a></td>
</tr>
</table>
</div><div class="memdoc">
diff --git a/doc/html/functions.html b/doc/html/functions.html
index 07bf3f97b..0af65c864 100644
--- a/doc/html/functions.html
+++ b/doc/html/functions.html
@@ -154,15 +154,17 @@ $(document).ready(function(){initNavTree('functions.html','');});
<li>$argv
: <a class="el" href="classApp.html#ab3da757abe5cb45bf88f07cc51a73b58">App</a>
</li>
-<li>$attach
-: <a class="el" href="classRedInode.html#a7b317eb1230930154107ed51e54193f5">RedInode</a>
-</li>
<li>$auth
-: <a class="el" href="classRedDirectory.html#a9616af16cd19a18a6afebebcc2881c44">RedDirectory</a>
+: <a class="el" href="classRedBrowser.html#ab6d6d1e2a67e06b344a4cede1bd00b35">RedBrowser</a>
+, <a class="el" href="classRedDirectory.html#a9616af16cd19a18a6afebebcc2881c44">RedDirectory</a>
+, <a class="el" href="classRedFile.html#a4b5d0e33f919c6c175b30a55de6263f2">RedFile</a>
</li>
<li>$baseurl
: <a class="el" href="classApp.html#ad5175536561021548ae8188e24c7b80c">App</a>
</li>
+<li>$browser
+: <a class="el" href="classRedBasicAuth.html#af14337f1baad407f8a85d48205c0f30e">RedBasicAuth</a>
+</li>
<li>$cached_profile_image
: <a class="el" href="classApp.html#abe0e4fa91097f7a6588e1213a834121c">App</a>
</li>
@@ -176,8 +178,14 @@ $(document).ready(function(){initNavTree('functions.html','');});
: <a class="el" href="classApp.html#a050b0696118da47e8b30859ad1a2c149">App</a>
, <a class="el" href="classItem.html#acc32426c0f465391be8a99ad810c7b8e">Item</a>
</li>
+<li>$channel_hash
+: <a class="el" href="classRedBasicAuth.html#ad5a3ea4dc4783b242d9dc6e76478b6ef">RedBasicAuth</a>
+</li>
<li>$channel_id
-: <a class="el" href="classRedDirectory.html#ae624dcaa4d73a517f4b1616d33df690d">RedDirectory</a>
+: <a class="el" href="classRedBasicAuth.html#a2dab393650d1573e3515969a153e8354">RedBasicAuth</a>
+</li>
+<li>$channel_name
+: <a class="el" href="classRedBasicAuth.html#a438ab125b6ef46581947e35d49cdebac">RedBasicAuth</a>
</li>
<li>$children
: <a class="el" href="classItem.html#a80dcd0fb7673776c0967839d429c2a0f">Item</a>
@@ -241,9 +249,6 @@ $(document).ready(function(){initNavTree('functions.html','');});
: <a class="el" href="classdba__driver.html#af48e2afeded5285766bf92e22123ed03">dba_driver</a>
, <a class="el" href="classTemplate.html#afc4afb6f89bebcd5480022312a56cb4a">Template</a>
</li>
-<li>$dir_key
-: <a class="el" href="classRedDirectory.html#a8d5df814b2f825dd14c628a51b5829b5">RedDirectory</a>
-</li>
<li>$done
: <a class="el" href="classTemplate.html#abda4c8d049f70553338eae7c905e9d5c">Template</a>
</li>
@@ -251,9 +256,15 @@ $(document).ready(function(){initNavTree('functions.html','');});
: <a class="el" href="classApp.html#ac1a8b2cd40609b231a560201a08852ba">App</a>
, <a class="el" href="classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c">dba_driver</a>
</li>
+<li>$ext_path
+: <a class="el" href="classRedDirectory.html#a0f113244cd85c17848df991001d024f4">RedDirectory</a>
+</li>
<li>$filename
: <a class="el" href="classFriendicaSmarty.html#a33fabbd4d6eef869df496adf357ae690">FriendicaSmarty</a>
</li>
+<li>$folder_hash
+: <a class="el" href="classRedDirectory.html#aa10254abf177bb2a0e4a88495725e09b">RedDirectory</a>
+</li>
<li>$force_max_items
: <a class="el" href="classApp.html#ae3f47830543d0d902f66913def8db66b">App</a>
</li>
@@ -275,6 +286,9 @@ $(document).ready(function(){initNavTree('functions.html','');});
<li>$image
: <a class="el" href="classphoto__driver.html#a7c78b5a01afe61ba3895ac07f4869b55">photo_driver</a>
</li>
+<li>$install
+: <a class="el" href="classApp.html#a576ecb1c5b4a283221e6f2f0ec248251">App</a>
+</li>
<li>$interactive
: <a class="el" href="classApp.html#a4c7cfc62d39508086cf300dc2e39c4df">App</a>
</li>
@@ -304,6 +318,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
</li>
<li>$name
: <a class="el" href="classFriendicaSmartyEngine.html#aaba6a42101bc9ae32e36b7fa2e243f02">FriendicaSmartyEngine</a>
+, <a class="el" href="classRedFile.html#acc48c05cd5a70951cb3c615ad84f03ba">RedFile</a>
, <a class="el" href="classTemplate.html#a6eb301a51cc94d8b94f4548fbad85eae">Template</a>
</li>
<li>$nav_sel
@@ -313,12 +328,22 @@ $(document).ready(function(){initNavTree('functions.html','');});
: <a class="el" href="classTemplate.html#a8f4d17e49f42b876a97364c13fb572d1">Template</a>
</li>
<li>$observer
-: <a class="el" href="classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f">App</a>
-, <a class="el" href="classConversation.html#a8748445aa26047ebed5141f3c3cbc244">Conversation</a>
+: <a class="el" href="classConversation.html#a8748445aa26047ebed5141f3c3cbc244">Conversation</a>
+, <a class="el" href="classRedBasicAuth.html#aa75dc43b59adc98e38a98517d3fd35d1">RedBasicAuth</a>
+, <a class="el" href="classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f">App</a>
+</li>
+<li>$os_path
+: <a class="el" href="classRedDirectory.html#a3c148c07ad909985125aa4926d8d0021">RedDirectory</a>
+</li>
+<li>$owner_id
+: <a class="el" href="classRedBasicAuth.html#a09c1488a0b290f5a54dc15180c5690d7">RedBasicAuth</a>
</li>
<li>$owner_name
: <a class="el" href="classItem.html#a9594df6014b0b6f45364ea7a34510130">Item</a>
</li>
+<li>$owner_nick
+: <a class="el" href="classRedBasicAuth.html#a8d09b8d784cc810a0b3be580d05106a7">RedBasicAuth</a>
+</li>
<li>$owner_photo
: <a class="el" href="classItem.html#a078f95b4134ce3a1df344cf8d386f986">Item</a>
</li>
@@ -343,6 +368,9 @@ $(document).ready(function(){initNavTree('functions.html','');});
<li>$plugins
: <a class="el" href="classApp.html#ae9f96338f32187d308b67b980eea0008">App</a>
</li>
+<li>$poi
+: <a class="el" href="classApp.html#a1936f2afce0dc0d1bbed15ae1f2ee81a">App</a>
+</li>
<li>$prepared_item
: <a class="el" href="classConversation.html#a5b6adbb2fe24f0f53d6c22660dff91b2">Conversation</a>
</li>
@@ -376,6 +404,9 @@ $(document).ready(function(){initNavTree('functions.html','');});
<li>$replace
: <a class="el" href="classTemplate.html#a4e86b566c3f728e95ce5db1b33665c10">Template</a>
</li>
+<li>$root_dir
+: <a class="el" href="classRedDirectory.html#ad87c514a307ec97ba0f1372e9bcfa6a4">RedDirectory</a>
+</li>
<li>$scheme
: <a class="el" href="classApp.html#ad082d63acc078e5bf23825a03bdd6a76">App</a>
</li>
@@ -416,7 +447,8 @@ $(document).ready(function(){initNavTree('functions.html','');});
: <a class="el" href="classConversation.html#a41f4a549e6a99f98935c4742addd22c8">Conversation</a>
</li>
<li>$timezone
-: <a class="el" href="classApp.html#ab35b01a366a2ea95725e97af278f87ab">App</a>
+: <a class="el" href="classRedBasicAuth.html#a2d0246ed446fd5e55c17938b4ce6ac47">RedBasicAuth</a>
+, <a class="el" href="classApp.html#ab35b01a366a2ea95725e97af278f87ab">App</a>
</li>
<li>$toplevel
: <a class="el" href="classItem.html#a5cfa6cf964f433a917a81cab079ff9d8">Item</a>
diff --git a/doc/html/functions_0x5f.html b/doc/html/functions_0x5f.html
index ed59f06f7..7caef9ab3 100644
--- a/doc/html/functions_0x5f.html
+++ b/doc/html/functions_0x5f.html
@@ -144,10 +144,10 @@ $(document).ready(function(){initNavTree('functions_0x5f.html','');});
, <a class="el" href="classConversation.html#af84ea6ccd72214c9bb4c504461cc8b09">Conversation</a>
, <a class="el" href="classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6">FriendicaSmarty</a>
, <a class="el" href="classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae">photo_driver</a>
-, <a class="el" href="classRedInode.html#a21a6f92921c037c868e6fae30c7c51bb">RedInode</a>
+, <a class="el" href="classRedDirectory.html#a1e35e3cd31d2a15250655e4cafdea180">RedDirectory</a>
, <a class="el" href="classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6">FriendicaSmartyEngine</a>
-, <a class="el" href="classRedDirectory.html#add0bf2c049230fec4913e769d126e6e6">RedDirectory</a>
-, <a class="el" href="classRedFile.html#ad4588b90004a2741b1a4ced10355904c">RedFile</a>
+, <a class="el" href="classRedFile.html#a9a67bdb34c9db6ce144b3f371148b183">RedFile</a>
+, <a class="el" href="classRedBrowser.html#a4b76be9ccef0262cf78fffb4129eda93">RedBrowser</a>
, <a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">dba_driver</a>
, <a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">Item</a>
, <a class="el" href="classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6">FKOAuth1</a>
diff --git a/doc/html/functions_0x64.html b/doc/html/functions_0x64.html
index 34949c740..1fd41d048 100644
--- a/doc/html/functions_0x64.html
+++ b/doc/html/functions_0x64.html
@@ -143,7 +143,7 @@ $(document).ready(function(){initNavTree('functions_0x64.html','');});
: <a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dba_driver</a>
</li>
<li>delete()
-: <a class="el" href="classRedInode.html#a5e8f09bc887725c3c448f8d72fe3edfc">RedInode</a>
+: <a class="el" href="classRedFile.html#aef71c9eaac7052be7dc8602eb12171e7">RedFile</a>
</li>
<li>deliver()
: <a class="el" href="classZotDriver.html#a876e3e0e4cad83c0b58c8696b344be6f">ZotDriver</a>
diff --git a/doc/html/functions_0x67.html b/doc/html/functions_0x67.html
index 65da95e12..7211cde0c 100644
--- a/doc/html/functions_0x67.html
+++ b/doc/html/functions_0x67.html
@@ -142,9 +142,12 @@ $(document).ready(function(){initNavTree('functions_0x67.html','');});
<li>gen_token()
: <a class="el" href="classFKOAuthDataStore.html#aa1a268be88ad3979bb4cc35bbb4dc819">FKOAuthDataStore</a>
</li>
+<li>generateDirectoryIndex()
+: <a class="el" href="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">RedBrowser</a>
+</li>
<li>get()
-: <a class="el" href="classCache.html#a70392b109331897bf9fdd7f1960e21de">Cache</a>
-, <a class="el" href="classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535">RedFile</a>
+: <a class="el" href="classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535">RedFile</a>
+, <a class="el" href="classCache.html#a70392b109331897bf9fdd7f1960e21de">Cache</a>
</li>
<li>get_account()
: <a class="el" href="classApp.html#a08bc87aff64f39fbc084e9d6545cee4d">App</a>
@@ -258,6 +261,9 @@ $(document).ready(function(){initNavTree('functions_0x67.html','');});
<li>get_widgets()
: <a class="el" href="classApp.html#a871898becd0697d778f36d9336253ae8">App</a>
</li>
+<li>getAssetUrl()
+: <a class="el" href="classRedBrowser.html#a87529b4988a7777b49616f5c0a1c55d3">RedBrowser</a>
+</li>
<li>getChild()
: <a class="el" href="classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569">RedDirectory</a>
</li>
@@ -267,6 +273,9 @@ $(document).ready(function(){initNavTree('functions_0x67.html','');});
<li>getContentType()
: <a class="el" href="classRedFile.html#a26416827eb68554d033d1e2e5cc6dd3b">RedFile</a>
</li>
+<li>getDir()
+: <a class="el" href="classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4">RedDirectory</a>
+</li>
<li>getETag()
: <a class="el" href="classRedFile.html#ae96d5caa2db7a461c57b24380fa87e28">RedFile</a>
</li>
@@ -277,15 +286,20 @@ $(document).ready(function(){initNavTree('functions_0x67.html','');});
: <a class="el" href="classphoto__driver.html#af769e9abb144e57002c59aa2aa8f3468">photo_driver</a>
</li>
<li>getImage()
-: <a class="el" href="classphoto__imagick.html#ad07288e0eb3922cb08cc9d33a163decc">photo_imagick</a>
+: <a class="el" href="classphoto__gd.html#a86757ba021fd80d1a5cf8c2f766a8484">photo_gd</a>
, <a class="el" href="classphoto__driver.html#ab98da263bd7341fc132c4fb6fc76e8d5">photo_driver</a>
-, <a class="el" href="classphoto__gd.html#a86757ba021fd80d1a5cf8c2f766a8484">photo_gd</a>
+, <a class="el" href="classphoto__imagick.html#ad07288e0eb3922cb08cc9d33a163decc">photo_imagick</a>
</li>
<li>getLastModified()
-: <a class="el" href="classRedInode.html#a8503d4f247186e9e55bc42b37e067fb6">RedInode</a>
+: <a class="el" href="classRedDirectory.html#a6c7e08199abc24e6eeb94a4037ef8bfc">RedDirectory</a>
+, <a class="el" href="classRedFile.html#a41562a28007789bbe7fe06d6a20eef47">RedFile</a>
</li>
<li>getName()
-: <a class="el" href="classRedInode.html#aec5706105400764124db39d4bc68d458">RedInode</a>
+: <a class="el" href="classRedFile.html#a0c961c5f49544d2502420361fa526437">RedFile</a>
+, <a class="el" href="classRedDirectory.html#af6e4475dbd5abcdede00d20b8d388583">RedDirectory</a>
+</li>
+<li>getQuotaInfo()
+: <a class="el" href="classRedDirectory.html#a2f7a574f2115f099d6dd103d5b252375">RedDirectory</a>
</li>
<li>getSize()
: <a class="el" href="classRedFile.html#acb1edbe1848fab05347746fa1ea09d8f">RedFile</a>
diff --git a/doc/html/functions_0x68.html b/doc/html/functions_0x68.html
index ef9f36a46..016fe2e28 100644
--- a/doc/html/functions_0x68.html
+++ b/doc/html/functions_0x68.html
@@ -145,6 +145,9 @@ $(document).ready(function(){initNavTree('functions_0x68.html','');});
<li>head_set_icon()
: <a class="el" href="classApp.html#a8863703a0305eaa45eb970dbd2046291">App</a>
</li>
+<li>htmlActionsPanel()
+: <a class="el" href="classRedBrowser.html#a7f6bf0bda07833f4c647557bd172e349">RedBrowser</a>
+</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/functions_0x6c.html b/doc/html/functions_0x6c.html
index 4f3e0deb8..54e6a4e07 100644
--- a/doc/html/functions_0x6c.html
+++ b/doc/html/functions_0x6c.html
@@ -144,6 +144,10 @@ $(document).ready(function(){initNavTree('functions_0x6c.html','');});
, <a class="el" href="classphoto__gd.html#a33092b889875b68bfb1c97ff123012d9">photo_gd</a>
, <a class="el" href="classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8">photo_imagick</a>
</li>
+<li>log()
+: <a class="el" href="classRedDirectory.html#a11376aed1963b4471eb1592c13c63976">RedDirectory</a>
+, <a class="el" href="classRedBasicAuth.html#a2cc8b1eac9c5a799bfb53ea7f287f3f0">RedBasicAuth</a>
+</li>
<li>loginUser()
: <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1</a>
</li>
diff --git a/doc/html/functions_0x73.html b/doc/html/functions_0x73.html
index 3b042769b..b737a6e41 100644
--- a/doc/html/functions_0x73.html
+++ b/doc/html/functions_0x73.html
@@ -211,27 +211,39 @@ $(document).ready(function(){initNavTree('functions_0x73.html','');});
<li>set_profile_owner()
: <a class="el" href="classConversation.html#a8898bddc1e8990e81dab9a13a532cc93">Conversation</a>
</li>
+<li>set_template()
+: <a class="el" href="classItem.html#af1b73df9b7c4b927e26b7e243b491f42">Item</a>
+</li>
<li>set_template_engine()
: <a class="el" href="classApp.html#a20d1890cc16b22ba79eeb0cbf2f719f7">App</a>
</li>
<li>set_widget()
: <a class="el" href="classApp.html#a123b903dfe5d3488cc68db3471d36fd2">App</a>
</li>
+<li>set_writeable()
+: <a class="el" href="classRedBrowser.html#a40fdbb9d9fe6c1243bbf135dd5b0a06f">RedBrowser</a>
+</li>
+<li>setBrowserPlugin()
+: <a class="el" href="classRedBasicAuth.html#a358ddad4abb5aa8c1382cf49a907adbc">RedBasicAuth</a>
+</li>
+<li>setCurrentUser()
+: <a class="el" href="classRedBasicAuth.html#a072e8244a9a7f191b32d3db5ac94f857">RedBasicAuth</a>
+</li>
<li>setDimensions()
: <a class="el" href="classphoto__gd.html#a1c75304bd15f3b9986f0b315fb59271e">photo_gd</a>
, <a class="el" href="classphoto__driver.html#ae663867d2c4eaa2fae50d60670920143">photo_driver</a>
, <a class="el" href="classphoto__imagick.html#af92901d252c1e6ab5b54eebedbed23bb">photo_imagick</a>
</li>
<li>setName()
-: <a class="el" href="classRedInode.html#a3d76322f25d847b123b3df37a26dd04e">RedInode</a>
+: <a class="el" href="classRedFile.html#a38a82bfc1b30028ea6ac75923e90fa25">RedFile</a>
</li>
<li>store()
: <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver</a>
</li>
<li>supportedTypes()
-: <a class="el" href="classphoto__imagick.html#a27596faca6108d9d563674d1b654a0b7">photo_imagick</a>
+: <a class="el" href="classphoto__gd.html#a16f3dd7d3559f715aa2fe3f7880836dd">photo_gd</a>
+, <a class="el" href="classphoto__imagick.html#a27596faca6108d9d563674d1b654a0b7">photo_imagick</a>
, <a class="el" href="classphoto__driver.html#a6eee8e36eaf9339f4faf80ddd43162da">photo_driver</a>
-, <a class="el" href="classphoto__gd.html#a16f3dd7d3559f715aa2fe3f7880836dd">photo_gd</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/doc/html/functions_func.html b/doc/html/functions_func.html
index d4e774f53..701cc4693 100644
--- a/doc/html/functions_func.html
+++ b/doc/html/functions_func.html
@@ -143,10 +143,10 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
, <a class="el" href="classConversation.html#af84ea6ccd72214c9bb4c504461cc8b09">Conversation</a>
, <a class="el" href="classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6">FriendicaSmarty</a>
, <a class="el" href="classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae">photo_driver</a>
-, <a class="el" href="classRedInode.html#a21a6f92921c037c868e6fae30c7c51bb">RedInode</a>
+, <a class="el" href="classRedDirectory.html#a1e35e3cd31d2a15250655e4cafdea180">RedDirectory</a>
, <a class="el" href="classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6">FriendicaSmartyEngine</a>
-, <a class="el" href="classRedDirectory.html#add0bf2c049230fec4913e769d126e6e6">RedDirectory</a>
-, <a class="el" href="classRedFile.html#ad4588b90004a2741b1a4ced10355904c">RedFile</a>
+, <a class="el" href="classRedFile.html#a9a67bdb34c9db6ce144b3f371148b183">RedFile</a>
+, <a class="el" href="classRedBrowser.html#a4b76be9ccef0262cf78fffb4129eda93">RedBrowser</a>
, <a class="el" href="classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186">dba_driver</a>
, <a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">Item</a>
, <a class="el" href="classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6">FKOAuth1</a>
diff --git a/doc/html/functions_func_0x64.html b/doc/html/functions_func_0x64.html
index 0eff5a139..05999bb82 100644
--- a/doc/html/functions_func_0x64.html
+++ b/doc/html/functions_func_0x64.html
@@ -142,7 +142,7 @@ $(document).ready(function(){initNavTree('functions_func_0x64.html','');});
: <a class="el" href="classdba__driver.html#adcc1f8955120fec0708bce39202d0422">dba_driver</a>
</li>
<li>delete()
-: <a class="el" href="classRedInode.html#a5e8f09bc887725c3c448f8d72fe3edfc">RedInode</a>
+: <a class="el" href="classRedFile.html#aef71c9eaac7052be7dc8602eb12171e7">RedFile</a>
</li>
<li>deliver()
: <a class="el" href="classZotDriver.html#a876e3e0e4cad83c0b58c8696b344be6f">ZotDriver</a>
diff --git a/doc/html/functions_func_0x67.html b/doc/html/functions_func_0x67.html
index a4e4046a9..28276423e 100644
--- a/doc/html/functions_func_0x67.html
+++ b/doc/html/functions_func_0x67.html
@@ -141,9 +141,12 @@ $(document).ready(function(){initNavTree('functions_func_0x67.html','');});
<li>gen_token()
: <a class="el" href="classFKOAuthDataStore.html#aa1a268be88ad3979bb4cc35bbb4dc819">FKOAuthDataStore</a>
</li>
+<li>generateDirectoryIndex()
+: <a class="el" href="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">RedBrowser</a>
+</li>
<li>get()
-: <a class="el" href="classCache.html#a70392b109331897bf9fdd7f1960e21de">Cache</a>
-, <a class="el" href="classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535">RedFile</a>
+: <a class="el" href="classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535">RedFile</a>
+, <a class="el" href="classCache.html#a70392b109331897bf9fdd7f1960e21de">Cache</a>
</li>
<li>get_account()
: <a class="el" href="classApp.html#a08bc87aff64f39fbc084e9d6545cee4d">App</a>
@@ -257,6 +260,9 @@ $(document).ready(function(){initNavTree('functions_func_0x67.html','');});
<li>get_widgets()
: <a class="el" href="classApp.html#a871898becd0697d778f36d9336253ae8">App</a>
</li>
+<li>getAssetUrl()
+: <a class="el" href="classRedBrowser.html#a87529b4988a7777b49616f5c0a1c55d3">RedBrowser</a>
+</li>
<li>getChild()
: <a class="el" href="classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569">RedDirectory</a>
</li>
@@ -266,6 +272,9 @@ $(document).ready(function(){initNavTree('functions_func_0x67.html','');});
<li>getContentType()
: <a class="el" href="classRedFile.html#a26416827eb68554d033d1e2e5cc6dd3b">RedFile</a>
</li>
+<li>getDir()
+: <a class="el" href="classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4">RedDirectory</a>
+</li>
<li>getETag()
: <a class="el" href="classRedFile.html#ae96d5caa2db7a461c57b24380fa87e28">RedFile</a>
</li>
@@ -276,15 +285,20 @@ $(document).ready(function(){initNavTree('functions_func_0x67.html','');});
: <a class="el" href="classphoto__driver.html#af769e9abb144e57002c59aa2aa8f3468">photo_driver</a>
</li>
<li>getImage()
-: <a class="el" href="classphoto__imagick.html#ad07288e0eb3922cb08cc9d33a163decc">photo_imagick</a>
+: <a class="el" href="classphoto__gd.html#a86757ba021fd80d1a5cf8c2f766a8484">photo_gd</a>
, <a class="el" href="classphoto__driver.html#ab98da263bd7341fc132c4fb6fc76e8d5">photo_driver</a>
-, <a class="el" href="classphoto__gd.html#a86757ba021fd80d1a5cf8c2f766a8484">photo_gd</a>
+, <a class="el" href="classphoto__imagick.html#ad07288e0eb3922cb08cc9d33a163decc">photo_imagick</a>
</li>
<li>getLastModified()
-: <a class="el" href="classRedInode.html#a8503d4f247186e9e55bc42b37e067fb6">RedInode</a>
+: <a class="el" href="classRedDirectory.html#a6c7e08199abc24e6eeb94a4037ef8bfc">RedDirectory</a>
+, <a class="el" href="classRedFile.html#a41562a28007789bbe7fe06d6a20eef47">RedFile</a>
</li>
<li>getName()
-: <a class="el" href="classRedInode.html#aec5706105400764124db39d4bc68d458">RedInode</a>
+: <a class="el" href="classRedFile.html#a0c961c5f49544d2502420361fa526437">RedFile</a>
+, <a class="el" href="classRedDirectory.html#af6e4475dbd5abcdede00d20b8d388583">RedDirectory</a>
+</li>
+<li>getQuotaInfo()
+: <a class="el" href="classRedDirectory.html#a2f7a574f2115f099d6dd103d5b252375">RedDirectory</a>
</li>
<li>getSize()
: <a class="el" href="classRedFile.html#acb1edbe1848fab05347746fa1ea09d8f">RedFile</a>
diff --git a/doc/html/functions_func_0x68.html b/doc/html/functions_func_0x68.html
index ff61d438c..355e603d1 100644
--- a/doc/html/functions_func_0x68.html
+++ b/doc/html/functions_func_0x68.html
@@ -144,6 +144,9 @@ $(document).ready(function(){initNavTree('functions_func_0x68.html','');});
<li>head_set_icon()
: <a class="el" href="classApp.html#a8863703a0305eaa45eb970dbd2046291">App</a>
</li>
+<li>htmlActionsPanel()
+: <a class="el" href="classRedBrowser.html#a7f6bf0bda07833f4c647557bd172e349">RedBrowser</a>
+</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/functions_func_0x6c.html b/doc/html/functions_func_0x6c.html
index 7eade1b08..796b98e59 100644
--- a/doc/html/functions_func_0x6c.html
+++ b/doc/html/functions_func_0x6c.html
@@ -143,6 +143,10 @@ $(document).ready(function(){initNavTree('functions_func_0x6c.html','');});
, <a class="el" href="classphoto__gd.html#a33092b889875b68bfb1c97ff123012d9">photo_gd</a>
, <a class="el" href="classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8">photo_imagick</a>
</li>
+<li>log()
+: <a class="el" href="classRedDirectory.html#a11376aed1963b4471eb1592c13c63976">RedDirectory</a>
+, <a class="el" href="classRedBasicAuth.html#a2cc8b1eac9c5a799bfb53ea7f287f3f0">RedBasicAuth</a>
+</li>
<li>loginUser()
: <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1</a>
</li>
diff --git a/doc/html/functions_func_0x73.html b/doc/html/functions_func_0x73.html
index be0ab7e00..d055a1ca6 100644
--- a/doc/html/functions_func_0x73.html
+++ b/doc/html/functions_func_0x73.html
@@ -210,27 +210,39 @@ $(document).ready(function(){initNavTree('functions_func_0x73.html','');});
<li>set_profile_owner()
: <a class="el" href="classConversation.html#a8898bddc1e8990e81dab9a13a532cc93">Conversation</a>
</li>
+<li>set_template()
+: <a class="el" href="classItem.html#af1b73df9b7c4b927e26b7e243b491f42">Item</a>
+</li>
<li>set_template_engine()
: <a class="el" href="classApp.html#a20d1890cc16b22ba79eeb0cbf2f719f7">App</a>
</li>
<li>set_widget()
: <a class="el" href="classApp.html#a123b903dfe5d3488cc68db3471d36fd2">App</a>
</li>
+<li>set_writeable()
+: <a class="el" href="classRedBrowser.html#a40fdbb9d9fe6c1243bbf135dd5b0a06f">RedBrowser</a>
+</li>
+<li>setBrowserPlugin()
+: <a class="el" href="classRedBasicAuth.html#a358ddad4abb5aa8c1382cf49a907adbc">RedBasicAuth</a>
+</li>
+<li>setCurrentUser()
+: <a class="el" href="classRedBasicAuth.html#a072e8244a9a7f191b32d3db5ac94f857">RedBasicAuth</a>
+</li>
<li>setDimensions()
: <a class="el" href="classphoto__gd.html#a1c75304bd15f3b9986f0b315fb59271e">photo_gd</a>
, <a class="el" href="classphoto__driver.html#ae663867d2c4eaa2fae50d60670920143">photo_driver</a>
, <a class="el" href="classphoto__imagick.html#af92901d252c1e6ab5b54eebedbed23bb">photo_imagick</a>
</li>
<li>setName()
-: <a class="el" href="classRedInode.html#a3d76322f25d847b123b3df37a26dd04e">RedInode</a>
+: <a class="el" href="classRedFile.html#a38a82bfc1b30028ea6ac75923e90fa25">RedFile</a>
</li>
<li>store()
: <a class="el" href="classphoto__driver.html#a642a8d0c4ad5f887c99c6af77cee287b">photo_driver</a>
</li>
<li>supportedTypes()
-: <a class="el" href="classphoto__imagick.html#a27596faca6108d9d563674d1b654a0b7">photo_imagick</a>
+: <a class="el" href="classphoto__gd.html#a16f3dd7d3559f715aa2fe3f7880836dd">photo_gd</a>
+, <a class="el" href="classphoto__imagick.html#a27596faca6108d9d563674d1b654a0b7">photo_imagick</a>
, <a class="el" href="classphoto__driver.html#a6eee8e36eaf9339f4faf80ddd43162da">photo_driver</a>
-, <a class="el" href="classphoto__gd.html#a16f3dd7d3559f715aa2fe3f7880836dd">photo_gd</a>
</li>
</ul>
</div><!-- contents -->
diff --git a/doc/html/functions_vars.html b/doc/html/functions_vars.html
index ad6f3d122..bb05f0d18 100644
--- a/doc/html/functions_vars.html
+++ b/doc/html/functions_vars.html
@@ -135,15 +135,17 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
<li>$argv
: <a class="el" href="classApp.html#ab3da757abe5cb45bf88f07cc51a73b58">App</a>
</li>
-<li>$attach
-: <a class="el" href="classRedInode.html#a7b317eb1230930154107ed51e54193f5">RedInode</a>
-</li>
<li>$auth
-: <a class="el" href="classRedDirectory.html#a9616af16cd19a18a6afebebcc2881c44">RedDirectory</a>
+: <a class="el" href="classRedBrowser.html#ab6d6d1e2a67e06b344a4cede1bd00b35">RedBrowser</a>
+, <a class="el" href="classRedDirectory.html#a9616af16cd19a18a6afebebcc2881c44">RedDirectory</a>
+, <a class="el" href="classRedFile.html#a4b5d0e33f919c6c175b30a55de6263f2">RedFile</a>
</li>
<li>$baseurl
: <a class="el" href="classApp.html#ad5175536561021548ae8188e24c7b80c">App</a>
</li>
+<li>$browser
+: <a class="el" href="classRedBasicAuth.html#af14337f1baad407f8a85d48205c0f30e">RedBasicAuth</a>
+</li>
<li>$cached_profile_image
: <a class="el" href="classApp.html#abe0e4fa91097f7a6588e1213a834121c">App</a>
</li>
@@ -157,8 +159,14 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
: <a class="el" href="classApp.html#a050b0696118da47e8b30859ad1a2c149">App</a>
, <a class="el" href="classItem.html#acc32426c0f465391be8a99ad810c7b8e">Item</a>
</li>
+<li>$channel_hash
+: <a class="el" href="classRedBasicAuth.html#ad5a3ea4dc4783b242d9dc6e76478b6ef">RedBasicAuth</a>
+</li>
<li>$channel_id
-: <a class="el" href="classRedDirectory.html#ae624dcaa4d73a517f4b1616d33df690d">RedDirectory</a>
+: <a class="el" href="classRedBasicAuth.html#a2dab393650d1573e3515969a153e8354">RedBasicAuth</a>
+</li>
+<li>$channel_name
+: <a class="el" href="classRedBasicAuth.html#a438ab125b6ef46581947e35d49cdebac">RedBasicAuth</a>
</li>
<li>$children
: <a class="el" href="classItem.html#a80dcd0fb7673776c0967839d429c2a0f">Item</a>
@@ -222,9 +230,6 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
: <a class="el" href="classdba__driver.html#af48e2afeded5285766bf92e22123ed03">dba_driver</a>
, <a class="el" href="classTemplate.html#afc4afb6f89bebcd5480022312a56cb4a">Template</a>
</li>
-<li>$dir_key
-: <a class="el" href="classRedDirectory.html#a8d5df814b2f825dd14c628a51b5829b5">RedDirectory</a>
-</li>
<li>$done
: <a class="el" href="classTemplate.html#abda4c8d049f70553338eae7c905e9d5c">Template</a>
</li>
@@ -232,9 +237,15 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
: <a class="el" href="classApp.html#ac1a8b2cd40609b231a560201a08852ba">App</a>
, <a class="el" href="classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c">dba_driver</a>
</li>
+<li>$ext_path
+: <a class="el" href="classRedDirectory.html#a0f113244cd85c17848df991001d024f4">RedDirectory</a>
+</li>
<li>$filename
: <a class="el" href="classFriendicaSmarty.html#a33fabbd4d6eef869df496adf357ae690">FriendicaSmarty</a>
</li>
+<li>$folder_hash
+: <a class="el" href="classRedDirectory.html#aa10254abf177bb2a0e4a88495725e09b">RedDirectory</a>
+</li>
<li>$force_max_items
: <a class="el" href="classApp.html#ae3f47830543d0d902f66913def8db66b">App</a>
</li>
@@ -256,6 +267,9 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
<li>$image
: <a class="el" href="classphoto__driver.html#a7c78b5a01afe61ba3895ac07f4869b55">photo_driver</a>
</li>
+<li>$install
+: <a class="el" href="classApp.html#a576ecb1c5b4a283221e6f2f0ec248251">App</a>
+</li>
<li>$interactive
: <a class="el" href="classApp.html#a4c7cfc62d39508086cf300dc2e39c4df">App</a>
</li>
@@ -285,6 +299,7 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
</li>
<li>$name
: <a class="el" href="classFriendicaSmartyEngine.html#aaba6a42101bc9ae32e36b7fa2e243f02">FriendicaSmartyEngine</a>
+, <a class="el" href="classRedFile.html#acc48c05cd5a70951cb3c615ad84f03ba">RedFile</a>
, <a class="el" href="classTemplate.html#a6eb301a51cc94d8b94f4548fbad85eae">Template</a>
</li>
<li>$nav_sel
@@ -294,12 +309,22 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
: <a class="el" href="classTemplate.html#a8f4d17e49f42b876a97364c13fb572d1">Template</a>
</li>
<li>$observer
-: <a class="el" href="classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f">App</a>
-, <a class="el" href="classConversation.html#a8748445aa26047ebed5141f3c3cbc244">Conversation</a>
+: <a class="el" href="classConversation.html#a8748445aa26047ebed5141f3c3cbc244">Conversation</a>
+, <a class="el" href="classRedBasicAuth.html#aa75dc43b59adc98e38a98517d3fd35d1">RedBasicAuth</a>
+, <a class="el" href="classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f">App</a>
+</li>
+<li>$os_path
+: <a class="el" href="classRedDirectory.html#a3c148c07ad909985125aa4926d8d0021">RedDirectory</a>
+</li>
+<li>$owner_id
+: <a class="el" href="classRedBasicAuth.html#a09c1488a0b290f5a54dc15180c5690d7">RedBasicAuth</a>
</li>
<li>$owner_name
: <a class="el" href="classItem.html#a9594df6014b0b6f45364ea7a34510130">Item</a>
</li>
+<li>$owner_nick
+: <a class="el" href="classRedBasicAuth.html#a8d09b8d784cc810a0b3be580d05106a7">RedBasicAuth</a>
+</li>
<li>$owner_photo
: <a class="el" href="classItem.html#a078f95b4134ce3a1df344cf8d386f986">Item</a>
</li>
@@ -324,6 +349,9 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
<li>$plugins
: <a class="el" href="classApp.html#ae9f96338f32187d308b67b980eea0008">App</a>
</li>
+<li>$poi
+: <a class="el" href="classApp.html#a1936f2afce0dc0d1bbed15ae1f2ee81a">App</a>
+</li>
<li>$prepared_item
: <a class="el" href="classConversation.html#a5b6adbb2fe24f0f53d6c22660dff91b2">Conversation</a>
</li>
@@ -357,6 +385,9 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
<li>$replace
: <a class="el" href="classTemplate.html#a4e86b566c3f728e95ce5db1b33665c10">Template</a>
</li>
+<li>$root_dir
+: <a class="el" href="classRedDirectory.html#ad87c514a307ec97ba0f1372e9bcfa6a4">RedDirectory</a>
+</li>
<li>$scheme
: <a class="el" href="classApp.html#ad082d63acc078e5bf23825a03bdd6a76">App</a>
</li>
@@ -397,7 +428,8 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
: <a class="el" href="classConversation.html#a41f4a549e6a99f98935c4742addd22c8">Conversation</a>
</li>
<li>$timezone
-: <a class="el" href="classApp.html#ab35b01a366a2ea95725e97af278f87ab">App</a>
+: <a class="el" href="classRedBasicAuth.html#a2d0246ed446fd5e55c17938b4ce6ac47">RedBasicAuth</a>
+, <a class="el" href="classApp.html#ab35b01a366a2ea95725e97af278f87ab">App</a>
</li>
<li>$toplevel
: <a class="el" href="classItem.html#a5cfa6cf964f433a917a81cab079ff9d8">Item</a>
diff --git a/doc/html/globals.html b/doc/html/globals.html
index 85e38e7d5..5df6b05c9 100644
--- a/doc/html/globals.html
+++ b/doc/html/globals.html
@@ -156,18 +156,6 @@ $(document).ready(function(){initNavTree('globals.html','');});
<li>$aside
: <a class="el" href="minimalisticdarkness_8php.html#a6e5d97615c6faef5dbffe04b8024ceaf">minimalisticdarkness.php</a>
</li>
-<li>$background_image
-: <a class="el" href="redbasic_2php_2style_8php.html#a339624aeef6604a2f00209a3962c6e1c">style.php</a>
-</li>
-<li>$banner_colour
-: <a class="el" href="redbasic_2php_2style_8php.html#ae587aa6949ab6e4aa77a591e60f67ee0">style.php</a>
-</li>
-<li>$bgcolour
-: <a class="el" href="redbasic_2php_2style_8php.html#a0bdce350cf14bac44976e786d1be6574">style.php</a>
-</li>
-<li>$body_font_size
-: <a class="el" href="redbasic_2php_2style_8php.html#ad78cb8a1793834626d73aca22a1501f8">style.php</a>
-</li>
<li>$bodyclass
: <a class="el" href="theme_2blogga_2php_2default_8php.html#a720581ae288aa09511670563e4205a4a">default.php</a>
</li>
@@ -180,9 +168,6 @@ $(document).ready(function(){initNavTree('globals.html','');});
<li>$comment_indent
: <a class="el" href="redbasic_2php_2style_8php.html#a5bff5012c56e34da6b3b2ed475726b27">style.php</a>
</li>
-<li>$converse_width
-: <a class="el" href="redbasic_2php_2style_8php.html#a0cb037986e32302685d4f580dedd6473">style.php</a>
-</li>
<li>$dir
: <a class="el" href="docblox__errorchecker_8php.html#a1659f0a629d408e0f849dbe4ee061e62">docblox_errorchecker.php</a>
</li>
@@ -196,15 +181,9 @@ $(document).ready(function(){initNavTree('globals.html','');});
: <a class="el" href="docblox__errorchecker_8php.html#a648a570b0f9f6e0e51b7267647c4b09b">docblox_errorchecker.php</a>
</li>
<li>$files
-: <a class="el" href="extract_8php.html#a9590b15215a21e9b42eb546aeef79704">extract.php</a>
+: <a class="el" href="typo_8php.html#a9590b15215a21e9b42eb546aeef79704">typo.php</a>
+, <a class="el" href="extract_8php.html#a9590b15215a21e9b42eb546aeef79704">extract.php</a>
, <a class="el" href="tpldebug_8php.html#a5358407d65f2ca826f96356a6642d149">tpldebug.php</a>
-, <a class="el" href="typo_8php.html#a9590b15215a21e9b42eb546aeef79704">typo.php</a>
-</li>
-<li>$font_colour
-: <a class="el" href="redbasic_2php_2style_8php.html#a68e3ff836ec87ae1370c9f4a12c21c6b">style.php</a>
-</li>
-<li>$font_size
-: <a class="el" href="redbasic_2php_2style_8php.html#afcbcf57d0b90d2e4226c2e8a1171befc">style.php</a>
</li>
<li>$gc_probability
: <a class="el" href="session_8php.html#a96b09cc763572f45280786a7b33feb7e">session.php</a>
@@ -227,12 +206,6 @@ $(document).ready(function(){initNavTree('globals.html','');});
<li>$install_wizard_pass
: <a class="el" href="setup_8php.html#addb24714bc2542aa4f4215e98fe48432">setup.php</a>
</li>
-<li>$item_colour
-: <a class="el" href="redbasic_2php_2style_8php.html#a27cb59bbc750341f448cd0c298a7ea16">style.php</a>
-</li>
-<li>$item_opacity
-: <a class="el" href="redbasic_2php_2style_8php.html#a136b0a2cdeb37f3fa506d28f82dcdbf8">style.php</a>
-</li>
<li>$itemfloat
: <a class="el" href="minimalisticdarkness_8php.html#a7e6c3d4efde4e9a2de32308081372c6b">minimalisticdarkness.php</a>
</li>
@@ -242,12 +215,6 @@ $(document).ready(function(){initNavTree('globals.html','');});
<li>$minwidth
: <a class="el" href="minimalisticdarkness_8php.html#a70bb13be8f23ec47839da81e0796f1cb">minimalisticdarkness.php</a>
</li>
-<li>$nav_colour
-: <a class="el" href="redbasic_2php_2style_8php.html#a8fdd5874587a9ad86fb05ed0be265649">style.php</a>
-</li>
-<li>$nav_min_opacity
-: <a class="el" href="redbasic_2php_2style_8php.html#ab5ec5703848e0132f8a8f3d3a53a58e1">style.php</a>
-</li>
<li>$nav_percent_min_opacity
: <a class="el" href="redbasic_2php_2style_8php.html#a01c151bf47f7da2b979aaa4cb868da4c">style.php</a>
</li>
@@ -278,21 +245,12 @@ $(document).ready(function(){initNavTree('globals.html','');});
<li>$pofile
: <a class="el" href="php2po_8php.html#a401d84ce156e49e8168bd0c4781e1be1">php2po.php</a>
</li>
-<li>$radius
-: <a class="el" href="redbasic_2php_2style_8php.html#a6502bedd57105ad1fb2dee2be9cf6351">style.php</a>
-</li>
-<li>$reply_photo
-: <a class="el" href="redbasic_2php_2style_8php.html#a0b070f2c9140a7a12a0b1f88601a29e4">style.php</a>
-</li>
<li>$res
: <a class="el" href="docblox__errorchecker_8php.html#a49a8a4009b02e49717caa88b128affc5">docblox_errorchecker.php</a>
</li>
<li>$s
: <a class="el" href="extract_8php.html#a50b05cf2e02ef0b67fcad97106dd7634">extract.php</a>
</li>
-<li>$schema
-: <a class="el" href="redbasic_2php_2style_8php.html#a83022b1d70799d2bde3d64dca9cb40ee">style.php</a>
-</li>
<li>$sectionleft
: <a class="el" href="minimalisticdarkness_8php.html#a0ac3f5b52212b0af87d513273da03ead">minimalisticdarkness.php</a>
</li>
@@ -305,26 +263,11 @@ $(document).ready(function(){initNavTree('globals.html','');});
<li>$session_expire
: <a class="el" href="session_8php.html#af0100a2642a5268594bbd5742a03d885">session.php</a>
</li>
-<li>$shadow
-: <a class="el" href="redbasic_2php_2style_8php.html#ab00dfc29448b183055d2ae61a0e1874a">style.php</a>
-</li>
-<li>$sloppy_photos
-: <a class="el" href="redbasic_2php_2style_8php.html#a6ffadaf926b41ad84c30da319011e9ad">style.php</a>
-</li>
<li>$str
: <a class="el" href="typohelper_8php.html#a7542d95618011800c61773127fa625cf">typohelper.php</a>
</li>
-<li>$toolicon_activecolour
-: <a class="el" href="redbasic_2php_2style_8php.html#acfd00ec469ca3c5e8bfac787573093f3">style.php</a>
-</li>
-<li>$toolicon_colour
-: <a class="el" href="redbasic_2php_2style_8php.html#a4161f6b8aa923f67e53f54dfb6554cdb">style.php</a>
-</li>
-<li>$top_photo
-: <a class="el" href="redbasic_2php_2style_8php.html#a810142b4bdd35a1d377ab279b02b47eb">style.php</a>
-</li>
<li>$uid
-: <a class="el" href="redbasic_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a">style.php</a>
+: <a class="el" href="apw_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a">style.php</a>
</li>
<li>$width
: <a class="el" href="minimalisticdarkness_8php.html#a5795120b4b324bc4ca83f1e6fdce7d57">minimalisticdarkness.php</a>
diff --git a/doc/html/globals_0x61.html b/doc/html/globals_0x61.html
index a4bef56e4..41dce38c8 100644
--- a/doc/html/globals_0x61.html
+++ b/doc/html/globals_0x61.html
@@ -213,6 +213,9 @@ $(document).ready(function(){initNavTree('globals_0x61.html','');});
<li>ACCOUNT_ROLE_ALLOWCODE
: <a class="el" href="boot_8php.html#a84f48897059bbd4a8738d7ee4cec6688">boot.php</a>
</li>
+<li>ACCOUNT_ROLE_SYSTEM
+: <a class="el" href="boot_8php.html#a7c2eb822d50e1554bf5c32861f36342b">boot.php</a>
+</li>
<li>account_total()
: <a class="el" href="account_8php.html#a43e3042b2723d76915a030bac3c668b6">account.php</a>
</li>
@@ -222,6 +225,9 @@ $(document).ready(function(){initNavTree('globals_0x61.html','');});
<li>account_verify_password()
: <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">auth.php</a>
</li>
+<li>achievements_content()
+: <a class="el" href="achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e">achievements.php</a>
+</li>
<li>acl_init()
: <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl.php</a>
</li>
@@ -375,9 +381,6 @@ $(document).ready(function(){initNavTree('globals_0x61.html','');});
<li>all_friends()
: <a class="el" href="socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586">socgraph.php</a>
</li>
-<li>allfriends_content()
-: <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends.php</a>
-</li>
<li>allowed_email()
: <a class="el" href="include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694">network.php</a>
</li>
@@ -585,9 +588,15 @@ $(document).ready(function(){initNavTree('globals_0x61.html','');});
<li>attach_by_hash_nodata()
: <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach.php</a>
</li>
+<li>attach_change_permissions()
+: <a class="el" href="include_2attach_8php.html#a5c0875eafb8c0f8a0620ff7a875a2221">attach.php</a>
+</li>
<li>attach_count_files()
: <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach.php</a>
</li>
+<li>attach_delete()
+: <a class="el" href="include_2attach_8php.html#a70bd666e080c2af5a91f5d14c297b8cd">attach.php</a>
+</li>
<li>ATTACH_FLAG_DIR
: <a class="el" href="boot_8php.html#aa74438cf71e48e37bf7b440b94243985">boot.php</a>
</li>
diff --git a/doc/html/globals_0x62.html b/doc/html/globals_0x62.html
index c1db54272..07b3c6724 100644
--- a/doc/html/globals_0x62.html
+++ b/doc/html/globals_0x62.html
@@ -153,9 +153,18 @@ $(document).ready(function(){initNavTree('globals_0x62.html','');});
<li>bb2diaspora()
: <a class="el" href="bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c">bb2diaspora.php</a>
</li>
+<li>bb_location()
+: <a class="el" href="bbcode_8php.html#a3435c82a6c7693557800cdeb6848d0bd">bbcode.php</a>
+</li>
<li>bb_parse_crypt()
: <a class="el" href="bbcode_8php.html#a851f5aafefe52474201b83f9fd65931f">bbcode.php</a>
</li>
+<li>bb_qr()
+: <a class="el" href="bbcode_8php.html#a98d0eecc620c19561639f06cfbe8e74c">bbcode.php</a>
+</li>
+<li>bb_sanitize_style()
+: <a class="el" href="bbcode_8php.html#a3a989cbf308a32468d171d83e9c51d1e">bbcode.php</a>
+</li>
<li>bb_ShareAttributes()
: <a class="el" href="bbcode_8php.html#a1c69e021d5e0aef97d6966bf3169c86a">bbcode.php</a>
</li>
@@ -177,6 +186,9 @@ $(document).ready(function(){initNavTree('globals_0x62.html','');});
<li>bbcode()
: <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode.php</a>
</li>
+<li>bbiframe()
+: <a class="el" href="bbcode_8php.html#a7cc811ff1939a508cfb54f39c1d584d7">bbcode.php</a>
+</li>
<li>bbtoevent()
: <a class="el" href="event_8php.html#a180cccd63c2a2f00ff432b03113531f3">event.php</a>
</li>
@@ -207,6 +219,15 @@ $(document).ready(function(){initNavTree('globals_0x62.html','');});
<li>blogtheme_imgurl()
: <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#af634a3f721c5e238530d0636d33230ec">theme.php</a>
</li>
+<li>bookmark_add()
+: <a class="el" href="include_2bookmarks_8php.html#a88ce7dee6a3dc7465aa9b8eaa45b0087">bookmarks.php</a>
+</li>
+<li>bookmarks_content()
+: <a class="el" href="mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a">bookmarks.php</a>
+</li>
+<li>bookmarks_init()
+: <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks.php</a>
+</li>
<li>breaklines()
: <a class="el" href="html2plain_8php.html#a3214912e3d00cf0a948072daccf16740">html2plain.php</a>
</li>
diff --git a/doc/html/globals_0x63.html b/doc/html/globals_0x63.html
index 3e16d0a6d..1e9987b2f 100644
--- a/doc/html/globals_0x63.html
+++ b/doc/html/globals_0x63.html
@@ -171,9 +171,6 @@ $(document).ready(function(){initNavTree('globals_0x63.html','');});
<li>chanman_remove_everything_from_network()
: <a class="el" href="include_2chanman_8php.html#a21ba9a5c961e866ff27aee3ee67bf99b">chanman.php</a>
</li>
-<li>channel_aside()
-: <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel.php</a>
-</li>
<li>channel_content()
: <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel.php</a>
</li>
@@ -198,6 +195,39 @@ $(document).ready(function(){initNavTree('globals_0x63.html','');});
<li>chanview_content()
: <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview.php</a>
</li>
+<li>chat_content()
+: <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat.php</a>
+</li>
+<li>chat_init()
+: <a class="el" href="mod_2chat_8php.html#aa9ae4782e9baef0b7314ab9527c2707e">chat.php</a>
+</li>
+<li>chat_post()
+: <a class="el" href="mod_2chat_8php.html#a999d594745597c656c9760253ae297ad">chat.php</a>
+</li>
+<li>chatroom_create()
+: <a class="el" href="include_2chat_8php.html#acdc80dba4eb796c7472b21129b435422">chat.php</a>
+</li>
+<li>chatroom_destroy()
+: <a class="el" href="include_2chat_8php.html#a2ba3af6884ecdce95de69262fe599639">chat.php</a>
+</li>
+<li>chatroom_enter()
+: <a class="el" href="include_2chat_8php.html#a2c95b545e46bfee64faa05ecf0afea91">chat.php</a>
+</li>
+<li>chatroom_leave()
+: <a class="el" href="include_2chat_8php.html#a1ee1360f7d2549c7549ae07cb5190f0f">chat.php</a>
+</li>
+<li>chatroom_list()
+: <a class="el" href="include_2chat_8php.html#aedcb532a0627b8644001a2fadab4e87a">chat.php</a>
+</li>
+<li>chatsvc_content()
+: <a class="el" href="chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9">chatsvc.php</a>
+</li>
+<li>chatsvc_init()
+: <a class="el" href="chatsvc_8php.html#a28d248b056fa47452e28ed01130e9116">chatsvc.php</a>
+</li>
+<li>chatsvc_post()
+: <a class="el" href="chatsvc_8php.html#a7c9a9b9c24a2b02eed8efd6b09632d03">chatsvc.php</a>
+</li>
<li>check_account_admin()
: <a class="el" href="account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f">account.php</a>
</li>
@@ -252,6 +282,9 @@ $(document).ready(function(){initNavTree('globals_0x63.html','');});
<li>check_smarty3()
: <a class="el" href="setup_8php.html#afd8b0b3ade1507c45325caf377bf459d">setup.php</a>
</li>
+<li>check_store()
+: <a class="el" href="setup_8php.html#ab4b71369a25021d59247c917e98d8246">setup.php</a>
+</li>
<li>check_webbie()
: <a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">text.php</a>
</li>
@@ -277,7 +310,7 @@ $(document).ready(function(){initNavTree('globals_0x63.html','');});
: <a class="el" href="boot_8php.html#a3f40aa5bafff8c4eebdc62e5121daf77">boot.php</a>
</li>
<li>cloud_init()
-: <a class="el" href="cloud_8php.html#a080071b784fe01d04ed6c09d9f2785b8">cloud.php</a>
+: <a class="el" href="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud.php</a>
</li>
<li>collect_recipients()
: <a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">items.php</a>
@@ -306,9 +339,6 @@ $(document).ready(function(){initNavTree('globals_0x63.html','');});
<li>comanche_widget()
: <a class="el" href="comanche_8php.html#a6b0191c1a63db1696a2eb139d90d9e7f">comanche.php</a>
</li>
-<li>common_aside()
-: <a class="el" href="common_8php.html#a3b12ec67b3d3edcf595c8d195da5d14a">common.php</a>
-</li>
<li>common_content()
: <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common.php</a>
</li>
@@ -345,9 +375,6 @@ $(document).ready(function(){initNavTree('globals_0x63.html','');});
<li>connect_post()
: <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect.php</a>
</li>
-<li>connections_aside()
-: <a class="el" href="connections_8php.html#af48f7ad20914760ba9874c090384e35a">connections.php</a>
-</li>
<li>connections_clone()
: <a class="el" href="connections_8php.html#a15af118efee9c948b6f8294e54a73bb2">connections.php</a>
</li>
@@ -360,6 +387,18 @@ $(document).ready(function(){initNavTree('globals_0x63.html','');});
<li>connections_post()
: <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections.php</a>
</li>
+<li>connedit_clone()
+: <a class="el" href="connedit_8php.html#a707ea7e63cf9674025b1d6b081ae74f5">connedit.php</a>
+</li>
+<li>connedit_content()
+: <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit.php</a>
+</li>
+<li>connedit_init()
+: <a class="el" href="connedit_8php.html#a4da871e075597a09a8b374b9171dd92e">connedit.php</a>
+</li>
+<li>connedit_post()
+: <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit.php</a>
+</li>
<li>construct_activity_object()
: <a class="el" href="items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee">items.php</a>
</li>
@@ -429,20 +468,11 @@ $(document).ready(function(){initNavTree('globals_0x63.html','');});
<li>create_account()
: <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">account.php</a>
</li>
-<li>create_dir_account()
-: <a class="el" href="identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd">identity.php</a>
-</li>
<li>create_identity()
: <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">identity.php</a>
</li>
-<li>crepair_content()
-: <a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair.php</a>
-</li>
-<li>crepair_init()
-: <a class="el" href="crepair_8php.html#ab089978e50df156bbfabf9f8f5ccd198">crepair.php</a>
-</li>
-<li>crepair_post()
-: <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair.php</a>
+<li>create_sys_channel()
+: <a class="el" href="identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05">identity.php</a>
</li>
<li>cronhooks_run()
: <a class="el" href="cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca">cronhooks.php</a>
diff --git a/doc/html/globals_0x64.html b/doc/html/globals_0x64.html
index bf0bb5f4d..7b0080904 100644
--- a/doc/html/globals_0x64.html
+++ b/doc/html/globals_0x64.html
@@ -237,9 +237,6 @@ $(document).ready(function(){initNavTree('globals_0x64.html','');});
<li>dir_tagblock()
: <a class="el" href="taxonomy_8php.html#a599ee71dd3194c8127b00dabec77abc1">taxonomy.php</a>
</li>
-<li>directory_aside()
-: <a class="el" href="mod_2directory_8php.html#aa1d928543212871491706216742dd73c">directory.php</a>
-</li>
<li>directory_content()
: <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory.php</a>
</li>
@@ -267,6 +264,9 @@ $(document).ready(function(){initNavTree('globals_0x64.html','');});
<li>directory_run()
: <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory.php</a>
</li>
+<li>dirprofile_init()
+: <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile.php</a>
+</li>
<li>dirsearch_content()
: <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch.php</a>
</li>
@@ -285,6 +285,9 @@ $(document).ready(function(){initNavTree('globals_0x64.html','');});
<li>dob()
: <a class="el" href="datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8">datetime.php</a>
</li>
+<li>downgrade_accounts()
+: <a class="el" href="account_8php.html#a0d183a3cb4c67a0f5e906811df7a1fc9">account.php</a>
+</li>
<li>drop_item()
: <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">items.php</a>
</li>
diff --git a/doc/html/globals_0x66.html b/doc/html/globals_0x66.html
index e5f1aed68..4fac5f32f 100644
--- a/doc/html/globals_0x66.html
+++ b/doc/html/globals_0x66.html
@@ -189,6 +189,9 @@ $(document).ready(function(){initNavTree('globals_0x66.html','');});
<li>filestorage_content()
: <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage.php</a>
</li>
+<li>filestorage_post()
+: <a class="el" href="filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd">filestorage.php</a>
+</li>
<li>find_thread_parent_index()
: <a class="el" href="conversation_8php.html#ae59703b07ce2ddf627b4172ff26058b6">conversation.php</a>
</li>
@@ -228,9 +231,6 @@ $(document).ready(function(){initNavTree('globals_0x66.html','');});
<li>follow_init()
: <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow.php</a>
</li>
-<li>follow_widget()
-: <a class="el" href="contact__widgets_8php.html#af24e693532a045954caab515942cfc6f">contact_widgets.php</a>
-</li>
<li>foreach
: <a class="el" href="typo_8php.html#a329c9c12217d2c8660c47bbc7c8df4c5">typo.php</a>
</li>
diff --git a/doc/html/globals_0x67.html b/doc/html/globals_0x67.html
index b671ce7ba..a3578bee3 100644
--- a/doc/html/globals_0x67.html
+++ b/doc/html/globals_0x67.html
@@ -147,9 +147,6 @@ $(document).ready(function(){initNavTree('globals_0x67.html','');});
<li>gender_selector()
: <a class="el" href="profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355">profile_selectors.php</a>
</li>
-<li>generate_user_guid()
-: <a class="el" href="text_8php.html#ae4f6881d7e13623f8eded6277595112a">text.php</a>
-</li>
<li>get_account_id()
: <a class="el" href="boot_8php.html#afe88b920aa285982edb817a0dd44eb37">boot.php</a>
</li>
@@ -177,6 +174,12 @@ $(document).ready(function(){initNavTree('globals_0x67.html','');});
<li>get_capath()
: <a class="el" href="include_2network_8php.html#a78e89557b2fbd344ad790846d761b0c7">network.php</a>
</li>
+<li>get_channel_by_nick()
+: <a class="el" href="identity_8php.html#ac73b3e13778c564c877554517a7f51ba">identity.php</a>
+</li>
+<li>get_cloudpath()
+: <a class="el" href="include_2attach_8php.html#a6aa00ea010ea030110faefb75eafc1ce">attach.php</a>
+</li>
<li>get_config()
: <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">config.php</a>
</li>
@@ -189,6 +192,9 @@ $(document).ready(function(){initNavTree('globals_0x67.html','');});
<li>get_db_errno()
: <a class="el" href="setup_8php.html#a8652788e8589778c5f81634a9d5b9429">setup.php</a>
</li>
+<li>get_default_profile_photo()
+: <a class="el" href="identity_8php.html#ab1485a26b032956e1496fc08c58b83ed">identity.php</a>
+</li>
<li>get_dim()
: <a class="el" href="datetime_8php.html#a7df24d72ea05922d3127363e2295174c">datetime.php</a>
</li>
@@ -219,6 +225,9 @@ $(document).ready(function(){initNavTree('globals_0x67.html','');});
<li>get_item_elements()
: <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">items.php</a>
</li>
+<li>get_language_name()
+: <a class="el" href="language_8php.html#a43e6ddba9df019c9ac3ab4c94c444ae7">language.php</a>
+</li>
<li>get_mail_elements()
: <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">items.php</a>
</li>
@@ -243,6 +252,9 @@ $(document).ready(function(){initNavTree('globals_0x67.html','');});
<li>get_observer_hash()
: <a class="el" href="boot_8php.html#a623e49c79943f3e7bdb770d021683cf7">boot.php</a>
</li>
+<li>get_online_status()
+: <a class="el" href="identity_8php.html#a332df795f684788002f5a6424abacfd7">identity.php</a>
+</li>
<li>get_pconfig()
: <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">config.php</a>
</li>
@@ -250,7 +262,7 @@ $(document).ready(function(){initNavTree('globals_0x67.html','');});
: <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">permissions.php</a>
</li>
<li>get_plink()
-: <a class="el" href="text_8php.html#a3ef8c0cf31f35f77462067de8712fa34">text.php</a>
+: <a class="el" href="text_8php.html#aac0969ae09853205992ba06ab9f9f61a">text.php</a>
</li>
<li>get_plugin_info()
: <a class="el" href="plugin_8php.html#aff0178bd8d0b34a94d5efddc883edd35">plugin.php</a>
@@ -270,6 +282,9 @@ $(document).ready(function(){initNavTree('globals_0x67.html','');});
<li>get_rpost_path()
: <a class="el" href="zot_8php.html#a8e22dbc6f884be3644a892a876cbd972">zot.php</a>
</li>
+<li>get_sys_channel()
+: <a class="el" href="identity_8php.html#aaff86ee3b5984821e7a256c2da5f1a51">identity.php</a>
+</li>
<li>get_tags()
: <a class="el" href="text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623">text.php</a>
</li>
@@ -288,6 +303,12 @@ $(document).ready(function(){initNavTree('globals_0x67.html','');});
<li>get_theme_uid()
: <a class="el" href="identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">identity.php</a>
</li>
+<li>get_things()
+: <a class="el" href="taxonomy_8php.html#a7747fa859ac56fbffd4f9782d85505de">taxonomy.php</a>
+</li>
+<li>get_words()
+: <a class="el" href="spam_8php.html#ab8fd81a82c9622cbebb8ceab6b310ca6">spam.php</a>
+</li>
<li>get_xconfig()
: <a class="el" href="include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e">config.php</a>
</li>
@@ -312,9 +333,6 @@ $(document).ready(function(){initNavTree('globals_0x67.html','');});
<li>group_add_member()
: <a class="el" href="include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b">group.php</a>
</li>
-<li>group_aside()
-: <a class="el" href="mod_2group_8php.html#aeb0784dd928e53e6d8693513bec8928c">group.php</a>
-</li>
<li>group_byname()
: <a class="el" href="include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb">group.php</a>
</li>
@@ -340,7 +358,7 @@ $(document).ready(function(){initNavTree('globals_0x67.html','');});
: <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">acl_selectors.php</a>
</li>
<li>group_side()
-: <a class="el" href="include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17">group.php</a>
+: <a class="el" href="include_2group_8php.html#a6a69bd7be032fa8ce4e49c43a42cc6e9">group.php</a>
</li>
<li>groups_containing()
: <a class="el" href="include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f">group.php</a>
diff --git a/doc/html/globals_0x68.html b/doc/html/globals_0x68.html
index fd225fed0..9d9ea946c 100644
--- a/doc/html/globals_0x68.html
+++ b/doc/html/globals_0x68.html
@@ -145,17 +145,11 @@ $(document).ready(function(){initNavTree('globals_0x68.html','');});
<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
<li>handle_tag()
-: <a class="el" href="item_8php.html#abd0e603a6696051af16476eb968d52e7">item.php</a>
+: <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">item.php</a>
</li>
<li>has_permissions()
: <a class="el" href="items_8php.html#a77051724d1784074ff187e73a4db93fe">items.php</a>
</li>
-<li>hcard_aside()
-: <a class="el" href="hcard_8php.html#a956c7cae2009652a37900306e5b7b73d">hcard.php</a>
-</li>
-<li>hcard_init()
-: <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard.php</a>
-</li>
<li>head_add_css()
: <a class="el" href="plugin_8php.html#a23c4fccf1eb5fcd63b24783ba1f05f7a">plugin.php</a>
</li>
@@ -171,12 +165,24 @@ $(document).ready(function(){initNavTree('globals_0x68.html','');});
<li>head_get_js()
: <a class="el" href="plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1">plugin.php</a>
</li>
+<li>head_remove_css()
+: <a class="el" href="plugin_8php.html#a9ab6caae31935f6cf781ce7872db7cdf">plugin.php</a>
+</li>
+<li>head_remove_js()
+: <a class="el" href="plugin_8php.html#a4a0ae7b881e7c8af99a69e3b03f898b4">plugin.php</a>
+</li>
<li>head_set_icon()
: <a class="el" href="boot_8php.html#a0e4701c9742c3ef88f02ac450a042a84">boot.php</a>
</li>
<li>help_content()
: <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help.php</a>
</li>
+<li>home_content()
+: <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home.php</a>
+</li>
+<li>home_init()
+: <a class="el" href="home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde">home.php</a>
+</li>
<li>hostxrd_init()
: <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd.php</a>
</li>
diff --git a/doc/html/globals_0x69.html b/doc/html/globals_0x69.html
index b7e2cc9a6..0d880f0ff 100644
--- a/doc/html/globals_0x69.html
+++ b/doc/html/globals_0x69.html
@@ -155,11 +155,13 @@ $(document).ready(function(){initNavTree('globals_0x69.html','');});
</li>
<li>if
: <a class="el" href="php2po_8php.html#a45b05625748f412ec97afcd61cf7980b">php2po.php</a>
-, <a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">style.php</a>
, <a class="el" href="php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762">default.php</a>
, <a class="el" href="full_8php.html#a6fac1b4b8cdfde06ea1b7713479e92db">full.php</a>
, <a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">style.php</a>
</li>
+<li>import_author_rss()
+: <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">items.php</a>
+</li>
<li>import_author_xchan()
: <a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">items.php</a>
</li>
@@ -182,7 +184,7 @@ $(document).ready(function(){initNavTree('globals_0x69.html','');});
: <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import.php</a>
</li>
<li>import_profile_photo()
-: <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">photo_driver.php</a>
+: <a class="el" href="photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887">photo_driver.php</a>
</li>
<li>import_site()
: <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">zot.php</a>
@@ -202,15 +204,6 @@ $(document).ready(function(){initNavTree('globals_0x69.html','');});
<li>install_plugin()
: <a class="el" href="plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5">plugin.php</a>
</li>
-<li>intro_aside()
-: <a class="el" href="intro_8php.html#abc3abf25da64f98f215126eb08c7936b">intro.php</a>
-</li>
-<li>intro_content()
-: <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro.php</a>
-</li>
-<li>intro_post()
-: <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro.php</a>
-</li>
<li>invite_content()
: <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite.php</a>
</li>
@@ -223,12 +216,24 @@ $(document).ready(function(){initNavTree('globals_0x69.html','');});
<li>is_ajax()
: <a class="el" href="boot_8php.html#ac17fc8a416ea79e9d5cb4dc9a8ff8c5c">boot.php</a>
</li>
+<li>is_foreigner()
+: <a class="el" href="identity_8php.html#ae2b140df652a55ca11bb6a99005fce35">identity.php</a>
+</li>
+<li>is_member()
+: <a class="el" href="identity_8php.html#a9637c557e13d9671f3eeb124ab98212a">identity.php</a>
+</li>
<li>is_site_admin()
: <a class="el" href="boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e">boot.php</a>
</li>
+<li>is_windows()
+: <a class="el" href="boot_8php.html#ac5e74f899f6e98d8e91b14ba1c08bc08">boot.php</a>
+</li>
<li>ITEM_BLOCKED
: <a class="el" href="boot_8php.html#ab28dc518fa90b6f617dd8c564eb4f35f">boot.php</a>
</li>
+<li>ITEM_BUG
+: <a class="el" href="boot_8php.html#a87b0f279f8413c7e4d805c5d85f20d34">boot.php</a>
+</li>
<li>ITEM_BUILDBLOCK
: <a class="el" href="boot_8php.html#a7fc4b291a7cdaa48b38e27344ea183cf">boot.php</a>
</li>
diff --git a/doc/html/globals_0x6c.html b/doc/html/globals_0x6c.html
index 3124f0a25..b4b05d4d3 100644
--- a/doc/html/globals_0x6c.html
+++ b/doc/html/globals_0x6c.html
@@ -153,15 +153,6 @@ $(document).ready(function(){initNavTree('globals_0x6c.html','');});
<li>LANGUAGE_DETECT_MIN_LENGTH
: <a class="el" href="boot_8php.html#a17cf72338b040891781a4bcbdd9a8595">boot.php</a>
</li>
-<li>lastpost_aside()
-: <a class="el" href="lastpost_8php.html#a6108289ef2a767495c7c85a24f364983">lastpost.php</a>
-</li>
-<li>lastpost_content()
-: <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost.php</a>
-</li>
-<li>lastpost_init()
-: <a class="el" href="lastpost_8php.html#ab4c6ebd25736af678e64d55ce508ce8c">lastpost.php</a>
-</li>
<li>layout_select()
: <a class="el" href="text_8php.html#a3999a0b3e22e440f280ee791ce34d384">text.php</a>
</li>
@@ -216,6 +207,9 @@ $(document).ready(function(){initNavTree('globals_0x6c.html','');});
<li>load_xconfig()
: <a class="el" href="include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33">config.php</a>
</li>
+<li>local_dir_update()
+: <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">dir_fns.php</a>
+</li>
<li>local_user()
: <a class="el" href="boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44">boot.php</a>
</li>
diff --git a/doc/html/globals_0x6d.html b/doc/html/globals_0x6d.html
index c61a2e1e6..26714be71 100644
--- a/doc/html/globals_0x6d.html
+++ b/doc/html/globals_0x6d.html
@@ -153,6 +153,9 @@ $(document).ready(function(){initNavTree('globals_0x6d.html','');});
<li>magiclink_url()
: <a class="el" href="text_8php.html#a24d441d30df4b8e6bf6780bf62a5e2c6">text.php</a>
</li>
+<li>mail_content()
+: <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail.php</a>
+</li>
<li>MAIL_DELETED
: <a class="el" href="boot_8php.html#ad0876e837cf3fad8a26417e315f6e2c8">boot.php</a>
</li>
@@ -162,6 +165,9 @@ $(document).ready(function(){initNavTree('globals_0x6d.html','');});
<li>MAIL_OBSCURED
: <a class="el" href="boot_8php.html#a44ae1542a805ffd7f826fb511db07374">boot.php</a>
</li>
+<li>mail_post()
+: <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail.php</a>
+</li>
<li>MAIL_RECALLED
: <a class="el" href="boot_8php.html#ae4861de36017fe399c1839f778bad9f5">boot.php</a>
</li>
@@ -189,6 +195,9 @@ $(document).ready(function(){initNavTree('globals_0x6d.html','');});
<li>match_content()
: <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match.php</a>
</li>
+<li>match_openid()
+: <a class="el" href="auth_8php.html#ab7be44ee051c0aa29847807cf2c5dd38">auth.php</a>
+</li>
<li>MAX_IMAGE_LENGTH
: <a class="el" href="boot_8php.html#a525ca93ff35d3535d1a2b8ba57876afa">boot.php</a>
</li>
@@ -201,6 +210,9 @@ $(document).ready(function(){initNavTree('globals_0x6d.html','');});
<li>menu_add_item()
: <a class="el" href="include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8">menu.php</a>
</li>
+<li>MENU_BOOKMARK
+: <a class="el" href="boot_8php.html#a458e19af801bc4b0d1f1ce1a6d9e857e">boot.php</a>
+</li>
<li>menu_content()
: <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu.php</a>
</li>
@@ -235,22 +247,19 @@ $(document).ready(function(){initNavTree('globals_0x6d.html','');});
: <a class="el" href="boot_8php.html#aed0dfb35f7dd00dc9e4f868ea7f7ff53">boot.php</a>
</li>
<li>menu_list()
-: <a class="el" href="include_2menu_8php.html#acef15a498d52666b1c7e5c12765c689b">menu.php</a>
+: <a class="el" href="include_2menu_8php.html#a32701c4245e78ba9106eef52c08bf33d">menu.php</a>
</li>
<li>menu_post()
: <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu.php</a>
</li>
<li>menu_render()
-: <a class="el" href="include_2menu_8php.html#a890cc6237971e15f15702e6b2e88502e">menu.php</a>
+: <a class="el" href="include_2menu_8php.html#a4d7123b0577fa994770199f9b831da11">menu.php</a>
</li>
-<li>message_aside()
-: <a class="el" href="mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7">message.php</a>
+<li>MENU_SYSTEM
+: <a class="el" href="boot_8php.html#a718a801b0be6cbaef5e519516da12721">boot.php</a>
</li>
<li>message_content()
-: <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message.php</a>
-</li>
-<li>message_post()
-: <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message.php</a>
+: <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message.php</a>
</li>
<li>micropro()
: <a class="el" href="text_8php.html#a2a902f5fdba8646333e997898ac45ea3">text.php</a>
diff --git a/doc/html/globals_0x6e.html b/doc/html/globals_0x6e.html
index 2c71a4ccb..8444dcae5 100644
--- a/doc/html/globals_0x6e.html
+++ b/doc/html/globals_0x6e.html
@@ -288,6 +288,9 @@ $(document).ready(function(){initNavTree('globals_0x6e.html','');});
<li>notags()
: <a class="el" href="text_8php.html#a1af49756c8c71902a66c7e329c462beb">text.php</a>
</li>
+<li>notes_init()
+: <a class="el" href="notes_8php.html#a4dbd7b1f906440746af48b484d66535a">notes.php</a>
+</li>
<li>notice()
: <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">boot.php</a>
</li>
diff --git a/doc/html/globals_0x6f.html b/doc/html/globals_0x6f.html
index 0d80bf4f8..790779373 100644
--- a/doc/html/globals_0x6f.html
+++ b/doc/html/globals_0x6f.html
@@ -148,7 +148,7 @@ $(document).ready(function(){initNavTree('globals_0x6f.html','');});
: <a class="el" href="mod_2api_8php.html#a02ae0f60e240dc806b860edb7d582117">api.php</a>
</li>
<li>obj_verb_selector()
-: <a class="el" href="taxonomy_8php.html#ac12a651a42ed77f8dc7072c6168811a2">taxonomy.php</a>
+: <a class="el" href="taxonomy_8php.html#af387463d42ffdf7d2ab3d5b22e40a0c7">taxonomy.php</a>
</li>
<li>obj_verbs()
: <a class="el" href="taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce">taxonomy.php</a>
@@ -192,6 +192,12 @@ $(document).ready(function(){initNavTree('globals_0x6f.html','');});
<li>onepoll_run()
: <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll.php</a>
</li>
+<li>online_init()
+: <a class="el" href="online_8php.html#a80e107c84eb722b0ca11d0413b96f9f7">online.php</a>
+</li>
+<li>openid_content()
+: <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid.php</a>
+</li>
<li>opensearch_init()
: <a class="el" href="opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9">opensearch.php</a>
</li>
diff --git a/doc/html/globals_0x70.html b/doc/html/globals_0x70.html
index b5a650642..2844d6bb2 100644
--- a/doc/html/globals_0x70.html
+++ b/doc/html/globals_0x70.html
@@ -146,8 +146,6 @@ $(document).ready(function(){initNavTree('globals_0x70.html','');});
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
<li>page
: <a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">mod_import.php</a>
-, <a class="el" href="mod__new__channel_8php.html#a8db1899eeeb44dabd0904065b63627bb">mod_new_channel.php</a>
-, <a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">mod_register.php</a>
</li>
<li>PAGE_ADULT
: <a class="el" href="boot_8php.html#ace83842dbeb84f7ed9ac59a9f57a7c32">boot.php</a>
@@ -179,6 +177,9 @@ $(document).ready(function(){initNavTree('globals_0x70.html','');});
<li>PAGE_REMOVED
: <a class="el" href="boot_8php.html#a4edce16cb7f21cdafa1e85bf63d713e6">boot.php</a>
</li>
+<li>PAGE_SYSTEM
+: <a class="el" href="boot_8php.html#a6ee7a72d558d1851bbb9e3cdde377932">boot.php</a>
+</li>
<li>pagelist_widget()
: <a class="el" href="page__widgets_8php.html#ad82011c1ed90d9de8b9f34c12af5c6f0">page_widgets.php</a>
</li>
@@ -206,12 +207,18 @@ $(document).ready(function(){initNavTree('globals_0x70.html','');});
<li>perms2str()
: <a class="el" href="text_8php.html#a98fd99dee3da8cf4c148dc04efe782ee">text.php</a>
</li>
+<li>PERMS_A_BOOKMARK
+: <a class="el" href="boot_8php.html#a8b2af16eaee9e7768a88d0e437877f3b">boot.php</a>
+</li>
<li>PERMS_A_DELEGATE
: <a class="el" href="boot_8php.html#a423505ab8dbd8e39d04ae3fe1374102b">boot.php</a>
</li>
<li>PERMS_A_REPUBLISH
: <a class="el" href="boot_8php.html#aae6c941bde5fd6fce07e51dba7326ead">boot.php</a>
</li>
+<li>PERMS_AUTHED
+: <a class="el" href="boot_8php.html#a852d4036a3bed66af1534d014c4ecde2">boot.php</a>
+</li>
<li>PERMS_CONTACTS
: <a class="el" href="boot_8php.html#ab2d0e8a9b81ee548ef2ce8e4560da2f6">boot.php</a>
</li>
@@ -332,6 +339,9 @@ $(document).ready(function(){initNavTree('globals_0x70.html','');});
<li>ping_init()
: <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping.php</a>
</li>
+<li>pipe_streams()
+: <a class="el" href="include_2attach_8php.html#a5d484de2d19a93071571d6499a50ae34">attach.php</a>
+</li>
<li>pkcs5_pad()
: <a class="el" href="crypto_8php.html#ad5e51fd44cff93cfaa07a37e24a5edec">crypto.php</a>
</li>
@@ -443,9 +453,6 @@ $(document).ready(function(){initNavTree('globals_0x70.html','');});
<li>post_to_red_version
: <a class="el" href="post__to__red_8php.html#af3e7ebd361d4ed7cb6d43209970cd94a">post_to_red.php</a>
</li>
-<li>posted_date_widget()
-: <a class="el" href="items_8php.html#abe695dd89e1e10ed042c26b80114f0ed">items.php</a>
-</li>
<li>posted_dates()
: <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">items.php</a>
</li>
@@ -506,9 +513,6 @@ $(document).ready(function(){initNavTree('globals_0x70.html','');});
<li>profile_activity()
: <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">activities.php</a>
</li>
-<li>profile_aside()
-: <a class="el" href="profile_8php.html#a1a2482b775476f2f64ea5e8f4fc3fd1e">profile.php</a>
-</li>
<li>profile_content()
: <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile.php</a>
</li>
@@ -521,9 +525,6 @@ $(document).ready(function(){initNavTree('globals_0x70.html','');});
<li>profile_load()
: <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">identity.php</a>
</li>
-<li>profile_photo_aside()
-: <a class="el" href="profile__photo_8php.html#ac9cd968a767e2ae1b88383b6cdd6dbe3">profile_photo.php</a>
-</li>
<li>profile_photo_init()
: <a class="el" href="profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02">profile_photo.php</a>
</li>
@@ -539,9 +540,6 @@ $(document).ready(function(){initNavTree('globals_0x70.html','');});
<li>profiler()
: <a class="el" href="text_8php.html#a8b0a799341b1fc4cba2c3ede3e3fc9b6">text.php</a>
</li>
-<li>profiles_aside()
-: <a class="el" href="profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c">profiles.php</a>
-</li>
<li>profiles_content()
: <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles.php</a>
</li>
@@ -551,9 +549,6 @@ $(document).ready(function(){initNavTree('globals_0x70.html','');});
<li>profiles_post()
: <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles.php</a>
</li>
-<li>profperm_aside()
-: <a class="el" href="profperm_8php.html#a77fd398ae7c25142e1d9ad724ec347cc">profperm.php</a>
-</li>
<li>profperm_content()
: <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm.php</a>
</li>
diff --git a/doc/html/globals_0x71.html b/doc/html/globals_0x71.html
index c495a1b81..2ee22f485 100644
--- a/doc/html/globals_0x71.html
+++ b/doc/html/globals_0x71.html
@@ -150,9 +150,6 @@ $(document).ready(function(){initNavTree('globals_0x71.html','');});
<li>qp()
: <a class="el" href="text_8php.html#afc998d2796a6b2a08e96f7cc061e7221">text.php</a>
</li>
-<li>qsearch_init()
-: <a class="el" href="qsearch_8php.html#a0501887b95bd8fa21018b2936a668894">qsearch.php</a>
-</li>
<li>queue_run()
: <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue.php</a>
</li>
diff --git a/doc/html/globals_0x72.html b/doc/html/globals_0x72.html
index 8822626d2..ba8858b00 100644
--- a/doc/html/globals_0x72.html
+++ b/doc/html/globals_0x72.html
@@ -168,9 +168,18 @@ $(document).ready(function(){initNavTree('globals_0x72.html','');});
<li>red_comment()
: <a class="el" href="post__to__red_8php.html#a085c250d4ceff5e4f10052f3d2039823">post_to_red.php</a>
</li>
+<li>red_escape_codeblock()
+: <a class="el" href="items_8php.html#a49905ea75adfe8a2d110be344d18d6a6">items.php</a>
+</li>
+<li>red_escape_zrl_callback()
+: <a class="el" href="items_8php.html#a83a349062945d585edb4b3c5d763ab6e">items.php</a>
+</li>
<li>RED_PLATFORM
: <a class="el" href="boot_8php.html#a96ad56755a21e1361dbd7bf93c9e7ff4">boot.php</a>
</li>
+<li>red_unescape_codeblock()
+: <a class="el" href="items_8php.html#ad4ee16e3ff1eaf60428c61f82ba25e6a">items.php</a>
+</li>
<li>RED_VERSION
: <a class="el" href="boot_8php.html#a21cc29e0025943e7c28ff58cb4856ac3">boot.php</a>
</li>
@@ -186,8 +195,14 @@ $(document).ready(function(){initNavTree('globals_0x72.html','');});
<li>redbasic_init()
: <a class="el" href="redbasic_2php_2theme_8php.html#af6eb813e9fc7e2d76ac1b82bc5c0ed9b">theme.php</a>
</li>
-<li>redir_init()
-: <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir.php</a>
+<li>RedChannelList()
+: <a class="el" href="reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66">reddav.php</a>
+</li>
+<li>RedCollectionData()
+: <a class="el" href="reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266">reddav.php</a>
+</li>
+<li>RedFileData()
+: <a class="el" href="reddav_8php.html#a9f531641dfb4e43cd88ac1a9ae7e2088">reddav.php</a>
</li>
<li>reduce()
: <a class="el" href="docblox__errorchecker_8php.html#ae9562cf60aa693114603d27b55d2185f">docblox_errorchecker.php</a>
@@ -243,6 +258,9 @@ $(document).ready(function(){initNavTree('globals_0x72.html','');});
<li>reltoabs()
: <a class="el" href="text_8php.html#ad855a32bee22c3f3b9734e3a334b96f2">text.php</a>
</li>
+<li>remote_online_status()
+: <a class="el" href="identity_8php.html#a47d6f53216f23a3484061793bef29854">identity.php</a>
+</li>
<li>remote_user()
: <a class="el" href="boot_8php.html#a5542c5c2806ab8bca04bad53d47b5209">boot.php</a>
</li>
diff --git a/doc/html/globals_0x73.html b/doc/html/globals_0x73.html
index bb8384a0e..b3892df35 100644
--- a/doc/html/globals_0x73.html
+++ b/doc/html/globals_0x73.html
@@ -147,12 +147,12 @@ $(document).ready(function(){initNavTree('globals_0x73.html','');});
<li>sanitise_acl()
: <a class="el" href="text_8php.html#a9fbeae13c9abd6e27cb4d8d1817f969c">text.php</a>
</li>
-<li>saved_searches()
-: <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">network.php</a>
-</li>
<li>scale_external_images()
: <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">network.php</a>
</li>
+<li>script_path()
+: <a class="el" href="plugin_8php.html#a0e8c2ea50bfdbc39e17ccccaea21ddc3">plugin.php</a>
+</li>
<li>search()
: <a class="el" href="text_8php.html#a876e94892867019935b348b573299352">text.php</a>
</li>
@@ -165,11 +165,8 @@ $(document).ready(function(){initNavTree('globals_0x73.html','');});
<li>search_init()
: <a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search.php</a>
</li>
-<li>search_post()
-: <a class="el" href="search_8php.html#a230ec9681ddee3b5b8b40c8d550f32f7">search.php</a>
-</li>
-<li>search_saved_searches()
-: <a class="el" href="search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6">search.php</a>
+<li>searchbox()
+: <a class="el" href="text_8php.html#aae91e4d2a2c6f7a9daccd2c186ae3447">text.php</a>
</li>
<li>select_timezone()
: <a class="el" href="datetime_8php.html#a633dadba426fa2f60b25fabdb19ebc1f">datetime.php</a>
@@ -204,9 +201,6 @@ $(document).ready(function(){initNavTree('globals_0x73.html','');});
<li>set_xconfig()
: <a class="el" href="include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e">config.php</a>
</li>
-<li>settings_aside()
-: <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings.php</a>
-</li>
<li>settings_init()
: <a class="el" href="settings_8php.html#a3a4cde287482fced008583f54ba2a722">settings.php</a>
</li>
@@ -243,11 +237,11 @@ $(document).ready(function(){initNavTree('globals_0x73.html','');});
<li>sitelist_init()
: <a class="el" href="sitelist_8php.html#a665a59bf60f780b40f32c909f4a473b1">sitelist.php</a>
</li>
-<li>smile_decode()
-: <a class="el" href="text_8php.html#aca0f589be74fab1a460c57e88dad9779">text.php</a>
+<li>smile_shield()
+: <a class="el" href="text_8php.html#a10dde167249ed5abf190a7a0986878ea">text.php</a>
</li>
-<li>smile_encode()
-: <a class="el" href="text_8php.html#a44d460fcdee6247c67b9bef3ea15f3e6">text.php</a>
+<li>smile_unshield()
+: <a class="el" href="text_8php.html#a273156a6f5cddc6652ad656821cd5805">text.php</a>
</li>
<li>smilies()
: <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">text.php</a>
@@ -285,6 +279,12 @@ $(document).ready(function(){initNavTree('globals_0x73.html','');});
<li>SSL_POLICY_SELFSIGN
: <a class="el" href="boot_8php.html#adca48aee78465ae3064ca4432c0d87b5">boot.php</a>
</li>
+<li>sslify()
+: <a class="el" href="text_8php.html#a33bdb5d4bfff2ede7caf61a98ac0a2e9">text.php</a>
+</li>
+<li>sslify_init()
+: <a class="el" href="sslify_8php.html#a75b11e54a3d1fc83e7d4c0e8b4dab316">sslify.php</a>
+</li>
<li>starred_init()
: <a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred.php</a>
</li>
@@ -309,18 +309,21 @@ $(document).ready(function(){initNavTree('globals_0x73.html','');});
<li>string_plural_select_default()
: <a class="el" href="language_8php.html#a151e5b4689aef86a12642cbb7a00bfe0">language.php</a>
</li>
+<li>string_splitter()
+: <a class="el" href="spam_8php.html#a05861201147b9a538d006f0269255cf9">spam.php</a>
+</li>
<li>stringify_array_elms()
: <a class="el" href="text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13">text.php</a>
</li>
+<li>strip_zids()
+: <a class="el" href="text_8php.html#a2f2585385530cb935a6325c809d84a4d">text.php</a>
+</li>
<li>stripdcode_br_cb()
: <a class="el" href="bb2diaspora_8php.html#a180b0e3a7d702998be19e3c3b44b0e93">bb2diaspora.php</a>
</li>
<li>subthread_content()
: <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread.php</a>
</li>
-<li>suggest_aside()
-: <a class="el" href="suggest_8php.html#a4df91c84594d51ba56b5918de414230d">suggest.php</a>
-</li>
<li>suggest_content()
: <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest.php</a>
</li>
@@ -333,9 +336,6 @@ $(document).ready(function(){initNavTree('globals_0x73.html','');});
<li>sync_directories()
: <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">dir_fns.php</a>
</li>
-<li>syncdirs()
-: <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">dir_fns.php</a>
-</li>
<li>system_down()
: <a class="el" href="system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa">system_unavailable.php</a>
</li>
diff --git a/doc/html/globals_0x74.html b/doc/html/globals_0x74.html
index 8f69addac..74333601e 100644
--- a/doc/html/globals_0x74.html
+++ b/doc/html/globals_0x74.html
@@ -174,6 +174,9 @@ $(document).ready(function(){initNavTree('globals_0x74.html','');});
<li>template_unescape()
: <a class="el" href="template__processor_8php.html#ac635bb19a5f6eadd6b0cddefdd537c1e">template_processor.php</a>
</li>
+<li>TERM_BOOKMARK
+: <a class="el" href="boot_8php.html#a115faf8797718c3165498abbd6895843">boot.php</a>
+</li>
<li>TERM_CATEGORY
: <a class="el" href="boot_8php.html#af33d1b2e98a1e21af672005525d46dfe">boot.php</a>
</li>
@@ -229,10 +232,10 @@ $(document).ready(function(){initNavTree('globals_0x74.html','');});
: <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">items.php</a>
</li>
<li>theme_admin()
-: <a class="el" href="view_2theme_2blogga_2php_2config_8php.html#a09cd81013505f83aea0771243a1e4e53">config.php</a>
+: <a class="el" href="view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#a09cd81013505f83aea0771243a1e4e53">config.php</a>
</li>
<li>theme_admin_post()
-: <a class="el" href="view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#aef2da5582b7cb6b5f63e5ca5d69fd30b">config.php</a>
+: <a class="el" href="view_2theme_2blogga_2php_2config_8php.html#aef2da5582b7cb6b5f63e5ca5d69fd30b">config.php</a>
</li>
<li>theme_attachments()
: <a class="el" href="text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53">text.php</a>
@@ -244,7 +247,7 @@ $(document).ready(function(){initNavTree('globals_0x74.html','');});
: <a class="el" href="plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2">plugin.php</a>
</li>
<li>theme_post()
-: <a class="el" href="view_2theme_2apw_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6">config.php</a>
+: <a class="el" href="view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6">config.php</a>
</li>
<li>theme_status()
: <a class="el" href="admin_8php.html#ad4f74f33944a98b56d2c8c7601f124a4">admin.php</a>
@@ -276,6 +279,12 @@ $(document).ready(function(){initNavTree('globals_0x74.html','');});
<li>tryoembed()
: <a class="el" href="bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7">bbcode.php</a>
</li>
+<li>tryzrlaudio()
+: <a class="el" href="bbcode_8php.html#a39de4de32a9456d1ca914d0dc52bd322">bbcode.php</a>
+</li>
+<li>tryzrlvideo()
+: <a class="el" href="bbcode_8php.html#aa92f119341f4c69dcef2768a013079b8">bbcode.php</a>
+</li>
<li>tt()
: <a class="el" href="language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d">language.php</a>
</li>
diff --git a/doc/html/globals_0x75.html b/doc/html/globals_0x75.html
index 2da566338..02a5f5f8a 100644
--- a/doc/html/globals_0x75.html
+++ b/doc/html/globals_0x75.html
@@ -204,6 +204,9 @@ $(document).ready(function(){initNavTree('globals_0x75.html','');});
<li>update_queue_time()
: <a class="el" href="queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1">queue_fn.php</a>
</li>
+<li>update_remote_id()
+: <a class="el" href="items_8php.html#a2baa9e05f1e8aa3dd61c85803ae39bd6">items.php</a>
+</li>
<li>update_search_content()
: <a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search.php</a>
</li>
diff --git a/doc/html/globals_0x76.html b/doc/html/globals_0x76.html
index b6a1e3208..145d34826 100644
--- a/doc/html/globals_0x76.html
+++ b/doc/html/globals_0x76.html
@@ -162,9 +162,6 @@ $(document).ready(function(){initNavTree('globals_0x76.html','');});
<li>view_init()
: <a class="el" href="view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e">view.php</a>
</li>
-<li>viewconnections_aside()
-: <a class="el" href="viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6">viewconnections.php</a>
-</li>
<li>viewconnections_content()
: <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections.php</a>
</li>
diff --git a/doc/html/globals_0x77.html b/doc/html/globals_0x77.html
index 7de93fd83..f74429e9e 100644
--- a/doc/html/globals_0x77.html
+++ b/doc/html/globals_0x77.html
@@ -171,12 +171,78 @@ $(document).ready(function(){initNavTree('globals_0x77.html','');});
<li>while
: <a class="el" href="docblox__errorchecker_8php.html#af4ca738a05beffe9c8c23e1f7aea3c2d">docblox_errorchecker.php</a>
</li>
+<li>widget_affinity()
+: <a class="el" href="widgets_8php.html#add9b24d3304e529a7975e96122315554">widgets.php</a>
+</li>
+<li>widget_archive()
+: <a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widgets.php</a>
+</li>
+<li>widget_categories()
+: <a class="el" href="widgets_8php.html#af37fdad3b2e861d860a4a8c4d8a76c0b">widgets.php</a>
+</li>
+<li>widget_chatroom_list()
+: <a class="el" href="widgets_8php.html#a47c72aac42058ea086c9ef8651c259da">widgets.php</a>
+</li>
+<li>widget_collections()
+: <a class="el" href="widgets_8php.html#aa189a07241246d97efbee29f1c6a6f7f">widgets.php</a>
+</li>
+<li>widget_design_tools()
+: <a class="el" href="widgets_8php.html#a145ff35319cfa47a9cc07f9425bd674b">widgets.php</a>
+</li>
+<li>widget_dirsafemode()
+: <a class="el" href="widgets_8php.html#a268b01ce1ab8fe2cb346cb769b9d1091">widgets.php</a>
+</li>
+<li>widget_dirsort()
+: <a class="el" href="widgets_8php.html#a95c06bc9be133e89768746302d2ac395">widgets.php</a>
+</li>
+<li>widget_dirtags()
+: <a class="el" href="widgets_8php.html#a08035db02ff6a23260146b4c64153422">widgets.php</a>
+</li>
+<li>widget_filer()
+: <a class="el" href="widgets_8php.html#a5ab3b64496e02cab56429978ad55f1c0">widgets.php</a>
+</li>
+<li>widget_findpeople()
+: <a class="el" href="widgets_8php.html#ade630b19fb4c622b7b2f6f8ef89eefa2">widgets.php</a>
+</li>
+<li>widget_follow()
+: <a class="el" href="widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd">widgets.php</a>
+</li>
+<li>widget_fullprofile()
+: <a class="el" href="widgets_8php.html#a70442dfa079312d9d5e5ee01be51a165">widgets.php</a>
+</li>
+<li>widget_mailmenu()
+: <a class="el" href="widgets_8php.html#afa2e55a78f95667a6da082efac7fec74">widgets.php</a>
+</li>
+<li>widget_menu_preview()
+: <a class="el" href="widgets_8php.html#a3bdfb81bf9a8ddf219924fa7eaf22013">widgets.php</a>
+</li>
+<li>widget_notes()
+: <a class="el" href="widgets_8php.html#a45ea061dabe9a8372e4ca3b9e5714256">widgets.php</a>
+</li>
+<li>widget_photo_albums()
+: <a class="el" href="widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e">widgets.php</a>
+</li>
<li>widget_profile()
: <a class="el" href="widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923">widgets.php</a>
</li>
+<li>widget_savedsearch()
+: <a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widgets.php</a>
+</li>
+<li>widget_settings_menu()
+: <a class="el" href="widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01">widgets.php</a>
+</li>
+<li>widget_suggestions()
+: <a class="el" href="widgets_8php.html#a0d404276fedc59f5038cf5c085028326">widgets.php</a>
+</li>
<li>widget_tagcloud()
: <a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widgets.php</a>
</li>
+<li>widget_tagcloud_wall()
+: <a class="el" href="widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653">widgets.php</a>
+</li>
+<li>widget_vcard()
+: <a class="el" href="widgets_8php.html#abe03366fd22fd27d683518fa0765da50">widgets.php</a>
+</li>
<li>writepages_widget()
: <a class="el" href="page__widgets_8php.html#a1a1e729da27f252cab6678288a17958f">page_widgets.php</a>
</li>
diff --git a/doc/html/globals_0x78.html b/doc/html/globals_0x78.html
index 4435d4f57..f016dce14 100644
--- a/doc/html/globals_0x78.html
+++ b/doc/html/globals_0x78.html
@@ -159,12 +159,18 @@ $(document).ready(function(){initNavTree('globals_0x78.html','');});
<li>XCHAN_FLAGS_HIDDEN
: <a class="el" href="boot_8php.html#a1af3ed96de14aa0d7891b39cc75b60f2">boot.php</a>
</li>
+<li>XCHAN_FLAGS_NORMAL
+: <a class="el" href="boot_8php.html#a8fdcc4ffb365a3267bd02ce8a8d466d6">boot.php</a>
+</li>
<li>XCHAN_FLAGS_ORPHAN
: <a class="el" href="boot_8php.html#a1c923b99bf77e4203ae94e5684b6ad0f">boot.php</a>
</li>
<li>XCHAN_FLAGS_SELFCENSORED
: <a class="el" href="boot_8php.html#a5a681a672e007cdc22b43345d71f07c6">boot.php</a>
</li>
+<li>XCHAN_FLAGS_SYSTEM
+: <a class="el" href="boot_8php.html#afef254290febac854c85fc698d9483a6">boot.php</a>
+</li>
<li>xchan_mail_query()
: <a class="el" href="text_8php.html#a543447c5ed766535221e2d9636b379ee">text.php</a>
</li>
@@ -186,6 +192,9 @@ $(document).ready(function(){initNavTree('globals_0x78.html','');});
<li>xrd_init()
: <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd.php</a>
</li>
+<li>xref_init()
+: <a class="el" href="xref_8php.html#a9bee399213b8de8226b0d60834307473">xref.php</a>
+</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/globals_0x7a.html b/doc/html/globals_0x7a.html
index 4b52df618..96043b279 100644
--- a/doc/html/globals_0x7a.html
+++ b/doc/html/globals_0x7a.html
@@ -217,7 +217,7 @@ $(document).ready(function(){initNavTree('globals_0x7a.html','');});
: <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot.php</a>
</li>
<li>zot_refresh()
-: <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot.php</a>
+: <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot.php</a>
</li>
<li>zot_register_hub()
: <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot.php</a>
diff --git a/doc/html/globals_func_0x61.html b/doc/html/globals_func_0x61.html
index b1e765e82..f553207f3 100644
--- a/doc/html/globals_func_0x61.html
+++ b/doc/html/globals_func_0x61.html
@@ -164,6 +164,9 @@ $(document).ready(function(){initNavTree('globals_func_0x61.html','');});
<li>account_verify_password()
: <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">auth.php</a>
</li>
+<li>achievements_content()
+: <a class="el" href="achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e">achievements.php</a>
+</li>
<li>acl_init()
: <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl.php</a>
</li>
@@ -239,9 +242,6 @@ $(document).ready(function(){initNavTree('globals_func_0x61.html','');});
<li>all_friends()
: <a class="el" href="socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586">socgraph.php</a>
</li>
-<li>allfriends_content()
-: <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends.php</a>
-</li>
<li>allowed_email()
: <a class="el" href="include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694">network.php</a>
</li>
@@ -446,9 +446,15 @@ $(document).ready(function(){initNavTree('globals_func_0x61.html','');});
<li>attach_by_hash_nodata()
: <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach.php</a>
</li>
+<li>attach_change_permissions()
+: <a class="el" href="include_2attach_8php.html#a5c0875eafb8c0f8a0620ff7a875a2221">attach.php</a>
+</li>
<li>attach_count_files()
: <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach.php</a>
</li>
+<li>attach_delete()
+: <a class="el" href="include_2attach_8php.html#a70bd666e080c2af5a91f5d14c297b8cd">attach.php</a>
+</li>
<li>attach_init()
: <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach.php</a>
</li>
diff --git a/doc/html/globals_func_0x62.html b/doc/html/globals_func_0x62.html
index 16b779949..cb663e545 100644
--- a/doc/html/globals_func_0x62.html
+++ b/doc/html/globals_func_0x62.html
@@ -152,9 +152,18 @@ $(document).ready(function(){initNavTree('globals_func_0x62.html','');});
<li>bb2diaspora()
: <a class="el" href="bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c">bb2diaspora.php</a>
</li>
+<li>bb_location()
+: <a class="el" href="bbcode_8php.html#a3435c82a6c7693557800cdeb6848d0bd">bbcode.php</a>
+</li>
<li>bb_parse_crypt()
: <a class="el" href="bbcode_8php.html#a851f5aafefe52474201b83f9fd65931f">bbcode.php</a>
</li>
+<li>bb_qr()
+: <a class="el" href="bbcode_8php.html#a98d0eecc620c19561639f06cfbe8e74c">bbcode.php</a>
+</li>
+<li>bb_sanitize_style()
+: <a class="el" href="bbcode_8php.html#a3a989cbf308a32468d171d83e9c51d1e">bbcode.php</a>
+</li>
<li>bb_ShareAttributes()
: <a class="el" href="bbcode_8php.html#a1c69e021d5e0aef97d6966bf3169c86a">bbcode.php</a>
</li>
@@ -176,6 +185,9 @@ $(document).ready(function(){initNavTree('globals_func_0x62.html','');});
<li>bbcode()
: <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode.php</a>
</li>
+<li>bbiframe()
+: <a class="el" href="bbcode_8php.html#a7cc811ff1939a508cfb54f39c1d584d7">bbcode.php</a>
+</li>
<li>bbtoevent()
: <a class="el" href="event_8php.html#a180cccd63c2a2f00ff432b03113531f3">event.php</a>
</li>
@@ -206,6 +218,15 @@ $(document).ready(function(){initNavTree('globals_func_0x62.html','');});
<li>blogtheme_imgurl()
: <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#af634a3f721c5e238530d0636d33230ec">theme.php</a>
</li>
+<li>bookmark_add()
+: <a class="el" href="include_2bookmarks_8php.html#a88ce7dee6a3dc7465aa9b8eaa45b0087">bookmarks.php</a>
+</li>
+<li>bookmarks_content()
+: <a class="el" href="mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a">bookmarks.php</a>
+</li>
+<li>bookmarks_init()
+: <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks.php</a>
+</li>
<li>breaklines()
: <a class="el" href="html2plain_8php.html#a3214912e3d00cf0a948072daccf16740">html2plain.php</a>
</li>
diff --git a/doc/html/globals_func_0x63.html b/doc/html/globals_func_0x63.html
index f4cbc1954..01cfcc622 100644
--- a/doc/html/globals_func_0x63.html
+++ b/doc/html/globals_func_0x63.html
@@ -170,9 +170,6 @@ $(document).ready(function(){initNavTree('globals_func_0x63.html','');});
<li>chanman_remove_everything_from_network()
: <a class="el" href="include_2chanman_8php.html#a21ba9a5c961e866ff27aee3ee67bf99b">chanman.php</a>
</li>
-<li>channel_aside()
-: <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel.php</a>
-</li>
<li>channel_content()
: <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel.php</a>
</li>
@@ -197,6 +194,39 @@ $(document).ready(function(){initNavTree('globals_func_0x63.html','');});
<li>chanview_content()
: <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview.php</a>
</li>
+<li>chat_content()
+: <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat.php</a>
+</li>
+<li>chat_init()
+: <a class="el" href="mod_2chat_8php.html#aa9ae4782e9baef0b7314ab9527c2707e">chat.php</a>
+</li>
+<li>chat_post()
+: <a class="el" href="mod_2chat_8php.html#a999d594745597c656c9760253ae297ad">chat.php</a>
+</li>
+<li>chatroom_create()
+: <a class="el" href="include_2chat_8php.html#acdc80dba4eb796c7472b21129b435422">chat.php</a>
+</li>
+<li>chatroom_destroy()
+: <a class="el" href="include_2chat_8php.html#a2ba3af6884ecdce95de69262fe599639">chat.php</a>
+</li>
+<li>chatroom_enter()
+: <a class="el" href="include_2chat_8php.html#a2c95b545e46bfee64faa05ecf0afea91">chat.php</a>
+</li>
+<li>chatroom_leave()
+: <a class="el" href="include_2chat_8php.html#a1ee1360f7d2549c7549ae07cb5190f0f">chat.php</a>
+</li>
+<li>chatroom_list()
+: <a class="el" href="include_2chat_8php.html#aedcb532a0627b8644001a2fadab4e87a">chat.php</a>
+</li>
+<li>chatsvc_content()
+: <a class="el" href="chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9">chatsvc.php</a>
+</li>
+<li>chatsvc_init()
+: <a class="el" href="chatsvc_8php.html#a28d248b056fa47452e28ed01130e9116">chatsvc.php</a>
+</li>
+<li>chatsvc_post()
+: <a class="el" href="chatsvc_8php.html#a7c9a9b9c24a2b02eed8efd6b09632d03">chatsvc.php</a>
+</li>
<li>check_account_admin()
: <a class="el" href="account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f">account.php</a>
</li>
@@ -251,6 +281,9 @@ $(document).ready(function(){initNavTree('globals_func_0x63.html','');});
<li>check_smarty3()
: <a class="el" href="setup_8php.html#afd8b0b3ade1507c45325caf377bf459d">setup.php</a>
</li>
+<li>check_store()
+: <a class="el" href="setup_8php.html#ab4b71369a25021d59247c917e98d8246">setup.php</a>
+</li>
<li>check_webbie()
: <a class="el" href="text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3">text.php</a>
</li>
@@ -267,7 +300,7 @@ $(document).ready(function(){initNavTree('globals_func_0x63.html','');});
: <a class="el" href="cli__suggest_8php.html#a8f3a60fc96f4bec7d3837c4efc7725f2">cli_suggest.php</a>
</li>
<li>cloud_init()
-: <a class="el" href="cloud_8php.html#a080071b784fe01d04ed6c09d9f2785b8">cloud.php</a>
+: <a class="el" href="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud.php</a>
</li>
<li>collect_recipients()
: <a class="el" href="items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70">items.php</a>
@@ -296,9 +329,6 @@ $(document).ready(function(){initNavTree('globals_func_0x63.html','');});
<li>comanche_widget()
: <a class="el" href="comanche_8php.html#a6b0191c1a63db1696a2eb139d90d9e7f">comanche.php</a>
</li>
-<li>common_aside()
-: <a class="el" href="common_8php.html#a3b12ec67b3d3edcf595c8d195da5d14a">common.php</a>
-</li>
<li>common_content()
: <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common.php</a>
</li>
@@ -335,9 +365,6 @@ $(document).ready(function(){initNavTree('globals_func_0x63.html','');});
<li>connect_post()
: <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect.php</a>
</li>
-<li>connections_aside()
-: <a class="el" href="connections_8php.html#af48f7ad20914760ba9874c090384e35a">connections.php</a>
-</li>
<li>connections_clone()
: <a class="el" href="connections_8php.html#a15af118efee9c948b6f8294e54a73bb2">connections.php</a>
</li>
@@ -350,6 +377,18 @@ $(document).ready(function(){initNavTree('globals_func_0x63.html','');});
<li>connections_post()
: <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections.php</a>
</li>
+<li>connedit_clone()
+: <a class="el" href="connedit_8php.html#a707ea7e63cf9674025b1d6b081ae74f5">connedit.php</a>
+</li>
+<li>connedit_content()
+: <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit.php</a>
+</li>
+<li>connedit_init()
+: <a class="el" href="connedit_8php.html#a4da871e075597a09a8b374b9171dd92e">connedit.php</a>
+</li>
+<li>connedit_post()
+: <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit.php</a>
+</li>
<li>construct_activity_object()
: <a class="el" href="items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee">items.php</a>
</li>
@@ -410,20 +449,11 @@ $(document).ready(function(){initNavTree('globals_func_0x63.html','');});
<li>create_account()
: <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">account.php</a>
</li>
-<li>create_dir_account()
-: <a class="el" href="identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd">identity.php</a>
-</li>
<li>create_identity()
: <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">identity.php</a>
</li>
-<li>crepair_content()
-: <a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair.php</a>
-</li>
-<li>crepair_init()
-: <a class="el" href="crepair_8php.html#ab089978e50df156bbfabf9f8f5ccd198">crepair.php</a>
-</li>
-<li>crepair_post()
-: <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair.php</a>
+<li>create_sys_channel()
+: <a class="el" href="identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05">identity.php</a>
</li>
<li>cronhooks_run()
: <a class="el" href="cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca">cronhooks.php</a>
diff --git a/doc/html/globals_func_0x64.html b/doc/html/globals_func_0x64.html
index 407338bb3..820a3b82f 100644
--- a/doc/html/globals_func_0x64.html
+++ b/doc/html/globals_func_0x64.html
@@ -230,9 +230,6 @@ $(document).ready(function(){initNavTree('globals_func_0x64.html','');});
<li>dir_tagblock()
: <a class="el" href="taxonomy_8php.html#a599ee71dd3194c8127b00dabec77abc1">taxonomy.php</a>
</li>
-<li>directory_aside()
-: <a class="el" href="mod_2directory_8php.html#aa1d928543212871491706216742dd73c">directory.php</a>
-</li>
<li>directory_content()
: <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory.php</a>
</li>
@@ -242,6 +239,9 @@ $(document).ready(function(){initNavTree('globals_func_0x64.html','');});
<li>directory_run()
: <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory.php</a>
</li>
+<li>dirprofile_init()
+: <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile.php</a>
+</li>
<li>dirsearch_content()
: <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch.php</a>
</li>
@@ -257,6 +257,9 @@ $(document).ready(function(){initNavTree('globals_func_0x64.html','');});
<li>dob()
: <a class="el" href="datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8">datetime.php</a>
</li>
+<li>downgrade_accounts()
+: <a class="el" href="account_8php.html#a0d183a3cb4c67a0f5e906811df7a1fc9">account.php</a>
+</li>
<li>drop_item()
: <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">items.php</a>
</li>
diff --git a/doc/html/globals_func_0x66.html b/doc/html/globals_func_0x66.html
index 89475dd1f..badffe4f9 100644
--- a/doc/html/globals_func_0x66.html
+++ b/doc/html/globals_func_0x66.html
@@ -188,6 +188,9 @@ $(document).ready(function(){initNavTree('globals_func_0x66.html','');});
<li>filestorage_content()
: <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage.php</a>
</li>
+<li>filestorage_post()
+: <a class="el" href="filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd">filestorage.php</a>
+</li>
<li>find_thread_parent_index()
: <a class="el" href="conversation_8php.html#ae59703b07ce2ddf627b4172ff26058b6">conversation.php</a>
</li>
@@ -227,9 +230,6 @@ $(document).ready(function(){initNavTree('globals_func_0x66.html','');});
<li>follow_init()
: <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow.php</a>
</li>
-<li>follow_widget()
-: <a class="el" href="contact__widgets_8php.html#af24e693532a045954caab515942cfc6f">contact_widgets.php</a>
-</li>
<li>format_categories()
: <a class="el" href="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">text.php</a>
</li>
diff --git a/doc/html/globals_func_0x67.html b/doc/html/globals_func_0x67.html
index 34086b120..abf85737c 100644
--- a/doc/html/globals_func_0x67.html
+++ b/doc/html/globals_func_0x67.html
@@ -146,9 +146,6 @@ $(document).ready(function(){initNavTree('globals_func_0x67.html','');});
<li>gender_selector()
: <a class="el" href="profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355">profile_selectors.php</a>
</li>
-<li>generate_user_guid()
-: <a class="el" href="text_8php.html#ae4f6881d7e13623f8eded6277595112a">text.php</a>
-</li>
<li>get_account_id()
: <a class="el" href="boot_8php.html#afe88b920aa285982edb817a0dd44eb37">boot.php</a>
</li>
@@ -176,6 +173,12 @@ $(document).ready(function(){initNavTree('globals_func_0x67.html','');});
<li>get_capath()
: <a class="el" href="include_2network_8php.html#a78e89557b2fbd344ad790846d761b0c7">network.php</a>
</li>
+<li>get_channel_by_nick()
+: <a class="el" href="identity_8php.html#ac73b3e13778c564c877554517a7f51ba">identity.php</a>
+</li>
+<li>get_cloudpath()
+: <a class="el" href="include_2attach_8php.html#a6aa00ea010ea030110faefb75eafc1ce">attach.php</a>
+</li>
<li>get_config()
: <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">config.php</a>
</li>
@@ -188,6 +191,9 @@ $(document).ready(function(){initNavTree('globals_func_0x67.html','');});
<li>get_db_errno()
: <a class="el" href="setup_8php.html#a8652788e8589778c5f81634a9d5b9429">setup.php</a>
</li>
+<li>get_default_profile_photo()
+: <a class="el" href="identity_8php.html#ab1485a26b032956e1496fc08c58b83ed">identity.php</a>
+</li>
<li>get_dim()
: <a class="el" href="datetime_8php.html#a7df24d72ea05922d3127363e2295174c">datetime.php</a>
</li>
@@ -218,6 +224,9 @@ $(document).ready(function(){initNavTree('globals_func_0x67.html','');});
<li>get_item_elements()
: <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">items.php</a>
</li>
+<li>get_language_name()
+: <a class="el" href="language_8php.html#a43e6ddba9df019c9ac3ab4c94c444ae7">language.php</a>
+</li>
<li>get_mail_elements()
: <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">items.php</a>
</li>
@@ -242,6 +251,9 @@ $(document).ready(function(){initNavTree('globals_func_0x67.html','');});
<li>get_observer_hash()
: <a class="el" href="boot_8php.html#a623e49c79943f3e7bdb770d021683cf7">boot.php</a>
</li>
+<li>get_online_status()
+: <a class="el" href="identity_8php.html#a332df795f684788002f5a6424abacfd7">identity.php</a>
+</li>
<li>get_pconfig()
: <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">config.php</a>
</li>
@@ -249,7 +261,7 @@ $(document).ready(function(){initNavTree('globals_func_0x67.html','');});
: <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">permissions.php</a>
</li>
<li>get_plink()
-: <a class="el" href="text_8php.html#a3ef8c0cf31f35f77462067de8712fa34">text.php</a>
+: <a class="el" href="text_8php.html#aac0969ae09853205992ba06ab9f9f61a">text.php</a>
</li>
<li>get_plugin_info()
: <a class="el" href="plugin_8php.html#aff0178bd8d0b34a94d5efddc883edd35">plugin.php</a>
@@ -269,6 +281,9 @@ $(document).ready(function(){initNavTree('globals_func_0x67.html','');});
<li>get_rpost_path()
: <a class="el" href="zot_8php.html#a8e22dbc6f884be3644a892a876cbd972">zot.php</a>
</li>
+<li>get_sys_channel()
+: <a class="el" href="identity_8php.html#aaff86ee3b5984821e7a256c2da5f1a51">identity.php</a>
+</li>
<li>get_tags()
: <a class="el" href="text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623">text.php</a>
</li>
@@ -287,6 +302,12 @@ $(document).ready(function(){initNavTree('globals_func_0x67.html','');});
<li>get_theme_uid()
: <a class="el" href="identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">identity.php</a>
</li>
+<li>get_things()
+: <a class="el" href="taxonomy_8php.html#a7747fa859ac56fbffd4f9782d85505de">taxonomy.php</a>
+</li>
+<li>get_words()
+: <a class="el" href="spam_8php.html#ab8fd81a82c9622cbebb8ceab6b310ca6">spam.php</a>
+</li>
<li>get_xconfig()
: <a class="el" href="include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e">config.php</a>
</li>
@@ -302,9 +323,6 @@ $(document).ready(function(){initNavTree('globals_func_0x67.html','');});
<li>group_add_member()
: <a class="el" href="include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b">group.php</a>
</li>
-<li>group_aside()
-: <a class="el" href="mod_2group_8php.html#aeb0784dd928e53e6d8693513bec8928c">group.php</a>
-</li>
<li>group_byname()
: <a class="el" href="include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb">group.php</a>
</li>
@@ -330,7 +348,7 @@ $(document).ready(function(){initNavTree('globals_func_0x67.html','');});
: <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">acl_selectors.php</a>
</li>
<li>group_side()
-: <a class="el" href="include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17">group.php</a>
+: <a class="el" href="include_2group_8php.html#a6a69bd7be032fa8ce4e49c43a42cc6e9">group.php</a>
</li>
<li>groups_containing()
: <a class="el" href="include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f">group.php</a>
diff --git a/doc/html/globals_func_0x68.html b/doc/html/globals_func_0x68.html
index b5382ad9d..8917d5efa 100644
--- a/doc/html/globals_func_0x68.html
+++ b/doc/html/globals_func_0x68.html
@@ -144,17 +144,11 @@ $(document).ready(function(){initNavTree('globals_func_0x68.html','');});
<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
<li>handle_tag()
-: <a class="el" href="item_8php.html#abd0e603a6696051af16476eb968d52e7">item.php</a>
+: <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">item.php</a>
</li>
<li>has_permissions()
: <a class="el" href="items_8php.html#a77051724d1784074ff187e73a4db93fe">items.php</a>
</li>
-<li>hcard_aside()
-: <a class="el" href="hcard_8php.html#a956c7cae2009652a37900306e5b7b73d">hcard.php</a>
-</li>
-<li>hcard_init()
-: <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard.php</a>
-</li>
<li>head_add_css()
: <a class="el" href="plugin_8php.html#a23c4fccf1eb5fcd63b24783ba1f05f7a">plugin.php</a>
</li>
@@ -170,12 +164,24 @@ $(document).ready(function(){initNavTree('globals_func_0x68.html','');});
<li>head_get_js()
: <a class="el" href="plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1">plugin.php</a>
</li>
+<li>head_remove_css()
+: <a class="el" href="plugin_8php.html#a9ab6caae31935f6cf781ce7872db7cdf">plugin.php</a>
+</li>
+<li>head_remove_js()
+: <a class="el" href="plugin_8php.html#a4a0ae7b881e7c8af99a69e3b03f898b4">plugin.php</a>
+</li>
<li>head_set_icon()
: <a class="el" href="boot_8php.html#a0e4701c9742c3ef88f02ac450a042a84">boot.php</a>
</li>
<li>help_content()
: <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help.php</a>
</li>
+<li>home_content()
+: <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home.php</a>
+</li>
+<li>home_init()
+: <a class="el" href="home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde">home.php</a>
+</li>
<li>hostxrd_init()
: <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd.php</a>
</li>
diff --git a/doc/html/globals_func_0x69.html b/doc/html/globals_func_0x69.html
index cd82b3b08..eea70e8e8 100644
--- a/doc/html/globals_func_0x69.html
+++ b/doc/html/globals_func_0x69.html
@@ -152,6 +152,9 @@ $(document).ready(function(){initNavTree('globals_func_0x69.html','');});
<li>ids_to_querystr()
: <a class="el" href="text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a">text.php</a>
</li>
+<li>import_author_rss()
+: <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">items.php</a>
+</li>
<li>import_author_xchan()
: <a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">items.php</a>
</li>
@@ -174,7 +177,7 @@ $(document).ready(function(){initNavTree('globals_func_0x69.html','');});
: <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import.php</a>
</li>
<li>import_profile_photo()
-: <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">photo_driver.php</a>
+: <a class="el" href="photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887">photo_driver.php</a>
</li>
<li>import_site()
: <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">zot.php</a>
@@ -194,15 +197,6 @@ $(document).ready(function(){initNavTree('globals_func_0x69.html','');});
<li>install_plugin()
: <a class="el" href="plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5">plugin.php</a>
</li>
-<li>intro_aside()
-: <a class="el" href="intro_8php.html#abc3abf25da64f98f215126eb08c7936b">intro.php</a>
-</li>
-<li>intro_content()
-: <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro.php</a>
-</li>
-<li>intro_post()
-: <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro.php</a>
-</li>
<li>invite_content()
: <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite.php</a>
</li>
@@ -215,9 +209,18 @@ $(document).ready(function(){initNavTree('globals_func_0x69.html','');});
<li>is_ajax()
: <a class="el" href="boot_8php.html#ac17fc8a416ea79e9d5cb4dc9a8ff8c5c">boot.php</a>
</li>
+<li>is_foreigner()
+: <a class="el" href="identity_8php.html#ae2b140df652a55ca11bb6a99005fce35">identity.php</a>
+</li>
+<li>is_member()
+: <a class="el" href="identity_8php.html#a9637c557e13d9671f3eeb124ab98212a">identity.php</a>
+</li>
<li>is_site_admin()
: <a class="el" href="boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e">boot.php</a>
</li>
+<li>is_windows()
+: <a class="el" href="boot_8php.html#ac5e74f899f6e98d8e91b14ba1c08bc08">boot.php</a>
+</li>
<li>item_check_service_class()
: <a class="el" href="item_8php.html#a5b1b36cb301a94b38150074f0d424e74">item.php</a>
</li>
diff --git a/doc/html/globals_func_0x6c.html b/doc/html/globals_func_0x6c.html
index d361f9967..d7e6d917a 100644
--- a/doc/html/globals_func_0x6c.html
+++ b/doc/html/globals_func_0x6c.html
@@ -146,15 +146,6 @@ $(document).ready(function(){initNavTree('globals_func_0x6c.html','');});
<li>lang_selector()
: <a class="el" href="text_8php.html#a71f6952243d3fe1c5a8154f78027e29c">text.php</a>
</li>
-<li>lastpost_aside()
-: <a class="el" href="lastpost_8php.html#a6108289ef2a767495c7c85a24f364983">lastpost.php</a>
-</li>
-<li>lastpost_content()
-: <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost.php</a>
-</li>
-<li>lastpost_init()
-: <a class="el" href="lastpost_8php.html#ab4c6ebd25736af678e64d55ce508ce8c">lastpost.php</a>
-</li>
<li>layout_select()
: <a class="el" href="text_8php.html#a3999a0b3e22e440f280ee791ce34d384">text.php</a>
</li>
@@ -209,6 +200,9 @@ $(document).ready(function(){initNavTree('globals_func_0x6c.html','');});
<li>load_xconfig()
: <a class="el" href="include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33">config.php</a>
</li>
+<li>local_dir_update()
+: <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">dir_fns.php</a>
+</li>
<li>local_user()
: <a class="el" href="boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44">boot.php</a>
</li>
diff --git a/doc/html/globals_func_0x6d.html b/doc/html/globals_func_0x6d.html
index fdd3edaab..f1233bc97 100644
--- a/doc/html/globals_func_0x6d.html
+++ b/doc/html/globals_func_0x6d.html
@@ -152,6 +152,12 @@ $(document).ready(function(){initNavTree('globals_func_0x6d.html','');});
<li>magiclink_url()
: <a class="el" href="text_8php.html#a24d441d30df4b8e6bf6780bf62a5e2c6">text.php</a>
</li>
+<li>mail_content()
+: <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail.php</a>
+</li>
+<li>mail_post()
+: <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail.php</a>
+</li>
<li>mail_store()
: <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">items.php</a>
</li>
@@ -170,6 +176,9 @@ $(document).ready(function(){initNavTree('globals_func_0x6d.html','');});
<li>match_content()
: <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match.php</a>
</li>
+<li>match_openid()
+: <a class="el" href="auth_8php.html#ab7be44ee051c0aa29847807cf2c5dd38">auth.php</a>
+</li>
<li>member_of()
: <a class="el" href="include_2group_8php.html#a048f6892bfd28852de1b76470df411de">group.php</a>
</li>
@@ -204,22 +213,16 @@ $(document).ready(function(){initNavTree('globals_func_0x6d.html','');});
: <a class="el" href="include_2menu_8php.html#a47447c01ba8ea04cd74af1d4c5b68fc7">menu.php</a>
</li>
<li>menu_list()
-: <a class="el" href="include_2menu_8php.html#acef15a498d52666b1c7e5c12765c689b">menu.php</a>
+: <a class="el" href="include_2menu_8php.html#a32701c4245e78ba9106eef52c08bf33d">menu.php</a>
</li>
<li>menu_post()
: <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu.php</a>
</li>
<li>menu_render()
-: <a class="el" href="include_2menu_8php.html#a890cc6237971e15f15702e6b2e88502e">menu.php</a>
-</li>
-<li>message_aside()
-: <a class="el" href="mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7">message.php</a>
+: <a class="el" href="include_2menu_8php.html#a4d7123b0577fa994770199f9b831da11">menu.php</a>
</li>
<li>message_content()
-: <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message.php</a>
-</li>
-<li>message_post()
-: <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message.php</a>
+: <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message.php</a>
</li>
<li>micropro()
: <a class="el" href="text_8php.html#a2a902f5fdba8646333e997898ac45ea3">text.php</a>
diff --git a/doc/html/globals_func_0x6e.html b/doc/html/globals_func_0x6e.html
index 0197c2b99..8af69c3b4 100644
--- a/doc/html/globals_func_0x6e.html
+++ b/doc/html/globals_func_0x6e.html
@@ -200,6 +200,9 @@ $(document).ready(function(){initNavTree('globals_func_0x6e.html','');});
<li>notags()
: <a class="el" href="text_8php.html#a1af49756c8c71902a66c7e329c462beb">text.php</a>
</li>
+<li>notes_init()
+: <a class="el" href="notes_8php.html#a4dbd7b1f906440746af48b484d66535a">notes.php</a>
+</li>
<li>notice()
: <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">boot.php</a>
</li>
diff --git a/doc/html/globals_func_0x6f.html b/doc/html/globals_func_0x6f.html
index 2f5e4b314..3287852d1 100644
--- a/doc/html/globals_func_0x6f.html
+++ b/doc/html/globals_func_0x6f.html
@@ -147,7 +147,7 @@ $(document).ready(function(){initNavTree('globals_func_0x6f.html','');});
: <a class="el" href="mod_2api_8php.html#a02ae0f60e240dc806b860edb7d582117">api.php</a>
</li>
<li>obj_verb_selector()
-: <a class="el" href="taxonomy_8php.html#ac12a651a42ed77f8dc7072c6168811a2">taxonomy.php</a>
+: <a class="el" href="taxonomy_8php.html#af387463d42ffdf7d2ab3d5b22e40a0c7">taxonomy.php</a>
</li>
<li>obj_verbs()
: <a class="el" href="taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce">taxonomy.php</a>
@@ -191,6 +191,12 @@ $(document).ready(function(){initNavTree('globals_func_0x6f.html','');});
<li>onepoll_run()
: <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll.php</a>
</li>
+<li>online_init()
+: <a class="el" href="online_8php.html#a80e107c84eb722b0ca11d0413b96f9f7">online.php</a>
+</li>
+<li>openid_content()
+: <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid.php</a>
+</li>
<li>opensearch_init()
: <a class="el" href="opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9">opensearch.php</a>
</li>
diff --git a/doc/html/globals_func_0x70.html b/doc/html/globals_func_0x70.html
index b9d28bdc8..f74b9044c 100644
--- a/doc/html/globals_func_0x70.html
+++ b/doc/html/globals_func_0x70.html
@@ -224,6 +224,9 @@ $(document).ready(function(){initNavTree('globals_func_0x70.html','');});
<li>ping_init()
: <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping.php</a>
</li>
+<li>pipe_streams()
+: <a class="el" href="include_2attach_8php.html#a5d484de2d19a93071571d6499a50ae34">attach.php</a>
+</li>
<li>pkcs5_pad()
: <a class="el" href="crypto_8php.html#ad5e51fd44cff93cfaa07a37e24a5edec">crypto.php</a>
</li>
@@ -311,9 +314,6 @@ $(document).ready(function(){initNavTree('globals_func_0x70.html','');});
<li>post_to_red_settings_link()
: <a class="el" href="post__to__red_8php.html#a906be8f72cf1aa2e199c0683ea6a4017">post_to_red.php</a>
</li>
-<li>posted_date_widget()
-: <a class="el" href="items_8php.html#abe695dd89e1e10ed042c26b80114f0ed">items.php</a>
-</li>
<li>posted_dates()
: <a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">items.php</a>
</li>
@@ -374,9 +374,6 @@ $(document).ready(function(){initNavTree('globals_func_0x70.html','');});
<li>profile_activity()
: <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">activities.php</a>
</li>
-<li>profile_aside()
-: <a class="el" href="profile_8php.html#a1a2482b775476f2f64ea5e8f4fc3fd1e">profile.php</a>
-</li>
<li>profile_content()
: <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile.php</a>
</li>
@@ -389,9 +386,6 @@ $(document).ready(function(){initNavTree('globals_func_0x70.html','');});
<li>profile_load()
: <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">identity.php</a>
</li>
-<li>profile_photo_aside()
-: <a class="el" href="profile__photo_8php.html#ac9cd968a767e2ae1b88383b6cdd6dbe3">profile_photo.php</a>
-</li>
<li>profile_photo_init()
: <a class="el" href="profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02">profile_photo.php</a>
</li>
@@ -407,9 +401,6 @@ $(document).ready(function(){initNavTree('globals_func_0x70.html','');});
<li>profiler()
: <a class="el" href="text_8php.html#a8b0a799341b1fc4cba2c3ede3e3fc9b6">text.php</a>
</li>
-<li>profiles_aside()
-: <a class="el" href="profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c">profiles.php</a>
-</li>
<li>profiles_content()
: <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles.php</a>
</li>
@@ -419,9 +410,6 @@ $(document).ready(function(){initNavTree('globals_func_0x70.html','');});
<li>profiles_post()
: <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles.php</a>
</li>
-<li>profperm_aside()
-: <a class="el" href="profperm_8php.html#a77fd398ae7c25142e1d9ad724ec347cc">profperm.php</a>
-</li>
<li>profperm_content()
: <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm.php</a>
</li>
diff --git a/doc/html/globals_func_0x71.html b/doc/html/globals_func_0x71.html
index d4e6316bf..196c5a89f 100644
--- a/doc/html/globals_func_0x71.html
+++ b/doc/html/globals_func_0x71.html
@@ -149,9 +149,6 @@ $(document).ready(function(){initNavTree('globals_func_0x71.html','');});
<li>qp()
: <a class="el" href="text_8php.html#afc998d2796a6b2a08e96f7cc061e7221">text.php</a>
</li>
-<li>qsearch_init()
-: <a class="el" href="qsearch_8php.html#a0501887b95bd8fa21018b2936a668894">qsearch.php</a>
-</li>
<li>queue_run()
: <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue.php</a>
</li>
diff --git a/doc/html/globals_func_0x72.html b/doc/html/globals_func_0x72.html
index a1b9af5a9..8f621003b 100644
--- a/doc/html/globals_func_0x72.html
+++ b/doc/html/globals_func_0x72.html
@@ -161,6 +161,15 @@ $(document).ready(function(){initNavTree('globals_func_0x72.html','');});
<li>red_comment()
: <a class="el" href="post__to__red_8php.html#a085c250d4ceff5e4f10052f3d2039823">post_to_red.php</a>
</li>
+<li>red_escape_codeblock()
+: <a class="el" href="items_8php.html#a49905ea75adfe8a2d110be344d18d6a6">items.php</a>
+</li>
+<li>red_escape_zrl_callback()
+: <a class="el" href="items_8php.html#a83a349062945d585edb4b3c5d763ab6e">items.php</a>
+</li>
+<li>red_unescape_codeblock()
+: <a class="el" href="items_8php.html#ad4ee16e3ff1eaf60428c61f82ba25e6a">items.php</a>
+</li>
<li>red_xmlrpc_methods()
: <a class="el" href="post__to__red_8php.html#a3a2af6ad845239f26e86fccabf8639e1">post_to_red.php</a>
</li>
@@ -173,8 +182,14 @@ $(document).ready(function(){initNavTree('globals_func_0x72.html','');});
<li>redbasic_init()
: <a class="el" href="redbasic_2php_2theme_8php.html#af6eb813e9fc7e2d76ac1b82bc5c0ed9b">theme.php</a>
</li>
-<li>redir_init()
-: <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir.php</a>
+<li>RedChannelList()
+: <a class="el" href="reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66">reddav.php</a>
+</li>
+<li>RedCollectionData()
+: <a class="el" href="reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266">reddav.php</a>
+</li>
+<li>RedFileData()
+: <a class="el" href="reddav_8php.html#a9f531641dfb4e43cd88ac1a9ae7e2088">reddav.php</a>
</li>
<li>reduce()
: <a class="el" href="docblox__errorchecker_8php.html#ae9562cf60aa693114603d27b55d2185f">docblox_errorchecker.php</a>
@@ -221,6 +236,9 @@ $(document).ready(function(){initNavTree('globals_func_0x72.html','');});
<li>reltoabs()
: <a class="el" href="text_8php.html#ad855a32bee22c3f3b9734e3a334b96f2">text.php</a>
</li>
+<li>remote_online_status()
+: <a class="el" href="identity_8php.html#a47d6f53216f23a3484061793bef29854">identity.php</a>
+</li>
<li>remote_user()
: <a class="el" href="boot_8php.html#a5542c5c2806ab8bca04bad53d47b5209">boot.php</a>
</li>
diff --git a/doc/html/globals_func_0x73.html b/doc/html/globals_func_0x73.html
index ca9a9361b..c24e34214 100644
--- a/doc/html/globals_func_0x73.html
+++ b/doc/html/globals_func_0x73.html
@@ -146,12 +146,12 @@ $(document).ready(function(){initNavTree('globals_func_0x73.html','');});
<li>sanitise_acl()
: <a class="el" href="text_8php.html#a9fbeae13c9abd6e27cb4d8d1817f969c">text.php</a>
</li>
-<li>saved_searches()
-: <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">network.php</a>
-</li>
<li>scale_external_images()
: <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">network.php</a>
</li>
+<li>script_path()
+: <a class="el" href="plugin_8php.html#a0e8c2ea50bfdbc39e17ccccaea21ddc3">plugin.php</a>
+</li>
<li>search()
: <a class="el" href="text_8php.html#a876e94892867019935b348b573299352">text.php</a>
</li>
@@ -164,11 +164,8 @@ $(document).ready(function(){initNavTree('globals_func_0x73.html','');});
<li>search_init()
: <a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search.php</a>
</li>
-<li>search_post()
-: <a class="el" href="search_8php.html#a230ec9681ddee3b5b8b40c8d550f32f7">search.php</a>
-</li>
-<li>search_saved_searches()
-: <a class="el" href="search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6">search.php</a>
+<li>searchbox()
+: <a class="el" href="text_8php.html#aae91e4d2a2c6f7a9daccd2c186ae3447">text.php</a>
</li>
<li>select_timezone()
: <a class="el" href="datetime_8php.html#a633dadba426fa2f60b25fabdb19ebc1f">datetime.php</a>
@@ -203,9 +200,6 @@ $(document).ready(function(){initNavTree('globals_func_0x73.html','');});
<li>set_xconfig()
: <a class="el" href="include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e">config.php</a>
</li>
-<li>settings_aside()
-: <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings.php</a>
-</li>
<li>settings_init()
: <a class="el" href="settings_8php.html#a3a4cde287482fced008583f54ba2a722">settings.php</a>
</li>
@@ -242,11 +236,11 @@ $(document).ready(function(){initNavTree('globals_func_0x73.html','');});
<li>sitelist_init()
: <a class="el" href="sitelist_8php.html#a665a59bf60f780b40f32c909f4a473b1">sitelist.php</a>
</li>
-<li>smile_decode()
-: <a class="el" href="text_8php.html#aca0f589be74fab1a460c57e88dad9779">text.php</a>
+<li>smile_shield()
+: <a class="el" href="text_8php.html#a10dde167249ed5abf190a7a0986878ea">text.php</a>
</li>
-<li>smile_encode()
-: <a class="el" href="text_8php.html#a44d460fcdee6247c67b9bef3ea15f3e6">text.php</a>
+<li>smile_unshield()
+: <a class="el" href="text_8php.html#a273156a6f5cddc6652ad656821cd5805">text.php</a>
</li>
<li>smilies()
: <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">text.php</a>
@@ -275,6 +269,12 @@ $(document).ready(function(){initNavTree('globals_func_0x73.html','');});
<li>sources_post()
: <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources.php</a>
</li>
+<li>sslify()
+: <a class="el" href="text_8php.html#a33bdb5d4bfff2ede7caf61a98ac0a2e9">text.php</a>
+</li>
+<li>sslify_init()
+: <a class="el" href="sslify_8php.html#a75b11e54a3d1fc83e7d4c0e8b4dab316">sslify.php</a>
+</li>
<li>starred_init()
: <a class="el" href="starred_8php.html#a63024fb418c678e49fd535e3752d349a">starred.php</a>
</li>
@@ -296,18 +296,21 @@ $(document).ready(function(){initNavTree('globals_func_0x73.html','');});
<li>string_plural_select_default()
: <a class="el" href="language_8php.html#a151e5b4689aef86a12642cbb7a00bfe0">language.php</a>
</li>
+<li>string_splitter()
+: <a class="el" href="spam_8php.html#a05861201147b9a538d006f0269255cf9">spam.php</a>
+</li>
<li>stringify_array_elms()
: <a class="el" href="text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13">text.php</a>
</li>
+<li>strip_zids()
+: <a class="el" href="text_8php.html#a2f2585385530cb935a6325c809d84a4d">text.php</a>
+</li>
<li>stripdcode_br_cb()
: <a class="el" href="bb2diaspora_8php.html#a180b0e3a7d702998be19e3c3b44b0e93">bb2diaspora.php</a>
</li>
<li>subthread_content()
: <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread.php</a>
</li>
-<li>suggest_aside()
-: <a class="el" href="suggest_8php.html#a4df91c84594d51ba56b5918de414230d">suggest.php</a>
-</li>
<li>suggest_content()
: <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest.php</a>
</li>
@@ -320,9 +323,6 @@ $(document).ready(function(){initNavTree('globals_func_0x73.html','');});
<li>sync_directories()
: <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">dir_fns.php</a>
</li>
-<li>syncdirs()
-: <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">dir_fns.php</a>
-</li>
<li>system_down()
: <a class="el" href="system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa">system_unavailable.php</a>
</li>
diff --git a/doc/html/globals_func_0x74.html b/doc/html/globals_func_0x74.html
index f7a827882..025d49fd3 100644
--- a/doc/html/globals_func_0x74.html
+++ b/doc/html/globals_func_0x74.html
@@ -201,7 +201,7 @@ $(document).ready(function(){initNavTree('globals_func_0x74.html','');});
: <a class="el" href="plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2">plugin.php</a>
</li>
<li>theme_post()
-: <a class="el" href="view_2theme_2apw_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6">config.php</a>
+: <a class="el" href="view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6">config.php</a>
</li>
<li>theme_status()
: <a class="el" href="admin_8php.html#ad4f74f33944a98b56d2c8c7601f124a4">admin.php</a>
@@ -233,6 +233,12 @@ $(document).ready(function(){initNavTree('globals_func_0x74.html','');});
<li>tryoembed()
: <a class="el" href="bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7">bbcode.php</a>
</li>
+<li>tryzrlaudio()
+: <a class="el" href="bbcode_8php.html#a39de4de32a9456d1ca914d0dc52bd322">bbcode.php</a>
+</li>
+<li>tryzrlvideo()
+: <a class="el" href="bbcode_8php.html#aa92f119341f4c69dcef2768a013079b8">bbcode.php</a>
+</li>
<li>tt()
: <a class="el" href="language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d">language.php</a>
</li>
diff --git a/doc/html/globals_func_0x75.html b/doc/html/globals_func_0x75.html
index 7d53ad29c..5f9db65d9 100644
--- a/doc/html/globals_func_0x75.html
+++ b/doc/html/globals_func_0x75.html
@@ -194,6 +194,9 @@ $(document).ready(function(){initNavTree('globals_func_0x75.html','');});
<li>update_queue_time()
: <a class="el" href="queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1">queue_fn.php</a>
</li>
+<li>update_remote_id()
+: <a class="el" href="items_8php.html#a2baa9e05f1e8aa3dd61c85803ae39bd6">items.php</a>
+</li>
<li>update_search_content()
: <a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search.php</a>
</li>
diff --git a/doc/html/globals_func_0x76.html b/doc/html/globals_func_0x76.html
index c61a91b6b..b8447e3c0 100644
--- a/doc/html/globals_func_0x76.html
+++ b/doc/html/globals_func_0x76.html
@@ -161,9 +161,6 @@ $(document).ready(function(){initNavTree('globals_func_0x76.html','');});
<li>view_init()
: <a class="el" href="view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e">view.php</a>
</li>
-<li>viewconnections_aside()
-: <a class="el" href="viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6">viewconnections.php</a>
-</li>
<li>viewconnections_content()
: <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections.php</a>
</li>
diff --git a/doc/html/globals_func_0x77.html b/doc/html/globals_func_0x77.html
index 96406899a..860b694e2 100644
--- a/doc/html/globals_func_0x77.html
+++ b/doc/html/globals_func_0x77.html
@@ -167,12 +167,78 @@ $(document).ready(function(){initNavTree('globals_func_0x77.html','');});
<li>what_next()
: <a class="el" href="setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58">setup.php</a>
</li>
+<li>widget_affinity()
+: <a class="el" href="widgets_8php.html#add9b24d3304e529a7975e96122315554">widgets.php</a>
+</li>
+<li>widget_archive()
+: <a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widgets.php</a>
+</li>
+<li>widget_categories()
+: <a class="el" href="widgets_8php.html#af37fdad3b2e861d860a4a8c4d8a76c0b">widgets.php</a>
+</li>
+<li>widget_chatroom_list()
+: <a class="el" href="widgets_8php.html#a47c72aac42058ea086c9ef8651c259da">widgets.php</a>
+</li>
+<li>widget_collections()
+: <a class="el" href="widgets_8php.html#aa189a07241246d97efbee29f1c6a6f7f">widgets.php</a>
+</li>
+<li>widget_design_tools()
+: <a class="el" href="widgets_8php.html#a145ff35319cfa47a9cc07f9425bd674b">widgets.php</a>
+</li>
+<li>widget_dirsafemode()
+: <a class="el" href="widgets_8php.html#a268b01ce1ab8fe2cb346cb769b9d1091">widgets.php</a>
+</li>
+<li>widget_dirsort()
+: <a class="el" href="widgets_8php.html#a95c06bc9be133e89768746302d2ac395">widgets.php</a>
+</li>
+<li>widget_dirtags()
+: <a class="el" href="widgets_8php.html#a08035db02ff6a23260146b4c64153422">widgets.php</a>
+</li>
+<li>widget_filer()
+: <a class="el" href="widgets_8php.html#a5ab3b64496e02cab56429978ad55f1c0">widgets.php</a>
+</li>
+<li>widget_findpeople()
+: <a class="el" href="widgets_8php.html#ade630b19fb4c622b7b2f6f8ef89eefa2">widgets.php</a>
+</li>
+<li>widget_follow()
+: <a class="el" href="widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd">widgets.php</a>
+</li>
+<li>widget_fullprofile()
+: <a class="el" href="widgets_8php.html#a70442dfa079312d9d5e5ee01be51a165">widgets.php</a>
+</li>
+<li>widget_mailmenu()
+: <a class="el" href="widgets_8php.html#afa2e55a78f95667a6da082efac7fec74">widgets.php</a>
+</li>
+<li>widget_menu_preview()
+: <a class="el" href="widgets_8php.html#a3bdfb81bf9a8ddf219924fa7eaf22013">widgets.php</a>
+</li>
+<li>widget_notes()
+: <a class="el" href="widgets_8php.html#a45ea061dabe9a8372e4ca3b9e5714256">widgets.php</a>
+</li>
+<li>widget_photo_albums()
+: <a class="el" href="widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e">widgets.php</a>
+</li>
<li>widget_profile()
: <a class="el" href="widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923">widgets.php</a>
</li>
+<li>widget_savedsearch()
+: <a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widgets.php</a>
+</li>
+<li>widget_settings_menu()
+: <a class="el" href="widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01">widgets.php</a>
+</li>
+<li>widget_suggestions()
+: <a class="el" href="widgets_8php.html#a0d404276fedc59f5038cf5c085028326">widgets.php</a>
+</li>
<li>widget_tagcloud()
: <a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widgets.php</a>
</li>
+<li>widget_tagcloud_wall()
+: <a class="el" href="widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653">widgets.php</a>
+</li>
+<li>widget_vcard()
+: <a class="el" href="widgets_8php.html#abe03366fd22fd27d683518fa0765da50">widgets.php</a>
+</li>
<li>writepages_widget()
: <a class="el" href="page__widgets_8php.html#a1a1e729da27f252cab6678288a17958f">page_widgets.php</a>
</li>
diff --git a/doc/html/globals_func_0x78.html b/doc/html/globals_func_0x78.html
index f0f230193..24b97f465 100644
--- a/doc/html/globals_func_0x78.html
+++ b/doc/html/globals_func_0x78.html
@@ -170,6 +170,9 @@ $(document).ready(function(){initNavTree('globals_func_0x78.html','');});
<li>xrd_init()
: <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd.php</a>
</li>
+<li>xref_init()
+: <a class="el" href="xref_8php.html#a9bee399213b8de8226b0d60834307473">xref.php</a>
+</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/globals_func_0x7a.html b/doc/html/globals_func_0x7a.html
index e64c265ec..6b484536f 100644
--- a/doc/html/globals_func_0x7a.html
+++ b/doc/html/globals_func_0x7a.html
@@ -213,7 +213,7 @@ $(document).ready(function(){initNavTree('globals_func_0x7a.html','');});
: <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot.php</a>
</li>
<li>zot_refresh()
-: <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot.php</a>
+: <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot.php</a>
</li>
<li>zot_register_hub()
: <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot.php</a>
diff --git a/doc/html/globals_vars.html b/doc/html/globals_vars.html
index 152e8159d..e2ba25cd8 100644
--- a/doc/html/globals_vars.html
+++ b/doc/html/globals_vars.html
@@ -151,18 +151,6 @@ $(document).ready(function(){initNavTree('globals_vars.html','');});
<li>$aside
: <a class="el" href="minimalisticdarkness_8php.html#a6e5d97615c6faef5dbffe04b8024ceaf">minimalisticdarkness.php</a>
</li>
-<li>$background_image
-: <a class="el" href="redbasic_2php_2style_8php.html#a339624aeef6604a2f00209a3962c6e1c">style.php</a>
-</li>
-<li>$banner_colour
-: <a class="el" href="redbasic_2php_2style_8php.html#ae587aa6949ab6e4aa77a591e60f67ee0">style.php</a>
-</li>
-<li>$bgcolour
-: <a class="el" href="redbasic_2php_2style_8php.html#a0bdce350cf14bac44976e786d1be6574">style.php</a>
-</li>
-<li>$body_font_size
-: <a class="el" href="redbasic_2php_2style_8php.html#ad78cb8a1793834626d73aca22a1501f8">style.php</a>
-</li>
<li>$bodyclass
: <a class="el" href="theme_2blogga_2php_2default_8php.html#a720581ae288aa09511670563e4205a4a">default.php</a>
</li>
@@ -175,9 +163,6 @@ $(document).ready(function(){initNavTree('globals_vars.html','');});
<li>$comment_indent
: <a class="el" href="redbasic_2php_2style_8php.html#a5bff5012c56e34da6b3b2ed475726b27">style.php</a>
</li>
-<li>$converse_width
-: <a class="el" href="redbasic_2php_2style_8php.html#a0cb037986e32302685d4f580dedd6473">style.php</a>
-</li>
<li>$dir
: <a class="el" href="docblox__errorchecker_8php.html#a1659f0a629d408e0f849dbe4ee061e62">docblox_errorchecker.php</a>
</li>
@@ -191,15 +176,9 @@ $(document).ready(function(){initNavTree('globals_vars.html','');});
: <a class="el" href="docblox__errorchecker_8php.html#a648a570b0f9f6e0e51b7267647c4b09b">docblox_errorchecker.php</a>
</li>
<li>$files
-: <a class="el" href="extract_8php.html#a9590b15215a21e9b42eb546aeef79704">extract.php</a>
+: <a class="el" href="typo_8php.html#a9590b15215a21e9b42eb546aeef79704">typo.php</a>
+, <a class="el" href="extract_8php.html#a9590b15215a21e9b42eb546aeef79704">extract.php</a>
, <a class="el" href="tpldebug_8php.html#a5358407d65f2ca826f96356a6642d149">tpldebug.php</a>
-, <a class="el" href="typo_8php.html#a9590b15215a21e9b42eb546aeef79704">typo.php</a>
-</li>
-<li>$font_colour
-: <a class="el" href="redbasic_2php_2style_8php.html#a68e3ff836ec87ae1370c9f4a12c21c6b">style.php</a>
-</li>
-<li>$font_size
-: <a class="el" href="redbasic_2php_2style_8php.html#afcbcf57d0b90d2e4226c2e8a1171befc">style.php</a>
</li>
<li>$gc_probability
: <a class="el" href="session_8php.html#a96b09cc763572f45280786a7b33feb7e">session.php</a>
@@ -222,12 +201,6 @@ $(document).ready(function(){initNavTree('globals_vars.html','');});
<li>$install_wizard_pass
: <a class="el" href="setup_8php.html#addb24714bc2542aa4f4215e98fe48432">setup.php</a>
</li>
-<li>$item_colour
-: <a class="el" href="redbasic_2php_2style_8php.html#a27cb59bbc750341f448cd0c298a7ea16">style.php</a>
-</li>
-<li>$item_opacity
-: <a class="el" href="redbasic_2php_2style_8php.html#a136b0a2cdeb37f3fa506d28f82dcdbf8">style.php</a>
-</li>
<li>$itemfloat
: <a class="el" href="minimalisticdarkness_8php.html#a7e6c3d4efde4e9a2de32308081372c6b">minimalisticdarkness.php</a>
</li>
@@ -237,12 +210,6 @@ $(document).ready(function(){initNavTree('globals_vars.html','');});
<li>$minwidth
: <a class="el" href="minimalisticdarkness_8php.html#a70bb13be8f23ec47839da81e0796f1cb">minimalisticdarkness.php</a>
</li>
-<li>$nav_colour
-: <a class="el" href="redbasic_2php_2style_8php.html#a8fdd5874587a9ad86fb05ed0be265649">style.php</a>
-</li>
-<li>$nav_min_opacity
-: <a class="el" href="redbasic_2php_2style_8php.html#ab5ec5703848e0132f8a8f3d3a53a58e1">style.php</a>
-</li>
<li>$nav_percent_min_opacity
: <a class="el" href="redbasic_2php_2style_8php.html#a01c151bf47f7da2b979aaa4cb868da4c">style.php</a>
</li>
@@ -273,21 +240,12 @@ $(document).ready(function(){initNavTree('globals_vars.html','');});
<li>$pofile
: <a class="el" href="php2po_8php.html#a401d84ce156e49e8168bd0c4781e1be1">php2po.php</a>
</li>
-<li>$radius
-: <a class="el" href="redbasic_2php_2style_8php.html#a6502bedd57105ad1fb2dee2be9cf6351">style.php</a>
-</li>
-<li>$reply_photo
-: <a class="el" href="redbasic_2php_2style_8php.html#a0b070f2c9140a7a12a0b1f88601a29e4">style.php</a>
-</li>
<li>$res
: <a class="el" href="docblox__errorchecker_8php.html#a49a8a4009b02e49717caa88b128affc5">docblox_errorchecker.php</a>
</li>
<li>$s
: <a class="el" href="extract_8php.html#a50b05cf2e02ef0b67fcad97106dd7634">extract.php</a>
</li>
-<li>$schema
-: <a class="el" href="redbasic_2php_2style_8php.html#a83022b1d70799d2bde3d64dca9cb40ee">style.php</a>
-</li>
<li>$sectionleft
: <a class="el" href="minimalisticdarkness_8php.html#a0ac3f5b52212b0af87d513273da03ead">minimalisticdarkness.php</a>
</li>
@@ -300,26 +258,11 @@ $(document).ready(function(){initNavTree('globals_vars.html','');});
<li>$session_expire
: <a class="el" href="session_8php.html#af0100a2642a5268594bbd5742a03d885">session.php</a>
</li>
-<li>$shadow
-: <a class="el" href="redbasic_2php_2style_8php.html#ab00dfc29448b183055d2ae61a0e1874a">style.php</a>
-</li>
-<li>$sloppy_photos
-: <a class="el" href="redbasic_2php_2style_8php.html#a6ffadaf926b41ad84c30da319011e9ad">style.php</a>
-</li>
<li>$str
: <a class="el" href="typohelper_8php.html#a7542d95618011800c61773127fa625cf">typohelper.php</a>
</li>
-<li>$toolicon_activecolour
-: <a class="el" href="redbasic_2php_2style_8php.html#acfd00ec469ca3c5e8bfac787573093f3">style.php</a>
-</li>
-<li>$toolicon_colour
-: <a class="el" href="redbasic_2php_2style_8php.html#a4161f6b8aa923f67e53f54dfb6554cdb">style.php</a>
-</li>
-<li>$top_photo
-: <a class="el" href="redbasic_2php_2style_8php.html#a810142b4bdd35a1d377ab279b02b47eb">style.php</a>
-</li>
<li>$uid
-: <a class="el" href="redbasic_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a">style.php</a>
+: <a class="el" href="apw_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a">style.php</a>
</li>
<li>$width
: <a class="el" href="minimalisticdarkness_8php.html#a5795120b4b324bc4ca83f1e6fdce7d57">minimalisticdarkness.php</a>
diff --git a/doc/html/globals_vars_0x61.html b/doc/html/globals_vars_0x61.html
index 8493d5b7d..4c85f18b6 100644
--- a/doc/html/globals_vars_0x61.html
+++ b/doc/html/globals_vars_0x61.html
@@ -193,6 +193,9 @@ $(document).ready(function(){initNavTree('globals_vars_0x61.html','');});
<li>ACCOUNT_ROLE_ALLOWCODE
: <a class="el" href="boot_8php.html#a84f48897059bbd4a8738d7ee4cec6688">boot.php</a>
</li>
+<li>ACCOUNT_ROLE_SYSTEM
+: <a class="el" href="boot_8php.html#a7c2eb822d50e1554bf5c32861f36342b">boot.php</a>
+</li>
<li>ACCOUNT_UNVERIFIED
: <a class="el" href="boot_8php.html#af3a4271630aabd8be592213f925d6a36">boot.php</a>
</li>
diff --git a/doc/html/globals_vars_0x69.html b/doc/html/globals_vars_0x69.html
index 09db932b0..2d4e26940 100644
--- a/doc/html/globals_vars_0x69.html
+++ b/doc/html/globals_vars_0x69.html
@@ -148,6 +148,9 @@ $(document).ready(function(){initNavTree('globals_vars_0x69.html','');});
<li>ITEM_BLOCKED
: <a class="el" href="boot_8php.html#ab28dc518fa90b6f617dd8c564eb4f35f">boot.php</a>
</li>
+<li>ITEM_BUG
+: <a class="el" href="boot_8php.html#a87b0f279f8413c7e4d805c5d85f20d34">boot.php</a>
+</li>
<li>ITEM_BUILDBLOCK
: <a class="el" href="boot_8php.html#a7fc4b291a7cdaa48b38e27344ea183cf">boot.php</a>
</li>
diff --git a/doc/html/globals_vars_0x6d.html b/doc/html/globals_vars_0x6d.html
index b05529db2..b67fde2da 100644
--- a/doc/html/globals_vars_0x6d.html
+++ b/doc/html/globals_vars_0x6d.html
@@ -163,12 +163,18 @@ $(document).ready(function(){initNavTree('globals_vars_0x6d.html','');});
<li>MAX_LIKERS
: <a class="el" href="boot_8php.html#a35625dacd2158b9f1f1a8e77f9f081fd">boot.php</a>
</li>
+<li>MENU_BOOKMARK
+: <a class="el" href="boot_8php.html#a458e19af801bc4b0d1f1ce1a6d9e857e">boot.php</a>
+</li>
<li>MENU_ITEM_NEWWIN
: <a class="el" href="boot_8php.html#ad11f30a6590d3d77f0c5e1e3909af8f5">boot.php</a>
</li>
<li>MENU_ITEM_ZID
: <a class="el" href="boot_8php.html#aed0dfb35f7dd00dc9e4f868ea7f7ff53">boot.php</a>
</li>
+<li>MENU_SYSTEM
+: <a class="el" href="boot_8php.html#a718a801b0be6cbaef5e519516da12721">boot.php</a>
+</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/globals_vars_0x70.html b/doc/html/globals_vars_0x70.html
index 55e1dd040..386e55759 100644
--- a/doc/html/globals_vars_0x70.html
+++ b/doc/html/globals_vars_0x70.html
@@ -141,8 +141,6 @@ $(document).ready(function(){initNavTree('globals_vars_0x70.html','');});
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
<li>page
: <a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">mod_import.php</a>
-, <a class="el" href="mod__new__channel_8php.html#a8db1899eeeb44dabd0904065b63627bb">mod_new_channel.php</a>
-, <a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">mod_register.php</a>
</li>
<li>PAGE_ADULT
: <a class="el" href="boot_8php.html#ace83842dbeb84f7ed9ac59a9f57a7c32">boot.php</a>
@@ -168,12 +166,21 @@ $(document).ready(function(){initNavTree('globals_vars_0x70.html','');});
<li>PAGE_REMOVED
: <a class="el" href="boot_8php.html#a4edce16cb7f21cdafa1e85bf63d713e6">boot.php</a>
</li>
+<li>PAGE_SYSTEM
+: <a class="el" href="boot_8php.html#a6ee7a72d558d1851bbb9e3cdde377932">boot.php</a>
+</li>
+<li>PERMS_A_BOOKMARK
+: <a class="el" href="boot_8php.html#a8b2af16eaee9e7768a88d0e437877f3b">boot.php</a>
+</li>
<li>PERMS_A_DELEGATE
: <a class="el" href="boot_8php.html#a423505ab8dbd8e39d04ae3fe1374102b">boot.php</a>
</li>
<li>PERMS_A_REPUBLISH
: <a class="el" href="boot_8php.html#aae6c941bde5fd6fce07e51dba7326ead">boot.php</a>
</li>
+<li>PERMS_AUTHED
+: <a class="el" href="boot_8php.html#a852d4036a3bed66af1534d014c4ecde2">boot.php</a>
+</li>
<li>PERMS_CONTACTS
: <a class="el" href="boot_8php.html#ab2d0e8a9b81ee548ef2ce8e4560da2f6">boot.php</a>
</li>
diff --git a/doc/html/globals_vars_0x74.html b/doc/html/globals_vars_0x74.html
index ea2637f84..5700fcc09 100644
--- a/doc/html/globals_vars_0x74.html
+++ b/doc/html/globals_vars_0x74.html
@@ -139,6 +139,9 @@ $(document).ready(function(){initNavTree('globals_vars_0x74.html','');});
&#160;
<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>TERM_BOOKMARK
+: <a class="el" href="boot_8php.html#a115faf8797718c3165498abbd6895843">boot.php</a>
+</li>
<li>TERM_CATEGORY
: <a class="el" href="boot_8php.html#af33d1b2e98a1e21af672005525d46dfe">boot.php</a>
</li>
diff --git a/doc/html/globals_vars_0x78.html b/doc/html/globals_vars_0x78.html
index b115c36a0..4278aa8f4 100644
--- a/doc/html/globals_vars_0x78.html
+++ b/doc/html/globals_vars_0x78.html
@@ -148,12 +148,18 @@ $(document).ready(function(){initNavTree('globals_vars_0x78.html','');});
<li>XCHAN_FLAGS_HIDDEN
: <a class="el" href="boot_8php.html#a1af3ed96de14aa0d7891b39cc75b60f2">boot.php</a>
</li>
+<li>XCHAN_FLAGS_NORMAL
+: <a class="el" href="boot_8php.html#a8fdcc4ffb365a3267bd02ce8a8d466d6">boot.php</a>
+</li>
<li>XCHAN_FLAGS_ORPHAN
: <a class="el" href="boot_8php.html#a1c923b99bf77e4203ae94e5684b6ad0f">boot.php</a>
</li>
<li>XCHAN_FLAGS_SELFCENSORED
: <a class="el" href="boot_8php.html#a5a681a672e007cdc22b43345d71f07c6">boot.php</a>
</li>
+<li>XCHAN_FLAGS_SYSTEM
+: <a class="el" href="boot_8php.html#afef254290febac854c85fc698d9483a6">boot.php</a>
+</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/help_8php.html b/doc/html/help_8php.html
index 4eb654d30..3a7df70f8 100644
--- a/doc/html/help_8php.html
+++ b/doc/html/help_8php.html
@@ -112,7 +112,7 @@ $(document).ready(function(){initNavTree('help_8php.html','');});
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:af055e15f600ffa6fbca9386fdf715224"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(!function_exists('load_doc_file'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content</a> (&amp;$a)</td></tr>
+<tr class="memitem:af055e15f600ffa6fbca9386fdf715224"><td class="memItemLeft" align="right" valign="top"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(!function_exists('load_doc_file'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content</a> (&amp;$a)</td></tr>
<tr class="separator:af055e15f600ffa6fbca9386fdf715224"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06b2a51aaabed99e53a9b639047c4ce4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="help_8php.html#a06b2a51aaabed99e53a9b639047c4ce4">preg_callback_help_include</a> ($matches)</td></tr>
<tr class="separator:a06b2a51aaabed99e53a9b639047c4ce4"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -123,7 +123,7 @@ Functions</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (!function_exists('load_doc_file')) help_content </td>
+ <td class="memname"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (!function_exists('load_doc_file')) help_content </td>
<td>(</td>
<td class="paramtype">&amp;&#160;</td>
<td class="paramname"><em>$a</em></td><td>)</td>
diff --git a/doc/html/hierarchy.html b/doc/html/hierarchy.html
index 2a65d1ce0..d35fdc010 100644
--- a/doc/html/hierarchy.html
+++ b/doc/html/hierarchy.html
@@ -126,8 +126,8 @@ $(document).ready(function(){initNavTree('hierarchy.html','');});
<tr id="row_6_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classRedDirectory.html" target="_self">RedDirectory</a></td><td class="desc"></td></tr>
<tr id="row_7_"><td class="entry"><img id="arr_7_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('7_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>IFile</b></td><td class="desc"></td></tr>
<tr id="row_7_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classRedFile.html" target="_self">RedFile</a></td><td class="desc"></td></tr>
-<tr id="row_8_"><td class="entry"><img id="arr_8_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('8_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>INode</b></td><td class="desc"></td></tr>
-<tr id="row_8_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classRedInode.html" target="_self">RedInode</a></td><td class="desc"></td></tr>
+<tr id="row_8_"><td class="entry"><img id="arr_8_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('8_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>IQuota</b></td><td class="desc"></td></tr>
+<tr id="row_8_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classRedDirectory.html" target="_self">RedDirectory</a></td><td class="desc"></td></tr>
<tr id="row_9_"><td class="entry"><img id="arr_9_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('9_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="interfaceITemplateEngine.html" target="_self">ITemplateEngine</a></td><td class="desc"></td></tr>
<tr id="row_9_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classFriendicaSmartyEngine.html" target="_self">FriendicaSmartyEngine</a></td><td class="desc"></td></tr>
<tr id="row_9_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classTemplate.html" target="_self">Template</a></td><td class="desc"></td></tr>
@@ -141,10 +141,12 @@ $(document).ready(function(){initNavTree('hierarchy.html','');});
<tr id="row_13_"><td class="entry"><img id="arr_13_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('13_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classphoto__driver.html" target="_self">photo_driver</a></td><td class="desc"></td></tr>
<tr id="row_13_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classphoto__gd.html" target="_self">photo_gd</a></td><td class="desc"></td></tr>
<tr id="row_13_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classphoto__imagick.html" target="_self">photo_imagick</a></td><td class="desc"></td></tr>
-<tr id="row_14_" class="even"><td class="entry"><img id="arr_14_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('14_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classProtoDriver.html" target="_self">ProtoDriver</a></td><td class="desc"></td></tr>
-<tr id="row_14_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classZotDriver.html" target="_self">ZotDriver</a></td><td class="desc"></td></tr>
-<tr id="row_15_" class="even"><td class="entry"><img id="arr_15_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('15_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>Smarty</b></td><td class="desc"></td></tr>
-<tr id="row_15_0_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classFriendicaSmarty.html" target="_self">FriendicaSmarty</a></td><td class="desc"></td></tr>
+<tr id="row_14_" class="even"><td class="entry"><img id="arr_14_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('14_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>Plugin</b></td><td class="desc"></td></tr>
+<tr id="row_14_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classRedBrowser.html" target="_self">RedBrowser</a></td><td class="desc"></td></tr>
+<tr id="row_15_" class="even"><td class="entry"><img id="arr_15_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('15_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classProtoDriver.html" target="_self">ProtoDriver</a></td><td class="desc"></td></tr>
+<tr id="row_15_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classZotDriver.html" target="_self">ZotDriver</a></td><td class="desc"></td></tr>
+<tr id="row_16_" class="even"><td class="entry"><img id="arr_16_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('16_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>Smarty</b></td><td class="desc"></td></tr>
+<tr id="row_16_0_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classFriendicaSmarty.html" target="_self">FriendicaSmarty</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
diff --git a/doc/html/hierarchy.js b/doc/html/hierarchy.js
index dcf3e740e..6259fc750 100644
--- a/doc/html/hierarchy.js
+++ b/doc/html/hierarchy.js
@@ -20,8 +20,8 @@ var hierarchy =
[ "IFile", null, [
[ "RedFile", "classRedFile.html", null ]
] ],
- [ "INode", null, [
- [ "RedInode", "classRedInode.html", null ]
+ [ "IQuota", null, [
+ [ "RedDirectory", "classRedDirectory.html", null ]
] ],
[ "ITemplateEngine", "interfaceITemplateEngine.html", [
[ "FriendicaSmartyEngine", "classFriendicaSmartyEngine.html", null ],
@@ -41,6 +41,9 @@ var hierarchy =
[ "photo_gd", "classphoto__gd.html", null ],
[ "photo_imagick", "classphoto__imagick.html", null ]
] ],
+ [ "Plugin", null, [
+ [ "RedBrowser", "classRedBrowser.html", null ]
+ ] ],
[ "ProtoDriver", "classProtoDriver.html", [
[ "ZotDriver", "classZotDriver.html", null ]
] ],
diff --git a/doc/html/home_8php.html b/doc/html/home_8php.html
index 33376ec42..ec629b7c2 100644
--- a/doc/html/home_8php.html
+++ b/doc/html/home_8php.html
@@ -103,10 +103,53 @@ $(document).ready(function(){initNavTree('home_8php.html','');});
</div>
<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">home.php File Reference</div> </div>
</div><!--header-->
<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac4642c38b6f23a8d065dd4a75c620bde"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde">home_init</a> (&amp;$a)</td></tr>
+<tr class="separator:ac4642c38b6f23a8d065dd4a75c620bde"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa1cf697851a646755baf537f75334c46"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home_content</a> (&amp;$a)</td></tr>
+<tr class="separator:aa1cf697851a646755baf537f75334c46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aa1cf697851a646755baf537f75334c46"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">home_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac4642c38b6f23a8d065dd4a75c620bde"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">home_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/home_8php.js b/doc/html/home_8php.js
new file mode 100644
index 000000000..e4f6d5dc9
--- /dev/null
+++ b/doc/html/home_8php.js
@@ -0,0 +1,5 @@
+var home_8php =
+[
+ [ "home_content", "home_8php.html#aa1cf697851a646755baf537f75334c46", null ],
+ [ "home_init", "home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde", null ]
+]; \ No newline at end of file
diff --git a/doc/html/identity_8php.html b/doc/html/identity_8php.html
index 6bd7cb296..24e96902c 100644
--- a/doc/html/identity_8php.html
+++ b/doc/html/identity_8php.html
@@ -116,8 +116,10 @@ Functions</h2></td></tr>
<tr class="separator:ac9fcd5c4c371998790b5c55c3d0f4633"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2802bc13a00a17b867bba7978ba8f58"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#af2802bc13a00a17b867bba7978ba8f58">validate_channelname</a> ($name)</td></tr>
<tr class="separator:af2802bc13a00a17b867bba7978ba8f58"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abf6a9c6ed92d594f1d4513c4e22a7abd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd">create_dir_account</a> ()</td></tr>
-<tr class="separator:abf6a9c6ed92d594f1d4513c4e22a7abd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1cf83ac2b645de12868edaa3a5718f05"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05">create_sys_channel</a> ()</td></tr>
+<tr class="separator:a1cf83ac2b645de12868edaa3a5718f05"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaff86ee3b5984821e7a256c2da5f1a51"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#aaff86ee3b5984821e7a256c2da5f1a51">get_sys_channel</a> ()</td></tr>
+<tr class="separator:aaff86ee3b5984821e7a256c2da5f1a51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77d2237f1846964634b1c99089c27c7d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#a77d2237f1846964634b1c99089c27c7d">channel_total</a> ()</td></tr>
<tr class="separator:a77d2237f1846964634b1c99089c27c7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a345f4c943d84de502ec6e72d2c813945"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity</a> ($arr)</td></tr>
@@ -148,6 +150,18 @@ Functions</h2></td></tr>
<tr class="separator:a5b815330f3d177ab383af37a6c12e532"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaeb666872995e3ab8da8f7bc5f3b2bd3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">get_theme_uid</a> ()</td></tr>
<tr class="separator:aaeb666872995e3ab8da8f7bc5f3b2bd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab1485a26b032956e1496fc08c58b83ed"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#ab1485a26b032956e1496fc08c58b83ed">get_default_profile_photo</a> ($size=175)</td></tr>
+<tr class="separator:ab1485a26b032956e1496fc08c58b83ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae2b140df652a55ca11bb6a99005fce35"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#ae2b140df652a55ca11bb6a99005fce35">is_foreigner</a> ($s)</td></tr>
+<tr class="separator:ae2b140df652a55ca11bb6a99005fce35"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9637c557e13d9671f3eeb124ab98212a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#a9637c557e13d9671f3eeb124ab98212a">is_member</a> ($s)</td></tr>
+<tr class="separator:a9637c557e13d9671f3eeb124ab98212a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a332df795f684788002f5a6424abacfd7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#a332df795f684788002f5a6424abacfd7">get_online_status</a> ($nick)</td></tr>
+<tr class="separator:a332df795f684788002f5a6424abacfd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a47d6f53216f23a3484061793bef29854"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#a47d6f53216f23a3484061793bef29854">remote_online_status</a> ($webbie)</td></tr>
+<tr class="separator:a47d6f53216f23a3484061793bef29854"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac73b3e13778c564c877554517a7f51ba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="identity_8php.html#ac73b3e13778c564c877554517a7f51ba">get_channel_by_nick</a> ($nick)</td></tr>
+<tr class="separator:ac73b3e13778c564c877554517a7f51ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="aa870d2c1f558cfd52bef05bc124e8fa4"></a>
@@ -180,30 +194,13 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>() Return the total number of channels on this site. No filtering is performed.</p>
+<p>() Return the total number of channels on this site. No filtering is performed except to check PAGE_REMOVED</p>
<dl class="section return"><dt>Returns</dt><dd>int on error returns boolean false </dd></dl>
<p>Referenced by <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
</div>
</div>
-<a class="anchor" id="abf6a9c6ed92d594f1d4513c4e22a7abd"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">create_dir_account </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-<p><a class="el" href="identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd">create_dir_account()</a> Create a system channel - which has no account attached</p>
-<p>Currently unused. </p>
-
-</div>
-</div>
<a class="anchor" id="a345f4c943d84de502ec6e72d2c813945"></a>
<div class="memitem">
<div class="memproto">
@@ -226,7 +223,23 @@ Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>array 'success' =&gt; boolean true or false 'message' =&gt; optional error text if success is false 'channel' =&gt; if successful the created channel array </dd></dl>
-<p>Referenced by <a class="el" href="identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd">create_dir_account()</a>, and <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05">create_sys_channel()</a>, and <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1cf83ac2b645de12868edaa3a5718f05"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">create_sys_channel </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p><a class="el" href="identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05">create_sys_channel()</a> Create a system channel - which has no account attached </p>
</div>
</div>
@@ -245,6 +258,50 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="ac73b3e13778c564c877554517a7f51ba"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_channel_by_nick </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$nick</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, and <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab1485a26b032956e1496fc08c58b83ed"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_default_profile_photo </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$size</em> = <code>175</code></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>get_default_profile_photo($size = 175) Retrieves the path of the default_profile_photo for this system with the specified size. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">int</td><td class="paramname">$size</td><td>one of (175, 80, 48) </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
+<p>Referenced by <a class="el" href="include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7">avatar_img()</a>, <a class="el" href="photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887">import_profile_photo()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, and <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="ae381db3d43f8e7c1da8b15d14ecf5312"></a>
<div class="memitem">
<div class="memproto">
@@ -294,6 +351,41 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a332df795f684788002f5a6424abacfd7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_online_status </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$nick</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="online_8php.html#a80e107c84eb722b0ca11d0413b96f9f7">online_init()</a>, and <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aaff86ee3b5984821e7a256c2da5f1a51"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_sys_channel </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05">create_sys_channel()</a>, and <a class="el" href="identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">get_theme_uid()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="aaeb666872995e3ab8da8f7bc5f3b2bd3"></a>
<div class="memitem">
<div class="memproto">
@@ -361,6 +453,56 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="ae2b140df652a55ca11bb6a99005fce35"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">is_foreigner </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>is_foreigner($s) Test whether a given identity is NOT a member of the Red Matrix </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$s,;</td><td>xchan_hash of the identity in question</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>boolean true or false </dd></dl>
+
+<p>Referenced by <a class="el" href="identity_8php.html#a9637c557e13d9671f3eeb124ab98212a">is_member()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9637c557e13d9671f3eeb124ab98212a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">is_member </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>is_member($s) Test whether a given identity is a member of the Red Matrix </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$s,;</td><td>xchan_hash of the identity in question</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>boolean true or false </dd></dl>
+
+</div>
+</div>
<a class="anchor" id="ad4a2c8caca8f6ae93633ebeca0ed6620"></a>
<div class="memitem">
<div class="memproto">
@@ -385,8 +527,6 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside()</a>, <a class="el" href="common_8php.html#a3b12ec67b3d3edcf595c8d195da5d14a">common_aside()</a>, <a class="el" href="connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36">connect_init()</a>, <a class="el" href="hcard_8php.html#a956c7cae2009652a37900306e5b7b73d">hcard_aside()</a>, <a class="el" href="lastpost_8php.html#a6108289ef2a767495c7c85a24f364983">lastpost_aside()</a>, <a class="el" href="profile_8php.html#a1a2482b775476f2f64ea5e8f4fc3fd1e">profile_aside()</a>, <a class="el" href="profile__photo_8php.html#ac9cd968a767e2ae1b88383b6cdd6dbe3">profile_photo_aside()</a>, <a class="el" href="profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c">profiles_aside()</a>, <a class="el" href="profperm_8php.html#a77fd398ae7c25142e1d9ad724ec347cc">profperm_aside()</a>, and <a class="el" href="viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6">viewconnections_aside()</a>.</p>
-
</div>
</div>
<a class="anchor" id="a4751b522ea913d0e7ed43e03d22e9e68"></a>
@@ -432,7 +572,7 @@ Functions</h2></td></tr>
<p>The channel default theme is also selected for use, unless over-riden elsewhere. </p>
<p>load/reload current theme info</p>
-<p>Referenced by <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36">connect_init()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="lastpost_8php.html#ab4c6ebd25736af678e64d55ce508ce8c">lastpost_init()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02">profile_photo_init()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6">profperm_init()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, and <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>.</p>
+<p>Referenced by <a class="el" href="achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e">achievements_content()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="mod_2chat_8php.html#aa9ae4782e9baef0b7314ab9527c2707e">chat_init()</a>, <a class="el" href="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud_init()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36">connect_init()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02">profile_photo_init()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6">profperm_init()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, and <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>.</p>
</div>
</div>
@@ -470,7 +610,25 @@ Functions</h2></td></tr>
<p>: array $profile</p>
<p>Returns HTML string stuitable for sidebar inclusion Exceptions: Returns empty string if passed $profile is wrong type or not populated </p>
-<p>Referenced by <a class="el" href="identity_8php.html#ad4a2c8caca8f6ae93633ebeca0ed6620">profile_create_sidebar()</a>, and <a class="el" href="widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923">widget_profile()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#ad4a2c8caca8f6ae93633ebeca0ed6620">profile_create_sidebar()</a>, <a class="el" href="widgets_8php.html#a70442dfa079312d9d5e5ee01be51a165">widget_fullprofile()</a>, and <a class="el" href="widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923">widget_profile()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a47d6f53216f23a3484061793bef29854"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">remote_online_status </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$webbie</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>.</p>
</div>
</div>
@@ -579,7 +737,7 @@ Functions</h2></td></tr>
<dl class="section return"><dt>Returns</dt><dd>string</dd></dl>
<p>'zid' string url - url to accept zid string zid - urlencoded zid string result - the return string we calculated, change it if you want to return something else </p>
-<p>Referenced by <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">format_categories()</a>, <a class="el" href="text_8php.html#a3ef8c0cf31f35f77462067de8712fa34">get_plink()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="include_2menu_8php.html#a890cc6237971e15f15702e6b2e88502e">menu_render()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, and <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>.</p>
+<p>Referenced by <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9">chatsvc_content()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">format_categories()</a>, <a class="el" href="text_8php.html#aac0969ae09853205992ba06ab9f9f61a">get_plink()</a>, <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="include_2menu_8php.html#a4d7123b0577fa994770199f9b831da11">menu_render()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url()</a>, <a class="el" href="bbcode_8php.html#a39de4de32a9456d1ca914d0dc52bd322">tryzrlaudio()</a>, <a class="el" href="bbcode_8php.html#aa92f119341f4c69dcef2768a013079b8">tryzrlvideo()</a>, and <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>.</p>
</div>
</div>
diff --git a/doc/html/identity_8php.js b/doc/html/identity_8php.js
index a7710c10f..5da6fdb94 100644
--- a/doc/html/identity_8php.js
+++ b/doc/html/identity_8php.js
@@ -2,18 +2,25 @@ var identity_8php =
[
[ "advanced_profile", "identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4", null ],
[ "channel_total", "identity_8php.html#a77d2237f1846964634b1c99089c27c7d", null ],
- [ "create_dir_account", "identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd", null ],
[ "create_identity", "identity_8php.html#a345f4c943d84de502ec6e72d2c813945", null ],
+ [ "create_sys_channel", "identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05", null ],
[ "get_birthdays", "identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51", null ],
+ [ "get_channel_by_nick", "identity_8php.html#ac73b3e13778c564c877554517a7f51ba", null ],
+ [ "get_default_profile_photo", "identity_8php.html#ab1485a26b032956e1496fc08c58b83ed", null ],
[ "get_events", "identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312", null ],
[ "get_my_address", "identity_8php.html#a490972c02fdb638c52ec0e012a30bfd2", null ],
[ "get_my_url", "identity_8php.html#aa46321e1cd6a3b8dfde8bf9510112fec", null ],
+ [ "get_online_status", "identity_8php.html#a332df795f684788002f5a6424abacfd7", null ],
+ [ "get_sys_channel", "identity_8php.html#aaff86ee3b5984821e7a256c2da5f1a51", null ],
[ "get_theme_uid", "identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3", null ],
[ "identity_basic_export", "identity_8php.html#a3570a4eb77332b292d394c4132cb8f03", null ],
[ "identity_check_service_class", "identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633", null ],
+ [ "is_foreigner", "identity_8php.html#ae2b140df652a55ca11bb6a99005fce35", null ],
+ [ "is_member", "identity_8php.html#a9637c557e13d9671f3eeb124ab98212a", null ],
[ "profile_create_sidebar", "identity_8php.html#ad4a2c8caca8f6ae93633ebeca0ed6620", null ],
[ "profile_load", "identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68", null ],
[ "profile_sidebar", "identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc", null ],
+ [ "remote_online_status", "identity_8php.html#a47d6f53216f23a3484061793bef29854", null ],
[ "set_default_login_identity", "identity_8php.html#a78151baf4407a8482d2681a91a9c486b", null ],
[ "validate_channelname", "identity_8php.html#af2802bc13a00a17b867bba7978ba8f58", null ],
[ "zid", "identity_8php.html#a5b815330f3d177ab383af37a6c12e532", null ],
diff --git a/doc/html/include_2attach_8php.html b/doc/html/include_2attach_8php.html
index 1a69949ee..b0d008ed3 100644
--- a/doc/html/include_2attach_8php.html
+++ b/doc/html/include_2attach_8php.html
@@ -109,27 +109,50 @@ $(document).ready(function(){initNavTree('include_2attach_8php.html','');});
<div class="title">attach.php File Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>File/attach API with the potential for revision control.
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a6fdd92775f31c07d2863e16e0026018a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#a6fdd92775f31c07d2863e16e0026018a">z_mime_content_type</a> ($filename)</td></tr>
+<tr class="memdesc:a6fdd92775f31c07d2863e16e0026018a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Guess the mimetype from file ending. <a href="#a6fdd92775f31c07d2863e16e0026018a">More...</a><br/></td></tr>
<tr class="separator:a6fdd92775f31c07d2863e16e0026018a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a887d2d44a3ef18dcb6624e7fb58dc8e3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files</a> ($channel_id, $observer, $hash= '', $filename= '', $filetype= '')</td></tr>
+<tr class="memdesc:a887d2d44a3ef18dcb6624e7fb58dc8e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Count files/attachments. <a href="#a887d2d44a3ef18dcb6624e7fb58dc8e3">More...</a><br/></td></tr>
<tr class="separator:a887d2d44a3ef18dcb6624e7fb58dc8e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3634af95f11a023dd8e882c3c7a3600d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files</a> ($channel_id, $observer, $hash= '', $filename= '', $filetype= '', $orderby= 'created desc', $start=0, $entries=0)</td></tr>
+<tr class="memdesc:a3634af95f11a023dd8e882c3c7a3600d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a list of files/attachments. <a href="#a3634af95f11a023dd8e882c3c7a3600d">More...</a><br/></td></tr>
<tr class="separator:a3634af95f11a023dd8e882c3c7a3600d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d07c5b83d3d54e186f752e571847b36"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash</a> ($hash, $rev=0)</td></tr>
+<tr class="memdesc:a0d07c5b83d3d54e186f752e571847b36"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find an attachment by hash and revision. <a href="#a0d07c5b83d3d54e186f752e571847b36">More...</a><br/></td></tr>
<tr class="separator:a0d07c5b83d3d54e186f752e571847b36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad991208ce939387e2f93a3bce7d09932"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata</a> ($hash, $rev=0)</td></tr>
+<tr class="memdesc:ad991208ce939387e2f93a3bce7d09932"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find an attachment by hash and revision. <a href="#ad991208ce939387e2f93a3bce7d09932">More...</a><br/></td></tr>
<tr class="separator:ad991208ce939387e2f93a3bce7d09932"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84a8a64c4805e1525b42d4add464833f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store</a> ($channel, $observer_hash, $options= '', $arr=null)</td></tr>
<tr class="separator:a84a8a64c4805e1525b42d4add464833f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb07968990e66a88c95483ca09a7f909"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir</a> ($channel_id, $observer_hash, $pathname, $parent_hash= '')</td></tr>
<tr class="separator:aeb07968990e66a88c95483ca09a7f909"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6830b3ab74a5d284876141ac80f6cbc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir</a> ($channel, $observer_hash, $arr=null)</td></tr>
+<tr class="memdesc:ab6830b3ab74a5d284876141ac80f6cbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create directory. <a href="#ab6830b3ab74a5d284876141ac80f6cbc">More...</a><br/></td></tr>
<tr class="separator:ab6830b3ab74a5d284876141ac80f6cbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c0875eafb8c0f8a0620ff7a875a2221"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#a5c0875eafb8c0f8a0620ff7a875a2221">attach_change_permissions</a> ($channel_id, $resource, $allow_cid, $allow_gid, $deny_cid, $deny_gid, $recurse=false)</td></tr>
+<tr class="memdesc:a5c0875eafb8c0f8a0620ff7a875a2221"><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes permissions of a file. <a href="#a5c0875eafb8c0f8a0620ff7a875a2221">More...</a><br/></td></tr>
+<tr class="separator:a5c0875eafb8c0f8a0620ff7a875a2221"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a70bd666e080c2af5a91f5d14c297b8cd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#a70bd666e080c2af5a91f5d14c297b8cd">attach_delete</a> ($channel_id, $resource)</td></tr>
+<tr class="memdesc:a70bd666e080c2af5a91f5d14c297b8cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a file. <a href="#a70bd666e080c2af5a91f5d14c297b8cd">More...</a><br/></td></tr>
+<tr class="separator:a70bd666e080c2af5a91f5d14c297b8cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6aa00ea010ea030110faefb75eafc1ce"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#a6aa00ea010ea030110faefb75eafc1ce">get_cloudpath</a> ($arr)</td></tr>
+<tr class="memdesc:a6aa00ea010ea030110faefb75eafc1ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns path to file in cloud/. <a href="#a6aa00ea010ea030110faefb75eafc1ce">More...</a><br/></td></tr>
+<tr class="separator:a6aa00ea010ea030110faefb75eafc1ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5d484de2d19a93071571d6499a50ae34"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2attach_8php.html#a5d484de2d19a93071571d6499a50ae34">pipe_streams</a> ($in, $out)</td></tr>
+<tr class="separator:a5d484de2d19a93071571d6499a50ae34"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<h2 class="groupheader">Function Documentation</h2>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>File/attach API with the potential for revision control. </p>
+<p>TODO: a filesystem storage abstraction which maintains security (and 'data' contains a system filename which is inaccessible from the web). This could get around PHP storage limits and store videos and larger items, using fread or OS methods or native code to read/write or chunk it through. Also an 'append' option to the storage function might be a useful addition. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a0d07c5b83d3d54e186f752e571847b36"></a>
<div class="memitem">
<div class="memproto">
@@ -154,6 +177,17 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Find an attachment by hash and revision. </p>
+<p>Returns the entire attach structure including data.</p>
+<p>This could exhaust memory so most useful only when immediately sending the data.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">$hash</td><td></td></tr>
+ <tr><td class="paramname">$rev</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+
<p>Referenced by <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>.</p>
</div>
@@ -182,10 +216,93 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Find an attachment by hash and revision. </p>
+<p>Returns the entire attach structure excluding data.</p>
+<dl class="section see"><dt>See Also</dt><dd><a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36" title="Find an attachment by hash and revision.">attach_by_hash()</a> </dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">$hash</td><td></td></tr>
+ <tr><td class="paramname">$ref</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+
<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, and <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>.</p>
</div>
</div>
+<a class="anchor" id="a5c0875eafb8c0f8a0620ff7a875a2221"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">attach_change_permissions </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$resource</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$allow_cid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$allow_gid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$deny_cid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$deny_gid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$recurse</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Changes permissions of a file. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">$channel_id</td><td></td></tr>
+ <tr><td class="paramname">$resource</td><td></td></tr>
+ <tr><td class="paramname">$allow_cid</td><td></td></tr>
+ <tr><td class="paramname">$allow_gid</td><td></td></tr>
+ <tr><td class="paramname">$deny_cid</td><td></td></tr>
+ <tr><td class="paramname">$deny_gid</td><td></td></tr>
+ <tr><td class="paramname">$recurse</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Referenced by <a class="el" href="filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd">filestorage_post()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a887d2d44a3ef18dcb6624e7fb58dc8e3"></a>
<div class="memitem">
<div class="memproto">
@@ -228,6 +345,56 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Count files/attachments. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">$channel_id</td><td></td></tr>
+ <tr><td class="paramname">$observer</td><td></td></tr>
+ <tr><td class="paramname">$hash</td><td>(optional) </td></tr>
+ <tr><td class="paramname">$filename</td><td>(optional) </td></tr>
+ <tr><td class="paramname">$filetype</td><td>(optional) </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>array $ret['success'] boolean $ret['results'] amount of found results, or false $ret['message'] string with error messages if any </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a70bd666e080c2af5a91f5d14c297b8cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">attach_delete </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$resource</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Delete a file. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">$channel_id</td><td></td></tr>
+ <tr><td class="paramname">$resource</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Referenced by <a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">RedDirectory\createFile()</a>, <a class="el" href="classRedFile.html#aef71c9eaac7052be7dc8602eb12171e7">RedFile\delete()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, and <a class="el" href="classRedFile.html#a41a49a583eb276b75626fcf97f4a699c">RedFile\put()</a>.</p>
+
</div>
</div>
<a class="anchor" id="a3634af95f11a023dd8e882c3c7a3600d"></a>
@@ -290,6 +457,22 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Returns a list of files/attachments. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">$channel_id</td><td></td></tr>
+ <tr><td class="paramname">$observer</td><td></td></tr>
+ <tr><td class="paramname">$hash</td><td>(optional) </td></tr>
+ <tr><td class="paramname">$filename</td><td>(optional) </td></tr>
+ <tr><td class="paramname">$filetype</td><td>(optional) </td></tr>
+ <tr><td class="paramname">$orderby</td><td></td></tr>
+ <tr><td class="paramname">$start</td><td></td></tr>
+ <tr><td class="paramname">$entries</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>array $ret['success'] boolean $ret['results'] array with results, or false $ret['message'] string with error messages if any </dd></dl>
+
</div>
</div>
<a class="anchor" id="ab6830b3ab74a5d284876141ac80f6cbc"></a>
@@ -321,18 +504,19 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+
+<p>Create directory. </p>
<p>attach_mkdir($channel,$observer_hash,$arr);</p>
-<p>Create directory</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">$channel</td><td>channel array of owner </td></tr>
<tr><td class="paramname">$observer_hash</td><td>hash of current observer </td></tr>
- <tr><td class="paramname">$arr</td><td>parameter array to fulfil request</td></tr>
+ <tr><td class="paramname">$arr</td><td>parameter array to fulfil request Required: $arr['filename'] $arr['folder'] // hash of parent directory, empty string for root directory Optional: $arr['hash'] // precumputed hash for this node $arr['allow_cid'] $arr['allow_gid'] $arr['deny_cid'] $arr['deny_gid'] </td></tr>
</table>
</dd>
</dl>
-<p>Required: $arr['filename'] $arr['folder'] // hash of parent directory, empty string for root directory</p>
-<p>Optional: $arr['hash'] // precumputed hash for this node $arr['allow_cid'] $arr['allow_gid'] $arr['deny_cid'] $arr['deny_gid'] </p>
+
+<p>Referenced by <a class="el" href="classRedDirectory.html#a986936910f0216887a25e28916c166c7">RedDirectory\createDirectory()</a>.</p>
</div>
</div>
@@ -371,11 +555,82 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">$channel</td><td>channel array of owner </td></tr>
+ <tr><td class="paramname">$observer_hash</td><td>hash of current observer </td></tr>
+ <tr><td class="paramname">$options</td><td>(optional) </td></tr>
+ <tr><td class="paramname">$arr</td><td>(optional) </td></tr>
+ </table>
+ </dd>
+</dl>
<p>Referenced by <a class="el" href="item_8php.html#a3daae7944f737bd30412a0d042207c0f">fix_attached_file_permissions()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, and <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>.</p>
</div>
</div>
+<a class="anchor" id="a6aa00ea010ea030110faefb75eafc1ce"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_cloudpath </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Returns path to file in cloud/. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">$arr</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string with the path the file to cloud/ </dd></dl>
+
+<p>Referenced by <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5d484de2d19a93071571d6499a50ae34"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">pipe_streams </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$in</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$out</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">$in</td><td></td></tr>
+ <tr><td class="paramname">$out</td><td></td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Referenced by <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a6fdd92775f31c07d2863e16e0026018a"></a>
<div class="memitem">
<div class="memproto">
@@ -390,7 +645,17 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>.</p>
+<p>Guess the mimetype from file ending. </p>
+<p>This function takes a file name and guess the mimetype from the filename extension.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">$filename</td><td>a string filename </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string The mimetype according to a file ending. </dd></dl>
+
+<p>Referenced by <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, and <a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">RedDirectory\createFile()</a>.</p>
</div>
</div>
@@ -433,7 +698,7 @@ Functions</h2></td></tr>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramtype">integer</td><td class="paramname">$channel_id</td><td></td></tr>
- <tr><td class="paramtype">string</td><td class="paramname">$observer_hash</td><td></td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$observer_hash</td><td>hash of current observer </td></tr>
<tr><td class="paramtype">string</td><td class="paramname">$pathname</td><td></td></tr>
<tr><td class="paramtype">string</td><td class="paramname">$parent_hash</td><td>(optional)</td></tr>
</table>
diff --git a/doc/html/include_2attach_8php.js b/doc/html/include_2attach_8php.js
index af10aa06f..8f134c5ae 100644
--- a/doc/html/include_2attach_8php.js
+++ b/doc/html/include_2attach_8php.js
@@ -2,10 +2,14 @@ var include_2attach_8php =
[
[ "attach_by_hash", "include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36", null ],
[ "attach_by_hash_nodata", "include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932", null ],
+ [ "attach_change_permissions", "include_2attach_8php.html#a5c0875eafb8c0f8a0620ff7a875a2221", null ],
[ "attach_count_files", "include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3", null ],
+ [ "attach_delete", "include_2attach_8php.html#a70bd666e080c2af5a91f5d14c297b8cd", null ],
[ "attach_list_files", "include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d", null ],
[ "attach_mkdir", "include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc", null ],
[ "attach_store", "include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f", null ],
+ [ "get_cloudpath", "include_2attach_8php.html#a6aa00ea010ea030110faefb75eafc1ce", null ],
+ [ "pipe_streams", "include_2attach_8php.html#a5d484de2d19a93071571d6499a50ae34", null ],
[ "z_mime_content_type", "include_2attach_8php.html#a6fdd92775f31c07d2863e16e0026018a", null ],
[ "z_readdir", "include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909", null ]
]; \ No newline at end of file
diff --git a/doc/html/include_2bookmarks_8php.html b/doc/html/include_2bookmarks_8php.html
new file mode 100644
index 000000000..28218b211
--- /dev/null
+++ b/doc/html/include_2bookmarks_8php.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/bookmarks.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('include_2bookmarks_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">bookmarks.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a88ce7dee6a3dc7465aa9b8eaa45b0087"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2bookmarks_8php.html#a88ce7dee6a3dc7465aa9b8eaa45b0087">bookmark_add</a> ($channel, $sender, $taxonomy, $private)</td></tr>
+<tr class="separator:a88ce7dee6a3dc7465aa9b8eaa45b0087"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a88ce7dee6a3dc7465aa9b8eaa45b0087"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bookmark_add </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$sender</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$taxonomy</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$private</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, and <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/include_2bookmarks_8php.js b/doc/html/include_2bookmarks_8php.js
new file mode 100644
index 000000000..c63d2d4dd
--- /dev/null
+++ b/doc/html/include_2bookmarks_8php.js
@@ -0,0 +1,4 @@
+var include_2bookmarks_8php =
+[
+ [ "bookmark_add", "include_2bookmarks_8php.html#a88ce7dee6a3dc7465aa9b8eaa45b0087", null ]
+]; \ No newline at end of file
diff --git a/doc/html/include_2chat_8php.html b/doc/html/include_2chat_8php.html
new file mode 100644
index 000000000..7040528d6
--- /dev/null
+++ b/doc/html/include_2chat_8php.html
@@ -0,0 +1,277 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/chat.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('include_2chat_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">chat.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:acdc80dba4eb796c7472b21129b435422"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2chat_8php.html#acdc80dba4eb796c7472b21129b435422">chatroom_create</a> ($channel, $arr)</td></tr>
+<tr class="separator:acdc80dba4eb796c7472b21129b435422"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2ba3af6884ecdce95de69262fe599639"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2chat_8php.html#a2ba3af6884ecdce95de69262fe599639">chatroom_destroy</a> ($channel, $arr)</td></tr>
+<tr class="separator:a2ba3af6884ecdce95de69262fe599639"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c95b545e46bfee64faa05ecf0afea91"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2chat_8php.html#a2c95b545e46bfee64faa05ecf0afea91">chatroom_enter</a> ($observer_xchan, $room_id, $status, $client)</td></tr>
+<tr class="separator:a2c95b545e46bfee64faa05ecf0afea91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1ee1360f7d2549c7549ae07cb5190f0f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2chat_8php.html#a1ee1360f7d2549c7549ae07cb5190f0f">chatroom_leave</a> ($observer_xchan, $room_id, $client)</td></tr>
+<tr class="separator:a1ee1360f7d2549c7549ae07cb5190f0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedcb532a0627b8644001a2fadab4e87a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2chat_8php.html#aedcb532a0627b8644001a2fadab4e87a">chatroom_list</a> ($uid)</td></tr>
+<tr class="separator:aedcb532a0627b8644001a2fadab4e87a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="acdc80dba4eb796c7472b21129b435422"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">chatroom_create </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2chat_8php.html#a999d594745597c656c9760253ae297ad">chat_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2ba3af6884ecdce95de69262fe599639"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">chatroom_destroy </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2chat_8php.html#a999d594745597c656c9760253ae297ad">chat_post()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2c95b545e46bfee64faa05ecf0afea91"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">chatroom_enter </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$observer_xchan</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$room_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$status</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$client</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1ee1360f7d2549c7549ae07cb5190f0f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">chatroom_leave </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$observer_xchan</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$room_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$client</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aedcb532a0627b8644001a2fadab4e87a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">chatroom_list </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="widgets_8php.html#a47c72aac42058ea086c9ef8651c259da">widget_chatroom_list()</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/include_2chat_8php.js b/doc/html/include_2chat_8php.js
new file mode 100644
index 000000000..c8934cc36
--- /dev/null
+++ b/doc/html/include_2chat_8php.js
@@ -0,0 +1,8 @@
+var include_2chat_8php =
+[
+ [ "chatroom_create", "include_2chat_8php.html#acdc80dba4eb796c7472b21129b435422", null ],
+ [ "chatroom_destroy", "include_2chat_8php.html#a2ba3af6884ecdce95de69262fe599639", null ],
+ [ "chatroom_enter", "include_2chat_8php.html#a2c95b545e46bfee64faa05ecf0afea91", null ],
+ [ "chatroom_leave", "include_2chat_8php.html#a1ee1360f7d2549c7549ae07cb5190f0f", null ],
+ [ "chatroom_list", "include_2chat_8php.html#aedcb532a0627b8644001a2fadab4e87a", null ]
+]; \ No newline at end of file
diff --git a/doc/html/include_2config_8php.html b/doc/html/include_2config_8php.html
index bb9e9d40f..c46e26f27 100644
--- a/doc/html/include_2config_8php.html
+++ b/doc/html/include_2config_8php.html
@@ -256,7 +256,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694">allowed_email()</a>, <a class="el" href="include_2network_8php.html#aee35d9ad6b3f872bfb39ba3598936aa7">allowed_url()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f">check_account_admin()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b">cli_startup()</a>, <a class="el" href="cloud_8php.html#a080071b784fe01d04ed6c09d9f2785b8">cloud_init()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">detect_language()</a>, <a class="el" href="mod_2directory_8php.html#aa1d928543212871491706216742dd73c">directory_aside()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c">dlogger()</a>, <a class="el" href="datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8">dob()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">encode_mail()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d">find_upstream_directory()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">get_mail_elements()</a>, <a class="el" href="boot_8php.html#a97769915c9f14adc4f8ab1ea2cecfd90">get_max_import_size()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="classphoto__gd.html#a0795fc029be382557ae3f6e285f40e00">photo_gd\imageString()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8">photo_imagick\load()</a>, <a class="el" href="text_8php.html#a030fa5ecc64168af0c4f44897a9bce63">logger()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934">FKOAuthDataStore\new_access_token()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="crypto_8php.html#aae0ab70d6a199b29555b1ac3cf250d6a">new_keypair()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2oembed_8php.html#aba89ae64b355efcb4f706553d3edb6a2">oembed_bbcode2html()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="identity_8php.html#ad4a2c8caca8f6ae93633ebeca0ed6620">profile_create_sidebar()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="pubsites_8php.html#af614e279aab54065345bda6b03eafdf0">pubsites_content()</a>, <a class="el" href="qsearch_8php.html#a0501887b95bd8fa21018b2936a668894">qsearch_init()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025">reload_plugins()</a>, <a class="el" href="Contact_8php.html#acc12cda999c88c4d6185cca967c15125">remove_all_xchan_resources()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="account_8php.html#aa9c29c497c17d8f9344dce8631ad8761">send_verification_email()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a">set_config()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="permissions_8php.html#aa8b7b102c653649d7a71b5a1c044d90d">site_default_perms()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="view_2theme_2blogga_2php_2config_8php.html#a09cd81013505f83aea0771243a1e4e53">theme_admin()</a>, <a class="el" href="text_8php.html#a8264348059abd1d4d5bb521323d3b19a">unobscure()</a>, <a class="el" href="zot_8php.html#ab319d1d9fff9c7775d9daef42d1f33dd">update_modtime()</a>, <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>, <a class="el" href="plugin_8php.html#a4fc13e528367f510fcb6d8bbfc559040">upgrade_link()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="text_8php.html#a6a3d80a6c6fb234fd0bac44203b828eb">valid_email()</a>, <a class="el" href="include_2network_8php.html#a897e7112d86eb95526cbd0bff9375f02">validate_email()</a>, <a class="el" href="viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6">viewconnections_aside()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923">widget_profile()</a>, <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url()</a>, <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">z_post_url()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+<p>Referenced by <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694">allowed_email()</a>, <a class="el" href="include_2network_8php.html#aee35d9ad6b3f872bfb39ba3598936aa7">allowed_url()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f">check_account_admin()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b">cli_startup()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">RedDirectory\createFile()</a>, <a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">detect_language()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c">dlogger()</a>, <a class="el" href="datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8">dob()</a>, <a class="el" href="account_8php.html#a0d183a3cb4c67a0f5e906811df7a1fc9">downgrade_accounts()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">encode_mail()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d">find_upstream_directory()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="identity_8php.html#ab1485a26b032956e1496fc08c58b83ed">get_default_profile_photo()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="items_8php.html#a94ddb1d6c8fa21dd7433677e85168037">get_mail_elements()</a>, <a class="el" href="boot_8php.html#a97769915c9f14adc4f8ab1ea2cecfd90">get_max_import_size()</a>, <a class="el" href="identity_8php.html#a332df795f684788002f5a6424abacfd7">get_online_status()</a>, <a class="el" href="classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569">RedDirectory\getChild()</a>, <a class="el" href="classRedDirectory.html#aa42d3065f6f065b17db87146a7cb031a">RedDirectory\getChildren()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home_content()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="classphoto__gd.html#a0795fc029be382557ae3f6e285f40e00">photo_gd\imageString()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8">photo_imagick\load()</a>, <a class="el" href="text_8php.html#a030fa5ecc64168af0c4f44897a9bce63">logger()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934">FKOAuthDataStore\new_access_token()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="crypto_8php.html#aae0ab70d6a199b29555b1ac3cf250d6a">new_keypair()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2oembed_8php.html#aba89ae64b355efcb4f706553d3edb6a2">oembed_bbcode2html()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="identity_8php.html#ad4a2c8caca8f6ae93633ebeca0ed6620">profile_create_sidebar()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="pubsites_8php.html#af614e279aab54065345bda6b03eafdf0">pubsites_content()</a>, <a class="el" href="classRedFile.html#a41a49a583eb276b75626fcf97f4a699c">RedFile\put()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025">reload_plugins()</a>, <a class="el" href="Contact_8php.html#acc12cda999c88c4d6185cca967c15125">remove_all_xchan_resources()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="account_8php.html#aa9c29c497c17d8f9344dce8631ad8761">send_verification_email()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a">set_config()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="permissions_8php.html#aa8b7b102c653649d7a71b5a1c044d90d">site_default_perms()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="view_2theme_2blogga_2php_2config_8php.html#a09cd81013505f83aea0771243a1e4e53">theme_admin()</a>, <a class="el" href="text_8php.html#a8264348059abd1d4d5bb521323d3b19a">unobscure()</a>, <a class="el" href="zot_8php.html#ab319d1d9fff9c7775d9daef42d1f33dd">update_modtime()</a>, <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>, <a class="el" href="plugin_8php.html#a4fc13e528367f510fcb6d8bbfc559040">upgrade_link()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="text_8php.html#a6a3d80a6c6fb234fd0bac44203b828eb">valid_email()</a>, <a class="el" href="include_2network_8php.html#a897e7112d86eb95526cbd0bff9375f02">validate_email()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="widgets_8php.html#a70442dfa079312d9d5e5ee01be51a165">widget_fullprofile()</a>, <a class="el" href="widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923">widget_profile()</a>, <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url()</a>, <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">z_post_url()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
</div>
</div>
@@ -324,7 +324,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classConversation.html#af84ea6ccd72214c9bb4c504461cc8b09">Conversation\__construct()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connect_8php.html#a489f0a66c660de6ec4d6917b27674f07">connect_content()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">contact_remove()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">get_theme_uid()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="lastpost_8php.html#a6108289ef2a767495c7c85a24f364983">lastpost_aside()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">set_pconfig()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
+<p>Referenced by <a class="el" href="classConversation.html#af84ea6ccd72214c9bb4c504461cc8b09">Conversation\__construct()</a>, <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connect_8php.html#a489f0a66c660de6ec4d6917b27674f07">connect_content()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6">contact_remove()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="identity_8php.html#a332df795f684788002f5a6424abacfd7">get_online_status()</a>, <a class="el" href="identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">get_theme_uid()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde">home_init()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">set_pconfig()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>, and <a class="el" href="widgets_8php.html#a45ea061dabe9a8372e4ca3b9e5714256">widget_notes()</a>.</p>
</div>
</div>
@@ -468,7 +468,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, and <a class="el" href="view_2theme_2blogga_2php_2config_8php.html#aef2da5582b7cb6b5f63e5ca5d69fd30b">theme_admin_post()</a>.</p>
+<p>Referenced by <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="view_2theme_2blogga_2php_2config_8php.html#aef2da5582b7cb6b5f63e5ca5d69fd30b">theme_admin_post()</a>, and <a class="el" href="setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58">what_next()</a>.</p>
</div>
</div>
@@ -508,7 +508,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, and <a class="el" href="view_2theme_2apw_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6">theme_post()</a>.</p>
+<p>Referenced by <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="notes_8php.html#a4dbd7b1f906440746af48b484d66535a">notes_init()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, and <a class="el" href="view_2theme_2apw_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6">theme_post()</a>.</p>
</div>
</div>
@@ -548,7 +548,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="toggle__safesearch_8php.html#a23d5cfb2727a266e44993ffbf5595a79">toggle_safesearch_init()</a>.</p>
+<p>Referenced by <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, and <a class="el" href="toggle__safesearch_8php.html#a23d5cfb2727a266e44993ffbf5595a79">toggle_safesearch_init()</a>.</p>
</div>
</div>
diff --git a/doc/html/include_2group_8php.html b/doc/html/include_2group_8php.html
index 21bff3376..84fc3442a 100644
--- a/doc/html/include_2group_8php.html
+++ b/doc/html/include_2group_8php.html
@@ -128,8 +128,8 @@ Functions</h2></td></tr>
<tr class="separator:a5bd191d9692e6c34d48c0ede10810f09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0e422a0f31c0c64fd9084ca03d85f32"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32">mini_group_select</a> ($uid, $group= '')</td></tr>
<tr class="separator:ab0e422a0f31c0c64fd9084ca03d85f32"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1042d74055bafe54a6a30103d87a7f17"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17">group_side</a> ($every=&quot;contacts&quot;, $each=&quot;group&quot;, $edit=false, $group_id=0, $cid= '')</td></tr>
-<tr class="separator:a1042d74055bafe54a6a30103d87a7f17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6a69bd7be032fa8ce4e49c43a42cc6e9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2group_8php.html#a6a69bd7be032fa8ce4e49c43a42cc6e9">group_side</a> ($every=&quot;connections&quot;, $each=&quot;group&quot;, $edit=false, $group_id=0, $cid= '', $mode=1)</td></tr>
+<tr class="separator:a6a69bd7be032fa8ce4e49c43a42cc6e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22a81875259c7d3d64d4848afea6b345"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345">expand_groups</a> ($a)</td></tr>
<tr class="separator:a22a81875259c7d3d64d4848afea6b345"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a048f6892bfd28852de1b76470df411de"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2group_8php.html#a048f6892bfd28852de1b76470df411de">member_of</a> ($c)</td></tr>
@@ -226,7 +226,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, and <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>.</p>
+<p>Referenced by <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3">contactgroup_content()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, and <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>.</p>
</div>
</div>
@@ -254,7 +254,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce">group_add()</a>, <a class="el" href="include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b">group_add_member()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, and <a class="el" href="include_2group_8php.html#a540e3ef36f47d47532646be4241f6518">group_rmv_member()</a>.</p>
+<p>Referenced by <a class="el" href="include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce">group_add()</a>, <a class="el" href="include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b">group_add_member()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="include_2group_8php.html#a540e3ef36f47d47532646be4241f6518">group_rmv_member()</a>, and <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>.</p>
</div>
</div>
@@ -300,7 +300,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>.</p>
+<p>Referenced by <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>.</p>
</div>
</div>
@@ -366,7 +366,7 @@ Functions</h2></td></tr>
</div>
</div>
-<a class="anchor" id="a1042d74055bafe54a6a30103d87a7f17"></a>
+<a class="anchor" id="a6a69bd7be032fa8ce4e49c43a42cc6e9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -374,7 +374,7 @@ Functions</h2></td></tr>
<td class="memname">group_side </td>
<td>(</td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$every</em> = <code>&quot;contacts&quot;</code>, </td>
+ <td class="paramname"><em>$every</em> = <code>&quot;connections&quot;</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -398,7 +398,13 @@ Functions</h2></td></tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$cid</em> = <code>''</code>&#160;</td>
+ <td class="paramname"><em>$cid</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$mode</em> = <code>1</code>&#160;</td>
</tr>
<tr>
<td></td>
@@ -408,7 +414,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="connections_8php.html#af48f7ad20914760ba9874c090384e35a">connections_aside()</a>, <a class="el" href="mod_2group_8php.html#aeb0784dd928e53e6d8693513bec8928c">group_aside()</a>, and <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>.</p>
+<p>Referenced by <a class="el" href="widgets_8php.html#aa189a07241246d97efbee29f1c6a6f7f">widget_collections()</a>.</p>
</div>
</div>
@@ -436,7 +442,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17">group_side()</a>.</p>
+<p>Referenced by <a class="el" href="include_2group_8php.html#a6a69bd7be032fa8ce4e49c43a42cc6e9">group_side()</a>.</p>
</div>
</div>
diff --git a/doc/html/include_2group_8php.js b/doc/html/include_2group_8php.js
index ef82dca8f..d9a775ade 100644
--- a/doc/html/include_2group_8php.js
+++ b/doc/html/include_2group_8php.js
@@ -8,7 +8,7 @@ var include_2group_8php =
[ "group_rec_byhash", "include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245", null ],
[ "group_rmv", "include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5", null ],
[ "group_rmv_member", "include_2group_8php.html#a540e3ef36f47d47532646be4241f6518", null ],
- [ "group_side", "include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17", null ],
+ [ "group_side", "include_2group_8php.html#a6a69bd7be032fa8ce4e49c43a42cc6e9", null ],
[ "groups_containing", "include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f", null ],
[ "member_of", "include_2group_8php.html#a048f6892bfd28852de1b76470df411de", null ],
[ "mini_group_select", "include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32", null ]
diff --git a/doc/html/include_2menu_8php.html b/doc/html/include_2menu_8php.html
index 75adcc316..2fb579197 100644
--- a/doc/html/include_2menu_8php.html
+++ b/doc/html/include_2menu_8php.html
@@ -114,14 +114,14 @@ $(document).ready(function(){initNavTree('include_2menu_8php.html','');});
Functions</h2></td></tr>
<tr class="memitem:a68ebbf492470c930f652013656f9071d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2menu_8php.html#a68ebbf492470c930f652013656f9071d">menu_fetch</a> ($name, $uid, $observer_xchan)</td></tr>
<tr class="separator:a68ebbf492470c930f652013656f9071d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a890cc6237971e15f15702e6b2e88502e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2menu_8php.html#a890cc6237971e15f15702e6b2e88502e">menu_render</a> ($menu)</td></tr>
-<tr class="separator:a890cc6237971e15f15702e6b2e88502e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d7123b0577fa994770199f9b831da11"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2menu_8php.html#a4d7123b0577fa994770199f9b831da11">menu_render</a> ($menu, $edit=false)</td></tr>
+<tr class="separator:a4d7123b0577fa994770199f9b831da11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47447c01ba8ea04cd74af1d4c5b68fc7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2menu_8php.html#a47447c01ba8ea04cd74af1d4c5b68fc7">menu_fetch_id</a> ($menu_id, $channel_id)</td></tr>
<tr class="separator:a47447c01ba8ea04cd74af1d4c5b68fc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08a800821721781a8dfffbe31481ff98"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2menu_8php.html#a08a800821721781a8dfffbe31481ff98">menu_create</a> ($arr)</td></tr>
<tr class="separator:a08a800821721781a8dfffbe31481ff98"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acef15a498d52666b1c7e5c12765c689b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2menu_8php.html#acef15a498d52666b1c7e5c12765c689b">menu_list</a> ($channel_id)</td></tr>
-<tr class="separator:acef15a498d52666b1c7e5c12765c689b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a32701c4245e78ba9106eef52c08bf33d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2menu_8php.html#a32701c4245e78ba9106eef52c08bf33d">menu_list</a> ($channel_id, $name= '', $flags=0)</td></tr>
+<tr class="separator:a32701c4245e78ba9106eef52c08bf33d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a33c6a3db2a7510b16cc656edaec571"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2menu_8php.html#a6a33c6a3db2a7510b16cc656edaec571">menu_edit</a> ($arr)</td></tr>
<tr class="separator:a6a33c6a3db2a7510b16cc656edaec571"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3884bda4d85d84ec99447db9403a68d8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="include_2menu_8php.html#a3884bda4d85d84ec99447db9403a68d8">menu_delete</a> ($menu_name, $uid)</td></tr>
@@ -166,7 +166,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>.</p>
+<p>Referenced by <a class="el" href="include_2bookmarks_8php.html#a88ce7dee6a3dc7465aa9b8eaa45b0087">bookmark_add()</a>, and <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>.</p>
</div>
</div>
@@ -184,7 +184,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>.</p>
+<p>Referenced by <a class="el" href="include_2bookmarks_8php.html#a88ce7dee6a3dc7465aa9b8eaa45b0087">bookmark_add()</a>, and <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>.</p>
</div>
</div>
@@ -358,7 +358,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="comanche_8php.html#a1fe339e1454803aa502ac89379c17f5b">comanche_menu()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, and <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>.</p>
+<p>Referenced by <a class="el" href="mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a">bookmarks_content()</a>, <a class="el" href="comanche_8php.html#a1fe339e1454803aa502ac89379c17f5b">comanche_menu()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, and <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>.</p>
</div>
</div>
@@ -390,7 +390,7 @@ Functions</h2></td></tr>
</div>
</div>
-<a class="anchor" id="acef15a498d52666b1c7e5c12765c689b"></a>
+<a class="anchor" id="a32701c4245e78ba9106eef52c08bf33d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -398,17 +398,34 @@ Functions</h2></td></tr>
<td class="memname">menu_list </td>
<td>(</td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$channel_id</em></td><td>)</td>
+ <td class="paramname"><em>$channel_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
<td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$name</em> = <code>''</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$flags</em> = <code>0</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
+<p>If $flags is present, check that all the bits in $flags are set so that MENU_SYSTEM|MENU_BOOKMARK will return entries with both bits set. We will use this to find system generated bookmarks. </p>
-<p>Referenced by <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>.</p>
+<p>Referenced by <a class="el" href="include_2bookmarks_8php.html#a88ce7dee6a3dc7465aa9b8eaa45b0087">bookmark_add()</a>, <a class="el" href="mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a">bookmarks_content()</a>, and <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>.</p>
</div>
</div>
-<a class="anchor" id="a890cc6237971e15f15702e6b2e88502e"></a>
+<a class="anchor" id="a4d7123b0577fa994770199f9b831da11"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -416,13 +433,23 @@ Functions</h2></td></tr>
<td class="memname">menu_render </td>
<td>(</td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$menu</em></td><td>)</td>
+ <td class="paramname"><em>$menu</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$edit</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
<td></td>
+ <td>)</td>
+ <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="comanche_8php.html#a1fe339e1454803aa502ac89379c17f5b">comanche_menu()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, and <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>.</p>
+<p>Referenced by <a class="el" href="mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a">bookmarks_content()</a>, <a class="el" href="comanche_8php.html#a1fe339e1454803aa502ac89379c17f5b">comanche_menu()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, and <a class="el" href="widgets_8php.html#a3bdfb81bf9a8ddf219924fa7eaf22013">widget_menu_preview()</a>.</p>
</div>
</div>
diff --git a/doc/html/include_2menu_8php.js b/doc/html/include_2menu_8php.js
index b5ace532a..e449b7920 100644
--- a/doc/html/include_2menu_8php.js
+++ b/doc/html/include_2menu_8php.js
@@ -9,6 +9,6 @@ var include_2menu_8php =
[ "menu_edit_item", "include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa", null ],
[ "menu_fetch", "include_2menu_8php.html#a68ebbf492470c930f652013656f9071d", null ],
[ "menu_fetch_id", "include_2menu_8php.html#a47447c01ba8ea04cd74af1d4c5b68fc7", null ],
- [ "menu_list", "include_2menu_8php.html#acef15a498d52666b1c7e5c12765c689b", null ],
- [ "menu_render", "include_2menu_8php.html#a890cc6237971e15f15702e6b2e88502e", null ]
+ [ "menu_list", "include_2menu_8php.html#a32701c4245e78ba9106eef52c08bf33d", null ],
+ [ "menu_render", "include_2menu_8php.html#a4d7123b0577fa994770199f9b831da11", null ]
]; \ No newline at end of file
diff --git a/doc/html/include_2message_8php.html b/doc/html/include_2message_8php.html
index d66e4bfa1..feacd5b3a 100644
--- a/doc/html/include_2message_8php.html
+++ b/doc/html/include_2message_8php.html
@@ -154,7 +154,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>.</p>
+<p>Referenced by <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, and <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>.</p>
</div>
</div>
@@ -188,7 +188,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>.</p>
+<p>Referenced by <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>.</p>
</div>
</div>
@@ -260,7 +260,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>.</p>
+<p>Referenced by <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>.</p>
</div>
</div>
@@ -313,7 +313,7 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<p>When a photo was uploaded into the message using the (profile wall) ajax uploader, The permissions are initially set to disallow anybody but the owner from seeing it. This is because the permissions may not yet have been set for the post. If it's private, the photo permissions should be set appropriately. But we didn't know the final permissions on the post until now. So now we'll look for links of uploaded messages that are in the post and set them to the same permissions as the post itself.</p>
-<p>Referenced by <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new()</a>, and <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>.</p>
+<p>Referenced by <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new()</a>, and <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>.</p>
</div>
</div>
diff --git a/doc/html/include_2network_8php.html b/doc/html/include_2network_8php.html
index 5f9f69ea0..97bb9b2fe 100644
--- a/doc/html/include_2network_8php.html
+++ b/doc/html/include_2network_8php.html
@@ -367,7 +367,7 @@ Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>(does not return, process is terminated) </dd></dl>
-<p>Referenced by <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, and <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>.</p>
+<p>Referenced by <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>, <a class="el" href="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud_init()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, and <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>.</p>
</div>
</div>
@@ -385,7 +385,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2api_8php.html#aa9dc5350b26d6c7727d6c4b641ecba18">api_albums()</a>, <a class="el" href="include_2api_8php.html#a72bfecac1970bc29b853073e816388ff">api_channel_stream()</a>, <a class="el" href="include_2api_8php.html#adfc035ee6303c1d8ba5336a4ead2bd53">api_export_basic()</a>, <a class="el" href="include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f">api_photos()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164">new_channel_init()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="register_8php.html#ae20c0cd40f738d6295de58b9202c83d5">register_init()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+<p>Referenced by <a class="el" href="include_2api_8php.html#aa9dc5350b26d6c7727d6c4b641ecba18">api_albums()</a>, <a class="el" href="include_2api_8php.html#a72bfecac1970bc29b853073e816388ff">api_channel_stream()</a>, <a class="el" href="include_2api_8php.html#adfc035ee6303c1d8ba5336a4ead2bd53">api_export_basic()</a>, <a class="el" href="include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f">api_photos()</a>, <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9">chatsvc_content()</a>, <a class="el" href="chatsvc_8php.html#a28d248b056fa47452e28ed01130e9116">chatsvc_init()</a>, <a class="el" href="chatsvc_8php.html#a7c9a9b9c24a2b02eed8efd6b09632d03">chatsvc_post()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164">new_channel_init()</a>, <a class="el" href="notes_8php.html#a4dbd7b1f906440746af48b484d66535a">notes_init()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="online_8php.html#a80e107c84eb722b0ca11d0413b96f9f7">online_init()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="register_8php.html#ae20c0cd40f738d6295de58b9202c83d5">register_init()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
</div>
</div>
@@ -413,7 +413,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, and <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>.</p>
</div>
</div>
@@ -651,7 +651,7 @@ Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>array 'return_code' =&gt; HTTP return code or 0 if timeout or failure 'success' =&gt; boolean true (if HTTP 2xx result) or false 'header' =&gt; HTTP headers 'body' =&gt; fetched content </dd></dl>
-<p>Referenced by <a class="el" href="setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4">check_htaccess()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="parse__url_8php.html#a25635549f2c22955d72465f4d2e58993">parseurl_getsiteinfo()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="pubsites_8php.html#af614e279aab54065345bda6b03eafdf0">pubsites_content()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>, <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">z_post_url()</a>, <a class="el" href="zot_8php.html#a95528377d7303131958c9f0b7158fdce">zot_finger()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
+<p>Referenced by <a class="el" href="setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4">check_htaccess()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887">import_profile_photo()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f">navbar_complete()</a>, <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="parse__url_8php.html#a25635549f2c22955d72465f4d2e58993">parseurl_getsiteinfo()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="pubsites_8php.html#af614e279aab54065345bda6b03eafdf0">pubsites_content()</a>, <a class="el" href="identity_8php.html#a47d6f53216f23a3484061793bef29854">remote_online_status()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, <a class="el" href="sslify_8php.html#a75b11e54a3d1fc83e7d4c0e8b4dab316">sslify_init()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>, <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">z_post_url()</a>, <a class="el" href="zot_8php.html#a95528377d7303131958c9f0b7158fdce">zot_finger()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
</div>
</div>
@@ -691,7 +691,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="zot_8php.html#a95528377d7303131958c9f0b7158fdce">zot_finger()</a>, <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>, and <a class="el" href="zot_8php.html#ab3e9b99ddb11353f37f265a05bb42142">zot_zot()</a>.</p>
+<p>Referenced by <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="zot_8php.html#a95528377d7303131958c9f0b7158fdce">zot_finger()</a>, <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>, and <a class="el" href="zot_8php.html#ab3e9b99ddb11353f37f265a05bb42142">zot_zot()</a>.</p>
</div>
</div>
diff --git a/doc/html/include_2photos_8php.html b/doc/html/include_2photos_8php.html
index 677c57517..2e9d67da2 100644
--- a/doc/html/include_2photos_8php.html
+++ b/doc/html/include_2photos_8php.html
@@ -292,7 +292,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>.</p>
+<p>Referenced by <a class="el" href="widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e">widget_photo_albums()</a>.</p>
</div>
</div>
@@ -320,7 +320,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2api_8php.html#aa9dc5350b26d6c7727d6c4b641ecba18">api_albums()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, and <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>.</p>
+<p>Referenced by <a class="el" href="include_2api_8php.html#aa9dc5350b26d6c7727d6c4b641ecba18">api_albums()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, and <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>.</p>
</div>
</div>
diff --git a/doc/html/item_8php.html b/doc/html/item_8php.html
index 17307d39a..a51318730 100644
--- a/doc/html/item_8php.html
+++ b/doc/html/item_8php.html
@@ -116,8 +116,8 @@ Functions</h2></td></tr>
<tr class="separator:a693cd09805755ab85bbb5ecae69a48c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a764bbb2e9a885a86fb23d0b5e4a09221"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content</a> (&amp;$a)</td></tr>
<tr class="separator:a764bbb2e9a885a86fb23d0b5e4a09221"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abd0e603a6696051af16476eb968d52e7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="item_8php.html#abd0e603a6696051af16476eb968d52e7">handle_tag</a> ($a, &amp;$body, &amp;$inform, &amp;$str_tags, $profile_uid, $tag)</td></tr>
-<tr class="separator:abd0e603a6696051af16476eb968d52e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa22feef4de326e1d7078dedd892e615c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag</a> ($a, &amp;$body, &amp;$access_tag, &amp;$str_tags, $profile_uid, $tag)</td></tr>
+<tr class="separator:aa22feef4de326e1d7078dedd892e615c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b63a9d0cd02096e17dcf11f4afa7c10"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">fix_attached_photo_permissions</a> ($uid, $xchan_hash, $body, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny)</td></tr>
<tr class="separator:a7b63a9d0cd02096e17dcf11f4afa7c10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3daae7944f737bd30412a0d042207c0f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="item_8php.html#a3daae7944f737bd30412a0d042207c0f">fix_attached_file_permissions</a> ($channel, $observer_hash, $body, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny)</td></tr>
@@ -242,7 +242,7 @@ Functions</h2></td></tr>
</div>
</div>
-<a class="anchor" id="abd0e603a6696051af16476eb968d52e7"></a>
+<a class="anchor" id="aa22feef4de326e1d7078dedd892e615c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -262,7 +262,7 @@ Functions</h2></td></tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&amp;&#160;</td>
- <td class="paramname"><em>$inform</em>, </td>
+ <td class="paramname"><em>$access_tag</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
@@ -293,7 +293,7 @@ Functions</h2></td></tr>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramtype">unknown_type</td><td class="paramname">$body</td><td>the text to replace the tag in </td></tr>
- <tr><td class="paramtype">unknown_type</td><td class="paramname">$inform</td><td>a comma-seperated string containing everybody to inform </td></tr>
+ <tr><td class="paramtype">unknown_type</td><td class="paramname">$access_tag</td><td>- used to return tag ACL exclusions e.g. @!foo </td></tr>
<tr><td class="paramtype">unknown_type</td><td class="paramname">$str_tags</td><td>string to add the tag to </td></tr>
<tr><td class="paramtype">unknown_type</td><td class="paramname">$profile_uid</td><td></td></tr>
<tr><td class="paramtype">unknown_type</td><td class="paramname">$tag</td><td>the tag to replace</td></tr>
@@ -302,7 +302,7 @@ Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>boolean true if replaced, false if not replaced </dd></dl>
-<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>.</p>
+<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, and <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>.</p>
</div>
</div>
@@ -365,9 +365,17 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<p>This is the POST destination for most all locally posted text stuff. This function handles status, wall-to-wall status, local comments, and remote coments that are posted on this site (as opposed to being delivered in a feed). Also processed here are posts and comments coming through the statusnet/twitter API. All of these become an "item" which is our basic unit of information. Posts that originate externally or do not fall into the above posting categories go through <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a> instead of this function. </p>
<p>Is this a reply to something?</p>
-<p>fix naked links by passing through a callback to see if this is a red site (already known to us) which will get a zrl, otherwise link with url</p>
+<p>fix naked links by passing through a callback to see if this is a red site (already known to us) which will get a zrl, otherwise link with url, add bookmark tag to both. First protect any url inside certain bbcode tags so we don't double link it.</p>
<p>When a photo was uploaded into the message using the (profile wall) ajax uploader, The permissions are initially set to disallow anybody but the owner from seeing it. This is because the permissions may not yet have been set for the post. If it's private, the photo permissions should be set appropriately. But we didn't know the final permissions on the post until now. So now we'll look for links of uploaded photos and attachments that are in the post and set them to the same permissions as the post itself.</p>
<p>If the post was end-to-end encrypted we can't find images and attachments in the body, use our media_str input instead which only contains these elements - but only do this when encrypted content exists because the photo/attachment may have been removed from the post and we should keep it private. If it's encrypted we have no way of knowing so we'll set the permissions regardless and realise that the media may not be referenced in the post.</p>
+<p>What is preventing us from being able to upload photos into comments is dealing with the photo and attachment permissions, since we don't always know who was in the distribution for the top level post.</p>
+<p>We might be able to provide this functionality with a lot of fiddling:</p>
+<ul>
+<li>if the top level post is public (make the photo public)</li>
+<li>if the top level post was written by us or a wall post that belongs to us (match the top level post)</li>
+<li>if the top level post has privacy mentions, add those to the permissions.</li>
+<li>otherwise disallow the photo <em>or</em> make the photo public. This is the part that gets messy.</li>
+</ul>
<p>Fold multi-line [code] sequences</p>
<p>Look for any tags and linkify them</p>
diff --git a/doc/html/item_8php.js b/doc/html/item_8php.js
index 07e890b13..6fe342a64 100644
--- a/doc/html/item_8php.js
+++ b/doc/html/item_8php.js
@@ -2,7 +2,7 @@ var item_8php =
[
[ "fix_attached_file_permissions", "item_8php.html#a3daae7944f737bd30412a0d042207c0f", null ],
[ "fix_attached_photo_permissions", "item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10", null ],
- [ "handle_tag", "item_8php.html#abd0e603a6696051af16476eb968d52e7", null ],
+ [ "handle_tag", "item_8php.html#aa22feef4de326e1d7078dedd892e615c", null ],
[ "item_check_service_class", "item_8php.html#a5b1b36cb301a94b38150074f0d424e74", null ],
[ "item_content", "item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221", null ],
[ "item_post", "item_8php.html#a693cd09805755ab85bbb5ecae69a48c3", null ]
diff --git a/doc/html/items_8php.html b/doc/html/items_8php.html
index cdb6587c5..1ff5877f6 100644
--- a/doc/html/items_8php.html
+++ b/doc/html/items_8php.html
@@ -118,6 +118,12 @@ Functions</h2></td></tr>
<tr class="separator:a1e75047cf175aaee8dd16aa761913ff9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e6d7639431e0dd8e9f4dba8e1ac408b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b">red_zrl_callback</a> ($matches)</td></tr>
<tr class="separator:a4e6d7639431e0dd8e9f4dba8e1ac408b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a83a349062945d585edb4b3c5d763ab6e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a83a349062945d585edb4b3c5d763ab6e">red_escape_zrl_callback</a> ($matches)</td></tr>
+<tr class="separator:a83a349062945d585edb4b3c5d763ab6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a49905ea75adfe8a2d110be344d18d6a6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a49905ea75adfe8a2d110be344d18d6a6">red_escape_codeblock</a> ($m)</td></tr>
+<tr class="separator:a49905ea75adfe8a2d110be344d18d6a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4ee16e3ff1eaf60428c61f82ba25e6a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#ad4ee16e3ff1eaf60428c61f82ba25e6a">red_unescape_codeblock</a> ($m)</td></tr>
+<tr class="separator:ad4ee16e3ff1eaf60428c61f82ba25e6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a410f9c743877c125ca06312373346903"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item</a> ($arr)</td></tr>
<tr class="separator:a410f9c743877c125ca06312373346903"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a079e099e15d88d47aeb6ca6d60da7107"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a079e099e15d88d47aeb6ca6d60da7107">get_public_feed</a> ($channel, $params)</td></tr>
@@ -138,6 +144,8 @@ Functions</h2></td></tr>
<tr class="separator:a536d0313b6ffe33b9d2490c4e25c5361"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae73794179b62d39bb597ff670ab1c1e5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">import_author_xchan</a> ($<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
<tr class="separator:ae73794179b62d39bb597ff670ab1c1e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6bee35961f2e32905f20367a9309d627"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">import_author_rss</a> ($<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
+<tr class="separator:a6bee35961f2e32905f20367a9309d627"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82955cc578f0fa600acec84475026194"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item</a> ($item)</td></tr>
<tr class="separator:a82955cc578f0fa600acec84475026194"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1fcf621dce7370515b420a7753f4726"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#ac1fcf621dce7370515b420a7753f4726">map_scope</a> ($scope)</td></tr>
@@ -212,14 +220,14 @@ Functions</h2></td></tr>
<tr class="separator:a0cf98bb619f07dd18f602683a55a5f59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2abb4644ff1f20fefbc80326fe01cf0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0">posted_dates</a> ($uid, $wall)</td></tr>
<tr class="separator:ad2abb4644ff1f20fefbc80326fe01cf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abe695dd89e1e10ed042c26b80114f0ed"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#abe695dd89e1e10ed042c26b80114f0ed">posted_date_widget</a> ($url, $uid, $wall)</td></tr>
-<tr class="separator:abe695dd89e1e10ed042c26b80114f0ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf980098b6de9c3993bc3ff26a8dd6f9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">fetch_post_tags</a> ($items, $link=false)</td></tr>
<tr class="separator:adf980098b6de9c3993bc3ff26a8dd6f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a004e89d86b0f29b2c4da20108ecc4091"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed</a> ($uid, $observer_xchan, $mindate)</td></tr>
<tr class="separator:a004e89d86b0f29b2c4da20108ecc4091"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a756738301f2ed96be50232500677d58a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch</a> ($arr, $channel=null, $observer_hash=null, $client_mode=<a class="el" href="boot_8php.html#a43c6c7d84d880e9500bd4f8f8ecc5731">CLIENT_MODE_NORMAL</a>, $module= 'network')</td></tr>
<tr class="separator:a756738301f2ed96be50232500677d58a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2baa9e05f1e8aa3dd61c85803ae39bd6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="items_8php.html#a2baa9e05f1e8aa3dd61c85803ae39bd6">update_remote_id</a> ($channel, $post_id, $webpage, $pagetitle, $namespace, $remote_id, $mid)</td></tr>
+<tr class="separator:a2baa9e05f1e8aa3dd61c85803ae39bd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a36e656667193c83aa2cc03a024fc131b"></a>
@@ -830,7 +838,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+<p>Referenced by <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home_content()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
</div>
</div>
@@ -1091,6 +1099,24 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a6bee35961f2e32905f20367a9309d627"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">import_author_rss </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$x</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">import_author_xchan()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="ae73794179b62d39bb597ff670ab1c1e5"></a>
<div class="memitem">
<div class="memproto">
@@ -1193,7 +1219,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, and <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>.</p>
+<p>Referenced by <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, and <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>.</p>
</div>
</div>
@@ -1221,7 +1247,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, and <a class="el" href="zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df">update_imported_item()</a>.</p>
+<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, and <a class="el" href="zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df">update_imported_item()</a>.</p>
</div>
</div>
@@ -1267,7 +1293,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>.</p>
+<p>Referenced by <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, and <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>.</p>
</div>
</div>
@@ -1352,20 +1378,14 @@ Functions</h2></td></tr>
</div>
</div>
-<a class="anchor" id="abe695dd89e1e10ed042c26b80114f0ed"></a>
+<a class="anchor" id="ad2abb4644ff1f20fefbc80326fe01cf0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">posted_date_widget </td>
+ <td class="memname">posted_dates </td>
<td>(</td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$url</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">&#160;</td>
<td class="paramname"><em>$uid</em>, </td>
</tr>
<tr>
@@ -1382,36 +1402,56 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside()</a>, <a class="el" href="lastpost_8php.html#a6108289ef2a767495c7c85a24f364983">lastpost_aside()</a>, and <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>.</p>
+<p>Referenced by <a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widget_archive()</a>.</p>
</div>
</div>
-<a class="anchor" id="ad2abb4644ff1f20fefbc80326fe01cf0"></a>
+<a class="anchor" id="a49905ea75adfe8a2d110be344d18d6a6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">posted_dates </td>
+ <td class="memname">red_escape_codeblock </td>
<td>(</td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$uid</em>, </td>
+ <td class="paramname"><em>$m</em></td><td>)</td>
+ <td></td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a83a349062945d585edb4b3c5d763ab6e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
- <td class="paramkey"></td>
- <td></td>
+ <td class="memname">red_escape_zrl_callback </td>
+ <td>(</td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$wall</em>&#160;</td>
+ <td class="paramname"><em>$matches</em></td><td>)</td>
+ <td></td>
</tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad4ee16e3ff1eaf60428c61f82ba25e6a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
<tr>
+ <td class="memname">red_unescape_codeblock </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$m</em></td><td>)</td>
<td></td>
- <td>)</td>
- <td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#abe695dd89e1e10ed042c26b80114f0ed">posted_date_widget()</a>.</p>
-
</div>
</div>
<a class="anchor" id="a4e6d7639431e0dd8e9f4dba8e1ac408b"></a>
@@ -1427,7 +1467,7 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>red_zrl_callback preg_match function when fixing 'naked' links in mod <a class="el" href="item_8php.html">item.php</a> Check if we've got a hubloc for the site and use a zrl if we do, a url if we don't. </p>
+<p>red_zrl_callback preg_match function when fixing 'naked' links in mod <a class="el" href="item_8php.html">item.php</a> Check if we've got a hubloc for the site and use a zrl if we do, a url if we don't. Remove any existing zid= param which may have been pasted by mistake - and will have the author's credentials. zid's are dynamic and can't really be passed around like that. </p>
</div>
</div>
@@ -1483,7 +1523,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, and <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>.</p>
+<p>Referenced by <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, and <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>.</p>
</div>
</div>
@@ -1561,6 +1601,64 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a2baa9e05f1e8aa3dd61c85803ae39bd6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">update_remote_id </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$channel</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$post_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$webpage</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$pagetitle</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$namespace</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$remote_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$mid</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a004e89d86b0f29b2c4da20108ecc4091"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/items_8php.js b/doc/html/items_8php.js
index 9a224b548..962a18fe1 100644
--- a/doc/html/items_8php.js
+++ b/doc/html/items_8php.js
@@ -34,6 +34,7 @@ var items_8php =
[ "get_profile_elements", "items_8php.html#a251343637ff40a50cca93452cd530c26", null ],
[ "get_public_feed", "items_8php.html#a079e099e15d88d47aeb6ca6d60da7107", null ],
[ "has_permissions", "items_8php.html#a77051724d1784074ff187e73a4db93fe", null ],
+ [ "import_author_rss", "items_8php.html#a6bee35961f2e32905f20367a9309d627", null ],
[ "import_author_xchan", "items_8php.html#ae73794179b62d39bb597ff670ab1c1e5", null ],
[ "item_expire", "items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc", null ],
[ "item_getfeedattach", "items_8php.html#a09d425596b9f8663472cf7474ad36d96", null ],
@@ -45,13 +46,16 @@ var items_8php =
[ "mail_store", "items_8php.html#a77da7ce9a117601d49ac4a67c71b514f", null ],
[ "map_scope", "items_8php.html#ac1fcf621dce7370515b420a7753f4726", null ],
[ "post_activity_item", "items_8php.html#a410f9c743877c125ca06312373346903", null ],
- [ "posted_date_widget", "items_8php.html#abe695dd89e1e10ed042c26b80114f0ed", null ],
[ "posted_dates", "items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0", null ],
+ [ "red_escape_codeblock", "items_8php.html#a49905ea75adfe8a2d110be344d18d6a6", null ],
+ [ "red_escape_zrl_callback", "items_8php.html#a83a349062945d585edb4b3c5d763ab6e", null ],
+ [ "red_unescape_codeblock", "items_8php.html#ad4ee16e3ff1eaf60428c61f82ba25e6a", null ],
[ "red_zrl_callback", "items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b", null ],
[ "send_status_notifications", "items_8php.html#aab9e0c58247427126de0699c729c3b6c", null ],
[ "tag_deliver", "items_8php.html#ab1bce4261bcf75ad62753b498a144d17", null ],
[ "termtype", "items_8php.html#ad34827ed330898456783fb14c7b46154", null ],
[ "tgroup_check", "items_8php.html#a88c6cf7649ac836fbbed82a7a0315110", null ],
[ "title_is_body", "items_8php.html#aa371905f0a211b307cb3f7188c6cba04", null ],
+ [ "update_remote_id", "items_8php.html#a2baa9e05f1e8aa3dd61c85803ae39bd6", null ],
[ "zot_feed", "items_8php.html#a004e89d86b0f29b2c4da20108ecc4091", null ]
]; \ No newline at end of file
diff --git a/doc/html/language_8php.html b/doc/html/language_8php.html
index ed8674731..6b1775abb 100644
--- a/doc/html/language_8php.html
+++ b/doc/html/language_8php.html
@@ -109,12 +109,17 @@ $(document).ready(function(){initNavTree('language_8php.html','');});
<div class="title">language.php File Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>translation support
+<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ace67d6cad57da08d030ad9dc9b8c836e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="language_8php.html#ace67d6cad57da08d030ad9dc9b8c836e">get_browser_language</a> ()</td></tr>
+<tr class="memdesc:ace67d6cad57da08d030ad9dc9b8c836e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the browser's submitted preferred languages. <a href="#ace67d6cad57da08d030ad9dc9b8c836e">More...</a><br/></td></tr>
<tr class="separator:ace67d6cad57da08d030ad9dc9b8c836e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a980dee1d8715a98ab02e36b59facf8ed"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="language_8php.html#a980dee1d8715a98ab02e36b59facf8ed">get_best_language</a> ()</td></tr>
+<tr class="memdesc:a980dee1d8715a98ab02e36b59facf8ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the best language for which also a translation exists. <a href="#a980dee1d8715a98ab02e36b59facf8ed">More...</a><br/></td></tr>
<tr class="separator:a980dee1d8715a98ab02e36b59facf8ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9142ef1d01a235c760deb0f16643f5a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="language_8php.html#ac9142ef1d01a235c760deb0f16643f5a">push_lang</a> ($language)</td></tr>
<tr class="separator:ac9142ef1d01a235c760deb0f16643f5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -123,15 +128,23 @@ Functions</h2></td></tr>
<tr class="memitem:a7e9904c730bb24ddcb0ff50fc96f6b05"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05">load_translation_table</a> ($lang, $install=false)</td></tr>
<tr class="separator:a7e9904c730bb24ddcb0ff50fc96f6b05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae0c3638fb476ae1e31f8d242f5dac04"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04">t</a> ($s)</td></tr>
+<tr class="memdesc:aae0c3638fb476ae1e31f8d242f5dac04"><td class="mdescLeft">&#160;</td><td class="mdescRight">translate string if translation exists. <a href="#aae0c3638fb476ae1e31f8d242f5dac04">More...</a><br/></td></tr>
<tr class="separator:aae0c3638fb476ae1e31f8d242f5dac04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae310fb3880484ee1cc4faefe0c63c06d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d">tt</a> ($singular, $plural, $count)</td></tr>
<tr class="separator:ae310fb3880484ee1cc4faefe0c63c06d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a151e5b4689aef86a12642cbb7a00bfe0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="language_8php.html#a151e5b4689aef86a12642cbb7a00bfe0">string_plural_select_default</a> ($<a class="el" href="php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b">n</a>)</td></tr>
<tr class="separator:a151e5b4689aef86a12642cbb7a00bfe0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a632da17c7ac0d2dc1a00a4706870194b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">detect_language</a> ($s)</td></tr>
+<tr class="memdesc:a632da17c7ac0d2dc1a00a4706870194b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Takes a string and tries to identify the language. <a href="#a632da17c7ac0d2dc1a00a4706870194b">More...</a><br/></td></tr>
<tr class="separator:a632da17c7ac0d2dc1a00a4706870194b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43e6ddba9df019c9ac3ab4c94c444ae7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="language_8php.html#a43e6ddba9df019c9ac3ab4c94c444ae7">get_language_name</a> ($s, $l=null)</td></tr>
+<tr class="memdesc:a43e6ddba9df019c9ac3ab4c94c444ae7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the display name of a given language code. <a href="#a43e6ddba9df019c9ac3ab4c94c444ae7">More...</a><br/></td></tr>
+<tr class="separator:a43e6ddba9df019c9ac3ab4c94c444ae7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<h2 class="groupheader">Function Documentation</h2>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>translation support </p>
+<p>This file contains functions to work with translations and other language related tasks. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a632da17c7ac0d2dc1a00a4706870194b"></a>
<div class="memitem">
<div class="memproto">
@@ -146,6 +159,18 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Takes a string and tries to identify the language. </p>
+<p>It uses the pear library Text_LanguageDetect and it can identify 52 human languages. It returns the identified languges and a confidence score for each.</p>
+<p>Strings need to have a min length config['system']['language_detect_min_length'] and you can influence the confidence that must be met before a result will get returned through config['system']['language_detect_min_confidence'].</p>
+<dl class="section see"><dt>See Also</dt><dd><a href="http://pear.php.net/package/Text_LanguageDetect">http://pear.php.net/package/Text_LanguageDetect</a> </dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">s</td><td>A string to examine </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Language code in 2-letter ISO 639-1 (en, de, fr) format </dd></dl>
+
<p>Referenced by <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, and <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>.</p>
</div>
@@ -163,6 +188,11 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Returns the best language for which also a translation exists. </p>
+<p>This function takes the results from <a class="el" href="language_8php.html#ace67d6cad57da08d030ad9dc9b8c836e" title="Get the browser&#39;s submitted preferred languages.">get_browser_language()</a> and compares it with the available translations and returns the best fitting language for which there exists a translation.</p>
+<p>If there is no match fall back to config['system']['language']</p>
+<dl class="section return"><dt>Returns</dt><dd>Language code in 2-letter ISO 639-1 (en). </dd></dl>
+
<p>Referenced by <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>.</p>
</div>
@@ -179,11 +209,53 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>translation support</p>
+
+<p>Get the browser's submitted preferred languages. </p>
+<p>This functions parses the HTTP_ACCEPT_LANGUAGE header sent by the browser and extracts the preferred languages and their priority.</p>
<p>Get the language setting directly from system variables, bypassing <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config()</a> as database may not yet be configured.</p>
-<p>If possible, we use the value from the browser. </p>
+<p>If possible, we use the value from the browser.</p>
+<dl class="section return"><dt>Returns</dt><dd>array with ordered list of preferred languages from browser </dd></dl>
+
+<p>Referenced by <a class="el" href="language_8php.html#a980dee1d8715a98ab02e36b59facf8ed">get_best_language()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a43e6ddba9df019c9ac3ab4c94c444ae7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_language_name </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$l</em> = <code>null</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
-<p>Referenced by <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, and <a class="el" href="language_8php.html#a980dee1d8715a98ab02e36b59facf8ed">get_best_language()</a>.</p>
+<p>Returns the display name of a given language code. </p>
+<p>By default we use the localized language name. You can switch the result to any language with the optional 2nd parameter $l.</p>
+<p>$s and $l can be in any format that PHP's Locale understands. We will mostly use the 2-letter ISO 639-1 (en, de, fr) format.</p>
+<p>If nothing could be looked up it returns $s.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">$s</td><td>Language code to look up </td></tr>
+ <tr><td class="paramname">$l</td><td>(optional) In which language to return the name </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string with the language name, or $s if unrecognized </dd></dl>
</div>
</div>
@@ -280,7 +352,16 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a6943543f3138f6ee182cb701f415d1cc">admin_page_hubloc()</a>, <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85">alt_pager()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api_post()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata()</a>, <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="view_2theme_2blogga_2php_2config_8php.html#a8a311a402d3e746ce53fadc38e4b2d27">blogtheme_form()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="security_8php.html#a20f8b9851f23ee8894b8925584ef6821">check_form_security_std_err_msg()</a>, <a class="el" href="setup_8php.html#a69a450e06dd3771fb51d3e4b0266a35e">check_funcs()</a>, <a class="el" href="setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4">check_htaccess()</a>, <a class="el" href="setup_8php.html#a5ad92c0857d1dadd6b60a9a557159c9f">check_htconfig()</a>, <a class="el" href="setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76">check_keys()</a>, <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, <a class="el" href="setup_8php.html#afd8b0b3ade1507c45325caf377bf459d">check_smarty3()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connect_8php.html#a489f0a66c660de6ec4d6917b27674f07">connect_content()</a>, <a class="el" href="connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36">connect_init()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="contact__selectors_8php.html#a9839e8fdaac7ffb37bf1420493f5c28f">contact_poll_interval()</a>, <a class="el" href="contact__selectors_8php.html#ae499960d6467bd30c78607b1018baf53">contact_reputation()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair_content()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa">datesel_format()</a>, <a class="el" href="text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63">day_translate()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="text_8php.html#a87a3cefc603302c78982f1d8e1245265">design_tools()</a>, <a class="el" href="dir__fns_8php.html#acf621621e929d49441da30aad76a58cf">dir_safe_mode()</a>, <a class="el" href="dir__fns_8php.html#ae56881d69bb6f8e828c9e35454386774">dir_sort_links()</a>, <a class="el" href="taxonomy_8php.html#a599ee71dd3194c8127b00dabec77abc1">dir_tagblock()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">fix_attached_photo_permissions()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="contact__widgets_8php.html#af24e693532a045954caab515942cfc6f">follow_widget()</a>, <a class="el" href="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">format_categories()</a>, <a class="el" href="bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863">format_event_diaspora()</a>, <a class="el" href="event_8php.html#a2ac9f1b08de03250ecd794f705781d17">format_event_html()</a>, <a class="el" href="text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91">format_filer()</a>, <a class="el" href="conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3">format_like()</a>, <a class="el" href="include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3">format_notification()</a>, <a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest_content()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355">gender_selector()</a>, <a class="el" href="identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c">get_features()</a>, <a class="el" href="text_8php.html#a736db13a966b8abaf8c9198faa35911a">get_mood_verbs()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, <a class="el" href="text_8php.html#a3ef8c0cf31f35f77462067de8712fa34">get_plink()</a>, <a class="el" href="text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66">get_poke_verbs()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce">group_add()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17">group_side()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633">identity_check_service_class()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184">import_content()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">dba_driver\install()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="intro_8php.html#af3681062183ccbdf065ae2647b07d6f1">intro_post()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a5b1b36cb301a94b38150074f0d424e74">item_check_service_class()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="text_8php.html#ac1dbf2e37e8069bea2c0f557fdbf203e">item_post_type()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="text_8php.html#a71f6952243d3fe1c5a8154f78027e29c">lang_selector()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="lastpost_8php.html#ab4c6ebd25736af678e64d55ce508ce8c">lastpost_init()</a>, <a class="el" href="text_8php.html#a3999a0b3e22e440f280ee791ce34d384">layout_select()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a">load_database()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="setup_8php.html#abe405d227ba7232971964a706d4f3bce">manual_config()</a>, <a class="el" href="profile__selectors_8php.html#a7473dd095987e1cdcc79d4f0bb5e6798">marital_selector()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, <a class="el" href="mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7">message_aside()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="text_8php.html#a1633412120f52bdce5f43e0a127d9293">mimetype_select()</a>, <a class="el" href="include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32">mini_group_select()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a9627cd857cafdf04e4fc0ae48c8e8518">mitem_init()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">notice()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce">obj_verbs()</a>, <a class="el" href="include_2oembed_8php.html#aba89ae64b355efcb4f706553d3edb6a2">oembed_bbcode2html()</a>, <a class="el" href="include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed_iframe()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="text_8php.html#afe9f178d264d44a94dc1292aaf0fd585">paginate()</a>, <a class="el" href="comanche_8php.html#af7150df735e5ff9d467994cd6f769c6e">pdl_selector()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="acl__selectors_8php.html#a7b5446e999636ceceea65c154d865a31">populate_acl()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="items_8php.html#abe695dd89e1e10ed042c26b80114f0ed">posted_date_widget()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="pubsites_8php.html#af614e279aab54065345bda6b03eafdf0">pubsites_content()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793">redbasic_form()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82">relative_date()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef">rmagic_content()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6">search_saved_searches()</a>, <a class="el" href="datetime_8php.html#a633dadba426fa2f60b25fabdb19ebc1f">select_timezone()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="account_8php.html#aa9c29c497c17d8f9344dce8631ad8761">send_verification_email()</a>, <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="profile__selectors_8php.html#a3b50b3ea4ea4bdbebebfffc5d1b157c7">sexpref_selector()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="taxonomy_8php.html#ac21d1dff16d569e7d110167aea4e63c2">tagblock()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53">theme_attachments()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865">timezone_cmp()</a>, <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel_content()</a>, <a class="el" href="update__community_8php.html#abdcc5c4ecebbe0b5fcba2755c69cb3b1">update_community_content()</a>, <a class="el" href="update__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display_content()</a>, <a class="el" href="update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41">update_network_content()</a>, <a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search_content()</a>, <a class="el" href="plugin_8php.html#a754d7f53b3abc557b753c057dc4e021d">upgrade_bool_message()</a>, <a class="el" href="plugin_8php.html#a4fc13e528367f510fcb6d8bbfc559040">upgrade_link()</a>, <a class="el" href="plugin_8php.html#a901657dd078e070516cf97285e0bada7">upgrade_message()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">user_deny()</a>, <a class="el" href="identity_8php.html#af2802bc13a00a17b867bba7978ba8f58">validate_channelname()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="vote_8php.html#a6aa67489bf458ca5e3206e46dac68596">vote_content()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58">what_next()</a>, <a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widget_tagcloud()</a>, <a class="el" href="page__widgets_8php.html#a1a1e729da27f252cab6678288a17958f">writepages_widget()</a>, <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>, <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+<p>translate string if translation exists. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">s</td><td>string that should get translated </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>translated string if exsists, otherwise s </dd></dl>
+
+<p>Referenced by <a class="el" href="achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e">achievements_content()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a6943543f3138f6ee182cb701f415d1cc">admin_page_hubloc()</a>, <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85">alt_pager()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api_post()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata()</a>, <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files()</a>, <a class="el" href="mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1">attach_init()</a>, <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="view_2theme_2blogga_2php_2config_8php.html#a8a311a402d3e746ce53fadc38e4b2d27">blogtheme_form()</a>, <a class="el" href="include_2bookmarks_8php.html#a88ce7dee6a3dc7465aa9b8eaa45b0087">bookmark_add()</a>, <a class="el" href="mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a">bookmarks_content()</a>, <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="mod_2chat_8php.html#aa9ae4782e9baef0b7314ab9527c2707e">chat_init()</a>, <a class="el" href="include_2chat_8php.html#acdc80dba4eb796c7472b21129b435422">chatroom_create()</a>, <a class="el" href="include_2chat_8php.html#a2ba3af6884ecdce95de69262fe599639">chatroom_destroy()</a>, <a class="el" href="include_2chat_8php.html#a2c95b545e46bfee64faa05ecf0afea91">chatroom_enter()</a>, <a class="el" href="chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9">chatsvc_content()</a>, <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="security_8php.html#a20f8b9851f23ee8894b8925584ef6821">check_form_security_std_err_msg()</a>, <a class="el" href="setup_8php.html#a69a450e06dd3771fb51d3e4b0266a35e">check_funcs()</a>, <a class="el" href="setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4">check_htaccess()</a>, <a class="el" href="setup_8php.html#a5ad92c0857d1dadd6b60a9a557159c9f">check_htconfig()</a>, <a class="el" href="setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76">check_keys()</a>, <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, <a class="el" href="setup_8php.html#afd8b0b3ade1507c45325caf377bf459d">check_smarty3()</a>, <a class="el" href="setup_8php.html#ab4b71369a25021d59247c917e98d8246">check_store()</a>, <a class="el" href="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud_init()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connect_8php.html#a489f0a66c660de6ec4d6917b27674f07">connect_content()</a>, <a class="el" href="connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36">connect_init()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="contact__selectors_8php.html#a9839e8fdaac7ffb37bf1420493f5c28f">contact_poll_interval()</a>, <a class="el" href="contact__selectors_8php.html#ae499960d6467bd30c78607b1018baf53">contact_reputation()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa">datesel_format()</a>, <a class="el" href="text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63">day_translate()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="text_8php.html#a87a3cefc603302c78982f1d8e1245265">design_tools()</a>, <a class="el" href="dir__fns_8php.html#acf621621e929d49441da30aad76a58cf">dir_safe_mode()</a>, <a class="el" href="dir__fns_8php.html#ae56881d69bb6f8e828c9e35454386774">dir_sort_links()</a>, <a class="el" href="taxonomy_8php.html#a599ee71dd3194c8127b00dabec77abc1">dir_tagblock()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd">filestorage_post()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10">fix_attached_photo_permissions()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">format_categories()</a>, <a class="el" href="bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863">format_event_diaspora()</a>, <a class="el" href="event_8php.html#a2ac9f1b08de03250ecd794f705781d17">format_event_html()</a>, <a class="el" href="text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91">format_filer()</a>, <a class="el" href="conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3">format_like()</a>, <a class="el" href="include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3">format_notification()</a>, <a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest_content()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355">gender_selector()</a>, <a class="el" href="identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c">get_features()</a>, <a class="el" href="text_8php.html#a736db13a966b8abaf8c9198faa35911a">get_mood_verbs()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, <a class="el" href="text_8php.html#aac0969ae09853205992ba06ab9f9f61a">get_plink()</a>, <a class="el" href="text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66">get_poke_verbs()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce">group_add()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="include_2group_8php.html#a6a69bd7be032fa8ce4e49c43a42cc6e9">group_side()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home_content()</a>, <a class="el" href="classRedBrowser.html#a7f6bf0bda07833f4c647557bd172e349">RedBrowser\htmlActionsPanel()</a>, <a class="el" href="identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633">identity_check_service_class()</a>, <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">import_author_rss()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184">import_content()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746">dba_driver\install()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a5b1b36cb301a94b38150074f0d424e74">item_check_service_class()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="text_8php.html#ac1dbf2e37e8069bea2c0f557fdbf203e">item_post_type()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="text_8php.html#a71f6952243d3fe1c5a8154f78027e29c">lang_selector()</a>, <a class="el" href="text_8php.html#a3999a0b3e22e440f280ee791ce34d384">layout_select()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a">load_database()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="setup_8php.html#abe405d227ba7232971964a706d4f3bce">manual_config()</a>, <a class="el" href="profile__selectors_8php.html#a7473dd095987e1cdcc79d4f0bb5e6798">marital_selector()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393">menu_post()</a>, <a class="el" href="include_2menu_8php.html#a4d7123b0577fa994770199f9b831da11">menu_render()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, <a class="el" href="text_8php.html#a1633412120f52bdce5f43e0a127d9293">mimetype_select()</a>, <a class="el" href="include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32">mini_group_select()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a9627cd857cafdf04e4fc0ae48c8e8518">mitem_init()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="new__channel_8php.html#a180b0646957db8290482f02454ad7f23">new_channel_post()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">notice()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce">obj_verbs()</a>, <a class="el" href="include_2oembed_8php.html#aba89ae64b355efcb4f706553d3edb6a2">oembed_bbcode2html()</a>, <a class="el" href="include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed_iframe()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="text_8php.html#afe9f178d264d44a94dc1292aaf0fd585">paginate()</a>, <a class="el" href="comanche_8php.html#af7150df735e5ff9d467994cd6f769c6e">pdl_selector()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="acl__selectors_8php.html#a7b5446e999636ceceea65c154d865a31">populate_acl()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="pubsites_8php.html#af614e279aab54065345bda6b03eafdf0">pubsites_content()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793">redbasic_form()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82">relative_date()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef">rmagic_content()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="text_8php.html#aae91e4d2a2c6f7a9daccd2c186ae3447">searchbox()</a>, <a class="el" href="datetime_8php.html#a633dadba426fa2f60b25fabdb19ebc1f">select_timezone()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="account_8php.html#aa9c29c497c17d8f9344dce8631ad8761">send_verification_email()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="profile__selectors_8php.html#a3b50b3ea4ea4bdbebebfffc5d1b157c7">sexpref_selector()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="taxonomy_8php.html#ac21d1dff16d569e7d110167aea4e63c2">tagblock()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53">theme_attachments()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865">timezone_cmp()</a>, <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel_content()</a>, <a class="el" href="update__community_8php.html#abdcc5c4ecebbe0b5fcba2755c69cb3b1">update_community_content()</a>, <a class="el" href="update__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display_content()</a>, <a class="el" href="update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41">update_network_content()</a>, <a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search_content()</a>, <a class="el" href="plugin_8php.html#a754d7f53b3abc557b753c057dc4e021d">upgrade_bool_message()</a>, <a class="el" href="plugin_8php.html#a4fc13e528367f510fcb6d8bbfc559040">upgrade_link()</a>, <a class="el" href="plugin_8php.html#a901657dd078e070516cf97285e0bada7">upgrade_message()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="account_8php.html#ac1653efba62493b9d87513e1b6c04c83">user_deny()</a>, <a class="el" href="identity_8php.html#af2802bc13a00a17b867bba7978ba8f58">validate_channelname()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="vote_8php.html#a6aa67489bf458ca5e3206e46dac68596">vote_content()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58">what_next()</a>, <a class="el" href="widgets_8php.html#add9b24d3304e529a7975e96122315554">widget_affinity()</a>, <a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widget_archive()</a>, <a class="el" href="widgets_8php.html#a47c72aac42058ea086c9ef8651c259da">widget_chatroom_list()</a>, <a class="el" href="widgets_8php.html#a5ab3b64496e02cab56429978ad55f1c0">widget_filer()</a>, <a class="el" href="widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd">widget_follow()</a>, <a class="el" href="widgets_8php.html#afa2e55a78f95667a6da082efac7fec74">widget_mailmenu()</a>, <a class="el" href="widgets_8php.html#a45ea061dabe9a8372e4ca3b9e5714256">widget_notes()</a>, <a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widget_savedsearch()</a>, <a class="el" href="widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01">widget_settings_menu()</a>, <a class="el" href="widgets_8php.html#a0d404276fedc59f5038cf5c085028326">widget_suggestions()</a>, <a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widget_tagcloud()</a>, <a class="el" href="page__widgets_8php.html#a1a1e729da27f252cab6678288a17958f">writepages_widget()</a>, <a class="el" href="xchan_8php.html#a9853348bf1a35c644460221ba75edc2d">xchan_content()</a>, <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
</div>
</div>
diff --git a/doc/html/language_8php.js b/doc/html/language_8php.js
index ed2266957..260cbb417 100644
--- a/doc/html/language_8php.js
+++ b/doc/html/language_8php.js
@@ -3,6 +3,7 @@ var language_8php =
[ "detect_language", "language_8php.html#a632da17c7ac0d2dc1a00a4706870194b", null ],
[ "get_best_language", "language_8php.html#a980dee1d8715a98ab02e36b59facf8ed", null ],
[ "get_browser_language", "language_8php.html#ace67d6cad57da08d030ad9dc9b8c836e", null ],
+ [ "get_language_name", "language_8php.html#a43e6ddba9df019c9ac3ab4c94c444ae7", null ],
[ "load_translation_table", "language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05", null ],
[ "pop_lang", "language_8php.html#a78bd204955ec4cc3a9ac651285a1689d", null ],
[ "push_lang", "language_8php.html#ac9142ef1d01a235c760deb0f16643f5a", null ],
diff --git a/doc/html/mail_8php.html b/doc/html/mail_8php.html
new file mode 100644
index 000000000..830975bf1
--- /dev/null
+++ b/doc/html/mail_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/mail.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('mail_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">mail.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:acfc2cc0bf4e0b178207758384977f25a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post</a> (&amp;$a)</td></tr>
+<tr class="separator:acfc2cc0bf4e0b178207758384977f25a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c7c485fc69f92371e8b20936040eca1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a3c7c485fc69f92371e8b20936040eca1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a3c7c485fc69f92371e8b20936040eca1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">mail_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="acfc2cc0bf4e0b178207758384977f25a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">mail_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/mail_8php.js b/doc/html/mail_8php.js
new file mode 100644
index 000000000..8c79edcb0
--- /dev/null
+++ b/doc/html/mail_8php.js
@@ -0,0 +1,5 @@
+var mail_8php =
+[
+ [ "mail_content", "mail_8php.html#a3c7c485fc69f92371e8b20936040eca1", null ],
+ [ "mail_post", "mail_8php.html#acfc2cc0bf4e0b178207758384977f25a", null ]
+]; \ No newline at end of file
diff --git a/doc/html/minimalisticdarkness_8php.html b/doc/html/minimalisticdarkness_8php.html
index 2c40df315..392bf74a8 100644
--- a/doc/html/minimalisticdarkness_8php.html
+++ b/doc/html/minimalisticdarkness_8php.html
@@ -206,7 +206,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed_iframe()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, and <a class="el" href="view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
+<p>Referenced by <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887">import_profile_photo()</a>, <a class="el" href="include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed_iframe()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, and <a class="el" href="view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
</div>
</div>
diff --git a/doc/html/mod_2bookmarks_8php.html b/doc/html/mod_2bookmarks_8php.html
new file mode 100644
index 000000000..2a1782120
--- /dev/null
+++ b/doc/html/mod_2bookmarks_8php.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/bookmarks.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('mod_2bookmarks_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">bookmarks.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a6b7942f3d27e40f0f47c88704127b9b3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a6b7942f3d27e40f0f47c88704127b9b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a774364b1c8404529581083631703527a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a">bookmarks_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a774364b1c8404529581083631703527a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a774364b1c8404529581083631703527a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bookmarks_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6b7942f3d27e40f0f47c88704127b9b3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">bookmarks_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/mod_2bookmarks_8php.js b/doc/html/mod_2bookmarks_8php.js
new file mode 100644
index 000000000..d0b12a7f8
--- /dev/null
+++ b/doc/html/mod_2bookmarks_8php.js
@@ -0,0 +1,5 @@
+var mod_2bookmarks_8php =
+[
+ [ "bookmarks_content", "mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a", null ],
+ [ "bookmarks_init", "mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3", null ]
+]; \ No newline at end of file
diff --git a/doc/html/mod_2chat_8php.html b/doc/html/mod_2chat_8php.html
new file mode 100644
index 000000000..283c554d2
--- /dev/null
+++ b/doc/html/mod_2chat_8php.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/chat.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('mod_2chat_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">chat.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aa9ae4782e9baef0b7314ab9527c2707e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2chat_8php.html#aa9ae4782e9baef0b7314ab9527c2707e">chat_init</a> (&amp;$a)</td></tr>
+<tr class="separator:aa9ae4782e9baef0b7314ab9527c2707e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a999d594745597c656c9760253ae297ad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2chat_8php.html#a999d594745597c656c9760253ae297ad">chat_post</a> (&amp;$a)</td></tr>
+<tr class="separator:a999d594745597c656c9760253ae297ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b0b8bee6fef6477e8c64c5e951b1b4f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a8b0b8bee6fef6477e8c64c5e951b1b4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a8b0b8bee6fef6477e8c64c5e951b1b4f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">chat_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa9ae4782e9baef0b7314ab9527c2707e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">chat_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a999d594745597c656c9760253ae297ad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">chat_post </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/mod_2chat_8php.js b/doc/html/mod_2chat_8php.js
new file mode 100644
index 000000000..73a2b18d6
--- /dev/null
+++ b/doc/html/mod_2chat_8php.js
@@ -0,0 +1,6 @@
+var mod_2chat_8php =
+[
+ [ "chat_content", "mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f", null ],
+ [ "chat_init", "mod_2chat_8php.html#aa9ae4782e9baef0b7314ab9527c2707e", null ],
+ [ "chat_post", "mod_2chat_8php.html#a999d594745597c656c9760253ae297ad", null ]
+]; \ No newline at end of file
diff --git a/doc/html/mod_2directory_8php.html b/doc/html/mod_2directory_8php.html
index be5007e01..cca2ed279 100644
--- a/doc/html/mod_2directory_8php.html
+++ b/doc/html/mod_2directory_8php.html
@@ -114,28 +114,10 @@ $(document).ready(function(){initNavTree('mod_2directory_8php.html','');});
Functions</h2></td></tr>
<tr class="memitem:a5ee59c213508b6b9787612a8219cb5bf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf">directory_init</a> (&amp;$a)</td></tr>
<tr class="separator:a5ee59c213508b6b9787612a8219cb5bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa1d928543212871491706216742dd73c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2directory_8php.html#aa1d928543212871491706216742dd73c">directory_aside</a> (&amp;$a)</td></tr>
-<tr class="separator:aa1d928543212871491706216742dd73c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac79396570d759da2efac24fcedf5b44"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content</a> (&amp;$a)</td></tr>
<tr class="separator:aac79396570d759da2efac24fcedf5b44"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="aa1d928543212871491706216742dd73c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">directory_aside </td>
- <td>(</td>
- <td class="paramtype">&amp;&#160;</td>
- <td class="paramname"><em>$a</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
<a class="anchor" id="aac79396570d759da2efac24fcedf5b44"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/mod_2directory_8php.js b/doc/html/mod_2directory_8php.js
index 9628750ce..783c03a81 100644
--- a/doc/html/mod_2directory_8php.js
+++ b/doc/html/mod_2directory_8php.js
@@ -1,6 +1,5 @@
var mod_2directory_8php =
[
- [ "directory_aside", "mod_2directory_8php.html#aa1d928543212871491706216742dd73c", null ],
[ "directory_content", "mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44", null ],
[ "directory_init", "mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf", null ]
]; \ No newline at end of file
diff --git a/doc/html/mod_2group_8php.html b/doc/html/mod_2group_8php.html
index 7b1c8a85d..e2e9f1fe1 100644
--- a/doc/html/mod_2group_8php.html
+++ b/doc/html/mod_2group_8php.html
@@ -112,30 +112,12 @@ $(document).ready(function(){initNavTree('mod_2group_8php.html','');});
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:aeb0784dd928e53e6d8693513bec8928c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2group_8php.html#aeb0784dd928e53e6d8693513bec8928c">group_aside</a> (&amp;$a)</td></tr>
-<tr class="separator:aeb0784dd928e53e6d8693513bec8928c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed1f009b1221348021bb34761160ef35"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post</a> (&amp;$a)</td></tr>
<tr class="separator:aed1f009b1221348021bb34761160ef35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07a64f6c65b0080d8190b3d9728a7a83"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content</a> (&amp;$a)</td></tr>
<tr class="separator:a07a64f6c65b0080d8190b3d9728a7a83"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="aeb0784dd928e53e6d8693513bec8928c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">group_aside </td>
- <td>(</td>
- <td class="paramtype">&amp;&#160;</td>
- <td class="paramname"><em>$a</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
<a class="anchor" id="a07a64f6c65b0080d8190b3d9728a7a83"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/mod_2group_8php.js b/doc/html/mod_2group_8php.js
index 361f32a48..4484dd52d 100644
--- a/doc/html/mod_2group_8php.js
+++ b/doc/html/mod_2group_8php.js
@@ -1,6 +1,5 @@
var mod_2group_8php =
[
- [ "group_aside", "mod_2group_8php.html#aeb0784dd928e53e6d8693513bec8928c", null ],
[ "group_content", "mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83", null ],
[ "group_post", "mod_2group_8php.html#aed1f009b1221348021bb34761160ef35", null ]
]; \ No newline at end of file
diff --git a/doc/html/mod_2message_8php.html b/doc/html/mod_2message_8php.html
index 4fddb1d45..459ddb125 100644
--- a/doc/html/mod_2message_8php.html
+++ b/doc/html/mod_2message_8php.html
@@ -112,53 +112,16 @@ $(document).ready(function(){initNavTree('mod_2message_8php.html','');});
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:af4ba72486117cc24335fd8e92a2112a7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7">message_aside</a> (&amp;$a)</td></tr>
-<tr class="separator:af4ba72486117cc24335fd8e92a2112a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0db7030362a7e9ed9549b341d7b35718"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post</a> (&amp;$a)</td></tr>
-<tr class="separator:a0db7030362a7e9ed9549b341d7b35718"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3547ed86d09a4bb8fa64ec374a40ee79"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(!function_exists('<a class="el" href="conversation_8php.html#a0ee05f15255fb1cc3d89f30bc378a654">item_extract_images</a>')) <br class="typebreak"/>
-<a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(!function_exists('<a class="el" href="conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533">item_redir_and_replace_images</a>'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content</a> (&amp;$a)</td></tr>
-<tr class="separator:a3547ed86d09a4bb8fa64ec374a40ee79"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac72dfed3ce08fcb331d66b37edc6e15f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content</a> (&amp;$a)</td></tr>
+<tr class="separator:ac72dfed3ce08fcb331d66b37edc6e15f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="af4ba72486117cc24335fd8e92a2112a7"></a>
+<a class="anchor" id="ac72dfed3ce08fcb331d66b37edc6e15f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">message_aside </td>
- <td>(</td>
- <td class="paramtype">&amp;&#160;</td>
- <td class="paramname"><em>$a</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="a3547ed86d09a4bb8fa64ec374a40ee79"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (!function_exists('<a class="el" href="conversation_8php.html#a0ee05f15255fb1cc3d89f30bc378a654">item_extract_images</a>')) <a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (!function_exists('<a class="el" href="conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533">item_redir_and_replace_images</a>')) message_content </td>
- <td>(</td>
- <td class="paramtype">&amp;&#160;</td>
- <td class="paramname"><em>$a</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="a0db7030362a7e9ed9549b341d7b35718"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">message_post </td>
+ <td class="memname">message_content </td>
<td>(</td>
<td class="paramtype">&amp;&#160;</td>
<td class="paramname"><em>$a</em></td><td>)</td>
diff --git a/doc/html/mod_2message_8php.js b/doc/html/mod_2message_8php.js
index 10f9423f9..4be200bf0 100644
--- a/doc/html/mod_2message_8php.js
+++ b/doc/html/mod_2message_8php.js
@@ -1,6 +1,4 @@
var mod_2message_8php =
[
- [ "message_aside", "mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7", null ],
- [ "message_content", "mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79", null ],
- [ "message_post", "mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718", null ]
+ [ "message_content", "mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f", null ]
]; \ No newline at end of file
diff --git a/doc/html/mod_2network_8php.html b/doc/html/mod_2network_8php.html
index fa143845a..16de4ad96 100644
--- a/doc/html/mod_2network_8php.html
+++ b/doc/html/mod_2network_8php.html
@@ -114,8 +114,6 @@ $(document).ready(function(){initNavTree('mod_2network_8php.html','');});
Functions</h2></td></tr>
<tr class="memitem:a180fce90ad11d7e0e45be094da7149ec"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init</a> (&amp;$a)</td></tr>
<tr class="separator:a180fce90ad11d7e0e45be094da7149ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a36e03af6f2efe62ecaa247509365bfad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches</a> ($<a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search</a>)</td></tr>
-<tr class="separator:a36e03af6f2efe62ecaa247509365bfad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43f2f29b90c5e29072c561934bc8f8b4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content</a> (&amp;$a, $update=0, $load=false)</td></tr>
<tr class="separator:a43f2f29b90c5e29072c561934bc8f8b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -170,24 +168,6 @@ Functions</h2></td></tr>
</div>
</div>
-<a class="anchor" id="a36e03af6f2efe62ecaa247509365bfad"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">saved_searches </td>
- <td>(</td>
- <td class="paramtype">&#160;</td>
- <td class="paramname"><em>$search</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Referenced by <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>.</p>
-
-</div>
-</div>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/mod_2network_8php.js b/doc/html/mod_2network_8php.js
index f076a234a..651e6f6bd 100644
--- a/doc/html/mod_2network_8php.js
+++ b/doc/html/mod_2network_8php.js
@@ -1,6 +1,5 @@
var mod_2network_8php =
[
[ "network_content", "mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4", null ],
- [ "network_init", "mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec", null ],
- [ "saved_searches", "mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad", null ]
+ [ "network_init", "mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec", null ]
]; \ No newline at end of file
diff --git a/doc/html/mod__filestorage_8php.html b/doc/html/mod__filestorage_8php.html
new file mode 100644
index 000000000..d1bfc3b26
--- /dev/null
+++ b/doc/html/mod__filestorage_8php.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/js/mod_filestorage.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('mod__filestorage_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">mod_filestorage.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/nav_8php.html b/doc/html/nav_8php.html
index c63c5e7ca..c00d5ce4c 100644
--- a/doc/html/nav_8php.html
+++ b/doc/html/nav_8php.html
@@ -158,7 +158,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, and <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>.</p>
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, and <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>.</p>
</div>
</div>
diff --git a/doc/html/navtree.js b/doc/html/navtree.js
index 4557e049a..e9b142c1f 100644
--- a/doc/html/navtree.js
+++ b/doc/html/navtree.js
@@ -36,14 +36,14 @@ var NAVTREE =
var NAVTREEINDEX =
[
"BaseObject_8php.html",
-"boot_8php.html#a8c9dce0ef27b35397e29298eb966f7f7",
-"classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934",
-"contactgroup_8php.html",
-"globals_0x6c.html",
-"include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2",
-"php2po_8php.html",
-"suggest_8php.html#a4df91c84594d51ba56b5918de414230d",
-"zping_8php.html"
+"boot_8php.html#a7f4264232dbb6c3b41f2617deecb1866",
+"classConversation.html#a4cff75d8c46b517e7133e4d0da6fc1c8",
+"classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f",
+"functions_0x63.html",
+"include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6",
+"namespaceFriendica.html",
+"session_8php.html#af230b86bfff7db66c3bdd7e0bbc24052",
+"viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4"
];
var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/doc/html/navtreeindex0.js b/doc/html/navtreeindex0.js
index caa304721..7d3fb5a74 100644
--- a/doc/html/navtreeindex0.js
+++ b/doc/html/navtreeindex0.js
@@ -1,42 +1,45 @@
var NAVTREEINDEX0 =
{
"BaseObject_8php.html":[5,0,0,8],
-"Contact_8php.html":[5,0,0,17],
-"Contact_8php.html#a024919623a830e8703ac4f23496dd66c":[5,0,0,17,2],
-"Contact_8php.html#a186162051a5127069cc851d78740f205":[5,0,0,17,4],
-"Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6":[5,0,0,17,8],
-"Contact_8php.html#a2f4f495d53f2a334ab75292af79d3c91":[5,0,0,17,10],
-"Contact_8php.html#a2fc191067dd571a79603c66b04b1ca15":[5,0,0,17,13],
-"Contact_8php.html#a38daa1c210b78385307123450ca9a1fc":[5,0,0,17,12],
-"Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc":[5,0,0,17,6],
-"Contact_8php.html#a483cda56f9e37c3a4a8773dcdfeb0258":[5,0,0,17,5],
-"Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960":[5,0,0,17,14],
-"Contact_8php.html#a6e64de7db60b7243dce45fb6347636ff":[5,0,0,17,3],
-"Contact_8php.html#a852fa476f0c70bde10a4f2533aec5f71":[5,0,0,17,9],
-"Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e":[5,0,0,17,7],
-"Contact_8php.html#acc12cda999c88c4d6185cca967c15125":[5,0,0,17,11],
-"Contact_8php.html#ad5b02c2a962ee55b1b7ca6c159d6e4c5":[5,0,0,17,1],
-"Contact_8php.html#ae8803c330352cbf1e828eb7490edf47e":[5,0,0,17,0],
-"ConversationObject_8php.html":[5,0,0,21],
-"ITemplateEngine_8php.html":[5,0,0,40],
-"ItemObject_8php.html":[5,0,0,39],
-"ProtoDriver_8php.html":[5,0,0,59],
+"Contact_8php.html":[5,0,0,19],
+"Contact_8php.html#a024919623a830e8703ac4f23496dd66c":[5,0,0,19,2],
+"Contact_8php.html#a186162051a5127069cc851d78740f205":[5,0,0,19,4],
+"Contact_8php.html#a28e062c884331dbb5dfa713228c25ad6":[5,0,0,19,8],
+"Contact_8php.html#a2f4f495d53f2a334ab75292af79d3c91":[5,0,0,19,10],
+"Contact_8php.html#a2fc191067dd571a79603c66b04b1ca15":[5,0,0,19,13],
+"Contact_8php.html#a38daa1c210b78385307123450ca9a1fc":[5,0,0,19,12],
+"Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc":[5,0,0,19,6],
+"Contact_8php.html#a483cda56f9e37c3a4a8773dcdfeb0258":[5,0,0,19,5],
+"Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960":[5,0,0,19,14],
+"Contact_8php.html#a6e64de7db60b7243dce45fb6347636ff":[5,0,0,19,3],
+"Contact_8php.html#a852fa476f0c70bde10a4f2533aec5f71":[5,0,0,19,9],
+"Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e":[5,0,0,19,7],
+"Contact_8php.html#acc12cda999c88c4d6185cca967c15125":[5,0,0,19,11],
+"Contact_8php.html#ad5b02c2a962ee55b1b7ca6c159d6e4c5":[5,0,0,19,1],
+"Contact_8php.html#ae8803c330352cbf1e828eb7490edf47e":[5,0,0,19,0],
+"ConversationObject_8php.html":[5,0,0,23],
+"ITemplateEngine_8php.html":[5,0,0,42],
+"ItemObject_8php.html":[5,0,0,41],
+"ProtoDriver_8php.html":[5,0,0,61],
"__well__known_8php.html":[5,0,1,0],
"__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0":[5,0,1,0,0],
"account_8php.html":[5,0,0,2],
-"account_8php.html#a014de2d5d5c9785de5bf547a485822fa":[5,0,0,2,6],
+"account_8php.html#a014de2d5d5c9785de5bf547a485822fa":[5,0,0,2,7],
+"account_8php.html#a0d183a3cb4c67a0f5e906811df7a1fc9":[5,0,0,2,6],
"account_8php.html#a141fe579c351c78209d425473f978eb5":[5,0,0,2,5],
"account_8php.html#a144b4891022567668375b58ea61cfff0":[5,0,0,2,4],
"account_8php.html#a43e3042b2723d76915a030bac3c668b6":[5,0,0,2,0],
"account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f":[5,0,0,2,1],
-"account_8php.html#aa9c29c497c17d8f9344dce8631ad8761":[5,0,0,2,7],
+"account_8php.html#aa9c29c497c17d8f9344dce8631ad8761":[5,0,0,2,8],
"account_8php.html#aaff7720423417a4333697894ffd9ddeb":[5,0,0,2,3],
-"account_8php.html#ac1653efba62493b9d87513e1b6c04c83":[5,0,0,2,9],
-"account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1":[5,0,0,2,8],
+"account_8php.html#ac1653efba62493b9d87513e1b6c04c83":[5,0,0,2,10],
+"account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1":[5,0,0,2,9],
"account_8php.html#ae052bd5558847bd38e89c213561a9771":[5,0,0,2,2],
-"acl_8php.html":[5,0,1,1],
-"acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f":[5,0,1,1,1],
-"acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a":[5,0,1,1,0],
+"achievements_8php.html":[5,0,1,1],
+"achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e":[5,0,1,1,0],
+"acl_8php.html":[5,0,1,2],
+"acl_8php.html#a57dceff370d4a0e7ae673d50fbfda61f":[5,0,1,2,1],
+"acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a":[5,0,1,2,0],
"acl__selectors_8php.html":[5,0,0,3],
"acl__selectors_8php.html#a7b5446e999636ceceea65c154d865a31":[5,0,0,3,3],
"acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91":[5,0,0,3,0],
@@ -44,38 +47,37 @@ var NAVTREEINDEX0 =
"acl__selectors_8php.html#ad6664fb8330308e23f2645cd6624727e":[5,0,0,3,1],
"activities_8php.html":[5,0,0,4],
"activities_8php.html#a80134e807719b3c54aba971958d2e132":[5,0,0,4,0],
-"admin_8php.html":[5,0,1,2],
-"admin_8php.html#a1d1362698af14d209aa3a0fb655551dd":[5,0,1,2,4],
-"admin_8php.html#a233b7c8c31776b7020532003c6e44e1c":[5,0,1,2,5],
-"admin_8php.html#a54128076986ba80c4a103de3fc3e19a8":[5,0,1,2,6],
-"admin_8php.html#a5a696706a3869800e65fb365214241b7":[5,0,1,2,12],
-"admin_8php.html#a60ba9783ad14545814919970bc3fb725":[5,0,1,2,3],
-"admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2":[5,0,1,2,11],
-"admin_8php.html#a6943543f3138f6ee182cb701f415d1cc":[5,0,1,2,2],
-"admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade":[5,0,1,2,1],
-"admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e":[5,0,1,2,7],
-"admin_8php.html#ac6e95b920b5abd030cc522964987087a":[5,0,1,2,9],
-"admin_8php.html#acf51f5837a7427832144c2bf7308ada3":[5,0,1,2,13],
-"admin_8php.html#ad4f74f33944a98b56d2c8c7601f124a4":[5,0,1,2,15],
-"admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f":[5,0,1,2,8],
-"admin_8php.html#ae46311a3fefc21abc838a26e91789de6":[5,0,1,2,14],
-"admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb":[5,0,1,2,10],
-"admin_8php.html#af81f081851791cd15e49e8ff6722dc27":[5,0,1,2,16],
-"admin_8php.html#afef415e4011607fbb665610441595015":[5,0,1,2,0],
-"allfriends_8php.html":[5,0,1,3],
-"allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83":[5,0,1,3,0],
+"admin_8php.html":[5,0,1,3],
+"admin_8php.html#a1d1362698af14d209aa3a0fb655551dd":[5,0,1,3,4],
+"admin_8php.html#a233b7c8c31776b7020532003c6e44e1c":[5,0,1,3,5],
+"admin_8php.html#a54128076986ba80c4a103de3fc3e19a8":[5,0,1,3,6],
+"admin_8php.html#a5a696706a3869800e65fb365214241b7":[5,0,1,3,12],
+"admin_8php.html#a60ba9783ad14545814919970bc3fb725":[5,0,1,3,3],
+"admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2":[5,0,1,3,11],
+"admin_8php.html#a6943543f3138f6ee182cb701f415d1cc":[5,0,1,3,2],
+"admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade":[5,0,1,3,1],
+"admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e":[5,0,1,3,7],
+"admin_8php.html#ac6e95b920b5abd030cc522964987087a":[5,0,1,3,9],
+"admin_8php.html#acf51f5837a7427832144c2bf7308ada3":[5,0,1,3,13],
+"admin_8php.html#ad4f74f33944a98b56d2c8c7601f124a4":[5,0,1,3,15],
+"admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f":[5,0,1,3,8],
+"admin_8php.html#ae46311a3fefc21abc838a26e91789de6":[5,0,1,3,14],
+"admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb":[5,0,1,3,10],
+"admin_8php.html#af81f081851791cd15e49e8ff6722dc27":[5,0,1,3,16],
+"admin_8php.html#afef415e4011607fbb665610441595015":[5,0,1,3,0],
"annotated.html":[4,0],
"apps_8php.html":[5,0,1,5],
"apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c":[5,0,1,5,0],
-"apw_2php_2style_8php.html":[5,0,3,1,0,0,1],
-"apw_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a":[5,0,3,1,0,0,1,0],
-"apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a":[5,0,3,1,0,0,1,1],
-"apw_2php_2theme_8php.html":[5,0,3,1,0,0,2],
-"apw_2php_2theme_8php.html#a42167c539043a39a6b83c252d05f1e89":[5,0,3,1,0,0,2,0],
+"apw_2php_2style_8php.html":[5,0,3,2,0,0,1],
+"apw_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a":[5,0,3,2,0,0,1,0],
+"apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a":[5,0,3,2,0,0,1,1],
+"apw_2php_2theme_8php.html":[5,0,3,2,0,0,2],
+"apw_2php_2theme_8php.html#a42167c539043a39a6b83c252d05f1e89":[5,0,3,2,0,0,2,0],
"auth_8php.html":[5,0,0,7],
"auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee":[5,0,0,7,0],
-"auth_8php.html#a0950af7c2888ca1d4743fe5d0bff9ae5":[5,0,0,7,2],
-"auth_8php.html#a2add3a1129ffa4d5515442a9d52a9b1a":[5,0,0,7,1],
+"auth_8php.html#a0950af7c2888ca1d4743fe5d0bff9ae5":[5,0,0,7,3],
+"auth_8php.html#a2add3a1129ffa4d5515442a9d52a9b1a":[5,0,0,7,2],
+"auth_8php.html#ab7be44ee051c0aa29847807cf2c5dd38":[5,0,0,7,1],
"bb2diaspora_8php.html":[5,0,0,9],
"bb2diaspora_8php.html#a180b0e3a7d702998be19e3c3b44b0e93":[5,0,0,9,7],
"bb2diaspora_8php.html#a26c09c218413610e62e60754c579f6c6":[5,0,0,9,2],
@@ -87,167 +89,165 @@ var NAVTREEINDEX0 =
"bb2diaspora_8php.html#ad0abe1a7ee50aa0736a233df0a422eba":[5,0,0,9,1],
"bb2diaspora_8php.html#adc92ccda5f85ed27e64fcc17712c89cc":[5,0,0,9,4],
"bbcode_8php.html":[5,0,0,10],
-"bbcode_8php.html#a009f61aaf78771737ed0765c8463911b":[5,0,0,10,5],
-"bbcode_8php.html#a064dcfd9767df6f53be1a0e11ceeb15d":[5,0,0,10,4],
-"bbcode_8php.html#a1c69e021d5e0aef97d6966bf3169c86a":[5,0,0,10,1],
-"bbcode_8php.html#a2be26414a367118143cc89e2d58e7377":[5,0,0,10,2],
-"bbcode_8php.html#a5165a5221a52cf1bc1d7812ebd2069c7":[5,0,0,10,6],
-"bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7":[5,0,0,10,7],
-"bbcode_8php.html#a851f5aafefe52474201b83f9fd65931f":[5,0,0,10,0],
-"bbcode_8php.html#a8911e027907820df3db03b4f76724b50":[5,0,0,10,3],
+"bbcode_8php.html#a009f61aaf78771737ed0765c8463911b":[5,0,0,10,8],
+"bbcode_8php.html#a064dcfd9767df6f53be1a0e11ceeb15d":[5,0,0,10,7],
+"bbcode_8php.html#a1c69e021d5e0aef97d6966bf3169c86a":[5,0,0,10,4],
+"bbcode_8php.html#a2be26414a367118143cc89e2d58e7377":[5,0,0,10,5],
+"bbcode_8php.html#a3435c82a6c7693557800cdeb6848d0bd":[5,0,0,10,0],
+"bbcode_8php.html#a39de4de32a9456d1ca914d0dc52bd322":[5,0,0,10,12],
+"bbcode_8php.html#a3a989cbf308a32468d171d83e9c51d1e":[5,0,0,10,3],
+"bbcode_8php.html#a5165a5221a52cf1bc1d7812ebd2069c7":[5,0,0,10,10],
+"bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7":[5,0,0,10,11],
+"bbcode_8php.html#a7cc811ff1939a508cfb54f39c1d584d7":[5,0,0,10,9],
+"bbcode_8php.html#a851f5aafefe52474201b83f9fd65931f":[5,0,0,10,1],
+"bbcode_8php.html#a8911e027907820df3db03b4f76724b50":[5,0,0,10,6],
+"bbcode_8php.html#a98d0eecc620c19561639f06cfbe8e74c":[5,0,0,10,2],
+"bbcode_8php.html#aa92f119341f4c69dcef2768a013079b8":[5,0,0,10,13],
"blocks_8php.html":[5,0,1,7],
"blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12":[5,0,1,7,0],
-"blogga_2php_2theme_8php.html":[5,0,3,1,1,0,2],
-"blogga_2php_2theme_8php.html#aa55c1cb1f05087b5002ecb633b550b1b":[5,0,3,1,1,0,2,0],
-"blogga_2view_2theme_2blog_2theme_8php.html":[5,0,3,1,1,1,0,0,2],
-"blogga_2view_2theme_2blog_2theme_8php.html#a028ae8e9f2824670dfa76a6651d817e5":[5,0,3,1,1,1,0,0,2,3],
-"blogga_2view_2theme_2blog_2theme_8php.html#a3e77dbe111f330c64a1ff6c741cd515c":[5,0,3,1,1,1,0,0,2,2],
-"blogga_2view_2theme_2blog_2theme_8php.html#aa55c1cb1f05087b5002ecb633b550b1b":[5,0,3,1,1,1,0,0,2,0],
-"blogga_2view_2theme_2blog_2theme_8php.html#aae58cc837fe56473d9f3370abfe533ae":[5,0,3,1,1,1,0,0,2,1],
-"blogga_2view_2theme_2blog_2theme_8php.html#af634a3f721c5e238530d0636d33230ec":[5,0,3,1,1,1,0,0,2,4],
+"blogga_2php_2theme_8php.html":[5,0,3,2,1,0,2],
+"blogga_2php_2theme_8php.html#aa55c1cb1f05087b5002ecb633b550b1b":[5,0,3,2,1,0,2,0],
+"blogga_2view_2theme_2blog_2theme_8php.html":[5,0,3,2,1,1,0,0,2],
+"blogga_2view_2theme_2blog_2theme_8php.html#a028ae8e9f2824670dfa76a6651d817e5":[5,0,3,2,1,1,0,0,2,3],
+"blogga_2view_2theme_2blog_2theme_8php.html#a3e77dbe111f330c64a1ff6c741cd515c":[5,0,3,2,1,1,0,0,2,2],
+"blogga_2view_2theme_2blog_2theme_8php.html#aa55c1cb1f05087b5002ecb633b550b1b":[5,0,3,2,1,1,0,0,2,0],
+"blogga_2view_2theme_2blog_2theme_8php.html#aae58cc837fe56473d9f3370abfe533ae":[5,0,3,2,1,1,0,0,2,1],
+"blogga_2view_2theme_2blog_2theme_8php.html#af634a3f721c5e238530d0636d33230ec":[5,0,3,2,1,1,0,0,2,4],
"boot_8php.html":[5,0,4],
-"boot_8php.html#a009e6a0637cb65804ea8094ecc4450b0":[5,0,4,128],
-"boot_8php.html#a01353c9abebc3544ea080ac161729632":[5,0,4,34],
-"boot_8php.html#a022cea669f9f13ef7c6268b63884c57f":[5,0,4,142],
-"boot_8php.html#a02566ac9d891369a1d3ebb81a15722fc":[5,0,4,236],
-"boot_8php.html#a032bbd6d0321e99e9117332c9ed2b1b8":[5,0,4,50],
-"boot_8php.html#a03d19251c245587de7ed959300b87bdf":[5,0,4,158],
-"boot_8php.html#a0450389f24c632906fbc24347700a543":[5,0,4,42],
-"boot_8php.html#a0603d6ece8c5d37b4b7db697db053a4b":[5,0,4,98],
+"boot_8php.html#a009e6a0637cb65804ea8094ecc4450b0":[5,0,4,131],
+"boot_8php.html#a01353c9abebc3544ea080ac161729632":[5,0,4,35],
+"boot_8php.html#a022cea669f9f13ef7c6268b63884c57f":[5,0,4,145],
+"boot_8php.html#a02566ac9d891369a1d3ebb81a15722fc":[5,0,4,244],
+"boot_8php.html#a032bbd6d0321e99e9117332c9ed2b1b8":[5,0,4,51],
+"boot_8php.html#a03d19251c245587de7ed959300b87bdf":[5,0,4,163],
+"boot_8php.html#a0450389f24c632906fbc24347700a543":[5,0,4,43],
+"boot_8php.html#a0603d6ece8c5d37b4b7db697db053a4b":[5,0,4,100],
"boot_8php.html#a081307d681d7d04f17b9ced2076e7c85":[5,0,4,1],
-"boot_8php.html#a09532c3f750ae8c4527e63b2b790cbf3":[5,0,4,197],
-"boot_8php.html#a0a98dd0110dc6c8e24cefc8ae74d5562":[5,0,4,63],
-"boot_8php.html#a0b73e2548d6f9beb9c93211f488e336a":[5,0,4,162],
-"boot_8php.html#a0c59dde058efebbc66520d136cbd1631":[5,0,4,253],
-"boot_8php.html#a0cc8dc76bd10ac0ec81bac08a46f82fe":[5,0,4,249],
-"boot_8php.html#a0d877df1e20bae765e1708be50f6b503":[5,0,4,252],
+"boot_8php.html#a09532c3f750ae8c4527e63b2b790cbf3":[5,0,4,202],
+"boot_8php.html#a0a98dd0110dc6c8e24cefc8ae74d5562":[5,0,4,65],
+"boot_8php.html#a0b73e2548d6f9beb9c93211f488e336a":[5,0,4,167],
+"boot_8php.html#a0c59dde058efebbc66520d136cbd1631":[5,0,4,262],
+"boot_8php.html#a0cc8dc76bd10ac0ec81bac08a46f82fe":[5,0,4,258],
+"boot_8php.html#a0d877df1e20bae765e1708be50f6b503":[5,0,4,261],
"boot_8php.html#a0e4701c9742c3ef88f02ac450a042a84":[5,0,4,21],
-"boot_8php.html#a0e57f846e6d47a308feced0f7274f178":[5,0,4,55],
+"boot_8php.html#a0e57f846e6d47a308feced0f7274f178":[5,0,4,57],
"boot_8php.html#a0e6db7e365f2b041a828b93786f694bc":[5,0,4,15],
-"boot_8php.html#a0fb63e51c2a9814941842ae8f2f4dff8":[5,0,4,73],
-"boot_8php.html#a12c781cefc20167231e2e3fd5866b1b5":[5,0,4,77],
-"boot_8php.html#a14ba8f9e162f2559831ee3bf98e0c3bd":[5,0,4,74],
-"boot_8php.html#a14d44d4a00223dc3db4ea962325db192":[5,0,4,188],
-"boot_8php.html#a176664e78dcb9132e16be69418223eb2":[5,0,4,58],
-"boot_8php.html#a17b4ea23d9ecf628d9c8f53b7abcb805":[5,0,4,141],
-"boot_8php.html#a17cf72338b040891781a4bcbdd9a8595":[5,0,4,137],
-"boot_8php.html#a181c111f4b6c14d091dfd3bf0d0a22cd":[5,0,4,161],
-"boot_8php.html#a18a400fa45e5632811b33041d8c048bf":[5,0,4,131],
-"boot_8php.html#a1af3ed96de14aa0d7891b39cc75b60f2":[5,0,4,260],
-"boot_8php.html#a1ba00027b718db732f30fc0e2c3e0abc":[5,0,4,230],
-"boot_8php.html#a1c923b99bf77e4203ae94e5684b6ad0f":[5,0,4,261],
-"boot_8php.html#a1d6e7f4c08bb68e4a424326a811bdd86":[5,0,4,165],
-"boot_8php.html#a1da180f961f49a11573cac4ff6c62c05":[5,0,4,72],
-"boot_8php.html#a1db4f0009c9cb4e107eab0f914a3c8dc":[5,0,4,209],
-"boot_8php.html#a1f5906598e90b5ea2b4245f682be4348":[5,0,4,100],
-"boot_8php.html#a1fbb93cf030f07391f22cc2948744869":[5,0,4,148],
-"boot_8php.html#a20f0eed431d25870b624b8937a07a59f":[5,0,4,181],
-"boot_8php.html#a21cc29e0025943e7c28ff58cb4856ac3":[5,0,4,232],
-"boot_8php.html#a222395aa223cfbff6166fab0b4e2e1d5":[5,0,4,37],
+"boot_8php.html#a0fb63e51c2a9814941842ae8f2f4dff8":[5,0,4,75],
+"boot_8php.html#a115faf8797718c3165498abbd6895843":[5,0,4,248],
+"boot_8php.html#a12c781cefc20167231e2e3fd5866b1b5":[5,0,4,79],
+"boot_8php.html#a14ba8f9e162f2559831ee3bf98e0c3bd":[5,0,4,76],
+"boot_8php.html#a14d44d4a00223dc3db4ea962325db192":[5,0,4,193],
+"boot_8php.html#a176664e78dcb9132e16be69418223eb2":[5,0,4,60],
+"boot_8php.html#a17b4ea23d9ecf628d9c8f53b7abcb805":[5,0,4,144],
+"boot_8php.html#a17cf72338b040891781a4bcbdd9a8595":[5,0,4,140],
+"boot_8php.html#a181c111f4b6c14d091dfd3bf0d0a22cd":[5,0,4,166],
+"boot_8php.html#a18a400fa45e5632811b33041d8c048bf":[5,0,4,134],
+"boot_8php.html#a1af3ed96de14aa0d7891b39cc75b60f2":[5,0,4,269],
+"boot_8php.html#a1ba00027b718db732f30fc0e2c3e0abc":[5,0,4,238],
+"boot_8php.html#a1c923b99bf77e4203ae94e5684b6ad0f":[5,0,4,271],
+"boot_8php.html#a1d6e7f4c08bb68e4a424326a811bdd86":[5,0,4,170],
+"boot_8php.html#a1da180f961f49a11573cac4ff6c62c05":[5,0,4,74],
+"boot_8php.html#a1db4f0009c9cb4e107eab0f914a3c8dc":[5,0,4,217],
+"boot_8php.html#a1f5906598e90b5ea2b4245f682be4348":[5,0,4,102],
+"boot_8php.html#a1fbb93cf030f07391f22cc2948744869":[5,0,4,151],
+"boot_8php.html#a20f0eed431d25870b624b8937a07a59f":[5,0,4,186],
+"boot_8php.html#a21cc29e0025943e7c28ff58cb4856ac3":[5,0,4,240],
+"boot_8php.html#a222395aa223cfbff6166fab0b4e2e1d5":[5,0,4,38],
"boot_8php.html#a24a7a70afedd5d85fe0eadc85afa9f77":[5,0,4,20],
-"boot_8php.html#a25476eec71fceda237f7dc1d78b0adb8":[5,0,4,96],
-"boot_8php.html#a27299ecfb9e9a99826f17a1c14c6995f":[5,0,4,88],
-"boot_8php.html#a2750985ec445617d7e82ae3098c91e3f":[5,0,4,242],
-"boot_8php.html#a285732e7889fa7f333cbe431111e1029":[5,0,4,184],
-"boot_8php.html#a29528a2544373cc19a378f350040c6a1":[5,0,4,79],
-"boot_8php.html#a2958a2bd5422b85329d7c36c06dbc221":[5,0,4,123],
-"boot_8php.html#a29e921c0c72412cc738e44cca6ca1f62":[5,0,4,207],
-"boot_8php.html#a2af173e4e9836ee7c90757b4793a2be3":[5,0,4,101],
-"boot_8php.html#a2b525996e4426bdddbcec277778bde08":[5,0,4,228],
-"boot_8php.html#a2c65e925994566a63e6c03c381f1b4a0":[5,0,4,180],
-"boot_8php.html#a2c8906f1af94a3559a5b4661067bb79d":[5,0,4,120],
-"boot_8php.html#a2e90096fede6acce16abf0da8cb2febe":[5,0,4,64],
-"boot_8php.html#a2f8f25b13480c37a5f22511f53da8bab":[5,0,4,69],
-"boot_8php.html#a32df13fec0e43281da5979e1f5579aa8":[5,0,4,214],
-"boot_8php.html#a3475ff6c2e575f946ea0ee377e944173":[5,0,4,135],
-"boot_8php.html#a34c756469ebed32e2fc987bcde62d382":[5,0,4,39],
-"boot_8php.html#a3515ea6bf77495de89b93e9ccd881c49":[5,0,4,113],
-"boot_8php.html#a35625dacd2158b9f1f1a8e77f9f081fd":[5,0,4,150],
-"boot_8php.html#a36b31575f992a10b5927b76efba9362e":[5,0,4,264],
-"boot_8php.html#a38f6c7fe33b5434a24b4314567753dfa":[5,0,4,169],
-"boot_8php.html#a3ad9cc5d4354be741fa1de12b96e9955":[5,0,4,103],
-"boot_8php.html#a3b56bfc6a0dd159070e316ddac3b7456":[5,0,4,108],
-"boot_8php.html#a3cd42a70c6b3999590e4fd7a1a9096af":[5,0,4,263],
-"boot_8php.html#a3d6d4fc5fafcc9156811669158541caf":[5,0,4,205],
+"boot_8php.html#a25476eec71fceda237f7dc1d78b0adb8":[5,0,4,98],
+"boot_8php.html#a27299ecfb9e9a99826f17a1c14c6995f":[5,0,4,90],
+"boot_8php.html#a2750985ec445617d7e82ae3098c91e3f":[5,0,4,251],
+"boot_8php.html#a285732e7889fa7f333cbe431111e1029":[5,0,4,189],
+"boot_8php.html#a29528a2544373cc19a378f350040c6a1":[5,0,4,81],
+"boot_8php.html#a2958a2bd5422b85329d7c36c06dbc221":[5,0,4,126],
+"boot_8php.html#a29e921c0c72412cc738e44cca6ca1f62":[5,0,4,215],
+"boot_8php.html#a2af173e4e9836ee7c90757b4793a2be3":[5,0,4,103],
+"boot_8php.html#a2b525996e4426bdddbcec277778bde08":[5,0,4,236],
+"boot_8php.html#a2c65e925994566a63e6c03c381f1b4a0":[5,0,4,185],
+"boot_8php.html#a2c8906f1af94a3559a5b4661067bb79d":[5,0,4,123],
+"boot_8php.html#a2e90096fede6acce16abf0da8cb2febe":[5,0,4,66],
+"boot_8php.html#a2f8f25b13480c37a5f22511f53da8bab":[5,0,4,71],
+"boot_8php.html#a32df13fec0e43281da5979e1f5579aa8":[5,0,4,222],
+"boot_8php.html#a3475ff6c2e575f946ea0ee377e944173":[5,0,4,138],
+"boot_8php.html#a34c756469ebed32e2fc987bcde62d382":[5,0,4,40],
+"boot_8php.html#a3515ea6bf77495de89b93e9ccd881c49":[5,0,4,116],
+"boot_8php.html#a35625dacd2158b9f1f1a8e77f9f081fd":[5,0,4,153],
+"boot_8php.html#a36b31575f992a10b5927b76efba9362e":[5,0,4,275],
+"boot_8php.html#a38f6c7fe33b5434a24b4314567753dfa":[5,0,4,174],
+"boot_8php.html#a3ad9cc5d4354be741fa1de12b96e9955":[5,0,4,105],
+"boot_8php.html#a3b56bfc6a0dd159070e316ddac3b7456":[5,0,4,110],
+"boot_8php.html#a3cd42a70c6b3999590e4fd7a1a9096af":[5,0,4,274],
+"boot_8php.html#a3d6d4fc5fafcc9156811669158541caf":[5,0,4,213],
"boot_8php.html#a3e0930933fb2c0bf8211cc7ab4e1c3b4":[5,0,4,12],
-"boot_8php.html#a3e2ea123d29a72012db1241f96280b0e":[5,0,4,56],
-"boot_8php.html#a3f40aa5bafff8c4eebdc62e5121daf77":[5,0,4,86],
-"boot_8php.html#a400519fa181591cd6fdbb8f25fbcba0a":[5,0,4,48],
-"boot_8php.html#a40d885b2cfd736aab4234ae641ca4dfb":[5,0,4,124],
-"boot_8php.html#a423505ab8dbd8e39d04ae3fe1374102b":[5,0,4,200],
-"boot_8php.html#a43296b1b4398aacbf92a4b2d56bab91e":[5,0,4,179],
-"boot_8php.html#a43c6c7d84d880e9500bd4f8f8ecc5731":[5,0,4,85],
-"boot_8php.html#a444ce608ce34efb82ee11852f36e825f":[5,0,4,155],
-"boot_8php.html#a44ae1542a805ffd7f826fb511db07374":[5,0,4,145],
-"boot_8php.html#a44d069c8a1cfcc6d2007c506a17ff28f":[5,0,4,67],
-"boot_8php.html#a45b12aefab9675baffc7a07a09486db8":[5,0,4,250],
-"boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47":[5,0,4,167],
-"boot_8php.html#a4a12ce5de39789b0361e308d89925a20":[5,0,4,99],
-"boot_8php.html#a4a49b29838ef2c45ab3556b52baec6a4":[5,0,4,222],
-"boot_8php.html#a4bfe22e163657690dfb6d5b1d04cb47e":[5,0,4,166],
+"boot_8php.html#a3e2ea123d29a72012db1241f96280b0e":[5,0,4,58],
+"boot_8php.html#a3f40aa5bafff8c4eebdc62e5121daf77":[5,0,4,88],
+"boot_8php.html#a400519fa181591cd6fdbb8f25fbcba0a":[5,0,4,49],
+"boot_8php.html#a40d885b2cfd736aab4234ae641ca4dfb":[5,0,4,127],
+"boot_8php.html#a423505ab8dbd8e39d04ae3fe1374102b":[5,0,4,207],
+"boot_8php.html#a43296b1b4398aacbf92a4b2d56bab91e":[5,0,4,184],
+"boot_8php.html#a43c6c7d84d880e9500bd4f8f8ecc5731":[5,0,4,87],
+"boot_8php.html#a444ce608ce34efb82ee11852f36e825f":[5,0,4,160],
+"boot_8php.html#a44ae1542a805ffd7f826fb511db07374":[5,0,4,148],
+"boot_8php.html#a44d069c8a1cfcc6d2007c506a17ff28f":[5,0,4,69],
+"boot_8php.html#a458e19af801bc4b0d1f1ce1a6d9e857e":[5,0,4,154],
+"boot_8php.html#a45b12aefab9675baffc7a07a09486db8":[5,0,4,259],
+"boot_8php.html#a49f2a70b3b43aa904223a8d19e986a47":[5,0,4,172],
+"boot_8php.html#a4a12ce5de39789b0361e308d89925a20":[5,0,4,101],
+"boot_8php.html#a4a49b29838ef2c45ab3556b52baec6a4":[5,0,4,230],
+"boot_8php.html#a4bfe22e163657690dfb6d5b1d04cb47e":[5,0,4,171],
"boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3":[5,0,4,6],
-"boot_8php.html#a4edce16cb7f21cdafa1e85bf63d713e6":[5,0,4,199],
-"boot_8php.html#a4fefd7486d3b888a05cfd3dc9575f115":[5,0,4,218],
-"boot_8php.html#a505410c7edc5f5bb5fa227b98359793e":[5,0,4,191],
-"boot_8php.html#a525ca93ff35d3535d1a2b8ba57876afa":[5,0,4,149],
-"boot_8php.html#a52b599cd13e152ebc80d7e4413683195":[5,0,4,38],
-"boot_8php.html#a53e4bdb6f225da55115acb9277f75e53":[5,0,4,78],
-"boot_8php.html#a5542c5c2806ab8bca04bad53d47b5209":[5,0,4,31],
-"boot_8php.html#a56fd673eaa7014150297ce1162502db5":[5,0,4,183],
-"boot_8php.html#a57eee7352714c004d36c26dda74af73e":[5,0,4,217],
-"boot_8php.html#a5a681a672e007cdc22b43345d71f07c6":[5,0,4,262],
+"boot_8php.html#a4edce16cb7f21cdafa1e85bf63d713e6":[5,0,4,204],
+"boot_8php.html#a4fefd7486d3b888a05cfd3dc9575f115":[5,0,4,226],
+"boot_8php.html#a505410c7edc5f5bb5fa227b98359793e":[5,0,4,196],
+"boot_8php.html#a525ca93ff35d3535d1a2b8ba57876afa":[5,0,4,152],
+"boot_8php.html#a52b599cd13e152ebc80d7e4413683195":[5,0,4,39],
+"boot_8php.html#a53e4bdb6f225da55115acb9277f75e53":[5,0,4,80],
+"boot_8php.html#a5542c5c2806ab8bca04bad53d47b5209":[5,0,4,32],
+"boot_8php.html#a56fd673eaa7014150297ce1162502db5":[5,0,4,188],
+"boot_8php.html#a57eee7352714c004d36c26dda74af73e":[5,0,4,225],
+"boot_8php.html#a5a681a672e007cdc22b43345d71f07c6":[5,0,4,272],
"boot_8php.html#a5ab6181607a090bcdbaa13b15b85aba1":[5,0,4,19],
-"boot_8php.html#a5ae728ac966ea1d3525a19e7fec59434":[5,0,4,57],
-"boot_8php.html#a5b043b7fdcfd4e8c9c3747574afc6caa":[5,0,4,173],
-"boot_8php.html#a5b8484922918946d041e5e0515dbe718":[5,0,4,195],
-"boot_8php.html#a5c3747e0f505f0d5271dc4c54e3feaf4":[5,0,4,75],
-"boot_8php.html#a5df5359090d1f8e898c36d7cf8878ad2":[5,0,4,153],
-"boot_8php.html#a5e322a2a2d0f51924c0b2e874988e640":[5,0,4,196],
+"boot_8php.html#a5ae728ac966ea1d3525a19e7fec59434":[5,0,4,59],
+"boot_8php.html#a5b043b7fdcfd4e8c9c3747574afc6caa":[5,0,4,178],
+"boot_8php.html#a5b8484922918946d041e5e0515dbe718":[5,0,4,200],
+"boot_8php.html#a5c3747e0f505f0d5271dc4c54e3feaf4":[5,0,4,77],
+"boot_8php.html#a5df5359090d1f8e898c36d7cf8878ad2":[5,0,4,158],
+"boot_8php.html#a5e322a2a2d0f51924c0b2e874988e640":[5,0,4,201],
"boot_8php.html#a623e49c79943f3e7bdb770d021683cf7":[5,0,4,18],
-"boot_8php.html#a62c832a95e38b1fa23e6cef39521b7d5":[5,0,4,71],
-"boot_8php.html#a64617d4655804de2a3c86501ab4fdbfd":[5,0,4,246],
-"boot_8php.html#a6626f383c3d2d459f731ab8b4f237d16":[5,0,4,159],
-"boot_8php.html#a6788e99021ec8ffb0fa94d651f22a322":[5,0,4,133],
-"boot_8php.html#a68d1d5bc9c7ccb663dc671b48c66df11":[5,0,4,136],
-"boot_8php.html#a68eebe493e6f729ffd1aeda7a4b11155":[5,0,4,41],
-"boot_8php.html#a6969947145a139ec374ce098224d8e81":[5,0,4,139],
-"boot_8php.html#a69aac276ed82e010dc382b16ab4d59e1":[5,0,4,234],
-"boot_8php.html#a6b14a31a8aa9f3452a13383f413bffa2":[5,0,4,221],
-"boot_8php.html#a6b31dd451bc6c37fe7c9c766ff385aaf":[5,0,4,215],
-"boot_8php.html#a6b9909db6a7ec80ec6fdd40ba74014dd":[5,0,4,97],
-"boot_8php.html#a6c5e9e293c8242dcb9bc2c3ea2fee2c9":[5,0,4,89],
-"boot_8php.html#a6df1102664f64b274810db85197c2755":[5,0,4,203],
-"boot_8php.html#a6e57d913634d033b4d5ad72d99fd3e9d":[5,0,4,122],
-"boot_8php.html#a7176c0f9f1c98421b97735d892cf6252":[5,0,4,233],
-"boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6":[5,0,4,26],
-"boot_8php.html#a7236b2cdcf59f02a42302e893a99013b":[5,0,4,174],
-"boot_8php.html#a749144d8dd9c1366596a0213c277d050":[5,0,4,126],
-"boot_8php.html#a74bf27f7564c9a37975e7b37d973dcab":[5,0,4,68],
+"boot_8php.html#a62c832a95e38b1fa23e6cef39521b7d5":[5,0,4,73],
+"boot_8php.html#a64617d4655804de2a3c86501ab4fdbfd":[5,0,4,255],
+"boot_8php.html#a6626f383c3d2d459f731ab8b4f237d16":[5,0,4,164],
+"boot_8php.html#a6788e99021ec8ffb0fa94d651f22a322":[5,0,4,136],
+"boot_8php.html#a68d1d5bc9c7ccb663dc671b48c66df11":[5,0,4,139],
+"boot_8php.html#a68eebe493e6f729ffd1aeda7a4b11155":[5,0,4,42],
+"boot_8php.html#a6969947145a139ec374ce098224d8e81":[5,0,4,142],
+"boot_8php.html#a69aac276ed82e010dc382b16ab4d59e1":[5,0,4,242],
+"boot_8php.html#a6b14a31a8aa9f3452a13383f413bffa2":[5,0,4,229],
+"boot_8php.html#a6b31dd451bc6c37fe7c9c766ff385aaf":[5,0,4,223],
+"boot_8php.html#a6b9909db6a7ec80ec6fdd40ba74014dd":[5,0,4,99],
+"boot_8php.html#a6c5e9e293c8242dcb9bc2c3ea2fee2c9":[5,0,4,91],
+"boot_8php.html#a6df1102664f64b274810db85197c2755":[5,0,4,211],
+"boot_8php.html#a6e57d913634d033b4d5ad72d99fd3e9d":[5,0,4,125],
+"boot_8php.html#a6ee7a72d558d1851bbb9e3cdde377932":[5,0,4,205],
+"boot_8php.html#a7176c0f9f1c98421b97735d892cf6252":[5,0,4,241],
+"boot_8php.html#a718a801b0be6cbaef5e519516da12721":[5,0,4,157],
+"boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6":[5,0,4,27],
+"boot_8php.html#a7236b2cdcf59f02a42302e893a99013b":[5,0,4,179],
+"boot_8php.html#a749144d8dd9c1366596a0213c277d050":[5,0,4,129],
+"boot_8php.html#a74bf27f7564c9a37975e7b37d973dcab":[5,0,4,70],
"boot_8php.html#a75a90b0eadd0df510f7e63210733634d":[5,0,4,2],
-"boot_8php.html#a75fc600186b13c3b25e661afefb5eac8":[5,0,4,254],
+"boot_8php.html#a75fc600186b13c3b25e661afefb5eac8":[5,0,4,263],
"boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006":[5,0,4,4],
-"boot_8php.html#a774f0f792ebfec1e774c5a17bb9d5966":[5,0,4,70],
-"boot_8php.html#a781916f83fcc8ff1035649afa45f0292":[5,0,4,83],
-"boot_8php.html#a78849a1bf8ce8d9804b4cbb502e8f383":[5,0,4,224],
-"boot_8php.html#a7a8ba64d089cc0412c59a2eefc6d655c":[5,0,4,109],
-"boot_8php.html#a7aa57438db03834aaa0b468bdce773a6":[5,0,4,61],
-"boot_8php.html#a7af107fab8d62b9a73801713b774ed30":[5,0,4,125],
-"boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133":[5,0,4,154],
-"boot_8php.html#a7bff2278e68a71e524afd1c7c951e1e3":[5,0,4,65],
-"boot_8php.html#a7c286add8961fd2d79216314cd4aadd8":[5,0,4,102],
-"boot_8php.html#a7ed4581ab66ebcde97f6b3730856b028":[5,0,4,156],
-"boot_8php.html#a7f3474fec541e261fc8dff47313c4017":[5,0,4,45],
-"boot_8php.html#a7f4264232dbb6c3b41f2617deecb1866":[5,0,4,80],
-"boot_8php.html#a7fc4b291a7cdaa48b38e27344ea183cf":[5,0,4,111],
-"boot_8php.html#a8231d115060d41a9c2a677f2c86f10ed":[5,0,4,193],
-"boot_8php.html#a84057c5bfa1bca5fba8497fe005ee4d8":[5,0,4,49],
-"boot_8php.html#a845891f82bf6edd7fa2d578b66703112":[5,0,4,106],
-"boot_8php.html#a84f48897059bbd4a8738d7ee4cec6688":[5,0,4,53],
-"boot_8php.html#a8663f32171568489dbb2a01dd00371f8":[5,0,4,118],
-"boot_8php.html#a882b666adfe21f035a0f8c02806066d6":[5,0,4,245],
-"boot_8php.html#a8892374789fd261eb32a7969d934a14a":[5,0,4,244],
-"boot_8php.html#a8905fde0a5b7882bdc083b20d9b34701":[5,0,4,172],
-"boot_8php.html#a899d24fd074594ceebbf72e1feff335f":[5,0,4,16],
-"boot_8php.html#a8a60cc38bb567765fd926fef70205f16":[5,0,4,94],
-"boot_8php.html#a8bb0395933b5e886f086f6a2fb0bfa55":[5,0,4,219]
+"boot_8php.html#a774f0f792ebfec1e774c5a17bb9d5966":[5,0,4,72],
+"boot_8php.html#a781916f83fcc8ff1035649afa45f0292":[5,0,4,85],
+"boot_8php.html#a78849a1bf8ce8d9804b4cbb502e8f383":[5,0,4,232],
+"boot_8php.html#a7a8ba64d089cc0412c59a2eefc6d655c":[5,0,4,111],
+"boot_8php.html#a7aa57438db03834aaa0b468bdce773a6":[5,0,4,63],
+"boot_8php.html#a7af107fab8d62b9a73801713b774ed30":[5,0,4,128],
+"boot_8php.html#a7b8f8ad9dbe82711257d23891ef6b133":[5,0,4,159],
+"boot_8php.html#a7bff2278e68a71e524afd1c7c951e1e3":[5,0,4,67],
+"boot_8php.html#a7c286add8961fd2d79216314cd4aadd8":[5,0,4,104],
+"boot_8php.html#a7c2eb822d50e1554bf5c32861f36342b":[5,0,4,55],
+"boot_8php.html#a7ed4581ab66ebcde97f6b3730856b028":[5,0,4,161],
+"boot_8php.html#a7f3474fec541e261fc8dff47313c4017":[5,0,4,46]
};
diff --git a/doc/html/navtreeindex1.js b/doc/html/navtreeindex1.js
index 28b238093..49fa2193d 100644
--- a/doc/html/navtreeindex1.js
+++ b/doc/html/navtreeindex1.js
@@ -1,200 +1,224 @@
var NAVTREEINDEX1 =
{
-"boot_8php.html#a8c9dce0ef27b35397e29298eb966f7f7":[5,0,4,121],
-"boot_8php.html#a8da836617174eed9fc2ac8054125354b":[5,0,4,115],
-"boot_8php.html#a8df201788c9dd0ca91384e3a14c08bce":[5,0,4,226],
-"boot_8php.html#a9255af5ae9c887520091ea04763c1a88":[5,0,4,29],
+"boot_8php.html#a7f4264232dbb6c3b41f2617deecb1866":[5,0,4,82],
+"boot_8php.html#a7fc4b291a7cdaa48b38e27344ea183cf":[5,0,4,114],
+"boot_8php.html#a8231d115060d41a9c2a677f2c86f10ed":[5,0,4,198],
+"boot_8php.html#a84057c5bfa1bca5fba8497fe005ee4d8":[5,0,4,50],
+"boot_8php.html#a845891f82bf6edd7fa2d578b66703112":[5,0,4,108],
+"boot_8php.html#a84f48897059bbd4a8738d7ee4cec6688":[5,0,4,54],
+"boot_8php.html#a852d4036a3bed66af1534d014c4ecde2":[5,0,4,209],
+"boot_8php.html#a8663f32171568489dbb2a01dd00371f8":[5,0,4,121],
+"boot_8php.html#a87b0f279f8413c7e4d805c5d85f20d34":[5,0,4,113],
+"boot_8php.html#a882b666adfe21f035a0f8c02806066d6":[5,0,4,254],
+"boot_8php.html#a8892374789fd261eb32a7969d934a14a":[5,0,4,253],
+"boot_8php.html#a8905fde0a5b7882bdc083b20d9b34701":[5,0,4,177],
+"boot_8php.html#a899d24fd074594ceebbf72e1feff335f":[5,0,4,16],
+"boot_8php.html#a8a60cc38bb567765fd926fef70205f16":[5,0,4,96],
+"boot_8php.html#a8b2af16eaee9e7768a88d0e437877f3b":[5,0,4,206],
+"boot_8php.html#a8bb0395933b5e886f086f6a2fb0bfa55":[5,0,4,227],
+"boot_8php.html#a8c9dce0ef27b35397e29298eb966f7f7":[5,0,4,124],
+"boot_8php.html#a8da836617174eed9fc2ac8054125354b":[5,0,4,118],
+"boot_8php.html#a8df201788c9dd0ca91384e3a14c08bce":[5,0,4,234],
+"boot_8php.html#a8fdcc4ffb365a3267bd02ce8a8d466d6":[5,0,4,270],
+"boot_8php.html#a9255af5ae9c887520091ea04763c1a88":[5,0,4,30],
"boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3":[5,0,4,11],
-"boot_8php.html#a93823d15ae07548a4c49de88d325cd26":[5,0,4,140],
-"boot_8php.html#a939de9a99278f4fd7dcd0ee67f243f08":[5,0,4,119],
-"boot_8php.html#a949116d9a295b214293006c060ca4848":[5,0,4,117],
-"boot_8php.html#a9690d73434125ce594a1f5e7c2a4f7c0":[5,0,4,256],
-"boot_8php.html#a96ad56755a21e1361dbd7bf93c9e7ff4":[5,0,4,231],
+"boot_8php.html#a93823d15ae07548a4c49de88d325cd26":[5,0,4,143],
+"boot_8php.html#a939de9a99278f4fd7dcd0ee67f243f08":[5,0,4,122],
+"boot_8php.html#a949116d9a295b214293006c060ca4848":[5,0,4,120],
+"boot_8php.html#a9690d73434125ce594a1f5e7c2a4f7c0":[5,0,4,265],
+"boot_8php.html#a96ad56755a21e1361dbd7bf93c9e7ff4":[5,0,4,239],
"boot_8php.html#a97769915c9f14adc4f8ab1ea2cecfd90":[5,0,4,17],
-"boot_8php.html#a981d46380f9f23c308bac1f9cb00dc5b":[5,0,4,186],
-"boot_8php.html#a99a4a17cb644e7e6826ea07ecaf09777":[5,0,4,220],
-"boot_8php.html#a9c80420e5a063a4a87ce4831f086134d":[5,0,4,44],
+"boot_8php.html#a981d46380f9f23c308bac1f9cb00dc5b":[5,0,4,191],
+"boot_8php.html#a99a4a17cb644e7e6826ea07ecaf09777":[5,0,4,228],
+"boot_8php.html#a9c80420e5a063a4a87ce4831f086134d":[5,0,4,45],
"boot_8php.html#a9cbab4ee728e9a8b4ce952bae643044e":[5,0,4,5],
-"boot_8php.html#a9cc986b4f9dd6558cbb2e25aadbfd964":[5,0,4,212],
-"boot_8php.html#a9d01ef178b72b145016cca1393415bc4":[5,0,4,187],
-"boot_8php.html#a9ea1290e00c6d40684892047f2c778a9":[5,0,4,259],
-"boot_8php.html#a9eeb8989272d5ff804a616898bb13659":[5,0,4,247],
-"boot_8php.html#a9ff652e5cb83cd11cbb0350844e7b28f":[5,0,4,211],
-"boot_8php.html#aa17a4f9c63f5cbc5c06f1066b6aebc42":[5,0,4,175],
+"boot_8php.html#a9cc986b4f9dd6558cbb2e25aadbfd964":[5,0,4,220],
+"boot_8php.html#a9d01ef178b72b145016cca1393415bc4":[5,0,4,192],
+"boot_8php.html#a9ea1290e00c6d40684892047f2c778a9":[5,0,4,268],
+"boot_8php.html#a9eeb8989272d5ff804a616898bb13659":[5,0,4,256],
+"boot_8php.html#a9ff652e5cb83cd11cbb0350844e7b28f":[5,0,4,219],
+"boot_8php.html#aa17a4f9c63f5cbc5c06f1066b6aebc42":[5,0,4,180],
"boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e":[5,0,4,24],
-"boot_8php.html#aa275653b9c87abc7391bb8040c1c2de9":[5,0,4,194],
-"boot_8php.html#aa3425e2de85b08f7041656d3a8502cb6":[5,0,4,40],
-"boot_8php.html#aa3679df31c8dad1b71816b0322d5baff":[5,0,4,147],
+"boot_8php.html#aa275653b9c87abc7391bb8040c1c2de9":[5,0,4,199],
+"boot_8php.html#aa3425e2de85b08f7041656d3a8502cb6":[5,0,4,41],
+"boot_8php.html#aa3679df31c8dad1b71816b0322d5baff":[5,0,4,150],
"boot_8php.html#aa4221641e5c21db69fa52c426b9017f5":[5,0,4,9],
-"boot_8php.html#aa544a6c078130d0967a1f4ed8ce0a2d2":[5,0,4,144],
-"boot_8php.html#aa589421267f0c2f0d643f727792cce35":[5,0,4,105],
-"boot_8php.html#aa74438cf71e48e37bf7b440b94243985":[5,0,4,82],
-"boot_8php.html#aa8a2b61e70900139d1ca28e46f1da49d":[5,0,4,91],
-"boot_8php.html#aa9244fc9cc221980c07a20cc534111be":[5,0,4,216],
-"boot_8php.html#aad33b494084f729b6ee3b0bc457718a1":[5,0,4,130],
-"boot_8php.html#aae6c941bde5fd6fce07e51dba7326ead":[5,0,4,201],
-"boot_8php.html#aaf9b76832ee5f85e56466af162ba8a14":[5,0,4,62],
-"boot_8php.html#ab21fb0f3e6b962419955c6fc7f26734f":[5,0,4,178],
-"boot_8php.html#ab28dc518fa90b6f617dd8c564eb4f35f":[5,0,4,110],
-"boot_8php.html#ab2d0e8a9b81ee548ef2ce8e4560da2f6":[5,0,4,202],
-"boot_8php.html#ab346a2ece14993861f3e4206befa94f0":[5,0,4,30],
-"boot_8php.html#ab3920c2f3cd64802c0b7ff625c3b2ea8":[5,0,4,198],
-"boot_8php.html#ab4bc9c50ecc927b92d519e36562b0df0":[5,0,4,223],
-"boot_8php.html#ab4bddb41a0cf407178ec5278b950c393":[5,0,4,171],
-"boot_8php.html#ab51965fabe54dc031e9a0ce1142ee83e":[5,0,4,206],
-"boot_8php.html#ab54b24cc302e1a42a67a49d788b6b764":[5,0,4,104],
-"boot_8php.html#ab55b16ae7fc19fafe5afaedd49163bbf":[5,0,4,132],
-"boot_8php.html#ab5ddbe69d3d03acd06e1fb281488cb78":[5,0,4,51],
-"boot_8php.html#ab724491497ab2618b23a01d5da60aec0":[5,0,4,189],
+"boot_8php.html#aa544a6c078130d0967a1f4ed8ce0a2d2":[5,0,4,147],
+"boot_8php.html#aa589421267f0c2f0d643f727792cce35":[5,0,4,107],
+"boot_8php.html#aa74438cf71e48e37bf7b440b94243985":[5,0,4,84],
+"boot_8php.html#aa8a2b61e70900139d1ca28e46f1da49d":[5,0,4,93],
+"boot_8php.html#aa9244fc9cc221980c07a20cc534111be":[5,0,4,224],
+"boot_8php.html#aad33b494084f729b6ee3b0bc457718a1":[5,0,4,133],
+"boot_8php.html#aae6c941bde5fd6fce07e51dba7326ead":[5,0,4,208],
+"boot_8php.html#aaf9b76832ee5f85e56466af162ba8a14":[5,0,4,64],
+"boot_8php.html#ab21fb0f3e6b962419955c6fc7f26734f":[5,0,4,183],
+"boot_8php.html#ab28dc518fa90b6f617dd8c564eb4f35f":[5,0,4,112],
+"boot_8php.html#ab2d0e8a9b81ee548ef2ce8e4560da2f6":[5,0,4,210],
+"boot_8php.html#ab346a2ece14993861f3e4206befa94f0":[5,0,4,31],
+"boot_8php.html#ab3920c2f3cd64802c0b7ff625c3b2ea8":[5,0,4,203],
+"boot_8php.html#ab4bc9c50ecc927b92d519e36562b0df0":[5,0,4,231],
+"boot_8php.html#ab4bddb41a0cf407178ec5278b950c393":[5,0,4,176],
+"boot_8php.html#ab51965fabe54dc031e9a0ce1142ee83e":[5,0,4,214],
+"boot_8php.html#ab54b24cc302e1a42a67a49d788b6b764":[5,0,4,106],
+"boot_8php.html#ab55b16ae7fc19fafe5afaedd49163bbf":[5,0,4,135],
+"boot_8php.html#ab5ddbe69d3d03acd06e1fb281488cb78":[5,0,4,52],
+"boot_8php.html#ab724491497ab2618b23a01d5da60aec0":[5,0,4,194],
"boot_8php.html#ab79b8b4555cae20d03f8200666d89d63":[5,0,4,7],
-"boot_8php.html#ab7d65a7e7417825a4db62906bb600729":[5,0,4,93],
-"boot_8php.html#aba208673515cbb8a55e5fa4a1da99fda":[5,0,4,35],
-"boot_8php.html#abbf5ac24eb8aeedb862f618ee0d21e86":[5,0,4,227],
+"boot_8php.html#ab7d65a7e7417825a4db62906bb600729":[5,0,4,95],
+"boot_8php.html#aba208673515cbb8a55e5fa4a1da99fda":[5,0,4,36],
+"boot_8php.html#abbf5ac24eb8aeedb862f618ee0d21e86":[5,0,4,235],
"boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7":[5,0,4,3],
-"boot_8php.html#abd7bb40da9cc073297e49736b338ca07":[5,0,4,251],
-"boot_8php.html#abdcdfc873ace4e0902177bad934de0c0":[5,0,4,60],
-"boot_8php.html#abeb4d86e17cefa8584f1244e2183b0e1":[5,0,4,107],
-"boot_8php.html#abedd940e664017c61b48c6efa31d0cb8":[5,0,4,92],
-"boot_8php.html#ac01230c7655e0705b2e99c9bc03c4450":[5,0,4,116],
+"boot_8php.html#abd7bb40da9cc073297e49736b338ca07":[5,0,4,260],
+"boot_8php.html#abdcdfc873ace4e0902177bad934de0c0":[5,0,4,62],
+"boot_8php.html#abeb4d86e17cefa8584f1244e2183b0e1":[5,0,4,109],
+"boot_8php.html#abedd940e664017c61b48c6efa31d0cb8":[5,0,4,94],
+"boot_8php.html#ac01230c7655e0705b2e99c9bc03c4450":[5,0,4,119],
"boot_8php.html#ac17fc8a416ea79e9d5cb4dc9a8ff8c5c":[5,0,4,23],
-"boot_8php.html#ac195fc9003298923ea81f144388e24b1":[5,0,4,157],
-"boot_8php.html#ac43182e0d8bae7576a30b603774974f8":[5,0,4,225],
-"boot_8php.html#ac59a18a4838710d6c2de37aed6b21f03":[5,0,4,90],
-"boot_8php.html#ac608a34f3bc180e7724192e0fd31f9b0":[5,0,4,33],
-"boot_8php.html#ac8400313df2c831653f9036f71ebd86d":[5,0,4,52],
-"boot_8php.html#ac86615ddc0763a00f5311c90e991730c":[5,0,4,257],
-"boot_8php.html#ac890557fedc5b5a3b1d996249b1e1a20":[5,0,4,112],
-"boot_8php.html#ac99fc4d040764eac1736bec6973556fe":[5,0,4,114],
-"boot_8php.html#aca08bc4f1554ba877500f6abcc99e1e8":[5,0,4,185],
-"boot_8php.html#aca47505b8732177f52bb2d647eb2741c":[5,0,4,32],
+"boot_8php.html#ac195fc9003298923ea81f144388e24b1":[5,0,4,162],
+"boot_8php.html#ac43182e0d8bae7576a30b603774974f8":[5,0,4,233],
+"boot_8php.html#ac59a18a4838710d6c2de37aed6b21f03":[5,0,4,92],
+"boot_8php.html#ac5e74f899f6e98d8e91b14ba1c08bc08":[5,0,4,25],
+"boot_8php.html#ac608a34f3bc180e7724192e0fd31f9b0":[5,0,4,34],
+"boot_8php.html#ac8400313df2c831653f9036f71ebd86d":[5,0,4,53],
+"boot_8php.html#ac86615ddc0763a00f5311c90e991730c":[5,0,4,266],
+"boot_8php.html#ac890557fedc5b5a3b1d996249b1e1a20":[5,0,4,115],
+"boot_8php.html#ac99fc4d040764eac1736bec6973556fe":[5,0,4,117],
+"boot_8php.html#aca08bc4f1554ba877500f6abcc99e1e8":[5,0,4,190],
+"boot_8php.html#aca47505b8732177f52bb2d647eb2741c":[5,0,4,33],
"boot_8php.html#aca5e42678e178c6b9034610d66666fd7":[5,0,4,13],
"boot_8php.html#acc4e0c910af066148b810e5fde55fff1":[5,0,4,8],
-"boot_8php.html#acca19aae62e1a6951a856b945de20d67":[5,0,4,160],
-"boot_8php.html#accd6f36cc9f40225cbd720e4d12a7c6e":[5,0,4,258],
-"boot_8php.html#acd877c405b06b348b37b6f7e62a211e9":[5,0,4,213],
-"boot_8php.html#ace83842dbeb84f7ed9ac59a9f57a7c32":[5,0,4,192],
-"boot_8php.html#aced60c7285192e80b7c4757e45a7f1e3":[5,0,4,59],
-"boot_8php.html#ad0876e837cf3fad8a26417e315f6e2c8":[5,0,4,143],
-"boot_8php.html#ad11f30a6590d3d77f0c5e1e3909af8f5":[5,0,4,151],
+"boot_8php.html#acca19aae62e1a6951a856b945de20d67":[5,0,4,165],
+"boot_8php.html#accd6f36cc9f40225cbd720e4d12a7c6e":[5,0,4,267],
+"boot_8php.html#acd877c405b06b348b37b6f7e62a211e9":[5,0,4,221],
+"boot_8php.html#ace83842dbeb84f7ed9ac59a9f57a7c32":[5,0,4,197],
+"boot_8php.html#aced60c7285192e80b7c4757e45a7f1e3":[5,0,4,61],
+"boot_8php.html#ad0876e837cf3fad8a26417e315f6e2c8":[5,0,4,146],
+"boot_8php.html#ad11f30a6590d3d77f0c5e1e3909af8f5":[5,0,4,155],
"boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13":[5,0,4,10],
-"boot_8php.html#ad302cb26b838898d475f57f61b0fcc9f":[5,0,4,66],
-"boot_8php.html#ad34c1547020a305915bcc39707744690":[5,0,4,81],
-"boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44":[5,0,4,27],
-"boot_8php.html#ad789aef3cb95fc1eb36be7c4283d0137":[5,0,4,208],
-"boot_8php.html#ad8887b49bbb02dd30b4eb9f6c7773c63":[5,0,4,235],
-"boot_8php.html#ad88a70ec62e08d590123d3697dfe64d5":[5,0,4,229],
-"boot_8php.html#ada72d88ae39a7e3b45baea201cb49a29":[5,0,4,87],
-"boot_8php.html#adaeb4f590c56326b2dca3b19f31b6272":[5,0,4,127],
-"boot_8php.html#adca48aee78465ae3064ca4432c0d87b5":[5,0,4,238],
-"boot_8php.html#add517a0958ac684792c62142a3877f81":[5,0,4,36],
+"boot_8php.html#ad302cb26b838898d475f57f61b0fcc9f":[5,0,4,68],
+"boot_8php.html#ad34c1547020a305915bcc39707744690":[5,0,4,83],
+"boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44":[5,0,4,28],
+"boot_8php.html#ad789aef3cb95fc1eb36be7c4283d0137":[5,0,4,216],
+"boot_8php.html#ad8887b49bbb02dd30b4eb9f6c7773c63":[5,0,4,243],
+"boot_8php.html#ad88a70ec62e08d590123d3697dfe64d5":[5,0,4,237],
+"boot_8php.html#ada72d88ae39a7e3b45baea201cb49a29":[5,0,4,89],
+"boot_8php.html#adaeb4f590c56326b2dca3b19f31b6272":[5,0,4,130],
+"boot_8php.html#adca48aee78465ae3064ca4432c0d87b5":[5,0,4,246],
+"boot_8php.html#add517a0958ac684792c62142a3877f81":[5,0,4,37],
"boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498":[5,0,4,22],
-"boot_8php.html#ae37444eaa42705185080ccf3e670cbc2":[5,0,4,243],
-"boot_8php.html#ae3cef7b63e25e7bafea3fcf6b99fad0e":[5,0,4,168],
-"boot_8php.html#ae4861de36017fe399c1839f778bad9f5":[5,0,4,146],
-"boot_8php.html#ae94f7c7c0909629a75aed1c41f10bc95":[5,0,4,176],
-"boot_8php.html#aea392cb26ed617f3a8cde648385b5df0":[5,0,4,255],
-"boot_8php.html#aea7fc57a4d8e9dcb42f2601b0b9b761c":[5,0,4,25],
-"boot_8php.html#aead84fa27d7516b855220fe004964a45":[5,0,4,248],
-"boot_8php.html#aeb1039302affcbe7e8872c01c08c88f8":[5,0,4,46],
-"boot_8php.html#aec36f8fcd4cb14a52934590b3d6666b4":[5,0,4,210],
-"boot_8php.html#aecaa1b6945b317ba8f1daf4af2aed8e6":[5,0,4,239],
-"boot_8php.html#aed0dfb35f7dd00dc9e4f868ea7f7ff53":[5,0,4,152],
-"boot_8php.html#aedfb9501ed408278667995524e0d15cf":[5,0,4,95],
-"boot_8php.html#aee324eca9de4e0fedf01ab5f92e27c67":[5,0,4,163],
-"boot_8php.html#aef4b6c558c68c88c10f13c5a00c20e3d":[5,0,4,177],
-"boot_8php.html#aefba06f1c0842036329033e7567ecf6d":[5,0,4,129],
-"boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4":[5,0,4,28],
-"boot_8php.html#af33d1b2e98a1e21af672005525d46dfe":[5,0,4,240],
-"boot_8php.html#af3905ea8f8568d0236db13fca40514e3":[5,0,4,170],
-"boot_8php.html#af3a4271630aabd8be592213f925d6a36":[5,0,4,54],
-"boot_8php.html#af3bdfc20979c16f15bb9c60446a480f9":[5,0,4,47],
-"boot_8php.html#af489d0c3166551b93e63a79ff2c9be35":[5,0,4,134],
-"boot_8php.html#af6937db5f581d006bf4a5c3d9c7e0461":[5,0,4,190],
-"boot_8php.html#af6f6f6f40139f12fc09ec47373b30919":[5,0,4,84],
-"boot_8php.html#af86c651547aa8f9e549ee40a09455549":[5,0,4,237],
-"boot_8php.html#af8c0cb0744c9a6b5d6d3baafb1f1e71d":[5,0,4,182],
-"boot_8php.html#afaf93b7026f784b113b4f8921745891e":[5,0,4,164],
-"boot_8php.html#afb97615e985a013799839b68b99018d7":[5,0,4,241],
-"boot_8php.html#afbb1fe1b2c8c730ec8e08da93b6512c4":[5,0,4,43],
-"boot_8php.html#afe084c30a1810c10442edb4fbcbc0086":[5,0,4,76],
-"boot_8php.html#afe63ae69ba55299f813766e54df06ede":[5,0,4,138],
+"boot_8php.html#ae37444eaa42705185080ccf3e670cbc2":[5,0,4,252],
+"boot_8php.html#ae3cef7b63e25e7bafea3fcf6b99fad0e":[5,0,4,173],
+"boot_8php.html#ae4861de36017fe399c1839f778bad9f5":[5,0,4,149],
+"boot_8php.html#ae94f7c7c0909629a75aed1c41f10bc95":[5,0,4,181],
+"boot_8php.html#aea392cb26ed617f3a8cde648385b5df0":[5,0,4,264],
+"boot_8php.html#aea7fc57a4d8e9dcb42f2601b0b9b761c":[5,0,4,26],
+"boot_8php.html#aead84fa27d7516b855220fe004964a45":[5,0,4,257],
+"boot_8php.html#aeb1039302affcbe7e8872c01c08c88f8":[5,0,4,47],
+"boot_8php.html#aec36f8fcd4cb14a52934590b3d6666b4":[5,0,4,218],
+"boot_8php.html#aecaa1b6945b317ba8f1daf4af2aed8e6":[5,0,4,247],
+"boot_8php.html#aed0dfb35f7dd00dc9e4f868ea7f7ff53":[5,0,4,156],
+"boot_8php.html#aedfb9501ed408278667995524e0d15cf":[5,0,4,97],
+"boot_8php.html#aee324eca9de4e0fedf01ab5f92e27c67":[5,0,4,168],
+"boot_8php.html#aef4b6c558c68c88c10f13c5a00c20e3d":[5,0,4,182],
+"boot_8php.html#aefba06f1c0842036329033e7567ecf6d":[5,0,4,132],
+"boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4":[5,0,4,29],
+"boot_8php.html#af33d1b2e98a1e21af672005525d46dfe":[5,0,4,249],
+"boot_8php.html#af3905ea8f8568d0236db13fca40514e3":[5,0,4,175],
+"boot_8php.html#af3a4271630aabd8be592213f925d6a36":[5,0,4,56],
+"boot_8php.html#af3bdfc20979c16f15bb9c60446a480f9":[5,0,4,48],
+"boot_8php.html#af489d0c3166551b93e63a79ff2c9be35":[5,0,4,137],
+"boot_8php.html#af6937db5f581d006bf4a5c3d9c7e0461":[5,0,4,195],
+"boot_8php.html#af6f6f6f40139f12fc09ec47373b30919":[5,0,4,86],
+"boot_8php.html#af86c651547aa8f9e549ee40a09455549":[5,0,4,245],
+"boot_8php.html#af8c0cb0744c9a6b5d6d3baafb1f1e71d":[5,0,4,187],
+"boot_8php.html#afaf93b7026f784b113b4f8921745891e":[5,0,4,169],
+"boot_8php.html#afb97615e985a013799839b68b99018d7":[5,0,4,250],
+"boot_8php.html#afbb1fe1b2c8c730ec8e08da93b6512c4":[5,0,4,44],
+"boot_8php.html#afe084c30a1810c10442edb4fbcbc0086":[5,0,4,78],
+"boot_8php.html#afe63ae69ba55299f813766e54df06ede":[5,0,4,141],
"boot_8php.html#afe88b920aa285982edb817a0dd44eb37":[5,0,4,14],
-"boot_8php.html#aff210e8403dd72368522b17fb6e5d4e7":[5,0,4,204],
-"cache_8php.html":[5,0,0,11],
-"channel_8php.html":[5,0,1,9],
-"channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1":[5,0,1,9,1],
-"channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc":[5,0,1,9,2],
-"channel_8php.html#aea8e189f2fbabfda779349dd94082e8e":[5,0,1,9,0],
-"chanview_8php.html":[5,0,1,10],
-"chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b":[5,0,1,10,0],
+"boot_8php.html#afef254290febac854c85fc698d9483a6":[5,0,4,273],
+"boot_8php.html#aff210e8403dd72368522b17fb6e5d4e7":[5,0,4,212],
+"cache_8php.html":[5,0,0,12],
+"channel_8php.html":[5,0,1,10],
+"channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1":[5,0,1,10,0],
+"channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc":[5,0,1,10,1],
+"chanview_8php.html":[5,0,1,11],
+"chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b":[5,0,1,11,0],
+"chatsvc_8php.html":[5,0,1,13],
+"chatsvc_8php.html#a28d248b056fa47452e28ed01130e9116":[5,0,1,13,1],
+"chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9":[5,0,1,13,0],
+"chatsvc_8php.html#a7c9a9b9c24a2b02eed8efd6b09632d03":[5,0,1,13,2],
"classApp.html":[4,0,5],
"classApp.html#a037049cba88dfc6ff94f4b5b779e3fd3":[4,0,5,56],
"classApp.html#a050b0696118da47e8b30859ad1a2c149":[4,0,5,40],
"classApp.html#a084e03c77686d8c13390fef3f7428a2b":[4,0,5,5],
"classApp.html#a08bc87aff64f39fbc084e9d6545cee4d":[4,0,5,2],
-"classApp.html#a08c24d6a6fc52fcc784b0f765f13b820":[4,0,5,73],
+"classApp.html#a08c24d6a6fc52fcc784b0f765f13b820":[4,0,5,75],
"classApp.html#a08f0537964d98958d218066364cff785":[4,0,5,1],
"classApp.html#a0ce85be198e46570366cb3344f3c55b8":[4,0,5,50],
-"classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d":[4,0,5,59],
+"classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d":[4,0,5,60],
"classApp.html#a123b903dfe5d3488cc68db3471d36fd2":[4,0,5,30],
-"classApp.html#a13710907ef62554a0b4dd8a5eaa2eb11":[4,0,5,77],
+"classApp.html#a13710907ef62554a0b4dd8a5eaa2eb11":[4,0,5,79],
"classApp.html#a14bd4b1c29f3aff371fe5d4cb11aeea3":[4,0,5,32],
-"classApp.html#a1a297e70b3667b83f4460aa7ed9f5d6f":[4,0,5,60],
+"classApp.html#a1936f2afce0dc0d1bbed15ae1f2ee81a":[4,0,5,73],
+"classApp.html#a1a297e70b3667b83f4460aa7ed9f5d6f":[4,0,5,61],
"classApp.html#a1ad3bb1b68439b3b7cbe630918e618d2":[4,0,5,8],
"classApp.html#a20d1890cc16b22ba79eeb0cbf2f719f7":[4,0,5,29],
"classApp.html#a230e975296cf164da2fee35ef720964f":[4,0,5,33],
-"classApp.html#a244b2d53b21be269aad2269d23192f95":[4,0,5,75],
+"classApp.html#a244b2d53b21be269aad2269d23192f95":[4,0,5,77],
"classApp.html#a256360c9184fed6d7556e0bc0a835d7f":[4,0,5,48],
-"classApp.html#a2e82da4aecfc2017a8d1d332ca501f9f":[4,0,5,74],
+"classApp.html#a2e82da4aecfc2017a8d1d332ca501f9f":[4,0,5,76],
"classApp.html#a2eb832a8577dee7d40b93abdf6d1d35a":[4,0,5,12],
"classApp.html#a330410a288f3393d53772f5e98f857ea":[4,0,5,51],
-"classApp.html#a33a8e90b60ec4438f6fbf299d0f6839c":[4,0,5,65],
+"classApp.html#a33a8e90b60ec4438f6fbf299d0f6839c":[4,0,5,66],
"classApp.html#a344d2b7dc2f276648d521aee4da1731c":[4,0,5,23],
"classApp.html#a3694aa1907aa103a2adbc71f926f0fa0":[4,0,5,55],
"classApp.html#a3d84af5e42082098672531cd1a618853":[4,0,5,22],
"classApp.html#a4659785d13e4bac0bed50dbb1b0d4299":[4,0,5,6],
"classApp.html#a4776d9322edea17fae56afa5d01a323e":[4,0,5,24],
-"classApp.html#a4833bee2eae4ad1691a04fa19e11a766":[4,0,5,88],
-"classApp.html#a487332f8de40414ca1a54a4265570b70":[4,0,5,83],
+"classApp.html#a4833bee2eae4ad1691a04fa19e11a766":[4,0,5,90],
+"classApp.html#a487332f8de40414ca1a54a4265570b70":[4,0,5,85],
"classApp.html#a495ec082c2719314e536070ca1ce073d":[4,0,5,42],
-"classApp.html#a4b67935096f66d1f14b657399a8461ac":[4,0,5,67],
+"classApp.html#a4b67935096f66d1f14b657399a8461ac":[4,0,5,68],
"classApp.html#a4bdd7bfed62f50515fce652127bf481b":[4,0,5,25],
-"classApp.html#a4c7cfc62d39508086cf300dc2e39c4df":[4,0,5,58],
-"classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f":[4,0,5,66],
+"classApp.html#a4c7cfc62d39508086cf300dc2e39c4df":[4,0,5,59],
+"classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f":[4,0,5,67],
"classApp.html#a5293a8543ba338dcf38cd4ff3bc5d4be":[4,0,5,9],
"classApp.html#a557d7b779d8259027f4724ebf7b248dc":[4,0,5,28],
"classApp.html#a560189f048d3db2f526841963cc43e97":[4,0,5,26],
-"classApp.html#a56b1a432c96aef8b1971f779c9d93c8c":[4,0,5,86],
-"classApp.html#a57d041fcc003d08c127dfa99a02bc192":[4,0,5,72],
-"classApp.html#a58ac598544892ff7c32890291b72635e":[4,0,5,61],
-"classApp.html#a59dd4b665c70e7dbd80682c014ff7145":[4,0,5,62],
+"classApp.html#a56b1a432c96aef8b1971f779c9d93c8c":[4,0,5,88],
+"classApp.html#a576ecb1c5b4a283221e6f2f0ec248251":[4,0,5,58],
+"classApp.html#a57d041fcc003d08c127dfa99a02bc192":[4,0,5,74],
+"classApp.html#a58ac598544892ff7c32890291b72635e":[4,0,5,62],
+"classApp.html#a59dd4b665c70e7dbd80682c014ff7145":[4,0,5,63],
"classApp.html#a5c63eabdc7fdd8b6e3348980ec16a3ad":[4,0,5,3],
"classApp.html#a5cfc098c061b7d765add58fd2ca97445":[4,0,5,39],
-"classApp.html#a5f64620473a9727a48ebe9cf6f335a98":[4,0,5,78],
+"classApp.html#a5f64620473a9727a48ebe9cf6f335a98":[4,0,5,80],
"classApp.html#a604d659d6977a99de42a160343e5289a":[4,0,5,4],
"classApp.html#a61ca6e3af82071ea25ff2fd5dbcddae2":[4,0,5,45],
"classApp.html#a622eace13f8fc9f4b5672a68e2bc4396":[4,0,5,7],
-"classApp.html#a6844aedad10e201b8c3d80cfc9e876d3":[4,0,5,79],
-"classApp.html#a6859a4848a5c0049b4134cc4b34228b6":[4,0,5,80],
-"classApp.html#a6bcb19cdc4907077da72864686d5a780":[4,0,5,68],
-"classApp.html#a6e4f0fbfa3cf6c11baebe22a03db6165":[4,0,5,64],
+"classApp.html#a6844aedad10e201b8c3d80cfc9e876d3":[4,0,5,81],
+"classApp.html#a6859a4848a5c0049b4134cc4b34228b6":[4,0,5,82],
+"classApp.html#a6bcb19cdc4907077da72864686d5a780":[4,0,5,69],
+"classApp.html#a6e4f0fbfa3cf6c11baebe22a03db6165":[4,0,5,65],
"classApp.html#a6f55d087e1ff4710132c1b0863faa2ee":[4,0,5,47],
-"classApp.html#a764cc6cd7578132c21d2b4545de9301c":[4,0,5,81],
+"classApp.html#a764cc6cd7578132c21d2b4545de9301c":[4,0,5,83],
"classApp.html#a78788f6e9d8b713b138f81e457c5cd08":[4,0,5,20],
"classApp.html#a7954862f44f606b0ff83d4c74d15e792":[4,0,5,57],
"classApp.html#a871898becd0697d778f36d9336253ae8":[4,0,5,14],
"classApp.html#a8863703a0305eaa45eb970dbd2046291":[4,0,5,16],
"classApp.html#a89e9feb2bfb5253883a9720beaffe876":[4,0,5,21],
-"classApp.html#a91fd3c8b89016113b05f3be24805ccff":[4,0,5,85],
+"classApp.html#a91fd3c8b89016113b05f3be24805ccff":[4,0,5,87],
"classApp.html#a94a1ed2dc493c58612d17035b74ae736":[4,0,5,31],
"classApp.html#a98ef4cfd36693a3457c879b76bc6d694":[4,0,5,44],
-"classApp.html#a9bf62f8e39585c0aa48fcffc3bf3484d":[4,0,5,63],
-"classApp.html#aa5a87c46ab3fee21362c466bf78042ef":[4,0,5,89],
+"classApp.html#a9bf62f8e39585c0aa48fcffc3bf3484d":[4,0,5,64],
+"classApp.html#aa5a87c46ab3fee21362c466bf78042ef":[4,0,5,91],
"classApp.html#aab23c59172310fd30f2d60dc039d3eea":[4,0,5,13],
"classApp.html#aab4a685d15a363bb1d7edbbc20bfb94e":[4,0,5,38],
-"classApp.html#ab35b01a366a2ea95725e97af278f87ab":[4,0,5,84],
+"classApp.html#ab35b01a366a2ea95725e97af278f87ab":[4,0,5,86],
"classApp.html#ab3da757abe5cb45bf88f07cc51a73b58":[4,0,5,35],
-"classApp.html#ab47de68fa39806d1fb0976407e188b77":[4,0,5,70],
+"classApp.html#ab47de68fa39806d1fb0976407e188b77":[4,0,5,71],
"classApp.html#abe0e4fa91097f7a6588e1213a834121c":[4,0,5,37],
"classApp.html#abea5a4f77dcd53c928dc4eed86616637":[4,0,5,19],
"classApp.html#abf46a653d8499e7c253cc1be894a6d83":[4,0,5,17],
@@ -202,18 +226,18 @@ var NAVTREEINDEX1 =
"classApp.html#ac1d80a14492acc932715d54567d8a589":[4,0,5,46],
"classApp.html#ac6e6b1c7d6df408580ff79977fcfa656":[4,0,5,54],
"classApp.html#ac73dc90e4764497e2f1b7e6612c8fb88":[4,0,5,43],
-"classApp.html#acad5896b7a79ae31433ad8f89606c728":[4,0,5,69],
+"classApp.html#acad5896b7a79ae31433ad8f89606c728":[4,0,5,70],
"classApp.html#acb27e607fe4c82603444676e25c36b70":[4,0,5,11],
-"classApp.html#ad082d63acc078e5bf23825a03bdd6a76":[4,0,5,76],
+"classApp.html#ad082d63acc078e5bf23825a03bdd6a76":[4,0,5,78],
"classApp.html#ad1c8eb91a6fd470b94f34b7fdad3a2d0":[4,0,5,41],
"classApp.html#ad5175536561021548ae8188e24c7b80c":[4,0,5,36],
"classApp.html#adb060d5c7f35a521ec7ec0effbe08097":[4,0,5,27],
"classApp.html#adb5a4bb657881e553978ff390babd01f":[4,0,5,10],
-"classApp.html#adf2aaf95b062736a6fd5fc70fadf80e8":[4,0,5,87],
+"classApp.html#adf2aaf95b062736a6fd5fc70fadf80e8":[4,0,5,89],
"classApp.html#ae3f47830543d0d902f66913def8db66b":[4,0,5,53],
-"classApp.html#ae9f96338f32187d308b67b980eea0008":[4,0,5,71],
+"classApp.html#ae9f96338f32187d308b67b980eea0008":[4,0,5,72],
"classApp.html#aeb1fe1c8ad9aa639909bd183ce578536":[4,0,5,18],
-"classApp.html#aeca29fd4f7192ca07369b3c598c36e67":[4,0,5,82],
+"classApp.html#aeca29fd4f7192ca07369b3c598c36e67":[4,0,5,84],
"classApp.html#af17df107f2216ddf5ad2a7e0f2ba2166":[4,0,5,15],
"classApp.html#af5007c42a693afd9c4899c243b2e1363":[4,0,5,49],
"classApp.html#af58db526040829b1c8bd95561b329262":[4,0,5,34],
@@ -225,29 +249,5 @@ var NAVTREEINDEX1 =
"classConversation.html#a2a96b7a6573ae53db861624659e831cb":[4,0,8,6],
"classConversation.html#a2f12724ef0244e9049fe1bb9641b516d":[4,0,8,19],
"classConversation.html#a41f4a549e6a99f98935c4742addd22c8":[4,0,8,20],
-"classConversation.html#a4aab60bb39fa6761b6cacdc8d9da2901":[4,0,8,2],
-"classConversation.html#a4cff75d8c46b517e7133e4d0da6fc1c8":[4,0,8,7],
-"classConversation.html#a5879199008b96bee7550b576d614e1c1":[4,0,8,10],
-"classConversation.html#a5b6adbb2fe24f0f53d6c22660dff91b2":[4,0,8,17],
-"classConversation.html#a5effe8ad3007e01333df44b81432b813":[4,0,8,5],
-"classConversation.html#a66f121ca4026246f86a732e5faa0682c":[4,0,8,11],
-"classConversation.html#a8335cdd43f1836e3c255638e61a09e16":[4,0,8,1],
-"classConversation.html#a8748445aa26047ebed5141f3c3cbc244":[4,0,8,16],
-"classConversation.html#a87a0d704d5f2b1a008cc2e9ce06a1bcd":[4,0,8,3],
-"classConversation.html#a8898bddc1e8990e81dab9a13a532cc93":[4,0,8,12],
-"classConversation.html#a8b47c92b69459d461ea3cc9aae9597a3":[4,0,8,8],
-"classConversation.html#aa95c1a62af38bdfba7add9549bec083b":[4,0,8,13],
-"classConversation.html#adf25ce023b69a166c63c6e84e02c136a":[4,0,8,9],
-"classConversation.html#ae3d4190142e12b57051f11f2911f77a0":[4,0,8,4],
-"classConversation.html#ae81221251307e315f566a11f921ce0a9":[4,0,8,21],
-"classConversation.html#ae9937f9e0f3d927acc2bed46cc72e9ae":[4,0,8,18],
-"classConversation.html#af84ea6ccd72214c9bb4c504461cc8b09":[4,0,8,0],
-"classConversation.html#afb03d1648dbfafe62caa1e30f32f2b1a":[4,0,8,15],
-"classConversation.html#afd4965d22a6e4bfea2f35e931b3273c6":[4,0,8,14],
-"classFKOAuth1.html":[4,0,13],
-"classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f":[4,0,13,1],
-"classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6":[4,0,13,0],
-"classFKOAuthDataStore.html":[4,0,14],
-"classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1":[4,0,14,1],
-"classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050":[4,0,14,5]
+"classConversation.html#a4aab60bb39fa6761b6cacdc8d9da2901":[4,0,8,2]
};
diff --git a/doc/html/navtreeindex2.js b/doc/html/navtreeindex2.js
index 9fc916d75..99e602486 100644
--- a/doc/html/navtreeindex2.js
+++ b/doc/html/navtreeindex2.js
@@ -1,5 +1,29 @@
var NAVTREEINDEX2 =
{
+"classConversation.html#a4cff75d8c46b517e7133e4d0da6fc1c8":[4,0,8,7],
+"classConversation.html#a5879199008b96bee7550b576d614e1c1":[4,0,8,10],
+"classConversation.html#a5b6adbb2fe24f0f53d6c22660dff91b2":[4,0,8,17],
+"classConversation.html#a5effe8ad3007e01333df44b81432b813":[4,0,8,5],
+"classConversation.html#a66f121ca4026246f86a732e5faa0682c":[4,0,8,11],
+"classConversation.html#a8335cdd43f1836e3c255638e61a09e16":[4,0,8,1],
+"classConversation.html#a8748445aa26047ebed5141f3c3cbc244":[4,0,8,16],
+"classConversation.html#a87a0d704d5f2b1a008cc2e9ce06a1bcd":[4,0,8,3],
+"classConversation.html#a8898bddc1e8990e81dab9a13a532cc93":[4,0,8,12],
+"classConversation.html#a8b47c92b69459d461ea3cc9aae9597a3":[4,0,8,8],
+"classConversation.html#aa95c1a62af38bdfba7add9549bec083b":[4,0,8,13],
+"classConversation.html#adf25ce023b69a166c63c6e84e02c136a":[4,0,8,9],
+"classConversation.html#ae3d4190142e12b57051f11f2911f77a0":[4,0,8,4],
+"classConversation.html#ae81221251307e315f566a11f921ce0a9":[4,0,8,21],
+"classConversation.html#ae9937f9e0f3d927acc2bed46cc72e9ae":[4,0,8,18],
+"classConversation.html#af84ea6ccd72214c9bb4c504461cc8b09":[4,0,8,0],
+"classConversation.html#afb03d1648dbfafe62caa1e30f32f2b1a":[4,0,8,15],
+"classConversation.html#afd4965d22a6e4bfea2f35e931b3273c6":[4,0,8,14],
+"classFKOAuth1.html":[4,0,13],
+"classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f":[4,0,13,1],
+"classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6":[4,0,13,0],
+"classFKOAuthDataStore.html":[4,0,14],
+"classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1":[4,0,14,1],
+"classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050":[4,0,14,5],
"classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934":[4,0,14,4],
"classFKOAuthDataStore.html#a4edfe2e77ecd2e16ff6b5eb516ed3599":[4,0,14,2],
"classFKOAuthDataStore.html#a96f76387c3a93b0abe27a98013804bab":[4,0,14,3],
@@ -14,35 +38,35 @@ var NAVTREEINDEX2 =
"classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6":[4,0,16,0],
"classFriendicaSmartyEngine.html#ad62f1181d2f02b54b46731ad2bd46db2":[4,0,16,3],
"classItem.html":[4,0,17],
-"classItem.html#a007424e3e3171dcfb4312a02161da6cd":[4,0,17,33],
-"classItem.html#a078f95b4134ce3a1df344cf8d386f986":[4,0,17,36],
+"classItem.html#a007424e3e3171dcfb4312a02161da6cd":[4,0,17,34],
+"classItem.html#a078f95b4134ce3a1df344cf8d386f986":[4,0,17,37],
"classItem.html#a0c301aaed2b7d682728d18db3a22afa3":[4,0,17,8],
-"classItem.html#a1a1e42877e6ac7af50286142ceb483d2":[4,0,17,38],
-"classItem.html#a1cb6aa8abdf7ea7daca647e40c8ea3a2":[4,0,17,41],
+"classItem.html#a1a1e42877e6ac7af50286142ceb483d2":[4,0,17,39],
+"classItem.html#a1cb6aa8abdf7ea7daca647e40c8ea3a2":[4,0,17,42],
"classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2":[4,0,17,0],
"classItem.html#a2ce70ef63f9f4d86a09c351678806925":[4,0,17,24],
"classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf":[4,0,17,6],
"classItem.html#a428f448f89a8629055ea3294eb942aea":[4,0,17,16],
-"classItem.html#a4a123ae98987c1e30ecb15c4edf5a3b8":[4,0,17,43],
+"classItem.html#a4a123ae98987c1e30ecb15c4edf5a3b8":[4,0,17,44],
"classItem.html#a4b92e3a9d6212c553aa2661489bd95d8":[4,0,17,15],
"classItem.html#a5b2fafdca55aefeaa08993a5a60529f0":[4,0,17,20],
-"classItem.html#a5b561415861f5b89b0733aacfe0428d1":[4,0,17,39],
-"classItem.html#a5cfa6cf964f433a917a81cab079ff9d8":[4,0,17,42],
-"classItem.html#a5d29ddecc073151a65a8e2ea2f6e4189":[4,0,17,44],
+"classItem.html#a5b561415861f5b89b0733aacfe0428d1":[4,0,17,40],
+"classItem.html#a5cfa6cf964f433a917a81cab079ff9d8":[4,0,17,43],
+"classItem.html#a5d29ddecc073151a65a8e2ea2f6e4189":[4,0,17,45],
"classItem.html#a632185dd25c5caf277067c76230a4320":[4,0,17,4],
"classItem.html#a67892aa23d19f4431bb2e5f43c74000e":[4,0,17,12],
-"classItem.html#a7f7bc059de377319282cb4ef4a828480":[4,0,17,40],
-"classItem.html#a80dcd0fb7673776c0967839d429c2a0f":[4,0,17,30],
+"classItem.html#a7f7bc059de377319282cb4ef4a828480":[4,0,17,41],
+"classItem.html#a80dcd0fb7673776c0967839d429c2a0f":[4,0,17,31],
"classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51":[4,0,17,1],
"classItem.html#a904421c7a427411bb2ab473bca872f63":[4,0,17,7],
-"classItem.html#a90743c8348b13213275c223bb9333aa0":[4,0,17,31],
-"classItem.html#a9594df6014b0b6f45364ea7a34510130":[4,0,17,35],
+"classItem.html#a90743c8348b13213275c223bb9333aa0":[4,0,17,32],
+"classItem.html#a9594df6014b0b6f45364ea7a34510130":[4,0,17,36],
"classItem.html#a97c7feeea7f26a73176cb19faa455e12":[4,0,17,22],
"classItem.html#a9890ff72662d5bba301d1f2dd8aec9d7":[4,0,17,28],
"classItem.html#a9f2d219da712390f59012fc32a342074":[4,0,17,14],
"classItem.html#aa0ee775ec94abccec6c798428835d001":[4,0,17,5],
"classItem.html#aa1bd19fc8b5577078530265a7bf64123":[4,0,17,26],
-"classItem.html#aa2c221231ad0fc3720ccc1f00f0c6304":[4,0,17,32],
+"classItem.html#aa2c221231ad0fc3720ccc1f00f0c6304":[4,0,17,33],
"classItem.html#aa452b5bcd8dea12119b09212c615cb41":[4,0,17,25],
"classItem.html#aa49e40f961dff66da32c5ae110e32993":[4,0,17,21],
"classItem.html#aa541bc4290e51bfd688d6921bebabc73":[4,0,17,13],
@@ -54,11 +78,12 @@ var NAVTREEINDEX2 =
"classItem.html#ac0f27e58532612f6e7a54c8a621b9b92":[4,0,17,11],
"classItem.html#ac6f1c96cc82a0dfb7e881fc70309ea3c":[4,0,17,10],
"classItem.html#aca1e66988ed00cd627b2a359b72cd0ae":[4,0,17,3],
-"classItem.html#acc32426c0f465391be8a99ad810c7b8e":[4,0,17,29],
+"classItem.html#acc32426c0f465391be8a99ad810c7b8e":[4,0,17,30],
"classItem.html#ad3638f93065693c1f69eb349feb1b7aa":[4,0,17,9],
"classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8":[4,0,17,18],
-"classItem.html#aec24e233f9098f902b1e57e60dcb2019":[4,0,17,34],
-"classItem.html#afa54851df82962c7c42dea3cc9f5c92c":[4,0,17,37],
+"classItem.html#aec24e233f9098f902b1e57e60dcb2019":[4,0,17,35],
+"classItem.html#af1b73df9b7c4b927e26b7e243b491f42":[4,0,17,29],
+"classItem.html#afa54851df82962c7c42dea3cc9f5c92c":[4,0,17,38],
"classProtoDriver.html":[4,0,22],
"classProtoDriver.html#a1593f3abae050edbd9304f4f8bc4894a":[4,0,22,0],
"classProtoDriver.html#a2ba1758f0f9e3564580b6ff85292804d":[4,0,22,2],
@@ -68,33 +93,57 @@ var NAVTREEINDEX2 =
"classProtoDriver.html#ae5b44739f84c10d00a9b65adf3785181":[4,0,22,5],
"classProtoDriver.html#af66171aa7dab9b62cee915cb4f1abe1b":[4,0,22,3],
"classRedBasicAuth.html":[4,0,23],
-"classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b":[4,0,23,0],
-"classRedDirectory.html":[4,0,24],
-"classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0":[4,0,24,3],
-"classRedDirectory.html#a5e3fc08b2bf9f61cea4d2ccae0495bec":[4,0,24,1],
-"classRedDirectory.html#a8d5df814b2f825dd14c628a51b5829b5":[4,0,24,8],
-"classRedDirectory.html#a9616af16cd19a18a6afebebcc2881c44":[4,0,24,6],
-"classRedDirectory.html#a986936910f0216887a25e28916c166c7":[4,0,24,2],
-"classRedDirectory.html#aa42d3065f6f065b17db87146a7cb031a":[4,0,24,5],
-"classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569":[4,0,24,4],
-"classRedDirectory.html#acb32b8df27538c57772824a745e751d7":[4,0,24,9],
-"classRedDirectory.html#add0bf2c049230fec4913e769d126e6e6":[4,0,24,0],
-"classRedDirectory.html#ae624dcaa4d73a517f4b1616d33df690d":[4,0,24,7],
-"classRedFile.html":[4,0,25],
-"classRedFile.html#a26416827eb68554d033d1e2e5cc6dd3b":[4,0,25,2],
-"classRedFile.html#a2ff12032b45538353eded9809d3b7550":[4,0,25,6],
-"classRedFile.html#a41a49a583eb276b75626fcf97f4a699c":[4,0,25,5],
-"classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535":[4,0,25,1],
-"classRedFile.html#acb1edbe1848fab05347746fa1ea09d8f":[4,0,25,4],
-"classRedFile.html#ad4588b90004a2741b1a4ced10355904c":[4,0,25,0],
-"classRedFile.html#ae96d5caa2db7a461c57b24380fa87e28":[4,0,25,3],
-"classRedInode.html":[4,0,26],
-"classRedInode.html#a21a6f92921c037c868e6fae30c7c51bb":[4,0,26,0],
-"classRedInode.html#a3d76322f25d847b123b3df37a26dd04e":[4,0,26,4],
-"classRedInode.html#a5e8f09bc887725c3c448f8d72fe3edfc":[4,0,26,1],
-"classRedInode.html#a7b317eb1230930154107ed51e54193f5":[4,0,26,5],
-"classRedInode.html#a8503d4f247186e9e55bc42b37e067fb6":[4,0,26,2],
-"classRedInode.html#aec5706105400764124db39d4bc68d458":[4,0,26,3],
+"classRedBasicAuth.html#a072e8244a9a7f191b32d3db5ac94f857":[4,0,23,2],
+"classRedBasicAuth.html#a09c1488a0b290f5a54dc15180c5690d7":[4,0,23,9],
+"classRedBasicAuth.html#a2cc8b1eac9c5a799bfb53ea7f287f3f0":[4,0,23,0],
+"classRedBasicAuth.html#a2d0246ed446fd5e55c17938b4ce6ac47":[4,0,23,11],
+"classRedBasicAuth.html#a2dab393650d1573e3515969a153e8354":[4,0,23,6],
+"classRedBasicAuth.html#a358ddad4abb5aa8c1382cf49a907adbc":[4,0,23,1],
+"classRedBasicAuth.html#a438ab125b6ef46581947e35d49cdebac":[4,0,23,7],
+"classRedBasicAuth.html#a8d09b8d784cc810a0b3be580d05106a7":[4,0,23,10],
+"classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b":[4,0,23,3],
+"classRedBasicAuth.html#aa75dc43b59adc98e38a98517d3fd35d1":[4,0,23,8],
+"classRedBasicAuth.html#ad5a3ea4dc4783b242d9dc6e76478b6ef":[4,0,23,5],
+"classRedBasicAuth.html#af14337f1baad407f8a85d48205c0f30e":[4,0,23,4],
+"classRedBrowser.html":[4,0,24],
+"classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e":[4,0,24,1],
+"classRedBrowser.html#a40fdbb9d9fe6c1243bbf135dd5b0a06f":[4,0,24,4],
+"classRedBrowser.html#a4b76be9ccef0262cf78fffb4129eda93":[4,0,24,0],
+"classRedBrowser.html#a7f6bf0bda07833f4c647557bd172e349":[4,0,24,3],
+"classRedBrowser.html#a87529b4988a7777b49616f5c0a1c55d3":[4,0,24,2],
+"classRedBrowser.html#ab6d6d1e2a67e06b344a4cede1bd00b35":[4,0,24,5],
+"classRedDirectory.html":[4,0,25],
+"classRedDirectory.html#a0f113244cd85c17848df991001d024f4":[4,0,25,12],
+"classRedDirectory.html#a11376aed1963b4471eb1592c13c63976":[4,0,25,10],
+"classRedDirectory.html#a1e35e3cd31d2a15250655e4cafdea180":[4,0,25,0],
+"classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0":[4,0,25,3],
+"classRedDirectory.html#a2f7a574f2115f099d6dd103d5b252375":[4,0,25,9],
+"classRedDirectory.html#a3c148c07ad909985125aa4926d8d0021":[4,0,25,14],
+"classRedDirectory.html#a5e3fc08b2bf9f61cea4d2ccae0495bec":[4,0,25,1],
+"classRedDirectory.html#a6c7e08199abc24e6eeb94a4037ef8bfc":[4,0,25,7],
+"classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4":[4,0,25,6],
+"classRedDirectory.html#a9616af16cd19a18a6afebebcc2881c44":[4,0,25,11],
+"classRedDirectory.html#a986936910f0216887a25e28916c166c7":[4,0,25,2],
+"classRedDirectory.html#aa10254abf177bb2a0e4a88495725e09b":[4,0,25,13],
+"classRedDirectory.html#aa42d3065f6f065b17db87146a7cb031a":[4,0,25,5],
+"classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569":[4,0,25,4],
+"classRedDirectory.html#acb32b8df27538c57772824a745e751d7":[4,0,25,15],
+"classRedDirectory.html#ad87c514a307ec97ba0f1372e9bcfa6a4":[4,0,25,16],
+"classRedDirectory.html#af6e4475dbd5abcdede00d20b8d388583":[4,0,25,8],
+"classRedFile.html":[4,0,26],
+"classRedFile.html#a0c961c5f49544d2502420361fa526437":[4,0,26,6],
+"classRedFile.html#a26416827eb68554d033d1e2e5cc6dd3b":[4,0,26,3],
+"classRedFile.html#a2ff12032b45538353eded9809d3b7550":[4,0,26,11],
+"classRedFile.html#a38a82bfc1b30028ea6ac75923e90fa25":[4,0,26,9],
+"classRedFile.html#a41562a28007789bbe7fe06d6a20eef47":[4,0,26,5],
+"classRedFile.html#a41a49a583eb276b75626fcf97f4a699c":[4,0,26,8],
+"classRedFile.html#a4b5d0e33f919c6c175b30a55de6263f2":[4,0,26,10],
+"classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535":[4,0,26,2],
+"classRedFile.html#a9a67bdb34c9db6ce144b3f371148b183":[4,0,26,0],
+"classRedFile.html#acb1edbe1848fab05347746fa1ea09d8f":[4,0,26,7],
+"classRedFile.html#acc48c05cd5a70951cb3c615ad84f03ba":[4,0,26,12],
+"classRedFile.html#ae96d5caa2db7a461c57b24380fa87e28":[4,0,26,4],
+"classRedFile.html#aef71c9eaac7052be7dc8602eb12171e7":[4,0,26,1],
"classTemplate.html":[4,0,27],
"classTemplate.html#a07737733f6949bdedea1e3d301b2ab7b":[4,0,27,13],
"classTemplate.html#a285b5b2007dbbf733476273df3fed4ef":[4,0,27,12],
@@ -200,54 +249,5 @@ var NAVTREEINDEX2 =
"classphoto__imagick.html#a2c9168f110ccd6c264095d766615dfa8":[4,0,21,7],
"classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4":[4,0,21,0],
"classphoto__imagick.html#a3047c68bb4de7f66c2893fe451db2b66":[4,0,21,2],
-"classphoto__imagick.html#a70adbef31128c0ac8cbc5dcf34cdb019":[4,0,21,6],
-"classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f":[4,0,21,8],
-"classphoto__imagick.html#ad07288e0eb3922cb08cc9d33a163decc":[4,0,21,5],
-"classphoto__imagick.html#aef020d929f66f4370e33fc158c8eebd4":[4,0,21,4],
-"classphoto__imagick.html#af92901d252c1e6ab5b54eebedbed23bb":[4,0,21,9],
-"classphoto__imagick.html#afd49d64751ee3a298eac0c0ce0ba0207":[4,0,21,1],
-"classphoto__imagick.html#aff6bcdbab18593a3fc5a480db8509393":[4,0,21,3],
-"cli__startup_8php.html":[5,0,0,13],
-"cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b":[5,0,0,13,0],
-"cli__suggest_8php.html":[5,0,0,14],
-"cli__suggest_8php.html#a8f3a60fc96f4bec7d3837c4efc7725f2":[5,0,0,14,0],
-"cloud_8php.html":[5,0,1,11],
-"cloud_8php.html#a080071b784fe01d04ed6c09d9f2785b8":[5,0,1,11,1],
-"comanche_8php.html":[5,0,0,15],
-"comanche_8php.html#a028f004d5b8c23d6367816d899e17cfe":[5,0,0,15,4],
-"comanche_8php.html#a1a208fdb40dd83d6298caec4290ee922":[5,0,0,15,2],
-"comanche_8php.html#a1fe339e1454803aa502ac89379c17f5b":[5,0,0,15,1],
-"comanche_8php.html#a5718daeda40bf835345fe061e8808cdf":[5,0,0,15,3],
-"comanche_8php.html#a5a7ab801717d38e91ac910b933973887":[5,0,0,15,0],
-"comanche_8php.html#a6b0191c1a63db1696a2eb139d90d9e7f":[5,0,0,15,6],
-"comanche_8php.html#ae9fe1ce574db3dd0931eada80234f82a":[5,0,0,15,5],
-"comanche_8php.html#af7150df735e5ff9d467994cd6f769c6e":[5,0,0,15,7],
-"common_8php.html":[5,0,1,12],
-"common_8php.html#a3b12ec67b3d3edcf595c8d195da5d14a":[5,0,1,12,0],
-"common_8php.html#ab63408f39abef7a6915186e8dabc5a96":[5,0,1,12,1],
-"common_8php.html#aca62f113655809f41f49042ce9b123c2":[5,0,1,12,2],
-"community_8php.html":[5,0,1,13],
-"community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a":[5,0,1,13,0],
-"community_8php.html#a56c94ec978a38633c5628fa6f8e386d9":[5,0,1,13,1],
-"connect_8php.html":[5,0,1,14],
-"connect_8php.html#a417ec27afe33f21a929667a665e32ee2":[5,0,1,14,2],
-"connect_8php.html#a489f0a66c660de6ec4d6917b27674f07":[5,0,1,14,0],
-"connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36":[5,0,1,14,1],
-"connections_8php.html":[5,0,1,15],
-"connections_8php.html#a1224058db8e3fb56463eb312f98e561d":[5,0,1,15,4],
-"connections_8php.html#a15af118efee9c948b6f8294e54a73bb2":[5,0,1,15,1],
-"connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558":[5,0,1,15,3],
-"connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c":[5,0,1,15,2],
-"connections_8php.html#af48f7ad20914760ba9874c090384e35a":[5,0,1,15,0],
-"contact__selectors_8php.html":[5,0,0,18],
-"contact__selectors_8php.html#a2c743d2eb526eb758d943a1490162d75":[5,0,0,18,1],
-"contact__selectors_8php.html#a9839e8fdaac7ffb37bf1420493f5c28f":[5,0,0,18,0],
-"contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be":[5,0,0,18,3],
-"contact__selectors_8php.html#ae499960d6467bd30c78607b1018baf53":[5,0,0,18,2],
-"contact__widgets_8php.html":[5,0,0,19],
-"contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353":[5,0,0,19,0],
-"contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b":[5,0,0,19,2],
-"contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65":[5,0,0,19,1],
-"contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6":[5,0,0,19,3],
-"contact__widgets_8php.html#af24e693532a045954caab515942cfc6f":[5,0,0,19,4]
+"classphoto__imagick.html#a70adbef31128c0ac8cbc5dcf34cdb019":[4,0,21,6]
};
diff --git a/doc/html/navtreeindex3.js b/doc/html/navtreeindex3.js
index d333cde66..9816afbf7 100644
--- a/doc/html/navtreeindex3.js
+++ b/doc/html/navtreeindex3.js
@@ -1,69 +1,116 @@
var NAVTREEINDEX3 =
{
-"contactgroup_8php.html":[5,0,1,16],
-"contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3":[5,0,1,16,0],
-"conversation_8php.html":[5,0,0,20],
-"conversation_8php.html#a0891aaa4492cba2b51eda12fe01957f3":[5,0,0,20,7],
-"conversation_8php.html#a0ee05f15255fb1cc3d89f30bc378a654":[5,0,0,20,9],
-"conversation_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273":[5,0,0,20,16],
-"conversation_8php.html#a2a7d541854bba755eb8ada59af7dcb1a":[5,0,0,20,22],
-"conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3":[5,0,0,20,6],
-"conversation_8php.html#a40b9b5e7825bc73932a32e667f05e6f2":[5,0,0,20,17],
-"conversation_8php.html#a4b0888b0f26e1c284a4341fe5fd04f0c":[5,0,0,20,15],
-"conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3":[5,0,0,20,23],
-"conversation_8php.html#a7f6ef0dfa554bacf620e84c18d386e67":[5,0,0,20,8],
-"conversation_8php.html#a96b34b9d64d13c543e8163e52f5ce8c4":[5,0,0,20,14],
-"conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c":[5,0,0,20,13],
-"conversation_8php.html#a9cc2a679606da9e535a06433f9f553a0":[5,0,0,20,21],
-"conversation_8php.html#a9f909b8885259b79c6ac8da93afd8f11":[5,0,0,20,19],
-"conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3":[5,0,0,20,10],
-"conversation_8php.html#ab2383dff4f823e580399ff469d90ab19":[5,0,0,20,4],
-"conversation_8php.html#abed85a41f1160598de880b84021c9cf7":[5,0,0,20,2],
-"conversation_8php.html#ac55e070f65f46fcc8e269f7896be4c7d":[5,0,0,20,20],
-"conversation_8php.html#ad3e1d4b15e7d6d026ee182edd58f692b":[5,0,0,20,0],
-"conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7":[5,0,0,20,1],
-"conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533":[5,0,0,20,11],
-"conversation_8php.html#ae59703b07ce2ddf627b4172ff26058b6":[5,0,0,20,5],
-"conversation_8php.html#ae996eb116d397a2c6396c312d7b98664":[5,0,0,20,18],
-"conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0":[5,0,0,20,12],
-"conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81":[5,0,0,20,3],
-"crepair_8php.html":[5,0,1,17],
-"crepair_8php.html#a29464c01838e209c8059cfcd2d195caa":[5,0,1,17,0],
-"crepair_8php.html#ab089978e50df156bbfabf9f8f5ccd198":[5,0,1,17,1],
-"crepair_8php.html#acc4493e1ffd1462a605dd9b870034513":[5,0,1,17,2],
-"cronhooks_8php.html":[5,0,0,22],
-"cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca":[5,0,0,22,0],
-"crypto_8php.html":[5,0,0,23],
-"crypto_8php.html#a0781202b0a43b82426929cc87c2fa2b5":[5,0,0,23,5],
-"crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286":[5,0,0,23,2],
-"crypto_8php.html#a32fc08d57a5694f94d8543ecbb03323c":[5,0,0,23,4],
-"crypto_8php.html#a5c61821d205f95f127114159cbffa764":[5,0,0,23,1],
-"crypto_8php.html#a920e5f222d0020f47556033d8b2b6552":[5,0,0,23,9],
-"crypto_8php.html#aae0ab70d6a199b29555b1ac3cf250d6a":[5,0,0,23,6],
-"crypto_8php.html#ab4f21d8f6b8ece0915e7c8bb73379f96":[5,0,0,23,10],
-"crypto_8php.html#ac852ee41392d1358c3a54d54935e0bf9":[5,0,0,23,0],
-"crypto_8php.html#ac95ac3b1b23b65b04a86613d4206ae85":[5,0,0,23,8],
-"crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914":[5,0,0,23,3],
-"crypto_8php.html#ad5e51fd44cff93cfaa07a37e24a5edec":[5,0,0,23,7],
-"dark_8php.html":[5,0,3,1,2,1,0],
-"darkness_8php.html":[5,0,3,1,0,1,0],
-"darknessleftaside_8php.html":[5,0,3,1,0,1,1],
-"darknessrightaside_8php.html":[5,0,3,1,0,1,2],
-"datetime_8php.html":[5,0,0,24],
-"datetime_8php.html#a03900dcf0f9e3c58793a031673a70326":[5,0,0,24,6],
-"datetime_8php.html#a36d3d6dff8d76b5f295bb3d9c535a5b1":[5,0,0,24,11],
-"datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8":[5,0,0,24,5],
-"datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa":[5,0,0,24,3],
-"datetime_8php.html#a633dadba426fa2f60b25fabdb19ebc1f":[5,0,0,24,10],
-"datetime_8php.html#a7df24d72ea05922d3127363e2295174c":[5,0,0,24,7],
-"datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82":[5,0,0,24,9],
-"datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865":[5,0,0,24,12],
-"datetime_8php.html#ab55e545b72ec8c097e052ea7d373491f":[5,0,0,24,13],
-"datetime_8php.html#aba971b67f17fecf050813f1eba72367f":[5,0,0,24,8],
-"datetime_8php.html#abc1652f96799cec6fce8797ba2ebc2df":[5,0,0,24,0],
-"datetime_8php.html#ac265b86f384ee094ed5479aae02aa5c8":[5,0,0,24,2],
-"datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226":[5,0,0,24,4],
-"datetime_8php.html#aea356409ba69f9de412298c998595dd2":[5,0,0,24,1],
+"classphoto__imagick.html#a9df5738a4a18e76dd304c440e96f045f":[4,0,21,8],
+"classphoto__imagick.html#ad07288e0eb3922cb08cc9d33a163decc":[4,0,21,5],
+"classphoto__imagick.html#aef020d929f66f4370e33fc158c8eebd4":[4,0,21,4],
+"classphoto__imagick.html#af92901d252c1e6ab5b54eebedbed23bb":[4,0,21,9],
+"classphoto__imagick.html#afd49d64751ee3a298eac0c0ce0ba0207":[4,0,21,1],
+"classphoto__imagick.html#aff6bcdbab18593a3fc5a480db8509393":[4,0,21,3],
+"cli__startup_8php.html":[5,0,0,15],
+"cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b":[5,0,0,15,0],
+"cli__suggest_8php.html":[5,0,0,16],
+"cli__suggest_8php.html#a8f3a60fc96f4bec7d3837c4efc7725f2":[5,0,0,16,0],
+"cloud_8php.html":[5,0,1,14],
+"cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d":[5,0,1,14,0],
+"comanche_8php.html":[5,0,0,17],
+"comanche_8php.html#a028f004d5b8c23d6367816d899e17cfe":[5,0,0,17,4],
+"comanche_8php.html#a1a208fdb40dd83d6298caec4290ee922":[5,0,0,17,2],
+"comanche_8php.html#a1fe339e1454803aa502ac89379c17f5b":[5,0,0,17,1],
+"comanche_8php.html#a5718daeda40bf835345fe061e8808cdf":[5,0,0,17,3],
+"comanche_8php.html#a5a7ab801717d38e91ac910b933973887":[5,0,0,17,0],
+"comanche_8php.html#a6b0191c1a63db1696a2eb139d90d9e7f":[5,0,0,17,6],
+"comanche_8php.html#ae9fe1ce574db3dd0931eada80234f82a":[5,0,0,17,5],
+"comanche_8php.html#af7150df735e5ff9d467994cd6f769c6e":[5,0,0,17,7],
+"common_8php.html":[5,0,1,15],
+"common_8php.html#ab63408f39abef7a6915186e8dabc5a96":[5,0,1,15,0],
+"common_8php.html#aca62f113655809f41f49042ce9b123c2":[5,0,1,15,1],
+"community_8php.html":[5,0,1,16],
+"community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a":[5,0,1,16,0],
+"community_8php.html#a56c94ec978a38633c5628fa6f8e386d9":[5,0,1,16,1],
+"connect_8php.html":[5,0,1,17],
+"connect_8php.html#a417ec27afe33f21a929667a665e32ee2":[5,0,1,17,2],
+"connect_8php.html#a489f0a66c660de6ec4d6917b27674f07":[5,0,1,17,0],
+"connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36":[5,0,1,17,1],
+"connections_8php.html":[5,0,1,18],
+"connections_8php.html#a1224058db8e3fb56463eb312f98e561d":[5,0,1,18,3],
+"connections_8php.html#a15af118efee9c948b6f8294e54a73bb2":[5,0,1,18,0],
+"connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558":[5,0,1,18,2],
+"connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c":[5,0,1,18,1],
+"connedit_8php.html":[5,0,1,19],
+"connedit_8php.html#a234c48426b652bf4d37053f2af329ac5":[5,0,1,19,3],
+"connedit_8php.html#a4da871e075597a09a8b374b9171dd92e":[5,0,1,19,2],
+"connedit_8php.html#a707ea7e63cf9674025b1d6b081ae74f5":[5,0,1,19,0],
+"connedit_8php.html#a795acb3d9d841f55c255d7611681ab67":[5,0,1,19,1],
+"contact__selectors_8php.html":[5,0,0,20],
+"contact__selectors_8php.html#a2c743d2eb526eb758d943a1490162d75":[5,0,0,20,1],
+"contact__selectors_8php.html#a9839e8fdaac7ffb37bf1420493f5c28f":[5,0,0,20,0],
+"contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be":[5,0,0,20,3],
+"contact__selectors_8php.html#ae499960d6467bd30c78607b1018baf53":[5,0,0,20,2],
+"contact__widgets_8php.html":[5,0,0,21],
+"contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353":[5,0,0,21,0],
+"contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b":[5,0,0,21,2],
+"contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65":[5,0,0,21,1],
+"contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6":[5,0,0,21,3],
+"contactgroup_8php.html":[5,0,1,20],
+"contactgroup_8php.html#a18c7391b1b25debaf98c9dba639caab3":[5,0,1,20,0],
+"conversation_8php.html":[5,0,0,22],
+"conversation_8php.html#a0891aaa4492cba2b51eda12fe01957f3":[5,0,0,22,7],
+"conversation_8php.html#a0ee05f15255fb1cc3d89f30bc378a654":[5,0,0,22,9],
+"conversation_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273":[5,0,0,22,16],
+"conversation_8php.html#a2a7d541854bba755eb8ada59af7dcb1a":[5,0,0,22,22],
+"conversation_8php.html#a3d8e30cc94f9a175054c021305d3aca3":[5,0,0,22,6],
+"conversation_8php.html#a40b9b5e7825bc73932a32e667f05e6f2":[5,0,0,22,17],
+"conversation_8php.html#a4b0888b0f26e1c284a4341fe5fd04f0c":[5,0,0,22,15],
+"conversation_8php.html#a7eeaaf44506815576f3bd80053ef52c3":[5,0,0,22,23],
+"conversation_8php.html#a7f6ef0dfa554bacf620e84c18d386e67":[5,0,0,22,8],
+"conversation_8php.html#a96b34b9d64d13c543e8163e52f5ce8c4":[5,0,0,22,14],
+"conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c":[5,0,0,22,13],
+"conversation_8php.html#a9cc2a679606da9e535a06433f9f553a0":[5,0,0,22,21],
+"conversation_8php.html#a9f909b8885259b79c6ac8da93afd8f11":[5,0,0,22,19],
+"conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3":[5,0,0,22,10],
+"conversation_8php.html#ab2383dff4f823e580399ff469d90ab19":[5,0,0,22,4],
+"conversation_8php.html#abed85a41f1160598de880b84021c9cf7":[5,0,0,22,2],
+"conversation_8php.html#ac55e070f65f46fcc8e269f7896be4c7d":[5,0,0,22,20],
+"conversation_8php.html#ad3e1d4b15e7d6d026ee182edd58f692b":[5,0,0,22,0],
+"conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7":[5,0,0,22,1],
+"conversation_8php.html#adda79b75bf1ccf6ce9503aa310953533":[5,0,0,22,11],
+"conversation_8php.html#ae59703b07ce2ddf627b4172ff26058b6":[5,0,0,22,5],
+"conversation_8php.html#ae996eb116d397a2c6396c312d7b98664":[5,0,0,22,18],
+"conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0":[5,0,0,22,12],
+"conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81":[5,0,0,22,3],
+"cronhooks_8php.html":[5,0,0,24],
+"cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca":[5,0,0,24,0],
+"crypto_8php.html":[5,0,0,25],
+"crypto_8php.html#a0781202b0a43b82426929cc87c2fa2b5":[5,0,0,25,5],
+"crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286":[5,0,0,25,2],
+"crypto_8php.html#a32fc08d57a5694f94d8543ecbb03323c":[5,0,0,25,4],
+"crypto_8php.html#a5c61821d205f95f127114159cbffa764":[5,0,0,25,1],
+"crypto_8php.html#a920e5f222d0020f47556033d8b2b6552":[5,0,0,25,9],
+"crypto_8php.html#aae0ab70d6a199b29555b1ac3cf250d6a":[5,0,0,25,6],
+"crypto_8php.html#ab4f21d8f6b8ece0915e7c8bb73379f96":[5,0,0,25,10],
+"crypto_8php.html#ac852ee41392d1358c3a54d54935e0bf9":[5,0,0,25,0],
+"crypto_8php.html#ac95ac3b1b23b65b04a86613d4206ae85":[5,0,0,25,8],
+"crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914":[5,0,0,25,3],
+"crypto_8php.html#ad5e51fd44cff93cfaa07a37e24a5edec":[5,0,0,25,7],
+"dark_8php.html":[5,0,3,2,2,1,0],
+"darkness_8php.html":[5,0,3,2,0,1,0],
+"darknessleftaside_8php.html":[5,0,3,2,0,1,1],
+"darknessrightaside_8php.html":[5,0,3,2,0,1,2],
+"datetime_8php.html":[5,0,0,26],
+"datetime_8php.html#a03900dcf0f9e3c58793a031673a70326":[5,0,0,26,6],
+"datetime_8php.html#a36d3d6dff8d76b5f295bb3d9c535a5b1":[5,0,0,26,11],
+"datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8":[5,0,0,26,5],
+"datetime_8php.html#a5f29553799005b1fd4e9ce9d98ce05aa":[5,0,0,26,3],
+"datetime_8php.html#a633dadba426fa2f60b25fabdb19ebc1f":[5,0,0,26,10],
+"datetime_8php.html#a7df24d72ea05922d3127363e2295174c":[5,0,0,26,7],
+"datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82":[5,0,0,26,9],
+"datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865":[5,0,0,26,12],
+"datetime_8php.html#ab55e545b72ec8c097e052ea7d373491f":[5,0,0,26,13],
+"datetime_8php.html#aba971b67f17fecf050813f1eba72367f":[5,0,0,26,8],
+"datetime_8php.html#abc1652f96799cec6fce8797ba2ebc2df":[5,0,0,26,0],
+"datetime_8php.html#ac265b86f384ee094ed5479aae02aa5c8":[5,0,0,26,2],
+"datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226":[5,0,0,26,4],
+"datetime_8php.html#aea356409ba69f9de412298c998595dd2":[5,0,0,26,1],
"db__update_8php.html":[5,0,2,2],
"dba__driver_8php.html":[5,0,0,0,0],
"dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f":[5,0,0,0,0,8],
@@ -76,45 +123,48 @@ var NAVTREEINDEX3 =
"dba__driver_8php.html#af531546fac5f0836a8557a4f6dfee930":[5,0,0,0,0,4],
"dba__mysql_8php.html":[5,0,0,0,1],
"dba__mysqli_8php.html":[5,0,0,0,2],
-"delegate_8php.html":[5,0,1,18],
-"delegate_8php.html#a943eea8996ef348eb845c498f9f354dd":[5,0,1,18,0],
-"deliver_8php.html":[5,0,0,25],
-"deliver_8php.html#a397afcb9afecf0c1816b0951189dd346":[5,0,0,25,0],
-"dir_032dd9e2cfe278a2cfa5eb9547448eb9.html":[5,0,3,1,2,0],
-"dir_05f4fba29266e8fd7869afcd6cefb5cb.html":[5,0,3,1,0,1],
+"delegate_8php.html":[5,0,1,21],
+"delegate_8php.html#a943eea8996ef348eb845c498f9f354dd":[5,0,1,21,0],
+"deliver_8php.html":[5,0,0,27],
+"deliver_8php.html#a397afcb9afecf0c1816b0951189dd346":[5,0,0,27,0],
+"dir_032dd9e2cfe278a2cfa5eb9547448eb9.html":[5,0,3,2,2,0],
+"dir_05f4fba29266e8fd7869afcd6cefb5cb.html":[5,0,3,2,0,1],
"dir_0eaa4a0adae8ba4811e133c6e594aeee.html":[5,0,2,0],
"dir_21bc5169ff11430004758be31dcfc6c4.html":[5,0,0,0],
"dir_23ec12649285f9fabf3a6b7380226c28.html":[5,0,2],
+"dir_24b9ffacd044b9b20a6b863179c605d1.html":[5,0,3,0],
"dir_25f74a9991dbbca1b52a94e358ca73c1.html":[5,0,2,1,0],
-"dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.html":[5,0,3,1,2,1],
-"dir_55dbaf9b7b53c4fc605c9011743a7353.html":[5,0,3,1,2],
-"dir_6cee3bb9ace89cc4e2f065aa2ca7bc5b.html":[5,0,3,1,1,1,0],
+"dir_3d9c9d0c5e9556dd3eba1e072fa6eaeb.html":[5,0,3,2,2,1],
+"dir_55dbaf9b7b53c4fc605c9011743a7353.html":[5,0,3,2,2],
+"dir_6cee3bb9ace89cc4e2f065aa2ca7bc5b.html":[5,0,3,2,1,1,0],
"dir_720432dea4a717197ae070dbc42b8f20.html":[5,0,2,1],
-"dir_817f6d302394b98e59575acdb59998bc.html":[5,0,3,0],
-"dir_8543001e5d25368a6edede3e63efb554.html":[5,0,3,1],
-"dir_922c77e958c99a98db92d38a3a349bf2.html":[5,0,3,1,1],
-"dir_92d6b429199666aa3765c8a934db5e14.html":[5,0,3,1,1,1],
-"dir__fns_8php.html":[5,0,0,26],
-"dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13":[5,0,0,26,5],
-"dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a":[5,0,0,26,4],
-"dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d":[5,0,0,26,2],
-"dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6":[5,0,0,26,3],
-"dir__fns_8php.html#acf621621e929d49441da30aad76a58cf":[5,0,0,26,0],
-"dir__fns_8php.html#ae56881d69bb6f8e828c9e35454386774":[5,0,0,26,1],
-"dir_a8a0005c2b8590c535262d232c22afab.html":[5,0,3,1,1,1,0,0],
+"dir_817f6d302394b98e59575acdb59998bc.html":[5,0,3,1],
+"dir_8543001e5d25368a6edede3e63efb554.html":[5,0,3,2],
+"dir_922c77e958c99a98db92d38a3a349bf2.html":[5,0,3,2,1],
+"dir_92d6b429199666aa3765c8a934db5e14.html":[5,0,3,2,1,1],
+"dir__fns_8php.html":[5,0,0,28],
+"dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13":[5,0,0,28,5],
+"dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d":[5,0,0,28,2],
+"dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6":[5,0,0,28,4],
+"dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e":[5,0,0,28,3],
+"dir__fns_8php.html#acf621621e929d49441da30aad76a58cf":[5,0,0,28,0],
+"dir__fns_8php.html#ae56881d69bb6f8e828c9e35454386774":[5,0,0,28,1],
+"dir_a8a0005c2b8590c535262d232c22afab.html":[5,0,3,2,1,1,0,0],
"dir_aae29906d7bfc07d076125f669c8352e.html":[5,0,0,1],
"dir_b2f003339c516cc00c8cadcafbe82f13.html":[5,0,3],
-"dir_c02447ad39a5307c81c64e880ec9e8d3.html":[5,0,3,1,1,0],
-"dir_cb8a8f75dcdd0b3fbfcc82e9eda410c5.html":[5,0,3,1,0,0],
+"dir_c02447ad39a5307c81c64e880ec9e8d3.html":[5,0,3,2,1,0],
+"dir_cb8a8f75dcdd0b3fbfcc82e9eda410c5.html":[5,0,3,2,0,0],
"dir_d41ce877eb409a4791b288730010abe2.html":[5,0,1],
"dir_d44c64559bbebec7f509842c48db8b23.html":[5,0,0],
-"dir_d520c5cf583201d9437764f209363c22.html":[5,0,3,1,0],
-"dirsearch_8php.html":[5,0,1,20],
-"dirsearch_8php.html#a3e51964ae3f5ff147403407b65324752":[5,0,1,20,1],
-"dirsearch_8php.html#a985d410a170549429857af6ff2673149":[5,0,1,20,2],
-"dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c":[5,0,1,20,0],
-"display_8php.html":[5,0,1,21],
-"display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0":[5,0,1,21,0],
+"dir_d520c5cf583201d9437764f209363c22.html":[5,0,3,2,0],
+"dirprofile_8php.html":[5,0,1,23],
+"dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052":[5,0,1,23,0],
+"dirsearch_8php.html":[5,0,1,24],
+"dirsearch_8php.html#a3e51964ae3f5ff147403407b65324752":[5,0,1,24,1],
+"dirsearch_8php.html#a985d410a170549429857af6ff2673149":[5,0,1,24,2],
+"dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c":[5,0,1,24,0],
+"display_8php.html":[5,0,1,25],
+"display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0":[5,0,1,25,0],
"docblox__errorchecker_8php.html":[5,0,2,3],
"docblox__errorchecker_8php.html#a1659f0a629d408e0f849dbe4ee061e62":[5,0,2,3,3],
"docblox__errorchecker_8php.html#a21b4bbe5aae2d85db33affc7126a67ec":[5,0,2,3,2],
@@ -127,48 +177,49 @@ var NAVTREEINDEX3 =
"docblox__errorchecker_8php.html#ab66bc0493d25f39bf8b4dcbb429f04e6":[5,0,2,3,4],
"docblox__errorchecker_8php.html#ae9562cf60aa693114603d27b55d2185f":[5,0,2,3,1],
"docblox__errorchecker_8php.html#af4ca738a05beffe9c8c23e1f7aea3c2d":[5,0,2,3,10],
-"editblock_8php.html":[5,0,1,22],
-"editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6":[5,0,1,22,0],
-"editlayout_8php.html":[5,0,1,23],
-"editlayout_8php.html#aa877e4157a26b099de904164181dd386":[5,0,1,23,0],
-"editpost_8php.html":[5,0,1,24],
-"editpost_8php.html#a34011690864d122680c802e9e748ccfb":[5,0,1,24,0],
-"editwebpage_8php.html":[5,0,1,25],
-"editwebpage_8php.html#a375e945255fad79a71036528f7480650":[5,0,1,25,0],
-"enotify_8php.html":[5,0,0,28],
-"enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc":[5,0,0,28,1],
-"event_8php.html":[5,0,0,29],
-"event_8php.html#a018ea4484910a873a7c1eaa126de9b1a":[5,0,0,29,6],
-"event_8php.html#a180cccd63c2a2f00ff432b03113531f3":[5,0,0,29,0],
-"event_8php.html#a184d6b9690e5b6dee35a0aa9edd47279":[5,0,0,29,1],
-"event_8php.html#a2ac9f1b08de03250ecd794f705781d17":[5,0,0,29,5],
-"event_8php.html#a32ba1b9ddf7a744a9a1512b052e5f850":[5,0,0,29,2],
-"event_8php.html#a89ef533faf345db8d64a58d4856bde3a":[5,0,0,29,3],
-"event_8php.html#abb74206cf42d694307c3d7abb7af9869":[5,0,0,29,4],
-"events_8php.html":[5,0,1,26],
-"events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec":[5,0,1,26,0],
-"events_8php.html#ab3e8a8f901175f8e40a8089eea45c075":[5,0,1,26,1],
-"expire_8php.html":[5,0,0,30],
-"expire_8php.html#a444e45c9b67727b27db4c779fd51a298":[5,0,0,30,0],
+"editblock_8php.html":[5,0,1,26],
+"editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6":[5,0,1,26,0],
+"editlayout_8php.html":[5,0,1,27],
+"editlayout_8php.html#aa877e4157a26b099de904164181dd386":[5,0,1,27,0],
+"editpost_8php.html":[5,0,1,28],
+"editpost_8php.html#a34011690864d122680c802e9e748ccfb":[5,0,1,28,0],
+"editwebpage_8php.html":[5,0,1,29],
+"editwebpage_8php.html#a375e945255fad79a71036528f7480650":[5,0,1,29,0],
+"enotify_8php.html":[5,0,0,30],
+"enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc":[5,0,0,30,1],
+"event_8php.html":[5,0,0,31],
+"event_8php.html#a018ea4484910a873a7c1eaa126de9b1a":[5,0,0,31,6],
+"event_8php.html#a180cccd63c2a2f00ff432b03113531f3":[5,0,0,31,0],
+"event_8php.html#a184d6b9690e5b6dee35a0aa9edd47279":[5,0,0,31,1],
+"event_8php.html#a2ac9f1b08de03250ecd794f705781d17":[5,0,0,31,5],
+"event_8php.html#a32ba1b9ddf7a744a9a1512b052e5f850":[5,0,0,31,2],
+"event_8php.html#a89ef533faf345db8d64a58d4856bde3a":[5,0,0,31,3],
+"event_8php.html#abb74206cf42d694307c3d7abb7af9869":[5,0,0,31,4],
+"events_8php.html":[5,0,1,30],
+"events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec":[5,0,1,30,0],
+"events_8php.html#ab3e8a8f901175f8e40a8089eea45c075":[5,0,1,30,1],
+"expire_8php.html":[5,0,0,32],
+"expire_8php.html#a444e45c9b67727b27db4c779fd51a298":[5,0,0,32,0],
"extract_8php.html":[5,0,2,4],
"extract_8php.html#a0cbe524ffc9a496114fd7ba9f423ef44":[5,0,2,4,3],
"extract_8php.html#a50b05cf2e02ef0b67fcad97106dd7634":[5,0,2,4,2],
"extract_8php.html#a63bb4c41bc532baacf6a4976cfaa0feb":[5,0,2,4,0],
"extract_8php.html#a9590b15215a21e9b42eb546aeef79704":[5,0,2,4,1],
-"fbrowser_8php.html":[5,0,1,27],
-"fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4":[5,0,1,27,0],
-"features_8php.html":[5,0,0,31],
-"features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0":[5,0,0,31,0],
-"features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c":[5,0,0,31,1],
-"feed_8php.html":[5,0,1,28],
-"feed_8php.html#af86137700b56f33d1d5f25c8dec22c04":[5,0,1,28,0],
-"filer_8php.html":[5,0,1,29],
-"filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274":[5,0,1,29,0],
-"filerm_8php.html":[5,0,1,30],
-"filerm_8php.html#ae2eb28d2054fa2c37e38689882172208":[5,0,1,30,0],
+"fbrowser_8php.html":[5,0,1,31],
+"fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4":[5,0,1,31,0],
+"features_8php.html":[5,0,0,33],
+"features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0":[5,0,0,33,0],
+"features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c":[5,0,0,33,1],
+"feed_8php.html":[5,0,1,32],
+"feed_8php.html#af86137700b56f33d1d5f25c8dec22c04":[5,0,1,32,0],
+"filer_8php.html":[5,0,1,33],
+"filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274":[5,0,1,33,0],
+"filerm_8php.html":[5,0,1,34],
+"filerm_8php.html#ae2eb28d2054fa2c37e38689882172208":[5,0,1,34,0],
"files.html":[5,0],
-"filestorage_8php.html":[5,0,1,31],
-"filestorage_8php.html#a61bb1be78472555df4ce619f51014040":[5,0,1,31,0],
+"filestorage_8php.html":[5,0,1,35],
+"filestorage_8php.html#a61bb1be78472555df4ce619f51014040":[5,0,1,35,0],
+"filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd":[5,0,1,35,1],
"fpostit_8php.html":[5,0,2,0,0],
"fpostit_8php.html#a3f3ae3ae61578b5671673914fd894443":[5,0,2,0,0,0],
"fpostit_8php.html#a501b5ca82f287509fc691c88524064c1":[5,0,2,0,0,1],
@@ -188,66 +239,15 @@ var NAVTREEINDEX3 =
"friendica-to-smarty-tpl_8py.html#ae74419b16516956c66f7db714a93a6ac":[5,0,2,5,7],
"friendica-to-smarty-tpl_8py.html#aecf730e0884bb4ddc6c0deb1ef85f8eb":[5,0,2,5,4],
"friendica-to-smarty-tpl_8py.html#af6b2c793958aae2aadc294577431f749":[5,0,2,5,3],
-"friendica__smarty_8php.html":[5,0,0,33],
-"fsuggest_8php.html":[5,0,1,33],
-"fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d":[5,0,1,33,1],
-"fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998":[5,0,1,33,0],
-"full_8php.html":[5,0,3,0,1],
-"full_8php.html#a6fac1b4b8cdfde06ea1b7713479e92db":[5,0,3,0,1,0],
+"friendica__smarty_8php.html":[5,0,0,35],
+"fsuggest_8php.html":[5,0,1,37],
+"fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d":[5,0,1,37,1],
+"fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998":[5,0,1,37,0],
+"full_8php.html":[5,0,3,1,1],
+"full_8php.html#a6fac1b4b8cdfde06ea1b7713479e92db":[5,0,3,1,1,0],
"functions.html":[4,3,0],
"functions.html":[4,3,0,0],
"functions_0x5f.html":[4,3,0,1],
"functions_0x61.html":[4,3,0,2],
-"functions_0x62.html":[4,3,0,3],
-"functions_0x63.html":[4,3,0,4],
-"functions_0x64.html":[4,3,0,5],
-"functions_0x65.html":[4,3,0,6],
-"functions_0x66.html":[4,3,0,7],
-"functions_0x67.html":[4,3,0,8],
-"functions_0x68.html":[4,3,0,9],
-"functions_0x69.html":[4,3,0,10],
-"functions_0x6c.html":[4,3,0,11],
-"functions_0x6e.html":[4,3,0,12],
-"functions_0x6f.html":[4,3,0,13],
-"functions_0x70.html":[4,3,0,14],
-"functions_0x71.html":[4,3,0,15],
-"functions_0x72.html":[4,3,0,16],
-"functions_0x73.html":[4,3,0,17],
-"functions_0x74.html":[4,3,0,18],
-"functions_0x76.html":[4,3,0,19],
-"functions_func.html":[4,3,1,0],
-"functions_func.html":[4,3,1],
-"functions_func_0x61.html":[4,3,1,1],
-"functions_func_0x62.html":[4,3,1,2],
-"functions_func_0x63.html":[4,3,1,3],
-"functions_func_0x64.html":[4,3,1,4],
-"functions_func_0x65.html":[4,3,1,5],
-"functions_func_0x66.html":[4,3,1,6],
-"functions_func_0x67.html":[4,3,1,7],
-"functions_func_0x68.html":[4,3,1,8],
-"functions_func_0x69.html":[4,3,1,9],
-"functions_func_0x6c.html":[4,3,1,10],
-"functions_func_0x6e.html":[4,3,1,11],
-"functions_func_0x6f.html":[4,3,1,12],
-"functions_func_0x70.html":[4,3,1,13],
-"functions_func_0x71.html":[4,3,1,14],
-"functions_func_0x72.html":[4,3,1,15],
-"functions_func_0x73.html":[4,3,1,16],
-"functions_func_0x74.html":[4,3,1,17],
-"functions_func_0x76.html":[4,3,1,18],
-"functions_vars.html":[4,3,2],
-"globals.html":[5,1,0],
-"globals.html":[5,1,0,0],
-"globals_0x5f.html":[5,1,0,1],
-"globals_0x61.html":[5,1,0,2],
-"globals_0x62.html":[5,1,0,3],
-"globals_0x63.html":[5,1,0,4],
-"globals_0x64.html":[5,1,0,5],
-"globals_0x65.html":[5,1,0,6],
-"globals_0x66.html":[5,1,0,7],
-"globals_0x67.html":[5,1,0,8],
-"globals_0x68.html":[5,1,0,9],
-"globals_0x69.html":[5,1,0,10],
-"globals_0x6a.html":[5,1,0,11],
-"globals_0x6b.html":[5,1,0,12]
+"functions_0x62.html":[4,3,0,3]
};
diff --git a/doc/html/navtreeindex4.js b/doc/html/navtreeindex4.js
index 507a865e8..4b882f43c 100644
--- a/doc/html/navtreeindex4.js
+++ b/doc/html/navtreeindex4.js
@@ -1,5 +1,56 @@
var NAVTREEINDEX4 =
{
+"functions_0x63.html":[4,3,0,4],
+"functions_0x64.html":[4,3,0,5],
+"functions_0x65.html":[4,3,0,6],
+"functions_0x66.html":[4,3,0,7],
+"functions_0x67.html":[4,3,0,8],
+"functions_0x68.html":[4,3,0,9],
+"functions_0x69.html":[4,3,0,10],
+"functions_0x6c.html":[4,3,0,11],
+"functions_0x6e.html":[4,3,0,12],
+"functions_0x6f.html":[4,3,0,13],
+"functions_0x70.html":[4,3,0,14],
+"functions_0x71.html":[4,3,0,15],
+"functions_0x72.html":[4,3,0,16],
+"functions_0x73.html":[4,3,0,17],
+"functions_0x74.html":[4,3,0,18],
+"functions_0x76.html":[4,3,0,19],
+"functions_func.html":[4,3,1],
+"functions_func.html":[4,3,1,0],
+"functions_func_0x61.html":[4,3,1,1],
+"functions_func_0x62.html":[4,3,1,2],
+"functions_func_0x63.html":[4,3,1,3],
+"functions_func_0x64.html":[4,3,1,4],
+"functions_func_0x65.html":[4,3,1,5],
+"functions_func_0x66.html":[4,3,1,6],
+"functions_func_0x67.html":[4,3,1,7],
+"functions_func_0x68.html":[4,3,1,8],
+"functions_func_0x69.html":[4,3,1,9],
+"functions_func_0x6c.html":[4,3,1,10],
+"functions_func_0x6e.html":[4,3,1,11],
+"functions_func_0x6f.html":[4,3,1,12],
+"functions_func_0x70.html":[4,3,1,13],
+"functions_func_0x71.html":[4,3,1,14],
+"functions_func_0x72.html":[4,3,1,15],
+"functions_func_0x73.html":[4,3,1,16],
+"functions_func_0x74.html":[4,3,1,17],
+"functions_func_0x76.html":[4,3,1,18],
+"functions_vars.html":[4,3,2],
+"globals.html":[5,1,0],
+"globals.html":[5,1,0,0],
+"globals_0x5f.html":[5,1,0,1],
+"globals_0x61.html":[5,1,0,2],
+"globals_0x62.html":[5,1,0,3],
+"globals_0x63.html":[5,1,0,4],
+"globals_0x64.html":[5,1,0,5],
+"globals_0x65.html":[5,1,0,6],
+"globals_0x66.html":[5,1,0,7],
+"globals_0x67.html":[5,1,0,8],
+"globals_0x68.html":[5,1,0,9],
+"globals_0x69.html":[5,1,0,10],
+"globals_0x6a.html":[5,1,0,11],
+"globals_0x6b.html":[5,1,0,12],
"globals_0x6c.html":[5,1,0,13],
"globals_0x6d.html":[5,1,0,14],
"globals_0x6e.html":[5,1,0,15],
@@ -41,8 +92,8 @@ var NAVTREEINDEX4 =
"globals_func_0x77.html":[5,1,1,23],
"globals_func_0x78.html":[5,1,1,24],
"globals_func_0x7a.html":[5,1,1,25],
-"globals_vars.html":[5,1,2,0],
"globals_vars.html":[5,1,2],
+"globals_vars.html":[5,1,2,0],
"globals_vars_0x61.html":[5,1,2,1],
"globals_vars_0x63.html":[5,1,2,2],
"globals_vars_0x64.html":[5,1,2,3],
@@ -64,51 +115,57 @@ var NAVTREEINDEX4 =
"globals_vars_0x77.html":[5,1,2,19],
"globals_vars_0x78.html":[5,1,2,20],
"globals_vars_0x7a.html":[5,1,2,21],
-"gprobe_8php.html":[5,0,0,34],
-"gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1":[5,0,0,34,0],
-"greenthumbnails_8php.html":[5,0,3,1,0,1,3],
-"hcard_8php.html":[5,0,1,35],
-"hcard_8php.html#a956c7cae2009652a37900306e5b7b73d":[5,0,1,35,0],
-"hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d":[5,0,1,35,1],
-"help_8php.html":[5,0,1,36],
-"help_8php.html#a06b2a51aaabed99e53a9b639047c4ce4":[5,0,1,36,1],
-"help_8php.html#af055e15f600ffa6fbca9386fdf715224":[5,0,1,36,0],
+"gprobe_8php.html":[5,0,0,36],
+"gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1":[5,0,0,36,0],
+"greenthumbnails_8php.html":[5,0,3,2,0,1,3],
+"help_8php.html":[5,0,1,39],
+"help_8php.html#a06b2a51aaabed99e53a9b639047c4ce4":[5,0,1,39,1],
+"help_8php.html#af055e15f600ffa6fbca9386fdf715224":[5,0,1,39,0],
"hierarchy.html":[4,2],
-"home_8php.html":[5,0,1,37],
-"hostxrd_8php.html":[5,0,1,38],
-"hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92":[5,0,1,38,0],
-"html2bbcode_8php.html":[5,0,0,36],
-"html2bbcode_8php.html#a39c662b19d318990fee2ba795a55d7a7":[5,0,0,36,3],
-"html2bbcode_8php.html#a5ad726995ac4070213abdb3bd09f4837":[5,0,0,36,1],
-"html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2":[5,0,0,36,0],
-"html2bbcode_8php.html#ad174afe0ccbd8c475e48f8a6ee2f27d8":[5,0,0,36,2],
-"html2plain_8php.html":[5,0,0,37],
-"html2plain_8php.html#a3214912e3d00cf0a948072daccf16740":[5,0,0,37,0],
-"html2plain_8php.html#a56d29b254333d29abb9d96a9a903a4b0":[5,0,0,37,3],
-"html2plain_8php.html#ab3e121fa9f3feb16f9f942e705bc6c04":[5,0,0,37,2],
-"html2plain_8php.html#ae1c203d0f089d5678d73a6c64a395201":[5,0,0,37,1],
-"identity_8php.html":[5,0,0,38],
-"identity_8php.html#a345f4c943d84de502ec6e72d2c813945":[5,0,0,38,3],
-"identity_8php.html#a3570a4eb77332b292d394c4132cb8f03":[5,0,0,38,9],
-"identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc":[5,0,0,38,13],
-"identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68":[5,0,0,38,12],
-"identity_8php.html#a490972c02fdb638c52ec0e012a30bfd2":[5,0,0,38,6],
-"identity_8php.html#a5b815330f3d177ab383af37a6c12e532":[5,0,0,38,16],
-"identity_8php.html#a680fbafc2db023c5b1309e0180e81315":[5,0,0,38,17],
-"identity_8php.html#a77d2237f1846964634b1c99089c27c7d":[5,0,0,38,1],
-"identity_8php.html#a78151baf4407a8482d2681a91a9c486b":[5,0,0,38,14],
-"identity_8php.html#aa46321e1cd6a3b8dfde8bf9510112fec":[5,0,0,38,7],
-"identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4":[5,0,0,38,0],
-"identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3":[5,0,0,38,8],
-"identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd":[5,0,0,38,2],
-"identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633":[5,0,0,38,10],
-"identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51":[5,0,0,38,4],
-"identity_8php.html#ad4a2c8caca8f6ae93633ebeca0ed6620":[5,0,0,38,11],
-"identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312":[5,0,0,38,5],
-"identity_8php.html#af2802bc13a00a17b867bba7978ba8f58":[5,0,0,38,15],
-"import_8php.html":[5,0,1,39],
-"import_8php.html#af17fef0410518f7eac205d0ea416eaa2":[5,0,1,39,1],
-"import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184":[5,0,1,39,0],
+"home_8php.html":[5,0,1,40],
+"home_8php.html#aa1cf697851a646755baf537f75334c46":[5,0,1,40,0],
+"home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde":[5,0,1,40,1],
+"hostxrd_8php.html":[5,0,1,41],
+"hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92":[5,0,1,41,0],
+"html2bbcode_8php.html":[5,0,0,38],
+"html2bbcode_8php.html#a39c662b19d318990fee2ba795a55d7a7":[5,0,0,38,3],
+"html2bbcode_8php.html#a5ad726995ac4070213abdb3bd09f4837":[5,0,0,38,1],
+"html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2":[5,0,0,38,0],
+"html2bbcode_8php.html#ad174afe0ccbd8c475e48f8a6ee2f27d8":[5,0,0,38,2],
+"html2plain_8php.html":[5,0,0,39],
+"html2plain_8php.html#a3214912e3d00cf0a948072daccf16740":[5,0,0,39,0],
+"html2plain_8php.html#a56d29b254333d29abb9d96a9a903a4b0":[5,0,0,39,3],
+"html2plain_8php.html#ab3e121fa9f3feb16f9f942e705bc6c04":[5,0,0,39,2],
+"html2plain_8php.html#ae1c203d0f089d5678d73a6c64a395201":[5,0,0,39,1],
+"identity_8php.html":[5,0,0,40],
+"identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05":[5,0,0,40,3],
+"identity_8php.html#a332df795f684788002f5a6424abacfd7":[5,0,0,40,10],
+"identity_8php.html#a345f4c943d84de502ec6e72d2c813945":[5,0,0,40,2],
+"identity_8php.html#a3570a4eb77332b292d394c4132cb8f03":[5,0,0,40,13],
+"identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc":[5,0,0,40,19],
+"identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68":[5,0,0,40,18],
+"identity_8php.html#a47d6f53216f23a3484061793bef29854":[5,0,0,40,20],
+"identity_8php.html#a490972c02fdb638c52ec0e012a30bfd2":[5,0,0,40,8],
+"identity_8php.html#a5b815330f3d177ab383af37a6c12e532":[5,0,0,40,23],
+"identity_8php.html#a680fbafc2db023c5b1309e0180e81315":[5,0,0,40,24],
+"identity_8php.html#a77d2237f1846964634b1c99089c27c7d":[5,0,0,40,1],
+"identity_8php.html#a78151baf4407a8482d2681a91a9c486b":[5,0,0,40,21],
+"identity_8php.html#a9637c557e13d9671f3eeb124ab98212a":[5,0,0,40,16],
+"identity_8php.html#aa46321e1cd6a3b8dfde8bf9510112fec":[5,0,0,40,9],
+"identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4":[5,0,0,40,0],
+"identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3":[5,0,0,40,12],
+"identity_8php.html#aaff86ee3b5984821e7a256c2da5f1a51":[5,0,0,40,11],
+"identity_8php.html#ab1485a26b032956e1496fc08c58b83ed":[5,0,0,40,6],
+"identity_8php.html#ac73b3e13778c564c877554517a7f51ba":[5,0,0,40,5],
+"identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633":[5,0,0,40,14],
+"identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51":[5,0,0,40,4],
+"identity_8php.html#ad4a2c8caca8f6ae93633ebeca0ed6620":[5,0,0,40,17],
+"identity_8php.html#ae2b140df652a55ca11bb6a99005fce35":[5,0,0,40,15],
+"identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312":[5,0,0,40,7],
+"identity_8php.html#af2802bc13a00a17b867bba7978ba8f58":[5,0,0,40,22],
+"import_8php.html":[5,0,1,42],
+"import_8php.html#af17fef0410518f7eac205d0ea416eaa2":[5,0,1,42,1],
+"import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184":[5,0,1,42,0],
"include_2api_8php.html":[5,0,0,5],
"include_2api_8php.html#a0991f72554f821255397d615e76f3203":[5,0,0,5,12],
"include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5":[5,0,0,5,5],
@@ -164,90 +221,33 @@ var NAVTREEINDEX4 =
"include_2api_8php.html#aff322705cc6084b329003fc8eab0aad0":[5,0,0,5,27],
"include_2attach_8php.html":[5,0,0,6],
"include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36":[5,0,0,6,0],
-"include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d":[5,0,0,6,3],
-"include_2attach_8php.html#a6fdd92775f31c07d2863e16e0026018a":[5,0,0,6,6],
-"include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f":[5,0,0,6,5],
-"include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3":[5,0,0,6,2],
-"include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc":[5,0,0,6,4],
+"include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d":[5,0,0,6,5],
+"include_2attach_8php.html#a5c0875eafb8c0f8a0620ff7a875a2221":[5,0,0,6,2],
+"include_2attach_8php.html#a5d484de2d19a93071571d6499a50ae34":[5,0,0,6,9],
+"include_2attach_8php.html#a6aa00ea010ea030110faefb75eafc1ce":[5,0,0,6,8],
+"include_2attach_8php.html#a6fdd92775f31c07d2863e16e0026018a":[5,0,0,6,10],
+"include_2attach_8php.html#a70bd666e080c2af5a91f5d14c297b8cd":[5,0,0,6,4],
+"include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f":[5,0,0,6,7],
+"include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3":[5,0,0,6,3],
+"include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc":[5,0,0,6,6],
"include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932":[5,0,0,6,1],
-"include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909":[5,0,0,6,7],
-"include_2chanman_8php.html":[5,0,0,12],
-"include_2chanman_8php.html#a21ba9a5c961e866ff27aee3ee67bf99b":[5,0,0,12,0],
-"include_2config_8php.html":[5,0,0,16],
-"include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1":[5,0,0,16,7],
-"include_2config_8php.html#a549910227348003efc3c05c9105c42da":[5,0,0,16,0],
-"include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33":[5,0,0,16,9],
-"include_2config_8php.html#a61591371cb18764138655d67dc817ab2":[5,0,0,16,11],
-"include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941":[5,0,0,16,1],
-"include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72":[5,0,0,16,2],
-"include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e":[5,0,0,16,6],
-"include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6":[5,0,0,16,8],
-"include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad":[5,0,0,16,5],
-"include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a":[5,0,0,16,10],
-"include_2config_8php.html#af02c96e6b37335774b548914ede1d22e":[5,0,0,16,3],
-"include_2config_8php.html#af08b7adb63adfb2eda7c466fba0cce74":[5,0,0,16,4],
-"include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e":[5,0,0,16,12],
-"include_2directory_8php.html":[5,0,0,27],
-"include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0":[5,0,0,27,0],
-"include_2follow_8php.html":[5,0,0,32],
-"include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7":[5,0,0,32,0],
-"include_2group_8php.html":[5,0,0,35],
-"include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b":[5,0,0,35,2],
-"include_2group_8php.html#a048f6892bfd28852de1b76470df411de":[5,0,0,35,10],
-"include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce":[5,0,0,35,1],
-"include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17":[5,0,0,35,8],
-"include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345":[5,0,0,35,0],
-"include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5":[5,0,0,35,6],
-"include_2group_8php.html#a540e3ef36f47d47532646be4241f6518":[5,0,0,35,7],
-"include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09":[5,0,0,35,4],
-"include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245":[5,0,0,35,5],
-"include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32":[5,0,0,35,11],
-"include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb":[5,0,0,35,3],
-"include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f":[5,0,0,35,9],
-"include_2menu_8php.html":[5,0,0,43],
-"include_2menu_8php.html#a08a800821721781a8dfffbe31481ff98":[5,0,0,43,1],
-"include_2menu_8php.html#a3884bda4d85d84ec99447db9403a68d8":[5,0,0,43,3],
-"include_2menu_8php.html#a47447c01ba8ea04cd74af1d4c5b68fc7":[5,0,0,43,8],
-"include_2menu_8php.html#a68ebbf492470c930f652013656f9071d":[5,0,0,43,7],
-"include_2menu_8php.html#a6a33c6a3db2a7510b16cc656edaec571":[5,0,0,43,5],
-"include_2menu_8php.html#a890cc6237971e15f15702e6b2e88502e":[5,0,0,43,10],
-"include_2menu_8php.html#a9aa8e0052dd47c1a93f53a983bd4620a":[5,0,0,43,2],
-"include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa":[5,0,0,43,6],
-"include_2menu_8php.html#acef15a498d52666b1c7e5c12765c689b":[5,0,0,43,9],
-"include_2menu_8php.html#ad87f51ce85172bcc3f931aa0cd96a804":[5,0,0,43,4],
-"include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8":[5,0,0,43,0],
-"include_2message_8php.html":[5,0,0,44],
-"include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091":[5,0,0,44,2],
-"include_2message_8php.html#a5f8de9847e203329e317ac38dc646898":[5,0,0,44,1],
-"include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e":[5,0,0,44,3],
-"include_2message_8php.html#a751ffd6635022b2190f56154ee745752":[5,0,0,44,4],
-"include_2message_8php.html#aed272d77c06a309e2836ac79e75613f1":[5,0,0,44,0],
-"include_2network_8php.html":[5,0,0,46],
-"include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0":[5,0,0,46,5],
-"include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6":[5,0,0,46,10],
-"include_2network_8php.html#a469b9bd700269cd07d954f1a16c5899b":[5,0,0,46,4],
-"include_2network_8php.html#a4c5d50079e089168d9248427018fffd4":[5,0,0,46,9],
-"include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2":[5,0,0,46,8],
-"include_2network_8php.html#a5caa264fab6d2b2344e6bd5b298b08f2":[5,0,0,46,13],
-"include_2network_8php.html#a78e89557b2fbd344ad790846d761b0c7":[5,0,0,46,7],
-"include_2network_8php.html#a8122356933bcd6b0a8567e8e15ae5cc5":[5,0,0,46,14],
-"include_2network_8php.html#a897e7112d86eb95526cbd0bff9375f02":[5,0,0,46,12],
-"include_2network_8php.html#a8d5a3afb51cc932032b5dcc159efaae0":[5,0,0,46,6],
-"include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc":[5,0,0,46,19],
-"include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff":[5,0,0,46,16],
-"include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6":[5,0,0,46,17],
-"include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37":[5,0,0,46,18],
-"include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7":[5,0,0,46,2],
-"include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694":[5,0,0,46,0],
-"include_2network_8php.html#ad4056d3ce69988f5c1a997a79f503246":[5,0,0,46,3],
-"include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335":[5,0,0,46,15],
-"include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f":[5,0,0,46,11],
-"include_2network_8php.html#aee35d9ad6b3f872bfb39ba3598936aa7":[5,0,0,46,1],
-"include_2notify_8php.html":[5,0,0,48],
-"include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3":[5,0,0,48,0],
-"include_2oembed_8php.html":[5,0,0,50],
-"include_2oembed_8php.html#a000a62b97113cf95b0e9e00412168172":[5,0,0,50,5],
-"include_2oembed_8php.html#a00c4c80deffd9daf8dc97b58d4c64ed0":[5,0,0,50,7],
-"include_2oembed_8php.html#a03fa3b7832c98a3d0b4630afeb73d487":[5,0,0,50,1],
-"include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3":[5,0,0,50,4]
+"include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909":[5,0,0,6,11],
+"include_2bookmarks_8php.html":[5,0,0,11],
+"include_2bookmarks_8php.html#a88ce7dee6a3dc7465aa9b8eaa45b0087":[5,0,0,11,0],
+"include_2chanman_8php.html":[5,0,0,13],
+"include_2chanman_8php.html#a21ba9a5c961e866ff27aee3ee67bf99b":[5,0,0,13,0],
+"include_2chat_8php.html":[5,0,0,14],
+"include_2chat_8php.html#a1ee1360f7d2549c7549ae07cb5190f0f":[5,0,0,14,3],
+"include_2chat_8php.html#a2ba3af6884ecdce95de69262fe599639":[5,0,0,14,1],
+"include_2chat_8php.html#a2c95b545e46bfee64faa05ecf0afea91":[5,0,0,14,2],
+"include_2chat_8php.html#acdc80dba4eb796c7472b21129b435422":[5,0,0,14,0],
+"include_2chat_8php.html#aedcb532a0627b8644001a2fadab4e87a":[5,0,0,14,4],
+"include_2config_8php.html":[5,0,0,18],
+"include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1":[5,0,0,18,7],
+"include_2config_8php.html#a549910227348003efc3c05c9105c42da":[5,0,0,18,0],
+"include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33":[5,0,0,18,9],
+"include_2config_8php.html#a61591371cb18764138655d67dc817ab2":[5,0,0,18,11],
+"include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941":[5,0,0,18,1],
+"include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72":[5,0,0,18,2],
+"include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e":[5,0,0,18,6]
};
diff --git a/doc/html/navtreeindex5.js b/doc/html/navtreeindex5.js
index ab423c32c..59be36460 100644
--- a/doc/html/navtreeindex5.js
+++ b/doc/html/navtreeindex5.js
@@ -1,253 +1,253 @@
var NAVTREEINDEX5 =
{
-"include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2":[5,0,0,50,3],
-"include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a":[5,0,0,50,6],
-"include_2oembed_8php.html#ab953a6e7c11bc6498ce01ed73e2ba319":[5,0,0,50,0],
-"include_2oembed_8php.html#aba89ae64b355efcb4f706553d3edb6a2":[5,0,0,50,2],
-"include_2photos_8php.html":[5,0,0,55],
-"include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109":[5,0,0,55,0],
-"include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe":[5,0,0,55,2],
-"include_2photos_8php.html#a8e8b7be99e24c2497bc2cb3339280c35":[5,0,0,55,1],
-"include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51":[5,0,0,55,7],
-"include_2photos_8php.html#ab0365f25b22ccea5f085fe7c49e1f4ab":[5,0,0,55,3],
-"include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274":[5,0,0,55,6],
-"include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9":[5,0,0,55,5],
-"include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979":[5,0,0,55,4],
+"include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6":[5,0,0,18,8],
+"include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad":[5,0,0,18,5],
+"include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a":[5,0,0,18,10],
+"include_2config_8php.html#af02c96e6b37335774b548914ede1d22e":[5,0,0,18,3],
+"include_2config_8php.html#af08b7adb63adfb2eda7c466fba0cce74":[5,0,0,18,4],
+"include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e":[5,0,0,18,12],
+"include_2directory_8php.html":[5,0,0,29],
+"include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0":[5,0,0,29,0],
+"include_2follow_8php.html":[5,0,0,34],
+"include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7":[5,0,0,34,0],
+"include_2group_8php.html":[5,0,0,37],
+"include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b":[5,0,0,37,2],
+"include_2group_8php.html#a048f6892bfd28852de1b76470df411de":[5,0,0,37,10],
+"include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce":[5,0,0,37,1],
+"include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345":[5,0,0,37,0],
+"include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5":[5,0,0,37,6],
+"include_2group_8php.html#a540e3ef36f47d47532646be4241f6518":[5,0,0,37,7],
+"include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09":[5,0,0,37,4],
+"include_2group_8php.html#a6a69bd7be032fa8ce4e49c43a42cc6e9":[5,0,0,37,8],
+"include_2group_8php.html#a90e157b3e1b99c981809cb5a2abd3245":[5,0,0,37,5],
+"include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32":[5,0,0,37,11],
+"include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb":[5,0,0,37,3],
+"include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f":[5,0,0,37,9],
+"include_2menu_8php.html":[5,0,0,45],
+"include_2menu_8php.html#a08a800821721781a8dfffbe31481ff98":[5,0,0,45,1],
+"include_2menu_8php.html#a32701c4245e78ba9106eef52c08bf33d":[5,0,0,45,9],
+"include_2menu_8php.html#a3884bda4d85d84ec99447db9403a68d8":[5,0,0,45,3],
+"include_2menu_8php.html#a47447c01ba8ea04cd74af1d4c5b68fc7":[5,0,0,45,8],
+"include_2menu_8php.html#a4d7123b0577fa994770199f9b831da11":[5,0,0,45,10],
+"include_2menu_8php.html#a68ebbf492470c930f652013656f9071d":[5,0,0,45,7],
+"include_2menu_8php.html#a6a33c6a3db2a7510b16cc656edaec571":[5,0,0,45,5],
+"include_2menu_8php.html#a9aa8e0052dd47c1a93f53a983bd4620a":[5,0,0,45,2],
+"include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa":[5,0,0,45,6],
+"include_2menu_8php.html#ad87f51ce85172bcc3f931aa0cd96a804":[5,0,0,45,4],
+"include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8":[5,0,0,45,0],
+"include_2message_8php.html":[5,0,0,46],
+"include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091":[5,0,0,46,2],
+"include_2message_8php.html#a5f8de9847e203329e317ac38dc646898":[5,0,0,46,1],
+"include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e":[5,0,0,46,3],
+"include_2message_8php.html#a751ffd6635022b2190f56154ee745752":[5,0,0,46,4],
+"include_2message_8php.html#aed272d77c06a309e2836ac79e75613f1":[5,0,0,46,0],
+"include_2network_8php.html":[5,0,0,48],
+"include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0":[5,0,0,48,5],
+"include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6":[5,0,0,48,10],
+"include_2network_8php.html#a469b9bd700269cd07d954f1a16c5899b":[5,0,0,48,4],
+"include_2network_8php.html#a4c5d50079e089168d9248427018fffd4":[5,0,0,48,9],
+"include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2":[5,0,0,48,8],
+"include_2network_8php.html#a5caa264fab6d2b2344e6bd5b298b08f2":[5,0,0,48,13],
+"include_2network_8php.html#a78e89557b2fbd344ad790846d761b0c7":[5,0,0,48,7],
+"include_2network_8php.html#a8122356933bcd6b0a8567e8e15ae5cc5":[5,0,0,48,14],
+"include_2network_8php.html#a897e7112d86eb95526cbd0bff9375f02":[5,0,0,48,12],
+"include_2network_8php.html#a8d5a3afb51cc932032b5dcc159efaae0":[5,0,0,48,6],
+"include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc":[5,0,0,48,19],
+"include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff":[5,0,0,48,16],
+"include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6":[5,0,0,48,17],
+"include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37":[5,0,0,48,18],
+"include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7":[5,0,0,48,2],
+"include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694":[5,0,0,48,0],
+"include_2network_8php.html#ad4056d3ce69988f5c1a997a79f503246":[5,0,0,48,3],
+"include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335":[5,0,0,48,15],
+"include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f":[5,0,0,48,11],
+"include_2network_8php.html#aee35d9ad6b3f872bfb39ba3598936aa7":[5,0,0,48,1],
+"include_2notify_8php.html":[5,0,0,50],
+"include_2notify_8php.html#a0e61728e487df50c72e6434f911a57d3":[5,0,0,50,0],
+"include_2oembed_8php.html":[5,0,0,52],
+"include_2oembed_8php.html#a000a62b97113cf95b0e9e00412168172":[5,0,0,52,5],
+"include_2oembed_8php.html#a00c4c80deffd9daf8dc97b58d4c64ed0":[5,0,0,52,7],
+"include_2oembed_8php.html#a03fa3b7832c98a3d0b4630afeb73d487":[5,0,0,52,1],
+"include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3":[5,0,0,52,4],
+"include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2":[5,0,0,52,3],
+"include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a":[5,0,0,52,6],
+"include_2oembed_8php.html#ab953a6e7c11bc6498ce01ed73e2ba319":[5,0,0,52,0],
+"include_2oembed_8php.html#aba89ae64b355efcb4f706553d3edb6a2":[5,0,0,52,2],
+"include_2photos_8php.html":[5,0,0,57],
+"include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109":[5,0,0,57,0],
+"include_2photos_8php.html#a7e7abc69872180697c5471dc69349afe":[5,0,0,57,2],
+"include_2photos_8php.html#a8e8b7be99e24c2497bc2cb3339280c35":[5,0,0,57,1],
+"include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51":[5,0,0,57,7],
+"include_2photos_8php.html#ab0365f25b22ccea5f085fe7c49e1f4ab":[5,0,0,57,3],
+"include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274":[5,0,0,57,6],
+"include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9":[5,0,0,57,5],
+"include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979":[5,0,0,57,4],
"index.html":[],
"interfaceITemplateEngine.html":[4,0,18],
"interfaceITemplateEngine.html#aaa7381c8becc3d1c1790b53988a0f243":[4,0,18,1],
"interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442":[4,0,18,0],
-"intro_8php.html":[5,0,1,40],
-"intro_8php.html#a3e2a523697633ddb4517b9266a515f5b":[5,0,1,40,1],
-"intro_8php.html#abc3abf25da64f98f215126eb08c7936b":[5,0,1,40,0],
-"intro_8php.html#af3681062183ccbdf065ae2647b07d6f1":[5,0,1,40,2],
-"invite_8php.html":[5,0,1,41],
-"invite_8php.html#a244385b28cfd021d308715f01158bfd9":[5,0,1,41,0],
-"invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5":[5,0,1,41,1],
-"item_8php.html":[5,0,1,42],
-"item_8php.html#a3daae7944f737bd30412a0d042207c0f":[5,0,1,42,0],
-"item_8php.html#a5b1b36cb301a94b38150074f0d424e74":[5,0,1,42,3],
-"item_8php.html#a693cd09805755ab85bbb5ecae69a48c3":[5,0,1,42,5],
-"item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221":[5,0,1,42,4],
-"item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10":[5,0,1,42,1],
-"item_8php.html#abd0e603a6696051af16476eb968d52e7":[5,0,1,42,2],
-"items_8php.html":[5,0,0,41],
-"items_8php.html#a004e89d86b0f29b2c4da20108ecc4091":[5,0,0,41,53],
-"items_8php.html#a016dd86c827d08db89061ea81d15c6cb":[5,0,0,41,2],
-"items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70":[5,0,0,41,6],
-"items_8php.html#a04a35b610acfe54434df08adec39c0c7":[5,0,0,41,27],
-"items_8php.html#a0790a4550b829e85504af548623002ca":[5,0,0,41,7],
-"items_8php.html#a079e099e15d88d47aeb6ca6d60da7107":[5,0,0,41,32],
-"items_8php.html#a09d425596b9f8663472cf7474ad36d96":[5,0,0,41,36],
-"items_8php.html#a0cf98bb619f07dd18f602683a55a5f59":[5,0,0,41,24],
-"items_8php.html#a1e75047cf175aaee8dd16aa761913ff9":[5,0,0,41,4],
-"items_8php.html#a251343637ff40a50cca93452cd530c26":[5,0,0,41,31],
-"items_8php.html#a2541e6861a56d145c9281877cc501615":[5,0,0,41,38],
-"items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6":[5,0,0,41,3],
-"items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259":[5,0,0,41,13],
-"items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7":[5,0,0,41,20],
-"items_8php.html#a36e656667193c83aa2cc03a024fc131b":[5,0,0,41,0],
-"items_8php.html#a410f9c743877c125ca06312373346903":[5,0,0,41,44],
-"items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b":[5,0,0,41,47],
-"items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361":[5,0,0,41,29],
-"items_8php.html#a566c601726697e044e75284af7fb6f17":[5,0,0,41,19],
-"items_8php.html#a56b2a4abcadfac71175cd50555528cc3":[5,0,0,41,12],
-"items_8php.html#a5f690fc2484abec07840b4f9dd525bd9":[5,0,0,41,17],
-"items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7":[5,0,0,41,37],
-"items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55":[5,0,0,41,15],
-"items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc":[5,0,0,41,35],
-"items_8php.html#a756738301f2ed96be50232500677d58a":[5,0,0,41,40],
-"items_8php.html#a77051724d1784074ff187e73a4db93fe":[5,0,0,41,33],
-"items_8php.html#a77da7ce9a117601d49ac4a67c71b514f":[5,0,0,41,42],
-"items_8php.html#a82955cc578f0fa600acec84475026194":[5,0,0,41,16],
-"items_8php.html#a8794863cdf8ce1333040933d3a3f66bd":[5,0,0,41,11],
-"items_8php.html#a87ac9e359591721a824ecd23bbb56296":[5,0,0,41,5],
-"items_8php.html#a88c6cf7649ac836fbbed82a7a0315110":[5,0,0,41,51],
-"items_8php.html#a896c1809d58f2d7a42cfe14577958ddf":[5,0,0,41,26],
-"items_8php.html#a8f3c85c584ccd2b98c3ca440e45b40f8":[5,0,0,41,10],
-"items_8php.html#a94ddb1d6c8fa21dd7433677e85168037":[5,0,0,41,30],
-"items_8php.html#aa371905f0a211b307cb3f7188c6cba04":[5,0,0,41,52],
-"items_8php.html#aa579bc4445d60098b1410961ca8e96b7":[5,0,0,41,9],
-"items_8php.html#aa723c0571e314a1853a24c5854b4f54f":[5,0,0,41,21],
-"items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee":[5,0,0,41,8],
-"items_8php.html#aab9c6bae4c40799867596bdaae9829fd":[5,0,0,41,28],
-"items_8php.html#aab9e0c58247427126de0699c729c3b6c":[5,0,0,41,48],
-"items_8php.html#ab1bce4261bcf75ad62753b498a144d17":[5,0,0,41,49],
-"items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87":[5,0,0,41,25],
-"items_8php.html#abe695dd89e1e10ed042c26b80114f0ed":[5,0,0,41,45],
-"items_8php.html#abf7a1b73eb352d79acd36309b0dababd":[5,0,0,41,1],
-"items_8php.html#ac1fcf621dce7370515b420a7753f4726":[5,0,0,41,43],
-"items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a":[5,0,0,41,18],
-"items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484":[5,0,0,41,39],
-"items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0":[5,0,0,41,46],
-"items_8php.html#ad34827ed330898456783fb14c7b46154":[5,0,0,41,50],
-"items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9":[5,0,0,41,23],
-"items_8php.html#ae73794179b62d39bb597ff670ab1c1e5":[5,0,0,41,34],
-"items_8php.html#af94c281016c6c912d06e064113336c5c":[5,0,0,41,41],
-"items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1":[5,0,0,41,14],
-"items_8php.html#afbcf26dfcf8a83fff952aa858c1b7b67":[5,0,0,41,22],
-"language_8php.html":[5,0,0,42],
-"language_8php.html#a151e5b4689aef86a12642cbb7a00bfe0":[5,0,0,42,6],
-"language_8php.html#a632da17c7ac0d2dc1a00a4706870194b":[5,0,0,42,0],
-"language_8php.html#a78bd204955ec4cc3a9ac651285a1689d":[5,0,0,42,4],
-"language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05":[5,0,0,42,3],
-"language_8php.html#a980dee1d8715a98ab02e36b59facf8ed":[5,0,0,42,1],
-"language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04":[5,0,0,42,7],
-"language_8php.html#ac9142ef1d01a235c760deb0f16643f5a":[5,0,0,42,5],
-"language_8php.html#ace67d6cad57da08d030ad9dc9b8c836e":[5,0,0,42,2],
-"language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d":[5,0,0,42,8],
-"lastpost_8php.html":[5,0,1,43],
-"lastpost_8php.html#a6108289ef2a767495c7c85a24f364983":[5,0,1,43,0],
-"lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493":[5,0,1,43,1],
-"lastpost_8php.html#ab4c6ebd25736af678e64d55ce508ce8c":[5,0,1,43,2],
-"layouts_8php.html":[5,0,1,44],
-"layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50":[5,0,1,44,0],
-"like_8php.html":[5,0,1,45],
-"like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538":[5,0,1,45,0],
-"lockview_8php.html":[5,0,1,46],
-"lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44":[5,0,1,46,0],
-"login_8php.html":[5,0,1,47],
-"login_8php.html#a1d69ca88eb9005a7026e128b9a645904":[5,0,1,47,0],
-"lostpass_8php.html":[5,0,1,48],
-"lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3":[5,0,1,48,0],
-"lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc":[5,0,1,48,1],
-"magic_8php.html":[5,0,1,49],
-"magic_8php.html#acea2cc792849ca2d71d4b689f66518bf":[5,0,1,49,0],
-"manage_8php.html":[5,0,1,50],
-"manage_8php.html#a2bca247b5296827638959138367db4f5":[5,0,1,50,0],
-"match_8php.html":[5,0,1,51],
-"match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d":[5,0,1,51,0],
+"invite_8php.html":[5,0,1,43],
+"invite_8php.html#a244385b28cfd021d308715f01158bfd9":[5,0,1,43,0],
+"invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5":[5,0,1,43,1],
+"item_8php.html":[5,0,1,44],
+"item_8php.html#a3daae7944f737bd30412a0d042207c0f":[5,0,1,44,0],
+"item_8php.html#a5b1b36cb301a94b38150074f0d424e74":[5,0,1,44,3],
+"item_8php.html#a693cd09805755ab85bbb5ecae69a48c3":[5,0,1,44,5],
+"item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221":[5,0,1,44,4],
+"item_8php.html#a7b63a9d0cd02096e17dcf11f4afa7c10":[5,0,1,44,1],
+"item_8php.html#aa22feef4de326e1d7078dedd892e615c":[5,0,1,44,2],
+"items_8php.html":[5,0,0,43],
+"items_8php.html#a004e89d86b0f29b2c4da20108ecc4091":[5,0,0,43,57],
+"items_8php.html#a016dd86c827d08db89061ea81d15c6cb":[5,0,0,43,2],
+"items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70":[5,0,0,43,6],
+"items_8php.html#a04a35b610acfe54434df08adec39c0c7":[5,0,0,43,27],
+"items_8php.html#a0790a4550b829e85504af548623002ca":[5,0,0,43,7],
+"items_8php.html#a079e099e15d88d47aeb6ca6d60da7107":[5,0,0,43,32],
+"items_8php.html#a09d425596b9f8663472cf7474ad36d96":[5,0,0,43,37],
+"items_8php.html#a0cf98bb619f07dd18f602683a55a5f59":[5,0,0,43,24],
+"items_8php.html#a1e75047cf175aaee8dd16aa761913ff9":[5,0,0,43,4],
+"items_8php.html#a251343637ff40a50cca93452cd530c26":[5,0,0,43,31],
+"items_8php.html#a2541e6861a56d145c9281877cc501615":[5,0,0,43,39],
+"items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6":[5,0,0,43,3],
+"items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259":[5,0,0,43,13],
+"items_8php.html#a2baa9e05f1e8aa3dd61c85803ae39bd6":[5,0,0,43,56],
+"items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7":[5,0,0,43,20],
+"items_8php.html#a36e656667193c83aa2cc03a024fc131b":[5,0,0,43,0],
+"items_8php.html#a410f9c743877c125ca06312373346903":[5,0,0,43,45],
+"items_8php.html#a49905ea75adfe8a2d110be344d18d6a6":[5,0,0,43,47],
+"items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b":[5,0,0,43,50],
+"items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361":[5,0,0,43,29],
+"items_8php.html#a566c601726697e044e75284af7fb6f17":[5,0,0,43,19],
+"items_8php.html#a56b2a4abcadfac71175cd50555528cc3":[5,0,0,43,12],
+"items_8php.html#a5f690fc2484abec07840b4f9dd525bd9":[5,0,0,43,17],
+"items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7":[5,0,0,43,38],
+"items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55":[5,0,0,43,15],
+"items_8php.html#a6bee35961f2e32905f20367a9309d627":[5,0,0,43,34],
+"items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc":[5,0,0,43,36],
+"items_8php.html#a756738301f2ed96be50232500677d58a":[5,0,0,43,41],
+"items_8php.html#a77051724d1784074ff187e73a4db93fe":[5,0,0,43,33],
+"items_8php.html#a77da7ce9a117601d49ac4a67c71b514f":[5,0,0,43,43],
+"items_8php.html#a82955cc578f0fa600acec84475026194":[5,0,0,43,16],
+"items_8php.html#a83a349062945d585edb4b3c5d763ab6e":[5,0,0,43,48],
+"items_8php.html#a8794863cdf8ce1333040933d3a3f66bd":[5,0,0,43,11],
+"items_8php.html#a87ac9e359591721a824ecd23bbb56296":[5,0,0,43,5],
+"items_8php.html#a88c6cf7649ac836fbbed82a7a0315110":[5,0,0,43,54],
+"items_8php.html#a896c1809d58f2d7a42cfe14577958ddf":[5,0,0,43,26],
+"items_8php.html#a8f3c85c584ccd2b98c3ca440e45b40f8":[5,0,0,43,10],
+"items_8php.html#a94ddb1d6c8fa21dd7433677e85168037":[5,0,0,43,30],
+"items_8php.html#aa371905f0a211b307cb3f7188c6cba04":[5,0,0,43,55],
+"items_8php.html#aa579bc4445d60098b1410961ca8e96b7":[5,0,0,43,9],
+"items_8php.html#aa723c0571e314a1853a24c5854b4f54f":[5,0,0,43,21],
+"items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee":[5,0,0,43,8],
+"items_8php.html#aab9c6bae4c40799867596bdaae9829fd":[5,0,0,43,28],
+"items_8php.html#aab9e0c58247427126de0699c729c3b6c":[5,0,0,43,51],
+"items_8php.html#ab1bce4261bcf75ad62753b498a144d17":[5,0,0,43,52],
+"items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87":[5,0,0,43,25],
+"items_8php.html#abf7a1b73eb352d79acd36309b0dababd":[5,0,0,43,1],
+"items_8php.html#ac1fcf621dce7370515b420a7753f4726":[5,0,0,43,44],
+"items_8php.html#ac6673627d289ee4f547de0fe3b7acd0a":[5,0,0,43,18],
+"items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484":[5,0,0,43,40],
+"items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0":[5,0,0,43,46],
+"items_8php.html#ad34827ed330898456783fb14c7b46154":[5,0,0,43,53],
+"items_8php.html#ad4ee16e3ff1eaf60428c61f82ba25e6a":[5,0,0,43,49],
+"items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9":[5,0,0,43,23],
+"items_8php.html#ae73794179b62d39bb597ff670ab1c1e5":[5,0,0,43,35],
+"items_8php.html#af94c281016c6c912d06e064113336c5c":[5,0,0,43,42],
+"items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1":[5,0,0,43,14],
+"items_8php.html#afbcf26dfcf8a83fff952aa858c1b7b67":[5,0,0,43,22],
+"language_8php.html":[5,0,0,44],
+"language_8php.html#a151e5b4689aef86a12642cbb7a00bfe0":[5,0,0,44,7],
+"language_8php.html#a43e6ddba9df019c9ac3ab4c94c444ae7":[5,0,0,44,3],
+"language_8php.html#a632da17c7ac0d2dc1a00a4706870194b":[5,0,0,44,0],
+"language_8php.html#a78bd204955ec4cc3a9ac651285a1689d":[5,0,0,44,5],
+"language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05":[5,0,0,44,4],
+"language_8php.html#a980dee1d8715a98ab02e36b59facf8ed":[5,0,0,44,1],
+"language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04":[5,0,0,44,8],
+"language_8php.html#ac9142ef1d01a235c760deb0f16643f5a":[5,0,0,44,6],
+"language_8php.html#ace67d6cad57da08d030ad9dc9b8c836e":[5,0,0,44,2],
+"language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d":[5,0,0,44,9],
+"layouts_8php.html":[5,0,1,45],
+"layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50":[5,0,1,45,0],
+"like_8php.html":[5,0,1,46],
+"like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538":[5,0,1,46,0],
+"lockview_8php.html":[5,0,1,47],
+"lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44":[5,0,1,47,0],
+"login_8php.html":[5,0,1,48],
+"login_8php.html#a1d69ca88eb9005a7026e128b9a645904":[5,0,1,48,0],
+"lostpass_8php.html":[5,0,1,49],
+"lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3":[5,0,1,49,0],
+"lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc":[5,0,1,49,1],
+"magic_8php.html":[5,0,1,50],
+"magic_8php.html#acea2cc792849ca2d71d4b689f66518bf":[5,0,1,50,0],
+"mail_8php.html":[5,0,1,51],
+"mail_8php.html#a3c7c485fc69f92371e8b20936040eca1":[5,0,1,51,0],
+"mail_8php.html#acfc2cc0bf4e0b178207758384977f25a":[5,0,1,51,1],
+"manage_8php.html":[5,0,1,52],
+"manage_8php.html#a2bca247b5296827638959138367db4f5":[5,0,1,52,0],
+"match_8php.html":[5,0,1,53],
+"match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d":[5,0,1,53,0],
"md_README.html":[2],
"md_config.html":[0],
"md_fresh.html":[1],
-"minimal_8php.html":[5,0,3,0,2],
-"minimalisticdarkness_8php.html":[5,0,3,1,0,1,4],
-"minimalisticdarkness_8php.html#a04de7b747e4f0a353e0e38cf77c3404f":[5,0,3,1,0,1,4,4],
-"minimalisticdarkness_8php.html#a0ac3f5b52212b0af87d513273da03ead":[5,0,3,1,0,1,4,3],
-"minimalisticdarkness_8php.html#a5795120b4b324bc4ca83f1e6fdce7d57":[5,0,3,1,0,1,4,5],
-"minimalisticdarkness_8php.html#a6e5d97615c6faef5dbffe04b8024ceaf":[5,0,3,1,0,1,4,0],
-"minimalisticdarkness_8php.html#a70bb13be8f23ec47839da81e0796f1cb":[5,0,3,1,0,1,4,2],
-"minimalisticdarkness_8php.html#a7e6c3d4efde4e9a2de32308081372c6b":[5,0,3,1,0,1,4,1],
-"mitem_8php.html":[5,0,1,54],
-"mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1":[5,0,1,54,2],
-"mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e":[5,0,1,54,0],
-"mitem_8php.html#a9627cd857cafdf04e4fc0ae48c8e8518":[5,0,1,54,1],
+"minimal_8php.html":[5,0,3,1,2],
+"minimalisticdarkness_8php.html":[5,0,3,2,0,1,4],
+"minimalisticdarkness_8php.html#a04de7b747e4f0a353e0e38cf77c3404f":[5,0,3,2,0,1,4,4],
+"minimalisticdarkness_8php.html#a0ac3f5b52212b0af87d513273da03ead":[5,0,3,2,0,1,4,3],
+"minimalisticdarkness_8php.html#a5795120b4b324bc4ca83f1e6fdce7d57":[5,0,3,2,0,1,4,5],
+"minimalisticdarkness_8php.html#a6e5d97615c6faef5dbffe04b8024ceaf":[5,0,3,2,0,1,4,0],
+"minimalisticdarkness_8php.html#a70bb13be8f23ec47839da81e0796f1cb":[5,0,3,2,0,1,4,2],
+"minimalisticdarkness_8php.html#a7e6c3d4efde4e9a2de32308081372c6b":[5,0,3,2,0,1,4,1],
+"mitem_8php.html":[5,0,1,56],
+"mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1":[5,0,1,56,2],
+"mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e":[5,0,1,56,0],
+"mitem_8php.html#a9627cd857cafdf04e4fc0ae48c8e8518":[5,0,1,56,1],
"mod_2api_8php.html":[5,0,1,4],
"mod_2api_8php.html#a02ae0f60e240dc806b860edb7d582117":[5,0,1,4,2],
"mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d":[5,0,1,4,0],
"mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2":[5,0,1,4,1],
"mod_2attach_8php.html":[5,0,1,6],
"mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1":[5,0,1,6,0],
-"mod_2chanman_8php.html":[5,0,1,8],
-"mod_2directory_8php.html":[5,0,1,19],
-"mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf":[5,0,1,19,2],
-"mod_2directory_8php.html#aa1d928543212871491706216742dd73c":[5,0,1,19,0],
-"mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44":[5,0,1,19,1],
-"mod_2follow_8php.html":[5,0,1,32],
-"mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a":[5,0,1,32,1],
-"mod_2follow_8php.html#a4c540ea4e9f5c581c1a53516ac585592":[5,0,1,32,0],
-"mod_2group_8php.html":[5,0,1,34],
-"mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83":[5,0,1,34,1],
-"mod_2group_8php.html#aeb0784dd928e53e6d8693513bec8928c":[5,0,1,34,0],
-"mod_2group_8php.html#aed1f009b1221348021bb34761160ef35":[5,0,1,34,2],
-"mod_2menu_8php.html":[5,0,1,52],
-"mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf":[5,0,1,52,0],
-"mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393":[5,0,1,52,1],
-"mod_2message_8php.html":[5,0,1,53],
-"mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718":[5,0,1,53,2],
-"mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79":[5,0,1,53,1],
-"mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7":[5,0,1,53,0],
-"mod_2network_8php.html":[5,0,1,57],
-"mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec":[5,0,1,57,1],
-"mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad":[5,0,1,57,2],
-"mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4":[5,0,1,57,0],
-"mod_2notify_8php.html":[5,0,1,60],
-"mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae":[5,0,1,60,1],
-"mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3":[5,0,1,60,0],
-"mod_2oembed_8php.html":[5,0,1,61],
-"mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014":[5,0,1,61,0],
-"mod_2photos_8php.html":[5,0,1,67],
-"mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080":[5,0,1,67,2],
-"mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812":[5,0,1,67,0],
-"mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014":[5,0,1,67,1],
-"mod__import_8php.html":[5,0,3,0,3],
-"mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb":[5,0,3,0,3,0],
-"mod__new__channel_8php.html":[5,0,3,0,4],
-"mod__new__channel_8php.html#a8db1899eeeb44dabd0904065b63627bb":[5,0,3,0,4,0],
-"mod__register_8php.html":[5,0,3,0,5],
-"mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb":[5,0,3,0,5,0],
-"mood_8php.html":[5,0,1,55],
-"mood_8php.html#a721b9b6703b3234a005641c92d409b8f":[5,0,1,55,0],
-"mood_8php.html#a7ae136dd7476865b4828136175db5022":[5,0,1,55,1],
-"msearch_8php.html":[5,0,1,56],
-"msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8":[5,0,1,56,0],
-"namespaceFriendica.html":[3,0,1],
-"namespaceFriendica.html":[4,0,1],
-"namespaceacl__selectors.html":[3,0,0],
-"namespaceacl__selectors.html":[4,0,0],
-"namespacefriendica-to-smarty-tpl.html":[4,0,2],
-"namespacefriendica-to-smarty-tpl.html":[3,0,2],
-"namespacemembers.html":[3,1,0],
-"namespacemembers_func.html":[3,1,1],
-"namespacemembers_vars.html":[3,1,2],
-"namespaces.html":[3,0],
-"namespaceupdatetpl.html":[4,0,3],
-"namespaceupdatetpl.html":[3,0,3],
-"namespaceutil.html":[4,0,4],
-"namespaceutil.html":[3,0,4],
-"nav_8php.html":[5,0,0,45],
-"nav_8php.html#a43be0df73b90647ea70947ce004e231e":[5,0,0,45,0],
-"nav_8php.html#ac3c920ce3ea5b0d9e0678ee37155f06a":[5,0,0,45,1],
-"new__channel_8php.html":[5,0,1,58],
-"new__channel_8php.html#a180b0646957db8290482f02454ad7f23":[5,0,1,58,2],
-"new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164":[5,0,1,58,1],
-"new__channel_8php.html#ae585191610f79da129492482ce8e2fee":[5,0,1,58,0],
-"none_8php.html":[5,0,3,0,6],
-"notifications_8php.html":[5,0,1,59],
-"notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33":[5,0,1,59,1],
-"notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62":[5,0,1,59,0],
-"notifier_8php.html":[5,0,0,47],
-"notifier_8php.html#a568c502f626cff95e344c0748938b85d":[5,0,0,47,0],
-"oauth_8php.html":[5,0,0,49],
-"oauth_8php.html#a7a32a5990f113ac9465b03b29175cf16":[5,0,0,49,3],
-"oauth_8php.html#ad343cab37aa860d2d14dc86b7f5ca0c6":[5,0,0,49,2],
-"oexchange_8php.html":[5,0,1,62],
-"oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26":[5,0,1,62,0],
-"oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59":[5,0,1,62,1],
-"olddefault_8php.html":[5,0,3,1,0,1,5],
-"onedirsync_8php.html":[5,0,0,51],
-"onedirsync_8php.html#a411aedd47c57476099647961e6a86691":[5,0,0,51,0],
-"onepoll_8php.html":[5,0,0,52],
-"onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d":[5,0,0,52,0],
-"opensearch_8php.html":[5,0,1,63],
-"opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9":[5,0,1,63,0],
-"page_8php.html":[5,0,1,64],
-"page_8php.html#a4d89800c0366a239191b1692c09635cf":[5,0,1,64,1],
-"page_8php.html#a91a5f649f68406149108bded1dc90b22":[5,0,1,64,0],
-"page__widgets_8php.html":[5,0,0,53],
-"page__widgets_8php.html#a1a1e729da27f252cab6678288a17958f":[5,0,0,53,1],
-"page__widgets_8php.html#ad82011c1ed90d9de8b9f34c12af5c6f0":[5,0,0,53,0],
-"pages.html":[],
-"parse__url_8php.html":[5,0,1,65],
-"parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b":[5,0,1,65,2],
-"parse__url_8php.html#a25635549f2c22955d72465f4d2e58993":[5,0,1,65,3],
-"parse__url_8php.html#a496f4e3836154f6f32b8e805a7160d3a":[5,0,1,65,1],
-"parse__url_8php.html#aa7dd8f961bea042d62726ed909e4a868":[5,0,1,65,0],
-"passion_8php.html":[5,0,3,1,0,1,6],
-"passionwide_8php.html":[5,0,3,1,0,1,7],
-"permissions_8php.html":[5,0,0,54],
-"permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972":[5,0,0,54,2],
-"permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7":[5,0,0,54,0],
-"permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835":[5,0,0,54,3],
-"permissions_8php.html#aa8b7b102c653649d7a71b5a1c044d90d":[5,0,0,54,4],
-"permissions_8php.html#aeca9b280f3dc3358c89976d81d690008":[5,0,0,54,1],
-"photo_8php.html":[5,0,1,66],
-"photo_8php.html#a582779d24882b0d31ee909a91d70a448":[5,0,1,66,0],
-"photo__driver_8php.html":[5,0,0,1,0],
-"photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca":[5,0,0,1,0,3],
-"photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a":[5,0,0,1,0,2],
-"photo__driver_8php.html#a243cee492ce443afb6a7d77d54b6c4aa":[5,0,0,1,0,1],
-"photo__driver_8php.html#a32e2817faa25d7f11f60a8abff565035":[5,0,0,1,0,4],
-"photo__gd_8php.html":[5,0,0,1,1],
-"photo__imagick_8php.html":[5,0,0,1,2]
+"mod_2bookmarks_8php.html":[5,0,1,8],
+"mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3":[5,0,1,8,1],
+"mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a":[5,0,1,8,0],
+"mod_2chanman_8php.html":[5,0,1,9],
+"mod_2chat_8php.html":[5,0,1,12],
+"mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f":[5,0,1,12,0],
+"mod_2chat_8php.html#a999d594745597c656c9760253ae297ad":[5,0,1,12,2],
+"mod_2chat_8php.html#aa9ae4782e9baef0b7314ab9527c2707e":[5,0,1,12,1],
+"mod_2directory_8php.html":[5,0,1,22],
+"mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf":[5,0,1,22,1],
+"mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44":[5,0,1,22,0],
+"mod_2follow_8php.html":[5,0,1,36],
+"mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a":[5,0,1,36,1],
+"mod_2follow_8php.html#a4c540ea4e9f5c581c1a53516ac585592":[5,0,1,36,0],
+"mod_2group_8php.html":[5,0,1,38],
+"mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83":[5,0,1,38,0],
+"mod_2group_8php.html#aed1f009b1221348021bb34761160ef35":[5,0,1,38,1],
+"mod_2menu_8php.html":[5,0,1,54],
+"mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf":[5,0,1,54,0],
+"mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393":[5,0,1,54,1],
+"mod_2message_8php.html":[5,0,1,55],
+"mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f":[5,0,1,55,0],
+"mod_2network_8php.html":[5,0,1,59],
+"mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec":[5,0,1,59,1],
+"mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4":[5,0,1,59,0],
+"mod_2notify_8php.html":[5,0,1,63],
+"mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae":[5,0,1,63,1],
+"mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3":[5,0,1,63,0],
+"mod_2oembed_8php.html":[5,0,1,64],
+"mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014":[5,0,1,64,0],
+"mod_2photos_8php.html":[5,0,1,72],
+"mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080":[5,0,1,72,2],
+"mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812":[5,0,1,72,0],
+"mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014":[5,0,1,72,1],
+"mod__filestorage_8php.html":[5,0,3,0,0],
+"mod__import_8php.html":[5,0,3,1,3],
+"mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb":[5,0,3,1,3,0],
+"mood_8php.html":[5,0,1,57],
+"mood_8php.html#a721b9b6703b3234a005641c92d409b8f":[5,0,1,57,0],
+"mood_8php.html#a7ae136dd7476865b4828136175db5022":[5,0,1,57,1],
+"msearch_8php.html":[5,0,1,58],
+"msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8":[5,0,1,58,0],
+"namespaceFriendica.html":[4,0,1]
};
diff --git a/doc/html/navtreeindex6.js b/doc/html/navtreeindex6.js
index 12b23d172..1493d3b2c 100644
--- a/doc/html/navtreeindex6.js
+++ b/doc/html/navtreeindex6.js
@@ -1,5 +1,80 @@
var NAVTREEINDEX6 =
{
+"namespaceFriendica.html":[3,0,1],
+"namespaceacl__selectors.html":[4,0,0],
+"namespaceacl__selectors.html":[3,0,0],
+"namespacefriendica-to-smarty-tpl.html":[4,0,2],
+"namespacefriendica-to-smarty-tpl.html":[3,0,2],
+"namespacemembers.html":[3,1,0],
+"namespacemembers_func.html":[3,1,1],
+"namespacemembers_vars.html":[3,1,2],
+"namespaces.html":[3,0],
+"namespaceupdatetpl.html":[4,0,3],
+"namespaceupdatetpl.html":[3,0,3],
+"namespaceutil.html":[4,0,4],
+"namespaceutil.html":[3,0,4],
+"nav_8php.html":[5,0,0,47],
+"nav_8php.html#a43be0df73b90647ea70947ce004e231e":[5,0,0,47,0],
+"nav_8php.html#ac3c920ce3ea5b0d9e0678ee37155f06a":[5,0,0,47,1],
+"new__channel_8php.html":[5,0,1,60],
+"new__channel_8php.html#a180b0646957db8290482f02454ad7f23":[5,0,1,60,2],
+"new__channel_8php.html#a1ad7f99e4366a32942c6b954aba3a164":[5,0,1,60,1],
+"new__channel_8php.html#ae585191610f79da129492482ce8e2fee":[5,0,1,60,0],
+"none_8php.html":[5,0,3,1,4],
+"notes_8php.html":[5,0,1,61],
+"notes_8php.html#a4dbd7b1f906440746af48b484d66535a":[5,0,1,61,0],
+"notifications_8php.html":[5,0,1,62],
+"notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33":[5,0,1,62,1],
+"notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62":[5,0,1,62,0],
+"notifier_8php.html":[5,0,0,49],
+"notifier_8php.html#a568c502f626cff95e344c0748938b85d":[5,0,0,49,0],
+"notred_8php.html":[5,0,3,2,2,1,1],
+"oauth_8php.html":[5,0,0,51],
+"oauth_8php.html#a7a32a5990f113ac9465b03b29175cf16":[5,0,0,51,3],
+"oauth_8php.html#ad343cab37aa860d2d14dc86b7f5ca0c6":[5,0,0,51,2],
+"oexchange_8php.html":[5,0,1,65],
+"oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26":[5,0,1,65,0],
+"oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59":[5,0,1,65,1],
+"olddefault_8php.html":[5,0,3,2,0,1,5],
+"onedirsync_8php.html":[5,0,0,53],
+"onedirsync_8php.html#a411aedd47c57476099647961e6a86691":[5,0,0,53,0],
+"onepoll_8php.html":[5,0,0,54],
+"onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d":[5,0,0,54,0],
+"online_8php.html":[5,0,1,66],
+"online_8php.html#a80e107c84eb722b0ca11d0413b96f9f7":[5,0,1,66,0],
+"openid_8php.html":[5,0,1,67],
+"openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43":[5,0,1,67,0],
+"opensearch_8php.html":[5,0,1,68],
+"opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9":[5,0,1,68,0],
+"page_8php.html":[5,0,1,69],
+"page_8php.html#a4d89800c0366a239191b1692c09635cf":[5,0,1,69,1],
+"page_8php.html#a91a5f649f68406149108bded1dc90b22":[5,0,1,69,0],
+"page__widgets_8php.html":[5,0,0,55],
+"page__widgets_8php.html#a1a1e729da27f252cab6678288a17958f":[5,0,0,55,1],
+"page__widgets_8php.html#ad82011c1ed90d9de8b9f34c12af5c6f0":[5,0,0,55,0],
+"pages.html":[],
+"parse__url_8php.html":[5,0,1,70],
+"parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b":[5,0,1,70,2],
+"parse__url_8php.html#a25635549f2c22955d72465f4d2e58993":[5,0,1,70,3],
+"parse__url_8php.html#a496f4e3836154f6f32b8e805a7160d3a":[5,0,1,70,1],
+"parse__url_8php.html#aa7dd8f961bea042d62726ed909e4a868":[5,0,1,70,0],
+"passion_8php.html":[5,0,3,2,0,1,6],
+"passionwide_8php.html":[5,0,3,2,0,1,7],
+"permissions_8php.html":[5,0,0,56],
+"permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972":[5,0,0,56,2],
+"permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7":[5,0,0,56,0],
+"permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835":[5,0,0,56,3],
+"permissions_8php.html#aa8b7b102c653649d7a71b5a1c044d90d":[5,0,0,56,4],
+"permissions_8php.html#aeca9b280f3dc3358c89976d81d690008":[5,0,0,56,1],
+"photo_8php.html":[5,0,1,71],
+"photo_8php.html#a582779d24882b0d31ee909a91d70a448":[5,0,1,71,0],
+"photo__driver_8php.html":[5,0,0,1,0],
+"photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a":[5,0,0,1,0,2],
+"photo__driver_8php.html#a243cee492ce443afb6a7d77d54b6c4aa":[5,0,0,1,0,1],
+"photo__driver_8php.html#a32e2817faa25d7f11f60a8abff565035":[5,0,0,1,0,4],
+"photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887":[5,0,0,1,0,3],
+"photo__gd_8php.html":[5,0,0,1,1],
+"photo__imagick_8php.html":[5,0,0,1,2],
"php2po_8php.html":[5,0,2,6],
"php2po_8php.html#a1594a11499d06cc8a789ee7ca0c7a12b":[5,0,2,6,7],
"php2po_8php.html#a401d84ce156e49e8168bd0c4781e1be1":[5,0,2,6,5],
@@ -9,55 +84,58 @@ var NAVTREEINDEX6 =
"php2po_8php.html#a6b0b8ebd9ce811d1325ef2c129443bc0":[5,0,2,6,1],
"php2po_8php.html#abbb0e5fd8fbc1f13a9bf68f86eb3d2a4":[5,0,2,6,4],
"php2po_8php.html#ad6726cfaa85d4b8299d2b0f034cbf178":[5,0,2,6,2],
-"php_2default_8php.html":[5,0,3,0,0],
-"php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762":[5,0,3,0,0,0],
-"php_2theme__init_8php.html":[5,0,3,0,7],
-"php_2theme__init_8php.html#a54f32c086fe209c99769a4c4047dd864":[5,0,3,0,7,0],
-"php_8php.html":[5,0,1,68],
-"php_8php.html#adb7164dfed9a4ecbe2e168e1e78f12f6":[5,0,1,68,0],
-"pine_8php.html":[5,0,3,1,0,1,8],
-"ping_8php.html":[5,0,1,69],
-"ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1":[5,0,1,69,0],
-"plugin_8php.html":[5,0,0,56],
-"plugin_8php.html#a030cec6793b909c439c0336ba39b1571":[5,0,0,56,18],
-"plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76":[5,0,0,56,21],
-"plugin_8php.html#a23c4fccf1eb5fcd63b24783ba1f05f7a":[5,0,0,56,8],
-"plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813":[5,0,0,56,14],
-"plugin_8php.html#a425472c5f3afc137268b2ad45652b209":[5,0,0,56,16],
-"plugin_8php.html#a48047edfbef770125a5508dcc2f9282f":[5,0,0,56,7],
-"plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5":[5,0,0,56,13],
-"plugin_8php.html#a4fc13e528367f510fcb6d8bbfc559040":[5,0,0,56,25],
-"plugin_8php.html#a516591850f4fd49fd1425cfa54089db8":[5,0,0,56,9],
-"plugin_8php.html#a56f71fe5adf9586ce950523d8180443e":[5,0,0,56,23],
-"plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1":[5,0,0,56,11],
-"plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2":[5,0,0,56,20],
-"plugin_8php.html#a754d7f53b3abc557b753c057dc4e021d":[5,0,0,56,24],
-"plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4":[5,0,0,56,4],
-"plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c":[5,0,0,56,0],
-"plugin_8php.html#a901657dd078e070516cf97285e0bada7":[5,0,0,56,26],
-"plugin_8php.html#a9039e15aae27676af7777dcbee5a11d6":[5,0,0,56,1],
-"plugin_8php.html#a90538627db68605aeb6db17a8ead6523":[5,0,0,56,22],
-"plugin_8php.html#a905b54e10704b283ac64680a8abc0971":[5,0,0,56,19],
-"plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d":[5,0,0,56,15],
-"plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295":[5,0,0,56,3],
-"plugin_8php.html#ad48de9c0fb7f19413a2aa49250d00405":[5,0,0,56,6],
-"plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f":[5,0,0,56,2],
-"plugin_8php.html#aeaebe63dcf6fa2794f363ba2bc0b2c6b":[5,0,0,56,12],
-"plugin_8php.html#af92789f559b89a380e49d303218aeeca":[5,0,0,56,10],
-"plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025":[5,0,0,56,17],
-"plugin_8php.html#aff0178bd8d0b34a94d5efddc883edd35":[5,0,0,56,5],
+"php_2default_8php.html":[5,0,3,1,0],
+"php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762":[5,0,3,1,0,0],
+"php_2theme__init_8php.html":[5,0,3,1,5],
+"php_2theme__init_8php.html#a54f32c086fe209c99769a4c4047dd864":[5,0,3,1,5,0],
+"php_8php.html":[5,0,1,73],
+"php_8php.html#adb7164dfed9a4ecbe2e168e1e78f12f6":[5,0,1,73,0],
+"pine_8php.html":[5,0,3,2,0,1,8],
+"ping_8php.html":[5,0,1,74],
+"ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1":[5,0,1,74,0],
+"plugin_8php.html":[5,0,0,58],
+"plugin_8php.html#a030cec6793b909c439c0336ba39b1571":[5,0,0,58,21],
+"plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76":[5,0,0,58,24],
+"plugin_8php.html#a0e8c2ea50bfdbc39e17ccccaea21ddc3":[5,0,0,58,20],
+"plugin_8php.html#a23c4fccf1eb5fcd63b24783ba1f05f7a":[5,0,0,58,8],
+"plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813":[5,0,0,58,16],
+"plugin_8php.html#a425472c5f3afc137268b2ad45652b209":[5,0,0,58,18],
+"plugin_8php.html#a48047edfbef770125a5508dcc2f9282f":[5,0,0,58,7],
+"plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5":[5,0,0,58,15],
+"plugin_8php.html#a4a0ae7b881e7c8af99a69e3b03f898b4":[5,0,0,58,13],
+"plugin_8php.html#a4fc13e528367f510fcb6d8bbfc559040":[5,0,0,58,28],
+"plugin_8php.html#a516591850f4fd49fd1425cfa54089db8":[5,0,0,58,9],
+"plugin_8php.html#a56f71fe5adf9586ce950523d8180443e":[5,0,0,58,26],
+"plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1":[5,0,0,58,11],
+"plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2":[5,0,0,58,23],
+"plugin_8php.html#a754d7f53b3abc557b753c057dc4e021d":[5,0,0,58,27],
+"plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4":[5,0,0,58,4],
+"plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c":[5,0,0,58,0],
+"plugin_8php.html#a901657dd078e070516cf97285e0bada7":[5,0,0,58,29],
+"plugin_8php.html#a9039e15aae27676af7777dcbee5a11d6":[5,0,0,58,1],
+"plugin_8php.html#a90538627db68605aeb6db17a8ead6523":[5,0,0,58,25],
+"plugin_8php.html#a905b54e10704b283ac64680a8abc0971":[5,0,0,58,22],
+"plugin_8php.html#a9ab6caae31935f6cf781ce7872db7cdf":[5,0,0,58,12],
+"plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d":[5,0,0,58,17],
+"plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295":[5,0,0,58,3],
+"plugin_8php.html#ad48de9c0fb7f19413a2aa49250d00405":[5,0,0,58,6],
+"plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f":[5,0,0,58,2],
+"plugin_8php.html#aeaebe63dcf6fa2794f363ba2bc0b2c6b":[5,0,0,58,14],
+"plugin_8php.html#af92789f559b89a380e49d303218aeeca":[5,0,0,58,10],
+"plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025":[5,0,0,58,19],
+"plugin_8php.html#aff0178bd8d0b34a94d5efddc883edd35":[5,0,0,58,5],
"po2php_8php.html":[5,0,2,7],
"po2php_8php.html#a3b75e36f913198299e99559b175cd8b4":[5,0,2,7,0],
-"poco_8php.html":[5,0,1,70],
-"poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498":[5,0,1,70,0],
-"poke_8php.html":[5,0,1,71],
-"poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b":[5,0,1,71,1],
-"poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993":[5,0,1,71,0],
-"poller_8php.html":[5,0,0,57],
-"poller_8php.html#a5f12df3a4738124b6c039971e87e76da":[5,0,0,57,0],
-"post_8php.html":[5,0,1,72],
-"post_8php.html#af4b48181ce773ef0cdfc972441445c34":[5,0,1,72,0],
-"post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75":[5,0,1,72,1],
+"poco_8php.html":[5,0,1,75],
+"poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498":[5,0,1,75,0],
+"poke_8php.html":[5,0,1,76],
+"poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b":[5,0,1,76,1],
+"poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993":[5,0,1,76,0],
+"poller_8php.html":[5,0,0,59],
+"poller_8php.html#a5f12df3a4738124b6c039971e87e76da":[5,0,0,59,0],
+"post_8php.html":[5,0,1,77],
+"post_8php.html#af4b48181ce773ef0cdfc972441445c34":[5,0,1,77,0],
+"post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75":[5,0,1,77,1],
"post__to__red_8php.html":[5,0,2,1,0,0],
"post__to__red_8php.html#a085c250d4ceff5e4f10052f3d2039823":[5,0,2,1,0,0,16],
"post__to__red_8php.html#a0f139dea77a94c98f26007963eea639c":[5,0,2,1,0,0,12],
@@ -83,171 +161,93 @@ var NAVTREEINDEX6 =
"post__to__red_8php.html#af2713018a2dc97e88f121fc6215beb66":[5,0,2,1,0,0,18],
"post__to__red_8php.html#af3e7ebd361d4ed7cb6d43209970cd94a":[5,0,2,1,0,0,23],
"post__to__red_8php.html#af5fd50e2c42ede85f8a9e8d9ee3cf540":[5,0,2,1,0,0,11],
-"pretheme_8php.html":[5,0,1,73],
-"pretheme_8php.html#af5660943ee99db5fd75182316522eafe":[5,0,1,73,0],
-"probe_8php.html":[5,0,1,74],
-"probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99":[5,0,1,74,0],
-"profile_8php.html":[5,0,1,75],
-"profile_8php.html#a1a2482b775476f2f64ea5e8f4fc3fd1e":[5,0,1,75,0],
-"profile_8php.html#a3775cf6eef6587e5143133356a7b76c0":[5,0,1,75,1],
-"profile_8php.html#ab5d0246be0552e2182a585c1206d22a5":[5,0,1,75,2],
-"profile__photo_8php.html":[5,0,1,76],
-"profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02":[5,0,1,76,1],
-"profile__photo_8php.html#a4b80234074bd603221aa5364f330e479":[5,0,1,76,2],
-"profile__photo_8php.html#ac9cd968a767e2ae1b88383b6cdd6dbe3":[5,0,1,76,0],
-"profile__selectors_8php.html":[5,0,0,58],
-"profile__selectors_8php.html#a3b50b3ea4ea4bdbebebfffc5d1b157c7":[5,0,0,58,2],
-"profile__selectors_8php.html#a7473dd095987e1cdcc79d4f0bb5e6798":[5,0,0,58,1],
-"profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355":[5,0,0,58,0],
-"profiles_8php.html":[5,0,1,77],
-"profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c":[5,0,1,77,0],
-"profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e":[5,0,1,77,2],
-"profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00":[5,0,1,77,1],
-"profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04":[5,0,1,77,3],
-"profperm_8php.html":[5,0,1,78],
-"profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6":[5,0,1,78,2],
-"profperm_8php.html#a77fd398ae7c25142e1d9ad724ec347cc":[5,0,1,78,0],
-"profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023":[5,0,1,78,1],
-"pubsites_8php.html":[5,0,1,79],
-"pubsites_8php.html#af614e279aab54065345bda6b03eafdf0":[5,0,1,79,0],
-"qsearch_8php.html":[5,0,1,80],
-"qsearch_8php.html#a0501887b95bd8fa21018b2936a668894":[5,0,1,80,0],
-"queue_8php.html":[5,0,0,60],
-"queue_8php.html#af8c93de86d866c3200174c8450a0f341":[5,0,0,60,0],
-"queue__fn_8php.html":[5,0,0,61],
-"queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1":[5,0,0,61,1],
-"queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24":[5,0,0,61,0],
-"randprof_8php.html":[5,0,1,81],
-"randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090":[5,0,1,81,0],
-"redbasic_2php_2style_8php.html":[5,0,3,1,2,0,1],
-"redbasic_2php_2style_8php.html#a01c151bf47f7da2b979aaa4cb868da4c":[5,0,3,1,2,0,1,12],
-"redbasic_2php_2style_8php.html#a0b070f2c9140a7a12a0b1f88601a29e4":[5,0,3,1,2,0,1,16],
-"redbasic_2php_2style_8php.html#a0bdce350cf14bac44976e786d1be6574":[5,0,3,1,2,0,1,2],
-"redbasic_2php_2style_8php.html#a0cb037986e32302685d4f580dedd6473":[5,0,3,1,2,0,1,5],
-"redbasic_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a":[5,0,3,1,2,0,1,23],
-"redbasic_2php_2style_8php.html#a136b0a2cdeb37f3fa506d28f82dcdbf8":[5,0,3,1,2,0,1,9],
-"redbasic_2php_2style_8php.html#a27cb59bbc750341f448cd0c298a7ea16":[5,0,3,1,2,0,1,8],
-"redbasic_2php_2style_8php.html#a339624aeef6604a2f00209a3962c6e1c":[5,0,3,1,2,0,1,0],
-"redbasic_2php_2style_8php.html#a4161f6b8aa923f67e53f54dfb6554cdb":[5,0,3,1,2,0,1,21],
-"redbasic_2php_2style_8php.html#a5bff5012c56e34da6b3b2ed475726b27":[5,0,3,1,2,0,1,4],
-"redbasic_2php_2style_8php.html#a61891d0d3e6894f52410d507b04e565d":[5,0,3,1,2,0,1,24],
-"redbasic_2php_2style_8php.html#a6502bedd57105ad1fb2dee2be9cf6351":[5,0,3,1,2,0,1,15],
-"redbasic_2php_2style_8php.html#a68e3ff836ec87ae1370c9f4a12c21c6b":[5,0,3,1,2,0,1,6],
-"redbasic_2php_2style_8php.html#a6ffadaf926b41ad84c30da319011e9ad":[5,0,3,1,2,0,1,19],
-"redbasic_2php_2style_8php.html#a810142b4bdd35a1d377ab279b02b47eb":[5,0,3,1,2,0,1,22],
-"redbasic_2php_2style_8php.html#a83022b1d70799d2bde3d64dca9cb40ee":[5,0,3,1,2,0,1,17],
-"redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a":[5,0,3,1,2,0,1,26],
-"redbasic_2php_2style_8php.html#a8fdd5874587a9ad86fb05ed0be265649":[5,0,3,1,2,0,1,10],
-"redbasic_2php_2style_8php.html#a9b489f1c595b867212d30eca0c85b38c":[5,0,3,1,2,0,1,13],
-"redbasic_2php_2style_8php.html#ab00dfc29448b183055d2ae61a0e1874a":[5,0,3,1,2,0,1,18],
-"redbasic_2php_2style_8php.html#ab3afb90d611eca90819f597a2c0bb459":[5,0,3,1,2,0,1,25],
-"redbasic_2php_2style_8php.html#ab5ec5703848e0132f8a8f3d3a53a58e1":[5,0,3,1,2,0,1,11],
-"redbasic_2php_2style_8php.html#ac98bd8264411bd207a5740d08e81a158":[5,0,3,1,2,0,1,14],
-"redbasic_2php_2style_8php.html#acfd00ec469ca3c5e8bfac787573093f3":[5,0,3,1,2,0,1,20],
-"redbasic_2php_2style_8php.html#ad78cb8a1793834626d73aca22a1501f8":[5,0,3,1,2,0,1,3],
-"redbasic_2php_2style_8php.html#ae587aa6949ab6e4aa77a591e60f67ee0":[5,0,3,1,2,0,1,1],
-"redbasic_2php_2style_8php.html#afcbcf57d0b90d2e4226c2e8a1171befc":[5,0,3,1,2,0,1,7],
-"redbasic_2php_2theme_8php.html":[5,0,3,1,2,0,2],
-"redbasic_2php_2theme_8php.html#af6eb813e9fc7e2d76ac1b82bc5c0ed9b":[5,0,3,1,2,0,2,0],
-"redbasic_8php.html":[5,0,3,1,0,1,9],
-"reddav_8php.html":[5,0,0,62],
-"redir_8php.html":[5,0,1,82],
-"redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5":[5,0,1,82,0],
-"register_8php.html":[5,0,1,83],
-"register_8php.html#a0e91f57f111407ea8d3223a05022bb2a":[5,0,1,83,0],
-"register_8php.html#a51731dcc1917c58a790eb1c0f6132271":[5,0,1,83,2],
-"register_8php.html#ae20c0cd40f738d6295de58b9202c83d5":[5,0,1,83,1],
-"regmod_8php.html":[5,0,1,84],
-"regmod_8php.html#a7953df4e32e63946565e90cdd5d50409":[5,0,1,84,0],
-"removeme_8php.html":[5,0,1,85],
-"removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c":[5,0,1,85,0],
-"removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88":[5,0,1,85,1],
-"rmagic_8php.html":[5,0,1,86],
-"rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef":[5,0,1,86,0],
-"rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f":[5,0,1,86,2],
-"rmagic_8php.html#a95455edd43f1bff39446a57388cdde16":[5,0,1,86,1],
-"rpost_8php.html":[5,0,1,87],
-"rpost_8php.html#a8190354d789000806d9879aea276728f":[5,0,1,87,0],
-"rsd__xml_8php.html":[5,0,1,88],
-"rsd__xml_8php.html#a740cd02fa15e5a53f8547fac73f0ab82":[5,0,1,88,0],
-"search_8php.html":[5,0,1,89],
-"search_8php.html#a230ec9681ddee3b5b8b40c8d550f32f7":[5,0,1,89,2],
-"search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6":[5,0,1,89,3],
-"search_8php.html#ab2568591359edde5b483a6cd9a24b2cc":[5,0,1,89,0],
-"search_8php.html#acf19fd30f07f495781ca0d7a0a08b435":[5,0,1,89,1],
-"search__ac_8php.html":[5,0,1,90],
-"search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138":[5,0,1,90,0],
-"security_8php.html":[5,0,0,63],
-"security_8php.html#a15e0f8f511cc06192db63387f97238b3":[5,0,0,63,11],
-"security_8php.html#a20f8b9851f23ee8894b8925584ef6821":[5,0,0,63,2],
-"security_8php.html#a444ac867dfa8c37cf0a7a226412bee28":[5,0,0,63,4],
-"security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433":[5,0,0,63,5],
-"security_8php.html#a8d23d2597aae380a3341872fe9513380":[5,0,0,63,1],
-"security_8php.html#a9355488460ab11d6058656ff919e5cf9":[5,0,0,63,7],
-"security_8php.html#a9c6180e82150a5a9af91a1255d096b5c":[5,0,0,63,3],
-"security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01":[5,0,0,63,9],
-"security_8php.html#acd06ef411116115c2f0a92633700db8a":[5,0,0,63,6],
-"security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733":[5,0,0,63,0],
-"security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809":[5,0,0,63,10],
-"security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f":[5,0,0,63,8],
-"session_8php.html":[5,0,0,64],
-"session_8php.html#a26fa1042356d555023cbf15ddd4f8507":[5,0,0,64,4],
-"session_8php.html#a4c0ead624f95483e386bc80abf570a8f":[5,0,0,64,0],
-"session_8php.html#a5e1c616e02b863d5450317d101366bb7":[5,0,0,64,1],
-"session_8php.html#a62e4a6cb26b4bb1b8ddd8277b26090eb":[5,0,0,64,8],
-"session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e":[5,0,0,64,5],
-"session_8php.html#a96b09cc763572f45280786a7b33feb7e":[5,0,0,64,7],
-"session_8php.html#ac4461c1984543d3553e73dba2771568f":[5,0,0,64,6],
-"session_8php.html#ac95373f4966862a028033dd2f94d4da1":[5,0,0,64,3],
-"session_8php.html#af0100a2642a5268594bbd5742a03d885":[5,0,0,64,9],
-"session_8php.html#af230b86bfff7db66c3bdd7e0bbc24052":[5,0,0,64,2],
-"settings_8php.html":[5,0,1,91],
-"settings_8php.html#a39abc76ff5459c57e3b957664f273f18":[5,0,1,91,0],
-"settings_8php.html#a3a4cde287482fced008583f54ba2a722":[5,0,1,91,2],
-"settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586":[5,0,1,91,3],
-"settings_8php.html#ae5aebccb006bee1300078576baaf5582":[5,0,1,91,1],
-"setup_8php.html":[5,0,1,92],
-"setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4":[5,0,1,92,2],
-"setup_8php.html#a13cf286774149a0a7bd8adb8179cec75":[5,0,1,92,13],
-"setup_8php.html#a14d208682a88632290c895d20da6e7d6":[5,0,1,92,5],
-"setup_8php.html#a267555abd17290e659b4bf44b885e4e0":[5,0,1,92,12],
-"setup_8php.html#a2b375ddc555140236fc500135de99371":[5,0,1,92,9],
-"setup_8php.html#a5ad92c0857d1dadd6b60a9a557159c9f":[5,0,1,92,3],
-"setup_8php.html#a69a450e06dd3771fb51d3e4b0266a35e":[5,0,1,92,1],
-"setup_8php.html#a8652788e8589778c5f81634a9d5b9429":[5,0,1,92,7],
-"setup_8php.html#a88247384a96e14516f474d7af6a465c1":[5,0,1,92,11],
-"setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76":[5,0,1,92,4],
-"setup_8php.html#abe405d227ba7232971964a706d4f3bce":[5,0,1,92,10],
-"setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a":[5,0,1,92,8],
-"setup_8php.html#addb24714bc2542aa4f4215e98fe48432":[5,0,1,92,15],
-"setup_8php.html#ae8e4d9279a61de74d5f39962cb7b6ca1":[5,0,1,92,0],
-"setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58":[5,0,1,92,14],
-"setup_8php.html#afd8b0b3ade1507c45325caf377bf459d":[5,0,1,92,6],
-"share_8php.html":[5,0,1,93],
-"share_8php.html#afeb26046bdd02567ecd29ab5f188b249":[5,0,1,93,0],
-"siteinfo_8php.html":[5,0,1,94],
-"siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0":[5,0,1,94,1],
-"siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656":[5,0,1,94,0],
-"sitelist_8php.html":[5,0,1,95],
-"sitelist_8php.html#a665a59bf60f780b40f32c909f4a473b1":[5,0,1,95,0],
-"smilies_8php.html":[5,0,1,96],
-"smilies_8php.html#ab43b1e9f33a700a830aff14c7b3a617f":[5,0,1,96,0],
-"socgraph_8php.html":[5,0,0,65],
-"socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586":[5,0,0,65,0],
-"socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6":[5,0,0,65,6],
-"socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329":[5,0,0,65,7],
-"socgraph_8php.html#a790690bb1a1d02483fe31632a160144d":[5,0,0,65,8],
-"socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918":[5,0,0,65,1],
-"socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84":[5,0,0,65,4],
-"socgraph_8php.html#ac343a846241d36cdf046b08f3396cfe9":[5,0,0,65,2],
-"socgraph_8php.html#af175807406d94407a5e11742a3287746":[5,0,0,65,5],
-"socgraph_8php.html#af29d056beec10b4e38e5209c92452894":[5,0,0,65,3],
-"sources_8php.html":[5,0,1,97],
-"sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7":[5,0,1,97,0],
-"sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e":[5,0,1,97,1],
-"starred_8php.html":[5,0,1,98],
-"starred_8php.html#a63024fb418c678e49fd535e3752d349a":[5,0,1,98,0],
-"subthread_8php.html":[5,0,1,99],
-"subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3":[5,0,1,99,0],
-"suggest_8php.html":[5,0,1,100]
+"pretheme_8php.html":[5,0,1,78],
+"pretheme_8php.html#af5660943ee99db5fd75182316522eafe":[5,0,1,78,0],
+"probe_8php.html":[5,0,1,79],
+"probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99":[5,0,1,79,0],
+"profile_8php.html":[5,0,1,80],
+"profile_8php.html#a3775cf6eef6587e5143133356a7b76c0":[5,0,1,80,0],
+"profile_8php.html#ab5d0246be0552e2182a585c1206d22a5":[5,0,1,80,1],
+"profile__photo_8php.html":[5,0,1,81],
+"profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02":[5,0,1,81,0],
+"profile__photo_8php.html#a4b80234074bd603221aa5364f330e479":[5,0,1,81,1],
+"profile__selectors_8php.html":[5,0,0,60],
+"profile__selectors_8php.html#a3b50b3ea4ea4bdbebebfffc5d1b157c7":[5,0,0,60,2],
+"profile__selectors_8php.html#a7473dd095987e1cdcc79d4f0bb5e6798":[5,0,0,60,1],
+"profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355":[5,0,0,60,0],
+"profiles_8php.html":[5,0,1,82],
+"profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e":[5,0,1,82,1],
+"profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00":[5,0,1,82,0],
+"profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04":[5,0,1,82,2],
+"profperm_8php.html":[5,0,1,83],
+"profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6":[5,0,1,83,1],
+"profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023":[5,0,1,83,0],
+"pubsites_8php.html":[5,0,1,84],
+"pubsites_8php.html#af614e279aab54065345bda6b03eafdf0":[5,0,1,84,0],
+"queue_8php.html":[5,0,0,62],
+"queue_8php.html#af8c93de86d866c3200174c8450a0f341":[5,0,0,62,0],
+"queue__fn_8php.html":[5,0,0,63],
+"queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1":[5,0,0,63,1],
+"queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24":[5,0,0,63,0],
+"randprof_8php.html":[5,0,1,85],
+"randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090":[5,0,1,85,0],
+"redbasic_2php_2style_8php.html":[5,0,3,2,2,0,1],
+"redbasic_2php_2style_8php.html#a01c151bf47f7da2b979aaa4cb868da4c":[5,0,3,2,2,0,1,1],
+"redbasic_2php_2style_8php.html#a5bff5012c56e34da6b3b2ed475726b27":[5,0,3,2,2,0,1,0],
+"redbasic_2php_2style_8php.html#a61891d0d3e6894f52410d507b04e565d":[5,0,3,2,2,0,1,4],
+"redbasic_2php_2style_8php.html#a9b489f1c595b867212d30eca0c85b38c":[5,0,3,2,2,0,1,2],
+"redbasic_2php_2style_8php.html#ab3afb90d611eca90819f597a2c0bb459":[5,0,3,2,2,0,1,5],
+"redbasic_2php_2style_8php.html#ac98bd8264411bd207a5740d08e81a158":[5,0,3,2,2,0,1,3],
+"redbasic_2php_2theme_8php.html":[5,0,3,2,2,0,2],
+"redbasic_2php_2theme_8php.html#af6eb813e9fc7e2d76ac1b82bc5c0ed9b":[5,0,3,2,2,0,2,0],
+"redbasic_8php.html":[5,0,3,2,0,1,9],
+"reddav_8php.html":[5,0,0,64],
+"reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266":[5,0,0,64,5],
+"reddav_8php.html#a9f531641dfb4e43cd88ac1a9ae7e2088":[5,0,0,64,6],
+"reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66":[5,0,0,64,4],
+"register_8php.html":[5,0,1,86],
+"register_8php.html#a0e91f57f111407ea8d3223a05022bb2a":[5,0,1,86,0],
+"register_8php.html#a51731dcc1917c58a790eb1c0f6132271":[5,0,1,86,2],
+"register_8php.html#ae20c0cd40f738d6295de58b9202c83d5":[5,0,1,86,1],
+"regmod_8php.html":[5,0,1,87],
+"regmod_8php.html#a7953df4e32e63946565e90cdd5d50409":[5,0,1,87,0],
+"removeme_8php.html":[5,0,1,88],
+"removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c":[5,0,1,88,0],
+"removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88":[5,0,1,88,1],
+"rmagic_8php.html":[5,0,1,89],
+"rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef":[5,0,1,89,0],
+"rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f":[5,0,1,89,2],
+"rmagic_8php.html#a95455edd43f1bff39446a57388cdde16":[5,0,1,89,1],
+"rpost_8php.html":[5,0,1,90],
+"rpost_8php.html#a8190354d789000806d9879aea276728f":[5,0,1,90,0],
+"rsd__xml_8php.html":[5,0,1,91],
+"rsd__xml_8php.html#a740cd02fa15e5a53f8547fac73f0ab82":[5,0,1,91,0],
+"search_8php.html":[5,0,1,92],
+"search_8php.html#ab2568591359edde5b483a6cd9a24b2cc":[5,0,1,92,0],
+"search_8php.html#acf19fd30f07f495781ca0d7a0a08b435":[5,0,1,92,1],
+"search__ac_8php.html":[5,0,1,93],
+"search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138":[5,0,1,93,0],
+"security_8php.html":[5,0,0,65],
+"security_8php.html#a15e0f8f511cc06192db63387f97238b3":[5,0,0,65,11],
+"security_8php.html#a20f8b9851f23ee8894b8925584ef6821":[5,0,0,65,2],
+"security_8php.html#a444ac867dfa8c37cf0a7a226412bee28":[5,0,0,65,4],
+"security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433":[5,0,0,65,5],
+"security_8php.html#a8d23d2597aae380a3341872fe9513380":[5,0,0,65,1],
+"security_8php.html#a9355488460ab11d6058656ff919e5cf9":[5,0,0,65,7],
+"security_8php.html#a9c6180e82150a5a9af91a1255d096b5c":[5,0,0,65,3],
+"security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01":[5,0,0,65,9],
+"security_8php.html#acd06ef411116115c2f0a92633700db8a":[5,0,0,65,6],
+"security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733":[5,0,0,65,0],
+"security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809":[5,0,0,65,10],
+"security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f":[5,0,0,65,8],
+"session_8php.html":[5,0,0,66],
+"session_8php.html#a26fa1042356d555023cbf15ddd4f8507":[5,0,0,66,4],
+"session_8php.html#a4c0ead624f95483e386bc80abf570a8f":[5,0,0,66,0],
+"session_8php.html#a5e1c616e02b863d5450317d101366bb7":[5,0,0,66,1],
+"session_8php.html#a62e4a6cb26b4bb1b8ddd8277b26090eb":[5,0,0,66,8],
+"session_8php.html#a7f0f50576360d9ba52d29364e0b83a8e":[5,0,0,66,5],
+"session_8php.html#a96b09cc763572f45280786a7b33feb7e":[5,0,0,66,7],
+"session_8php.html#ac4461c1984543d3553e73dba2771568f":[5,0,0,66,6],
+"session_8php.html#ac95373f4966862a028033dd2f94d4da1":[5,0,0,66,3],
+"session_8php.html#af0100a2642a5268594bbd5742a03d885":[5,0,0,66,9]
};
diff --git a/doc/html/navtreeindex7.js b/doc/html/navtreeindex7.js
index 34efe688e..9ca9e8985 100644
--- a/doc/html/navtreeindex7.js
+++ b/doc/html/navtreeindex7.js
@@ -1,140 +1,197 @@
var NAVTREEINDEX7 =
{
-"suggest_8php.html#a4df91c84594d51ba56b5918de414230d":[5,0,1,100,0],
-"suggest_8php.html#a58748a8235d4523f8333847f3e42dd91":[5,0,1,100,1],
-"suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c":[5,0,1,100,2],
-"system__unavailable_8php.html":[5,0,0,66],
-"system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa":[5,0,0,66,0],
-"tagger_8php.html":[5,0,1,101],
-"tagger_8php.html#a0e4a3eb177d1684553c547503d67161c":[5,0,1,101,0],
-"tagrm_8php.html":[5,0,1,102],
-"tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78":[5,0,1,102,1],
-"tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a":[5,0,1,102,0],
-"taxonomy_8php.html":[5,0,0,67],
-"taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce":[5,0,0,67,8],
-"taxonomy_8php.html#a088371f4bc19155b2291508f5cd63332":[5,0,0,67,0],
-"taxonomy_8php.html#a08df5164926d2b31b8e9fcfe919de2b6":[5,0,0,67,2],
-"taxonomy_8php.html#a0fb8cf0ac7bcbc8b27d856fe9bf69cd1":[5,0,0,67,6],
-"taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1":[5,0,0,67,4],
-"taxonomy_8php.html#a3299482ac20e9d79453048dd52881d37":[5,0,0,67,3],
-"taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd":[5,0,0,67,9],
-"taxonomy_8php.html#a599ee71dd3194c8127b00dabec77abc1":[5,0,0,67,1],
-"taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c":[5,0,0,67,13],
-"taxonomy_8php.html#aaeded36bcc983b35d9205fe5b6c18c43":[5,0,0,67,12],
-"taxonomy_8php.html#aaf90ba8b839d6459065f39a4f1109b8a":[5,0,0,67,10],
-"taxonomy_8php.html#ac12a651a42ed77f8dc7072c6168811a2":[5,0,0,67,7],
-"taxonomy_8php.html#ac21d1dff16d569e7d110167aea4e63c2":[5,0,0,67,11],
-"taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1":[5,0,0,67,5],
-"template__processor_8php.html":[5,0,0,68],
-"template__processor_8php.html#a797745996c7839a93b2ab1af456631ab":[5,0,0,68,3],
-"template__processor_8php.html#ab2bcd8738f20f293636a6ae8e1099db5":[5,0,0,68,1],
-"template__processor_8php.html#ac635bb19a5f6eadd6b0cddefdd537c1e":[5,0,0,68,2],
-"text_8php.html":[5,0,0,69],
-"text_8php.html#a0271381208acfa2d4cff36da281e3e23":[5,0,0,69,39],
-"text_8php.html#a030fa5ecc64168af0c4f44897a9bce63":[5,0,0,69,45],
-"text_8php.html#a070384ec000fd65043fce11d5392d241":[5,0,0,69,6],
-"text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c":[5,0,0,69,16],
-"text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3":[5,0,0,69,11],
-"text_8php.html#a11255c8c4e5245b6c24f97684826aa54":[5,0,0,69,44],
-"text_8php.html#a13286f8a95d2de6b102966ecc270c8d6":[5,0,0,69,5],
-"text_8php.html#a1360fed7f918d859daaca1c9f384f9af":[5,0,0,69,77],
-"text_8php.html#a138a3a611fa7f4f3630674145fc826bf":[5,0,0,69,32],
-"text_8php.html#a1557112a774ec00fa06ed6b6f6495506":[5,0,0,69,35],
-"text_8php.html#a1633412120f52bdce5f43e0a127d9293":[5,0,0,69,49],
-"text_8php.html#a1af49756c8c71902a66c7e329c462beb":[5,0,0,69,52],
-"text_8php.html#a1e510c53624933ce9b7d6715784894db":[5,0,0,69,46],
-"text_8php.html#a24d441d30df4b8e6bf6780bf62a5e2c6":[5,0,0,69,47],
-"text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728":[5,0,0,69,42],
-"text_8php.html#a27cd2c1b3bcb49a0cfb7249e851725ca":[5,0,0,69,4],
-"text_8php.html#a29988052f3944111def3b6aaf2c7a8f6":[5,0,0,69,85],
-"text_8php.html#a29d6b804e368d3ef359ee295e96ed4c7":[5,0,0,69,74],
-"text_8php.html#a2a902f5fdba8646333e997898ac45ea3":[5,0,0,69,48],
-"text_8php.html#a2e8d6c402603be3a1256a16605e09c2a":[5,0,0,69,10],
-"text_8php.html#a2ffd79c60cc87cec24ef76447b905187":[5,0,0,69,87],
-"text_8php.html#a3054189cff173977f4216c9a3dd29e1b":[5,0,0,69,23],
-"text_8php.html#a324c58f37f6acdf9cd1922aa76077d9f":[5,0,0,69,82],
-"text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f":[5,0,0,69,80],
-"text_8php.html#a3972701c5c83624ec4e2d06242f614e7":[5,0,0,69,30],
-"text_8php.html#a3999a0b3e22e440f280ee791ce34d384":[5,0,0,69,41],
-"text_8php.html#a3d225b253bb9e0f2498c11647d927b0b":[5,0,0,69,71],
-"text_8php.html#a3d2793d66db3345fd290b71e2eadf98e":[5,0,0,69,7],
-"text_8php.html#a3ef8c0cf31f35f77462067de8712fa34":[5,0,0,69,28],
-"text_8php.html#a405afe814a23f3bd94d826101aa168ab":[5,0,0,69,83],
-"text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a":[5,0,0,69,33],
-"text_8php.html#a44d460fcdee6247c67b9bef3ea15f3e6":[5,0,0,69,70],
-"text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623":[5,0,0,69,31],
-"text_8php.html#a47c1e4a5f3f53027daacd8a9db24f285":[5,0,0,69,43],
-"text_8php.html#a4841df5beabdd1bdd1ed56781a915d61":[5,0,0,69,61],
-"text_8php.html#a4bbb7d00c05cd20b4e043424f322388f":[5,0,0,69,50],
-"text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91":[5,0,0,69,24],
-"text_8php.html#a4e7698aca48982512594b274543c3b9b":[5,0,0,69,60],
-"text_8php.html#a543447c5ed766535221e2d9636b379ee":[5,0,0,69,79],
-"text_8php.html#a55ab893be57feda59c2a7ba1e58ff2d0":[5,0,0,69,9],
-"text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63":[5,0,0,69,14],
-"text_8php.html#a6a3d80a6c6fb234fd0bac44203b828eb":[5,0,0,69,78],
-"text_8php.html#a71f6952243d3fe1c5a8154f78027e29c":[5,0,0,69,40],
-"text_8php.html#a736db13a966b8abaf8c9198faa35911a":[5,0,0,69,27],
-"text_8php.html#a740ad03e00459039a2c0992246c4e727":[5,0,0,69,75],
-"text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85":[5,0,0,69,1],
-"text_8php.html#a75c326298519ed14ebe762194c8a3f2a":[5,0,0,69,34],
-"text_8php.html#a76d1b3435c067978d7b484c45f56472b":[5,0,0,69,26],
-"text_8php.html#a8264348059abd1d4d5bb521323d3b19a":[5,0,0,69,76],
-"text_8php.html#a85e3a4851c16674834010d8419a5d7ca":[5,0,0,69,8],
-"text_8php.html#a876e94892867019935b348b573299352":[5,0,0,69,68],
-"text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13":[5,0,0,69,72],
-"text_8php.html#a87a3cefc603302c78982f1d8e1245265":[5,0,0,69,15],
-"text_8php.html#a89929fa6f70a8ba54d5273fcf622b665":[5,0,0,69,20],
-"text_8php.html#a8b0a799341b1fc4cba2c3ede3e3fc9b6":[5,0,0,69,59],
-"text_8php.html#a8d8c4a11e53461caca21181ebd72daca":[5,0,0,69,19],
-"text_8php.html#a95fd2f8f23a1948414a03ebc963bac57":[5,0,0,69,3],
-"text_8php.html#a98fd99dee3da8cf4c148dc04efe782ee":[5,0,0,69,54],
-"text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09":[5,0,0,69,65],
-"text_8php.html#a9d6a5ee1290de7a8b483fe78585daade":[5,0,0,69,63],
-"text_8php.html#a9fbeae13c9abd6e27cb4d8d1817f969c":[5,0,0,69,67],
-"text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66":[5,0,0,69,29],
-"text_8php.html#aa5148a0dfea2a1ca64c3d52f10aa2d64":[5,0,0,69,17],
-"text_8php.html#aa5528f41533927e1bd2da3618a74a6d7":[5,0,0,69,55],
-"text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e":[5,0,0,69,36],
-"text_8php.html#aad557c054cf2ed915633701018fc7e3f":[5,0,0,69,86],
-"text_8php.html#aaed4413ed8918838b517e3b2fafaea0d":[5,0,0,69,81],
-"text_8php.html#ab4a4c3d4700bc219bb84f33b499314f4":[5,0,0,69,84],
-"text_8php.html#ac19d2b33a58372a357a43d51eed19162":[5,0,0,69,56],
-"text_8php.html#ac1dbf2e37e8069bea2c0f557fdbf203e":[5,0,0,69,37],
-"text_8php.html#aca0f589be74fab1a460c57e88dad9779":[5,0,0,69,69],
-"text_8php.html#ace3c98538c63e09b70a363210b414112":[5,0,0,69,21],
-"text_8php.html#acedb584f65114a33f389efb796172a91":[5,0,0,69,2],
-"text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784":[5,0,0,69,13],
-"text_8php.html#ad855a32bee22c3f3b9734e3a334b96f2":[5,0,0,69,64],
-"text_8php.html#adba17ec946f4285285dc100f7860bf51":[5,0,0,69,51],
-"text_8php.html#ae17b39d5e321debd3ad16dcbbde842b8":[5,0,0,69,38],
-"text_8php.html#ae2126da85966da0e79c6bcbac63b0bda":[5,0,0,69,66],
-"text_8php.html#ae4282a39492caa23ccbc2ce98e54f110":[5,0,0,69,18],
-"text_8php.html#ae4df74296fbe55051ed3c035e55205e5":[5,0,0,69,57],
-"text_8php.html#ae4f6881d7e13623f8eded6277595112a":[5,0,0,69,25],
-"text_8php.html#af8a3e3a66a7b862d4510f145d2e13186":[5,0,0,69,0],
-"text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53":[5,0,0,69,73],
-"text_8php.html#afc998d2796a6b2a08e96f7cc061e7221":[5,0,0,69,62],
-"text_8php.html#afdc69fe3f6c09e35e46304dcea63ae28":[5,0,0,69,22],
-"text_8php.html#afe18627c4983ee5f7c940a0992818cd5":[5,0,0,69,12],
-"text_8php.html#afe54312607d92f7ce9593f5760831f80":[5,0,0,69,58],
-"text_8php.html#afe9f178d264d44a94dc1292aaf0fd585":[5,0,0,69,53],
-"theme_2blogga_2php_2default_8php.html":[5,0,3,1,1,0,1],
-"theme_2blogga_2php_2default_8php.html#a1230ab83d4ec9785d8f3a966f33dc5f3":[5,0,3,1,1,0,1,2],
-"theme_2blogga_2php_2default_8php.html#a720581ae288aa09511670563e4205a4a":[5,0,3,1,1,0,1,0],
-"theme_2blogga_2php_2default_8php.html#ac7062908d1eb80c0735270f7997c4527":[5,0,3,1,1,0,1,1],
-"theme_2blogga_2php_2theme__init_8php.html":[5,0,3,1,1,0,3],
-"theme_2blogga_2view_2theme_2blog_2default_8php.html":[5,0,3,1,1,1,0,0,1],
-"theme_2blogga_2view_2theme_2blog_2default_8php.html#a1230ab83d4ec9785d8f3a966f33dc5f3":[5,0,3,1,1,1,0,0,1,2],
-"theme_2blogga_2view_2theme_2blog_2default_8php.html#a52d9dd070ed541729088395c22502539":[5,0,3,1,1,1,0,0,1,1],
-"theme_2blogga_2view_2theme_2blog_2default_8php.html#a720581ae288aa09511670563e4205a4a":[5,0,3,1,1,1,0,0,1,0],
-"theme_2redbasic_2php_2theme__init_8php.html":[5,0,3,1,2,0,3],
-"thing_8php.html":[5,0,1,103],
-"thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b":[5,0,1,103,0],
-"thing_8php.html#a8be23b1d475ec3d9291999221c674c80":[5,0,1,103,1],
-"toggle__mobile_8php.html":[5,0,1,104],
-"toggle__mobile_8php.html#aca53ade8971802b45c31e722b22c6254":[5,0,1,104,0],
-"toggle__safesearch_8php.html":[5,0,1,105],
-"toggle__safesearch_8php.html#a23d5cfb2727a266e44993ffbf5595a79":[5,0,1,105,0],
+"session_8php.html#af230b86bfff7db66c3bdd7e0bbc24052":[5,0,0,66,2],
+"settings_8php.html":[5,0,1,94],
+"settings_8php.html#a39abc76ff5459c57e3b957664f273f18":[5,0,1,94,0],
+"settings_8php.html#a3a4cde287482fced008583f54ba2a722":[5,0,1,94,1],
+"settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586":[5,0,1,94,2],
+"setup_8php.html":[5,0,1,95],
+"setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4":[5,0,1,95,2],
+"setup_8php.html#a13cf286774149a0a7bd8adb8179cec75":[5,0,1,95,14],
+"setup_8php.html#a14d208682a88632290c895d20da6e7d6":[5,0,1,95,5],
+"setup_8php.html#a267555abd17290e659b4bf44b885e4e0":[5,0,1,95,13],
+"setup_8php.html#a2b375ddc555140236fc500135de99371":[5,0,1,95,10],
+"setup_8php.html#a5ad92c0857d1dadd6b60a9a557159c9f":[5,0,1,95,3],
+"setup_8php.html#a69a450e06dd3771fb51d3e4b0266a35e":[5,0,1,95,1],
+"setup_8php.html#a8652788e8589778c5f81634a9d5b9429":[5,0,1,95,8],
+"setup_8php.html#a88247384a96e14516f474d7af6a465c1":[5,0,1,95,12],
+"setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76":[5,0,1,95,4],
+"setup_8php.html#ab4b71369a25021d59247c917e98d8246":[5,0,1,95,7],
+"setup_8php.html#abe405d227ba7232971964a706d4f3bce":[5,0,1,95,11],
+"setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a":[5,0,1,95,9],
+"setup_8php.html#addb24714bc2542aa4f4215e98fe48432":[5,0,1,95,16],
+"setup_8php.html#ae8e4d9279a61de74d5f39962cb7b6ca1":[5,0,1,95,0],
+"setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58":[5,0,1,95,15],
+"setup_8php.html#afd8b0b3ade1507c45325caf377bf459d":[5,0,1,95,6],
+"share_8php.html":[5,0,1,96],
+"share_8php.html#afeb26046bdd02567ecd29ab5f188b249":[5,0,1,96,0],
+"siteinfo_8php.html":[5,0,1,97],
+"siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0":[5,0,1,97,1],
+"siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656":[5,0,1,97,0],
+"sitelist_8php.html":[5,0,1,98],
+"sitelist_8php.html#a665a59bf60f780b40f32c909f4a473b1":[5,0,1,98,0],
+"smilies_8php.html":[5,0,1,99],
+"smilies_8php.html#ab43b1e9f33a700a830aff14c7b3a617f":[5,0,1,99,0],
+"socgraph_8php.html":[5,0,0,67],
+"socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586":[5,0,0,67,0],
+"socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6":[5,0,0,67,6],
+"socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329":[5,0,0,67,7],
+"socgraph_8php.html#a790690bb1a1d02483fe31632a160144d":[5,0,0,67,8],
+"socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918":[5,0,0,67,1],
+"socgraph_8php.html#a887d576f21fd708132a06d0f72f90f84":[5,0,0,67,4],
+"socgraph_8php.html#ac343a846241d36cdf046b08f3396cfe9":[5,0,0,67,2],
+"socgraph_8php.html#af175807406d94407a5e11742a3287746":[5,0,0,67,5],
+"socgraph_8php.html#af29d056beec10b4e38e5209c92452894":[5,0,0,67,3],
+"sources_8php.html":[5,0,1,100],
+"sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7":[5,0,1,100,0],
+"sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e":[5,0,1,100,1],
+"spam_8php.html":[5,0,0,68],
+"spam_8php.html#a05861201147b9a538d006f0269255cf9":[5,0,0,68,1],
+"spam_8php.html#ab8fd81a82c9622cbebb8ceab6b310ca6":[5,0,0,68,0],
+"sslify_8php.html":[5,0,1,101],
+"sslify_8php.html#a75b11e54a3d1fc83e7d4c0e8b4dab316":[5,0,1,101,0],
+"starred_8php.html":[5,0,1,102],
+"starred_8php.html#a63024fb418c678e49fd535e3752d349a":[5,0,1,102,0],
+"subthread_8php.html":[5,0,1,103],
+"subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3":[5,0,1,103,0],
+"suggest_8php.html":[5,0,1,104],
+"suggest_8php.html#a58748a8235d4523f8333847f3e42dd91":[5,0,1,104,0],
+"suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c":[5,0,1,104,1],
+"system__unavailable_8php.html":[5,0,0,69],
+"system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa":[5,0,0,69,0],
+"tagger_8php.html":[5,0,1,105],
+"tagger_8php.html#a0e4a3eb177d1684553c547503d67161c":[5,0,1,105,0],
+"tagrm_8php.html":[5,0,1,106],
+"tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78":[5,0,1,106,1],
+"tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a":[5,0,1,106,0],
+"taxonomy_8php.html":[5,0,0,70],
+"taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce":[5,0,0,70,9],
+"taxonomy_8php.html#a088371f4bc19155b2291508f5cd63332":[5,0,0,70,0],
+"taxonomy_8php.html#a08df5164926d2b31b8e9fcfe919de2b6":[5,0,0,70,2],
+"taxonomy_8php.html#a0fb8cf0ac7bcbc8b27d856fe9bf69cd1":[5,0,0,70,6],
+"taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1":[5,0,0,70,4],
+"taxonomy_8php.html#a3299482ac20e9d79453048dd52881d37":[5,0,0,70,3],
+"taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd":[5,0,0,70,10],
+"taxonomy_8php.html#a599ee71dd3194c8127b00dabec77abc1":[5,0,0,70,1],
+"taxonomy_8php.html#a7747fa859ac56fbffd4f9782d85505de":[5,0,0,70,7],
+"taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c":[5,0,0,70,14],
+"taxonomy_8php.html#aaeded36bcc983b35d9205fe5b6c18c43":[5,0,0,70,13],
+"taxonomy_8php.html#aaf90ba8b839d6459065f39a4f1109b8a":[5,0,0,70,11],
+"taxonomy_8php.html#ac21d1dff16d569e7d110167aea4e63c2":[5,0,0,70,12],
+"taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1":[5,0,0,70,5],
+"taxonomy_8php.html#af387463d42ffdf7d2ab3d5b22e40a0c7":[5,0,0,70,8],
+"template__processor_8php.html":[5,0,0,71],
+"template__processor_8php.html#a797745996c7839a93b2ab1af456631ab":[5,0,0,71,3],
+"template__processor_8php.html#ab2bcd8738f20f293636a6ae8e1099db5":[5,0,0,71,1],
+"template__processor_8php.html#ac635bb19a5f6eadd6b0cddefdd537c1e":[5,0,0,71,2],
+"text_8php.html":[5,0,0,72],
+"text_8php.html#a0271381208acfa2d4cff36da281e3e23":[5,0,0,72,38],
+"text_8php.html#a030fa5ecc64168af0c4f44897a9bce63":[5,0,0,72,44],
+"text_8php.html#a070384ec000fd65043fce11d5392d241":[5,0,0,72,6],
+"text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c":[5,0,0,72,16],
+"text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3":[5,0,0,72,11],
+"text_8php.html#a10dde167249ed5abf190a7a0986878ea":[5,0,0,72,69],
+"text_8php.html#a11255c8c4e5245b6c24f97684826aa54":[5,0,0,72,43],
+"text_8php.html#a13286f8a95d2de6b102966ecc270c8d6":[5,0,0,72,5],
+"text_8php.html#a1360fed7f918d859daaca1c9f384f9af":[5,0,0,72,79],
+"text_8php.html#a138a3a611fa7f4f3630674145fc826bf":[5,0,0,72,31],
+"text_8php.html#a1557112a774ec00fa06ed6b6f6495506":[5,0,0,72,34],
+"text_8php.html#a1633412120f52bdce5f43e0a127d9293":[5,0,0,72,48],
+"text_8php.html#a1af49756c8c71902a66c7e329c462beb":[5,0,0,72,51],
+"text_8php.html#a1e510c53624933ce9b7d6715784894db":[5,0,0,72,45],
+"text_8php.html#a24d441d30df4b8e6bf6780bf62a5e2c6":[5,0,0,72,46],
+"text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728":[5,0,0,72,41],
+"text_8php.html#a273156a6f5cddc6652ad656821cd5805":[5,0,0,72,70],
+"text_8php.html#a27cd2c1b3bcb49a0cfb7249e851725ca":[5,0,0,72,4],
+"text_8php.html#a29988052f3944111def3b6aaf2c7a8f6":[5,0,0,72,87],
+"text_8php.html#a29d6b804e368d3ef359ee295e96ed4c7":[5,0,0,72,76],
+"text_8php.html#a2a902f5fdba8646333e997898ac45ea3":[5,0,0,72,47],
+"text_8php.html#a2e8d6c402603be3a1256a16605e09c2a":[5,0,0,72,10],
+"text_8php.html#a2f2585385530cb935a6325c809d84a4d":[5,0,0,72,74],
+"text_8php.html#a2ffd79c60cc87cec24ef76447b905187":[5,0,0,72,89],
+"text_8php.html#a3054189cff173977f4216c9a3dd29e1b":[5,0,0,72,23],
+"text_8php.html#a324c58f37f6acdf9cd1922aa76077d9f":[5,0,0,72,84],
+"text_8php.html#a33bdb5d4bfff2ede7caf61a98ac0a2e9":[5,0,0,72,72],
+"text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f":[5,0,0,72,82],
+"text_8php.html#a3972701c5c83624ec4e2d06242f614e7":[5,0,0,72,29],
+"text_8php.html#a3999a0b3e22e440f280ee791ce34d384":[5,0,0,72,40],
+"text_8php.html#a3d225b253bb9e0f2498c11647d927b0b":[5,0,0,72,71],
+"text_8php.html#a3d2793d66db3345fd290b71e2eadf98e":[5,0,0,72,7],
+"text_8php.html#a405afe814a23f3bd94d826101aa168ab":[5,0,0,72,85],
+"text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a":[5,0,0,72,32],
+"text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623":[5,0,0,72,30],
+"text_8php.html#a47c1e4a5f3f53027daacd8a9db24f285":[5,0,0,72,42],
+"text_8php.html#a4841df5beabdd1bdd1ed56781a915d61":[5,0,0,72,60],
+"text_8php.html#a4bbb7d00c05cd20b4e043424f322388f":[5,0,0,72,49],
+"text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91":[5,0,0,72,24],
+"text_8php.html#a4e7698aca48982512594b274543c3b9b":[5,0,0,72,59],
+"text_8php.html#a543447c5ed766535221e2d9636b379ee":[5,0,0,72,81],
+"text_8php.html#a55ab893be57feda59c2a7ba1e58ff2d0":[5,0,0,72,9],
+"text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63":[5,0,0,72,14],
+"text_8php.html#a6a3d80a6c6fb234fd0bac44203b828eb":[5,0,0,72,80],
+"text_8php.html#a71f6952243d3fe1c5a8154f78027e29c":[5,0,0,72,39],
+"text_8php.html#a736db13a966b8abaf8c9198faa35911a":[5,0,0,72,26],
+"text_8php.html#a740ad03e00459039a2c0992246c4e727":[5,0,0,72,77],
+"text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85":[5,0,0,72,1],
+"text_8php.html#a75c326298519ed14ebe762194c8a3f2a":[5,0,0,72,33],
+"text_8php.html#a76d1b3435c067978d7b484c45f56472b":[5,0,0,72,25],
+"text_8php.html#a8264348059abd1d4d5bb521323d3b19a":[5,0,0,72,78],
+"text_8php.html#a85e3a4851c16674834010d8419a5d7ca":[5,0,0,72,8],
+"text_8php.html#a876e94892867019935b348b573299352":[5,0,0,72,67],
+"text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13":[5,0,0,72,73],
+"text_8php.html#a87a3cefc603302c78982f1d8e1245265":[5,0,0,72,15],
+"text_8php.html#a89929fa6f70a8ba54d5273fcf622b665":[5,0,0,72,20],
+"text_8php.html#a8b0a799341b1fc4cba2c3ede3e3fc9b6":[5,0,0,72,58],
+"text_8php.html#a8d8c4a11e53461caca21181ebd72daca":[5,0,0,72,19],
+"text_8php.html#a95fd2f8f23a1948414a03ebc963bac57":[5,0,0,72,3],
+"text_8php.html#a98fd99dee3da8cf4c148dc04efe782ee":[5,0,0,72,53],
+"text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09":[5,0,0,72,64],
+"text_8php.html#a9d6a5ee1290de7a8b483fe78585daade":[5,0,0,72,62],
+"text_8php.html#a9fbeae13c9abd6e27cb4d8d1817f969c":[5,0,0,72,66],
+"text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66":[5,0,0,72,28],
+"text_8php.html#aa5148a0dfea2a1ca64c3d52f10aa2d64":[5,0,0,72,17],
+"text_8php.html#aa5528f41533927e1bd2da3618a74a6d7":[5,0,0,72,54],
+"text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e":[5,0,0,72,35],
+"text_8php.html#aac0969ae09853205992ba06ab9f9f61a":[5,0,0,72,27],
+"text_8php.html#aad557c054cf2ed915633701018fc7e3f":[5,0,0,72,88],
+"text_8php.html#aae91e4d2a2c6f7a9daccd2c186ae3447":[5,0,0,72,68],
+"text_8php.html#aaed4413ed8918838b517e3b2fafaea0d":[5,0,0,72,83],
+"text_8php.html#ab4a4c3d4700bc219bb84f33b499314f4":[5,0,0,72,86],
+"text_8php.html#ac19d2b33a58372a357a43d51eed19162":[5,0,0,72,55],
+"text_8php.html#ac1dbf2e37e8069bea2c0f557fdbf203e":[5,0,0,72,36],
+"text_8php.html#ace3c98538c63e09b70a363210b414112":[5,0,0,72,21],
+"text_8php.html#acedb584f65114a33f389efb796172a91":[5,0,0,72,2],
+"text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784":[5,0,0,72,13],
+"text_8php.html#ad855a32bee22c3f3b9734e3a334b96f2":[5,0,0,72,63],
+"text_8php.html#adba17ec946f4285285dc100f7860bf51":[5,0,0,72,50],
+"text_8php.html#ae17b39d5e321debd3ad16dcbbde842b8":[5,0,0,72,37],
+"text_8php.html#ae2126da85966da0e79c6bcbac63b0bda":[5,0,0,72,65],
+"text_8php.html#ae4282a39492caa23ccbc2ce98e54f110":[5,0,0,72,18],
+"text_8php.html#ae4df74296fbe55051ed3c035e55205e5":[5,0,0,72,56],
+"text_8php.html#af8a3e3a66a7b862d4510f145d2e13186":[5,0,0,72,0],
+"text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53":[5,0,0,72,75],
+"text_8php.html#afc998d2796a6b2a08e96f7cc061e7221":[5,0,0,72,61],
+"text_8php.html#afdc69fe3f6c09e35e46304dcea63ae28":[5,0,0,72,22],
+"text_8php.html#afe18627c4983ee5f7c940a0992818cd5":[5,0,0,72,12],
+"text_8php.html#afe54312607d92f7ce9593f5760831f80":[5,0,0,72,57],
+"text_8php.html#afe9f178d264d44a94dc1292aaf0fd585":[5,0,0,72,52],
+"theme_2blogga_2php_2default_8php.html":[5,0,3,2,1,0,1],
+"theme_2blogga_2php_2default_8php.html#a1230ab83d4ec9785d8f3a966f33dc5f3":[5,0,3,2,1,0,1,2],
+"theme_2blogga_2php_2default_8php.html#a720581ae288aa09511670563e4205a4a":[5,0,3,2,1,0,1,0],
+"theme_2blogga_2php_2default_8php.html#ac7062908d1eb80c0735270f7997c4527":[5,0,3,2,1,0,1,1],
+"theme_2blogga_2php_2theme__init_8php.html":[5,0,3,2,1,0,3],
+"theme_2blogga_2view_2theme_2blog_2default_8php.html":[5,0,3,2,1,1,0,0,1],
+"theme_2blogga_2view_2theme_2blog_2default_8php.html#a1230ab83d4ec9785d8f3a966f33dc5f3":[5,0,3,2,1,1,0,0,1,2],
+"theme_2blogga_2view_2theme_2blog_2default_8php.html#a52d9dd070ed541729088395c22502539":[5,0,3,2,1,1,0,0,1,1],
+"theme_2blogga_2view_2theme_2blog_2default_8php.html#a720581ae288aa09511670563e4205a4a":[5,0,3,2,1,1,0,0,1,0],
+"theme_2redbasic_2php_2theme__init_8php.html":[5,0,3,2,2,0,3],
+"thing_8php.html":[5,0,1,107],
+"thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b":[5,0,1,107,0],
+"thing_8php.html#a8be23b1d475ec3d9291999221c674c80":[5,0,1,107,1],
+"toggle__mobile_8php.html":[5,0,1,108],
+"toggle__mobile_8php.html#aca53ade8971802b45c31e722b22c6254":[5,0,1,108,0],
+"toggle__safesearch_8php.html":[5,0,1,109],
+"toggle__safesearch_8php.html#a23d5cfb2727a266e44993ffbf5595a79":[5,0,1,109,0],
"tpldebug_8php.html":[5,0,2,8],
"tpldebug_8php.html#a44778457a6c02554812fbfad19d32ba3":[5,0,2,8,0],
"tpldebug_8php.html#a5358407d65f2ca826f96356a6642d149":[5,0,2,8,1],
@@ -148,18 +205,18 @@ var NAVTREEINDEX7 =
"typohelper_8php.html":[5,0,2,10],
"typohelper_8php.html#a7542d95618011800c61773127fa625cf":[5,0,2,10,0],
"typohelper_8php.html#ab6fd357fb5b2a3ba8aab9e8b98c6a805":[5,0,2,10,1],
-"uexport_8php.html":[5,0,1,106],
-"uexport_8php.html#a118920137dedebe0581623a2e57e7b0d":[5,0,1,106,0],
-"update__channel_8php.html":[5,0,1,107],
-"update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba":[5,0,1,107,0],
-"update__community_8php.html":[5,0,1,108],
-"update__community_8php.html#abdcc5c4ecebbe0b5fcba2755c69cb3b1":[5,0,1,108,0],
-"update__display_8php.html":[5,0,1,109],
-"update__display_8php.html#aa36ac524059e209d5d75a03c16206246":[5,0,1,109,0],
-"update__network_8php.html":[5,0,1,110],
-"update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41":[5,0,1,110,0],
-"update__search_8php.html":[5,0,1,111],
-"update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52":[5,0,1,111,0],
+"uexport_8php.html":[5,0,1,110],
+"uexport_8php.html#a118920137dedebe0581623a2e57e7b0d":[5,0,1,110,0],
+"update__channel_8php.html":[5,0,1,111],
+"update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba":[5,0,1,111,0],
+"update__community_8php.html":[5,0,1,112],
+"update__community_8php.html#abdcc5c4ecebbe0b5fcba2755c69cb3b1":[5,0,1,112,0],
+"update__display_8php.html":[5,0,1,113],
+"update__display_8php.html#aa36ac524059e209d5d75a03c16206246":[5,0,1,113,0],
+"update__network_8php.html":[5,0,1,114],
+"update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41":[5,0,1,114,0],
+"update__search_8php.html":[5,0,1,115],
+"update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52":[5,0,1,115,0],
"updatetpl_8py.html":[5,0,2,11],
"updatetpl_8py.html#a52a85ffa6b6d63d840b185a133478c12":[5,0,2,11,5],
"updatetpl_8py.html#a79c20eb62d568c999b56eb08530355d3":[5,0,2,11,2],
@@ -167,87 +224,30 @@ var NAVTREEINDEX7 =
"updatetpl_8py.html#ab42dd79af65ee82201fd6f04715f62f6":[5,0,2,11,3],
"updatetpl_8py.html#ac9d11279fed403a329a719298feafc4f":[5,0,2,11,0],
"updatetpl_8py.html#ae694f5e1f25f8a92a945eb90c432dfe6":[5,0,2,11,4],
-"view_2theme_2apw_2php_2config_8php.html":[5,0,3,1,0,0,0],
-"view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec":[5,0,3,1,0,0,0,0],
-"view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d":[5,0,3,1,0,0,0,1],
-"view_2theme_2apw_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6":[5,0,3,1,0,0,0,2],
-"view_2theme_2blogga_2php_2config_8php.html":[5,0,3,1,1,0,0],
-"view_2theme_2blogga_2php_2config_8php.html#a09cd81013505f83aea0771243a1e4e53":[5,0,3,1,1,0,0,1],
-"view_2theme_2blogga_2php_2config_8php.html#a8a311a402d3e746ce53fadc38e4b2d27":[5,0,3,1,1,0,0,0],
-"view_2theme_2blogga_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d":[5,0,3,1,1,0,0,3],
-"view_2theme_2blogga_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6":[5,0,3,1,1,0,0,4],
-"view_2theme_2blogga_2php_2config_8php.html#aef2da5582b7cb6b5f63e5ca5d69fd30b":[5,0,3,1,1,0,0,2],
-"view_2theme_2blogga_2view_2theme_2blog_2config_8php.html":[5,0,3,1,1,1,0,0,0],
-"view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#a09cd81013505f83aea0771243a1e4e53":[5,0,3,1,1,1,0,0,0,1],
-"view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#a8a311a402d3e746ce53fadc38e4b2d27":[5,0,3,1,1,1,0,0,0,0],
-"view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d":[5,0,3,1,1,1,0,0,0,3],
-"view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6":[5,0,3,1,1,1,0,0,0,4],
-"view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#aef2da5582b7cb6b5f63e5ca5d69fd30b":[5,0,3,1,1,1,0,0,0,2],
-"view_2theme_2redbasic_2php_2config_8php.html":[5,0,3,1,2,0,0],
-"view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793":[5,0,3,1,2,0,0,0],
-"view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d":[5,0,3,1,2,0,0,1],
-"view_2theme_2redbasic_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6":[5,0,3,1,2,0,0,2],
-"view_8php.html":[5,0,1,112],
-"view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e":[5,0,1,112,0],
-"viewconnections_8php.html":[5,0,1,113],
-"viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330":[5,0,1,113,2],
-"viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776":[5,0,1,113,1],
-"viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6":[5,0,1,113,0],
-"viewsrc_8php.html":[5,0,1,114],
-"viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4":[5,0,1,114,0],
-"vote_8php.html":[5,0,1,115],
-"vote_8php.html#a57a9516ee1b923b224e66dcc47377fb2":[5,0,1,115,2],
-"vote_8php.html#a6aa67489bf458ca5e3206e46dac68596":[5,0,1,115,0],
-"vote_8php.html#ae0c6610f40afbbc1f4fe6494c51fbab2":[5,0,1,115,1],
-"wall__attach_8php.html":[5,0,1,116],
-"wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653":[5,0,1,116,0],
-"wall__upload_8php.html":[5,0,1,117],
-"wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f":[5,0,1,117,0],
-"webfinger_8php.html":[5,0,1,118],
-"webfinger_8php.html#a17dd28db6d390194bf9ecb809739d1d3":[5,0,1,118,0],
-"webpages_8php.html":[5,0,1,119],
-"webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d":[5,0,1,119,0],
-"wfinger_8php.html":[5,0,1,120],
-"wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3":[5,0,1,120,0],
-"widedarkness_8php.html":[5,0,3,1,0,1,10],
-"widgets_8php.html":[5,0,0,70],
-"widgets_8php.html#a6dbc227aac750774284ee39c45f0a200":[5,0,0,70,1],
-"widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923":[5,0,0,70,0],
-"xchan_8php.html":[5,0,1,121],
-"xchan_8php.html#a9853348bf1a35c644460221ba75edc2d":[5,0,1,121,0],
-"xrd_8php.html":[5,0,1,122],
-"xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270":[5,0,1,122,0],
-"zfinger_8php.html":[5,0,1,123],
-"zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0":[5,0,1,123,0],
-"zot_8php.html":[5,0,0,71],
-"zot_8php.html#a083aec6c900d244e1bfc1406f9461465":[5,0,0,71,13],
-"zot_8php.html#a2657e141d62d5f67ad3c87651b585299":[5,0,0,71,7],
-"zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df":[5,0,0,71,15],
-"zot_8php.html#a37ec13b18057634eadb071f05297f5e1":[5,0,0,71,10],
-"zot_8php.html#a3862b3161b2c8557dc1a95020179bd81":[5,0,0,71,17],
-"zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a":[5,0,0,71,5],
-"zot_8php.html#a55056e863a7860bc0cf922e78fcce073":[5,0,0,71,21],
-"zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1":[5,0,0,71,8],
-"zot_8php.html#a5bcdfef419b16075a0eca990956223dc":[5,0,0,71,26],
-"zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea":[5,0,0,71,18],
-"zot_8php.html#a703f528ade8382cf374e4119bd6f7859":[5,0,0,71,0],
-"zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d":[5,0,0,71,25],
-"zot_8php.html#a8e22dbc6f884be3644a892a876cbd972":[5,0,0,71,3],
-"zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03":[5,0,0,71,24],
-"zot_8php.html#a95528377d7303131958c9f0b7158fdce":[5,0,0,71,19],
-"zot_8php.html#a9a57b40669351c9791126b925cb7ef3b":[5,0,0,71,12],
-"zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc":[5,0,0,71,11],
-"zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10":[5,0,0,71,14],
-"zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7":[5,0,0,71,23],
-"zot_8php.html#ab319d1d9fff9c7775d9daef42d1f33dd":[5,0,0,71,16],
-"zot_8php.html#ab3e9b99ddb11353f37f265a05bb42142":[5,0,0,71,27],
-"zot_8php.html#ac301c67864917c35922257950ae0f95c":[5,0,0,71,9],
-"zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7":[5,0,0,71,1],
-"zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d":[5,0,0,71,4],
-"zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72":[5,0,0,71,2],
-"zot_8php.html#ae7cec2b417b5858fd4a41070f843d1d7":[5,0,0,71,20],
-"zot_8php.html#aeea071f17e306fe3d0c488551906bfab":[5,0,0,71,22],
-"zot_8php.html#aeec89da5b6ff090c63a79de4de884a35":[5,0,0,71,6],
-"zotfeed_8php.html":[5,0,1,124],
-"zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac":[5,0,1,124,0]
+"view_2theme_2apw_2php_2config_8php.html":[5,0,3,2,0,0,0],
+"view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec":[5,0,3,2,0,0,0,0],
+"view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d":[5,0,3,2,0,0,0,1],
+"view_2theme_2apw_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6":[5,0,3,2,0,0,0,2],
+"view_2theme_2blogga_2php_2config_8php.html":[5,0,3,2,1,0,0],
+"view_2theme_2blogga_2php_2config_8php.html#a09cd81013505f83aea0771243a1e4e53":[5,0,3,2,1,0,0,1],
+"view_2theme_2blogga_2php_2config_8php.html#a8a311a402d3e746ce53fadc38e4b2d27":[5,0,3,2,1,0,0,0],
+"view_2theme_2blogga_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d":[5,0,3,2,1,0,0,3],
+"view_2theme_2blogga_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6":[5,0,3,2,1,0,0,4],
+"view_2theme_2blogga_2php_2config_8php.html#aef2da5582b7cb6b5f63e5ca5d69fd30b":[5,0,3,2,1,0,0,2],
+"view_2theme_2blogga_2view_2theme_2blog_2config_8php.html":[5,0,3,2,1,1,0,0,0],
+"view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#a09cd81013505f83aea0771243a1e4e53":[5,0,3,2,1,1,0,0,0,1],
+"view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#a8a311a402d3e746ce53fadc38e4b2d27":[5,0,3,2,1,1,0,0,0,0],
+"view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d":[5,0,3,2,1,1,0,0,0,3],
+"view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6":[5,0,3,2,1,1,0,0,0,4],
+"view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#aef2da5582b7cb6b5f63e5ca5d69fd30b":[5,0,3,2,1,1,0,0,0,2],
+"view_2theme_2redbasic_2php_2config_8php.html":[5,0,3,2,2,0,0],
+"view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793":[5,0,3,2,2,0,0,0],
+"view_2theme_2redbasic_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d":[5,0,3,2,2,0,0,1],
+"view_2theme_2redbasic_2php_2config_8php.html#ad29461920cf03b9ce1428e21eb1f4ba6":[5,0,3,2,2,0,0,2],
+"view_8php.html":[5,0,1,116],
+"view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e":[5,0,1,116,0],
+"viewconnections_8php.html":[5,0,1,117],
+"viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330":[5,0,1,117,1],
+"viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776":[5,0,1,117,0],
+"viewsrc_8php.html":[5,0,1,118]
};
diff --git a/doc/html/navtreeindex8.js b/doc/html/navtreeindex8.js
index 1747bda19..e3484b759 100644
--- a/doc/html/navtreeindex8.js
+++ b/doc/html/navtreeindex8.js
@@ -1,5 +1,85 @@
var NAVTREEINDEX8 =
{
-"zping_8php.html":[5,0,1,125],
-"zping_8php.html#a4d3a6b0b8b04ed6469015823e615ee75":[5,0,1,125,0]
+"viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4":[5,0,1,118,0],
+"vote_8php.html":[5,0,1,119],
+"vote_8php.html#a57a9516ee1b923b224e66dcc47377fb2":[5,0,1,119,2],
+"vote_8php.html#a6aa67489bf458ca5e3206e46dac68596":[5,0,1,119,0],
+"vote_8php.html#ae0c6610f40afbbc1f4fe6494c51fbab2":[5,0,1,119,1],
+"wall__attach_8php.html":[5,0,1,120],
+"wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653":[5,0,1,120,0],
+"wall__upload_8php.html":[5,0,1,121],
+"wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f":[5,0,1,121,0],
+"webfinger_8php.html":[5,0,1,122],
+"webfinger_8php.html#a17dd28db6d390194bf9ecb809739d1d3":[5,0,1,122,0],
+"webpages_8php.html":[5,0,1,123],
+"webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d":[5,0,1,123,0],
+"wfinger_8php.html":[5,0,1,124],
+"wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3":[5,0,1,124,0],
+"widedarkness_8php.html":[5,0,3,2,0,1,10],
+"widgets_8php.html":[5,0,0,73],
+"widgets_8php.html#a08035db02ff6a23260146b4c64153422":[5,0,0,73,8],
+"widgets_8php.html#a0d404276fedc59f5038cf5c085028326":[5,0,0,73,20],
+"widgets_8php.html#a145ff35319cfa47a9cc07f9425bd674b":[5,0,0,73,5],
+"widgets_8php.html#a268b01ce1ab8fe2cb346cb769b9d1091":[5,0,0,73,6],
+"widgets_8php.html#a3bdfb81bf9a8ddf219924fa7eaf22013":[5,0,0,73,14],
+"widgets_8php.html#a45ea061dabe9a8372e4ca3b9e5714256":[5,0,0,73,15],
+"widgets_8php.html#a47c72aac42058ea086c9ef8651c259da":[5,0,0,73,3],
+"widgets_8php.html#a5ab3b64496e02cab56429978ad55f1c0":[5,0,0,73,9],
+"widgets_8php.html#a6dbc227aac750774284ee39c45f0a200":[5,0,0,73,21],
+"widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e":[5,0,0,73,16],
+"widgets_8php.html#a70442dfa079312d9d5e5ee01be51a165":[5,0,0,73,12],
+"widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65":[5,0,0,73,1],
+"widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8":[5,0,0,73,18],
+"widgets_8php.html#a95c06bc9be133e89768746302d2ac395":[5,0,0,73,7],
+"widgets_8php.html#aa189a07241246d97efbee29f1c6a6f7f":[5,0,0,73,4],
+"widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01":[5,0,0,73,19],
+"widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923":[5,0,0,73,17],
+"widgets_8php.html#abe03366fd22fd27d683518fa0765da50":[5,0,0,73,23],
+"widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd":[5,0,0,73,11],
+"widgets_8php.html#add9b24d3304e529a7975e96122315554":[5,0,0,73,0],
+"widgets_8php.html#ade630b19fb4c622b7b2f6f8ef89eefa2":[5,0,0,73,10],
+"widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653":[5,0,0,73,22],
+"widgets_8php.html#af37fdad3b2e861d860a4a8c4d8a76c0b":[5,0,0,73,2],
+"widgets_8php.html#afa2e55a78f95667a6da082efac7fec74":[5,0,0,73,13],
+"xchan_8php.html":[5,0,1,125],
+"xchan_8php.html#a9853348bf1a35c644460221ba75edc2d":[5,0,1,125,0],
+"xrd_8php.html":[5,0,1,126],
+"xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270":[5,0,1,126,0],
+"xref_8php.html":[5,0,1,127],
+"xref_8php.html#a9bee399213b8de8226b0d60834307473":[5,0,1,127,0],
+"zfinger_8php.html":[5,0,1,128],
+"zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0":[5,0,1,128,0],
+"zot_8php.html":[5,0,0,74],
+"zot_8php.html#a083aec6c900d244e1bfc1406f9461465":[5,0,0,74,13],
+"zot_8php.html#a2657e141d62d5f67ad3c87651b585299":[5,0,0,74,7],
+"zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df":[5,0,0,74,15],
+"zot_8php.html#a37ec13b18057634eadb071f05297f5e1":[5,0,0,74,10],
+"zot_8php.html#a3862b3161b2c8557dc1a95020179bd81":[5,0,0,74,17],
+"zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a":[5,0,0,74,5],
+"zot_8php.html#a55056e863a7860bc0cf922e78fcce073":[5,0,0,74,21],
+"zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1":[5,0,0,74,8],
+"zot_8php.html#a5bcdfef419b16075a0eca990956223dc":[5,0,0,74,26],
+"zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea":[5,0,0,74,18],
+"zot_8php.html#a703f528ade8382cf374e4119bd6f7859":[5,0,0,74,0],
+"zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c":[5,0,0,74,25],
+"zot_8php.html#a8e22dbc6f884be3644a892a876cbd972":[5,0,0,74,3],
+"zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03":[5,0,0,74,24],
+"zot_8php.html#a95528377d7303131958c9f0b7158fdce":[5,0,0,74,19],
+"zot_8php.html#a9a57b40669351c9791126b925cb7ef3b":[5,0,0,74,12],
+"zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc":[5,0,0,74,11],
+"zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10":[5,0,0,74,14],
+"zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7":[5,0,0,74,23],
+"zot_8php.html#ab319d1d9fff9c7775d9daef42d1f33dd":[5,0,0,74,16],
+"zot_8php.html#ab3e9b99ddb11353f37f265a05bb42142":[5,0,0,74,27],
+"zot_8php.html#ac301c67864917c35922257950ae0f95c":[5,0,0,74,9],
+"zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7":[5,0,0,74,1],
+"zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d":[5,0,0,74,4],
+"zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72":[5,0,0,74,2],
+"zot_8php.html#ae7cec2b417b5858fd4a41070f843d1d7":[5,0,0,74,20],
+"zot_8php.html#aeea071f17e306fe3d0c488551906bfab":[5,0,0,74,22],
+"zot_8php.html#aeec89da5b6ff090c63a79de4de884a35":[5,0,0,74,6],
+"zotfeed_8php.html":[5,0,1,129],
+"zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac":[5,0,1,129,0],
+"zping_8php.html":[5,0,1,130],
+"zping_8php.html#a4d3a6b0b8b04ed6469015823e615ee75":[5,0,1,130,0]
};
diff --git a/doc/html/notes_8php.html b/doc/html/notes_8php.html
new file mode 100644
index 000000000..55c8c2cae
--- /dev/null
+++ b/doc/html/notes_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/notes.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('notes_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">notes.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a4dbd7b1f906440746af48b484d66535a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="notes_8php.html#a4dbd7b1f906440746af48b484d66535a">notes_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a4dbd7b1f906440746af48b484d66535a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a4dbd7b1f906440746af48b484d66535a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">notes_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/notes_8php.js b/doc/html/notes_8php.js
new file mode 100644
index 000000000..d0433afa8
--- /dev/null
+++ b/doc/html/notes_8php.js
@@ -0,0 +1,4 @@
+var notes_8php =
+[
+ [ "notes_init", "notes_8php.html#a4dbd7b1f906440746af48b484d66535a", null ]
+]; \ No newline at end of file
diff --git a/doc/html/notred_8php.html b/doc/html/notred_8php.html
new file mode 100644
index 000000000..551b63e02
--- /dev/null
+++ b/doc/html/notred_8php.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: view/theme/redbasic/schema/notred.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('notred_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">notred.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/online_8php.html b/doc/html/online_8php.html
new file mode 100644
index 000000000..12f732c7c
--- /dev/null
+++ b/doc/html/online_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/online.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('online_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">online.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a80e107c84eb722b0ca11d0413b96f9f7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="online_8php.html#a80e107c84eb722b0ca11d0413b96f9f7">online_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a80e107c84eb722b0ca11d0413b96f9f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a80e107c84eb722b0ca11d0413b96f9f7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">online_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/online_8php.js b/doc/html/online_8php.js
new file mode 100644
index 000000000..cd680468b
--- /dev/null
+++ b/doc/html/online_8php.js
@@ -0,0 +1,4 @@
+var online_8php =
+[
+ [ "online_init", "online_8php.html#a80e107c84eb722b0ca11d0413b96f9f7", null ]
+]; \ No newline at end of file
diff --git a/doc/html/openid_8php.html b/doc/html/openid_8php.html
new file mode 100644
index 000000000..ac541c9bc
--- /dev/null
+++ b/doc/html/openid_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/openid.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('openid_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">openid.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a9a13827dbcf61ae4e45f0b6b33a88f43"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content</a> (&amp;$a)</td></tr>
+<tr class="separator:a9a13827dbcf61ae4e45f0b6b33a88f43"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a9a13827dbcf61ae4e45f0b6b33a88f43"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">openid_content </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/openid_8php.js b/doc/html/openid_8php.js
new file mode 100644
index 000000000..f5d89e346
--- /dev/null
+++ b/doc/html/openid_8php.js
@@ -0,0 +1,4 @@
+var openid_8php =
+[
+ [ "openid_content", "openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43", null ]
+]; \ No newline at end of file
diff --git a/doc/html/parse__url_8php.html b/doc/html/parse__url_8php.html
index 7dc41c44c..6cf112ea3 100644
--- a/doc/html/parse__url_8php.html
+++ b/doc/html/parse__url_8php.html
@@ -112,7 +112,7 @@ $(document).ready(function(){initNavTree('parse__url_8php.html','');});
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:a496f4e3836154f6f32b8e805a7160d3a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(!function_exists('<a class="el" href="html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2">deletenode</a>'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parse__url_8php.html#a496f4e3836154f6f32b8e805a7160d3a">completeurl</a> ($url, $scheme)</td></tr>
+<tr class="memitem:a496f4e3836154f6f32b8e805a7160d3a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(!function_exists('<a class="el" href="html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2">deletenode</a>'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parse__url_8php.html#a496f4e3836154f6f32b8e805a7160d3a">completeurl</a> ($url, $scheme)</td></tr>
<tr class="separator:a496f4e3836154f6f32b8e805a7160d3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25635549f2c22955d72465f4d2e58993"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parse__url_8php.html#a25635549f2c22955d72465f4d2e58993">parseurl_getsiteinfo</a> ($url)</td></tr>
<tr class="separator:a25635549f2c22955d72465f4d2e58993"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -153,7 +153,7 @@ Functions</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (!function_exists('<a class="el" href="html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2">deletenode</a>')) completeurl </td>
+ <td class="memname"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (!function_exists('<a class="el" href="html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2">deletenode</a>')) completeurl </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$url</em>, </td>
diff --git a/doc/html/permissions_8php.html b/doc/html/permissions_8php.html
index 9ab1d6ef2..6ee9ca058 100644
--- a/doc/html/permissions_8php.html
+++ b/doc/html/permissions_8php.html
@@ -197,7 +197,7 @@ Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>: array of all permissions, key is permission name, value is true or false </dd></dl>
-<p>Referenced by <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+<p>Referenced by <a class="el" href="achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e">achievements_content()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="security_8php.html#a8d23d2597aae380a3341872fe9513380">change_channel()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
</div>
</div>
@@ -214,7 +214,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="permissions_8php.html#aa8b7b102c653649d7a71b5a1c044d90d">site_default_perms()</a>, and <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>.</p>
+<p>Referenced by <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="permissions_8php.html#aa8b7b102c653649d7a71b5a1c044d90d">site_default_perms()</a>, and <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>.</p>
</div>
</div>
@@ -248,7 +248,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata()</a>, <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files()</a>, <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7">check_list_permissions()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="classRedInode.html#a5e8f09bc887725c3c448f8d72fe3edfc">RedInode\delete()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569">RedDirectory\getChild()</a>, <a class="el" href="classRedDirectory.html#aa42d3065f6f065b17db87146a7cb031a">RedDirectory\getChildren()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos_albums_list()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation\set_mode()</a>, <a class="el" href="classRedInode.html#a3d76322f25d847b123b3df37a26dd04e">RedInode\setName()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+<p>Referenced by <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata()</a>, <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files()</a>, <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="chatsvc_8php.html#a28d248b056fa47452e28ed01130e9116">chatsvc_init()</a>, <a class="el" href="permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7">check_list_permissions()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="classRedDirectory.html#a986936910f0216887a25e28916c166c7">RedDirectory\createDirectory()</a>, <a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">RedDirectory\createFile()</a>, <a class="el" href="classRedFile.html#aef71c9eaac7052be7dc8602eb12171e7">RedFile\delete()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569">RedDirectory\getChild()</a>, <a class="el" href="classRedDirectory.html#aa42d3065f6f065b17db87146a7cb031a">RedDirectory\getChildren()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">local_dir_update()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos_albums_list()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66">RedChannelList()</a>, <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation\set_mode()</a>, <a class="el" href="classRedBrowser.html#a40fdbb9d9fe6c1243bbf135dd5b0a06f">RedBrowser\set_writeable()</a>, <a class="el" href="classRedFile.html#a38a82bfc1b30028ea6ac75923e90fa25">RedFile\setName()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e">widget_photo_albums()</a>, <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
</div>
</div>
diff --git a/doc/html/photo__driver_8php.html b/doc/html/photo__driver_8php.html
index b30d3e156..c702588fe 100644
--- a/doc/html/photo__driver_8php.html
+++ b/doc/html/photo__driver_8php.html
@@ -122,8 +122,8 @@ Functions</h2></td></tr>
<tr class="separator:a32e2817faa25d7f11f60a8abff565035"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a243cee492ce443afb6a7d77d54b6c4aa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="photo__driver_8php.html#a243cee492ce443afb6a7d77d54b6c4aa">guess_image_type</a> ($filename, $headers= '')</td></tr>
<tr class="separator:a243cee492ce443afb6a7d77d54b6c4aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a102f3f26f67e0e38f4322a771951c1ca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo</a> ($photo, $xchan)</td></tr>
-<tr class="separator:a102f3f26f67e0e38f4322a771951c1ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78f5a10c568d2a9bbbb129dc96548887"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887">import_profile_photo</a> ($photo, $xchan, $thing=false)</td></tr>
+<tr class="separator:a78f5a10c568d2a9bbbb129dc96548887"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d0bc7161dec0d177b7d3bbe4421af9a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo</a> ($photo, $type, $aid, $uid)</td></tr>
<tr class="separator:a1d0bc7161dec0d177b7d3bbe4421af9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -158,7 +158,7 @@ Functions</h2></td></tr>
</ul>
<p>Well, this not much better, but at least it comes from the data inside the image, we won't be tricked by a manipulated extension</p>
-<p>Referenced by <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, and <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>.</p>
+<p>Referenced by <a class="el" href="photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887">import_profile_photo()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, and <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>.</p>
</div>
</div>
@@ -202,7 +202,7 @@ Functions</h2></td></tr>
</div>
</div>
-<a class="anchor" id="a102f3f26f67e0e38f4322a771951c1ca"></a>
+<a class="anchor" id="a78f5a10c568d2a9bbbb129dc96548887"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -216,7 +216,13 @@ Functions</h2></td></tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$xchan</em>&#160;</td>
+ <td class="paramname"><em>$xchan</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$thing</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
@@ -226,7 +232,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, and <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">import_author_rss()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
</div>
</div>
@@ -254,7 +260,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="photo__driver_8php.html#a243cee492ce443afb6a7d77d54b6c4aa">guess_image_type()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, and <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>.</p>
+<p>Referenced by <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="photo__driver_8php.html#a243cee492ce443afb6a7d77d54b6c4aa">guess_image_type()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887">import_profile_photo()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, and <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>.</p>
</div>
</div>
diff --git a/doc/html/photo__driver_8php.js b/doc/html/photo__driver_8php.js
index 8ac064d4e..cabd3c93b 100644
--- a/doc/html/photo__driver_8php.js
+++ b/doc/html/photo__driver_8php.js
@@ -3,6 +3,6 @@ var photo__driver_8php =
[ "photo_driver", "classphoto__driver.html", "classphoto__driver" ],
[ "guess_image_type", "photo__driver_8php.html#a243cee492ce443afb6a7d77d54b6c4aa", null ],
[ "import_channel_photo", "photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a", null ],
- [ "import_profile_photo", "photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca", null ],
+ [ "import_profile_photo", "photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887", null ],
[ "photo_factory", "photo__driver_8php.html#a32e2817faa25d7f11f60a8abff565035", null ]
]; \ No newline at end of file
diff --git a/doc/html/php2po_8php.html b/doc/html/php2po_8php.html
index c89fdac58..9b1a1a312 100644
--- a/doc/html/php2po_8php.html
+++ b/doc/html/php2po_8php.html
@@ -112,7 +112,7 @@ $(document).ready(function(){initNavTree('php2po_8php.html','');});
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
-<tr class="memitem:abbb0e5fd8fbc1f13a9bf68f86eb3d2a4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(!class_exists('<a class="el" href="classApp.html">App</a>')) <a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>($argc!=2)&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php2po_8php.html#abbb0e5fd8fbc1f13a9bf68f86eb3d2a4">$phpfile</a> = $<a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv</a>[1]</td></tr>
+<tr class="memitem:abbb0e5fd8fbc1f13a9bf68f86eb3d2a4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(!class_exists('<a class="el" href="classApp.html">App</a>')) <a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>($argc!=2)&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php2po_8php.html#abbb0e5fd8fbc1f13a9bf68f86eb3d2a4">$phpfile</a> = $<a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv</a>[1]</td></tr>
<tr class="separator:abbb0e5fd8fbc1f13a9bf68f86eb3d2a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a401d84ce156e49e8168bd0c4781e1be1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php2po_8php.html#a401d84ce156e49e8168bd0c4781e1be1">$pofile</a> = dirname($phpfile).&quot;/messages.po&quot;</td></tr>
<tr class="separator:a401d84ce156e49e8168bd0c4781e1be1"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -168,7 +168,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">App\__construct()</a>, <a class="el" href="classTemplate.html#aae9c4d761ea1298e745e8052d7910194">Template\_get_var()</a>, <a class="el" href="classTemplate.html#abf71098c80fd1f218a59452b3408309e">Template\_replcb_for()</a>, <a class="el" href="items_8php.html#a36e656667193c83aa2cc03a024fc131b">activity_sanitise()</a>, <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>, <a class="el" href="crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914">aes_unencapsulate()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="contact__selectors_8php.html#a9839e8fdaac7ffb37bf1420493f5c28f">contact_poll_interval()</a>, <a class="el" href="contact__selectors_8php.html#ae499960d6467bd30c78607b1018baf53">contact_reputation()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="plugin_8php.html#aff0178bd8d0b34a94d5efddc883edd35">get_plugin_info()</a>, <a class="el" href="plugin_8php.html#ad48de9c0fb7f19413a2aa49250d00405">get_theme_info()</a>, <a class="el" href="photo__driver_8php.html#a243cee492ce443afb6a7d77d54b6c4aa">guess_image_type()</a>, <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1">load_config()</a>, <a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">load_pconfig()</a>, <a class="el" href="include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33">load_xconfig()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050">FKOAuthDataStore\new_request_token()</a>, <a class="el" href="taxonomy_8php.html#ac12a651a42ed77f8dc7072c6168811a2">obj_verb_selector()</a>, <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos_albums_list()</a>, <a class="el" href="po2php_8php.html#a3b75e36f913198299e99559b175cd8b4">po2php_run()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="include_2api_8php.html#a43c47de8565cc00c3369cb35c19cc75e">requestdata()</a>, <a class="el" href="classApp.html#a123b903dfe5d3488cc68db3471d36fd2">App\set_widget()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="boot_8php.html#aca47505b8732177f52bb2d647eb2741c">startup()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, <a class="el" href="language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d">tt()</a>, <a class="el" href="vote_8php.html#a57a9516ee1b923b224e66dcc47377fb2">vote_post()</a>, <a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, and <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>.</p>
+<p>Referenced by <a class="el" href="classApp.html#af6d39f63fb7116bbeb04e51696f99474">App\__construct()</a>, <a class="el" href="classTemplate.html#aae9c4d761ea1298e745e8052d7910194">Template\_get_var()</a>, <a class="el" href="classTemplate.html#abf71098c80fd1f218a59452b3408309e">Template\_replcb_for()</a>, <a class="el" href="items_8php.html#a36e656667193c83aa2cc03a024fc131b">activity_sanitise()</a>, <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>, <a class="el" href="crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914">aes_unencapsulate()</a>, <a class="el" href="bbcode_8php.html#a3a989cbf308a32468d171d83e9c51d1e">bb_sanitize_style()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="contact__selectors_8php.html#a9839e8fdaac7ffb37bf1420493f5c28f">contact_poll_interval()</a>, <a class="el" href="contact__selectors_8php.html#ae499960d6467bd30c78607b1018baf53">contact_reputation()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e">RedBrowser\generateDirectoryIndex()</a>, <a class="el" href="plugin_8php.html#aff0178bd8d0b34a94d5efddc883edd35">get_plugin_info()</a>, <a class="el" href="plugin_8php.html#ad48de9c0fb7f19413a2aa49250d00405">get_theme_info()</a>, <a class="el" href="taxonomy_8php.html#a7747fa859ac56fbffd4f9782d85505de">get_things()</a>, <a class="el" href="photo__driver_8php.html#a243cee492ce443afb6a7d77d54b6c4aa">guess_image_type()</a>, <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1">load_config()</a>, <a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">load_pconfig()</a>, <a class="el" href="include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33">load_xconfig()</a>, <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">local_dir_update()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050">FKOAuthDataStore\new_request_token()</a>, <a class="el" href="taxonomy_8php.html#af387463d42ffdf7d2ab3d5b22e40a0c7">obj_verb_selector()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos_albums_list()</a>, <a class="el" href="po2php_8php.html#a3b75e36f913198299e99559b175cd8b4">po2php_run()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="include_2api_8php.html#a43c47de8565cc00c3369cb35c19cc75e">requestdata()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="sslify_8php.html#a75b11e54a3d1fc83e7d4c0e8b4dab316">sslify_init()</a>, <a class="el" href="boot_8php.html#aca47505b8732177f52bb2d647eb2741c">startup()</a>, <a class="el" href="language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d">tt()</a>, <a class="el" href="vote_8php.html#a57a9516ee1b923b224e66dcc47377fb2">vote_post()</a>, <a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, and <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>.</p>
</div>
</div>
@@ -182,7 +182,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="po2php_8php.html#a3b75e36f913198299e99559b175cd8b4">po2php_run()</a>.</p>
+<p>Referenced by <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="include_2attach_8php.html#a5d484de2d19a93071571d6499a50ae34">pipe_streams()</a>, and <a class="el" href="po2php_8php.html#a3b75e36f913198299e99559b175cd8b4">po2php_run()</a>.</p>
</div>
</div>
@@ -191,7 +191,7 @@ Variables</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (!class_exists('<a class="el" href="classApp.html">App</a>')) <a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> ($argc!=2) $phpfile = $<a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv</a>[1]</td>
+ <td class="memname"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (!class_exists('<a class="el" href="classApp.html">App</a>')) <a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> ($argc!=2) $phpfile = $<a class="el" href="boot_8php.html#a768f00b7d66be0daf7ef4eea2e862006">argv</a>[1]</td>
</tr>
</table>
</div><div class="memdoc">
diff --git a/doc/html/php_2default_8php.html b/doc/html/php_2default_8php.html
index 0ca6ea675..179210e2b 100644
--- a/doc/html/php_2default_8php.html
+++ b/doc/html/php_2default_8php.html
@@ -112,7 +112,7 @@ $(document).ready(function(){initNavTree('php_2default_8php.html','');});
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
-<tr class="memitem:a23bc1996b18e69c1a3ab44536613a762"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762">if</a> (<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>,'htmlhead')) echo $<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>['htmlhead']?&gt;&lt;/head &gt;&lt; body &gt;&lt;?php if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a></td></tr>
+<tr class="memitem:a23bc1996b18e69c1a3ab44536613a762"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762">if</a> (<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>,'htmlhead')) echo $<a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>['htmlhead']?&gt;&lt;/head &gt;&lt; body &gt;&lt;?php if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a></td></tr>
<tr class="separator:a23bc1996b18e69c1a3ab44536613a762"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Variable Documentation</h2>
@@ -121,7 +121,7 @@ Variables</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>,'htmlhead')) echo $<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>['htmlhead']?&gt;&lt;/head &gt;&lt; body &gt;&lt;?php if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a></td>
+ <td class="memname">if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>,'htmlhead')) echo $<a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a>['htmlhead']?&gt;&lt;/head &gt;&lt; body &gt;&lt;?php if(<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>($<a class="el" href="mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb">page</a></td>
</tr>
</table>
</div><div class="memdoc">
diff --git a/doc/html/php_2theme__init_8php.html b/doc/html/php_2theme__init_8php.html
index 666aede97..2842fa0b7 100644
--- a/doc/html/php_2theme__init_8php.html
+++ b/doc/html/php_2theme__init_8php.html
@@ -127,7 +127,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p>Those who require this feature will know what to do with it. Those who don't, won't. Eventually this functionality needs to be provided by a module such that permissions can be enforced. At the moment it's more of a proof of concept; but sufficient for our immediate needs. </p>
-<p>Referenced by <a class="el" href="include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5">api_call()</a>, <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections_init()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="text_8php.html#a87a3cefc603302c78982f1d8e1245265">design_tools()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="item_8php.html#a3daae7944f737bd30412a0d042207c0f">fix_attached_file_permissions()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="items_8php.html#a079e099e15d88d47aeb6ca6d60da7107">get_public_feed()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="lastpost_8php.html#ab4c6ebd25736af678e64d55ce508ce8c">lastpost_init()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos_albums_list()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post__to__red_8php.html#a5cc2a89a6d33cdb8e2ca557a69bef42d">post_to_red_delete_comment()</a>, <a class="el" href="post__to__red_8php.html#a4674bb5ce2baa32c559607460c39a2c5">post_to_red_delete_post()</a>, <a class="el" href="post__to__red_8php.html#a75db5d87226a0287a0ac0fa315f2bcfd">post_to_red_displayAdminContent()</a>, <a class="el" href="post__to__red_8php.html#af5fd50e2c42ede85f8a9e8d9ee3cf540">post_to_red_post()</a>, <a class="el" href="probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02">profile_photo_init()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport_init()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet()</a>, <a class="el" href="zot_8php.html#a95528377d7303131958c9f0b7158fdce">zot_finger()</a>, and <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>.</p>
+<p>Referenced by <a class="el" href="include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5">api_call()</a>, <a class="el" href="include_2api_8php.html#afb99daa6b731bf497b81f2128084852c">api_user()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="include_2bookmarks_8php.html#a88ce7dee6a3dc7465aa9b8eaa45b0087">bookmark_add()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="mod_2chat_8php.html#aa9ae4782e9baef0b7314ab9527c2707e">chat_init()</a>, <a class="el" href="mod_2chat_8php.html#a999d594745597c656c9760253ae297ad">chat_post()</a>, <a class="el" href="include_2chat_8php.html#acdc80dba4eb796c7472b21129b435422">chatroom_create()</a>, <a class="el" href="include_2chat_8php.html#a2ba3af6884ecdce95de69262fe599639">chatroom_destroy()</a>, <a class="el" href="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud_init()</a>, <a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections_init()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="connedit_8php.html#a4da871e075597a09a8b374b9171dd92e">connedit_init()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="text_8php.html#a87a3cefc603302c78982f1d8e1245265">design_tools()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="item_8php.html#a3daae7944f737bd30412a0d042207c0f">fix_attached_file_permissions()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="items_8php.html#a079e099e15d88d47aeb6ca6d60da7107">get_public_feed()</a>, <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>, <a class="el" href="home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde">home_init()</a>, <a class="el" href="classRedBrowser.html#a7f6bf0bda07833f4c647557bd172e349">RedBrowser\htmlActionsPanel()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8">menu_add_item()</a>, <a class="el" href="include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa">menu_edit_item()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos_albums_list()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post__to__red_8php.html#a5cc2a89a6d33cdb8e2ca557a69bef42d">post_to_red_delete_comment()</a>, <a class="el" href="post__to__red_8php.html#a4674bb5ce2baa32c559607460c39a2c5">post_to_red_delete_post()</a>, <a class="el" href="post__to__red_8php.html#a75db5d87226a0287a0ac0fa315f2bcfd">post_to_red_displayAdminContent()</a>, <a class="el" href="post__to__red_8php.html#af5fd50e2c42ede85f8a9e8d9ee3cf540">post_to_red_post()</a>, <a class="el" href="probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02">profile_photo_init()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6">profperm_init()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport_init()</a>, <a class="el" href="items_8php.html#a2baa9e05f1e8aa3dd61c85803ae39bd6">update_remote_id()</a>, <a class="el" href="wall__attach_8php.html#a7385e970e93228d082f0fd7254f6e653">wall_attach_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01">widget_settings_menu()</a>, <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet()</a>, <a class="el" href="zot_8php.html#a95528377d7303131958c9f0b7158fdce">zot_finger()</a>, and <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>.</p>
</div>
</div>
diff --git a/doc/html/plugin_8php.html b/doc/html/plugin_8php.html
index 6a9842f46..8f23cfee8 100644
--- a/doc/html/plugin_8php.html
+++ b/doc/html/plugin_8php.html
@@ -150,12 +150,18 @@ Functions</h2></td></tr>
<tr class="separator:a754d7f53b3abc557b753c057dc4e021d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23c4fccf1eb5fcd63b24783ba1f05f7a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a23c4fccf1eb5fcd63b24783ba1f05f7a">head_add_css</a> ($src, $media= 'screen')</td></tr>
<tr class="separator:a23c4fccf1eb5fcd63b24783ba1f05f7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9ab6caae31935f6cf781ce7872db7cdf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a9ab6caae31935f6cf781ce7872db7cdf">head_remove_css</a> ($src, $media= 'screen')</td></tr>
+<tr class="separator:a9ab6caae31935f6cf781ce7872db7cdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af92789f559b89a380e49d303218aeeca"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#af92789f559b89a380e49d303218aeeca">head_get_css</a> ()</td></tr>
<tr class="separator:af92789f559b89a380e49d303218aeeca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9039e15aae27676af7777dcbee5a11d6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a9039e15aae27676af7777dcbee5a11d6">format_css_if_exists</a> ($source)</td></tr>
<tr class="separator:a9039e15aae27676af7777dcbee5a11d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e8c2ea50bfdbc39e17ccccaea21ddc3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a0e8c2ea50bfdbc39e17ccccaea21ddc3">script_path</a> ()</td></tr>
+<tr class="separator:a0e8c2ea50bfdbc39e17ccccaea21ddc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a516591850f4fd49fd1425cfa54089db8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a516591850f4fd49fd1425cfa54089db8">head_add_js</a> ($src)</td></tr>
<tr class="separator:a516591850f4fd49fd1425cfa54089db8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4a0ae7b881e7c8af99a69e3b03f898b4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a4a0ae7b881e7c8af99a69e3b03f898b4">head_remove_js</a> ($src)</td></tr>
+<tr class="separator:a4a0ae7b881e7c8af99a69e3b03f898b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65ab52cb1a7030d5190e247211bef2a1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1">head_get_js</a> ()</td></tr>
<tr class="separator:a65ab52cb1a7030d5190e247211bef2a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9ff8ba554576383c5911a4bce068c1f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f">format_js_if_exists</a> ($source)</td></tr>
@@ -192,7 +198,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="items_8php.html#a016dd86c827d08db89061ea81d15c6cb">atom_author()</a>, <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7">avatar_img()</a>, <a class="el" href="bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c">bb2diaspora()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="account_8php.html#a144b4891022567668375b58ea61cfff0">check_account_password()</a>, <a class="el" href="connect_8php.html#a489f0a66c660de6ec4d6917b27674f07">connect_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca">cronhooks_run()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled()</a>, <a class="el" href="profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355">gender_selector()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c">get_features()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="text_8php.html#a736db13a966b8abaf8c9198faa35911a">get_mood_verbs()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, <a class="el" href="text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66">get_poke_verbs()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="classApp.html#a871898becd0697d778f36d9336253ae8">App\get_widgets()</a>, <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">group_select()</a>, <a class="el" href="html2bbcode_8php.html#a5ad726995ac4070213abdb3bd09f4837">html2bbcode()</a>, <a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">import_author_xchan()</a>, <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="profile__selectors_8php.html#a7473dd095987e1cdcc79d4f0bb5e6798">marital_selector()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce">obj_verbs()</a>, <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="comanche_8php.html#af7150df735e5ff9d467994cd6f769c6e">pdl_selector()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09">replace_macros()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="profile__selectors_8php.html#a3b50b3ea4ea4bdbebebfffc5d1b157c7">sexpref_selector()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="identity_8php.html#af2802bc13a00a17b867bba7978ba8f58">validate_channelname()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="identity_8php.html#a5b815330f3d177ab383af37a6c12e532">zid()</a>, and <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>.</p>
+<p>Referenced by <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="items_8php.html#a016dd86c827d08db89061ea81d15c6cb">atom_author()</a>, <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7">avatar_img()</a>, <a class="el" href="bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c">bb2diaspora()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="account_8php.html#ae052bd5558847bd38e89c213561a9771">check_account_email()</a>, <a class="el" href="account_8php.html#aaff7720423417a4333697894ffd9ddeb">check_account_invite()</a>, <a class="el" href="account_8php.html#a144b4891022567668375b58ea61cfff0">check_account_password()</a>, <a class="el" href="connect_8php.html#a489f0a66c660de6ec4d6917b27674f07">connect_content()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca">cronhooks_run()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="account_8php.html#a0d183a3cb4c67a0f5e906811df7a1fc9">downgrade_accounts()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="features_8php.html#a52b5bdfb61b256713efecf7a7b20b0c0">feature_enabled()</a>, <a class="el" href="profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355">gender_selector()</a>, <a class="el" href="permissions_8php.html#aeca9b280f3dc3358c89976d81d690008">get_all_perms()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c">get_features()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="text_8php.html#a736db13a966b8abaf8c9198faa35911a">get_mood_verbs()</a>, <a class="el" href="permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972">get_perms()</a>, <a class="el" href="text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66">get_poke_verbs()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="classApp.html#a871898becd0697d778f36d9336253ae8">App\get_widgets()</a>, <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">group_select()</a>, <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home_content()</a>, <a class="el" href="home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde">home_init()</a>, <a class="el" href="html2bbcode_8php.html#a5ad726995ac4070213abdb3bd09f4837">html2bbcode()</a>, <a class="el" href="items_8php.html#ae73794179b62d39bb597ff670ab1c1e5">import_author_xchan()</a>, <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="profile__selectors_8php.html#a7473dd095987e1cdcc79d4f0bb5e6798">marital_selector()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="contact__selectors_8php.html#ad472e4716426dd1a9dd77b62962454be">network_to_name()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce">obj_verbs()</a>, <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="comanche_8php.html#af7150df735e5ff9d467994cd6f769c6e">pdl_selector()</a>, <a class="el" href="permissions_8php.html#a67ada9ed51e77885b6b0f6a28cee1835">perm_is_allowed()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09">replace_macros()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="profile__selectors_8php.html#a3b50b3ea4ea4bdbebebfffc5d1b157c7">sexpref_selector()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="identity_8php.html#af2802bc13a00a17b867bba7978ba8f58">validate_channelname()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="widgets_8php.html#add9b24d3304e529a7975e96122315554">widget_affinity()</a>, <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="identity_8php.html#a5b815330f3d177ab383af37a6c12e532">zid()</a>, and <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>.</p>
</div>
</div>
@@ -284,7 +290,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a6943543f3138f6ee182cb701f415d1cc">admin_page_hubloc()</a>, <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85">alt_pager()</a>, <a class="el" href="include_2api_8php.html#a5990101034e7abf6404feba3cd273629">api_apply_template()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="view_2theme_2blogga_2php_2config_8php.html#a8a311a402d3e746ce53fadc38e4b2d27">blogtheme_form()</a>, <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="connect_8php.html#a489f0a66c660de6ec4d6917b27674f07">connect_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair_content()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="text_8php.html#a87a3cefc603302c78982f1d8e1245265">design_tools()</a>, <a class="el" href="dir__fns_8php.html#acf621621e929d49441da30aad76a58cf">dir_safe_mode()</a>, <a class="el" href="dir__fns_8php.html#ae56881d69bb6f8e828c9e35454386774">dir_sort_links()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="datetime_8php.html#a03900dcf0f9e3c58793a031673a70326">field_timezone()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="contact__widgets_8php.html#af24e693532a045954caab515942cfc6f">follow_widget()</a>, <a class="el" href="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">format_categories()</a>, <a class="el" href="text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91">format_filer()</a>, <a class="el" href="identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17">group_side()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184">import_content()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="text_8php.html#a71f6952243d3fe1c5a8154f78027e29c">lang_selector()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="include_2menu_8php.html#a890cc6237971e15f15702e6b2e88502e">menu_render()</a>, <a class="el" href="mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7">message_aside()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="text_8php.html#a2a902f5fdba8646333e997898ac45ea3">micropro()</a>, <a class="el" href="include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32">mini_group_select()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3">oembed_format_object()</a>, <a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange_init()</a>, <a class="el" href="opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9">opensearch_init()</a>, <a class="el" href="page__widgets_8php.html#ad82011c1ed90d9de8b9f34c12af5c6f0">pagelist_widget()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="acl__selectors_8php.html#a7b5446e999636ceceea65c154d865a31">populate_acl()</a>, <a class="el" href="items_8php.html#abe695dd89e1e10ed042c26b80114f0ed">posted_date_widget()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793">redbasic_form()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef">rmagic_content()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53">theme_attachments()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="vote_8php.html#a6aa67489bf458ca5e3206e46dac68596">vote_content()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="page__widgets_8php.html#a1a1e729da27f252cab6678288a17958f">writepages_widget()</a>, and <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>.</p>
+<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a6943543f3138f6ee182cb701f415d1cc">admin_page_hubloc()</a>, <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85">alt_pager()</a>, <a class="el" href="include_2api_8php.html#a5990101034e7abf6404feba3cd273629">api_apply_template()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="view_2theme_2blogga_2php_2config_8php.html#a8a311a402d3e746ce53fadc38e4b2d27">blogtheme_form()</a>, <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="connect_8php.html#a489f0a66c660de6ec4d6917b27674f07">connect_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="text_8php.html#a87a3cefc603302c78982f1d8e1245265">design_tools()</a>, <a class="el" href="dir__fns_8php.html#acf621621e929d49441da30aad76a58cf">dir_safe_mode()</a>, <a class="el" href="dir__fns_8php.html#ae56881d69bb6f8e828c9e35454386774">dir_sort_links()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="datetime_8php.html#a03900dcf0f9e3c58793a031673a70326">field_timezone()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">format_categories()</a>, <a class="el" href="text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91">format_filer()</a>, <a class="el" href="identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a6a69bd7be032fa8ce4e49c43a42cc6e9">group_side()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184">import_content()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="text_8php.html#a71f6952243d3fe1c5a8154f78027e29c">lang_selector()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="include_2menu_8php.html#a4d7123b0577fa994770199f9b831da11">menu_render()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, <a class="el" href="text_8php.html#a2a902f5fdba8646333e997898ac45ea3">micropro()</a>, <a class="el" href="include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32">mini_group_select()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3">oembed_format_object()</a>, <a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange_init()</a>, <a class="el" href="opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9">opensearch_init()</a>, <a class="el" href="page__widgets_8php.html#ad82011c1ed90d9de8b9f34c12af5c6f0">pagelist_widget()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="acl__selectors_8php.html#a7b5446e999636ceceea65c154d865a31">populate_acl()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793">redbasic_form()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef">rmagic_content()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53">theme_attachments()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="vote_8php.html#a6aa67489bf458ca5e3206e46dac68596">vote_content()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="widgets_8php.html#add9b24d3304e529a7975e96122315554">widget_affinity()</a>, <a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widget_archive()</a>, <a class="el" href="widgets_8php.html#a47c72aac42058ea086c9ef8651c259da">widget_chatroom_list()</a>, <a class="el" href="widgets_8php.html#a5ab3b64496e02cab56429978ad55f1c0">widget_filer()</a>, <a class="el" href="widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd">widget_follow()</a>, <a class="el" href="widgets_8php.html#afa2e55a78f95667a6da082efac7fec74">widget_mailmenu()</a>, <a class="el" href="widgets_8php.html#a45ea061dabe9a8372e4ca3b9e5714256">widget_notes()</a>, <a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widget_savedsearch()</a>, <a class="el" href="widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01">widget_settings_menu()</a>, <a class="el" href="widgets_8php.html#a0d404276fedc59f5038cf5c085028326">widget_suggestions()</a>, <a class="el" href="page__widgets_8php.html#a1a1e729da27f252cab6678288a17958f">writepages_widget()</a>, and <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>.</p>
</div>
</div>
@@ -422,6 +428,48 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a9ab6caae31935f6cf781ce7872db7cdf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">head_remove_css </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$src</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$media</em> = <code>'screen'</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4a0ae7b881e7c8af99a69e3b03f898b4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">head_remove_js </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$src</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="aeaebe63dcf6fa2794f363ba2bc0b2c6b"></a>
<div class="memitem">
<div class="memproto">
@@ -568,6 +616,23 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a0e8c2ea50bfdbc39e17ccccaea21ddc3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">script_path </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="plugin_8php.html#a9039e15aae27676af7777dcbee5a11d6">format_css_if_exists()</a>, and <a class="el" href="plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f">format_js_if_exists()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a030cec6793b909c439c0336ba39b1571"></a>
<div class="memitem">
<div class="memproto">
@@ -626,7 +691,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="contact__widgets_8php.html#af24e693532a045954caab515942cfc6f">follow_widget()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, and <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>.</p>
+<p>Referenced by <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="include_2chat_8php.html#acdc80dba4eb796c7472b21129b435422">chatroom_create()</a>, <a class="el" href="include_2chat_8php.html#a2c95b545e46bfee64faa05ecf0afea91">chatroom_enter()</a>, <a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">RedDirectory\createFile()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="classRedDirectory.html#a2f7a574f2115f099d6dd103d5b252375">RedDirectory\getQuotaInfo()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="classRedFile.html#a41a49a583eb276b75626fcf97f4a699c">RedFile\put()</a>, and <a class="el" href="widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd">widget_follow()</a>.</p>
</div>
</div>
@@ -654,7 +719,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="plugin_8php.html#a9039e15aae27676af7777dcbee5a11d6">format_css_if_exists()</a>, <a class="el" href="plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f">format_js_if_exists()</a>, <a class="el" href="classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118">FriendicaSmartyEngine\get_intltext_template()</a>, <a class="el" href="classFriendicaSmartyEngine.html#aab5994077fc3a64222e41b28e2bd8d88">FriendicaSmartyEngine\get_markup_template()</a>, <a class="el" href="classTemplate.html#afd97b4b1e7754a550e67c0ea79159059">Template\get_markup_template()</a>, and <a class="el" href="classApp.html#a123b903dfe5d3488cc68db3471d36fd2">App\set_widget()</a>.</p>
+<p>Referenced by <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="plugin_8php.html#a9039e15aae27676af7777dcbee5a11d6">format_css_if_exists()</a>, <a class="el" href="plugin_8php.html#ad9ff8ba554576383c5911a4bce068c1f">format_js_if_exists()</a>, <a class="el" href="classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118">FriendicaSmartyEngine\get_intltext_template()</a>, <a class="el" href="classFriendicaSmartyEngine.html#aab5994077fc3a64222e41b28e2bd8d88">FriendicaSmartyEngine\get_markup_template()</a>, and <a class="el" href="classTemplate.html#afd97b4b1e7754a550e67c0ea79159059">Template\get_markup_template()</a>.</p>
</div>
</div>
@@ -776,7 +841,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633">identity_check_service_class()</a>, <a class="el" href="item_8php.html#a5b1b36cb301a94b38150074f0d424e74">item_check_service_class()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, and <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>.</p>
+<p>Referenced by <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="include_2chat_8php.html#acdc80dba4eb796c7472b21129b435422">chatroom_create()</a>, <a class="el" href="identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633">identity_check_service_class()</a>, <a class="el" href="item_8php.html#a5b1b36cb301a94b38150074f0d424e74">item_check_service_class()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, and <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>.</p>
</div>
</div>
diff --git a/doc/html/plugin_8php.js b/doc/html/plugin_8php.js
index ff6745471..e338c63d6 100644
--- a/doc/html/plugin_8php.js
+++ b/doc/html/plugin_8php.js
@@ -12,12 +12,15 @@ var plugin_8php =
[ "head_add_js", "plugin_8php.html#a516591850f4fd49fd1425cfa54089db8", null ],
[ "head_get_css", "plugin_8php.html#af92789f559b89a380e49d303218aeeca", null ],
[ "head_get_js", "plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1", null ],
+ [ "head_remove_css", "plugin_8php.html#a9ab6caae31935f6cf781ce7872db7cdf", null ],
+ [ "head_remove_js", "plugin_8php.html#a4a0ae7b881e7c8af99a69e3b03f898b4", null ],
[ "insert_hook", "plugin_8php.html#aeaebe63dcf6fa2794f363ba2bc0b2c6b", null ],
[ "install_plugin", "plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5", null ],
[ "load_hooks", "plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813", null ],
[ "load_plugin", "plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d", null ],
[ "register_hook", "plugin_8php.html#a425472c5f3afc137268b2ad45652b209", null ],
[ "reload_plugins", "plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025", null ],
+ [ "script_path", "plugin_8php.html#a0e8c2ea50bfdbc39e17ccccaea21ddc3", null ],
[ "service_class_allows", "plugin_8php.html#a030cec6793b909c439c0336ba39b1571", null ],
[ "service_class_fetch", "plugin_8php.html#a905b54e10704b283ac64680a8abc0971", null ],
[ "theme_include", "plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2", null ],
diff --git a/doc/html/post_8php.html b/doc/html/post_8php.html
index 518ca703d..0c0745a3a 100644
--- a/doc/html/post_8php.html
+++ b/doc/html/post_8php.html
@@ -141,7 +141,7 @@ Functions</h2></td></tr>
<p>The sender of this packet is an arbitrary/random site channel. The recipients will be a single recipient corresponding to the guid and guid_sig we have associated with the requesting auth identity</p>
<p>{ "type":"auth_check", "sender":{ "guid":"kgVFf_...", "guid_sig":"PT9-TApz...", "url":"http:\/\/podunk.edu", "url_sig":"T8Bp7j..." }, "recipients":{ { "guid":"ZHSqb...", "guid_sig":"JsAAXi..." } } "callback":"\/post", "version":1, "secret":"1eaa661", "secret_sig":"eKV968b1..." }</p>
<p>auth_check messages MUST use encapsulated encryption. This message is sent to the origination site, which checks the 'secret' to see if it is the same as the 'sec' which it passed originally. It also checks the secret_sig which is the secret signed by the destination channel's private key and base64url encoded. If everything checks out, a json packet is returned:</p>
-<p>{ "success":1, "confirm":"q0Ysovd1u..." "service_class":(optional) }</p>
+<p>{ "success":1, "confirm":"q0Ysovd1u..." "service_class":(optional) "level":(optional) }</p>
<p>'confirm' in this case is the base64url encoded RSA signature of the concatenation of 'secret' with the base64url encoded whirlpool hash of the requestor's guid and guid_sig; signed with the source channel private key. This prevents a man-in-the-middle from inserting a rogue success packet. Upon receipt and successful verification of this packet, the destination site will redirect to the original destination URL and indicate a successful remote login. Service_class can be used by cooperating sites to provide different access rights based on account rights and subscription plans. It is a string whose contents are not defined by protocol. Example: "basic" or "gold".</p>
</div>
@@ -162,8 +162,8 @@ Functions</h2></td></tr>
<p>post_post(&amp;$a) zot communications and messaging</p>
<p>Sender HTTP posts to this endpoint ($site/post typically) with 'data' parameter set to json zot message packet. This packet is optionally encrypted, which we will discover if the json has an 'iv' element. $contents =&gt; array( 'alg' =&gt; 'aes256cbc', 'iv' =&gt; initialisation vector, 'key' =&gt; decryption key, 'data' =&gt; encrypted data); $contents-&gt;iv and $contents-&gt;key are random strings encrypted with this site's RSA public key and then base64url encoded. Currently only 'aes256cbc' is used, but this is extensible should that algorithm prove inadequate.</p>
<p>Once decrypted, one will find the normal json_encoded zot message packet.</p>
-<p>Defined packet types are: notify, purge, refresh, auth_check, ping, and pickup</p>
-<p>Standard packet: (used by notify, purge, refresh, and auth_check)</p>
+<p>Defined packet types are: notify, purge, refresh, force_refresh, auth_check, ping, and pickup</p>
+<p>Standard packet: (used by notify, purge, refresh, force_refresh, and auth_check)</p>
<p>{ "type": "notify", "sender":{ "guid":"kgVFf_1...", "guid_sig":"PT9-TApzp...", "url":"http:\/\/podunk.edu", "url_sig":"T8Bp7j5...", }, "recipients": { optional recipient array }, "callback":"\/post", "version":1, "secret":"1eaa...", "secret_sig": "df89025470fac8..." }</p>
<p>Signature fields are all signed with the sender channel private key and base64url encoded. Recipients are arrays of guid and guid_sig, which were previously signed with the recipients private key and base64url encoded and later obtained via channel discovery. Absence of recipients indicates a public message or visible to all potential listeners on this site.</p>
<p>"pickup" packet: The pickup packet is sent in response to a notify packet from another site</p>
diff --git a/doc/html/profile_8php.html b/doc/html/profile_8php.html
index a44f39cf3..4e95ad2b8 100644
--- a/doc/html/profile_8php.html
+++ b/doc/html/profile_8php.html
@@ -114,28 +114,10 @@ $(document).ready(function(){initNavTree('profile_8php.html','');});
Functions</h2></td></tr>
<tr class="memitem:ab5d0246be0552e2182a585c1206d22a5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init</a> (&amp;$a)</td></tr>
<tr class="separator:ab5d0246be0552e2182a585c1206d22a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1a2482b775476f2f64ea5e8f4fc3fd1e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profile_8php.html#a1a2482b775476f2f64ea5e8f4fc3fd1e">profile_aside</a> (&amp;$a)</td></tr>
-<tr class="separator:a1a2482b775476f2f64ea5e8f4fc3fd1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3775cf6eef6587e5143133356a7b76c0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content</a> (&amp;$a, $update=0)</td></tr>
<tr class="separator:a3775cf6eef6587e5143133356a7b76c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a1a2482b775476f2f64ea5e8f4fc3fd1e"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">profile_aside </td>
- <td>(</td>
- <td class="paramtype">&amp;&#160;</td>
- <td class="paramname"><em>$a</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
<a class="anchor" id="a3775cf6eef6587e5143133356a7b76c0"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/profile_8php.js b/doc/html/profile_8php.js
index 942cf9b3d..249035945 100644
--- a/doc/html/profile_8php.js
+++ b/doc/html/profile_8php.js
@@ -1,6 +1,5 @@
var profile_8php =
[
- [ "profile_aside", "profile_8php.html#a1a2482b775476f2f64ea5e8f4fc3fd1e", null ],
[ "profile_content", "profile_8php.html#a3775cf6eef6587e5143133356a7b76c0", null ],
[ "profile_init", "profile_8php.html#ab5d0246be0552e2182a585c1206d22a5", null ]
]; \ No newline at end of file
diff --git a/doc/html/profile__photo_8php.html b/doc/html/profile__photo_8php.html
index 769fa21a7..5d775fc65 100644
--- a/doc/html/profile__photo_8php.html
+++ b/doc/html/profile__photo_8php.html
@@ -114,28 +114,10 @@ $(document).ready(function(){initNavTree('profile__photo_8php.html','');});
Functions</h2></td></tr>
<tr class="memitem:a140631c56438fbfacb61a1eb43067d02"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02">profile_photo_init</a> (&amp;$a)</td></tr>
<tr class="separator:a140631c56438fbfacb61a1eb43067d02"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac9cd968a767e2ae1b88383b6cdd6dbe3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profile__photo_8php.html#ac9cd968a767e2ae1b88383b6cdd6dbe3">profile_photo_aside</a> (&amp;$a)</td></tr>
-<tr class="separator:ac9cd968a767e2ae1b88383b6cdd6dbe3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b80234074bd603221aa5364f330e479"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post</a> (&amp;$a)</td></tr>
<tr class="separator:a4b80234074bd603221aa5364f330e479"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ac9cd968a767e2ae1b88383b6cdd6dbe3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">profile_photo_aside </td>
- <td>(</td>
- <td class="paramtype">&amp;&#160;</td>
- <td class="paramname"><em>$a</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
<a class="anchor" id="a140631c56438fbfacb61a1eb43067d02"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/profile__photo_8php.js b/doc/html/profile__photo_8php.js
index c9a379a2e..db2f4e25e 100644
--- a/doc/html/profile__photo_8php.js
+++ b/doc/html/profile__photo_8php.js
@@ -1,6 +1,5 @@
var profile__photo_8php =
[
- [ "profile_photo_aside", "profile__photo_8php.html#ac9cd968a767e2ae1b88383b6cdd6dbe3", null ],
[ "profile_photo_init", "profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02", null ],
[ "profile_photo_post", "profile__photo_8php.html#a4b80234074bd603221aa5364f330e479", null ]
]; \ No newline at end of file
diff --git a/doc/html/profiles_8php.html b/doc/html/profiles_8php.html
index 17239b852..1b947e0ed 100644
--- a/doc/html/profiles_8php.html
+++ b/doc/html/profiles_8php.html
@@ -114,30 +114,12 @@ $(document).ready(function(){initNavTree('profiles_8php.html','');});
Functions</h2></td></tr>
<tr class="memitem:a36f71405ad536228f8bb84a551b23f7e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init</a> (&amp;$a)</td></tr>
<tr class="separator:a36f71405ad536228f8bb84a551b23f7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2a3ac90f51941ff78b85e9389304969c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c">profiles_aside</a> (&amp;$a)</td></tr>
-<tr class="separator:a2a3ac90f51941ff78b85e9389304969c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0362c81b1d3b0b12a772b9fac446e04"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post</a> (&amp;$a)</td></tr>
<tr class="separator:ab0362c81b1d3b0b12a772b9fac446e04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46975783b8b8d70402d51487eb1f0b00"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content</a> (&amp;$a)</td></tr>
<tr class="separator:a46975783b8b8d70402d51487eb1f0b00"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a2a3ac90f51941ff78b85e9389304969c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">profiles_aside </td>
- <td>(</td>
- <td class="paramtype">&amp;&#160;</td>
- <td class="paramname"><em>$a</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
<a class="anchor" id="a46975783b8b8d70402d51487eb1f0b00"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/profiles_8php.js b/doc/html/profiles_8php.js
index 6bc83ad62..256ba1080 100644
--- a/doc/html/profiles_8php.js
+++ b/doc/html/profiles_8php.js
@@ -1,6 +1,5 @@
var profiles_8php =
[
- [ "profiles_aside", "profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c", null ],
[ "profiles_content", "profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00", null ],
[ "profiles_init", "profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e", null ],
[ "profiles_post", "profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04", null ]
diff --git a/doc/html/profperm_8php.html b/doc/html/profperm_8php.html
index 315bc21bb..a99c661fb 100644
--- a/doc/html/profperm_8php.html
+++ b/doc/html/profperm_8php.html
@@ -114,28 +114,10 @@ $(document).ready(function(){initNavTree('profperm_8php.html','');});
Functions</h2></td></tr>
<tr class="memitem:a17fb64ec05edee1dc94d95438807d6c6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6">profperm_init</a> (&amp;$a)</td></tr>
<tr class="separator:a17fb64ec05edee1dc94d95438807d6c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a77fd398ae7c25142e1d9ad724ec347cc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profperm_8php.html#a77fd398ae7c25142e1d9ad724ec347cc">profperm_aside</a> (&amp;$a)</td></tr>
-<tr class="separator:a77fd398ae7c25142e1d9ad724ec347cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef015787de2373d9fb3fe3f814fb5023"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content</a> (&amp;$a)</td></tr>
<tr class="separator:aef015787de2373d9fb3fe3f814fb5023"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a77fd398ae7c25142e1d9ad724ec347cc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">profperm_aside </td>
- <td>(</td>
- <td class="paramtype">&amp;&#160;</td>
- <td class="paramname"><em>$a</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
<a class="anchor" id="aef015787de2373d9fb3fe3f814fb5023"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/profperm_8php.js b/doc/html/profperm_8php.js
index 978df3252..95b68003d 100644
--- a/doc/html/profperm_8php.js
+++ b/doc/html/profperm_8php.js
@@ -1,6 +1,5 @@
var profperm_8php =
[
- [ "profperm_aside", "profperm_8php.html#a77fd398ae7c25142e1d9ad724ec347cc", null ],
[ "profperm_content", "profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023", null ],
[ "profperm_init", "profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6", null ]
]; \ No newline at end of file
diff --git a/doc/html/pubsites_8php.html b/doc/html/pubsites_8php.html
index f9f83cae7..0972e9cd4 100644
--- a/doc/html/pubsites_8php.html
+++ b/doc/html/pubsites_8php.html
@@ -130,6 +130,8 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Referenced by <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>.</p>
+
</div>
</div>
</div><!-- contents -->
diff --git a/doc/html/redbasic_2php_2style_8php.html b/doc/html/redbasic_2php_2style_8php.html
index e816fa304..7233c03f7 100644
--- a/doc/html/redbasic_2php_2style_8php.html
+++ b/doc/html/redbasic_2php_2style_8php.html
@@ -112,48 +112,6 @@ $(document).ready(function(){initNavTree('redbasic_2php_2style_8php.html','');})
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
-<tr class="memitem:a109bbd7f4add27541707b191b73ef84a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a">$uid</a> = <a class="el" href="identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">get_theme_uid</a>()</td></tr>
-<tr class="separator:a109bbd7f4add27541707b191b73ef84a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a883f9f14e205f7aa7de02c14df67b40a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> ($uid) <a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">load_pconfig</a>($uid</td></tr>
-<tr class="separator:a883f9f14e205f7aa7de02c14df67b40a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8fdd5874587a9ad86fb05ed0be265649"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a8fdd5874587a9ad86fb05ed0be265649">$nav_colour</a> = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid, &quot;redbasic&quot;, &quot;nav_colour&quot;)</td></tr>
-<tr class="separator:a8fdd5874587a9ad86fb05ed0be265649"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae587aa6949ab6e4aa77a591e60f67ee0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#ae587aa6949ab6e4aa77a591e60f67ee0">$banner_colour</a> = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid,'redbasic','banner_colour')</td></tr>
-<tr class="separator:ae587aa6949ab6e4aa77a591e60f67ee0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a83022b1d70799d2bde3d64dca9cb40ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a83022b1d70799d2bde3d64dca9cb40ee">$schema</a> = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid,'redbasic','schema')</td></tr>
-<tr class="separator:a83022b1d70799d2bde3d64dca9cb40ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0bdce350cf14bac44976e786d1be6574"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a0bdce350cf14bac44976e786d1be6574">$bgcolour</a> = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid, &quot;redbasic&quot;, &quot;background_colour&quot;)</td></tr>
-<tr class="separator:a0bdce350cf14bac44976e786d1be6574"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a339624aeef6604a2f00209a3962c6e1c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a339624aeef6604a2f00209a3962c6e1c">$background_image</a> = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid, &quot;redbasic&quot;, &quot;background_image&quot;)</td></tr>
-<tr class="separator:a339624aeef6604a2f00209a3962c6e1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4161f6b8aa923f67e53f54dfb6554cdb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a4161f6b8aa923f67e53f54dfb6554cdb">$toolicon_colour</a> = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid,'redbasic','toolicon_colour')</td></tr>
-<tr class="separator:a4161f6b8aa923f67e53f54dfb6554cdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:acfd00ec469ca3c5e8bfac787573093f3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#acfd00ec469ca3c5e8bfac787573093f3">$toolicon_activecolour</a> = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid,'redbasic','toolicon_activecolour')</td></tr>
-<tr class="separator:acfd00ec469ca3c5e8bfac787573093f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a27cb59bbc750341f448cd0c298a7ea16"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a27cb59bbc750341f448cd0c298a7ea16">$item_colour</a> = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid, &quot;redbasic&quot;, &quot;item_colour&quot;)</td></tr>
-<tr class="separator:a27cb59bbc750341f448cd0c298a7ea16"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a136b0a2cdeb37f3fa506d28f82dcdbf8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a136b0a2cdeb37f3fa506d28f82dcdbf8">$item_opacity</a> = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid, &quot;redbasic&quot;, &quot;item_opacity&quot;)</td></tr>
-<tr class="separator:a136b0a2cdeb37f3fa506d28f82dcdbf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad78cb8a1793834626d73aca22a1501f8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#ad78cb8a1793834626d73aca22a1501f8">$body_font_size</a> = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid, &quot;redbasic&quot;, &quot;body_font_size&quot;)</td></tr>
-<tr class="separator:ad78cb8a1793834626d73aca22a1501f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afcbcf57d0b90d2e4226c2e8a1171befc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#afcbcf57d0b90d2e4226c2e8a1171befc">$font_size</a> = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid, &quot;redbasic&quot;, &quot;font_size&quot;)</td></tr>
-<tr class="separator:afcbcf57d0b90d2e4226c2e8a1171befc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a68e3ff836ec87ae1370c9f4a12c21c6b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a68e3ff836ec87ae1370c9f4a12c21c6b">$font_colour</a> = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid, &quot;redbasic&quot;, &quot;font_colour&quot;)</td></tr>
-<tr class="separator:a68e3ff836ec87ae1370c9f4a12c21c6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6502bedd57105ad1fb2dee2be9cf6351"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a6502bedd57105ad1fb2dee2be9cf6351">$radius</a> = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid, &quot;redbasic&quot;, &quot;radius&quot;)</td></tr>
-<tr class="separator:a6502bedd57105ad1fb2dee2be9cf6351"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab00dfc29448b183055d2ae61a0e1874a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#ab00dfc29448b183055d2ae61a0e1874a">$shadow</a> = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid,&quot;redbasic&quot;,&quot;photo_shadow&quot;)</td></tr>
-<tr class="separator:ab00dfc29448b183055d2ae61a0e1874a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0cb037986e32302685d4f580dedd6473"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a0cb037986e32302685d4f580dedd6473">$converse_width</a> =<a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid,&quot;redbasic&quot;,&quot;converse_width&quot;)</td></tr>
-<tr class="separator:a0cb037986e32302685d4f580dedd6473"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab5ec5703848e0132f8a8f3d3a53a58e1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#ab5ec5703848e0132f8a8f3d3a53a58e1">$nav_min_opacity</a> =<a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid,'redbasic','nav_min_opacity')</td></tr>
-<tr class="separator:ab5ec5703848e0132f8a8f3d3a53a58e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a6ffadaf926b41ad84c30da319011e9ad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a6ffadaf926b41ad84c30da319011e9ad">$sloppy_photos</a> =<a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid,'redbasic','sloppy_photos')</td></tr>
-<tr class="separator:a6ffadaf926b41ad84c30da319011e9ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a810142b4bdd35a1d377ab279b02b47eb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a810142b4bdd35a1d377ab279b02b47eb">$top_photo</a> =<a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid,'redbasic','top_photo')</td></tr>
-<tr class="separator:a810142b4bdd35a1d377ab279b02b47eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0b070f2c9140a7a12a0b1f88601a29e4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a0b070f2c9140a7a12a0b1f88601a29e4">$reply_photo</a> =<a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid,'redbasic','reply_photo')</td></tr>
-<tr class="separator:a0b070f2c9140a7a12a0b1f88601a29e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac98bd8264411bd207a5740d08e81a158"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#ac98bd8264411bd207a5740d08e81a158">$pmenu_top</a> = intval($top_photo) - 16 . 'px'</td></tr>
<tr class="separator:ac98bd8264411bd207a5740d08e81a158"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61891d0d3e6894f52410d507b04e565d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a61891d0d3e6894f52410d507b04e565d">$wwtop</a> = intval($top_photo) - 15 . 'px'</td></tr>
@@ -162,62 +120,12 @@ Variables</h2></td></tr>
<tr class="separator:a5bff5012c56e34da6b3b2ed475726b27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b489f1c595b867212d30eca0c85b38c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a9b489f1c595b867212d30eca0c85b38c">$pmenu_reply</a> = intval($reply_photo) - 16 . 'px'</td></tr>
<tr class="separator:a9b489f1c595b867212d30eca0c85b38c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab3afb90d611eca90819f597a2c0bb459"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>($nav_min_opacity===false||$nav_min_opacity=== '')&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#ab3afb90d611eca90819f597a2c0bb459">else</a></td></tr>
+<tr class="memitem:ab3afb90d611eca90819f597a2c0bb459"><td class="memItemLeft" align="right" valign="top"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>($nav_min_opacity===false||$nav_min_opacity=== '')&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#ab3afb90d611eca90819f597a2c0bb459">else</a></td></tr>
<tr class="separator:ab3afb90d611eca90819f597a2c0bb459"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01c151bf47f7da2b979aaa4cb868da4c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="redbasic_2php_2style_8php.html#a01c151bf47f7da2b979aaa4cb868da4c">$nav_percent_min_opacity</a> = (int) 100 * $nav_min_opacity</td></tr>
<tr class="separator:a01c151bf47f7da2b979aaa4cb868da4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Variable Documentation</h2>
-<a class="anchor" id="a339624aeef6604a2f00209a3962c6e1c"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">$background_image = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid, &quot;redbasic&quot;, &quot;background_image&quot;)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="ae587aa6949ab6e4aa77a591e60f67ee0"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">$banner_colour = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid,'redbasic','banner_colour')</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="a0bdce350cf14bac44976e786d1be6574"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">$bgcolour = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid, &quot;redbasic&quot;, &quot;background_colour&quot;)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Referenced by <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, and <a class="el" href="view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ad78cb8a1793834626d73aca22a1501f8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">$body_font_size = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid, &quot;redbasic&quot;, &quot;body_font_size&quot;)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
<a class="anchor" id="a5bff5012c56e34da6b3b2ed475726b27"></a>
<div class="memitem">
<div class="memproto">
@@ -230,96 +138,6 @@ Variables</h2></td></tr>
</div>
</div>
-<a class="anchor" id="a0cb037986e32302685d4f580dedd6473"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">$converse_width =<a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid,&quot;redbasic&quot;,&quot;converse_width&quot;)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="a68e3ff836ec87ae1370c9f4a12c21c6b"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">$font_colour = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid, &quot;redbasic&quot;, &quot;font_colour&quot;)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Referenced by <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, and <a class="el" href="view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="afcbcf57d0b90d2e4226c2e8a1171befc"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">$font_size = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid, &quot;redbasic&quot;, &quot;font_size&quot;)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Referenced by <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, and <a class="el" href="view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a27cb59bbc750341f448cd0c298a7ea16"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">$item_colour = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid, &quot;redbasic&quot;, &quot;item_colour&quot;)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Referenced by <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, and <a class="el" href="view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a136b0a2cdeb37f3fa506d28f82dcdbf8"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">$item_opacity = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid, &quot;redbasic&quot;, &quot;item_opacity&quot;)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="a8fdd5874587a9ad86fb05ed0be265649"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">$nav_colour = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid, &quot;redbasic&quot;, &quot;nav_colour&quot;)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="ab5ec5703848e0132f8a8f3d3a53a58e1"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">$nav_min_opacity =<a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid,'redbasic','nav_min_opacity')</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
<a class="anchor" id="a01c151bf47f7da2b979aaa4cb868da4c"></a>
<div class="memitem">
<div class="memproto">
@@ -356,118 +174,6 @@ Variables</h2></td></tr>
</div>
</div>
-<a class="anchor" id="a6502bedd57105ad1fb2dee2be9cf6351"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">$radius = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid, &quot;redbasic&quot;, &quot;radius&quot;)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Referenced by <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, and <a class="el" href="view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0b070f2c9140a7a12a0b1f88601a29e4"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">$reply_photo =<a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid,'redbasic','reply_photo')</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="a83022b1d70799d2bde3d64dca9cb40ee"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">$schema = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid,'redbasic','schema')</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Referenced by <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, and <a class="el" href="view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ab00dfc29448b183055d2ae61a0e1874a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">$shadow = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid,&quot;redbasic&quot;,&quot;photo_shadow&quot;)</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="a6ffadaf926b41ad84c30da319011e9ad"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">$sloppy_photos =<a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid,'redbasic','sloppy_photos')</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="acfd00ec469ca3c5e8bfac787573093f3"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">$toolicon_activecolour = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid,'redbasic','toolicon_activecolour')</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="a4161f6b8aa923f67e53f54dfb6554cdb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">$toolicon_colour = <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid,'redbasic','toolicon_colour')</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="a810142b4bdd35a1d377ab279b02b47eb"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">$top_photo =<a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig</a>($uid,'redbasic','top_photo')</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="a109bbd7f4add27541707b191b73ef84a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">$uid = <a class="el" href="identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3">get_theme_uid</a>()</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
<a class="anchor" id="a61891d0d3e6894f52410d507b04e565d"></a>
<div class="memitem">
<div class="memproto">
@@ -485,27 +191,15 @@ Variables</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> ($nav_min_opacity===false||$nav_min_opacity=== '') else</td>
+ <td class="memname"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> ($nav_min_opacity===false||$nav_min_opacity=== '') else</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">{</div>
-<div class="line"> $nav_float_min_opacity = (float) <a class="code" href="redbasic_2php_2style_8php.html#ab5ec5703848e0132f8a8f3d3a53a58e1">$nav_min_opacity</a></div>
+<div class="line"> $nav_float_min_opacity = (float) $nav_min_opacity</div>
</div><!-- fragment -->
</div>
</div>
-<a class="anchor" id="a883f9f14e205f7aa7de02c14df67b40a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">if($uid) <a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">load_pconfig</a>($uid</td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/redbasic_2php_2style_8php.js b/doc/html/redbasic_2php_2style_8php.js
index c5e370461..4e9032b97 100644
--- a/doc/html/redbasic_2php_2style_8php.js
+++ b/doc/html/redbasic_2php_2style_8php.js
@@ -1,30 +1,9 @@
var redbasic_2php_2style_8php =
[
- [ "$background_image", "redbasic_2php_2style_8php.html#a339624aeef6604a2f00209a3962c6e1c", null ],
- [ "$banner_colour", "redbasic_2php_2style_8php.html#ae587aa6949ab6e4aa77a591e60f67ee0", null ],
- [ "$bgcolour", "redbasic_2php_2style_8php.html#a0bdce350cf14bac44976e786d1be6574", null ],
- [ "$body_font_size", "redbasic_2php_2style_8php.html#ad78cb8a1793834626d73aca22a1501f8", null ],
[ "$comment_indent", "redbasic_2php_2style_8php.html#a5bff5012c56e34da6b3b2ed475726b27", null ],
- [ "$converse_width", "redbasic_2php_2style_8php.html#a0cb037986e32302685d4f580dedd6473", null ],
- [ "$font_colour", "redbasic_2php_2style_8php.html#a68e3ff836ec87ae1370c9f4a12c21c6b", null ],
- [ "$font_size", "redbasic_2php_2style_8php.html#afcbcf57d0b90d2e4226c2e8a1171befc", null ],
- [ "$item_colour", "redbasic_2php_2style_8php.html#a27cb59bbc750341f448cd0c298a7ea16", null ],
- [ "$item_opacity", "redbasic_2php_2style_8php.html#a136b0a2cdeb37f3fa506d28f82dcdbf8", null ],
- [ "$nav_colour", "redbasic_2php_2style_8php.html#a8fdd5874587a9ad86fb05ed0be265649", null ],
- [ "$nav_min_opacity", "redbasic_2php_2style_8php.html#ab5ec5703848e0132f8a8f3d3a53a58e1", null ],
[ "$nav_percent_min_opacity", "redbasic_2php_2style_8php.html#a01c151bf47f7da2b979aaa4cb868da4c", null ],
[ "$pmenu_reply", "redbasic_2php_2style_8php.html#a9b489f1c595b867212d30eca0c85b38c", null ],
[ "$pmenu_top", "redbasic_2php_2style_8php.html#ac98bd8264411bd207a5740d08e81a158", null ],
- [ "$radius", "redbasic_2php_2style_8php.html#a6502bedd57105ad1fb2dee2be9cf6351", null ],
- [ "$reply_photo", "redbasic_2php_2style_8php.html#a0b070f2c9140a7a12a0b1f88601a29e4", null ],
- [ "$schema", "redbasic_2php_2style_8php.html#a83022b1d70799d2bde3d64dca9cb40ee", null ],
- [ "$shadow", "redbasic_2php_2style_8php.html#ab00dfc29448b183055d2ae61a0e1874a", null ],
- [ "$sloppy_photos", "redbasic_2php_2style_8php.html#a6ffadaf926b41ad84c30da319011e9ad", null ],
- [ "$toolicon_activecolour", "redbasic_2php_2style_8php.html#acfd00ec469ca3c5e8bfac787573093f3", null ],
- [ "$toolicon_colour", "redbasic_2php_2style_8php.html#a4161f6b8aa923f67e53f54dfb6554cdb", null ],
- [ "$top_photo", "redbasic_2php_2style_8php.html#a810142b4bdd35a1d377ab279b02b47eb", null ],
- [ "$uid", "redbasic_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a", null ],
[ "$wwtop", "redbasic_2php_2style_8php.html#a61891d0d3e6894f52410d507b04e565d", null ],
- [ "else", "redbasic_2php_2style_8php.html#ab3afb90d611eca90819f597a2c0bb459", null ],
- [ "if", "redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a", null ]
+ [ "else", "redbasic_2php_2style_8php.html#ab3afb90d611eca90819f597a2c0bb459", null ]
]; \ No newline at end of file
diff --git a/doc/html/reddav_8php.html b/doc/html/reddav_8php.html
index 49b7d62ff..c987f8a0f 100644
--- a/doc/html/reddav_8php.html
+++ b/doc/html/reddav_8php.html
@@ -104,7 +104,8 @@ $(document).ready(function(){initNavTree('reddav_8php.html','');});
<div class="header">
<div class="summary">
-<a href="#nested-classes">Classes</a> </div>
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">reddav.php File Reference</div> </div>
</div><!--header-->
@@ -112,13 +113,105 @@ $(document).ready(function(){initNavTree('reddav_8php.html','');});
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedInode.html">RedInode</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedDirectory.html">RedDirectory</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedFile.html">RedFile</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBasicAuth.html">RedBasicAuth</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRedBrowser.html">RedBrowser</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ae92ea0df1993f6a7bcd1b6efa6c1fb66"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66">RedChannelList</a> (&amp;$auth)</td></tr>
+<tr class="separator:ae92ea0df1993f6a7bcd1b6efa6c1fb66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5df0d09893f2e65dc5cf6bbab6cfb266"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266">RedCollectionData</a> ($file, &amp;$auth)</td></tr>
+<tr class="separator:a5df0d09893f2e65dc5cf6bbab6cfb266"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9f531641dfb4e43cd88ac1a9ae7e2088"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="reddav_8php.html#a9f531641dfb4e43cd88ac1a9ae7e2088">RedFileData</a> ($file, &amp;$auth, $test=false)</td></tr>
+<tr class="separator:a9f531641dfb4e43cd88ac1a9ae7e2088"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ae92ea0df1993f6a7bcd1b6efa6c1fb66"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedChannelList </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$auth</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266">RedCollectionData()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5df0d09893f2e65dc5cf6bbab6cfb266"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedCollectionData </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$file</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$auth</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedDirectory.html#aa42d3065f6f065b17db87146a7cb031a">RedDirectory\getChildren()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9f531641dfb4e43cd88ac1a9ae7e2088"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">RedFileData </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$file</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$auth</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$test</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="classRedDirectory.html#a5e3fc08b2bf9f61cea4d2ccae0495bec">RedDirectory\childExists()</a>, <a class="el" href="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud_init()</a>, and <a class="el" href="classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569">RedDirectory\getChild()</a>.</p>
+
+</div>
+</div>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/reddav_8php.js b/doc/html/reddav_8php.js
new file mode 100644
index 000000000..3e2dd2ffe
--- /dev/null
+++ b/doc/html/reddav_8php.js
@@ -0,0 +1,10 @@
+var reddav_8php =
+[
+ [ "RedDirectory", "classRedDirectory.html", "classRedDirectory" ],
+ [ "RedFile", "classRedFile.html", "classRedFile" ],
+ [ "RedBasicAuth", "classRedBasicAuth.html", "classRedBasicAuth" ],
+ [ "RedBrowser", "classRedBrowser.html", "classRedBrowser" ],
+ [ "RedChannelList", "reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66", null ],
+ [ "RedCollectionData", "reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266", null ],
+ [ "RedFileData", "reddav_8php.html#a9f531641dfb4e43cd88ac1a9ae7e2088", null ]
+]; \ No newline at end of file
diff --git a/doc/html/search/all_24.js b/doc/html/search/all_24.js
index 529ec0c2d..d2a44072d 100644
--- a/doc/html/search/all_24.js
+++ b/doc/html/search/all_24.js
@@ -9,20 +9,18 @@ var searchData=
['_24argv',['$argv',['../classApp.html#ab3da757abe5cb45bf88f07cc51a73b58',1,'App']]],
['_24arr',['$arr',['../extract_8php.html#a63bb4c41bc532baacf6a4976cfaa0feb',1,'extract.php']]],
['_24aside',['$aside',['../minimalisticdarkness_8php.html#a6e5d97615c6faef5dbffe04b8024ceaf',1,'minimalisticdarkness.php']]],
- ['_24attach',['$attach',['../classRedInode.html#a7b317eb1230930154107ed51e54193f5',1,'RedInode']]],
- ['_24auth',['$auth',['../classRedDirectory.html#a9616af16cd19a18a6afebebcc2881c44',1,'RedDirectory']]],
- ['_24background_5fimage',['$background_image',['../redbasic_2php_2style_8php.html#a339624aeef6604a2f00209a3962c6e1c',1,'style.php']]],
- ['_24banner_5fcolour',['$banner_colour',['../redbasic_2php_2style_8php.html#ae587aa6949ab6e4aa77a591e60f67ee0',1,'style.php']]],
+ ['_24auth',['$auth',['../classRedDirectory.html#a9616af16cd19a18a6afebebcc2881c44',1,'RedDirectory\$auth()'],['../classRedFile.html#a4b5d0e33f919c6c175b30a55de6263f2',1,'RedFile\$auth()'],['../classRedBrowser.html#ab6d6d1e2a67e06b344a4cede1bd00b35',1,'RedBrowser\$auth()']]],
['_24baseurl',['$baseurl',['../classApp.html#ad5175536561021548ae8188e24c7b80c',1,'App']]],
- ['_24bgcolour',['$bgcolour',['../redbasic_2php_2style_8php.html#a0bdce350cf14bac44976e786d1be6574',1,'style.php']]],
- ['_24body_5ffont_5fsize',['$body_font_size',['../redbasic_2php_2style_8php.html#ad78cb8a1793834626d73aca22a1501f8',1,'style.php']]],
['_24bodyclass',['$bodyclass',['../theme_2blogga_2php_2default_8php.html#a720581ae288aa09511670563e4205a4a',1,'$bodyclass():&#160;default.php'],['../theme_2blogga_2view_2theme_2blog_2default_8php.html#a720581ae288aa09511670563e4205a4a',1,'$bodyclass():&#160;default.php']]],
+ ['_24browser',['$browser',['../classRedBasicAuth.html#af14337f1baad407f8a85d48205c0f30e',1,'RedBasicAuth']]],
['_24cached_5fprofile_5fimage',['$cached_profile_image',['../classApp.html#abe0e4fa91097f7a6588e1213a834121c',1,'App']]],
['_24cached_5fprofile_5fpicdate',['$cached_profile_picdate',['../classApp.html#aab4a685d15a363bb1d7edbbc20bfb94e',1,'App']]],
['_24called_5fapi',['$called_api',['../include_2api_8php.html#aa62b15a6bbb280e86b98132eb214013d',1,'api.php']]],
['_24category',['$category',['../classApp.html#a5cfc098c061b7d765add58fd2ca97445',1,'App']]],
['_24channel',['$channel',['../classApp.html#a050b0696118da47e8b30859ad1a2c149',1,'App\$channel()'],['../classItem.html#acc32426c0f465391be8a99ad810c7b8e',1,'Item\$channel()'],['../php_2theme__init_8php.html#a54f32c086fe209c99769a4c4047dd864',1,'$channel():&#160;theme_init.php']]],
- ['_24channel_5fid',['$channel_id',['../classRedDirectory.html#ae624dcaa4d73a517f4b1616d33df690d',1,'RedDirectory']]],
+ ['_24channel_5fhash',['$channel_hash',['../classRedBasicAuth.html#ad5a3ea4dc4783b242d9dc6e76478b6ef',1,'RedBasicAuth']]],
+ ['_24channel_5fid',['$channel_id',['../classRedBasicAuth.html#a2dab393650d1573e3515969a153e8354',1,'RedBasicAuth']]],
+ ['_24channel_5fname',['$channel_name',['../classRedBasicAuth.html#a438ab125b6ef46581947e35d49cdebac',1,'RedBasicAuth']]],
['_24children',['$children',['../classItem.html#a80dcd0fb7673776c0967839d429c2a0f',1,'Item']]],
['_24cid',['$cid',['../classApp.html#ad1c8eb91a6fd470b94f34b7fdad3a2d0',1,'App']]],
['_24cipher',['$cipher',['../classConversation.html#aa95c1a62af38bdfba7add9549bec083b',1,'Conversation']]],
@@ -36,7 +34,6 @@ var searchData=
['_24contacts',['$contacts',['../classApp.html#a61ca6e3af82071ea25ff2fd5dbcddae2',1,'App']]],
['_24content',['$content',['../classApp.html#ac1d80a14492acc932715d54567d8a589',1,'App']]],
['_24conversation',['$conversation',['../classItem.html#a007424e3e3171dcfb4312a02161da6cd',1,'Item']]],
- ['_24converse_5fwidth',['$converse_width',['../redbasic_2php_2style_8php.html#a0cb037986e32302685d4f580dedd6473',1,'style.php']]],
['_24css_5fsources',['$css_sources',['../classApp.html#a6f55d087e1ff4710132c1b0863faa2ee',1,'App']]],
['_24curl_5fcode',['$curl_code',['../classApp.html#a256360c9184fed6d7556e0bc0a835d7f',1,'App']]],
['_24curl_5fheaders',['$curl_headers',['../classApp.html#af5007c42a693afd9c4899c243b2e1363',1,'App']]],
@@ -45,16 +42,15 @@ var searchData=
['_24db',['$db',['../classApp.html#a330410a288f3393d53772f5e98f857ea',1,'App\$db()'],['../classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6',1,'dba_driver\$db()']]],
['_24debug',['$debug',['../classdba__driver.html#af48e2afeded5285766bf92e22123ed03',1,'dba_driver\$debug()'],['../classTemplate.html#afc4afb6f89bebcd5480022312a56cb4a',1,'Template\$debug()']]],
['_24dir',['$dir',['../docblox__errorchecker_8php.html#a1659f0a629d408e0f849dbe4ee061e62',1,'docblox_errorchecker.php']]],
- ['_24dir_5fkey',['$dir_key',['../classRedDirectory.html#a8d5df814b2f825dd14c628a51b5829b5',1,'RedDirectory']]],
['_24dirs',['$dirs',['../typo_8php.html#a1b709c1d79631ebc8320b41bda028b54',1,'typo.php']]],
['_24dirstack',['$dirstack',['../docblox__errorchecker_8php.html#ab66bc0493d25f39bf8b4dcbb429f04e6',1,'docblox_errorchecker.php']]],
['_24done',['$done',['../classTemplate.html#abda4c8d049f70553338eae7c905e9d5c',1,'Template']]],
['_24error',['$error',['../classApp.html#ac1a8b2cd40609b231a560201a08852ba',1,'App\$error()'],['../classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c',1,'dba_driver\$error()']]],
+ ['_24ext_5fpath',['$ext_path',['../classRedDirectory.html#a0f113244cd85c17848df991001d024f4',1,'RedDirectory']]],
['_24filelist',['$filelist',['../docblox__errorchecker_8php.html#a648a570b0f9f6e0e51b7267647c4b09b',1,'docblox_errorchecker.php']]],
['_24filename',['$filename',['../classFriendicaSmarty.html#a33fabbd4d6eef869df496adf357ae690',1,'FriendicaSmarty']]],
['_24files',['$files',['../extract_8php.html#a9590b15215a21e9b42eb546aeef79704',1,'$files():&#160;extract.php'],['../tpldebug_8php.html#a5358407d65f2ca826f96356a6642d149',1,'$files():&#160;tpldebug.php'],['../typo_8php.html#a9590b15215a21e9b42eb546aeef79704',1,'$files():&#160;typo.php']]],
- ['_24font_5fcolour',['$font_colour',['../redbasic_2php_2style_8php.html#a68e3ff836ec87ae1370c9f4a12c21c6b',1,'style.php']]],
- ['_24font_5fsize',['$font_size',['../redbasic_2php_2style_8php.html#afcbcf57d0b90d2e4226c2e8a1171befc',1,'style.php']]],
+ ['_24folder_5fhash',['$folder_hash',['../classRedDirectory.html#aa10254abf177bb2a0e4a88495725e09b',1,'RedDirectory']]],
['_24force_5fmax_5fitems',['$force_max_items',['../classApp.html#ae3f47830543d0d902f66913def8db66b',1,'App']]],
['_24gc_5fprobability',['$gc_probability',['../session_8php.html#a96b09cc763572f45280786a7b33feb7e',1,'session.php']]],
['_24groups',['$groups',['../classApp.html#ac6e6b1c7d6df408580ff79977fcfa656',1,'App']]],
@@ -68,10 +64,9 @@ var searchData=
['_24image',['$image',['../classphoto__driver.html#a7c78b5a01afe61ba3895ac07f4869b55',1,'photo_driver']]],
['_24infile',['$infile',['../php2po_8php.html#a61f8ddeb5557d46ebc546cc355bda214',1,'php2po.php']]],
['_24ink',['$ink',['../php2po_8php.html#a6b0b8ebd9ce811d1325ef2c129443bc0',1,'php2po.php']]],
+ ['_24install',['$install',['../classApp.html#a576ecb1c5b4a283221e6f2f0ec248251',1,'App']]],
['_24install_5fwizard_5fpass',['$install_wizard_pass',['../setup_8php.html#addb24714bc2542aa4f4215e98fe48432',1,'setup.php']]],
['_24interactive',['$interactive',['../classApp.html#a4c7cfc62d39508086cf300dc2e39c4df',1,'App']]],
- ['_24item_5fcolour',['$item_colour',['../redbasic_2php_2style_8php.html#a27cb59bbc750341f448cd0c298a7ea16',1,'style.php']]],
- ['_24item_5fopacity',['$item_opacity',['../redbasic_2php_2style_8php.html#a136b0a2cdeb37f3fa506d28f82dcdbf8',1,'style.php']]],
['_24itemfloat',['$itemfloat',['../minimalisticdarkness_8php.html#a7e6c3d4efde4e9a2de32308081372c6b',1,'minimalisticdarkness.php']]],
['_24js_5fsources',['$js_sources',['../classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d',1,'App']]],
['_24k',['$k',['../php2po_8php.html#ad6726cfaa85d4b8299d2b0f034cbf178',1,'php2po.php']]],
@@ -83,16 +78,17 @@ var searchData=
['_24mode',['$mode',['../classConversation.html#afb03d1648dbfafe62caa1e30f32f2b1a',1,'Conversation']]],
['_24module',['$module',['../classApp.html#a9bf62f8e39585c0aa48fcffc3bf3484d',1,'App']]],
['_24module_5floaded',['$module_loaded',['../classApp.html#a6e4f0fbfa3cf6c11baebe22a03db6165',1,'App']]],
- ['_24name',['$name',['../classFriendicaSmartyEngine.html#aaba6a42101bc9ae32e36b7fa2e243f02',1,'FriendicaSmartyEngine\$name()'],['../classTemplate.html#a6eb301a51cc94d8b94f4548fbad85eae',1,'Template\$name()']]],
- ['_24nav_5fcolour',['$nav_colour',['../redbasic_2php_2style_8php.html#a8fdd5874587a9ad86fb05ed0be265649',1,'style.php']]],
- ['_24nav_5fmin_5fopacity',['$nav_min_opacity',['../redbasic_2php_2style_8php.html#ab5ec5703848e0132f8a8f3d3a53a58e1',1,'style.php']]],
+ ['_24name',['$name',['../classFriendicaSmartyEngine.html#aaba6a42101bc9ae32e36b7fa2e243f02',1,'FriendicaSmartyEngine\$name()'],['../classRedFile.html#acc48c05cd5a70951cb3c615ad84f03ba',1,'RedFile\$name()'],['../classTemplate.html#a6eb301a51cc94d8b94f4548fbad85eae',1,'Template\$name()']]],
['_24nav_5fpercent_5fmin_5fopacity',['$nav_percent_min_opacity',['../redbasic_2php_2style_8php.html#a01c151bf47f7da2b979aaa4cb868da4c',1,'style.php']]],
['_24nav_5fsel',['$nav_sel',['../classApp.html#a33a8e90b60ec4438f6fbf299d0f6839c',1,'App']]],
['_24needed',['$needed',['../docblox__errorchecker_8php.html#a852004caba0a34390297a079f4aaac73',1,'docblox_errorchecker.php']]],
['_24nodes',['$nodes',['../classTemplate.html#a8f4d17e49f42b876a97364c13fb572d1',1,'Template']]],
- ['_24observer',['$observer',['../classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f',1,'App\$observer()'],['../classConversation.html#a8748445aa26047ebed5141f3c3cbc244',1,'Conversation\$observer()']]],
+ ['_24observer',['$observer',['../classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f',1,'App\$observer()'],['../classConversation.html#a8748445aa26047ebed5141f3c3cbc244',1,'Conversation\$observer()'],['../classRedBasicAuth.html#aa75dc43b59adc98e38a98517d3fd35d1',1,'RedBasicAuth\$observer()']]],
+ ['_24os_5fpath',['$os_path',['../classRedDirectory.html#a3c148c07ad909985125aa4926d8d0021',1,'RedDirectory']]],
['_24out',['$out',['../php2po_8php.html#a48cb304902320d173a4eaa41543327b9',1,'php2po.php']]],
+ ['_24owner_5fid',['$owner_id',['../classRedBasicAuth.html#a09c1488a0b290f5a54dc15180c5690d7',1,'RedBasicAuth']]],
['_24owner_5fname',['$owner_name',['../classItem.html#a9594df6014b0b6f45364ea7a34510130',1,'Item']]],
+ ['_24owner_5fnick',['$owner_nick',['../classRedBasicAuth.html#a8d09b8d784cc810a0b3be580d05106a7',1,'RedBasicAuth']]],
['_24owner_5fphoto',['$owner_photo',['../classItem.html#a078f95b4134ce3a1df344cf8d386f986',1,'Item']]],
['_24owner_5furl',['$owner_url',['../classItem.html#afa54851df82962c7c42dea3cc9f5c92c',1,'Item']]],
['_24page',['$page',['../classApp.html#a4b67935096f66d1f14b657399a8461ac',1,'App']]],
@@ -108,6 +104,7 @@ var searchData=
['_24pmenu_5freply',['$pmenu_reply',['../redbasic_2php_2style_8php.html#a9b489f1c595b867212d30eca0c85b38c',1,'style.php']]],
['_24pmenu_5ftop',['$pmenu_top',['../redbasic_2php_2style_8php.html#ac98bd8264411bd207a5740d08e81a158',1,'style.php']]],
['_24pofile',['$pofile',['../php2po_8php.html#a401d84ce156e49e8168bd0c4781e1be1',1,'php2po.php']]],
+ ['_24poi',['$poi',['../classApp.html#a1936f2afce0dc0d1bbed15ae1f2ee81a',1,'App']]],
['_24prepared_5fitem',['$prepared_item',['../classConversation.html#a5b6adbb2fe24f0f53d6c22660dff91b2',1,'Conversation']]],
['_24preview',['$preview',['../classConversation.html#ae9937f9e0f3d927acc2bed46cc72e9ae',1,'Conversation']]],
['_24profile',['$profile',['../classApp.html#a57d041fcc003d08c127dfa99a02bc192',1,'App']]],
@@ -115,23 +112,19 @@ var searchData=
['_24profile_5fuid',['$profile_uid',['../classApp.html#a08c24d6a6fc52fcc784b0f765f13b820',1,'App']]],
['_24query_5fstring',['$query_string',['../classApp.html#a2e82da4aecfc2017a8d1d332ca501f9f',1,'App']]],
['_24r',['$r',['../classTemplate.html#aac9a4638f11271e1b1dcc9f247242718',1,'Template']]],
- ['_24radius',['$radius',['../redbasic_2php_2style_8php.html#a6502bedd57105ad1fb2dee2be9cf6351',1,'style.php']]],
['_24rdelim',['$rdelim',['../classApp.html#a244b2d53b21be269aad2269d23192f95',1,'App']]],
['_24red_5fpath',['$red_path',['../classRedDirectory.html#acb32b8df27538c57772824a745e751d7',1,'RedDirectory']]],
['_24redirect_5furl',['$redirect_url',['../classItem.html#a5b561415861f5b89b0733aacfe0428d1',1,'Item']]],
['_24replace',['$replace',['../classTemplate.html#a4e86b566c3f728e95ce5db1b33665c10',1,'Template']]],
- ['_24reply_5fphoto',['$reply_photo',['../redbasic_2php_2style_8php.html#a0b070f2c9140a7a12a0b1f88601a29e4',1,'style.php']]],
['_24res',['$res',['../docblox__errorchecker_8php.html#a49a8a4009b02e49717caa88b128affc5',1,'docblox_errorchecker.php']]],
+ ['_24root_5fdir',['$root_dir',['../classRedDirectory.html#ad87c514a307ec97ba0f1372e9bcfa6a4',1,'RedDirectory']]],
['_24s',['$s',['../extract_8php.html#a50b05cf2e02ef0b67fcad97106dd7634',1,'extract.php']]],
- ['_24schema',['$schema',['../redbasic_2php_2style_8php.html#a83022b1d70799d2bde3d64dca9cb40ee',1,'style.php']]],
['_24scheme',['$scheme',['../classApp.html#ad082d63acc078e5bf23825a03bdd6a76',1,'App']]],
['_24search',['$search',['../classTemplate.html#a317d535946dc065c35dd5cd38380e6c6',1,'Template']]],
['_24sectionleft',['$sectionleft',['../minimalisticdarkness_8php.html#a0ac3f5b52212b0af87d513273da03ead',1,'minimalisticdarkness.php']]],
['_24sectionwidth',['$sectionwidth',['../minimalisticdarkness_8php.html#a04de7b747e4f0a353e0e38cf77c3404f',1,'minimalisticdarkness.php']]],
['_24session_5fexists',['$session_exists',['../session_8php.html#a62e4a6cb26b4bb1b8ddd8277b26090eb',1,'session.php']]],
['_24session_5fexpire',['$session_expire',['../session_8php.html#af0100a2642a5268594bbd5742a03d885',1,'session.php']]],
- ['_24shadow',['$shadow',['../redbasic_2php_2style_8php.html#ab00dfc29448b183055d2ae61a0e1874a',1,'style.php']]],
- ['_24sloppy_5fphotos',['$sloppy_photos',['../redbasic_2php_2style_8php.html#a6ffadaf926b41ad84c30da319011e9ad',1,'style.php']]],
['_24sourcename',['$sourcename',['../classApp.html#a13710907ef62554a0b4dd8a5eaa2eb11',1,'App']]],
['_24stack',['$stack',['../classTemplate.html#a6f0efc256688c36110180b501067ff11',1,'Template']]],
['_24str',['$str',['../typohelper_8php.html#a7542d95618011800c61773127fa625cf',1,'typohelper.php']]],
@@ -144,14 +137,11 @@ var searchData=
['_24theme_5fthread_5fallow',['$theme_thread_allow',['../classApp.html#a487332f8de40414ca1a54a4265570b70',1,'App']]],
['_24threaded',['$threaded',['../classItem.html#a1cb6aa8abdf7ea7daca647e40c8ea3a2',1,'Item']]],
['_24threads',['$threads',['../classConversation.html#a41f4a549e6a99f98935c4742addd22c8',1,'Conversation']]],
- ['_24timezone',['$timezone',['../classApp.html#ab35b01a366a2ea95725e97af278f87ab',1,'App']]],
- ['_24toolicon_5factivecolour',['$toolicon_activecolour',['../redbasic_2php_2style_8php.html#acfd00ec469ca3c5e8bfac787573093f3',1,'style.php']]],
- ['_24toolicon_5fcolour',['$toolicon_colour',['../redbasic_2php_2style_8php.html#a4161f6b8aa923f67e53f54dfb6554cdb',1,'style.php']]],
- ['_24top_5fphoto',['$top_photo',['../redbasic_2php_2style_8php.html#a810142b4bdd35a1d377ab279b02b47eb',1,'style.php']]],
+ ['_24timezone',['$timezone',['../classApp.html#ab35b01a366a2ea95725e97af278f87ab',1,'App\$timezone()'],['../classRedBasicAuth.html#a2d0246ed446fd5e55c17938b4ce6ac47',1,'RedBasicAuth\$timezone()']]],
['_24toplevel',['$toplevel',['../classItem.html#a5cfa6cf964f433a917a81cab079ff9d8',1,'Item']]],
['_24type',['$type',['../classphoto__driver.html#a4920ed7cbb1ac735ac84153067537f03',1,'photo_driver']]],
['_24types',['$types',['../classphoto__driver.html#a00cb166c00b7502dbc456c94330e5b03',1,'photo_driver']]],
- ['_24uid',['$uid',['../apw_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a',1,'$uid():&#160;style.php'],['../redbasic_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a',1,'$uid():&#160;style.php']]],
+ ['_24uid',['$uid',['../apw_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a',1,'style.php']]],
['_24user',['$user',['../classApp.html#a91fd3c8b89016113b05f3be24805ccff',1,'App']]],
['_24valid',['$valid',['../classphoto__driver.html#a01d28d43b404d6f6de219dc9c5069dc9',1,'photo_driver']]],
['_24videoheight',['$videoheight',['../classApp.html#a56b1a432c96aef8b1971f779c9d93c8c',1,'App']]],
diff --git a/doc/html/search/all_5f.js b/doc/html/search/all_5f.js
index 889fced66..eb4ffa3bc 100644
--- a/doc/html/search/all_5f.js
+++ b/doc/html/search/all_5f.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['_5f_5fconstruct',['__construct',['../classApp.html#af6d39f63fb7116bbeb04e51696f99474',1,'App\__construct()'],['../classConversation.html#af84ea6ccd72214c9bb4c504461cc8b09',1,'Conversation\__construct()'],['../classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186',1,'dba_driver\__construct()'],['../classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6',1,'FriendicaSmarty\__construct()'],['../classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6',1,'FriendicaSmartyEngine\__construct()'],['../classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2',1,'Item\__construct()'],['../classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6',1,'FKOAuth1\__construct()'],['../classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae',1,'photo_driver\__construct()'],['../classRedInode.html#a21a6f92921c037c868e6fae30c7c51bb',1,'RedInode\__construct()'],['../classRedDirectory.html#add0bf2c049230fec4913e769d126e6e6',1,'RedDirectory\__construct()'],['../classRedFile.html#ad4588b90004a2741b1a4ced10355904c',1,'RedFile\__construct()']]],
+ ['_5f_5fconstruct',['__construct',['../classApp.html#af6d39f63fb7116bbeb04e51696f99474',1,'App\__construct()'],['../classConversation.html#af84ea6ccd72214c9bb4c504461cc8b09',1,'Conversation\__construct()'],['../classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186',1,'dba_driver\__construct()'],['../classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6',1,'FriendicaSmarty\__construct()'],['../classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6',1,'FriendicaSmartyEngine\__construct()'],['../classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2',1,'Item\__construct()'],['../classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6',1,'FKOAuth1\__construct()'],['../classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae',1,'photo_driver\__construct()'],['../classRedDirectory.html#a1e35e3cd31d2a15250655e4cafdea180',1,'RedDirectory\__construct()'],['../classRedFile.html#a9a67bdb34c9db6ce144b3f371148b183',1,'RedFile\__construct()'],['../classRedBrowser.html#a4b76be9ccef0262cf78fffb4129eda93',1,'RedBrowser\__construct()']]],
['_5f_5fdestruct',['__destruct',['../classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721',1,'dba_driver\__destruct()'],['../classphoto__driver.html#ae4501abdc9651359f81d036b63625686',1,'photo_driver\__destruct()']]],
['_5fbuild_5fnodes',['_build_nodes',['../classTemplate.html#ac41c96e1f407b1a910029e5f4b7de8e4',1,'Template']]],
['_5fget_5fvar',['_get_var',['../classTemplate.html#aae9c4d761ea1298e745e8052d7910194',1,'Template']]],
diff --git a/doc/html/search/all_61.js b/doc/html/search/all_61.js
index e89337e96..1f4decc58 100644
--- a/doc/html/search/all_61.js
+++ b/doc/html/search/all_61.js
@@ -24,9 +24,12 @@ var searchData=
['account_5fremoved',['ACCOUNT_REMOVED',['../boot_8php.html#ab5ddbe69d3d03acd06e1fb281488cb78',1,'boot.php']]],
['account_5frole_5fadmin',['ACCOUNT_ROLE_ADMIN',['../boot_8php.html#ac8400313df2c831653f9036f71ebd86d',1,'boot.php']]],
['account_5frole_5fallowcode',['ACCOUNT_ROLE_ALLOWCODE',['../boot_8php.html#a84f48897059bbd4a8738d7ee4cec6688',1,'boot.php']]],
+ ['account_5frole_5fsystem',['ACCOUNT_ROLE_SYSTEM',['../boot_8php.html#a7c2eb822d50e1554bf5c32861f36342b',1,'boot.php']]],
['account_5ftotal',['account_total',['../account_8php.html#a43e3042b2723d76915a030bac3c668b6',1,'account.php']]],
['account_5funverified',['ACCOUNT_UNVERIFIED',['../boot_8php.html#af3a4271630aabd8be592213f925d6a36',1,'boot.php']]],
['account_5fverify_5fpassword',['account_verify_password',['../auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee',1,'auth.php']]],
+ ['achievements_2ephp',['achievements.php',['../achievements_8php.html',1,'']]],
+ ['achievements_5fcontent',['achievements_content',['../achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e',1,'achievements.php']]],
['acknowledge_5fpermissions',['acknowledge_permissions',['../classProtoDriver.html#a1593f3abae050edbd9304f4f8bc4894a',1,'ProtoDriver\acknowledge_permissions()'],['../classZotDriver.html#a3cfdf443da4e5326e205855d7c0054f2',1,'ZotDriver\acknowledge_permissions()']]],
['acl_2ephp',['acl.php',['../acl_8php.html',1,'']]],
['acl_5finit',['acl_init',['../acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a',1,'acl.php']]],
@@ -86,8 +89,6 @@ var searchData=
['aes_5funencapsulate',['aes_unencapsulate',['../crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914',1,'crypto.php']]],
['age',['age',['../datetime_8php.html#abc1652f96799cec6fce8797ba2ebc2df',1,'datetime.php']]],
['all_5ffriends',['all_friends',['../socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586',1,'socgraph.php']]],
- ['allfriends_2ephp',['allfriends.php',['../allfriends_8php.html',1,'']]],
- ['allfriends_5fcontent',['allfriends_content',['../allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83',1,'allfriends.php']]],
['allowed_5femail',['allowed_email',['../include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694',1,'network.php']]],
['allowed_5fpublic_5frecips',['allowed_public_recips',['../zot_8php.html#a703f528ade8382cf374e4119bd6f7859',1,'zot.php']]],
['allowed_5furl',['allowed_url',['../include_2network_8php.html#aee35d9ad6b3f872bfb39ba3598936aa7',1,'network.php']]],
@@ -159,11 +160,13 @@ var searchData=
['atom_5fauthor',['atom_author',['../items_8php.html#a016dd86c827d08db89061ea81d15c6cb',1,'items.php']]],
['atom_5fentry',['atom_entry',['../items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6',1,'items.php']]],
['atom_5ftime',['ATOM_TIME',['../boot_8php.html#ad34c1547020a305915bcc39707744690',1,'boot.php']]],
- ['attach_2ephp',['attach.php',['../include_2attach_8php.html',1,'']]],
['attach_2ephp',['attach.php',['../mod_2attach_8php.html',1,'']]],
+ ['attach_2ephp',['attach.php',['../include_2attach_8php.html',1,'']]],
['attach_5fby_5fhash',['attach_by_hash',['../include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36',1,'attach.php']]],
['attach_5fby_5fhash_5fnodata',['attach_by_hash_nodata',['../include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932',1,'attach.php']]],
+ ['attach_5fchange_5fpermissions',['attach_change_permissions',['../include_2attach_8php.html#a5c0875eafb8c0f8a0620ff7a875a2221',1,'attach.php']]],
['attach_5fcount_5ffiles',['attach_count_files',['../include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3',1,'attach.php']]],
+ ['attach_5fdelete',['attach_delete',['../include_2attach_8php.html#a70bd666e080c2af5a91f5d14c297b8cd',1,'attach.php']]],
['attach_5fflag_5fdir',['ATTACH_FLAG_DIR',['../boot_8php.html#aa74438cf71e48e37bf7b440b94243985',1,'boot.php']]],
['attach_5fflag_5fos',['ATTACH_FLAG_OS',['../boot_8php.html#a781916f83fcc8ff1035649afa45f0292',1,'boot.php']]],
['attach_5finit',['attach_init',['../mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1',1,'attach.php']]],
diff --git a/doc/html/search/all_62.js b/doc/html/search/all_62.js
index 48cba8636..e45a44444 100644
--- a/doc/html/search/all_62.js
+++ b/doc/html/search/all_62.js
@@ -6,7 +6,10 @@ var searchData=
['baseobject_2ephp',['BaseObject.php',['../BaseObject_8php.html',1,'']]],
['bb2diaspora',['bb2diaspora',['../bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c',1,'bb2diaspora.php']]],
['bb2diaspora_2ephp',['bb2diaspora.php',['../bb2diaspora_8php.html',1,'']]],
+ ['bb_5flocation',['bb_location',['../bbcode_8php.html#a3435c82a6c7693557800cdeb6848d0bd',1,'bbcode.php']]],
['bb_5fparse_5fcrypt',['bb_parse_crypt',['../bbcode_8php.html#a851f5aafefe52474201b83f9fd65931f',1,'bbcode.php']]],
+ ['bb_5fqr',['bb_qr',['../bbcode_8php.html#a98d0eecc620c19561639f06cfbe8e74c',1,'bbcode.php']]],
+ ['bb_5fsanitize_5fstyle',['bb_sanitize_style',['../bbcode_8php.html#a3a989cbf308a32468d171d83e9c51d1e',1,'bbcode.php']]],
['bb_5fshareattributes',['bb_ShareAttributes',['../bbcode_8php.html#a1c69e021d5e0aef97d6966bf3169c86a',1,'bbcode.php']]],
['bb_5fshareattributessimple',['bb_ShareAttributesSimple',['../bbcode_8php.html#a2be26414a367118143cc89e2d58e7377',1,'bbcode.php']]],
['bb_5fspacefy',['bb_spacefy',['../bbcode_8php.html#a8911e027907820df3db03b4f76724b50',1,'bbcode.php']]],
@@ -15,6 +18,7 @@ var searchData=
['bb_5funspacefy_5fand_5ftrim',['bb_unspacefy_and_trim',['../bbcode_8php.html#a064dcfd9767df6f53be1a0e11ceeb15d',1,'bbcode.php']]],
['bbcode',['bbcode',['../bbcode_8php.html#a009f61aaf78771737ed0765c8463911b',1,'bbcode.php']]],
['bbcode_2ephp',['bbcode.php',['../bbcode_8php.html',1,'']]],
+ ['bbiframe',['bbiframe',['../bbcode_8php.html#a7cc811ff1939a508cfb54f39c1d584d7',1,'bbcode.php']]],
['bbtoevent',['bbtoevent',['../event_8php.html#a180cccd63c2a2f00ff432b03113531f3',1,'event.php']]],
['bbtovcal',['bbtovcal',['../event_8php.html#a184d6b9690e5b6dee35a0aa9edd47279',1,'event.php']]],
['best_5flink_5furl',['best_link_url',['../conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7',1,'conversation.php']]],
@@ -26,6 +30,11 @@ var searchData=
['blogtheme_5fdisplay_5fitem',['blogtheme_display_item',['../blogga_2view_2theme_2blog_2theme_8php.html#a028ae8e9f2824670dfa76a6651d817e5',1,'theme.php']]],
['blogtheme_5fform',['blogtheme_form',['../view_2theme_2blogga_2php_2config_8php.html#a8a311a402d3e746ce53fadc38e4b2d27',1,'blogtheme_form(&amp;$a, $headimg, $headimghome):&#160;config.php'],['../view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#a8a311a402d3e746ce53fadc38e4b2d27',1,'blogtheme_form(&amp;$a, $headimg, $headimghome):&#160;config.php']]],
['blogtheme_5fimgurl',['blogtheme_imgurl',['../blogga_2view_2theme_2blog_2theme_8php.html#af634a3f721c5e238530d0636d33230ec',1,'theme.php']]],
+ ['bookmark_5fadd',['bookmark_add',['../include_2bookmarks_8php.html#a88ce7dee6a3dc7465aa9b8eaa45b0087',1,'bookmarks.php']]],
+ ['bookmarks_2ephp',['bookmarks.php',['../mod_2bookmarks_8php.html',1,'']]],
+ ['bookmarks_2ephp',['bookmarks.php',['../include_2bookmarks_8php.html',1,'']]],
+ ['bookmarks_5fcontent',['bookmarks_content',['../mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a',1,'bookmarks.php']]],
+ ['bookmarks_5finit',['bookmarks_init',['../mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3',1,'bookmarks.php']]],
['boot_2ephp',['boot.php',['../boot_8php.html',1,'']]],
['breaklines',['breaklines',['../html2plain_8php.html#a3214912e3d00cf0a948072daccf16740',1,'html2plain.php']]],
['build_5fpagehead',['build_pagehead',['../classApp.html#a08f0537964d98958d218066364cff785',1,'App']]],
diff --git a/doc/html/search/all_63.js b/doc/html/search/all_63.js
index 0ac1b9a56..85b76b594 100644
--- a/doc/html/search/all_63.js
+++ b/doc/html/search/all_63.js
@@ -11,11 +11,10 @@ var searchData=
['chanlink_5fcid',['chanlink_cid',['../text_8php.html#a85e3a4851c16674834010d8419a5d7ca',1,'text.php']]],
['chanlink_5fhash',['chanlink_hash',['../text_8php.html#a55ab893be57feda59c2a7ba1e58ff2d0',1,'text.php']]],
['chanlink_5furl',['chanlink_url',['../text_8php.html#a2e8d6c402603be3a1256a16605e09c2a',1,'text.php']]],
- ['chanman_2ephp',['chanman.php',['../include_2chanman_8php.html',1,'']]],
['chanman_2ephp',['chanman.php',['../mod_2chanman_8php.html',1,'']]],
+ ['chanman_2ephp',['chanman.php',['../include_2chanman_8php.html',1,'']]],
['chanman_5fremove_5feverything_5ffrom_5fnetwork',['chanman_remove_everything_from_network',['../include_2chanman_8php.html#a21ba9a5c961e866ff27aee3ee67bf99b',1,'chanman.php']]],
['channel_2ephp',['channel.php',['../channel_8php.html',1,'']]],
- ['channel_5faside',['channel_aside',['../channel_8php.html#aea8e189f2fbabfda779349dd94082e8e',1,'channel.php']]],
['channel_5fcontent',['channel_content',['../channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1',1,'channel.php']]],
['channel_5finit',['channel_init',['../channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc',1,'channel.php']]],
['channel_5fremove',['channel_remove',['../Contact_8php.html#a186162051a5127069cc851d78740f205',1,'Contact.php']]],
@@ -25,6 +24,20 @@ var searchData=
['channelx_5fby_5fnick',['channelx_by_nick',['../Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e',1,'Contact.php']]],
['chanview_2ephp',['chanview.php',['../chanview_8php.html',1,'']]],
['chanview_5fcontent',['chanview_content',['../chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b',1,'chanview.php']]],
+ ['chat_2ephp',['chat.php',['../mod_2chat_8php.html',1,'']]],
+ ['chat_2ephp',['chat.php',['../include_2chat_8php.html',1,'']]],
+ ['chat_5fcontent',['chat_content',['../mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f',1,'chat.php']]],
+ ['chat_5finit',['chat_init',['../mod_2chat_8php.html#aa9ae4782e9baef0b7314ab9527c2707e',1,'chat.php']]],
+ ['chat_5fpost',['chat_post',['../mod_2chat_8php.html#a999d594745597c656c9760253ae297ad',1,'chat.php']]],
+ ['chatroom_5fcreate',['chatroom_create',['../include_2chat_8php.html#acdc80dba4eb796c7472b21129b435422',1,'chat.php']]],
+ ['chatroom_5fdestroy',['chatroom_destroy',['../include_2chat_8php.html#a2ba3af6884ecdce95de69262fe599639',1,'chat.php']]],
+ ['chatroom_5fenter',['chatroom_enter',['../include_2chat_8php.html#a2c95b545e46bfee64faa05ecf0afea91',1,'chat.php']]],
+ ['chatroom_5fleave',['chatroom_leave',['../include_2chat_8php.html#a1ee1360f7d2549c7549ae07cb5190f0f',1,'chat.php']]],
+ ['chatroom_5flist',['chatroom_list',['../include_2chat_8php.html#aedcb532a0627b8644001a2fadab4e87a',1,'chat.php']]],
+ ['chatsvc_2ephp',['chatsvc.php',['../chatsvc_8php.html',1,'']]],
+ ['chatsvc_5fcontent',['chatsvc_content',['../chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9',1,'chatsvc.php']]],
+ ['chatsvc_5finit',['chatsvc_init',['../chatsvc_8php.html#a28d248b056fa47452e28ed01130e9116',1,'chatsvc.php']]],
+ ['chatsvc_5fpost',['chatsvc_post',['../chatsvc_8php.html#a7c9a9b9c24a2b02eed8efd6b09632d03',1,'chatsvc.php']]],
['check_5faccount_5fadmin',['check_account_admin',['../account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f',1,'account.php']]],
['check_5faccount_5femail',['check_account_email',['../account_8php.html#ae052bd5558847bd38e89c213561a9771',1,'account.php']]],
['check_5faccount_5finvite',['check_account_invite',['../account_8php.html#aaff7720423417a4333697894ffd9ddeb',1,'account.php']]],
@@ -43,6 +56,7 @@ var searchData=
['check_5flist_5fpermissions',['check_list_permissions',['../permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7',1,'permissions.php']]],
['check_5fphp',['check_php',['../setup_8php.html#a14d208682a88632290c895d20da6e7d6',1,'setup.php']]],
['check_5fsmarty3',['check_smarty3',['../setup_8php.html#afd8b0b3ade1507c45325caf377bf459d',1,'setup.php']]],
+ ['check_5fstore',['check_store',['../setup_8php.html#ab4b71369a25021d59247c917e98d8246',1,'setup.php']]],
['check_5fwall_5fto_5fwall',['check_wall_to_wall',['../classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8',1,'Item']]],
['check_5fwebbie',['check_webbie',['../text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3',1,'text.php']]],
['childexists',['childExists',['../classRedDirectory.html#a5e3fc08b2bf9f61cea4d2ccae0495bec',1,'RedDirectory']]],
@@ -58,7 +72,7 @@ var searchData=
['client_5fmode_5fupdate',['CLIENT_MODE_UPDATE',['../boot_8php.html#a3f40aa5bafff8c4eebdc62e5121daf77',1,'boot.php']]],
['close',['close',['../classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975',1,'dba_driver\close()'],['../classdba__mysql.html#a850586714ef897bd25f643c89b4ef76e',1,'dba_mysql\close()'],['../classdba__mysqli.html#acb38f2c851187ad632ecfab30fdfab55',1,'dba_mysqli\close()']]],
['cloud_2ephp',['cloud.php',['../cloud_8php.html',1,'']]],
- ['cloud_5finit',['cloud_init',['../cloud_8php.html#a080071b784fe01d04ed6c09d9f2785b8',1,'cloud.php']]],
+ ['cloud_5finit',['cloud_init',['../cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d',1,'cloud.php']]],
['collect',['collect',['../classProtoDriver.html#a2ba1758f0f9e3564580b6ff85292804d',1,'ProtoDriver\collect()'],['../classZotDriver.html#af65febb26031eb7f39871b9e2a539797',1,'ZotDriver\collect()']]],
['collect_5fprivate',['collect_private',['../classProtoDriver.html#af66171aa7dab9b62cee915cb4f1abe1b',1,'ProtoDriver\collect_private()'],['../classZotDriver.html#a2e15ff09772f0608203dad1c98299394',1,'ZotDriver\collect_private()']]],
['collect_5frecipients',['collect_recipients',['../items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70',1,'items.php']]],
@@ -72,7 +86,6 @@ var searchData=
['comanche_5fwebpage',['comanche_webpage',['../comanche_8php.html#ae9fe1ce574db3dd0931eada80234f82a',1,'comanche.php']]],
['comanche_5fwidget',['comanche_widget',['../comanche_8php.html#a6b0191c1a63db1696a2eb139d90d9e7f',1,'comanche.php']]],
['common_2ephp',['common.php',['../common_8php.html',1,'']]],
- ['common_5faside',['common_aside',['../common_8php.html#a3b12ec67b3d3edcf595c8d195da5d14a',1,'common.php']]],
['common_5fcontent',['common_content',['../common_8php.html#ab63408f39abef7a6915186e8dabc5a96',1,'common.php']]],
['common_5ffriends',['common_friends',['../socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918',1,'socgraph.php']]],
['common_5ffriends_5fvisitor_5fwidget',['common_friends_visitor_widget',['../contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65',1,'contact_widgets.php']]],
@@ -87,19 +100,23 @@ var searchData=
['config_2ephp',['config.php',['../view_2theme_2apw_2php_2config_8php.html',1,'']]],
['config_2ephp',['config.php',['../view_2theme_2blogga_2php_2config_8php.html',1,'']]],
['config_2ephp',['config.php',['../view_2theme_2blogga_2view_2theme_2blog_2config_8php.html',1,'']]],
- ['config_2ephp',['config.php',['../view_2theme_2redbasic_2php_2config_8php.html',1,'']]],
['config_2ephp',['config.php',['../include_2config_8php.html',1,'']]],
+ ['config_2ephp',['config.php',['../view_2theme_2redbasic_2php_2config_8php.html',1,'']]],
['connect',['connect',['../classdba__driver.html#ae533e62a240a793f17aef5ab4ef10edc',1,'dba_driver\connect()'],['../classdba__mysql.html#a1887338627ce0e28786839363014bd0b',1,'dba_mysql\connect()'],['../classdba__mysqli.html#add062bd93961e5f0194d94820e9a51b1',1,'dba_mysqli\connect()']]],
['connect_2ephp',['connect.php',['../connect_8php.html',1,'']]],
['connect_5fcontent',['connect_content',['../connect_8php.html#a489f0a66c660de6ec4d6917b27674f07',1,'connect.php']]],
['connect_5finit',['connect_init',['../connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36',1,'connect.php']]],
['connect_5fpost',['connect_post',['../connect_8php.html#a417ec27afe33f21a929667a665e32ee2',1,'connect.php']]],
['connections_2ephp',['connections.php',['../connections_8php.html',1,'']]],
- ['connections_5faside',['connections_aside',['../connections_8php.html#af48f7ad20914760ba9874c090384e35a',1,'connections.php']]],
['connections_5fclone',['connections_clone',['../connections_8php.html#a15af118efee9c948b6f8294e54a73bb2',1,'connections.php']]],
['connections_5fcontent',['connections_content',['../connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c',1,'connections.php']]],
['connections_5finit',['connections_init',['../connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558',1,'connections.php']]],
['connections_5fpost',['connections_post',['../connections_8php.html#a1224058db8e3fb56463eb312f98e561d',1,'connections.php']]],
+ ['connedit_2ephp',['connedit.php',['../connedit_8php.html',1,'']]],
+ ['connedit_5fclone',['connedit_clone',['../connedit_8php.html#a707ea7e63cf9674025b1d6b081ae74f5',1,'connedit.php']]],
+ ['connedit_5fcontent',['connedit_content',['../connedit_8php.html#a795acb3d9d841f55c255d7611681ab67',1,'connedit.php']]],
+ ['connedit_5finit',['connedit_init',['../connedit_8php.html#a4da871e075597a09a8b374b9171dd92e',1,'connedit.php']]],
+ ['connedit_5fpost',['connedit_post',['../connedit_8php.html#a234c48426b652bf4d37053f2af329ac5',1,'connedit.php']]],
['construct_5factivity_5fobject',['construct_activity_object',['../items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee',1,'items.php']]],
['construct_5factivity_5ftarget',['construct_activity_target',['../items_8php.html#aa579bc4445d60098b1410961ca8e96b7',1,'items.php']]],
['construct_5fpage',['construct_page',['../boot_8php.html#acc4e0c910af066148b810e5fde55fff1',1,'boot.php']]],
@@ -130,14 +147,10 @@ var searchData=
['count_5fcommon_5ffriends_5fzcid',['count_common_friends_zcid',['../socgraph_8php.html#af175807406d94407a5e11742a3287746',1,'socgraph.php']]],
['count_5fdescendants',['count_descendants',['../classItem.html#aca1e66988ed00cd627b2a359b72cd0ae',1,'Item\count_descendants()'],['../conversation_8php.html#ab2383dff4f823e580399ff469d90ab19',1,'count_descendants():&#160;conversation.php']]],
['create_5faccount',['create_account',['../account_8php.html#a141fe579c351c78209d425473f978eb5',1,'account.php']]],
- ['create_5fdir_5faccount',['create_dir_account',['../identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd',1,'identity.php']]],
['create_5fidentity',['create_identity',['../identity_8php.html#a345f4c943d84de502ec6e72d2c813945',1,'identity.php']]],
+ ['create_5fsys_5fchannel',['create_sys_channel',['../identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05',1,'identity.php']]],
['createdirectory',['createDirectory',['../classRedDirectory.html#a986936910f0216887a25e28916c166c7',1,'RedDirectory']]],
['createfile',['createFile',['../classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0',1,'RedDirectory']]],
- ['crepair_2ephp',['crepair.php',['../crepair_8php.html',1,'']]],
- ['crepair_5fcontent',['crepair_content',['../crepair_8php.html#a29464c01838e209c8059cfcd2d195caa',1,'crepair.php']]],
- ['crepair_5finit',['crepair_init',['../crepair_8php.html#ab089978e50df156bbfabf9f8f5ccd198',1,'crepair.php']]],
- ['crepair_5fpost',['crepair_post',['../crepair_8php.html#acc4493e1ffd1462a605dd9b870034513',1,'crepair.php']]],
['cronhooks_2ephp',['cronhooks.php',['../cronhooks_8php.html',1,'']]],
['cronhooks_5frun',['cronhooks_run',['../cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca',1,'cronhooks.php']]],
['cropimage',['cropImage',['../classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e',1,'photo_driver\cropImage()'],['../classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c',1,'photo_gd\cropImage()'],['../classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4',1,'photo_imagick\cropImage()']]],
diff --git a/doc/html/search/all_64.js b/doc/html/search/all_64.js
index 5a666fcdc..1a9b8dac7 100644
--- a/doc/html/search/all_64.js
+++ b/doc/html/search/all_64.js
@@ -34,7 +34,7 @@ var searchData=
['del_5fxconfig',['del_xconfig',['../include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72',1,'config.php']]],
['delegate_2ephp',['delegate.php',['../delegate_8php.html',1,'']]],
['delegate_5fcontent',['delegate_content',['../delegate_8php.html#a943eea8996ef348eb845c498f9f354dd',1,'delegate.php']]],
- ['delete',['delete',['../classRedInode.html#a5e8f09bc887725c3c448f8d72fe3edfc',1,'RedInode']]],
+ ['delete',['delete',['../classRedFile.html#aef71c9eaac7052be7dc8602eb12171e7',1,'RedFile']]],
['delete_5fimported_5fitem',['delete_imported_item',['../zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72',1,'zot.php']]],
['delete_5fitem_5flowlevel',['delete_item_lowlevel',['../items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259',1,'items.php']]],
['deletenode',['deletenode',['../html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2',1,'html2bbcode.php']]],
@@ -55,7 +55,6 @@ var searchData=
['dir_5ftagblock',['dir_tagblock',['../taxonomy_8php.html#a599ee71dd3194c8127b00dabec77abc1',1,'taxonomy.php']]],
['directory_2ephp',['directory.php',['../mod_2directory_8php.html',1,'']]],
['directory_2ephp',['directory.php',['../include_2directory_8php.html',1,'']]],
- ['directory_5faside',['directory_aside',['../mod_2directory_8php.html#aa1d928543212871491706216742dd73c',1,'directory.php']]],
['directory_5fcontent',['directory_content',['../mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44',1,'directory.php']]],
['directory_5ffallback_5fmaster',['DIRECTORY_FALLBACK_MASTER',['../boot_8php.html#abedd940e664017c61b48c6efa31d0cb8',1,'boot.php']]],
['directory_5finit',['directory_init',['../mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf',1,'directory.php']]],
@@ -65,6 +64,8 @@ var searchData=
['directory_5fmode_5fstandalone',['DIRECTORY_MODE_STANDALONE',['../boot_8php.html#a25476eec71fceda237f7dc1d78b0adb8',1,'boot.php']]],
['directory_5frealm',['DIRECTORY_REALM',['../boot_8php.html#a6b9909db6a7ec80ec6fdd40ba74014dd',1,'boot.php']]],
['directory_5frun',['directory_run',['../include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0',1,'directory.php']]],
+ ['dirprofile_2ephp',['dirprofile.php',['../dirprofile_8php.html',1,'']]],
+ ['dirprofile_5finit',['dirprofile_init',['../dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052',1,'dirprofile.php']]],
['dirsearch_2ephp',['dirsearch.php',['../dirsearch_8php.html',1,'']]],
['dirsearch_5fcontent',['dirsearch_content',['../dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c',1,'dirsearch.php']]],
['dirsearch_5finit',['dirsearch_init',['../dirsearch_8php.html#a3e51964ae3f5ff147403407b65324752',1,'dirsearch.php']]],
@@ -76,6 +77,7 @@ var searchData=
['dob',['dob',['../datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8',1,'datetime.php']]],
['docblox_5ferrorchecker_2ephp',['docblox_errorchecker.php',['../docblox__errorchecker_8php.html',1,'']]],
['doscaleimage',['doScaleImage',['../classphoto__driver.html#ae18716018afcf362c7c24586b53e9e2f',1,'photo_driver\doScaleImage()'],['../classphoto__gd.html#a2f2e5900e6d8b1667892ac631b1d4754',1,'photo_gd\doScaleImage()'],['../classphoto__imagick.html#a3047c68bb4de7f66c2893fe451db2b66',1,'photo_imagick\doScaleImage()']]],
+ ['downgrade_5faccounts',['downgrade_accounts',['../account_8php.html#a0d183a3cb4c67a0f5e906811df7a1fc9',1,'account.php']]],
['drop_5fitem',['drop_item',['../items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1',1,'items.php']]],
['drop_5fitems',['drop_items',['../items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55',1,'items.php']]]
];
diff --git a/doc/html/search/all_66.js b/doc/html/search/all_66.js
index 3f5c1a2d9..f9ff7aa3a 100644
--- a/doc/html/search/all_66.js
+++ b/doc/html/search/all_66.js
@@ -24,6 +24,7 @@ var searchData=
['files',['files',['../namespacefriendica-to-smarty-tpl.html#ae74419b16516956c66f7db714a93a6ac',1,'friendica-to-smarty-tpl']]],
['filestorage_2ephp',['filestorage.php',['../filestorage_8php.html',1,'']]],
['filestorage_5fcontent',['filestorage_content',['../filestorage_8php.html#a61bb1be78472555df4ce619f51014040',1,'filestorage.php']]],
+ ['filestorage_5fpost',['filestorage_post',['../filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd',1,'filestorage.php']]],
['find_5fthread_5fparent_5findex',['find_thread_parent_index',['../conversation_8php.html#ae59703b07ce2ddf627b4172ff26058b6',1,'conversation.php']]],
['find_5fupstream_5fdirectory',['find_upstream_directory',['../dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d',1,'dir_fns.php']]],
['find_5fxchan_5fin_5farray',['find_xchan_in_array',['../text_8php.html#ace3c98538c63e09b70a363210b414112',1,'text.php']]],
@@ -44,7 +45,6 @@ var searchData=
['follow_2ephp',['follow.php',['../include_2follow_8php.html',1,'']]],
['follow_5fcontent',['follow_content',['../mod_2follow_8php.html#a4c540ea4e9f5c581c1a53516ac585592',1,'follow.php']]],
['follow_5finit',['follow_init',['../mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a',1,'follow.php']]],
- ['follow_5fwidget',['follow_widget',['../contact__widgets_8php.html#af24e693532a045954caab515942cfc6f',1,'contact_widgets.php']]],
['foreach',['foreach',['../typo_8php.html#a329c9c12217d2c8660c47bbc7c8df4c5',1,'typo.php']]],
['format_5fcategories',['format_categories',['../text_8php.html#a3054189cff173977f4216c9a3dd29e1b',1,'text.php']]],
['format_5fcss_5fif_5fexists',['format_css_if_exists',['../plugin_8php.html#a9039e15aae27676af7777dcbee5a11d6',1,'plugin.php']]],
diff --git a/doc/html/search/all_67.js b/doc/html/search/all_67.js
index 4aabc9746..8901bffa8 100644
--- a/doc/html/search/all_67.js
+++ b/doc/html/search/all_67.js
@@ -2,7 +2,7 @@ var searchData=
[
['gen_5ftoken',['gen_token',['../classFKOAuthDataStore.html#aa1a268be88ad3979bb4cc35bbb4dc819',1,'FKOAuthDataStore']]],
['gender_5fselector',['gender_selector',['../profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355',1,'profile_selectors.php']]],
- ['generate_5fuser_5fguid',['generate_user_guid',['../text_8php.html#ae4f6881d7e13623f8eded6277595112a',1,'text.php']]],
+ ['generatedirectoryindex',['generateDirectoryIndex',['../classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e',1,'RedBrowser']]],
['get',['get',['../classCache.html#a70392b109331897bf9fdd7f1960e21de',1,'Cache\get()'],['../classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535',1,'RedFile\get()']]],
['get_5faccount',['get_account',['../classApp.html#a08bc87aff64f39fbc084e9d6545cee4d',1,'App']]],
['get_5faccount_5fid',['get_account_id',['../boot_8php.html#afe88b920aa285982edb817a0dd44eb37',1,'boot.php']]],
@@ -17,9 +17,11 @@ var searchData=
['get_5fbrowser_5flanguage',['get_browser_language',['../language_8php.html#ace67d6cad57da08d030ad9dc9b8c836e',1,'language.php']]],
['get_5fcapath',['get_capath',['../include_2network_8php.html#a78e89557b2fbd344ad790846d761b0c7',1,'network.php']]],
['get_5fchannel',['get_channel',['../classApp.html#a084e03c77686d8c13390fef3f7428a2b',1,'App']]],
+ ['get_5fchannel_5fby_5fnick',['get_channel_by_nick',['../identity_8php.html#ac73b3e13778c564c877554517a7f51ba',1,'identity.php']]],
['get_5fchild',['get_child',['../classItem.html#a632185dd25c5caf277067c76230a4320',1,'Item']]],
['get_5fchildren',['get_children',['../classItem.html#aa0ee775ec94abccec6c798428835d001',1,'Item']]],
['get_5fcipher',['get_cipher',['../classConversation.html#a4aab60bb39fa6761b6cacdc8d9da2901',1,'Conversation']]],
+ ['get_5fcloudpath',['get_cloudpath',['../include_2attach_8php.html#a6aa00ea010ea030110faefb75eafc1ce',1,'attach.php']]],
['get_5fcomment_5fbox',['get_comment_box',['../classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf',1,'Item']]],
['get_5fcomment_5fbox_5ftemplate',['get_comment_box_template',['../classItem.html#a904421c7a427411bb2ab473bca872f63',1,'Item']]],
['get_5fconfig',['get_config',['../include_2config_8php.html#af02c96e6b37335774b548914ede1d22e',1,'config.php']]],
@@ -29,6 +31,7 @@ var searchData=
['get_5fdata',['get_data',['../classItem.html#ad3638f93065693c1f69eb349feb1b7aa',1,'Item']]],
['get_5fdata_5fvalue',['get_data_value',['../classItem.html#ac6f1c96cc82a0dfb7e881fc70309ea3c',1,'Item']]],
['get_5fdb_5ferrno',['get_db_errno',['../setup_8php.html#a8652788e8589778c5f81634a9d5b9429',1,'setup.php']]],
+ ['get_5fdefault_5fprofile_5fphoto',['get_default_profile_photo',['../identity_8php.html#ab1485a26b032956e1496fc08c58b83ed',1,'identity.php']]],
['get_5fdim',['get_dim',['../datetime_8php.html#a7df24d72ea05922d3127363e2295174c',1,'datetime.php']]],
['get_5fevents',['get_events',['../identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312',1,'identity.php']]],
['get_5ffeatures',['get_features',['../features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c',1,'features.php']]],
@@ -43,6 +46,7 @@ var searchData=
['get_5fitem_5fchildren',['get_item_children',['../conversation_8php.html#a7f6ef0dfa554bacf620e84c18d386e67',1,'conversation.php']]],
['get_5fitem_5fcontact',['get_item_contact',['../items_8php.html#aab9c6bae4c40799867596bdaae9829fd',1,'items.php']]],
['get_5fitem_5felements',['get_item_elements',['../items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361',1,'items.php']]],
+ ['get_5flanguage_5fname',['get_language_name',['../language_8php.html#a43e6ddba9df019c9ac3ab4c94c444ae7',1,'language.php']]],
['get_5fmail_5felements',['get_mail_elements',['../items_8php.html#a94ddb1d6c8fa21dd7433677e85168037',1,'items.php']]],
['get_5fmarkup_5ftemplate',['get_markup_template',['../classFriendicaSmartyEngine.html#aab5994077fc3a64222e41b28e2bd8d88',1,'FriendicaSmartyEngine\get_markup_template()'],['../interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442',1,'ITemplateEngine\get_markup_template()'],['../classTemplate.html#afd97b4b1e7754a550e67c0ea79159059',1,'Template\get_markup_template()'],['../plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4',1,'get_markup_template():&#160;plugin.php']]],
['get_5fmax_5fimport_5fsize',['get_max_import_size',['../boot_8php.html#a97769915c9f14adc4f8ab1ea2cecfd90',1,'boot.php']]],
@@ -53,6 +57,7 @@ var searchData=
['get_5fmy_5furl',['get_my_url',['../identity_8php.html#aa46321e1cd6a3b8dfde8bf9510112fec',1,'identity.php']]],
['get_5fobserver',['get_observer',['../classApp.html#a1ad3bb1b68439b3b7cbe630918e618d2',1,'App\get_observer()'],['../classConversation.html#ae3d4190142e12b57051f11f2911f77a0',1,'Conversation\get_observer()']]],
['get_5fobserver_5fhash',['get_observer_hash',['../boot_8php.html#a623e49c79943f3e7bdb770d021683cf7',1,'boot.php']]],
+ ['get_5fonline_5fstatus',['get_online_status',['../identity_8php.html#a332df795f684788002f5a6424abacfd7',1,'identity.php']]],
['get_5fowner_5fname',['get_owner_name',['../classItem.html#a67892aa23d19f4431bb2e5f43c74000e',1,'Item']]],
['get_5fowner_5fphoto',['get_owner_photo',['../classItem.html#aa541bc4290e51bfd688d6921bebabc73',1,'Item']]],
['get_5fowner_5furl',['get_owner_url',['../classItem.html#a9f2d219da712390f59012fc32a342074',1,'Item']]],
@@ -60,7 +65,7 @@ var searchData=
['get_5fpath',['get_path',['../classApp.html#a5293a8543ba338dcf38cd4ff3bc5d4be',1,'App']]],
['get_5fpconfig',['get_pconfig',['../include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad',1,'config.php']]],
['get_5fperms',['get_perms',['../classApp.html#adb5a4bb657881e553978ff390babd01f',1,'App\get_perms()'],['../permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972',1,'get_perms():&#160;permissions.php']]],
- ['get_5fplink',['get_plink',['../text_8php.html#a3ef8c0cf31f35f77462067de8712fa34',1,'text.php']]],
+ ['get_5fplink',['get_plink',['../text_8php.html#aac0969ae09853205992ba06ab9f9f61a',1,'text.php']]],
['get_5fplugin_5finfo',['get_plugin_info',['../plugin_8php.html#aff0178bd8d0b34a94d5efddc883edd35',1,'plugin.php']]],
['get_5fpoke_5fverbs',['get_poke_verbs',['../text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66',1,'text.php']]],
['get_5fprofile_5felements',['get_profile_elements',['../items_8php.html#a251343637ff40a50cca93452cd530c26',1,'items.php']]],
@@ -69,6 +74,7 @@ var searchData=
['get_5fredirect_5furl',['get_redirect_url',['../classItem.html#a428f448f89a8629055ea3294eb942aea',1,'Item']]],
['get_5frel_5flink',['get_rel_link',['../text_8php.html#a3972701c5c83624ec4e2d06242f614e7',1,'text.php']]],
['get_5frpost_5fpath',['get_rpost_path',['../zot_8php.html#a8e22dbc6f884be3644a892a876cbd972',1,'zot.php']]],
+ ['get_5fsys_5fchannel',['get_sys_channel',['../identity_8php.html#aaff86ee3b5984821e7a256c2da5f1a51',1,'identity.php']]],
['get_5ftags',['get_tags',['../text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623',1,'text.php']]],
['get_5ftemplate',['get_template',['../classItem.html#aba23a0a9d89e316d2b343cc46d695d91',1,'Item']]],
['get_5ftemplate_5fdata',['get_template_data',['../classConversation.html#a2a96b7a6573ae53db861624659e831cb',1,'Conversation\get_template_data()'],['../classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8',1,'Item\get_template_data()']]],
@@ -80,18 +86,23 @@ var searchData=
['get_5ftheme_5finfo',['get_theme_info',['../plugin_8php.html#ad48de9c0fb7f19413a2aa49250d00405',1,'plugin.php']]],
['get_5ftheme_5fscreenshot',['get_theme_screenshot',['../plugin_8php.html#a48047edfbef770125a5508dcc2f9282f',1,'plugin.php']]],
['get_5ftheme_5fuid',['get_theme_uid',['../identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3',1,'identity.php']]],
+ ['get_5fthings',['get_things',['../taxonomy_8php.html#a7747fa859ac56fbffd4f9782d85505de',1,'taxonomy.php']]],
['get_5fthread',['get_thread',['../classConversation.html#a4cff75d8c46b517e7133e4d0da6fc1c8',1,'Conversation']]],
['get_5fwidgets',['get_widgets',['../classApp.html#a871898becd0697d778f36d9336253ae8',1,'App']]],
+ ['get_5fwords',['get_words',['../spam_8php.html#ab8fd81a82c9622cbebb8ceab6b310ca6',1,'spam.php']]],
['get_5fxconfig',['get_xconfig',['../include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e',1,'config.php']]],
+ ['getasseturl',['getAssetUrl',['../classRedBrowser.html#a87529b4988a7777b49616f5c0a1c55d3',1,'RedBrowser']]],
['getchild',['getChild',['../classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569',1,'RedDirectory']]],
['getchildren',['getChildren',['../classRedDirectory.html#aa42d3065f6f065b17db87146a7cb031a',1,'RedDirectory']]],
['getcontenttype',['getContentType',['../classRedFile.html#a26416827eb68554d033d1e2e5cc6dd3b',1,'RedFile']]],
+ ['getdir',['getDir',['../classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4',1,'RedDirectory']]],
['getetag',['getETag',['../classRedFile.html#ae96d5caa2db7a461c57b24380fa87e28',1,'RedFile']]],
['getext',['getExt',['../classphoto__driver.html#aa2efb5b2a6af3fd67e3f1c2b9852a5ba',1,'photo_driver']]],
['getheight',['getHeight',['../classphoto__driver.html#af769e9abb144e57002c59aa2aa8f3468',1,'photo_driver']]],
['getimage',['getImage',['../classphoto__driver.html#ab98da263bd7341fc132c4fb6fc76e8d5',1,'photo_driver\getImage()'],['../classphoto__gd.html#a86757ba021fd80d1a5cf8c2f766a8484',1,'photo_gd\getImage()'],['../classphoto__imagick.html#ad07288e0eb3922cb08cc9d33a163decc',1,'photo_imagick\getImage()']]],
- ['getlastmodified',['getLastModified',['../classRedInode.html#a8503d4f247186e9e55bc42b37e067fb6',1,'RedInode']]],
- ['getname',['getName',['../classRedInode.html#aec5706105400764124db39d4bc68d458',1,'RedInode']]],
+ ['getlastmodified',['getLastModified',['../classRedDirectory.html#a6c7e08199abc24e6eeb94a4037ef8bfc',1,'RedDirectory\getLastModified()'],['../classRedFile.html#a41562a28007789bbe7fe06d6a20eef47',1,'RedFile\getLastModified()']]],
+ ['getname',['getName',['../classRedDirectory.html#af6e4475dbd5abcdede00d20b8d388583',1,'RedDirectory\getName()'],['../classRedFile.html#a0c961c5f49544d2502420361fa526437',1,'RedFile\getName()']]],
+ ['getquotainfo',['getQuotaInfo',['../classRedDirectory.html#a2f7a574f2115f099d6dd103d5b252375',1,'RedDirectory']]],
['getsize',['getSize',['../classRedFile.html#acb1edbe1848fab05347746fa1ea09d8f',1,'RedFile']]],
['gettype',['getType',['../classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3',1,'photo_driver']]],
['getwidth',['getWidth',['../classphoto__driver.html#acc30486acee9e89e32701f44a1738117',1,'photo_driver']]],
@@ -102,11 +113,10 @@ var searchData=
['gravity_5flike',['GRAVITY_LIKE',['../boot_8php.html#a1f5906598e90b5ea2b4245f682be4348',1,'boot.php']]],
['gravity_5fparent',['GRAVITY_PARENT',['../boot_8php.html#a2af173e4e9836ee7c90757b4793a2be3',1,'boot.php']]],
['greenthumbnails_2ephp',['greenthumbnails.php',['../greenthumbnails_8php.html',1,'']]],
- ['group_2ephp',['group.php',['../mod_2group_8php.html',1,'']]],
['group_2ephp',['group.php',['../include_2group_8php.html',1,'']]],
+ ['group_2ephp',['group.php',['../mod_2group_8php.html',1,'']]],
['group_5fadd',['group_add',['../include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce',1,'group.php']]],
['group_5fadd_5fmember',['group_add_member',['../include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b',1,'group.php']]],
- ['group_5faside',['group_aside',['../mod_2group_8php.html#aeb0784dd928e53e6d8693513bec8928c',1,'group.php']]],
['group_5fbyname',['group_byname',['../include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb',1,'group.php']]],
['group_5fcontent',['group_content',['../mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83',1,'group.php']]],
['group_5fget_5fmembers',['group_get_members',['../include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09',1,'group.php']]],
@@ -115,7 +125,7 @@ var searchData=
['group_5frmv',['group_rmv',['../include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5',1,'group.php']]],
['group_5frmv_5fmember',['group_rmv_member',['../include_2group_8php.html#a540e3ef36f47d47532646be4241f6518',1,'group.php']]],
['group_5fselect',['group_select',['../acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0',1,'acl_selectors.php']]],
- ['group_5fside',['group_side',['../include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17',1,'group.php']]],
+ ['group_5fside',['group_side',['../include_2group_8php.html#a6a69bd7be032fa8ce4e49c43a42cc6e9',1,'group.php']]],
['groups_5fcontaining',['groups_containing',['../include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f',1,'group.php']]],
['guess_5fimage_5ftype',['guess_image_type',['../photo__driver_8php.html#a243cee492ce443afb6a7d77d54b6c4aa',1,'photo_driver.php']]]
];
diff --git a/doc/html/search/all_68.js b/doc/html/search/all_68.js
index 8948f18f4..a3845cfd0 100644
--- a/doc/html/search/all_68.js
+++ b/doc/html/search/all_68.js
@@ -1,20 +1,21 @@
var searchData=
[
- ['handle_5ftag',['handle_tag',['../item_8php.html#abd0e603a6696051af16476eb968d52e7',1,'item.php']]],
+ ['handle_5ftag',['handle_tag',['../item_8php.html#aa22feef4de326e1d7078dedd892e615c',1,'item.php']]],
['has_5fpermissions',['has_permissions',['../items_8php.html#a77051724d1784074ff187e73a4db93fe',1,'items.php']]],
- ['hcard_2ephp',['hcard.php',['../hcard_8php.html',1,'']]],
- ['hcard_5faside',['hcard_aside',['../hcard_8php.html#a956c7cae2009652a37900306e5b7b73d',1,'hcard.php']]],
- ['hcard_5finit',['hcard_init',['../hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d',1,'hcard.php']]],
['head_5fadd_5fcss',['head_add_css',['../plugin_8php.html#a23c4fccf1eb5fcd63b24783ba1f05f7a',1,'plugin.php']]],
['head_5fadd_5fjs',['head_add_js',['../plugin_8php.html#a516591850f4fd49fd1425cfa54089db8',1,'plugin.php']]],
['head_5fget_5fcss',['head_get_css',['../plugin_8php.html#af92789f559b89a380e49d303218aeeca',1,'plugin.php']]],
['head_5fget_5ficon',['head_get_icon',['../classApp.html#af17df107f2216ddf5ad2a7e0f2ba2166',1,'App\head_get_icon()'],['../boot_8php.html#a24a7a70afedd5d85fe0eadc85afa9f77',1,'head_get_icon():&#160;boot.php']]],
['head_5fget_5fjs',['head_get_js',['../plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1',1,'plugin.php']]],
+ ['head_5fremove_5fcss',['head_remove_css',['../plugin_8php.html#a9ab6caae31935f6cf781ce7872db7cdf',1,'plugin.php']]],
+ ['head_5fremove_5fjs',['head_remove_js',['../plugin_8php.html#a4a0ae7b881e7c8af99a69e3b03f898b4',1,'plugin.php']]],
['head_5fset_5ficon',['head_set_icon',['../classApp.html#a8863703a0305eaa45eb970dbd2046291',1,'App\head_set_icon()'],['../boot_8php.html#a0e4701c9742c3ef88f02ac450a042a84',1,'head_set_icon():&#160;boot.php']]],
['help',['help',['../namespacefriendica-to-smarty-tpl.html#af6b2c793958aae2aadc294577431f749',1,'friendica-to-smarty-tpl.help()'],['../namespaceupdatetpl.html#ac9d11279fed403a329a719298feafc4f',1,'updatetpl.help()']]],
['help_2ephp',['help.php',['../help_8php.html',1,'']]],
['help_5fcontent',['help_content',['../help_8php.html#af055e15f600ffa6fbca9386fdf715224',1,'help.php']]],
['home_2ephp',['home.php',['../home_8php.html',1,'']]],
+ ['home_5fcontent',['home_content',['../home_8php.html#aa1cf697851a646755baf537f75334c46',1,'home.php']]],
+ ['home_5finit',['home_init',['../home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde',1,'home.php']]],
['hostxrd_2ephp',['hostxrd.php',['../hostxrd_8php.html',1,'']]],
['hostxrd_5finit',['hostxrd_init',['../hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92',1,'hostxrd.php']]],
['html2bb_5fvideo',['html2bb_video',['../text_8php.html#a138a3a611fa7f4f3630674145fc826bf',1,'text.php']]],
@@ -22,6 +23,7 @@ var searchData=
['html2bbcode_2ephp',['html2bbcode.php',['../html2bbcode_8php.html',1,'']]],
['html2plain',['html2plain',['../html2plain_8php.html#ab3e121fa9f3feb16f9f942e705bc6c04',1,'html2plain.php']]],
['html2plain_2ephp',['html2plain.php',['../html2plain_8php.html',1,'']]],
+ ['htmlactionspanel',['htmlActionsPanel',['../classRedBrowser.html#a7f6bf0bda07833f4c647557bd172e349',1,'RedBrowser']]],
['http_5fstatus_5fexit',['http_status_exit',['../include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2',1,'network.php']]],
['hubloc_5fflags_5fdeleted',['HUBLOC_FLAGS_DELETED',['../boot_8php.html#a7c286add8961fd2d79216314cd4aadd8',1,'boot.php']]],
['hubloc_5fflags_5fprimary',['HUBLOC_FLAGS_PRIMARY',['../boot_8php.html#a3ad9cc5d4354be741fa1de12b96e9955',1,'boot.php']]],
diff --git a/doc/html/search/all_69.js b/doc/html/search/all_69.js
index 075a6789e..3ec2ac6ca 100644
--- a/doc/html/search/all_69.js
+++ b/doc/html/search/all_69.js
@@ -4,9 +4,10 @@ var searchData=
['identity_5fbasic_5fexport',['identity_basic_export',['../identity_8php.html#a3570a4eb77332b292d394c4132cb8f03',1,'identity.php']]],
['identity_5fcheck_5fservice_5fclass',['identity_check_service_class',['../identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633',1,'identity.php']]],
['ids_5fto_5fquerystr',['ids_to_querystr',['../text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a',1,'text.php']]],
- ['if',['if',['../php2po_8php.html#a45b05625748f412ec97afcd61cf7980b',1,'if():&#160;php2po.php'],['../php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762',1,'if():&#160;default.php'],['../full_8php.html#a6fac1b4b8cdfde06ea1b7713479e92db',1,'if():&#160;full.php'],['../apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a',1,'if():&#160;style.php'],['../redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a',1,'if():&#160;style.php']]],
+ ['if',['if',['../php2po_8php.html#a45b05625748f412ec97afcd61cf7980b',1,'if():&#160;php2po.php'],['../php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762',1,'if():&#160;default.php'],['../full_8php.html#a6fac1b4b8cdfde06ea1b7713479e92db',1,'if():&#160;full.php'],['../apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a',1,'if():&#160;style.php']]],
['imagestring',['imageString',['../classphoto__driver.html#abc9f73ad90923772d52b9fcc4eb117dd',1,'photo_driver\imageString()'],['../classphoto__gd.html#a0795fc029be382557ae3f6e285f40e00',1,'photo_gd\imageString()'],['../classphoto__imagick.html#a70adbef31128c0ac8cbc5dcf34cdb019',1,'photo_imagick\imageString()']]],
['import_2ephp',['import.php',['../import_8php.html',1,'']]],
+ ['import_5fauthor_5frss',['import_author_rss',['../items_8php.html#a6bee35961f2e32905f20367a9309d627',1,'items.php']]],
['import_5fauthor_5fxchan',['import_author_xchan',['../items_8php.html#ae73794179b62d39bb597ff670ab1c1e5',1,'items.php']]],
['import_5fauthor_5fzot',['import_author_zot',['../zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d',1,'zot.php']]],
['import_5fchannel_5fphoto',['import_channel_photo',['../photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a',1,'photo_driver.php']]],
@@ -14,7 +15,7 @@ var searchData=
['import_5fdirectory_5fkeywords',['import_directory_keywords',['../zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a',1,'zot.php']]],
['import_5fdirectory_5fprofile',['import_directory_profile',['../zot_8php.html#aeec89da5b6ff090c63a79de4de884a35',1,'zot.php']]],
['import_5fpost',['import_post',['../import_8php.html#af17fef0410518f7eac205d0ea416eaa2',1,'import.php']]],
- ['import_5fprofile_5fphoto',['import_profile_photo',['../photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca',1,'photo_driver.php']]],
+ ['import_5fprofile_5fphoto',['import_profile_photo',['../photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887',1,'photo_driver.php']]],
['import_5fsite',['import_site',['../zot_8php.html#a2657e141d62d5f67ad3c87651b585299',1,'zot.php']]],
['import_5fxchan',['import_xchan',['../zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1',1,'zot.php']]],
['in_5farrayi',['in_arrayi',['../text_8php.html#a75c326298519ed14ebe762194c8a3f2a',1,'text.php']]],
@@ -22,16 +23,14 @@ var searchData=
['insert_5fhook',['insert_hook',['../plugin_8php.html#aeaebe63dcf6fa2794f363ba2bc0b2c6b',1,'plugin.php']]],
['install',['install',['../classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746',1,'dba_driver']]],
['install_5fplugin',['install_plugin',['../plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5',1,'plugin.php']]],
- ['intro_2ephp',['intro.php',['../intro_8php.html',1,'']]],
- ['intro_5faside',['intro_aside',['../intro_8php.html#abc3abf25da64f98f215126eb08c7936b',1,'intro.php']]],
- ['intro_5fcontent',['intro_content',['../intro_8php.html#a3e2a523697633ddb4517b9266a515f5b',1,'intro.php']]],
- ['intro_5fpost',['intro_post',['../intro_8php.html#af3681062183ccbdf065ae2647b07d6f1',1,'intro.php']]],
['invite_2ephp',['invite.php',['../invite_8php.html',1,'']]],
['invite_5fcontent',['invite_content',['../invite_8php.html#a244385b28cfd021d308715f01158bfd9',1,'invite.php']]],
['invite_5fpost',['invite_post',['../invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5',1,'invite.php']]],
['is_5fa_5fdate_5farg',['is_a_date_arg',['../text_8php.html#a1557112a774ec00fa06ed6b6f6495506',1,'text.php']]],
['is_5fajax',['is_ajax',['../boot_8php.html#ac17fc8a416ea79e9d5cb4dc9a8ff8c5c',1,'boot.php']]],
['is_5fcommentable',['is_commentable',['../classConversation.html#a8b47c92b69459d461ea3cc9aae9597a3',1,'Conversation\is_commentable()'],['../classItem.html#ac04525a8be24c12b0a2ae4ca1ba4b967',1,'Item\is_commentable()']]],
+ ['is_5fforeigner',['is_foreigner',['../identity_8php.html#ae2b140df652a55ca11bb6a99005fce35',1,'identity.php']]],
+ ['is_5fmember',['is_member',['../identity_8php.html#a9637c557e13d9671f3eeb124ab98212a',1,'identity.php']]],
['is_5fpreview',['is_preview',['../classConversation.html#adf25ce023b69a166c63c6e84e02c136a',1,'Conversation']]],
['is_5fsite_5fadmin',['is_site_admin',['../boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e',1,'boot.php']]],
['is_5fthreaded',['is_threaded',['../classItem.html#a5b2fafdca55aefeaa08993a5a60529f0',1,'Item']]],
@@ -39,10 +38,12 @@ var searchData=
['is_5fvalid',['is_valid',['../classphoto__driver.html#a97289aef3be43d9435ca3717ef10b8ab',1,'photo_driver']]],
['is_5fvisiting',['is_visiting',['../classItem.html#a97c7feeea7f26a73176cb19faa455e12',1,'Item']]],
['is_5fwall_5fto_5fwall',['is_wall_to_wall',['../classItem.html#aabf87ded59c25b5fe2b2296678e70509',1,'Item']]],
+ ['is_5fwindows',['is_windows',['../boot_8php.html#ac5e74f899f6e98d8e91b14ba1c08bc08',1,'boot.php']]],
['is_5fwritable',['is_writable',['../classConversation.html#a5879199008b96bee7550b576d614e1c1',1,'Conversation']]],
['item',['Item',['../classItem.html',1,'']]],
['item_2ephp',['item.php',['../item_8php.html',1,'']]],
['item_5fblocked',['ITEM_BLOCKED',['../boot_8php.html#ab28dc518fa90b6f617dd8c564eb4f35f',1,'boot.php']]],
+ ['item_5fbug',['ITEM_BUG',['../boot_8php.html#a87b0f279f8413c7e4d805c5d85f20d34',1,'boot.php']]],
['item_5fbuildblock',['ITEM_BUILDBLOCK',['../boot_8php.html#a7fc4b291a7cdaa48b38e27344ea183cf',1,'boot.php']]],
['item_5fcheck_5fservice_5fclass',['item_check_service_class',['../item_8php.html#a5b1b36cb301a94b38150074f0d424e74',1,'item.php']]],
['item_5fcontent',['item_content',['../item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221',1,'item.php']]],
diff --git a/doc/html/search/all_6c.js b/doc/html/search/all_6c.js
index d286ba28a..fbe37ea4b 100644
--- a/doc/html/search/all_6c.js
+++ b/doc/html/search/all_6c.js
@@ -4,10 +4,6 @@ var searchData=
['language_2ephp',['language.php',['../language_8php.html',1,'']]],
['language_5fdetect_5fmin_5fconfidence',['LANGUAGE_DETECT_MIN_CONFIDENCE',['../boot_8php.html#a68d1d5bc9c7ccb663dc671b48c66df11',1,'boot.php']]],
['language_5fdetect_5fmin_5flength',['LANGUAGE_DETECT_MIN_LENGTH',['../boot_8php.html#a17cf72338b040891781a4bcbdd9a8595',1,'boot.php']]],
- ['lastpost_2ephp',['lastpost.php',['../lastpost_8php.html',1,'']]],
- ['lastpost_5faside',['lastpost_aside',['../lastpost_8php.html#a6108289ef2a767495c7c85a24f364983',1,'lastpost.php']]],
- ['lastpost_5fcontent',['lastpost_content',['../lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493',1,'lastpost.php']]],
- ['lastpost_5finit',['lastpost_init',['../lastpost_8php.html#ab4c6ebd25736af678e64d55ce508ce8c',1,'lastpost.php']]],
['layout_5fselect',['layout_select',['../text_8php.html#a3999a0b3e22e440f280ee791ce34d384',1,'text.php']]],
['layouts_2ephp',['layouts.php',['../layouts_8php.html',1,'']]],
['layouts_5fcontent',['layouts_content',['../layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50',1,'layouts.php']]],
@@ -30,10 +26,12 @@ var searchData=
['load_5fplugin',['load_plugin',['../plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d',1,'plugin.php']]],
['load_5ftranslation_5ftable',['load_translation_table',['../language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05',1,'language.php']]],
['load_5fxconfig',['load_xconfig',['../include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33',1,'config.php']]],
+ ['local_5fdir_5fupdate',['local_dir_update',['../dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e',1,'dir_fns.php']]],
['local_5fuser',['local_user',['../boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44',1,'boot.php']]],
['localize_5fitem',['localize_item',['../conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c',1,'conversation.php']]],
['lockview_2ephp',['lockview.php',['../lockview_8php.html',1,'']]],
['lockview_5fcontent',['lockview_content',['../lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44',1,'lockview.php']]],
+ ['log',['log',['../classRedDirectory.html#a11376aed1963b4471eb1592c13c63976',1,'RedDirectory\log()'],['../classRedBasicAuth.html#a2cc8b1eac9c5a799bfb53ea7f287f3f0',1,'RedBasicAuth\log()']]],
['logger',['logger',['../text_8php.html#a030fa5ecc64168af0c4f44897a9bce63',1,'text.php']]],
['logger_5fall',['LOGGER_ALL',['../boot_8php.html#afe63ae69ba55299f813766e54df06ede',1,'boot.php']]],
['logger_5fdata',['LOGGER_DATA',['../boot_8php.html#a6969947145a139ec374ce098224d8e81',1,'boot.php']]],
diff --git a/doc/html/search/all_6d.js b/doc/html/search/all_6d.js
index 44c214360..ec6e4bbe9 100644
--- a/doc/html/search/all_6d.js
+++ b/doc/html/search/all_6d.js
@@ -4,9 +4,12 @@ var searchData=
['magic_5finit',['magic_init',['../magic_8php.html#acea2cc792849ca2d71d4b689f66518bf',1,'magic.php']]],
['magic_5flink',['magic_link',['../text_8php.html#a1e510c53624933ce9b7d6715784894db',1,'text.php']]],
['magiclink_5furl',['magiclink_url',['../text_8php.html#a24d441d30df4b8e6bf6780bf62a5e2c6',1,'text.php']]],
+ ['mail_2ephp',['mail.php',['../mail_8php.html',1,'']]],
+ ['mail_5fcontent',['mail_content',['../mail_8php.html#a3c7c485fc69f92371e8b20936040eca1',1,'mail.php']]],
['mail_5fdeleted',['MAIL_DELETED',['../boot_8php.html#ad0876e837cf3fad8a26417e315f6e2c8',1,'boot.php']]],
['mail_5fisreply',['MAIL_ISREPLY',['../boot_8php.html#aa544a6c078130d0967a1f4ed8ce0a2d2',1,'boot.php']]],
['mail_5fobscured',['MAIL_OBSCURED',['../boot_8php.html#a44ae1542a805ffd7f826fb511db07374',1,'boot.php']]],
+ ['mail_5fpost',['mail_post',['../mail_8php.html#acfc2cc0bf4e0b178207758384977f25a',1,'mail.php']]],
['mail_5frecalled',['MAIL_RECALLED',['../boot_8php.html#ae4861de36017fe399c1839f778bad9f5',1,'boot.php']]],
['mail_5freplied',['MAIL_REPLIED',['../boot_8php.html#aa3679df31c8dad1b71816b0322d5baff',1,'boot.php']]],
['mail_5fseen',['MAIL_SEEN',['../boot_8php.html#a1fbb93cf030f07391f22cc2948744869',1,'boot.php']]],
@@ -18,12 +21,14 @@ var searchData=
['marital_5fselector',['marital_selector',['../profile__selectors_8php.html#a7473dd095987e1cdcc79d4f0bb5e6798',1,'profile_selectors.php']]],
['match_2ephp',['match.php',['../match_8php.html',1,'']]],
['match_5fcontent',['match_content',['../match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d',1,'match.php']]],
+ ['match_5fopenid',['match_openid',['../auth_8php.html#ab7be44ee051c0aa29847807cf2c5dd38',1,'auth.php']]],
['max_5fimage_5flength',['MAX_IMAGE_LENGTH',['../boot_8php.html#a525ca93ff35d3535d1a2b8ba57876afa',1,'boot.php']]],
['max_5flikers',['MAX_LIKERS',['../boot_8php.html#a35625dacd2158b9f1f1a8e77f9f081fd',1,'boot.php']]],
['member_5fof',['member_of',['../include_2group_8php.html#a048f6892bfd28852de1b76470df411de',1,'group.php']]],
['menu_2ephp',['menu.php',['../mod_2menu_8php.html',1,'']]],
['menu_2ephp',['menu.php',['../include_2menu_8php.html',1,'']]],
['menu_5fadd_5fitem',['menu_add_item',['../include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8',1,'menu.php']]],
+ ['menu_5fbookmark',['MENU_BOOKMARK',['../boot_8php.html#a458e19af801bc4b0d1f1ce1a6d9e857e',1,'boot.php']]],
['menu_5fcontent',['menu_content',['../mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf',1,'menu.php']]],
['menu_5fcreate',['menu_create',['../include_2menu_8php.html#a08a800821721781a8dfffbe31481ff98',1,'menu.php']]],
['menu_5fdel_5fitem',['menu_del_item',['../include_2menu_8php.html#a9aa8e0052dd47c1a93f53a983bd4620a',1,'menu.php']]],
@@ -35,14 +40,13 @@ var searchData=
['menu_5ffetch_5fid',['menu_fetch_id',['../include_2menu_8php.html#a47447c01ba8ea04cd74af1d4c5b68fc7',1,'menu.php']]],
['menu_5fitem_5fnewwin',['MENU_ITEM_NEWWIN',['../boot_8php.html#ad11f30a6590d3d77f0c5e1e3909af8f5',1,'boot.php']]],
['menu_5fitem_5fzid',['MENU_ITEM_ZID',['../boot_8php.html#aed0dfb35f7dd00dc9e4f868ea7f7ff53',1,'boot.php']]],
- ['menu_5flist',['menu_list',['../include_2menu_8php.html#acef15a498d52666b1c7e5c12765c689b',1,'menu.php']]],
+ ['menu_5flist',['menu_list',['../include_2menu_8php.html#a32701c4245e78ba9106eef52c08bf33d',1,'menu.php']]],
['menu_5fpost',['menu_post',['../mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393',1,'menu.php']]],
- ['menu_5frender',['menu_render',['../include_2menu_8php.html#a890cc6237971e15f15702e6b2e88502e',1,'menu.php']]],
- ['message_2ephp',['message.php',['../mod_2message_8php.html',1,'']]],
+ ['menu_5frender',['menu_render',['../include_2menu_8php.html#a4d7123b0577fa994770199f9b831da11',1,'menu.php']]],
+ ['menu_5fsystem',['MENU_SYSTEM',['../boot_8php.html#a718a801b0be6cbaef5e519516da12721',1,'boot.php']]],
['message_2ephp',['message.php',['../include_2message_8php.html',1,'']]],
- ['message_5faside',['message_aside',['../mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7',1,'message.php']]],
- ['message_5fcontent',['message_content',['../mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79',1,'message.php']]],
- ['message_5fpost',['message_post',['../mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718',1,'message.php']]],
+ ['message_2ephp',['message.php',['../mod_2message_8php.html',1,'']]],
+ ['message_5fcontent',['message_content',['../mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f',1,'message.php']]],
['micropro',['micropro',['../text_8php.html#a2a902f5fdba8646333e997898ac45ea3',1,'text.php']]],
['mimetype_5fselect',['mimetype_select',['../text_8php.html#a1633412120f52bdce5f43e0a127d9293',1,'text.php']]],
['mini_5fgroup_5fselect',['mini_group_select',['../include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32',1,'group.php']]],
@@ -52,9 +56,8 @@ var searchData=
['mitem_5fcontent',['mitem_content',['../mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e',1,'mitem.php']]],
['mitem_5finit',['mitem_init',['../mitem_8php.html#a9627cd857cafdf04e4fc0ae48c8e8518',1,'mitem.php']]],
['mitem_5fpost',['mitem_post',['../mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1',1,'mitem.php']]],
+ ['mod_5ffilestorage_2ephp',['mod_filestorage.php',['../mod__filestorage_8php.html',1,'']]],
['mod_5fimport_2ephp',['mod_import.php',['../mod__import_8php.html',1,'']]],
- ['mod_5fnew_5fchannel_2ephp',['mod_new_channel.php',['../mod__new__channel_8php.html',1,'']]],
- ['mod_5fregister_2ephp',['mod_register.php',['../mod__register_8php.html',1,'']]],
['mood_2ephp',['mood.php',['../mood_8php.html',1,'']]],
['mood_5fcontent',['mood_content',['../mood_8php.html#a721b9b6703b3234a005641c92d409b8f',1,'mood.php']]],
['mood_5finit',['mood_init',['../mood_8php.html#a7ae136dd7476865b4828136175db5022',1,'mood.php']]],
diff --git a/doc/html/search/all_6e.js b/doc/html/search/all_6e.js
index 9c8d326de..4b343a645 100644
--- a/doc/html/search/all_6e.js
+++ b/doc/html/search/all_6e.js
@@ -57,6 +57,8 @@ var searchData=
['normalise_5flink',['normalise_link',['../text_8php.html#a4bbb7d00c05cd20b4e043424f322388f',1,'text.php']]],
['normalise_5fopenid',['normalise_openid',['../text_8php.html#adba17ec946f4285285dc100f7860bf51',1,'text.php']]],
['notags',['notags',['../text_8php.html#a1af49756c8c71902a66c7e329c462beb',1,'text.php']]],
+ ['notes_2ephp',['notes.php',['../notes_8php.html',1,'']]],
+ ['notes_5finit',['notes_init',['../notes_8php.html#a4dbd7b1f906440746af48b484d66535a',1,'notes.php']]],
['notice',['notice',['../boot_8php.html#a9255af5ae9c887520091ea04763c1a88',1,'boot.php']]],
['notification',['notification',['../enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc',1,'enotify.php']]],
['notifications_2ephp',['notifications.php',['../notifications_8php.html',1,'']]],
@@ -64,8 +66,8 @@ var searchData=
['notifications_5fpost',['notifications_post',['../notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33',1,'notifications.php']]],
['notifier_2ephp',['notifier.php',['../notifier_8php.html',1,'']]],
['notifier_5frun',['notifier_run',['../notifier_8php.html#a568c502f626cff95e344c0748938b85d',1,'notifier.php']]],
- ['notify_2ephp',['notify.php',['../mod_2notify_8php.html',1,'']]],
['notify_2ephp',['notify.php',['../include_2notify_8php.html',1,'']]],
+ ['notify_2ephp',['notify.php',['../mod_2notify_8php.html',1,'']]],
['notify_5fcomment',['NOTIFY_COMMENT',['../boot_8php.html#a20f0eed431d25870b624b8937a07a59f',1,'boot.php']]],
['notify_5fconfirm',['NOTIFY_CONFIRM',['../boot_8php.html#af8c0cb0744c9a6b5d6d3baafb1f1e71d',1,'boot.php']]],
['notify_5fcontent',['notify_content',['../mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3',1,'notify.php']]],
@@ -79,5 +81,6 @@ var searchData=
['notify_5ftagself',['NOTIFY_TAGSELF',['../boot_8php.html#ab724491497ab2618b23a01d5da60aec0',1,'boot.php']]],
['notify_5ftagshare',['NOTIFY_TAGSHARE',['../boot_8php.html#af6937db5f581d006bf4a5c3d9c7e0461',1,'boot.php']]],
['notify_5fwall',['NOTIFY_WALL',['../boot_8php.html#a505410c7edc5f5bb5fa227b98359793e',1,'boot.php']]],
+ ['notred_2ephp',['notred.php',['../notred_8php.html',1,'']]],
['nuke_5fsession',['nuke_session',['../auth_8php.html#a2add3a1129ffa4d5515442a9d52a9b1a',1,'auth.php']]]
];
diff --git a/doc/html/search/all_6f.js b/doc/html/search/all_6f.js
index 8c0214b94..b67ac1b5f 100644
--- a/doc/html/search/all_6f.js
+++ b/doc/html/search/all_6f.js
@@ -2,12 +2,12 @@ var searchData=
[
['oauth_2ephp',['oauth.php',['../oauth_8php.html',1,'']]],
['oauth_5fget_5fclient',['oauth_get_client',['../mod_2api_8php.html#a02ae0f60e240dc806b860edb7d582117',1,'api.php']]],
- ['obj_5fverb_5fselector',['obj_verb_selector',['../taxonomy_8php.html#ac12a651a42ed77f8dc7072c6168811a2',1,'taxonomy.php']]],
+ ['obj_5fverb_5fselector',['obj_verb_selector',['../taxonomy_8php.html#af387463d42ffdf7d2ab3d5b22e40a0c7',1,'taxonomy.php']]],
['obj_5fverbs',['obj_verbs',['../taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce',1,'taxonomy.php']]],
['oe_5fbuild_5fxpath',['oe_build_xpath',['../include_2oembed_8php.html#ab953a6e7c11bc6498ce01ed73e2ba319',1,'oembed.php']]],
['oe_5fget_5finner_5fhtml',['oe_get_inner_html',['../include_2oembed_8php.html#a03fa3b7832c98a3d0b4630afeb73d487',1,'oembed.php']]],
- ['oembed_2ephp',['oembed.php',['../include_2oembed_8php.html',1,'']]],
['oembed_2ephp',['oembed.php',['../mod_2oembed_8php.html',1,'']]],
+ ['oembed_2ephp',['oembed.php',['../include_2oembed_8php.html',1,'']]],
['oembed_5fbbcode2html',['oembed_bbcode2html',['../include_2oembed_8php.html#aba89ae64b355efcb4f706553d3edb6a2',1,'oembed.php']]],
['oembed_5ffetch_5furl',['oembed_fetch_url',['../include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2',1,'oembed.php']]],
['oembed_5fformat_5fobject',['oembed_format_object',['../include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3',1,'oembed.php']]],
@@ -23,6 +23,10 @@ var searchData=
['onedirsync_5frun',['onedirsync_run',['../onedirsync_8php.html#a411aedd47c57476099647961e6a86691',1,'onedirsync.php']]],
['onepoll_2ephp',['onepoll.php',['../onepoll_8php.html',1,'']]],
['onepoll_5frun',['onepoll_run',['../onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d',1,'onepoll.php']]],
+ ['online_2ephp',['online.php',['../online_8php.html',1,'']]],
+ ['online_5finit',['online_init',['../online_8php.html#a80e107c84eb722b0ca11d0413b96f9f7',1,'online.php']]],
+ ['openid_2ephp',['openid.php',['../openid_8php.html',1,'']]],
+ ['openid_5fcontent',['openid_content',['../openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43',1,'openid.php']]],
['opensearch_2ephp',['opensearch.php',['../opensearch_8php.html',1,'']]],
['opensearch_5finit',['opensearch_init',['../opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9',1,'opensearch.php']]],
['orient',['orient',['../classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d',1,'photo_driver']]],
diff --git a/doc/html/search/all_70.js b/doc/html/search/all_70.js
index db470676e..9172b2f9a 100644
--- a/doc/html/search/all_70.js
+++ b/doc/html/search/all_70.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['page',['page',['../mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb',1,'page():&#160;mod_import.php'],['../mod__new__channel_8php.html#a8db1899eeeb44dabd0904065b63627bb',1,'page():&#160;mod_new_channel.php'],['../mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb',1,'page():&#160;mod_register.php']]],
+ ['page',['page',['../mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb',1,'mod_import.php']]],
['page_2ephp',['page.php',['../page_8php.html',1,'']]],
['page_5fadult',['PAGE_ADULT',['../boot_8php.html#ace83842dbeb84f7ed9ac59a9f57a7c32',1,'boot.php']]],
['page_5fapplication',['PAGE_APPLICATION',['../boot_8php.html#a8231d115060d41a9c2a677f2c86f10ed',1,'boot.php']]],
@@ -12,6 +12,7 @@ var searchData=
['page_5fnormal',['PAGE_NORMAL',['../boot_8php.html#a09532c3f750ae8c4527e63b2b790cbf3',1,'boot.php']]],
['page_5fpremium',['PAGE_PREMIUM',['../boot_8php.html#ab3920c2f3cd64802c0b7ff625c3b2ea8',1,'boot.php']]],
['page_5fremoved',['PAGE_REMOVED',['../boot_8php.html#a4edce16cb7f21cdafa1e85bf63d713e6',1,'boot.php']]],
+ ['page_5fsystem',['PAGE_SYSTEM',['../boot_8php.html#a6ee7a72d558d1851bbb9e3cdde377932',1,'boot.php']]],
['page_5fwidgets_2ephp',['page_widgets.php',['../page__widgets_8php.html',1,'']]],
['pagelist_5fwidget',['pagelist_widget',['../page__widgets_8php.html#ad82011c1ed90d9de8b9f34c12af5c6f0',1,'page_widgets.php']]],
['paginate',['paginate',['../text_8php.html#afe9f178d264d44a94dc1292aaf0fd585',1,'text.php']]],
@@ -28,8 +29,10 @@ var searchData=
['permissions_2ephp',['permissions.php',['../permissions_8php.html',1,'']]],
['permissions_5fsql',['permissions_sql',['../security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f',1,'security.php']]],
['perms2str',['perms2str',['../text_8php.html#a98fd99dee3da8cf4c148dc04efe782ee',1,'text.php']]],
+ ['perms_5fa_5fbookmark',['PERMS_A_BOOKMARK',['../boot_8php.html#a8b2af16eaee9e7768a88d0e437877f3b',1,'boot.php']]],
['perms_5fa_5fdelegate',['PERMS_A_DELEGATE',['../boot_8php.html#a423505ab8dbd8e39d04ae3fe1374102b',1,'boot.php']]],
['perms_5fa_5frepublish',['PERMS_A_REPUBLISH',['../boot_8php.html#aae6c941bde5fd6fce07e51dba7326ead',1,'boot.php']]],
+ ['perms_5fauthed',['PERMS_AUTHED',['../boot_8php.html#a852d4036a3bed66af1534d014c4ecde2',1,'boot.php']]],
['perms_5fcontacts',['PERMS_CONTACTS',['../boot_8php.html#ab2d0e8a9b81ee548ef2ce8e4560da2f6',1,'boot.php']]],
['perms_5fnetwork',['PERMS_NETWORK',['../boot_8php.html#a6df1102664f64b274810db85197c2755',1,'boot.php']]],
['perms_5fpublic',['PERMS_PUBLIC',['../boot_8php.html#aff210e8403dd72368522b17fb6e5d4e7',1,'boot.php']]],
@@ -84,6 +87,7 @@ var searchData=
['pine_2ephp',['pine.php',['../pine_8php.html',1,'']]],
['ping_2ephp',['ping.php',['../ping_8php.html',1,'']]],
['ping_5finit',['ping_init',['../ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1',1,'ping.php']]],
+ ['pipe_5fstreams',['pipe_streams',['../include_2attach_8php.html#a5d484de2d19a93071571d6499a50ae34',1,'attach.php']]],
['pkcs5_5fpad',['pkcs5_pad',['../crypto_8php.html#ad5e51fd44cff93cfaa07a37e24a5edec',1,'crypto.php']]],
['pkcs5_5funpad',['pkcs5_unpad',['../crypto_8php.html#ac95ac3b1b23b65b04a86613d4206ae85',1,'crypto.php']]],
['plugin_2ephp',['plugin.php',['../plugin_8php.html',1,'']]],
@@ -128,7 +132,6 @@ var searchData=
['post_5fto_5fred_5fpost_5fmeta_5fcontent',['post_to_red_post_meta_content',['../post__to__red_8php.html#aa97aeda12ef080665f16311a4e1eb901',1,'post_to_red.php']]],
['post_5fto_5fred_5fsettings_5flink',['post_to_red_settings_link',['../post__to__red_8php.html#a906be8f72cf1aa2e199c0683ea6a4017',1,'post_to_red.php']]],
['post_5fto_5fred_5fversion',['post_to_red_version',['../post__to__red_8php.html#af3e7ebd361d4ed7cb6d43209970cd94a',1,'post_to_red.php']]],
- ['posted_5fdate_5fwidget',['posted_date_widget',['../items_8php.html#abe695dd89e1e10ed042c26b80114f0ed',1,'items.php']]],
['posted_5fdates',['posted_dates',['../items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0',1,'items.php']]],
['preg_5fcallback_5fhelp_5finclude',['preg_callback_help_include',['../help_8php.html#a06b2a51aaabed99e53a9b639047c4ce4',1,'help.php']]],
['preg_5fheart',['preg_heart',['../text_8php.html#ac19d2b33a58372a357a43d51eed19162',1,'text.php']]],
@@ -152,13 +155,11 @@ var searchData=
['process_5fprofile_5fdelivery',['process_profile_delivery',['../zot_8php.html#a9a57b40669351c9791126b925cb7ef3b',1,'zot.php']]],
['profile_2ephp',['profile.php',['../profile_8php.html',1,'']]],
['profile_5factivity',['profile_activity',['../activities_8php.html#a80134e807719b3c54aba971958d2e132',1,'activities.php']]],
- ['profile_5faside',['profile_aside',['../profile_8php.html#a1a2482b775476f2f64ea5e8f4fc3fd1e',1,'profile.php']]],
['profile_5fcontent',['profile_content',['../profile_8php.html#a3775cf6eef6587e5143133356a7b76c0',1,'profile.php']]],
['profile_5fcreate_5fsidebar',['profile_create_sidebar',['../identity_8php.html#ad4a2c8caca8f6ae93633ebeca0ed6620',1,'identity.php']]],
['profile_5finit',['profile_init',['../profile_8php.html#ab5d0246be0552e2182a585c1206d22a5',1,'profile.php']]],
['profile_5fload',['profile_load',['../identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68',1,'identity.php']]],
['profile_5fphoto_2ephp',['profile_photo.php',['../profile__photo_8php.html',1,'']]],
- ['profile_5fphoto_5faside',['profile_photo_aside',['../profile__photo_8php.html#ac9cd968a767e2ae1b88383b6cdd6dbe3',1,'profile_photo.php']]],
['profile_5fphoto_5finit',['profile_photo_init',['../profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02',1,'profile_photo.php']]],
['profile_5fphoto_5fpost',['profile_photo_post',['../profile__photo_8php.html#a4b80234074bd603221aa5364f330e479',1,'profile_photo.php']]],
['profile_5fselectors_2ephp',['profile_selectors.php',['../profile__selectors_8php.html',1,'']]],
@@ -166,12 +167,10 @@ var searchData=
['profile_5ftabs',['profile_tabs',['../conversation_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273',1,'conversation.php']]],
['profiler',['profiler',['../text_8php.html#a8b0a799341b1fc4cba2c3ede3e3fc9b6',1,'text.php']]],
['profiles_2ephp',['profiles.php',['../profiles_8php.html',1,'']]],
- ['profiles_5faside',['profiles_aside',['../profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c',1,'profiles.php']]],
['profiles_5fcontent',['profiles_content',['../profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00',1,'profiles.php']]],
['profiles_5finit',['profiles_init',['../profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e',1,'profiles.php']]],
['profiles_5fpost',['profiles_post',['../profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04',1,'profiles.php']]],
['profperm_2ephp',['profperm.php',['../profperm_8php.html',1,'']]],
- ['profperm_5faside',['profperm_aside',['../profperm_8php.html#a77fd398ae7c25142e1d9ad724ec347cc',1,'profperm.php']]],
['profperm_5fcontent',['profperm_content',['../profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023',1,'profperm.php']]],
['profperm_5finit',['profperm_init',['../profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6',1,'profperm.php']]],
['protect_5fsprintf',['protect_sprintf',['../text_8php.html#a4e7698aca48982512594b274543c3b9b',1,'text.php']]],
diff --git a/doc/html/search/all_71.js b/doc/html/search/all_71.js
index 9a1ee9bc1..c1c1f6ba7 100644
--- a/doc/html/search/all_71.js
+++ b/doc/html/search/all_71.js
@@ -2,8 +2,6 @@ var searchData=
[
['q',['q',['../classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555',1,'dba_driver\q()'],['../classdba__mysql.html#ac3fd60c278f400907322dac578754a99',1,'dba_mysql\q()'],['../classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec',1,'dba_mysqli\q()'],['../dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f',1,'q():&#160;dba_driver.php']]],
['qp',['qp',['../text_8php.html#afc998d2796a6b2a08e96f7cc061e7221',1,'text.php']]],
- ['qsearch_2ephp',['qsearch.php',['../qsearch_8php.html',1,'']]],
- ['qsearch_5finit',['qsearch_init',['../qsearch_8php.html#a0501887b95bd8fa21018b2936a668894',1,'qsearch.php']]],
['queue_2ephp',['queue.php',['../queue_8php.html',1,'']]],
['queue_5ffn_2ephp',['queue_fn.php',['../queue__fn_8php.html',1,'']]],
['queue_5frun',['queue_run',['../queue_8php.html#af8c93de86d866c3200174c8450a0f341',1,'queue.php']]],
diff --git a/doc/html/search/all_72.js b/doc/html/search/all_72.js
index 356f98561..376618126 100644
--- a/doc/html/search/all_72.js
+++ b/doc/html/search/all_72.js
@@ -12,7 +12,10 @@ var searchData=
['readme_2emd',['README.md',['../blogga_2php_2README_8md.html',1,'']]],
['rebuild_5ftheme_5ftable',['rebuild_theme_table',['../admin_8php.html#ae46311a3fefc21abc838a26e91789de6',1,'admin.php']]],
['red_5fcomment',['red_comment',['../post__to__red_8php.html#a085c250d4ceff5e4f10052f3d2039823',1,'post_to_red.php']]],
+ ['red_5fescape_5fcodeblock',['red_escape_codeblock',['../items_8php.html#a49905ea75adfe8a2d110be344d18d6a6',1,'items.php']]],
+ ['red_5fescape_5fzrl_5fcallback',['red_escape_zrl_callback',['../items_8php.html#a83a349062945d585edb4b3c5d763ab6e',1,'items.php']]],
['red_5fplatform',['RED_PLATFORM',['../boot_8php.html#a96ad56755a21e1361dbd7bf93c9e7ff4',1,'boot.php']]],
+ ['red_5funescape_5fcodeblock',['red_unescape_codeblock',['../items_8php.html#ad4ee16e3ff1eaf60428c61f82ba25e6a',1,'items.php']]],
['red_5fversion',['RED_VERSION',['../boot_8php.html#a21cc29e0025943e7c28ff58cb4856ac3',1,'boot.php']]],
['red_5fxmlrpc_5fmethods',['red_xmlrpc_methods',['../post__to__red_8php.html#a3a2af6ad845239f26e86fccabf8639e1',1,'post_to_red.php']]],
['red_5fzrl_5fcallback',['red_zrl_callback',['../items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b',1,'items.php']]],
@@ -20,12 +23,13 @@ var searchData=
['redbasic_5fform',['redbasic_form',['../view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793',1,'config.php']]],
['redbasic_5finit',['redbasic_init',['../redbasic_2php_2theme_8php.html#af6eb813e9fc7e2d76ac1b82bc5c0ed9b',1,'theme.php']]],
['redbasicauth',['RedBasicAuth',['../classRedBasicAuth.html',1,'']]],
+ ['redbrowser',['RedBrowser',['../classRedBrowser.html',1,'']]],
+ ['redchannellist',['RedChannelList',['../reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66',1,'reddav.php']]],
+ ['redcollectiondata',['RedCollectionData',['../reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266',1,'reddav.php']]],
['reddav_2ephp',['reddav.php',['../reddav_8php.html',1,'']]],
['reddirectory',['RedDirectory',['../classRedDirectory.html',1,'']]],
['redfile',['RedFile',['../classRedFile.html',1,'']]],
- ['redinode',['RedInode',['../classRedInode.html',1,'']]],
- ['redir_2ephp',['redir.php',['../redir_8php.html',1,'']]],
- ['redir_5finit',['redir_init',['../redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5',1,'redir.php']]],
+ ['redfiledata',['RedFileData',['../reddav_8php.html#a9f531641dfb4e43cd88ac1a9ae7e2088',1,'reddav.php']]],
['reduce',['reduce',['../docblox__errorchecker_8php.html#ae9562cf60aa693114603d27b55d2185f',1,'docblox_errorchecker.php']]],
['ref_5fsession_5fclose',['ref_session_close',['../session_8php.html#a5e1c616e02b863d5450317d101366bb7',1,'session.php']]],
['ref_5fsession_5fdestroy',['ref_session_destroy',['../session_8php.html#af230b86bfff7db66c3bdd7e0bbc24052',1,'session.php']]],
@@ -47,6 +51,7 @@ var searchData=
['relative_5fdate',['relative_date',['../datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82',1,'datetime.php']]],
['reload_5fplugins',['reload_plugins',['../plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025',1,'plugin.php']]],
['reltoabs',['reltoabs',['../text_8php.html#ad855a32bee22c3f3b9734e3a334b96f2',1,'text.php']]],
+ ['remote_5fonline_5fstatus',['remote_online_status',['../identity_8php.html#a47d6f53216f23a3484061793bef29854',1,'identity.php']]],
['remote_5fuser',['remote_user',['../boot_8php.html#a5542c5c2806ab8bca04bad53d47b5209',1,'boot.php']]],
['remove_5fall_5fxchan_5fresources',['remove_all_xchan_resources',['../Contact_8php.html#acc12cda999c88c4d6185cca967c15125',1,'Contact.php']]],
['remove_5fchild',['remove_child',['../classItem.html#a2ce70ef63f9f4d86a09c351678806925',1,'Item']]],
diff --git a/doc/html/search/all_73.js b/doc/html/search/all_73.js
index d9a496489..4253ba835 100644
--- a/doc/html/search/all_73.js
+++ b/doc/html/search/all_73.js
@@ -2,20 +2,19 @@ var searchData=
[
['sanitise_5facl',['sanitise_acl',['../text_8php.html#a9fbeae13c9abd6e27cb4d8d1817f969c',1,'text.php']]],
['save',['save',['../classphoto__driver.html#a5864fae7d8389372955a8e78cec527ac',1,'photo_driver']]],
- ['saved_5fsearches',['saved_searches',['../mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad',1,'network.php']]],
['saveimage',['saveImage',['../classphoto__driver.html#a22ecb8c696de65a5a10bd185be9d90c3',1,'photo_driver']]],
['scale_5fexternal_5fimages',['scale_external_images',['../include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f',1,'network.php']]],
['scaleimage',['scaleImage',['../classphoto__driver.html#af0f7ec48a31ae9b557b6e3f8bd5b4af0',1,'photo_driver']]],
['scaleimagesquare',['scaleImageSquare',['../classphoto__driver.html#a56634842b071b96502716e9843ea5361',1,'photo_driver']]],
['scaleimageup',['scaleImageUp',['../classphoto__driver.html#a1a63c4ae17e892a115ab9cf6efb960ce',1,'photo_driver']]],
+ ['script_5fpath',['script_path',['../plugin_8php.html#a0e8c2ea50bfdbc39e17ccccaea21ddc3',1,'plugin.php']]],
['search',['search',['../text_8php.html#a876e94892867019935b348b573299352',1,'text.php']]],
['search_2ephp',['search.php',['../search_8php.html',1,'']]],
['search_5fac_2ephp',['search_ac.php',['../search__ac_8php.html',1,'']]],
['search_5fac_5finit',['search_ac_init',['../search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138',1,'search_ac.php']]],
['search_5fcontent',['search_content',['../search_8php.html#ab2568591359edde5b483a6cd9a24b2cc',1,'search.php']]],
['search_5finit',['search_init',['../search_8php.html#acf19fd30f07f495781ca0d7a0a08b435',1,'search.php']]],
- ['search_5fpost',['search_post',['../search_8php.html#a230ec9681ddee3b5b8b40c8d550f32f7',1,'search.php']]],
- ['search_5fsaved_5fsearches',['search_saved_searches',['../search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6',1,'search.php']]],
+ ['searchbox',['searchbox',['../text_8php.html#aae91e4d2a2c6f7a9daccd2c186ae3447',1,'text.php']]],
['security_2ephp',['security.php',['../security_8php.html',1,'']]],
['select_5ftimezone',['select_timezone',['../datetime_8php.html#a633dadba426fa2f60b25fabdb19ebc1f',1,'datetime.php']]],
['send',['send',['../classenotify.html#afbc088860f534c6c05788b48cfc262c6',1,'enotify']]],
@@ -47,13 +46,16 @@ var searchData=
['set_5fpconfig',['set_pconfig',['../include_2config_8php.html#a61591371cb18764138655d67dc817ab2',1,'config.php']]],
['set_5fperms',['set_perms',['../classApp.html#a557d7b779d8259027f4724ebf7b248dc',1,'App']]],
['set_5fprofile_5fowner',['set_profile_owner',['../classConversation.html#a8898bddc1e8990e81dab9a13a532cc93',1,'Conversation']]],
+ ['set_5ftemplate',['set_template',['../classItem.html#af1b73df9b7c4b927e26b7e243b491f42',1,'Item']]],
['set_5ftemplate_5fengine',['set_template_engine',['../classApp.html#a20d1890cc16b22ba79eeb0cbf2f719f7',1,'App']]],
['set_5fwidget',['set_widget',['../classApp.html#a123b903dfe5d3488cc68db3471d36fd2',1,'App']]],
+ ['set_5fwriteable',['set_writeable',['../classRedBrowser.html#a40fdbb9d9fe6c1243bbf135dd5b0a06f',1,'RedBrowser']]],
['set_5fxconfig',['set_xconfig',['../include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e',1,'config.php']]],
+ ['setbrowserplugin',['setBrowserPlugin',['../classRedBasicAuth.html#a358ddad4abb5aa8c1382cf49a907adbc',1,'RedBasicAuth']]],
+ ['setcurrentuser',['setCurrentUser',['../classRedBasicAuth.html#a072e8244a9a7f191b32d3db5ac94f857',1,'RedBasicAuth']]],
['setdimensions',['setDimensions',['../classphoto__driver.html#ae663867d2c4eaa2fae50d60670920143',1,'photo_driver\setDimensions()'],['../classphoto__gd.html#a1c75304bd15f3b9986f0b315fb59271e',1,'photo_gd\setDimensions()'],['../classphoto__imagick.html#af92901d252c1e6ab5b54eebedbed23bb',1,'photo_imagick\setDimensions()']]],
- ['setname',['setName',['../classRedInode.html#a3d76322f25d847b123b3df37a26dd04e',1,'RedInode']]],
+ ['setname',['setName',['../classRedFile.html#a38a82bfc1b30028ea6ac75923e90fa25',1,'RedFile']]],
['settings_2ephp',['settings.php',['../settings_8php.html',1,'']]],
- ['settings_5faside',['settings_aside',['../settings_8php.html#ae5aebccb006bee1300078576baaf5582',1,'settings.php']]],
['settings_5finit',['settings_init',['../settings_8php.html#a3a4cde287482fced008583f54ba2a722',1,'settings.php']]],
['settings_5fpost',['settings_post',['../settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586',1,'settings.php']]],
['setup_2ephp',['setup.php',['../setup_8php.html',1,'']]],
@@ -70,8 +72,8 @@ var searchData=
['siteinfo_5finit',['siteinfo_init',['../siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0',1,'siteinfo.php']]],
['sitelist_2ephp',['sitelist.php',['../sitelist_8php.html',1,'']]],
['sitelist_5finit',['sitelist_init',['../sitelist_8php.html#a665a59bf60f780b40f32c909f4a473b1',1,'sitelist.php']]],
- ['smile_5fdecode',['smile_decode',['../text_8php.html#aca0f589be74fab1a460c57e88dad9779',1,'text.php']]],
- ['smile_5fencode',['smile_encode',['../text_8php.html#a44d460fcdee6247c67b9bef3ea15f3e6',1,'text.php']]],
+ ['smile_5fshield',['smile_shield',['../text_8php.html#a10dde167249ed5abf190a7a0986878ea',1,'text.php']]],
+ ['smile_5funshield',['smile_unshield',['../text_8php.html#a273156a6f5cddc6652ad656821cd5805',1,'text.php']]],
['smilies',['smilies',['../text_8php.html#a3d225b253bb9e0f2498c11647d927b0b',1,'text.php']]],
['smilies_2ephp',['smilies.php',['../smilies_8php.html',1,'']]],
['smilies_5fcontent',['smilies_content',['../smilies_8php.html#ab43b1e9f33a700a830aff14c7b3a617f',1,'smilies.php']]],
@@ -84,9 +86,13 @@ var searchData=
['sources_2ephp',['sources.php',['../sources_8php.html',1,'']]],
['sources_5fcontent',['sources_content',['../sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7',1,'sources.php']]],
['sources_5fpost',['sources_post',['../sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e',1,'sources.php']]],
+ ['spam_2ephp',['spam.php',['../spam_8php.html',1,'']]],
['ssl_5fpolicy_5ffull',['SSL_POLICY_FULL',['../boot_8php.html#a02566ac9d891369a1d3ebb81a15722fc',1,'boot.php']]],
['ssl_5fpolicy_5fnone',['SSL_POLICY_NONE',['../boot_8php.html#af86c651547aa8f9e549ee40a09455549',1,'boot.php']]],
['ssl_5fpolicy_5fselfsign',['SSL_POLICY_SELFSIGN',['../boot_8php.html#adca48aee78465ae3064ca4432c0d87b5',1,'boot.php']]],
+ ['sslify',['sslify',['../text_8php.html#a33bdb5d4bfff2ede7caf61a98ac0a2e9',1,'text.php']]],
+ ['sslify_2ephp',['sslify.php',['../sslify_8php.html',1,'']]],
+ ['sslify_5finit',['sslify_init',['../sslify_8php.html#a75b11e54a3d1fc83e7d4c0e8b4dab316',1,'sslify.php']]],
['starred_2ephp',['starred.php',['../starred_8php.html',1,'']]],
['starred_5finit',['starred_init',['../starred_8php.html#a63024fb418c678e49fd535e3752d349a',1,'starred.php']]],
['startup',['startup',['../boot_8php.html#aca47505b8732177f52bb2d647eb2741c',1,'boot.php']]],
@@ -97,20 +103,20 @@ var searchData=
['stream_5fperms_5fapi_5fuids',['stream_perms_api_uids',['../security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809',1,'security.php']]],
['stream_5fperms_5fxchans',['stream_perms_xchans',['../security_8php.html#a15e0f8f511cc06192db63387f97238b3',1,'security.php']]],
['string_5fplural_5fselect_5fdefault',['string_plural_select_default',['../language_8php.html#a151e5b4689aef86a12642cbb7a00bfe0',1,'language.php']]],
+ ['string_5fsplitter',['string_splitter',['../spam_8php.html#a05861201147b9a538d006f0269255cf9',1,'spam.php']]],
['stringify_5farray_5felms',['stringify_array_elms',['../text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13',1,'text.php']]],
+ ['strip_5fzids',['strip_zids',['../text_8php.html#a2f2585385530cb935a6325c809d84a4d',1,'text.php']]],
['stripdcode_5fbr_5fcb',['stripdcode_br_cb',['../bb2diaspora_8php.html#a180b0e3a7d702998be19e3c3b44b0e93',1,'bb2diaspora.php']]],
- ['style_2ephp',['style.php',['../redbasic_2php_2style_8php.html',1,'']]],
['style_2ephp',['style.php',['../apw_2php_2style_8php.html',1,'']]],
+ ['style_2ephp',['style.php',['../redbasic_2php_2style_8php.html',1,'']]],
['subthread_2ephp',['subthread.php',['../subthread_8php.html',1,'']]],
['subthread_5fcontent',['subthread_content',['../subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3',1,'subthread.php']]],
['suggest_2ephp',['suggest.php',['../suggest_8php.html',1,'']]],
- ['suggest_5faside',['suggest_aside',['../suggest_8php.html#a4df91c84594d51ba56b5918de414230d',1,'suggest.php']]],
['suggest_5fcontent',['suggest_content',['../suggest_8php.html#a58748a8235d4523f8333847f3e42dd91',1,'suggest.php']]],
['suggest_5finit',['suggest_init',['../suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c',1,'suggest.php']]],
['suggestion_5fquery',['suggestion_query',['../socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329',1,'socgraph.php']]],
['supportedtypes',['supportedTypes',['../classphoto__driver.html#a6eee8e36eaf9339f4faf80ddd43162da',1,'photo_driver\supportedTypes()'],['../classphoto__gd.html#a16f3dd7d3559f715aa2fe3f7880836dd',1,'photo_gd\supportedTypes()'],['../classphoto__imagick.html#a27596faca6108d9d563674d1b654a0b7',1,'photo_imagick\supportedTypes()']]],
['sync_5fdirectories',['sync_directories',['../dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6',1,'dir_fns.php']]],
- ['syncdirs',['syncdirs',['../dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a',1,'dir_fns.php']]],
['system_5fdown',['system_down',['../system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa',1,'system_unavailable.php']]],
['system_5funavailable',['system_unavailable',['../boot_8php.html#ac608a34f3bc180e7724192e0fd31f9b0',1,'boot.php']]],
['system_5funavailable_2ephp',['system_unavailable.php',['../system__unavailable_8php.html',1,'']]]
diff --git a/doc/html/search/all_74.js b/doc/html/search/all_74.js
index a93bf7ab4..c61b08f93 100644
--- a/doc/html/search/all_74.js
+++ b/doc/html/search/all_74.js
@@ -16,6 +16,7 @@ var searchData=
['template_5fescape',['template_escape',['../template__processor_8php.html#ab2bcd8738f20f293636a6ae8e1099db5',1,'template_processor.php']]],
['template_5fprocessor_2ephp',['template_processor.php',['../template__processor_8php.html',1,'']]],
['template_5funescape',['template_unescape',['../template__processor_8php.html#ac635bb19a5f6eadd6b0cddefdd537c1e',1,'template_processor.php']]],
+ ['term_5fbookmark',['TERM_BOOKMARK',['../boot_8php.html#a115faf8797718c3165498abbd6895843',1,'boot.php']]],
['term_5fcategory',['TERM_CATEGORY',['../boot_8php.html#af33d1b2e98a1e21af672005525d46dfe',1,'boot.php']]],
['term_5ffile',['TERM_FILE',['../boot_8php.html#afb97615e985a013799839b68b99018d7',1,'boot.php']]],
['term_5fhashtag',['TERM_HASHTAG',['../boot_8php.html#a2750985ec445617d7e82ae3098c91e3f',1,'boot.php']]],
@@ -63,6 +64,8 @@ var searchData=
['tpldebug_2ephp',['tpldebug.php',['../tpldebug_8php.html',1,'']]],
['tplpaths',['tplpaths',['../namespaceupdatetpl.html#a52a85ffa6b6d63d840b185a133478c12',1,'updatetpl']]],
['tryoembed',['tryoembed',['../bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7',1,'bbcode.php']]],
+ ['tryzrlaudio',['tryzrlaudio',['../bbcode_8php.html#a39de4de32a9456d1ca914d0dc52bd322',1,'bbcode.php']]],
+ ['tryzrlvideo',['tryzrlvideo',['../bbcode_8php.html#aa92f119341f4c69dcef2768a013079b8',1,'bbcode.php']]],
['tt',['tt',['../language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d',1,'language.php']]],
['typo_2ephp',['typo.php',['../typo_8php.html',1,'']]],
['typohelper_2ephp',['typohelper.php',['../typohelper_8php.html',1,'']]]
diff --git a/doc/html/search/all_75.js b/doc/html/search/all_75.js
index aa361492f..25d8a1213 100644
--- a/doc/html/search/all_75.js
+++ b/doc/html/search/all_75.js
@@ -25,6 +25,7 @@ var searchData=
['update_5fnetwork_2ephp',['update_network.php',['../update__network_8php.html',1,'']]],
['update_5fnetwork_5fcontent',['update_network_content',['../update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41',1,'update_network.php']]],
['update_5fqueue_5ftime',['update_queue_time',['../queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1',1,'queue_fn.php']]],
+ ['update_5fremote_5fid',['update_remote_id',['../items_8php.html#a2baa9e05f1e8aa3dd61c85803ae39bd6',1,'items.php']]],
['update_5fsearch_2ephp',['update_search.php',['../update__search_8php.html',1,'']]],
['update_5fsearch_5fcontent',['update_search_content',['../update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52',1,'update_search.php']]],
['update_5fsuccess',['UPDATE_SUCCESS',['../boot_8php.html#ac86615ddc0763a00f5311c90e991730c',1,'boot.php']]],
diff --git a/doc/html/search/all_76.js b/doc/html/search/all_76.js
index 84866ad49..13376a70b 100644
--- a/doc/html/search/all_76.js
+++ b/doc/html/search/all_76.js
@@ -10,7 +10,6 @@ var searchData=
['view_2ephp',['view.php',['../view_8php.html',1,'']]],
['view_5finit',['view_init',['../view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e',1,'view.php']]],
['viewconnections_2ephp',['viewconnections.php',['../viewconnections_8php.html',1,'']]],
- ['viewconnections_5faside',['viewconnections_aside',['../viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6',1,'viewconnections.php']]],
['viewconnections_5fcontent',['viewconnections_content',['../viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776',1,'viewconnections.php']]],
['viewconnections_5finit',['viewconnections_init',['../viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330',1,'viewconnections.php']]],
['viewsrc_2ephp',['viewsrc.php',['../viewsrc_8php.html',1,'']]],
diff --git a/doc/html/search/all_77.js b/doc/html/search/all_77.js
index 3223b0d56..2f2a98361 100644
--- a/doc/html/search/all_77.js
+++ b/doc/html/search/all_77.js
@@ -15,8 +15,30 @@ var searchData=
['what_5fnext',['what_next',['../setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58',1,'setup.php']]],
['while',['while',['../docblox__errorchecker_8php.html#af4ca738a05beffe9c8c23e1f7aea3c2d',1,'docblox_errorchecker.php']]],
['widedarkness_2ephp',['widedarkness.php',['../widedarkness_8php.html',1,'']]],
+ ['widget_5faffinity',['widget_affinity',['../widgets_8php.html#add9b24d3304e529a7975e96122315554',1,'widgets.php']]],
+ ['widget_5farchive',['widget_archive',['../widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65',1,'widgets.php']]],
+ ['widget_5fcategories',['widget_categories',['../widgets_8php.html#af37fdad3b2e861d860a4a8c4d8a76c0b',1,'widgets.php']]],
+ ['widget_5fchatroom_5flist',['widget_chatroom_list',['../widgets_8php.html#a47c72aac42058ea086c9ef8651c259da',1,'widgets.php']]],
+ ['widget_5fcollections',['widget_collections',['../widgets_8php.html#aa189a07241246d97efbee29f1c6a6f7f',1,'widgets.php']]],
+ ['widget_5fdesign_5ftools',['widget_design_tools',['../widgets_8php.html#a145ff35319cfa47a9cc07f9425bd674b',1,'widgets.php']]],
+ ['widget_5fdirsafemode',['widget_dirsafemode',['../widgets_8php.html#a268b01ce1ab8fe2cb346cb769b9d1091',1,'widgets.php']]],
+ ['widget_5fdirsort',['widget_dirsort',['../widgets_8php.html#a95c06bc9be133e89768746302d2ac395',1,'widgets.php']]],
+ ['widget_5fdirtags',['widget_dirtags',['../widgets_8php.html#a08035db02ff6a23260146b4c64153422',1,'widgets.php']]],
+ ['widget_5ffiler',['widget_filer',['../widgets_8php.html#a5ab3b64496e02cab56429978ad55f1c0',1,'widgets.php']]],
+ ['widget_5ffindpeople',['widget_findpeople',['../widgets_8php.html#ade630b19fb4c622b7b2f6f8ef89eefa2',1,'widgets.php']]],
+ ['widget_5ffollow',['widget_follow',['../widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd',1,'widgets.php']]],
+ ['widget_5ffullprofile',['widget_fullprofile',['../widgets_8php.html#a70442dfa079312d9d5e5ee01be51a165',1,'widgets.php']]],
+ ['widget_5fmailmenu',['widget_mailmenu',['../widgets_8php.html#afa2e55a78f95667a6da082efac7fec74',1,'widgets.php']]],
+ ['widget_5fmenu_5fpreview',['widget_menu_preview',['../widgets_8php.html#a3bdfb81bf9a8ddf219924fa7eaf22013',1,'widgets.php']]],
+ ['widget_5fnotes',['widget_notes',['../widgets_8php.html#a45ea061dabe9a8372e4ca3b9e5714256',1,'widgets.php']]],
+ ['widget_5fphoto_5falbums',['widget_photo_albums',['../widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e',1,'widgets.php']]],
['widget_5fprofile',['widget_profile',['../widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923',1,'widgets.php']]],
+ ['widget_5fsavedsearch',['widget_savedsearch',['../widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8',1,'widgets.php']]],
+ ['widget_5fsettings_5fmenu',['widget_settings_menu',['../widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01',1,'widgets.php']]],
+ ['widget_5fsuggestions',['widget_suggestions',['../widgets_8php.html#a0d404276fedc59f5038cf5c085028326',1,'widgets.php']]],
['widget_5ftagcloud',['widget_tagcloud',['../widgets_8php.html#a6dbc227aac750774284ee39c45f0a200',1,'widgets.php']]],
+ ['widget_5ftagcloud_5fwall',['widget_tagcloud_wall',['../widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653',1,'widgets.php']]],
+ ['widget_5fvcard',['widget_vcard',['../widgets_8php.html#abe03366fd22fd27d683518fa0765da50',1,'widgets.php']]],
['widgets_2ephp',['widgets.php',['../widgets_8php.html',1,'']]],
['writepages_5fwidget',['writepages_widget',['../page__widgets_8php.html#a1a1e729da27f252cab6678288a17958f',1,'page_widgets.php']]]
];
diff --git a/doc/html/search/all_78.js b/doc/html/search/all_78.js
index b001e9752..c3fc54170 100644
--- a/doc/html/search/all_78.js
+++ b/doc/html/search/all_78.js
@@ -6,8 +6,10 @@ var searchData=
['xchan_5fflags_5fcensored',['XCHAN_FLAGS_CENSORED',['../boot_8php.html#accd6f36cc9f40225cbd720e4d12a7c6e',1,'boot.php']]],
['xchan_5fflags_5fdeleted',['XCHAN_FLAGS_DELETED',['../boot_8php.html#a9ea1290e00c6d40684892047f2c778a9',1,'boot.php']]],
['xchan_5fflags_5fhidden',['XCHAN_FLAGS_HIDDEN',['../boot_8php.html#a1af3ed96de14aa0d7891b39cc75b60f2',1,'boot.php']]],
+ ['xchan_5fflags_5fnormal',['XCHAN_FLAGS_NORMAL',['../boot_8php.html#a8fdcc4ffb365a3267bd02ce8a8d466d6',1,'boot.php']]],
['xchan_5fflags_5forphan',['XCHAN_FLAGS_ORPHAN',['../boot_8php.html#a1c923b99bf77e4203ae94e5684b6ad0f',1,'boot.php']]],
['xchan_5fflags_5fselfcensored',['XCHAN_FLAGS_SELFCENSORED',['../boot_8php.html#a5a681a672e007cdc22b43345d71f07c6',1,'boot.php']]],
+ ['xchan_5fflags_5fsystem',['XCHAN_FLAGS_SYSTEM',['../boot_8php.html#afef254290febac854c85fc698d9483a6',1,'boot.php']]],
['xchan_5fmail_5fquery',['xchan_mail_query',['../text_8php.html#a543447c5ed766535221e2d9636b379ee',1,'text.php']]],
['xchan_5fquery',['xchan_query',['../text_8php.html#a36a2e5d418ee81140f25c4233cfecd1f',1,'text.php']]],
['xml2array',['xml2array',['../include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff',1,'network.php']]],
@@ -15,5 +17,7 @@ var searchData=
['xmlify',['xmlify',['../text_8php.html#aaed4413ed8918838b517e3b2fafaea0d',1,'text.php']]],
['xpost_5fto_5fhtml2bbcode',['xpost_to_html2bbcode',['../post__to__red_8php.html#af2713018a2dc97e88f121fc6215beb66',1,'post_to_red.php']]],
['xrd_2ephp',['xrd.php',['../xrd_8php.html',1,'']]],
- ['xrd_5finit',['xrd_init',['../xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270',1,'xrd.php']]]
+ ['xrd_5finit',['xrd_init',['../xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270',1,'xrd.php']]],
+ ['xref_2ephp',['xref.php',['../xref_8php.html',1,'']]],
+ ['xref_5finit',['xref_init',['../xref_8php.html#a9bee399213b8de8226b0d60834307473',1,'xref.php']]]
];
diff --git a/doc/html/search/all_7a.js b/doc/html/search/all_7a.js
index a5c681623..b003d4edf 100644
--- a/doc/html/search/all_7a.js
+++ b/doc/html/search/all_7a.js
@@ -26,7 +26,7 @@ var searchData=
['zot_5fimport',['zot_import',['../zot_8php.html#aeea071f17e306fe3d0c488551906bfab',1,'zot.php']]],
['zot_5fnew_5fuid',['zot_new_uid',['../zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7',1,'zot.php']]],
['zot_5fprocess_5fresponse',['zot_process_response',['../zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03',1,'zot.php']]],
- ['zot_5frefresh',['zot_refresh',['../zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d',1,'zot.php']]],
+ ['zot_5frefresh',['zot_refresh',['../zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c',1,'zot.php']]],
['zot_5fregister_5fhub',['zot_register_hub',['../zot_8php.html#a5bcdfef419b16075a0eca990956223dc',1,'zot.php']]],
['zot_5frevision',['ZOT_REVISION',['../boot_8php.html#a36b31575f992a10b5927b76efba9362e',1,'boot.php']]],
['zot_5fzot',['zot_zot',['../zot_8php.html#ab3e9b99ddb11353f37f265a05bb42142',1,'zot.php']]],
diff --git a/doc/html/search/classes_72.js b/doc/html/search/classes_72.js
index 2e6d22e86..7196e9f30 100644
--- a/doc/html/search/classes_72.js
+++ b/doc/html/search/classes_72.js
@@ -1,7 +1,7 @@
var searchData=
[
['redbasicauth',['RedBasicAuth',['../classRedBasicAuth.html',1,'']]],
+ ['redbrowser',['RedBrowser',['../classRedBrowser.html',1,'']]],
['reddirectory',['RedDirectory',['../classRedDirectory.html',1,'']]],
- ['redfile',['RedFile',['../classRedFile.html',1,'']]],
- ['redinode',['RedInode',['../classRedInode.html',1,'']]]
+ ['redfile',['RedFile',['../classRedFile.html',1,'']]]
];
diff --git a/doc/html/search/files_61.js b/doc/html/search/files_61.js
index 6ad1b427b..9d8a93b78 100644
--- a/doc/html/search/files_61.js
+++ b/doc/html/search/files_61.js
@@ -1,15 +1,15 @@
var searchData=
[
['account_2ephp',['account.php',['../account_8php.html',1,'']]],
+ ['achievements_2ephp',['achievements.php',['../achievements_8php.html',1,'']]],
['acl_2ephp',['acl.php',['../acl_8php.html',1,'']]],
['acl_5fselectors_2ephp',['acl_selectors.php',['../acl__selectors_8php.html',1,'']]],
['activities_2ephp',['activities.php',['../activities_8php.html',1,'']]],
['admin_2ephp',['admin.php',['../admin_8php.html',1,'']]],
- ['allfriends_2ephp',['allfriends.php',['../allfriends_8php.html',1,'']]],
['api_2ephp',['api.php',['../mod_2api_8php.html',1,'']]],
['api_2ephp',['api.php',['../include_2api_8php.html',1,'']]],
['apps_2ephp',['apps.php',['../apps_8php.html',1,'']]],
- ['attach_2ephp',['attach.php',['../mod_2attach_8php.html',1,'']]],
['attach_2ephp',['attach.php',['../include_2attach_8php.html',1,'']]],
+ ['attach_2ephp',['attach.php',['../mod_2attach_8php.html',1,'']]],
['auth_2ephp',['auth.php',['../auth_8php.html',1,'']]]
];
diff --git a/doc/html/search/files_62.js b/doc/html/search/files_62.js
index 693ae9abd..69f28de1d 100644
--- a/doc/html/search/files_62.js
+++ b/doc/html/search/files_62.js
@@ -4,5 +4,7 @@ var searchData=
['bb2diaspora_2ephp',['bb2diaspora.php',['../bb2diaspora_8php.html',1,'']]],
['bbcode_2ephp',['bbcode.php',['../bbcode_8php.html',1,'']]],
['blocks_2ephp',['blocks.php',['../blocks_8php.html',1,'']]],
+ ['bookmarks_2ephp',['bookmarks.php',['../mod_2bookmarks_8php.html',1,'']]],
+ ['bookmarks_2ephp',['bookmarks.php',['../include_2bookmarks_8php.html',1,'']]],
['boot_2ephp',['boot.php',['../boot_8php.html',1,'']]]
];
diff --git a/doc/html/search/files_63.js b/doc/html/search/files_63.js
index 531b158b2..26f023b9a 100644
--- a/doc/html/search/files_63.js
+++ b/doc/html/search/files_63.js
@@ -5,6 +5,9 @@ var searchData=
['chanman_2ephp',['chanman.php',['../include_2chanman_8php.html',1,'']]],
['channel_2ephp',['channel.php',['../channel_8php.html',1,'']]],
['chanview_2ephp',['chanview.php',['../chanview_8php.html',1,'']]],
+ ['chat_2ephp',['chat.php',['../mod_2chat_8php.html',1,'']]],
+ ['chat_2ephp',['chat.php',['../include_2chat_8php.html',1,'']]],
+ ['chatsvc_2ephp',['chatsvc.php',['../chatsvc_8php.html',1,'']]],
['cli_5fstartup_2ephp',['cli_startup.php',['../cli__startup_8php.html',1,'']]],
['cli_5fsuggest_2ephp',['cli_suggest.php',['../cli__suggest_8php.html',1,'']]],
['cloud_2ephp',['cloud.php',['../cloud_8php.html',1,'']]],
@@ -12,20 +15,20 @@ var searchData=
['common_2ephp',['common.php',['../common_8php.html',1,'']]],
['community_2ephp',['community.php',['../community_8php.html',1,'']]],
['config_2emd',['config.md',['../config_8md.html',1,'']]],
+ ['config_2ephp',['config.php',['../view_2theme_2apw_2php_2config_8php.html',1,'']]],
['config_2ephp',['config.php',['../view_2theme_2blogga_2view_2theme_2blog_2config_8php.html',1,'']]],
['config_2ephp',['config.php',['../view_2theme_2redbasic_2php_2config_8php.html',1,'']]],
['config_2ephp',['config.php',['../include_2config_8php.html',1,'']]],
- ['config_2ephp',['config.php',['../view_2theme_2apw_2php_2config_8php.html',1,'']]],
['config_2ephp',['config.php',['../view_2theme_2blogga_2php_2config_8php.html',1,'']]],
['connect_2ephp',['connect.php',['../connect_8php.html',1,'']]],
['connections_2ephp',['connections.php',['../connections_8php.html',1,'']]],
+ ['connedit_2ephp',['connedit.php',['../connedit_8php.html',1,'']]],
['contact_2ephp',['Contact.php',['../Contact_8php.html',1,'']]],
['contact_5fselectors_2ephp',['contact_selectors.php',['../contact__selectors_8php.html',1,'']]],
['contact_5fwidgets_2ephp',['contact_widgets.php',['../contact__widgets_8php.html',1,'']]],
['contactgroup_2ephp',['contactgroup.php',['../contactgroup_8php.html',1,'']]],
['conversation_2ephp',['conversation.php',['../conversation_8php.html',1,'']]],
['conversationobject_2ephp',['ConversationObject.php',['../ConversationObject_8php.html',1,'']]],
- ['crepair_2ephp',['crepair.php',['../crepair_8php.html',1,'']]],
['cronhooks_2ephp',['cronhooks.php',['../cronhooks_8php.html',1,'']]],
['crypto_2ephp',['crypto.php',['../crypto_8php.html',1,'']]]
];
diff --git a/doc/html/search/files_64.js b/doc/html/search/files_64.js
index 7829f65a6..9d13417b9 100644
--- a/doc/html/search/files_64.js
+++ b/doc/html/search/files_64.js
@@ -17,6 +17,7 @@ var searchData=
['dir_5ffns_2ephp',['dir_fns.php',['../dir__fns_8php.html',1,'']]],
['directory_2ephp',['directory.php',['../mod_2directory_8php.html',1,'']]],
['directory_2ephp',['directory.php',['../include_2directory_8php.html',1,'']]],
+ ['dirprofile_2ephp',['dirprofile.php',['../dirprofile_8php.html',1,'']]],
['dirsearch_2ephp',['dirsearch.php',['../dirsearch_8php.html',1,'']]],
['display_2ephp',['display.php',['../display_8php.html',1,'']]],
['docblox_5ferrorchecker_2ephp',['docblox_errorchecker.php',['../docblox__errorchecker_8php.html',1,'']]]
diff --git a/doc/html/search/files_68.js b/doc/html/search/files_68.js
index 4377d15af..533921876 100644
--- a/doc/html/search/files_68.js
+++ b/doc/html/search/files_68.js
@@ -1,6 +1,5 @@
var searchData=
[
- ['hcard_2ephp',['hcard.php',['../hcard_8php.html',1,'']]],
['help_2ephp',['help.php',['../help_8php.html',1,'']]],
['home_2ephp',['home.php',['../home_8php.html',1,'']]],
['hostxrd_2ephp',['hostxrd.php',['../hostxrd_8php.html',1,'']]],
diff --git a/doc/html/search/files_69.js b/doc/html/search/files_69.js
index 1ac9204d9..a08e0c1d4 100644
--- a/doc/html/search/files_69.js
+++ b/doc/html/search/files_69.js
@@ -2,7 +2,6 @@ var searchData=
[
['identity_2ephp',['identity.php',['../identity_8php.html',1,'']]],
['import_2ephp',['import.php',['../import_8php.html',1,'']]],
- ['intro_2ephp',['intro.php',['../intro_8php.html',1,'']]],
['invite_2ephp',['invite.php',['../invite_8php.html',1,'']]],
['item_2ephp',['item.php',['../item_8php.html',1,'']]],
['itemobject_2ephp',['ItemObject.php',['../ItemObject_8php.html',1,'']]],
diff --git a/doc/html/search/files_6c.js b/doc/html/search/files_6c.js
index 663f102d3..ffcd040c5 100644
--- a/doc/html/search/files_6c.js
+++ b/doc/html/search/files_6c.js
@@ -1,7 +1,6 @@
var searchData=
[
['language_2ephp',['language.php',['../language_8php.html',1,'']]],
- ['lastpost_2ephp',['lastpost.php',['../lastpost_8php.html',1,'']]],
['layouts_2ephp',['layouts.php',['../layouts_8php.html',1,'']]],
['like_2ephp',['like.php',['../like_8php.html',1,'']]],
['lockview_2ephp',['lockview.php',['../lockview_8php.html',1,'']]],
diff --git a/doc/html/search/files_6d.js b/doc/html/search/files_6d.js
index 25d3ea66a..7176d95a6 100644
--- a/doc/html/search/files_6d.js
+++ b/doc/html/search/files_6d.js
@@ -1,18 +1,18 @@
var searchData=
[
['magic_2ephp',['magic.php',['../magic_8php.html',1,'']]],
+ ['mail_2ephp',['mail.php',['../mail_8php.html',1,'']]],
['manage_2ephp',['manage.php',['../manage_8php.html',1,'']]],
['match_2ephp',['match.php',['../match_8php.html',1,'']]],
['menu_2ephp',['menu.php',['../mod_2menu_8php.html',1,'']]],
['menu_2ephp',['menu.php',['../include_2menu_8php.html',1,'']]],
- ['message_2ephp',['message.php',['../mod_2message_8php.html',1,'']]],
['message_2ephp',['message.php',['../include_2message_8php.html',1,'']]],
+ ['message_2ephp',['message.php',['../mod_2message_8php.html',1,'']]],
['minimal_2ephp',['minimal.php',['../minimal_8php.html',1,'']]],
['minimalisticdarkness_2ephp',['minimalisticdarkness.php',['../minimalisticdarkness_8php.html',1,'']]],
['mitem_2ephp',['mitem.php',['../mitem_8php.html',1,'']]],
+ ['mod_5ffilestorage_2ephp',['mod_filestorage.php',['../mod__filestorage_8php.html',1,'']]],
['mod_5fimport_2ephp',['mod_import.php',['../mod__import_8php.html',1,'']]],
- ['mod_5fnew_5fchannel_2ephp',['mod_new_channel.php',['../mod__new__channel_8php.html',1,'']]],
- ['mod_5fregister_2ephp',['mod_register.php',['../mod__register_8php.html',1,'']]],
['mood_2ephp',['mood.php',['../mood_8php.html',1,'']]],
['msearch_2ephp',['msearch.php',['../msearch_8php.html',1,'']]]
];
diff --git a/doc/html/search/files_6e.js b/doc/html/search/files_6e.js
index 0aa61f5c1..a1f47a39a 100644
--- a/doc/html/search/files_6e.js
+++ b/doc/html/search/files_6e.js
@@ -5,8 +5,10 @@ var searchData=
['network_2ephp',['network.php',['../mod_2network_8php.html',1,'']]],
['new_5fchannel_2ephp',['new_channel.php',['../new__channel_8php.html',1,'']]],
['none_2ephp',['none.php',['../none_8php.html',1,'']]],
+ ['notes_2ephp',['notes.php',['../notes_8php.html',1,'']]],
['notifications_2ephp',['notifications.php',['../notifications_8php.html',1,'']]],
['notifier_2ephp',['notifier.php',['../notifier_8php.html',1,'']]],
+ ['notify_2ephp',['notify.php',['../mod_2notify_8php.html',1,'']]],
['notify_2ephp',['notify.php',['../include_2notify_8php.html',1,'']]],
- ['notify_2ephp',['notify.php',['../mod_2notify_8php.html',1,'']]]
+ ['notred_2ephp',['notred.php',['../notred_8php.html',1,'']]]
];
diff --git a/doc/html/search/files_6f.js b/doc/html/search/files_6f.js
index 2cc921a73..28bf1071e 100644
--- a/doc/html/search/files_6f.js
+++ b/doc/html/search/files_6f.js
@@ -7,5 +7,7 @@ var searchData=
['olddefault_2ephp',['olddefault.php',['../olddefault_8php.html',1,'']]],
['onedirsync_2ephp',['onedirsync.php',['../onedirsync_8php.html',1,'']]],
['onepoll_2ephp',['onepoll.php',['../onepoll_8php.html',1,'']]],
+ ['online_2ephp',['online.php',['../online_8php.html',1,'']]],
+ ['openid_2ephp',['openid.php',['../openid_8php.html',1,'']]],
['opensearch_2ephp',['opensearch.php',['../opensearch_8php.html',1,'']]]
];
diff --git a/doc/html/search/files_71.js b/doc/html/search/files_71.js
index 1da0b5b3f..6a4d7ec81 100644
--- a/doc/html/search/files_71.js
+++ b/doc/html/search/files_71.js
@@ -1,6 +1,5 @@
var searchData=
[
- ['qsearch_2ephp',['qsearch.php',['../qsearch_8php.html',1,'']]],
['queue_2ephp',['queue.php',['../queue_8php.html',1,'']]],
['queue_5ffn_2ephp',['queue_fn.php',['../queue__fn_8php.html',1,'']]]
];
diff --git a/doc/html/search/files_72.js b/doc/html/search/files_72.js
index 00e4c63ae..e6734d438 100644
--- a/doc/html/search/files_72.js
+++ b/doc/html/search/files_72.js
@@ -5,7 +5,6 @@ var searchData=
['readme_2emd',['README.md',['../blogga_2php_2README_8md.html',1,'']]],
['redbasic_2ephp',['redbasic.php',['../redbasic_8php.html',1,'']]],
['reddav_2ephp',['reddav.php',['../reddav_8php.html',1,'']]],
- ['redir_2ephp',['redir.php',['../redir_8php.html',1,'']]],
['register_2ephp',['register.php',['../register_8php.html',1,'']]],
['regmod_2ephp',['regmod.php',['../regmod_8php.html',1,'']]],
['removeme_2ephp',['removeme.php',['../removeme_8php.html',1,'']]],
diff --git a/doc/html/search/files_73.js b/doc/html/search/files_73.js
index 3ea04e15e..8bf6bc0d3 100644
--- a/doc/html/search/files_73.js
+++ b/doc/html/search/files_73.js
@@ -12,6 +12,8 @@ var searchData=
['smilies_2ephp',['smilies.php',['../smilies_8php.html',1,'']]],
['socgraph_2ephp',['socgraph.php',['../socgraph_8php.html',1,'']]],
['sources_2ephp',['sources.php',['../sources_8php.html',1,'']]],
+ ['spam_2ephp',['spam.php',['../spam_8php.html',1,'']]],
+ ['sslify_2ephp',['sslify.php',['../sslify_8php.html',1,'']]],
['starred_2ephp',['starred.php',['../starred_8php.html',1,'']]],
['style_2ephp',['style.php',['../apw_2php_2style_8php.html',1,'']]],
['style_2ephp',['style.php',['../redbasic_2php_2style_8php.html',1,'']]],
diff --git a/doc/html/search/files_78.js b/doc/html/search/files_78.js
index cd29e0cce..e725086d3 100644
--- a/doc/html/search/files_78.js
+++ b/doc/html/search/files_78.js
@@ -1,5 +1,6 @@
var searchData=
[
['xchan_2ephp',['xchan.php',['../xchan_8php.html',1,'']]],
- ['xrd_2ephp',['xrd.php',['../xrd_8php.html',1,'']]]
+ ['xrd_2ephp',['xrd.php',['../xrd_8php.html',1,'']]],
+ ['xref_2ephp',['xref.php',['../xref_8php.html',1,'']]]
];
diff --git a/doc/html/search/functions_5f.js b/doc/html/search/functions_5f.js
index ada7b7fbb..8921ecf12 100644
--- a/doc/html/search/functions_5f.js
+++ b/doc/html/search/functions_5f.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['_5f_5fconstruct',['__construct',['../classApp.html#af6d39f63fb7116bbeb04e51696f99474',1,'App\__construct()'],['../classConversation.html#af84ea6ccd72214c9bb4c504461cc8b09',1,'Conversation\__construct()'],['../classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186',1,'dba_driver\__construct()'],['../classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6',1,'FriendicaSmarty\__construct()'],['../classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6',1,'FriendicaSmartyEngine\__construct()'],['../classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2',1,'Item\__construct()'],['../classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6',1,'FKOAuth1\__construct()'],['../classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae',1,'photo_driver\__construct()'],['../classRedInode.html#a21a6f92921c037c868e6fae30c7c51bb',1,'RedInode\__construct()'],['../classRedDirectory.html#add0bf2c049230fec4913e769d126e6e6',1,'RedDirectory\__construct()'],['../classRedFile.html#ad4588b90004a2741b1a4ced10355904c',1,'RedFile\__construct()']]],
+ ['_5f_5fconstruct',['__construct',['../classApp.html#af6d39f63fb7116bbeb04e51696f99474',1,'App\__construct()'],['../classConversation.html#af84ea6ccd72214c9bb4c504461cc8b09',1,'Conversation\__construct()'],['../classdba__driver.html#af3541d13ccb7a3eddfc03e253c746186',1,'dba_driver\__construct()'],['../classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6',1,'FriendicaSmarty\__construct()'],['../classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6',1,'FriendicaSmartyEngine\__construct()'],['../classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2',1,'Item\__construct()'],['../classFKOAuth1.html#a2f1276872329a6f0b704ccda1a4b9fa6',1,'FKOAuth1\__construct()'],['../classphoto__driver.html#ac6e85f8e507cab4e755ed7acdec401ae',1,'photo_driver\__construct()'],['../classRedDirectory.html#a1e35e3cd31d2a15250655e4cafdea180',1,'RedDirectory\__construct()'],['../classRedFile.html#a9a67bdb34c9db6ce144b3f371148b183',1,'RedFile\__construct()'],['../classRedBrowser.html#a4b76be9ccef0262cf78fffb4129eda93',1,'RedBrowser\__construct()']]],
['_5f_5fdestruct',['__destruct',['../classdba__driver.html#a1a8bc9dc839a6320a0e07d8047a6b721',1,'dba_driver\__destruct()'],['../classphoto__driver.html#ae4501abdc9651359f81d036b63625686',1,'photo_driver\__destruct()']]],
['_5fbuild_5fnodes',['_build_nodes',['../classTemplate.html#ac41c96e1f407b1a910029e5f4b7de8e4',1,'Template']]],
['_5fget_5fvar',['_get_var',['../classTemplate.html#aae9c4d761ea1298e745e8052d7910194',1,'Template']]],
diff --git a/doc/html/search/functions_61.js b/doc/html/search/functions_61.js
index 6a1b52ef3..e415a9885 100644
--- a/doc/html/search/functions_61.js
+++ b/doc/html/search/functions_61.js
@@ -7,6 +7,7 @@ var searchData=
['account_5fremove',['account_remove',['../Contact_8php.html#a6e64de7db60b7243dce45fb6347636ff',1,'Contact.php']]],
['account_5ftotal',['account_total',['../account_8php.html#a43e3042b2723d76915a030bac3c668b6',1,'account.php']]],
['account_5fverify_5fpassword',['account_verify_password',['../auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee',1,'auth.php']]],
+ ['achievements_5fcontent',['achievements_content',['../achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e',1,'achievements.php']]],
['acknowledge_5fpermissions',['acknowledge_permissions',['../classProtoDriver.html#a1593f3abae050edbd9304f4f8bc4894a',1,'ProtoDriver\acknowledge_permissions()'],['../classZotDriver.html#a3cfdf443da4e5326e205855d7c0054f2',1,'ZotDriver\acknowledge_permissions()']]],
['acl_5finit',['acl_init',['../acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a',1,'acl.php']]],
['activity_5fmatch',['activity_match',['../text_8php.html#af8a3e3a66a7b862d4510f145d2e13186',1,'text.php']]],
@@ -35,7 +36,6 @@ var searchData=
['aes_5funencapsulate',['aes_unencapsulate',['../crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914',1,'crypto.php']]],
['age',['age',['../datetime_8php.html#abc1652f96799cec6fce8797ba2ebc2df',1,'datetime.php']]],
['all_5ffriends',['all_friends',['../socgraph_8php.html#a16ac51c505d72987ed8d6d6aed0e8586',1,'socgraph.php']]],
- ['allfriends_5fcontent',['allfriends_content',['../allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83',1,'allfriends.php']]],
['allowed_5femail',['allowed_email',['../include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694',1,'network.php']]],
['allowed_5fpublic_5frecips',['allowed_public_recips',['../zot_8php.html#a703f528ade8382cf374e4119bd6f7859',1,'zot.php']]],
['allowed_5furl',['allowed_url',['../include_2network_8php.html#aee35d9ad6b3f872bfb39ba3598936aa7',1,'network.php']]],
@@ -104,7 +104,9 @@ var searchData=
['atom_5fentry',['atom_entry',['../items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6',1,'items.php']]],
['attach_5fby_5fhash',['attach_by_hash',['../include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36',1,'attach.php']]],
['attach_5fby_5fhash_5fnodata',['attach_by_hash_nodata',['../include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932',1,'attach.php']]],
+ ['attach_5fchange_5fpermissions',['attach_change_permissions',['../include_2attach_8php.html#a5c0875eafb8c0f8a0620ff7a875a2221',1,'attach.php']]],
['attach_5fcount_5ffiles',['attach_count_files',['../include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3',1,'attach.php']]],
+ ['attach_5fdelete',['attach_delete',['../include_2attach_8php.html#a70bd666e080c2af5a91f5d14c297b8cd',1,'attach.php']]],
['attach_5finit',['attach_init',['../mod_2attach_8php.html#aa88eb5ad87aa1036a30e70339cc6c1b1',1,'attach.php']]],
['attach_5flist_5ffiles',['attach_list_files',['../include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d',1,'attach.php']]],
['attach_5fmkdir',['attach_mkdir',['../include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc',1,'attach.php']]],
diff --git a/doc/html/search/functions_62.js b/doc/html/search/functions_62.js
index e4f1a9615..ffdeffab1 100644
--- a/doc/html/search/functions_62.js
+++ b/doc/html/search/functions_62.js
@@ -3,7 +3,10 @@ var searchData=
['base64url_5fdecode',['base64url_decode',['../text_8php.html#a13286f8a95d2de6b102966ecc270c8d6',1,'text.php']]],
['base64url_5fencode',['base64url_encode',['../text_8php.html#a070384ec000fd65043fce11d5392d241',1,'text.php']]],
['bb2diaspora',['bb2diaspora',['../bb2diaspora_8php.html#a4f10e0876b27373c762bc1abbe745f5c',1,'bb2diaspora.php']]],
+ ['bb_5flocation',['bb_location',['../bbcode_8php.html#a3435c82a6c7693557800cdeb6848d0bd',1,'bbcode.php']]],
['bb_5fparse_5fcrypt',['bb_parse_crypt',['../bbcode_8php.html#a851f5aafefe52474201b83f9fd65931f',1,'bbcode.php']]],
+ ['bb_5fqr',['bb_qr',['../bbcode_8php.html#a98d0eecc620c19561639f06cfbe8e74c',1,'bbcode.php']]],
+ ['bb_5fsanitize_5fstyle',['bb_sanitize_style',['../bbcode_8php.html#a3a989cbf308a32468d171d83e9c51d1e',1,'bbcode.php']]],
['bb_5fshareattributes',['bb_ShareAttributes',['../bbcode_8php.html#a1c69e021d5e0aef97d6966bf3169c86a',1,'bbcode.php']]],
['bb_5fshareattributessimple',['bb_ShareAttributesSimple',['../bbcode_8php.html#a2be26414a367118143cc89e2d58e7377',1,'bbcode.php']]],
['bb_5fspacefy',['bb_spacefy',['../bbcode_8php.html#a8911e027907820df3db03b4f76724b50',1,'bbcode.php']]],
@@ -11,6 +14,7 @@ var searchData=
['bb_5ftranslate_5fvideo',['bb_translate_video',['../text_8php.html#a3d2793d66db3345fd290b71e2eadf98e',1,'text.php']]],
['bb_5funspacefy_5fand_5ftrim',['bb_unspacefy_and_trim',['../bbcode_8php.html#a064dcfd9767df6f53be1a0e11ceeb15d',1,'bbcode.php']]],
['bbcode',['bbcode',['../bbcode_8php.html#a009f61aaf78771737ed0765c8463911b',1,'bbcode.php']]],
+ ['bbiframe',['bbiframe',['../bbcode_8php.html#a7cc811ff1939a508cfb54f39c1d584d7',1,'bbcode.php']]],
['bbtoevent',['bbtoevent',['../event_8php.html#a180cccd63c2a2f00ff432b03113531f3',1,'event.php']]],
['bbtovcal',['bbtovcal',['../event_8php.html#a184d6b9690e5b6dee35a0aa9edd47279',1,'event.php']]],
['best_5flink_5furl',['best_link_url',['../conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7',1,'conversation.php']]],
@@ -21,6 +25,9 @@ var searchData=
['blogtheme_5fdisplay_5fitem',['blogtheme_display_item',['../blogga_2view_2theme_2blog_2theme_8php.html#a028ae8e9f2824670dfa76a6651d817e5',1,'theme.php']]],
['blogtheme_5fform',['blogtheme_form',['../view_2theme_2blogga_2php_2config_8php.html#a8a311a402d3e746ce53fadc38e4b2d27',1,'blogtheme_form(&amp;$a, $headimg, $headimghome):&#160;config.php'],['../view_2theme_2blogga_2view_2theme_2blog_2config_8php.html#a8a311a402d3e746ce53fadc38e4b2d27',1,'blogtheme_form(&amp;$a, $headimg, $headimghome):&#160;config.php']]],
['blogtheme_5fimgurl',['blogtheme_imgurl',['../blogga_2view_2theme_2blog_2theme_8php.html#af634a3f721c5e238530d0636d33230ec',1,'theme.php']]],
+ ['bookmark_5fadd',['bookmark_add',['../include_2bookmarks_8php.html#a88ce7dee6a3dc7465aa9b8eaa45b0087',1,'bookmarks.php']]],
+ ['bookmarks_5fcontent',['bookmarks_content',['../mod_2bookmarks_8php.html#a774364b1c8404529581083631703527a',1,'bookmarks.php']]],
+ ['bookmarks_5finit',['bookmarks_init',['../mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3',1,'bookmarks.php']]],
['breaklines',['breaklines',['../html2plain_8php.html#a3214912e3d00cf0a948072daccf16740',1,'html2plain.php']]],
['build_5fpagehead',['build_pagehead',['../classApp.html#a08f0537964d98958d218066364cff785',1,'App']]],
['build_5fquerystring',['build_querystring',['../boot_8php.html#a9cbab4ee728e9a8b4ce952bae643044e',1,'boot.php']]],
diff --git a/doc/html/search/functions_63.js b/doc/html/search/functions_63.js
index b7e0d9f33..4feee718e 100644
--- a/doc/html/search/functions_63.js
+++ b/doc/html/search/functions_63.js
@@ -10,7 +10,6 @@ var searchData=
['chanlink_5fhash',['chanlink_hash',['../text_8php.html#a55ab893be57feda59c2a7ba1e58ff2d0',1,'text.php']]],
['chanlink_5furl',['chanlink_url',['../text_8php.html#a2e8d6c402603be3a1256a16605e09c2a',1,'text.php']]],
['chanman_5fremove_5feverything_5ffrom_5fnetwork',['chanman_remove_everything_from_network',['../include_2chanman_8php.html#a21ba9a5c961e866ff27aee3ee67bf99b',1,'chanman.php']]],
- ['channel_5faside',['channel_aside',['../channel_8php.html#aea8e189f2fbabfda779349dd94082e8e',1,'channel.php']]],
['channel_5fcontent',['channel_content',['../channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1',1,'channel.php']]],
['channel_5finit',['channel_init',['../channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc',1,'channel.php']]],
['channel_5fremove',['channel_remove',['../Contact_8php.html#a186162051a5127069cc851d78740f205',1,'Contact.php']]],
@@ -19,6 +18,17 @@ var searchData=
['channelx_5fby_5fn',['channelx_by_n',['../Contact_8php.html#a3a0844dac1e86d523de5d2f432cfeebc',1,'Contact.php']]],
['channelx_5fby_5fnick',['channelx_by_nick',['../Contact_8php.html#a87e699f74a1102b25e8aa0432d86a91e',1,'Contact.php']]],
['chanview_5fcontent',['chanview_content',['../chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b',1,'chanview.php']]],
+ ['chat_5fcontent',['chat_content',['../mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f',1,'chat.php']]],
+ ['chat_5finit',['chat_init',['../mod_2chat_8php.html#aa9ae4782e9baef0b7314ab9527c2707e',1,'chat.php']]],
+ ['chat_5fpost',['chat_post',['../mod_2chat_8php.html#a999d594745597c656c9760253ae297ad',1,'chat.php']]],
+ ['chatroom_5fcreate',['chatroom_create',['../include_2chat_8php.html#acdc80dba4eb796c7472b21129b435422',1,'chat.php']]],
+ ['chatroom_5fdestroy',['chatroom_destroy',['../include_2chat_8php.html#a2ba3af6884ecdce95de69262fe599639',1,'chat.php']]],
+ ['chatroom_5fenter',['chatroom_enter',['../include_2chat_8php.html#a2c95b545e46bfee64faa05ecf0afea91',1,'chat.php']]],
+ ['chatroom_5fleave',['chatroom_leave',['../include_2chat_8php.html#a1ee1360f7d2549c7549ae07cb5190f0f',1,'chat.php']]],
+ ['chatroom_5flist',['chatroom_list',['../include_2chat_8php.html#aedcb532a0627b8644001a2fadab4e87a',1,'chat.php']]],
+ ['chatsvc_5fcontent',['chatsvc_content',['../chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9',1,'chatsvc.php']]],
+ ['chatsvc_5finit',['chatsvc_init',['../chatsvc_8php.html#a28d248b056fa47452e28ed01130e9116',1,'chatsvc.php']]],
+ ['chatsvc_5fpost',['chatsvc_post',['../chatsvc_8php.html#a7c9a9b9c24a2b02eed8efd6b09632d03',1,'chatsvc.php']]],
['check_5faccount_5fadmin',['check_account_admin',['../account_8php.html#a917d74aad0baf3e0c4b51cf1051e654f',1,'account.php']]],
['check_5faccount_5femail',['check_account_email',['../account_8php.html#ae052bd5558847bd38e89c213561a9771',1,'account.php']]],
['check_5faccount_5finvite',['check_account_invite',['../account_8php.html#aaff7720423417a4333697894ffd9ddeb',1,'account.php']]],
@@ -37,6 +47,7 @@ var searchData=
['check_5flist_5fpermissions',['check_list_permissions',['../permissions_8php.html#a0f5bd9f7f4c8fb7ba4b2c1ed048b4dc7',1,'permissions.php']]],
['check_5fphp',['check_php',['../setup_8php.html#a14d208682a88632290c895d20da6e7d6',1,'setup.php']]],
['check_5fsmarty3',['check_smarty3',['../setup_8php.html#afd8b0b3ade1507c45325caf377bf459d',1,'setup.php']]],
+ ['check_5fstore',['check_store',['../setup_8php.html#ab4b71369a25021d59247c917e98d8246',1,'setup.php']]],
['check_5fwall_5fto_5fwall',['check_wall_to_wall',['../classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8',1,'Item']]],
['check_5fwebbie',['check_webbie',['../text_8php.html#a0c65597bb4aed3a039eb795ff540e5e3',1,'text.php']]],
['childexists',['childExists',['../classRedDirectory.html#a5e3fc08b2bf9f61cea4d2ccae0495bec',1,'RedDirectory']]],
@@ -46,7 +57,7 @@ var searchData=
['cli_5fstartup',['cli_startup',['../cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b',1,'cli_startup.php']]],
['cli_5fsuggest_5frun',['cli_suggest_run',['../cli__suggest_8php.html#a8f3a60fc96f4bec7d3837c4efc7725f2',1,'cli_suggest.php']]],
['close',['close',['../classdba__driver.html#a5afa54172f3c837df61643f8f5b2c975',1,'dba_driver\close()'],['../classdba__mysql.html#a850586714ef897bd25f643c89b4ef76e',1,'dba_mysql\close()'],['../classdba__mysqli.html#acb38f2c851187ad632ecfab30fdfab55',1,'dba_mysqli\close()']]],
- ['cloud_5finit',['cloud_init',['../cloud_8php.html#a080071b784fe01d04ed6c09d9f2785b8',1,'cloud.php']]],
+ ['cloud_5finit',['cloud_init',['../cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d',1,'cloud.php']]],
['collect',['collect',['../classProtoDriver.html#a2ba1758f0f9e3564580b6ff85292804d',1,'ProtoDriver\collect()'],['../classZotDriver.html#af65febb26031eb7f39871b9e2a539797',1,'ZotDriver\collect()']]],
['collect_5fprivate',['collect_private',['../classProtoDriver.html#af66171aa7dab9b62cee915cb4f1abe1b',1,'ProtoDriver\collect_private()'],['../classZotDriver.html#a2e15ff09772f0608203dad1c98299394',1,'ZotDriver\collect_private()']]],
['collect_5frecipients',['collect_recipients',['../items_8php.html#a01e3cf44e082fa9bd06dcde5bf713d70',1,'items.php']]],
@@ -58,7 +69,6 @@ var searchData=
['comanche_5freplace_5fregion',['comanche_replace_region',['../comanche_8php.html#a028f004d5b8c23d6367816d899e17cfe',1,'comanche.php']]],
['comanche_5fwebpage',['comanche_webpage',['../comanche_8php.html#ae9fe1ce574db3dd0931eada80234f82a',1,'comanche.php']]],
['comanche_5fwidget',['comanche_widget',['../comanche_8php.html#a6b0191c1a63db1696a2eb139d90d9e7f',1,'comanche.php']]],
- ['common_5faside',['common_aside',['../common_8php.html#a3b12ec67b3d3edcf595c8d195da5d14a',1,'common.php']]],
['common_5fcontent',['common_content',['../common_8php.html#ab63408f39abef7a6915186e8dabc5a96',1,'common.php']]],
['common_5ffriends',['common_friends',['../socgraph_8php.html#a7d34cd58025bcd9e575282f44db75918',1,'socgraph.php']]],
['common_5ffriends_5fvisitor_5fwidget',['common_friends_visitor_widget',['../contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65',1,'contact_widgets.php']]],
@@ -72,11 +82,14 @@ var searchData=
['connect_5fcontent',['connect_content',['../connect_8php.html#a489f0a66c660de6ec4d6917b27674f07',1,'connect.php']]],
['connect_5finit',['connect_init',['../connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36',1,'connect.php']]],
['connect_5fpost',['connect_post',['../connect_8php.html#a417ec27afe33f21a929667a665e32ee2',1,'connect.php']]],
- ['connections_5faside',['connections_aside',['../connections_8php.html#af48f7ad20914760ba9874c090384e35a',1,'connections.php']]],
['connections_5fclone',['connections_clone',['../connections_8php.html#a15af118efee9c948b6f8294e54a73bb2',1,'connections.php']]],
['connections_5fcontent',['connections_content',['../connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c',1,'connections.php']]],
['connections_5finit',['connections_init',['../connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558',1,'connections.php']]],
['connections_5fpost',['connections_post',['../connections_8php.html#a1224058db8e3fb56463eb312f98e561d',1,'connections.php']]],
+ ['connedit_5fclone',['connedit_clone',['../connedit_8php.html#a707ea7e63cf9674025b1d6b081ae74f5',1,'connedit.php']]],
+ ['connedit_5fcontent',['connedit_content',['../connedit_8php.html#a795acb3d9d841f55c255d7611681ab67',1,'connedit.php']]],
+ ['connedit_5finit',['connedit_init',['../connedit_8php.html#a4da871e075597a09a8b374b9171dd92e',1,'connedit.php']]],
+ ['connedit_5fpost',['connedit_post',['../connedit_8php.html#a234c48426b652bf4d37053f2af329ac5',1,'connedit.php']]],
['construct_5factivity_5fobject',['construct_activity_object',['../items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee',1,'items.php']]],
['construct_5factivity_5ftarget',['construct_activity_target',['../items_8php.html#aa579bc4445d60098b1410961ca8e96b7',1,'items.php']]],
['construct_5fpage',['construct_page',['../boot_8php.html#acc4e0c910af066148b810e5fde55fff1',1,'boot.php']]],
@@ -98,13 +111,10 @@ var searchData=
['count_5fcommon_5ffriends_5fzcid',['count_common_friends_zcid',['../socgraph_8php.html#af175807406d94407a5e11742a3287746',1,'socgraph.php']]],
['count_5fdescendants',['count_descendants',['../classItem.html#aca1e66988ed00cd627b2a359b72cd0ae',1,'Item\count_descendants()'],['../conversation_8php.html#ab2383dff4f823e580399ff469d90ab19',1,'count_descendants():&#160;conversation.php']]],
['create_5faccount',['create_account',['../account_8php.html#a141fe579c351c78209d425473f978eb5',1,'account.php']]],
- ['create_5fdir_5faccount',['create_dir_account',['../identity_8php.html#abf6a9c6ed92d594f1d4513c4e22a7abd',1,'identity.php']]],
['create_5fidentity',['create_identity',['../identity_8php.html#a345f4c943d84de502ec6e72d2c813945',1,'identity.php']]],
+ ['create_5fsys_5fchannel',['create_sys_channel',['../identity_8php.html#a1cf83ac2b645de12868edaa3a5718f05',1,'identity.php']]],
['createdirectory',['createDirectory',['../classRedDirectory.html#a986936910f0216887a25e28916c166c7',1,'RedDirectory']]],
['createfile',['createFile',['../classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0',1,'RedDirectory']]],
- ['crepair_5fcontent',['crepair_content',['../crepair_8php.html#a29464c01838e209c8059cfcd2d195caa',1,'crepair.php']]],
- ['crepair_5finit',['crepair_init',['../crepair_8php.html#ab089978e50df156bbfabf9f8f5ccd198',1,'crepair.php']]],
- ['crepair_5fpost',['crepair_post',['../crepair_8php.html#acc4493e1ffd1462a605dd9b870034513',1,'crepair.php']]],
['cronhooks_5frun',['cronhooks_run',['../cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca',1,'cronhooks.php']]],
['cropimage',['cropImage',['../classphoto__driver.html#a2e6e61f1e356a90bc978f4404a77137e',1,'photo_driver\cropImage()'],['../classphoto__gd.html#ab2232d775c8bacf66773a03308105f0c',1,'photo_gd\cropImage()'],['../classphoto__imagick.html#a2f33a03a89497a2b2768e29736d4a8a4',1,'photo_imagick\cropImage()']]],
['crypto_5fencapsulate',['crypto_encapsulate',['../crypto_8php.html#a32fc08d57a5694f94d8543ecbb03323c',1,'crypto.php']]],
diff --git a/doc/html/search/functions_64.js b/doc/html/search/functions_64.js
index 635a4e07c..6fae4722d 100644
--- a/doc/html/search/functions_64.js
+++ b/doc/html/search/functions_64.js
@@ -16,7 +16,7 @@ var searchData=
['del_5fpconfig',['del_pconfig',['../include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941',1,'config.php']]],
['del_5fxconfig',['del_xconfig',['../include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72',1,'config.php']]],
['delegate_5fcontent',['delegate_content',['../delegate_8php.html#a943eea8996ef348eb845c498f9f354dd',1,'delegate.php']]],
- ['delete',['delete',['../classRedInode.html#a5e8f09bc887725c3c448f8d72fe3edfc',1,'RedInode']]],
+ ['delete',['delete',['../classRedFile.html#aef71c9eaac7052be7dc8602eb12171e7',1,'RedFile']]],
['delete_5fimported_5fitem',['delete_imported_item',['../zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72',1,'zot.php']]],
['delete_5fitem_5flowlevel',['delete_item_lowlevel',['../items_8php.html#a2b56a4c01bd22a648d52ec9af1a04259',1,'items.php']]],
['deletenode',['deletenode',['../html2bbcode_8php.html#a71a07f135d196ec5943b13f7b2e6a9b2',1,'html2bbcode.php']]],
@@ -33,10 +33,10 @@ var searchData=
['dir_5fsort_5flinks',['dir_sort_links',['../dir__fns_8php.html#ae56881d69bb6f8e828c9e35454386774',1,'dir_fns.php']]],
['dir_5ftagadelic',['dir_tagadelic',['../taxonomy_8php.html#a088371f4bc19155b2291508f5cd63332',1,'taxonomy.php']]],
['dir_5ftagblock',['dir_tagblock',['../taxonomy_8php.html#a599ee71dd3194c8127b00dabec77abc1',1,'taxonomy.php']]],
- ['directory_5faside',['directory_aside',['../mod_2directory_8php.html#aa1d928543212871491706216742dd73c',1,'directory.php']]],
['directory_5fcontent',['directory_content',['../mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44',1,'directory.php']]],
['directory_5finit',['directory_init',['../mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf',1,'directory.php']]],
['directory_5frun',['directory_run',['../include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0',1,'directory.php']]],
+ ['dirprofile_5finit',['dirprofile_init',['../dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052',1,'dirprofile.php']]],
['dirsearch_5fcontent',['dirsearch_content',['../dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c',1,'dirsearch.php']]],
['dirsearch_5finit',['dirsearch_init',['../dirsearch_8php.html#a3e51964ae3f5ff147403407b65324752',1,'dirsearch.php']]],
['discover',['discover',['../classProtoDriver.html#a64a3868cffe27d601d55f69a2ecc4337',1,'ProtoDriver\discover()'],['../classZotDriver.html#a40d328ff9f6b0a238afe286dddee1514',1,'ZotDriver\discover()']]],
@@ -44,6 +44,7 @@ var searchData=
['dlogger',['dlogger',['../text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c',1,'text.php']]],
['dob',['dob',['../datetime_8php.html#a3f2897db32e745fe2f3e70a6b46578f8',1,'datetime.php']]],
['doscaleimage',['doScaleImage',['../classphoto__driver.html#ae18716018afcf362c7c24586b53e9e2f',1,'photo_driver\doScaleImage()'],['../classphoto__gd.html#a2f2e5900e6d8b1667892ac631b1d4754',1,'photo_gd\doScaleImage()'],['../classphoto__imagick.html#a3047c68bb4de7f66c2893fe451db2b66',1,'photo_imagick\doScaleImage()']]],
+ ['downgrade_5faccounts',['downgrade_accounts',['../account_8php.html#a0d183a3cb4c67a0f5e906811df7a1fc9',1,'account.php']]],
['drop_5fitem',['drop_item',['../items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1',1,'items.php']]],
['drop_5fitems',['drop_items',['../items_8php.html#a668ece2c37f05cc3abe538eb0dabfe55',1,'items.php']]]
];
diff --git a/doc/html/search/functions_66.js b/doc/html/search/functions_66.js
index a97f0bc6e..f9a7458d5 100644
--- a/doc/html/search/functions_66.js
+++ b/doc/html/search/functions_66.js
@@ -15,6 +15,7 @@ var searchData=
['filer_5fcontent',['filer_content',['../filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274',1,'filer.php']]],
['filerm_5fcontent',['filerm_content',['../filerm_8php.html#ae2eb28d2054fa2c37e38689882172208',1,'filerm.php']]],
['filestorage_5fcontent',['filestorage_content',['../filestorage_8php.html#a61bb1be78472555df4ce619f51014040',1,'filestorage.php']]],
+ ['filestorage_5fpost',['filestorage_post',['../filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd',1,'filestorage.php']]],
['find_5fthread_5fparent_5findex',['find_thread_parent_index',['../conversation_8php.html#ae59703b07ce2ddf627b4172ff26058b6',1,'conversation.php']]],
['find_5fupstream_5fdirectory',['find_upstream_directory',['../dir__fns_8php.html#a8c15aa69da12f2d3476b9e93b82b337d',1,'dir_fns.php']]],
['find_5fxchan_5fin_5farray',['find_xchan_in_array',['../text_8php.html#ace3c98538c63e09b70a363210b414112',1,'text.php']]],
@@ -30,7 +31,6 @@ var searchData=
['flip',['flip',['../classphoto__driver.html#a2b2a99021fc63ed6465d703ddddcb832',1,'photo_driver\flip()'],['../classphoto__gd.html#a44cedef376044018702d9355ddc813ce',1,'photo_gd\flip()'],['../classphoto__imagick.html#aff6bcdbab18593a3fc5a480db8509393',1,'photo_imagick\flip()']]],
['follow_5fcontent',['follow_content',['../mod_2follow_8php.html#a4c540ea4e9f5c581c1a53516ac585592',1,'follow.php']]],
['follow_5finit',['follow_init',['../mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a',1,'follow.php']]],
- ['follow_5fwidget',['follow_widget',['../contact__widgets_8php.html#af24e693532a045954caab515942cfc6f',1,'contact_widgets.php']]],
['format_5fcategories',['format_categories',['../text_8php.html#a3054189cff173977f4216c9a3dd29e1b',1,'text.php']]],
['format_5fcss_5fif_5fexists',['format_css_if_exists',['../plugin_8php.html#a9039e15aae27676af7777dcbee5a11d6',1,'plugin.php']]],
['format_5fevent_5fbbcode',['format_event_bbcode',['../event_8php.html#abb74206cf42d694307c3d7abb7af9869',1,'event.php']]],
diff --git a/doc/html/search/functions_67.js b/doc/html/search/functions_67.js
index b3e96032c..7d13c746a 100644
--- a/doc/html/search/functions_67.js
+++ b/doc/html/search/functions_67.js
@@ -2,7 +2,7 @@ var searchData=
[
['gen_5ftoken',['gen_token',['../classFKOAuthDataStore.html#aa1a268be88ad3979bb4cc35bbb4dc819',1,'FKOAuthDataStore']]],
['gender_5fselector',['gender_selector',['../profile__selectors_8php.html#ae2b2c087e6530c61c0b256fd26d52355',1,'profile_selectors.php']]],
- ['generate_5fuser_5fguid',['generate_user_guid',['../text_8php.html#ae4f6881d7e13623f8eded6277595112a',1,'text.php']]],
+ ['generatedirectoryindex',['generateDirectoryIndex',['../classRedBrowser.html#a1f7daf50bb9bfcde7345b3b1908dbd7e',1,'RedBrowser']]],
['get',['get',['../classCache.html#a70392b109331897bf9fdd7f1960e21de',1,'Cache\get()'],['../classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535',1,'RedFile\get()']]],
['get_5faccount',['get_account',['../classApp.html#a08bc87aff64f39fbc084e9d6545cee4d',1,'App']]],
['get_5faccount_5fid',['get_account_id',['../boot_8php.html#afe88b920aa285982edb817a0dd44eb37',1,'boot.php']]],
@@ -17,9 +17,11 @@ var searchData=
['get_5fbrowser_5flanguage',['get_browser_language',['../language_8php.html#ace67d6cad57da08d030ad9dc9b8c836e',1,'language.php']]],
['get_5fcapath',['get_capath',['../include_2network_8php.html#a78e89557b2fbd344ad790846d761b0c7',1,'network.php']]],
['get_5fchannel',['get_channel',['../classApp.html#a084e03c77686d8c13390fef3f7428a2b',1,'App']]],
+ ['get_5fchannel_5fby_5fnick',['get_channel_by_nick',['../identity_8php.html#ac73b3e13778c564c877554517a7f51ba',1,'identity.php']]],
['get_5fchild',['get_child',['../classItem.html#a632185dd25c5caf277067c76230a4320',1,'Item']]],
['get_5fchildren',['get_children',['../classItem.html#aa0ee775ec94abccec6c798428835d001',1,'Item']]],
['get_5fcipher',['get_cipher',['../classConversation.html#a4aab60bb39fa6761b6cacdc8d9da2901',1,'Conversation']]],
+ ['get_5fcloudpath',['get_cloudpath',['../include_2attach_8php.html#a6aa00ea010ea030110faefb75eafc1ce',1,'attach.php']]],
['get_5fcomment_5fbox',['get_comment_box',['../classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf',1,'Item']]],
['get_5fcomment_5fbox_5ftemplate',['get_comment_box_template',['../classItem.html#a904421c7a427411bb2ab473bca872f63',1,'Item']]],
['get_5fconfig',['get_config',['../include_2config_8php.html#af02c96e6b37335774b548914ede1d22e',1,'config.php']]],
@@ -29,6 +31,7 @@ var searchData=
['get_5fdata',['get_data',['../classItem.html#ad3638f93065693c1f69eb349feb1b7aa',1,'Item']]],
['get_5fdata_5fvalue',['get_data_value',['../classItem.html#ac6f1c96cc82a0dfb7e881fc70309ea3c',1,'Item']]],
['get_5fdb_5ferrno',['get_db_errno',['../setup_8php.html#a8652788e8589778c5f81634a9d5b9429',1,'setup.php']]],
+ ['get_5fdefault_5fprofile_5fphoto',['get_default_profile_photo',['../identity_8php.html#ab1485a26b032956e1496fc08c58b83ed',1,'identity.php']]],
['get_5fdim',['get_dim',['../datetime_8php.html#a7df24d72ea05922d3127363e2295174c',1,'datetime.php']]],
['get_5fevents',['get_events',['../identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312',1,'identity.php']]],
['get_5ffeatures',['get_features',['../features_8php.html#ae73c5b03b01c7284ed7e7e0e774e975c',1,'features.php']]],
@@ -43,6 +46,7 @@ var searchData=
['get_5fitem_5fchildren',['get_item_children',['../conversation_8php.html#a7f6ef0dfa554bacf620e84c18d386e67',1,'conversation.php']]],
['get_5fitem_5fcontact',['get_item_contact',['../items_8php.html#aab9c6bae4c40799867596bdaae9829fd',1,'items.php']]],
['get_5fitem_5felements',['get_item_elements',['../items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361',1,'items.php']]],
+ ['get_5flanguage_5fname',['get_language_name',['../language_8php.html#a43e6ddba9df019c9ac3ab4c94c444ae7',1,'language.php']]],
['get_5fmail_5felements',['get_mail_elements',['../items_8php.html#a94ddb1d6c8fa21dd7433677e85168037',1,'items.php']]],
['get_5fmarkup_5ftemplate',['get_markup_template',['../classFriendicaSmartyEngine.html#aab5994077fc3a64222e41b28e2bd8d88',1,'FriendicaSmartyEngine\get_markup_template()'],['../interfaceITemplateEngine.html#aaf2698adbf46c073c24b162fe1b1c442',1,'ITemplateEngine\get_markup_template()'],['../classTemplate.html#afd97b4b1e7754a550e67c0ea79159059',1,'Template\get_markup_template()'],['../plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4',1,'get_markup_template():&#160;plugin.php']]],
['get_5fmax_5fimport_5fsize',['get_max_import_size',['../boot_8php.html#a97769915c9f14adc4f8ab1ea2cecfd90',1,'boot.php']]],
@@ -53,6 +57,7 @@ var searchData=
['get_5fmy_5furl',['get_my_url',['../identity_8php.html#aa46321e1cd6a3b8dfde8bf9510112fec',1,'identity.php']]],
['get_5fobserver',['get_observer',['../classApp.html#a1ad3bb1b68439b3b7cbe630918e618d2',1,'App\get_observer()'],['../classConversation.html#ae3d4190142e12b57051f11f2911f77a0',1,'Conversation\get_observer()']]],
['get_5fobserver_5fhash',['get_observer_hash',['../boot_8php.html#a623e49c79943f3e7bdb770d021683cf7',1,'boot.php']]],
+ ['get_5fonline_5fstatus',['get_online_status',['../identity_8php.html#a332df795f684788002f5a6424abacfd7',1,'identity.php']]],
['get_5fowner_5fname',['get_owner_name',['../classItem.html#a67892aa23d19f4431bb2e5f43c74000e',1,'Item']]],
['get_5fowner_5fphoto',['get_owner_photo',['../classItem.html#aa541bc4290e51bfd688d6921bebabc73',1,'Item']]],
['get_5fowner_5furl',['get_owner_url',['../classItem.html#a9f2d219da712390f59012fc32a342074',1,'Item']]],
@@ -60,7 +65,7 @@ var searchData=
['get_5fpath',['get_path',['../classApp.html#a5293a8543ba338dcf38cd4ff3bc5d4be',1,'App']]],
['get_5fpconfig',['get_pconfig',['../include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad',1,'config.php']]],
['get_5fperms',['get_perms',['../classApp.html#adb5a4bb657881e553978ff390babd01f',1,'App\get_perms()'],['../permissions_8php.html#a040fd3d3b8517658b1668ae0cd093972',1,'get_perms():&#160;permissions.php']]],
- ['get_5fplink',['get_plink',['../text_8php.html#a3ef8c0cf31f35f77462067de8712fa34',1,'text.php']]],
+ ['get_5fplink',['get_plink',['../text_8php.html#aac0969ae09853205992ba06ab9f9f61a',1,'text.php']]],
['get_5fplugin_5finfo',['get_plugin_info',['../plugin_8php.html#aff0178bd8d0b34a94d5efddc883edd35',1,'plugin.php']]],
['get_5fpoke_5fverbs',['get_poke_verbs',['../text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66',1,'text.php']]],
['get_5fprofile_5felements',['get_profile_elements',['../items_8php.html#a251343637ff40a50cca93452cd530c26',1,'items.php']]],
@@ -69,6 +74,7 @@ var searchData=
['get_5fredirect_5furl',['get_redirect_url',['../classItem.html#a428f448f89a8629055ea3294eb942aea',1,'Item']]],
['get_5frel_5flink',['get_rel_link',['../text_8php.html#a3972701c5c83624ec4e2d06242f614e7',1,'text.php']]],
['get_5frpost_5fpath',['get_rpost_path',['../zot_8php.html#a8e22dbc6f884be3644a892a876cbd972',1,'zot.php']]],
+ ['get_5fsys_5fchannel',['get_sys_channel',['../identity_8php.html#aaff86ee3b5984821e7a256c2da5f1a51',1,'identity.php']]],
['get_5ftags',['get_tags',['../text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623',1,'text.php']]],
['get_5ftemplate',['get_template',['../classItem.html#aba23a0a9d89e316d2b343cc46d695d91',1,'Item']]],
['get_5ftemplate_5fdata',['get_template_data',['../classConversation.html#a2a96b7a6573ae53db861624659e831cb',1,'Conversation\get_template_data()'],['../classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8',1,'Item\get_template_data()']]],
@@ -80,18 +86,23 @@ var searchData=
['get_5ftheme_5finfo',['get_theme_info',['../plugin_8php.html#ad48de9c0fb7f19413a2aa49250d00405',1,'plugin.php']]],
['get_5ftheme_5fscreenshot',['get_theme_screenshot',['../plugin_8php.html#a48047edfbef770125a5508dcc2f9282f',1,'plugin.php']]],
['get_5ftheme_5fuid',['get_theme_uid',['../identity_8php.html#aaeb666872995e3ab8da8f7bc5f3b2bd3',1,'identity.php']]],
+ ['get_5fthings',['get_things',['../taxonomy_8php.html#a7747fa859ac56fbffd4f9782d85505de',1,'taxonomy.php']]],
['get_5fthread',['get_thread',['../classConversation.html#a4cff75d8c46b517e7133e4d0da6fc1c8',1,'Conversation']]],
['get_5fwidgets',['get_widgets',['../classApp.html#a871898becd0697d778f36d9336253ae8',1,'App']]],
+ ['get_5fwords',['get_words',['../spam_8php.html#ab8fd81a82c9622cbebb8ceab6b310ca6',1,'spam.php']]],
['get_5fxconfig',['get_xconfig',['../include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e',1,'config.php']]],
+ ['getasseturl',['getAssetUrl',['../classRedBrowser.html#a87529b4988a7777b49616f5c0a1c55d3',1,'RedBrowser']]],
['getchild',['getChild',['../classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569',1,'RedDirectory']]],
['getchildren',['getChildren',['../classRedDirectory.html#aa42d3065f6f065b17db87146a7cb031a',1,'RedDirectory']]],
['getcontenttype',['getContentType',['../classRedFile.html#a26416827eb68554d033d1e2e5cc6dd3b',1,'RedFile']]],
+ ['getdir',['getDir',['../classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4',1,'RedDirectory']]],
['getetag',['getETag',['../classRedFile.html#ae96d5caa2db7a461c57b24380fa87e28',1,'RedFile']]],
['getext',['getExt',['../classphoto__driver.html#aa2efb5b2a6af3fd67e3f1c2b9852a5ba',1,'photo_driver']]],
['getheight',['getHeight',['../classphoto__driver.html#af769e9abb144e57002c59aa2aa8f3468',1,'photo_driver']]],
['getimage',['getImage',['../classphoto__driver.html#ab98da263bd7341fc132c4fb6fc76e8d5',1,'photo_driver\getImage()'],['../classphoto__gd.html#a86757ba021fd80d1a5cf8c2f766a8484',1,'photo_gd\getImage()'],['../classphoto__imagick.html#ad07288e0eb3922cb08cc9d33a163decc',1,'photo_imagick\getImage()']]],
- ['getlastmodified',['getLastModified',['../classRedInode.html#a8503d4f247186e9e55bc42b37e067fb6',1,'RedInode']]],
- ['getname',['getName',['../classRedInode.html#aec5706105400764124db39d4bc68d458',1,'RedInode']]],
+ ['getlastmodified',['getLastModified',['../classRedDirectory.html#a6c7e08199abc24e6eeb94a4037ef8bfc',1,'RedDirectory\getLastModified()'],['../classRedFile.html#a41562a28007789bbe7fe06d6a20eef47',1,'RedFile\getLastModified()']]],
+ ['getname',['getName',['../classRedDirectory.html#af6e4475dbd5abcdede00d20b8d388583',1,'RedDirectory\getName()'],['../classRedFile.html#a0c961c5f49544d2502420361fa526437',1,'RedFile\getName()']]],
+ ['getquotainfo',['getQuotaInfo',['../classRedDirectory.html#a2f7a574f2115f099d6dd103d5b252375',1,'RedDirectory']]],
['getsize',['getSize',['../classRedFile.html#acb1edbe1848fab05347746fa1ea09d8f',1,'RedFile']]],
['gettype',['getType',['../classphoto__driver.html#a6c6c16dbc4f517ce799f9143ed61f0e3',1,'photo_driver']]],
['getwidth',['getWidth',['../classphoto__driver.html#acc30486acee9e89e32701f44a1738117',1,'photo_driver']]],
@@ -99,7 +110,6 @@ var searchData=
['gprobe_5frun',['gprobe_run',['../gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1',1,'gprobe.php']]],
['group_5fadd',['group_add',['../include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce',1,'group.php']]],
['group_5fadd_5fmember',['group_add_member',['../include_2group_8php.html#a0122ef312df2c5546b1a46b3e6c7b31b',1,'group.php']]],
- ['group_5faside',['group_aside',['../mod_2group_8php.html#aeb0784dd928e53e6d8693513bec8928c',1,'group.php']]],
['group_5fbyname',['group_byname',['../include_2group_8php.html#abd66a5ea34a07a3422dc2dde6c7b3ecb',1,'group.php']]],
['group_5fcontent',['group_content',['../mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83',1,'group.php']]],
['group_5fget_5fmembers',['group_get_members',['../include_2group_8php.html#a5bd191d9692e6c34d48c0ede10810f09',1,'group.php']]],
@@ -108,7 +118,7 @@ var searchData=
['group_5frmv',['group_rmv',['../include_2group_8php.html#a4118f498bbd1530c1d0136d016d197a5',1,'group.php']]],
['group_5frmv_5fmember',['group_rmv_member',['../include_2group_8php.html#a540e3ef36f47d47532646be4241f6518',1,'group.php']]],
['group_5fselect',['group_select',['../acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0',1,'acl_selectors.php']]],
- ['group_5fside',['group_side',['../include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17',1,'group.php']]],
+ ['group_5fside',['group_side',['../include_2group_8php.html#a6a69bd7be032fa8ce4e49c43a42cc6e9',1,'group.php']]],
['groups_5fcontaining',['groups_containing',['../include_2group_8php.html#afb802ae2ce73aae4bc36d157f7b6a92f',1,'group.php']]],
['guess_5fimage_5ftype',['guess_image_type',['../photo__driver_8php.html#a243cee492ce443afb6a7d77d54b6c4aa',1,'photo_driver.php']]]
];
diff --git a/doc/html/search/functions_68.js b/doc/html/search/functions_68.js
index 2fcb45ed0..29fd49882 100644
--- a/doc/html/search/functions_68.js
+++ b/doc/html/search/functions_68.js
@@ -1,20 +1,23 @@
var searchData=
[
- ['handle_5ftag',['handle_tag',['../item_8php.html#abd0e603a6696051af16476eb968d52e7',1,'item.php']]],
+ ['handle_5ftag',['handle_tag',['../item_8php.html#aa22feef4de326e1d7078dedd892e615c',1,'item.php']]],
['has_5fpermissions',['has_permissions',['../items_8php.html#a77051724d1784074ff187e73a4db93fe',1,'items.php']]],
- ['hcard_5faside',['hcard_aside',['../hcard_8php.html#a956c7cae2009652a37900306e5b7b73d',1,'hcard.php']]],
- ['hcard_5finit',['hcard_init',['../hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d',1,'hcard.php']]],
['head_5fadd_5fcss',['head_add_css',['../plugin_8php.html#a23c4fccf1eb5fcd63b24783ba1f05f7a',1,'plugin.php']]],
['head_5fadd_5fjs',['head_add_js',['../plugin_8php.html#a516591850f4fd49fd1425cfa54089db8',1,'plugin.php']]],
['head_5fget_5fcss',['head_get_css',['../plugin_8php.html#af92789f559b89a380e49d303218aeeca',1,'plugin.php']]],
['head_5fget_5ficon',['head_get_icon',['../classApp.html#af17df107f2216ddf5ad2a7e0f2ba2166',1,'App\head_get_icon()'],['../boot_8php.html#a24a7a70afedd5d85fe0eadc85afa9f77',1,'head_get_icon():&#160;boot.php']]],
['head_5fget_5fjs',['head_get_js',['../plugin_8php.html#a65ab52cb1a7030d5190e247211bef2a1',1,'plugin.php']]],
+ ['head_5fremove_5fcss',['head_remove_css',['../plugin_8php.html#a9ab6caae31935f6cf781ce7872db7cdf',1,'plugin.php']]],
+ ['head_5fremove_5fjs',['head_remove_js',['../plugin_8php.html#a4a0ae7b881e7c8af99a69e3b03f898b4',1,'plugin.php']]],
['head_5fset_5ficon',['head_set_icon',['../classApp.html#a8863703a0305eaa45eb970dbd2046291',1,'App\head_set_icon()'],['../boot_8php.html#a0e4701c9742c3ef88f02ac450a042a84',1,'head_set_icon():&#160;boot.php']]],
['help',['help',['../namespacefriendica-to-smarty-tpl.html#af6b2c793958aae2aadc294577431f749',1,'friendica-to-smarty-tpl.help()'],['../namespaceupdatetpl.html#ac9d11279fed403a329a719298feafc4f',1,'updatetpl.help()']]],
['help_5fcontent',['help_content',['../help_8php.html#af055e15f600ffa6fbca9386fdf715224',1,'help.php']]],
+ ['home_5fcontent',['home_content',['../home_8php.html#aa1cf697851a646755baf537f75334c46',1,'home.php']]],
+ ['home_5finit',['home_init',['../home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde',1,'home.php']]],
['hostxrd_5finit',['hostxrd_init',['../hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92',1,'hostxrd.php']]],
['html2bb_5fvideo',['html2bb_video',['../text_8php.html#a138a3a611fa7f4f3630674145fc826bf',1,'text.php']]],
['html2bbcode',['html2bbcode',['../html2bbcode_8php.html#a5ad726995ac4070213abdb3bd09f4837',1,'html2bbcode.php']]],
['html2plain',['html2plain',['../html2plain_8php.html#ab3e121fa9f3feb16f9f942e705bc6c04',1,'html2plain.php']]],
+ ['htmlactionspanel',['htmlActionsPanel',['../classRedBrowser.html#a7f6bf0bda07833f4c647557bd172e349',1,'RedBrowser']]],
['http_5fstatus_5fexit',['http_status_exit',['../include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2',1,'network.php']]]
];
diff --git a/doc/html/search/functions_69.js b/doc/html/search/functions_69.js
index a1e34fb82..729f2476d 100644
--- a/doc/html/search/functions_69.js
+++ b/doc/html/search/functions_69.js
@@ -4,6 +4,7 @@ var searchData=
['identity_5fcheck_5fservice_5fclass',['identity_check_service_class',['../identity_8php.html#ac9fcd5c4c371998790b5c55c3d0f4633',1,'identity.php']]],
['ids_5fto_5fquerystr',['ids_to_querystr',['../text_8php.html#a436a8de00c942364c2d0fcfc7e1f4b5a',1,'text.php']]],
['imagestring',['imageString',['../classphoto__driver.html#abc9f73ad90923772d52b9fcc4eb117dd',1,'photo_driver\imageString()'],['../classphoto__gd.html#a0795fc029be382557ae3f6e285f40e00',1,'photo_gd\imageString()'],['../classphoto__imagick.html#a70adbef31128c0ac8cbc5dcf34cdb019',1,'photo_imagick\imageString()']]],
+ ['import_5fauthor_5frss',['import_author_rss',['../items_8php.html#a6bee35961f2e32905f20367a9309d627',1,'items.php']]],
['import_5fauthor_5fxchan',['import_author_xchan',['../items_8php.html#ae73794179b62d39bb597ff670ab1c1e5',1,'items.php']]],
['import_5fauthor_5fzot',['import_author_zot',['../zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d',1,'zot.php']]],
['import_5fchannel_5fphoto',['import_channel_photo',['../photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a',1,'photo_driver.php']]],
@@ -11,7 +12,7 @@ var searchData=
['import_5fdirectory_5fkeywords',['import_directory_keywords',['../zot_8php.html#a3bf11286c2619b4ca28e49d5b5ab374a',1,'zot.php']]],
['import_5fdirectory_5fprofile',['import_directory_profile',['../zot_8php.html#aeec89da5b6ff090c63a79de4de884a35',1,'zot.php']]],
['import_5fpost',['import_post',['../import_8php.html#af17fef0410518f7eac205d0ea416eaa2',1,'import.php']]],
- ['import_5fprofile_5fphoto',['import_profile_photo',['../photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca',1,'photo_driver.php']]],
+ ['import_5fprofile_5fphoto',['import_profile_photo',['../photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887',1,'photo_driver.php']]],
['import_5fsite',['import_site',['../zot_8php.html#a2657e141d62d5f67ad3c87651b585299',1,'zot.php']]],
['import_5fxchan',['import_xchan',['../zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1',1,'zot.php']]],
['in_5farrayi',['in_arrayi',['../text_8php.html#a75c326298519ed14ebe762194c8a3f2a',1,'text.php']]],
@@ -19,14 +20,13 @@ var searchData=
['insert_5fhook',['insert_hook',['../plugin_8php.html#aeaebe63dcf6fa2794f363ba2bc0b2c6b',1,'plugin.php']]],
['install',['install',['../classdba__driver.html#a4ccb27243e62a8ca30dd8e1b8cc67746',1,'dba_driver']]],
['install_5fplugin',['install_plugin',['../plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5',1,'plugin.php']]],
- ['intro_5faside',['intro_aside',['../intro_8php.html#abc3abf25da64f98f215126eb08c7936b',1,'intro.php']]],
- ['intro_5fcontent',['intro_content',['../intro_8php.html#a3e2a523697633ddb4517b9266a515f5b',1,'intro.php']]],
- ['intro_5fpost',['intro_post',['../intro_8php.html#af3681062183ccbdf065ae2647b07d6f1',1,'intro.php']]],
['invite_5fcontent',['invite_content',['../invite_8php.html#a244385b28cfd021d308715f01158bfd9',1,'invite.php']]],
['invite_5fpost',['invite_post',['../invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5',1,'invite.php']]],
['is_5fa_5fdate_5farg',['is_a_date_arg',['../text_8php.html#a1557112a774ec00fa06ed6b6f6495506',1,'text.php']]],
['is_5fajax',['is_ajax',['../boot_8php.html#ac17fc8a416ea79e9d5cb4dc9a8ff8c5c',1,'boot.php']]],
['is_5fcommentable',['is_commentable',['../classConversation.html#a8b47c92b69459d461ea3cc9aae9597a3',1,'Conversation\is_commentable()'],['../classItem.html#ac04525a8be24c12b0a2ae4ca1ba4b967',1,'Item\is_commentable()']]],
+ ['is_5fforeigner',['is_foreigner',['../identity_8php.html#ae2b140df652a55ca11bb6a99005fce35',1,'identity.php']]],
+ ['is_5fmember',['is_member',['../identity_8php.html#a9637c557e13d9671f3eeb124ab98212a',1,'identity.php']]],
['is_5fpreview',['is_preview',['../classConversation.html#adf25ce023b69a166c63c6e84e02c136a',1,'Conversation']]],
['is_5fsite_5fadmin',['is_site_admin',['../boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e',1,'boot.php']]],
['is_5fthreaded',['is_threaded',['../classItem.html#a5b2fafdca55aefeaa08993a5a60529f0',1,'Item']]],
@@ -34,6 +34,7 @@ var searchData=
['is_5fvalid',['is_valid',['../classphoto__driver.html#a97289aef3be43d9435ca3717ef10b8ab',1,'photo_driver']]],
['is_5fvisiting',['is_visiting',['../classItem.html#a97c7feeea7f26a73176cb19faa455e12',1,'Item']]],
['is_5fwall_5fto_5fwall',['is_wall_to_wall',['../classItem.html#aabf87ded59c25b5fe2b2296678e70509',1,'Item']]],
+ ['is_5fwindows',['is_windows',['../boot_8php.html#ac5e74f899f6e98d8e91b14ba1c08bc08',1,'boot.php']]],
['is_5fwritable',['is_writable',['../classConversation.html#a5879199008b96bee7550b576d614e1c1',1,'Conversation']]],
['item_5fcheck_5fservice_5fclass',['item_check_service_class',['../item_8php.html#a5b1b36cb301a94b38150074f0d424e74',1,'item.php']]],
['item_5fcontent',['item_content',['../item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221',1,'item.php']]],
diff --git a/doc/html/search/functions_6c.js b/doc/html/search/functions_6c.js
index 7df51ec1b..c3f8d4cf8 100644
--- a/doc/html/search/functions_6c.js
+++ b/doc/html/search/functions_6c.js
@@ -1,9 +1,6 @@
var searchData=
[
['lang_5fselector',['lang_selector',['../text_8php.html#a71f6952243d3fe1c5a8154f78027e29c',1,'text.php']]],
- ['lastpost_5faside',['lastpost_aside',['../lastpost_8php.html#a6108289ef2a767495c7c85a24f364983',1,'lastpost.php']]],
- ['lastpost_5fcontent',['lastpost_content',['../lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493',1,'lastpost.php']]],
- ['lastpost_5finit',['lastpost_init',['../lastpost_8php.html#ab4c6ebd25736af678e64d55ce508ce8c',1,'lastpost.php']]],
['layout_5fselect',['layout_select',['../text_8php.html#a3999a0b3e22e440f280ee791ce34d384',1,'text.php']]],
['layouts_5fcontent',['layouts_content',['../layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50',1,'layouts.php']]],
['legal_5fwebbie',['legal_webbie',['../text_8php.html#a2690ad67bb6fb97ef69de3e8d23f2728',1,'text.php']]],
@@ -23,9 +20,11 @@ var searchData=
['load_5fplugin',['load_plugin',['../plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d',1,'plugin.php']]],
['load_5ftranslation_5ftable',['load_translation_table',['../language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05',1,'language.php']]],
['load_5fxconfig',['load_xconfig',['../include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33',1,'config.php']]],
+ ['local_5fdir_5fupdate',['local_dir_update',['../dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e',1,'dir_fns.php']]],
['local_5fuser',['local_user',['../boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44',1,'boot.php']]],
['localize_5fitem',['localize_item',['../conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c',1,'conversation.php']]],
['lockview_5fcontent',['lockview_content',['../lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44',1,'lockview.php']]],
+ ['log',['log',['../classRedDirectory.html#a11376aed1963b4471eb1592c13c63976',1,'RedDirectory\log()'],['../classRedBasicAuth.html#a2cc8b1eac9c5a799bfb53ea7f287f3f0',1,'RedBasicAuth\log()']]],
['logger',['logger',['../text_8php.html#a030fa5ecc64168af0c4f44897a9bce63',1,'text.php']]],
['login',['login',['../boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4',1,'boot.php']]],
['login_5fcontent',['login_content',['../login_8php.html#a1d69ca88eb9005a7026e128b9a645904',1,'login.php']]],
diff --git a/doc/html/search/functions_6d.js b/doc/html/search/functions_6d.js
index c43f6598b..1b238fec5 100644
--- a/doc/html/search/functions_6d.js
+++ b/doc/html/search/functions_6d.js
@@ -3,12 +3,15 @@ var searchData=
['magic_5finit',['magic_init',['../magic_8php.html#acea2cc792849ca2d71d4b689f66518bf',1,'magic.php']]],
['magic_5flink',['magic_link',['../text_8php.html#a1e510c53624933ce9b7d6715784894db',1,'text.php']]],
['magiclink_5furl',['magiclink_url',['../text_8php.html#a24d441d30df4b8e6bf6780bf62a5e2c6',1,'text.php']]],
+ ['mail_5fcontent',['mail_content',['../mail_8php.html#a3c7c485fc69f92371e8b20936040eca1',1,'mail.php']]],
+ ['mail_5fpost',['mail_post',['../mail_8php.html#acfc2cc0bf4e0b178207758384977f25a',1,'mail.php']]],
['mail_5fstore',['mail_store',['../items_8php.html#a77da7ce9a117601d49ac4a67c71b514f',1,'items.php']]],
['manage_5fcontent',['manage_content',['../manage_8php.html#a2bca247b5296827638959138367db4f5',1,'manage.php']]],
['manual_5fconfig',['manual_config',['../setup_8php.html#abe405d227ba7232971964a706d4f3bce',1,'setup.php']]],
['map_5fscope',['map_scope',['../items_8php.html#ac1fcf621dce7370515b420a7753f4726',1,'items.php']]],
['marital_5fselector',['marital_selector',['../profile__selectors_8php.html#a7473dd095987e1cdcc79d4f0bb5e6798',1,'profile_selectors.php']]],
['match_5fcontent',['match_content',['../match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d',1,'match.php']]],
+ ['match_5fopenid',['match_openid',['../auth_8php.html#ab7be44ee051c0aa29847807cf2c5dd38',1,'auth.php']]],
['member_5fof',['member_of',['../include_2group_8php.html#a048f6892bfd28852de1b76470df411de',1,'group.php']]],
['menu_5fadd_5fitem',['menu_add_item',['../include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8',1,'menu.php']]],
['menu_5fcontent',['menu_content',['../mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf',1,'menu.php']]],
@@ -20,12 +23,10 @@ var searchData=
['menu_5fedit_5fitem',['menu_edit_item',['../include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa',1,'menu.php']]],
['menu_5ffetch',['menu_fetch',['../include_2menu_8php.html#a68ebbf492470c930f652013656f9071d',1,'menu.php']]],
['menu_5ffetch_5fid',['menu_fetch_id',['../include_2menu_8php.html#a47447c01ba8ea04cd74af1d4c5b68fc7',1,'menu.php']]],
- ['menu_5flist',['menu_list',['../include_2menu_8php.html#acef15a498d52666b1c7e5c12765c689b',1,'menu.php']]],
+ ['menu_5flist',['menu_list',['../include_2menu_8php.html#a32701c4245e78ba9106eef52c08bf33d',1,'menu.php']]],
['menu_5fpost',['menu_post',['../mod_2menu_8php.html#aaa491ef173868fe002aece4632bcf393',1,'menu.php']]],
- ['menu_5frender',['menu_render',['../include_2menu_8php.html#a890cc6237971e15f15702e6b2e88502e',1,'menu.php']]],
- ['message_5faside',['message_aside',['../mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7',1,'message.php']]],
- ['message_5fcontent',['message_content',['../mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79',1,'message.php']]],
- ['message_5fpost',['message_post',['../mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718',1,'message.php']]],
+ ['menu_5frender',['menu_render',['../include_2menu_8php.html#a4d7123b0577fa994770199f9b831da11',1,'menu.php']]],
+ ['message_5fcontent',['message_content',['../mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f',1,'message.php']]],
['micropro',['micropro',['../text_8php.html#a2a902f5fdba8646333e997898ac45ea3',1,'text.php']]],
['mimetype_5fselect',['mimetype_select',['../text_8php.html#a1633412120f52bdce5f43e0a127d9293',1,'text.php']]],
['mini_5fgroup_5fselect',['mini_group_select',['../include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32',1,'group.php']]],
diff --git a/doc/html/search/functions_6e.js b/doc/html/search/functions_6e.js
index 075156110..c51d3673c 100644
--- a/doc/html/search/functions_6e.js
+++ b/doc/html/search/functions_6e.js
@@ -21,6 +21,7 @@ var searchData=
['normalise_5flink',['normalise_link',['../text_8php.html#a4bbb7d00c05cd20b4e043424f322388f',1,'text.php']]],
['normalise_5fopenid',['normalise_openid',['../text_8php.html#adba17ec946f4285285dc100f7860bf51',1,'text.php']]],
['notags',['notags',['../text_8php.html#a1af49756c8c71902a66c7e329c462beb',1,'text.php']]],
+ ['notes_5finit',['notes_init',['../notes_8php.html#a4dbd7b1f906440746af48b484d66535a',1,'notes.php']]],
['notice',['notice',['../boot_8php.html#a9255af5ae9c887520091ea04763c1a88',1,'boot.php']]],
['notification',['notification',['../enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc',1,'enotify.php']]],
['notifications_5fcontent',['notifications_content',['../notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62',1,'notifications.php']]],
diff --git a/doc/html/search/functions_6f.js b/doc/html/search/functions_6f.js
index b6278b300..8497d0358 100644
--- a/doc/html/search/functions_6f.js
+++ b/doc/html/search/functions_6f.js
@@ -1,7 +1,7 @@
var searchData=
[
['oauth_5fget_5fclient',['oauth_get_client',['../mod_2api_8php.html#a02ae0f60e240dc806b860edb7d582117',1,'api.php']]],
- ['obj_5fverb_5fselector',['obj_verb_selector',['../taxonomy_8php.html#ac12a651a42ed77f8dc7072c6168811a2',1,'taxonomy.php']]],
+ ['obj_5fverb_5fselector',['obj_verb_selector',['../taxonomy_8php.html#af387463d42ffdf7d2ab3d5b22e40a0c7',1,'taxonomy.php']]],
['obj_5fverbs',['obj_verbs',['../taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce',1,'taxonomy.php']]],
['oe_5fbuild_5fxpath',['oe_build_xpath',['../include_2oembed_8php.html#ab953a6e7c11bc6498ce01ed73e2ba319',1,'oembed.php']]],
['oe_5fget_5finner_5fhtml',['oe_get_inner_html',['../include_2oembed_8php.html#a03fa3b7832c98a3d0b4630afeb73d487',1,'oembed.php']]],
@@ -16,6 +16,8 @@ var searchData=
['oexchange_5finit',['oexchange_init',['../oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59',1,'oexchange.php']]],
['onedirsync_5frun',['onedirsync_run',['../onedirsync_8php.html#a411aedd47c57476099647961e6a86691',1,'onedirsync.php']]],
['onepoll_5frun',['onepoll_run',['../onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d',1,'onepoll.php']]],
+ ['online_5finit',['online_init',['../online_8php.html#a80e107c84eb722b0ca11d0413b96f9f7',1,'online.php']]],
+ ['openid_5fcontent',['openid_content',['../openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43',1,'openid.php']]],
['opensearch_5finit',['opensearch_init',['../opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9',1,'opensearch.php']]],
['orient',['orient',['../classphoto__driver.html#a4de5bac8daea8f291a33c80788019d0d',1,'photo_driver']]]
];
diff --git a/doc/html/search/functions_70.js b/doc/html/search/functions_70.js
index 00f3caee0..0802f705b 100644
--- a/doc/html/search/functions_70.js
+++ b/doc/html/search/functions_70.js
@@ -28,6 +28,7 @@ var searchData=
['photos_5fpost',['photos_post',['../mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080',1,'photos.php']]],
['php_5finit',['php_init',['../php_8php.html#adb7164dfed9a4ecbe2e168e1e78f12f6',1,'php.php']]],
['ping_5finit',['ping_init',['../ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1',1,'ping.php']]],
+ ['pipe_5fstreams',['pipe_streams',['../include_2attach_8php.html#a5d484de2d19a93071571d6499a50ae34',1,'attach.php']]],
['pkcs5_5fpad',['pkcs5_pad',['../crypto_8php.html#ad5e51fd44cff93cfaa07a37e24a5edec',1,'crypto.php']]],
['pkcs5_5funpad',['pkcs5_unpad',['../crypto_8php.html#ac95ac3b1b23b65b04a86613d4206ae85',1,'crypto.php']]],
['po2php_5frun',['po2php_run',['../po2php_8php.html#a3b75e36f913198299e99559b175cd8b4',1,'po2php.php']]],
@@ -57,7 +58,6 @@ var searchData=
['post_5fto_5fred_5fpost_5ffield_5fdata',['post_to_red_post_field_data',['../post__to__red_8php.html#a7e68a8d9c83cb28d032aad3ea85ce0a6',1,'post_to_red.php']]],
['post_5fto_5fred_5fpost_5fmeta_5fcontent',['post_to_red_post_meta_content',['../post__to__red_8php.html#aa97aeda12ef080665f16311a4e1eb901',1,'post_to_red.php']]],
['post_5fto_5fred_5fsettings_5flink',['post_to_red_settings_link',['../post__to__red_8php.html#a906be8f72cf1aa2e199c0683ea6a4017',1,'post_to_red.php']]],
- ['posted_5fdate_5fwidget',['posted_date_widget',['../items_8php.html#abe695dd89e1e10ed042c26b80114f0ed',1,'items.php']]],
['posted_5fdates',['posted_dates',['../items_8php.html#ad2abb4644ff1f20fefbc80326fe01cf0',1,'items.php']]],
['preg_5fcallback_5fhelp_5finclude',['preg_callback_help_include',['../help_8php.html#a06b2a51aaabed99e53a9b639047c4ce4',1,'help.php']]],
['preg_5fheart',['preg_heart',['../text_8php.html#ac19d2b33a58372a357a43d51eed19162',1,'text.php']]],
@@ -78,22 +78,18 @@ var searchData=
['process_5fmail_5fdelivery',['process_mail_delivery',['../zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc',1,'zot.php']]],
['process_5fprofile_5fdelivery',['process_profile_delivery',['../zot_8php.html#a9a57b40669351c9791126b925cb7ef3b',1,'zot.php']]],
['profile_5factivity',['profile_activity',['../activities_8php.html#a80134e807719b3c54aba971958d2e132',1,'activities.php']]],
- ['profile_5faside',['profile_aside',['../profile_8php.html#a1a2482b775476f2f64ea5e8f4fc3fd1e',1,'profile.php']]],
['profile_5fcontent',['profile_content',['../profile_8php.html#a3775cf6eef6587e5143133356a7b76c0',1,'profile.php']]],
['profile_5fcreate_5fsidebar',['profile_create_sidebar',['../identity_8php.html#ad4a2c8caca8f6ae93633ebeca0ed6620',1,'identity.php']]],
['profile_5finit',['profile_init',['../profile_8php.html#ab5d0246be0552e2182a585c1206d22a5',1,'profile.php']]],
['profile_5fload',['profile_load',['../identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68',1,'identity.php']]],
- ['profile_5fphoto_5faside',['profile_photo_aside',['../profile__photo_8php.html#ac9cd968a767e2ae1b88383b6cdd6dbe3',1,'profile_photo.php']]],
['profile_5fphoto_5finit',['profile_photo_init',['../profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02',1,'profile_photo.php']]],
['profile_5fphoto_5fpost',['profile_photo_post',['../profile__photo_8php.html#a4b80234074bd603221aa5364f330e479',1,'profile_photo.php']]],
['profile_5fsidebar',['profile_sidebar',['../identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc',1,'identity.php']]],
['profile_5ftabs',['profile_tabs',['../conversation_8php.html#a1dfcb5146e9d1eca4528bc580ad5d273',1,'conversation.php']]],
['profiler',['profiler',['../text_8php.html#a8b0a799341b1fc4cba2c3ede3e3fc9b6',1,'text.php']]],
- ['profiles_5faside',['profiles_aside',['../profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c',1,'profiles.php']]],
['profiles_5fcontent',['profiles_content',['../profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00',1,'profiles.php']]],
['profiles_5finit',['profiles_init',['../profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e',1,'profiles.php']]],
['profiles_5fpost',['profiles_post',['../profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04',1,'profiles.php']]],
- ['profperm_5faside',['profperm_aside',['../profperm_8php.html#a77fd398ae7c25142e1d9ad724ec347cc',1,'profperm.php']]],
['profperm_5fcontent',['profperm_content',['../profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023',1,'profperm.php']]],
['profperm_5finit',['profperm_init',['../profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6',1,'profperm.php']]],
['protect_5fsprintf',['protect_sprintf',['../text_8php.html#a4e7698aca48982512594b274543c3b9b',1,'text.php']]],
diff --git a/doc/html/search/functions_71.js b/doc/html/search/functions_71.js
index 64b6af3a9..11b357b31 100644
--- a/doc/html/search/functions_71.js
+++ b/doc/html/search/functions_71.js
@@ -2,7 +2,6 @@ var searchData=
[
['q',['q',['../classdba__driver.html#a558e738b88ae893cc5d79ffa3793d555',1,'dba_driver\q()'],['../classdba__mysql.html#ac3fd60c278f400907322dac578754a99',1,'dba_mysql\q()'],['../classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec',1,'dba_mysqli\q()'],['../dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f',1,'q():&#160;dba_driver.php']]],
['qp',['qp',['../text_8php.html#afc998d2796a6b2a08e96f7cc061e7221',1,'text.php']]],
- ['qsearch_5finit',['qsearch_init',['../qsearch_8php.html#a0501887b95bd8fa21018b2936a668894',1,'qsearch.php']]],
['queue_5frun',['queue_run',['../queue_8php.html#af8c93de86d866c3200174c8450a0f341',1,'queue.php']]],
['quotelevel',['quotelevel',['../html2plain_8php.html#a56d29b254333d29abb9d96a9a903a4b0',1,'html2plain.php']]]
];
diff --git a/doc/html/search/functions_72.js b/doc/html/search/functions_72.js
index e00c170d9..96cc1c6c3 100644
--- a/doc/html/search/functions_72.js
+++ b/doc/html/search/functions_72.js
@@ -6,11 +6,16 @@ var searchData=
['rconnect_5furl',['rconnect_url',['../Contact_8php.html#a2f4f495d53f2a334ab75292af79d3c91',1,'Contact.php']]],
['rebuild_5ftheme_5ftable',['rebuild_theme_table',['../admin_8php.html#ae46311a3fefc21abc838a26e91789de6',1,'admin.php']]],
['red_5fcomment',['red_comment',['../post__to__red_8php.html#a085c250d4ceff5e4f10052f3d2039823',1,'post_to_red.php']]],
+ ['red_5fescape_5fcodeblock',['red_escape_codeblock',['../items_8php.html#a49905ea75adfe8a2d110be344d18d6a6',1,'items.php']]],
+ ['red_5fescape_5fzrl_5fcallback',['red_escape_zrl_callback',['../items_8php.html#a83a349062945d585edb4b3c5d763ab6e',1,'items.php']]],
+ ['red_5funescape_5fcodeblock',['red_unescape_codeblock',['../items_8php.html#ad4ee16e3ff1eaf60428c61f82ba25e6a',1,'items.php']]],
['red_5fxmlrpc_5fmethods',['red_xmlrpc_methods',['../post__to__red_8php.html#a3a2af6ad845239f26e86fccabf8639e1',1,'post_to_red.php']]],
['red_5fzrl_5fcallback',['red_zrl_callback',['../items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b',1,'items.php']]],
['redbasic_5fform',['redbasic_form',['../view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793',1,'config.php']]],
['redbasic_5finit',['redbasic_init',['../redbasic_2php_2theme_8php.html#af6eb813e9fc7e2d76ac1b82bc5c0ed9b',1,'theme.php']]],
- ['redir_5finit',['redir_init',['../redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5',1,'redir.php']]],
+ ['redchannellist',['RedChannelList',['../reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66',1,'reddav.php']]],
+ ['redcollectiondata',['RedCollectionData',['../reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266',1,'reddav.php']]],
+ ['redfiledata',['RedFileData',['../reddav_8php.html#a9f531641dfb4e43cd88ac1a9ae7e2088',1,'reddav.php']]],
['reduce',['reduce',['../docblox__errorchecker_8php.html#ae9562cf60aa693114603d27b55d2185f',1,'docblox_errorchecker.php']]],
['ref_5fsession_5fclose',['ref_session_close',['../session_8php.html#a5e1c616e02b863d5450317d101366bb7',1,'session.php']]],
['ref_5fsession_5fdestroy',['ref_session_destroy',['../session_8php.html#af230b86bfff7db66c3bdd7e0bbc24052',1,'session.php']]],
@@ -27,6 +32,7 @@ var searchData=
['relative_5fdate',['relative_date',['../datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82',1,'datetime.php']]],
['reload_5fplugins',['reload_plugins',['../plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025',1,'plugin.php']]],
['reltoabs',['reltoabs',['../text_8php.html#ad855a32bee22c3f3b9734e3a334b96f2',1,'text.php']]],
+ ['remote_5fonline_5fstatus',['remote_online_status',['../identity_8php.html#a47d6f53216f23a3484061793bef29854',1,'identity.php']]],
['remote_5fuser',['remote_user',['../boot_8php.html#a5542c5c2806ab8bca04bad53d47b5209',1,'boot.php']]],
['remove_5fall_5fxchan_5fresources',['remove_all_xchan_resources',['../Contact_8php.html#acc12cda999c88c4d6185cca967c15125',1,'Contact.php']]],
['remove_5fchild',['remove_child',['../classItem.html#a2ce70ef63f9f4d86a09c351678806925',1,'Item']]],
diff --git a/doc/html/search/functions_73.js b/doc/html/search/functions_73.js
index b62e60888..1448351cc 100644
--- a/doc/html/search/functions_73.js
+++ b/doc/html/search/functions_73.js
@@ -2,18 +2,17 @@ var searchData=
[
['sanitise_5facl',['sanitise_acl',['../text_8php.html#a9fbeae13c9abd6e27cb4d8d1817f969c',1,'text.php']]],
['save',['save',['../classphoto__driver.html#a5864fae7d8389372955a8e78cec527ac',1,'photo_driver']]],
- ['saved_5fsearches',['saved_searches',['../mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad',1,'network.php']]],
['saveimage',['saveImage',['../classphoto__driver.html#a22ecb8c696de65a5a10bd185be9d90c3',1,'photo_driver']]],
['scale_5fexternal_5fimages',['scale_external_images',['../include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f',1,'network.php']]],
['scaleimage',['scaleImage',['../classphoto__driver.html#af0f7ec48a31ae9b557b6e3f8bd5b4af0',1,'photo_driver']]],
['scaleimagesquare',['scaleImageSquare',['../classphoto__driver.html#a56634842b071b96502716e9843ea5361',1,'photo_driver']]],
['scaleimageup',['scaleImageUp',['../classphoto__driver.html#a1a63c4ae17e892a115ab9cf6efb960ce',1,'photo_driver']]],
+ ['script_5fpath',['script_path',['../plugin_8php.html#a0e8c2ea50bfdbc39e17ccccaea21ddc3',1,'plugin.php']]],
['search',['search',['../text_8php.html#a876e94892867019935b348b573299352',1,'text.php']]],
['search_5fac_5finit',['search_ac_init',['../search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138',1,'search_ac.php']]],
['search_5fcontent',['search_content',['../search_8php.html#ab2568591359edde5b483a6cd9a24b2cc',1,'search.php']]],
['search_5finit',['search_init',['../search_8php.html#acf19fd30f07f495781ca0d7a0a08b435',1,'search.php']]],
- ['search_5fpost',['search_post',['../search_8php.html#a230ec9681ddee3b5b8b40c8d550f32f7',1,'search.php']]],
- ['search_5fsaved_5fsearches',['search_saved_searches',['../search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6',1,'search.php']]],
+ ['searchbox',['searchbox',['../text_8php.html#aae91e4d2a2c6f7a9daccd2c186ae3447',1,'text.php']]],
['select_5ftimezone',['select_timezone',['../datetime_8php.html#a633dadba426fa2f60b25fabdb19ebc1f',1,'datetime.php']]],
['send',['send',['../classenotify.html#afbc088860f534c6c05788b48cfc262c6',1,'enotify']]],
['send_5fmessage',['send_message',['../include_2message_8php.html#a751ffd6635022b2190f56154ee745752',1,'message.php']]],
@@ -43,12 +42,15 @@ var searchData=
['set_5fpconfig',['set_pconfig',['../include_2config_8php.html#a61591371cb18764138655d67dc817ab2',1,'config.php']]],
['set_5fperms',['set_perms',['../classApp.html#a557d7b779d8259027f4724ebf7b248dc',1,'App']]],
['set_5fprofile_5fowner',['set_profile_owner',['../classConversation.html#a8898bddc1e8990e81dab9a13a532cc93',1,'Conversation']]],
+ ['set_5ftemplate',['set_template',['../classItem.html#af1b73df9b7c4b927e26b7e243b491f42',1,'Item']]],
['set_5ftemplate_5fengine',['set_template_engine',['../classApp.html#a20d1890cc16b22ba79eeb0cbf2f719f7',1,'App']]],
['set_5fwidget',['set_widget',['../classApp.html#a123b903dfe5d3488cc68db3471d36fd2',1,'App']]],
+ ['set_5fwriteable',['set_writeable',['../classRedBrowser.html#a40fdbb9d9fe6c1243bbf135dd5b0a06f',1,'RedBrowser']]],
['set_5fxconfig',['set_xconfig',['../include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e',1,'config.php']]],
+ ['setbrowserplugin',['setBrowserPlugin',['../classRedBasicAuth.html#a358ddad4abb5aa8c1382cf49a907adbc',1,'RedBasicAuth']]],
+ ['setcurrentuser',['setCurrentUser',['../classRedBasicAuth.html#a072e8244a9a7f191b32d3db5ac94f857',1,'RedBasicAuth']]],
['setdimensions',['setDimensions',['../classphoto__driver.html#ae663867d2c4eaa2fae50d60670920143',1,'photo_driver\setDimensions()'],['../classphoto__gd.html#a1c75304bd15f3b9986f0b315fb59271e',1,'photo_gd\setDimensions()'],['../classphoto__imagick.html#af92901d252c1e6ab5b54eebedbed23bb',1,'photo_imagick\setDimensions()']]],
- ['setname',['setName',['../classRedInode.html#a3d76322f25d847b123b3df37a26dd04e',1,'RedInode']]],
- ['settings_5faside',['settings_aside',['../settings_8php.html#ae5aebccb006bee1300078576baaf5582',1,'settings.php']]],
+ ['setname',['setName',['../classRedFile.html#a38a82bfc1b30028ea6ac75923e90fa25',1,'RedFile']]],
['settings_5finit',['settings_init',['../settings_8php.html#a3a4cde287482fced008583f54ba2a722',1,'settings.php']]],
['settings_5fpost',['settings_post',['../settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586',1,'settings.php']]],
['setup_5fcontent',['setup_content',['../setup_8php.html#a88247384a96e14516f474d7af6a465c1',1,'setup.php']]],
@@ -61,8 +63,8 @@ var searchData=
['siteinfo_5fcontent',['siteinfo_content',['../siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656',1,'siteinfo.php']]],
['siteinfo_5finit',['siteinfo_init',['../siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0',1,'siteinfo.php']]],
['sitelist_5finit',['sitelist_init',['../sitelist_8php.html#a665a59bf60f780b40f32c909f4a473b1',1,'sitelist.php']]],
- ['smile_5fdecode',['smile_decode',['../text_8php.html#aca0f589be74fab1a460c57e88dad9779',1,'text.php']]],
- ['smile_5fencode',['smile_encode',['../text_8php.html#a44d460fcdee6247c67b9bef3ea15f3e6',1,'text.php']]],
+ ['smile_5fshield',['smile_shield',['../text_8php.html#a10dde167249ed5abf190a7a0986878ea',1,'text.php']]],
+ ['smile_5funshield',['smile_unshield',['../text_8php.html#a273156a6f5cddc6652ad656821cd5805',1,'text.php']]],
['smilies',['smilies',['../text_8php.html#a3d225b253bb9e0f2498c11647d927b0b',1,'text.php']]],
['smilies_5fcontent',['smilies_content',['../smilies_8php.html#ab43b1e9f33a700a830aff14c7b3a617f',1,'smilies.php']]],
['sort_5fby_5fdate',['sort_by_date',['../event_8php.html#a018ea4484910a873a7c1eaa126de9b1a',1,'event.php']]],
@@ -72,6 +74,8 @@ var searchData=
['sort_5fthr_5fcreated_5frev',['sort_thr_created_rev',['../conversation_8php.html#a9cc2a679606da9e535a06433f9f553a0',1,'conversation.php']]],
['sources_5fcontent',['sources_content',['../sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7',1,'sources.php']]],
['sources_5fpost',['sources_post',['../sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e',1,'sources.php']]],
+ ['sslify',['sslify',['../text_8php.html#a33bdb5d4bfff2ede7caf61a98ac0a2e9',1,'text.php']]],
+ ['sslify_5finit',['sslify_init',['../sslify_8php.html#a75b11e54a3d1fc83e7d4c0e8b4dab316',1,'sslify.php']]],
['starred_5finit',['starred_init',['../starred_8php.html#a63024fb418c678e49fd535e3752d349a',1,'starred.php']]],
['startup',['startup',['../boot_8php.html#aca47505b8732177f52bb2d647eb2741c',1,'boot.php']]],
['status_5feditor',['status_editor',['../conversation_8php.html#a2a7d541854bba755eb8ada59af7dcb1a',1,'conversation.php']]],
@@ -80,16 +84,16 @@ var searchData=
['stream_5fperms_5fapi_5fuids',['stream_perms_api_uids',['../security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809',1,'security.php']]],
['stream_5fperms_5fxchans',['stream_perms_xchans',['../security_8php.html#a15e0f8f511cc06192db63387f97238b3',1,'security.php']]],
['string_5fplural_5fselect_5fdefault',['string_plural_select_default',['../language_8php.html#a151e5b4689aef86a12642cbb7a00bfe0',1,'language.php']]],
+ ['string_5fsplitter',['string_splitter',['../spam_8php.html#a05861201147b9a538d006f0269255cf9',1,'spam.php']]],
['stringify_5farray_5felms',['stringify_array_elms',['../text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13',1,'text.php']]],
+ ['strip_5fzids',['strip_zids',['../text_8php.html#a2f2585385530cb935a6325c809d84a4d',1,'text.php']]],
['stripdcode_5fbr_5fcb',['stripdcode_br_cb',['../bb2diaspora_8php.html#a180b0e3a7d702998be19e3c3b44b0e93',1,'bb2diaspora.php']]],
['subthread_5fcontent',['subthread_content',['../subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3',1,'subthread.php']]],
- ['suggest_5faside',['suggest_aside',['../suggest_8php.html#a4df91c84594d51ba56b5918de414230d',1,'suggest.php']]],
['suggest_5fcontent',['suggest_content',['../suggest_8php.html#a58748a8235d4523f8333847f3e42dd91',1,'suggest.php']]],
['suggest_5finit',['suggest_init',['../suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c',1,'suggest.php']]],
['suggestion_5fquery',['suggestion_query',['../socgraph_8php.html#a76e6fca3d2bc842dcd9e710bb87c8329',1,'socgraph.php']]],
['supportedtypes',['supportedTypes',['../classphoto__driver.html#a6eee8e36eaf9339f4faf80ddd43162da',1,'photo_driver\supportedTypes()'],['../classphoto__gd.html#a16f3dd7d3559f715aa2fe3f7880836dd',1,'photo_gd\supportedTypes()'],['../classphoto__imagick.html#a27596faca6108d9d563674d1b654a0b7',1,'photo_imagick\supportedTypes()']]],
['sync_5fdirectories',['sync_directories',['../dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6',1,'dir_fns.php']]],
- ['syncdirs',['syncdirs',['../dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a',1,'dir_fns.php']]],
['system_5fdown',['system_down',['../system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa',1,'system_unavailable.php']]],
['system_5funavailable',['system_unavailable',['../boot_8php.html#ac608a34f3bc180e7724192e0fd31f9b0',1,'boot.php']]]
];
diff --git a/doc/html/search/functions_74.js b/doc/html/search/functions_74.js
index 6b9dca5d7..7cef73235 100644
--- a/doc/html/search/functions_74.js
+++ b/doc/html/search/functions_74.js
@@ -31,5 +31,7 @@ var searchData=
['toggle_5fsafesearch_5finit',['toggle_safesearch_init',['../toggle__safesearch_8php.html#a23d5cfb2727a266e44993ffbf5595a79',1,'toggle_safesearch.php']]],
['toggle_5ftheme',['toggle_theme',['../admin_8php.html#af81f081851791cd15e49e8ff6722dc27',1,'admin.php']]],
['tryoembed',['tryoembed',['../bbcode_8php.html#a55b0cb6973f1ec731de0e726bcc0efa7',1,'bbcode.php']]],
+ ['tryzrlaudio',['tryzrlaudio',['../bbcode_8php.html#a39de4de32a9456d1ca914d0dc52bd322',1,'bbcode.php']]],
+ ['tryzrlvideo',['tryzrlvideo',['../bbcode_8php.html#aa92f119341f4c69dcef2768a013079b8',1,'bbcode.php']]],
['tt',['tt',['../language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d',1,'language.php']]]
];
diff --git a/doc/html/search/functions_75.js b/doc/html/search/functions_75.js
index 2345f8a3c..ef023b551 100644
--- a/doc/html/search/functions_75.js
+++ b/doc/html/search/functions_75.js
@@ -17,6 +17,7 @@ var searchData=
['update_5fmodtime',['update_modtime',['../zot_8php.html#ab319d1d9fff9c7775d9daef42d1f33dd',1,'zot.php']]],
['update_5fnetwork_5fcontent',['update_network_content',['../update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41',1,'update_network.php']]],
['update_5fqueue_5ftime',['update_queue_time',['../queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1',1,'queue_fn.php']]],
+ ['update_5fremote_5fid',['update_remote_id',['../items_8php.html#a2baa9e05f1e8aa3dd61c85803ae39bd6',1,'items.php']]],
['update_5fsearch_5fcontent',['update_search_content',['../update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52',1,'update_search.php']]],
['update_5fsuggestions',['update_suggestions',['../socgraph_8php.html#a790690bb1a1d02483fe31632a160144d',1,'socgraph.php']]],
['upgrade_5fbool_5fmessage',['upgrade_bool_message',['../plugin_8php.html#a754d7f53b3abc557b753c057dc4e021d',1,'plugin.php']]],
diff --git a/doc/html/search/functions_76.js b/doc/html/search/functions_76.js
index 562e0412b..7e2c42234 100644
--- a/doc/html/search/functions_76.js
+++ b/doc/html/search/functions_76.js
@@ -8,7 +8,6 @@ var searchData=
['var_5freplace',['var_replace',['../classTemplate.html#abbc484016ddf5d818f55b823cae6feb0',1,'Template']]],
['vcard_5ffrom_5fxchan',['vcard_from_xchan',['../Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960',1,'Contact.php']]],
['view_5finit',['view_init',['../view_8php.html#ac168f6c61a91ba2063f13b441c0ae96e',1,'view.php']]],
- ['viewconnections_5faside',['viewconnections_aside',['../viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6',1,'viewconnections.php']]],
['viewconnections_5fcontent',['viewconnections_content',['../viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776',1,'viewconnections.php']]],
['viewconnections_5finit',['viewconnections_init',['../viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330',1,'viewconnections.php']]],
['viewsrc_5fcontent',['viewsrc_content',['../viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4',1,'viewsrc.php']]],
diff --git a/doc/html/search/functions_77.js b/doc/html/search/functions_77.js
index 85ab44b93..b7d1c9ca2 100644
--- a/doc/html/search/functions_77.js
+++ b/doc/html/search/functions_77.js
@@ -8,7 +8,29 @@ var searchData=
['webpages_5fcontent',['webpages_content',['../webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d',1,'webpages.php']]],
['wfinger_5finit',['wfinger_init',['../wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3',1,'wfinger.php']]],
['what_5fnext',['what_next',['../setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58',1,'setup.php']]],
+ ['widget_5faffinity',['widget_affinity',['../widgets_8php.html#add9b24d3304e529a7975e96122315554',1,'widgets.php']]],
+ ['widget_5farchive',['widget_archive',['../widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65',1,'widgets.php']]],
+ ['widget_5fcategories',['widget_categories',['../widgets_8php.html#af37fdad3b2e861d860a4a8c4d8a76c0b',1,'widgets.php']]],
+ ['widget_5fchatroom_5flist',['widget_chatroom_list',['../widgets_8php.html#a47c72aac42058ea086c9ef8651c259da',1,'widgets.php']]],
+ ['widget_5fcollections',['widget_collections',['../widgets_8php.html#aa189a07241246d97efbee29f1c6a6f7f',1,'widgets.php']]],
+ ['widget_5fdesign_5ftools',['widget_design_tools',['../widgets_8php.html#a145ff35319cfa47a9cc07f9425bd674b',1,'widgets.php']]],
+ ['widget_5fdirsafemode',['widget_dirsafemode',['../widgets_8php.html#a268b01ce1ab8fe2cb346cb769b9d1091',1,'widgets.php']]],
+ ['widget_5fdirsort',['widget_dirsort',['../widgets_8php.html#a95c06bc9be133e89768746302d2ac395',1,'widgets.php']]],
+ ['widget_5fdirtags',['widget_dirtags',['../widgets_8php.html#a08035db02ff6a23260146b4c64153422',1,'widgets.php']]],
+ ['widget_5ffiler',['widget_filer',['../widgets_8php.html#a5ab3b64496e02cab56429978ad55f1c0',1,'widgets.php']]],
+ ['widget_5ffindpeople',['widget_findpeople',['../widgets_8php.html#ade630b19fb4c622b7b2f6f8ef89eefa2',1,'widgets.php']]],
+ ['widget_5ffollow',['widget_follow',['../widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd',1,'widgets.php']]],
+ ['widget_5ffullprofile',['widget_fullprofile',['../widgets_8php.html#a70442dfa079312d9d5e5ee01be51a165',1,'widgets.php']]],
+ ['widget_5fmailmenu',['widget_mailmenu',['../widgets_8php.html#afa2e55a78f95667a6da082efac7fec74',1,'widgets.php']]],
+ ['widget_5fmenu_5fpreview',['widget_menu_preview',['../widgets_8php.html#a3bdfb81bf9a8ddf219924fa7eaf22013',1,'widgets.php']]],
+ ['widget_5fnotes',['widget_notes',['../widgets_8php.html#a45ea061dabe9a8372e4ca3b9e5714256',1,'widgets.php']]],
+ ['widget_5fphoto_5falbums',['widget_photo_albums',['../widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e',1,'widgets.php']]],
['widget_5fprofile',['widget_profile',['../widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923',1,'widgets.php']]],
+ ['widget_5fsavedsearch',['widget_savedsearch',['../widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8',1,'widgets.php']]],
+ ['widget_5fsettings_5fmenu',['widget_settings_menu',['../widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01',1,'widgets.php']]],
+ ['widget_5fsuggestions',['widget_suggestions',['../widgets_8php.html#a0d404276fedc59f5038cf5c085028326',1,'widgets.php']]],
['widget_5ftagcloud',['widget_tagcloud',['../widgets_8php.html#a6dbc227aac750774284ee39c45f0a200',1,'widgets.php']]],
+ ['widget_5ftagcloud_5fwall',['widget_tagcloud_wall',['../widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653',1,'widgets.php']]],
+ ['widget_5fvcard',['widget_vcard',['../widgets_8php.html#abe03366fd22fd27d683518fa0765da50',1,'widgets.php']]],
['writepages_5fwidget',['writepages_widget',['../page__widgets_8php.html#a1a1e729da27f252cab6678288a17958f',1,'page_widgets.php']]]
];
diff --git a/doc/html/search/functions_78.js b/doc/html/search/functions_78.js
index 038aa6810..97e977ea8 100644
--- a/doc/html/search/functions_78.js
+++ b/doc/html/search/functions_78.js
@@ -8,5 +8,6 @@ var searchData=
['xml_5fstatus',['xml_status',['../include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6',1,'network.php']]],
['xmlify',['xmlify',['../text_8php.html#aaed4413ed8918838b517e3b2fafaea0d',1,'text.php']]],
['xpost_5fto_5fhtml2bbcode',['xpost_to_html2bbcode',['../post__to__red_8php.html#af2713018a2dc97e88f121fc6215beb66',1,'post_to_red.php']]],
- ['xrd_5finit',['xrd_init',['../xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270',1,'xrd.php']]]
+ ['xrd_5finit',['xrd_init',['../xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270',1,'xrd.php']]],
+ ['xref_5finit',['xref_init',['../xref_8php.html#a9bee399213b8de8226b0d60834307473',1,'xref.php']]]
];
diff --git a/doc/html/search/functions_7a.js b/doc/html/search/functions_7a.js
index ed0141186..13a4cefe7 100644
--- a/doc/html/search/functions_7a.js
+++ b/doc/html/search/functions_7a.js
@@ -23,7 +23,7 @@ var searchData=
['zot_5fimport',['zot_import',['../zot_8php.html#aeea071f17e306fe3d0c488551906bfab',1,'zot.php']]],
['zot_5fnew_5fuid',['zot_new_uid',['../zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7',1,'zot.php']]],
['zot_5fprocess_5fresponse',['zot_process_response',['../zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03',1,'zot.php']]],
- ['zot_5frefresh',['zot_refresh',['../zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d',1,'zot.php']]],
+ ['zot_5frefresh',['zot_refresh',['../zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c',1,'zot.php']]],
['zot_5fregister_5fhub',['zot_register_hub',['../zot_8php.html#a5bcdfef419b16075a0eca990956223dc',1,'zot.php']]],
['zot_5fzot',['zot_zot',['../zot_8php.html#ab3e9b99ddb11353f37f265a05bb42142',1,'zot.php']]],
['zotfeed_5finit',['zotfeed_init',['../zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac',1,'zotfeed.php']]],
diff --git a/doc/html/search/variables_24.js b/doc/html/search/variables_24.js
index 529ec0c2d..d2a44072d 100644
--- a/doc/html/search/variables_24.js
+++ b/doc/html/search/variables_24.js
@@ -9,20 +9,18 @@ var searchData=
['_24argv',['$argv',['../classApp.html#ab3da757abe5cb45bf88f07cc51a73b58',1,'App']]],
['_24arr',['$arr',['../extract_8php.html#a63bb4c41bc532baacf6a4976cfaa0feb',1,'extract.php']]],
['_24aside',['$aside',['../minimalisticdarkness_8php.html#a6e5d97615c6faef5dbffe04b8024ceaf',1,'minimalisticdarkness.php']]],
- ['_24attach',['$attach',['../classRedInode.html#a7b317eb1230930154107ed51e54193f5',1,'RedInode']]],
- ['_24auth',['$auth',['../classRedDirectory.html#a9616af16cd19a18a6afebebcc2881c44',1,'RedDirectory']]],
- ['_24background_5fimage',['$background_image',['../redbasic_2php_2style_8php.html#a339624aeef6604a2f00209a3962c6e1c',1,'style.php']]],
- ['_24banner_5fcolour',['$banner_colour',['../redbasic_2php_2style_8php.html#ae587aa6949ab6e4aa77a591e60f67ee0',1,'style.php']]],
+ ['_24auth',['$auth',['../classRedDirectory.html#a9616af16cd19a18a6afebebcc2881c44',1,'RedDirectory\$auth()'],['../classRedFile.html#a4b5d0e33f919c6c175b30a55de6263f2',1,'RedFile\$auth()'],['../classRedBrowser.html#ab6d6d1e2a67e06b344a4cede1bd00b35',1,'RedBrowser\$auth()']]],
['_24baseurl',['$baseurl',['../classApp.html#ad5175536561021548ae8188e24c7b80c',1,'App']]],
- ['_24bgcolour',['$bgcolour',['../redbasic_2php_2style_8php.html#a0bdce350cf14bac44976e786d1be6574',1,'style.php']]],
- ['_24body_5ffont_5fsize',['$body_font_size',['../redbasic_2php_2style_8php.html#ad78cb8a1793834626d73aca22a1501f8',1,'style.php']]],
['_24bodyclass',['$bodyclass',['../theme_2blogga_2php_2default_8php.html#a720581ae288aa09511670563e4205a4a',1,'$bodyclass():&#160;default.php'],['../theme_2blogga_2view_2theme_2blog_2default_8php.html#a720581ae288aa09511670563e4205a4a',1,'$bodyclass():&#160;default.php']]],
+ ['_24browser',['$browser',['../classRedBasicAuth.html#af14337f1baad407f8a85d48205c0f30e',1,'RedBasicAuth']]],
['_24cached_5fprofile_5fimage',['$cached_profile_image',['../classApp.html#abe0e4fa91097f7a6588e1213a834121c',1,'App']]],
['_24cached_5fprofile_5fpicdate',['$cached_profile_picdate',['../classApp.html#aab4a685d15a363bb1d7edbbc20bfb94e',1,'App']]],
['_24called_5fapi',['$called_api',['../include_2api_8php.html#aa62b15a6bbb280e86b98132eb214013d',1,'api.php']]],
['_24category',['$category',['../classApp.html#a5cfc098c061b7d765add58fd2ca97445',1,'App']]],
['_24channel',['$channel',['../classApp.html#a050b0696118da47e8b30859ad1a2c149',1,'App\$channel()'],['../classItem.html#acc32426c0f465391be8a99ad810c7b8e',1,'Item\$channel()'],['../php_2theme__init_8php.html#a54f32c086fe209c99769a4c4047dd864',1,'$channel():&#160;theme_init.php']]],
- ['_24channel_5fid',['$channel_id',['../classRedDirectory.html#ae624dcaa4d73a517f4b1616d33df690d',1,'RedDirectory']]],
+ ['_24channel_5fhash',['$channel_hash',['../classRedBasicAuth.html#ad5a3ea4dc4783b242d9dc6e76478b6ef',1,'RedBasicAuth']]],
+ ['_24channel_5fid',['$channel_id',['../classRedBasicAuth.html#a2dab393650d1573e3515969a153e8354',1,'RedBasicAuth']]],
+ ['_24channel_5fname',['$channel_name',['../classRedBasicAuth.html#a438ab125b6ef46581947e35d49cdebac',1,'RedBasicAuth']]],
['_24children',['$children',['../classItem.html#a80dcd0fb7673776c0967839d429c2a0f',1,'Item']]],
['_24cid',['$cid',['../classApp.html#ad1c8eb91a6fd470b94f34b7fdad3a2d0',1,'App']]],
['_24cipher',['$cipher',['../classConversation.html#aa95c1a62af38bdfba7add9549bec083b',1,'Conversation']]],
@@ -36,7 +34,6 @@ var searchData=
['_24contacts',['$contacts',['../classApp.html#a61ca6e3af82071ea25ff2fd5dbcddae2',1,'App']]],
['_24content',['$content',['../classApp.html#ac1d80a14492acc932715d54567d8a589',1,'App']]],
['_24conversation',['$conversation',['../classItem.html#a007424e3e3171dcfb4312a02161da6cd',1,'Item']]],
- ['_24converse_5fwidth',['$converse_width',['../redbasic_2php_2style_8php.html#a0cb037986e32302685d4f580dedd6473',1,'style.php']]],
['_24css_5fsources',['$css_sources',['../classApp.html#a6f55d087e1ff4710132c1b0863faa2ee',1,'App']]],
['_24curl_5fcode',['$curl_code',['../classApp.html#a256360c9184fed6d7556e0bc0a835d7f',1,'App']]],
['_24curl_5fheaders',['$curl_headers',['../classApp.html#af5007c42a693afd9c4899c243b2e1363',1,'App']]],
@@ -45,16 +42,15 @@ var searchData=
['_24db',['$db',['../classApp.html#a330410a288f3393d53772f5e98f857ea',1,'App\$db()'],['../classdba__driver.html#a3033b5f1c2716b52202faeaae2592fe6',1,'dba_driver\$db()']]],
['_24debug',['$debug',['../classdba__driver.html#af48e2afeded5285766bf92e22123ed03',1,'dba_driver\$debug()'],['../classTemplate.html#afc4afb6f89bebcd5480022312a56cb4a',1,'Template\$debug()']]],
['_24dir',['$dir',['../docblox__errorchecker_8php.html#a1659f0a629d408e0f849dbe4ee061e62',1,'docblox_errorchecker.php']]],
- ['_24dir_5fkey',['$dir_key',['../classRedDirectory.html#a8d5df814b2f825dd14c628a51b5829b5',1,'RedDirectory']]],
['_24dirs',['$dirs',['../typo_8php.html#a1b709c1d79631ebc8320b41bda028b54',1,'typo.php']]],
['_24dirstack',['$dirstack',['../docblox__errorchecker_8php.html#ab66bc0493d25f39bf8b4dcbb429f04e6',1,'docblox_errorchecker.php']]],
['_24done',['$done',['../classTemplate.html#abda4c8d049f70553338eae7c905e9d5c',1,'Template']]],
['_24error',['$error',['../classApp.html#ac1a8b2cd40609b231a560201a08852ba',1,'App\$error()'],['../classdba__driver.html#a84675d28c7bd9b7290dd37e66dbd216c',1,'dba_driver\$error()']]],
+ ['_24ext_5fpath',['$ext_path',['../classRedDirectory.html#a0f113244cd85c17848df991001d024f4',1,'RedDirectory']]],
['_24filelist',['$filelist',['../docblox__errorchecker_8php.html#a648a570b0f9f6e0e51b7267647c4b09b',1,'docblox_errorchecker.php']]],
['_24filename',['$filename',['../classFriendicaSmarty.html#a33fabbd4d6eef869df496adf357ae690',1,'FriendicaSmarty']]],
['_24files',['$files',['../extract_8php.html#a9590b15215a21e9b42eb546aeef79704',1,'$files():&#160;extract.php'],['../tpldebug_8php.html#a5358407d65f2ca826f96356a6642d149',1,'$files():&#160;tpldebug.php'],['../typo_8php.html#a9590b15215a21e9b42eb546aeef79704',1,'$files():&#160;typo.php']]],
- ['_24font_5fcolour',['$font_colour',['../redbasic_2php_2style_8php.html#a68e3ff836ec87ae1370c9f4a12c21c6b',1,'style.php']]],
- ['_24font_5fsize',['$font_size',['../redbasic_2php_2style_8php.html#afcbcf57d0b90d2e4226c2e8a1171befc',1,'style.php']]],
+ ['_24folder_5fhash',['$folder_hash',['../classRedDirectory.html#aa10254abf177bb2a0e4a88495725e09b',1,'RedDirectory']]],
['_24force_5fmax_5fitems',['$force_max_items',['../classApp.html#ae3f47830543d0d902f66913def8db66b',1,'App']]],
['_24gc_5fprobability',['$gc_probability',['../session_8php.html#a96b09cc763572f45280786a7b33feb7e',1,'session.php']]],
['_24groups',['$groups',['../classApp.html#ac6e6b1c7d6df408580ff79977fcfa656',1,'App']]],
@@ -68,10 +64,9 @@ var searchData=
['_24image',['$image',['../classphoto__driver.html#a7c78b5a01afe61ba3895ac07f4869b55',1,'photo_driver']]],
['_24infile',['$infile',['../php2po_8php.html#a61f8ddeb5557d46ebc546cc355bda214',1,'php2po.php']]],
['_24ink',['$ink',['../php2po_8php.html#a6b0b8ebd9ce811d1325ef2c129443bc0',1,'php2po.php']]],
+ ['_24install',['$install',['../classApp.html#a576ecb1c5b4a283221e6f2f0ec248251',1,'App']]],
['_24install_5fwizard_5fpass',['$install_wizard_pass',['../setup_8php.html#addb24714bc2542aa4f4215e98fe48432',1,'setup.php']]],
['_24interactive',['$interactive',['../classApp.html#a4c7cfc62d39508086cf300dc2e39c4df',1,'App']]],
- ['_24item_5fcolour',['$item_colour',['../redbasic_2php_2style_8php.html#a27cb59bbc750341f448cd0c298a7ea16',1,'style.php']]],
- ['_24item_5fopacity',['$item_opacity',['../redbasic_2php_2style_8php.html#a136b0a2cdeb37f3fa506d28f82dcdbf8',1,'style.php']]],
['_24itemfloat',['$itemfloat',['../minimalisticdarkness_8php.html#a7e6c3d4efde4e9a2de32308081372c6b',1,'minimalisticdarkness.php']]],
['_24js_5fsources',['$js_sources',['../classApp.html#a11e24b3ed9b33ffee7dd41d110b4366d',1,'App']]],
['_24k',['$k',['../php2po_8php.html#ad6726cfaa85d4b8299d2b0f034cbf178',1,'php2po.php']]],
@@ -83,16 +78,17 @@ var searchData=
['_24mode',['$mode',['../classConversation.html#afb03d1648dbfafe62caa1e30f32f2b1a',1,'Conversation']]],
['_24module',['$module',['../classApp.html#a9bf62f8e39585c0aa48fcffc3bf3484d',1,'App']]],
['_24module_5floaded',['$module_loaded',['../classApp.html#a6e4f0fbfa3cf6c11baebe22a03db6165',1,'App']]],
- ['_24name',['$name',['../classFriendicaSmartyEngine.html#aaba6a42101bc9ae32e36b7fa2e243f02',1,'FriendicaSmartyEngine\$name()'],['../classTemplate.html#a6eb301a51cc94d8b94f4548fbad85eae',1,'Template\$name()']]],
- ['_24nav_5fcolour',['$nav_colour',['../redbasic_2php_2style_8php.html#a8fdd5874587a9ad86fb05ed0be265649',1,'style.php']]],
- ['_24nav_5fmin_5fopacity',['$nav_min_opacity',['../redbasic_2php_2style_8php.html#ab5ec5703848e0132f8a8f3d3a53a58e1',1,'style.php']]],
+ ['_24name',['$name',['../classFriendicaSmartyEngine.html#aaba6a42101bc9ae32e36b7fa2e243f02',1,'FriendicaSmartyEngine\$name()'],['../classRedFile.html#acc48c05cd5a70951cb3c615ad84f03ba',1,'RedFile\$name()'],['../classTemplate.html#a6eb301a51cc94d8b94f4548fbad85eae',1,'Template\$name()']]],
['_24nav_5fpercent_5fmin_5fopacity',['$nav_percent_min_opacity',['../redbasic_2php_2style_8php.html#a01c151bf47f7da2b979aaa4cb868da4c',1,'style.php']]],
['_24nav_5fsel',['$nav_sel',['../classApp.html#a33a8e90b60ec4438f6fbf299d0f6839c',1,'App']]],
['_24needed',['$needed',['../docblox__errorchecker_8php.html#a852004caba0a34390297a079f4aaac73',1,'docblox_errorchecker.php']]],
['_24nodes',['$nodes',['../classTemplate.html#a8f4d17e49f42b876a97364c13fb572d1',1,'Template']]],
- ['_24observer',['$observer',['../classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f',1,'App\$observer()'],['../classConversation.html#a8748445aa26047ebed5141f3c3cbc244',1,'Conversation\$observer()']]],
+ ['_24observer',['$observer',['../classApp.html#a4ffe529fb14389f7fedf5fdc5f722e7f',1,'App\$observer()'],['../classConversation.html#a8748445aa26047ebed5141f3c3cbc244',1,'Conversation\$observer()'],['../classRedBasicAuth.html#aa75dc43b59adc98e38a98517d3fd35d1',1,'RedBasicAuth\$observer()']]],
+ ['_24os_5fpath',['$os_path',['../classRedDirectory.html#a3c148c07ad909985125aa4926d8d0021',1,'RedDirectory']]],
['_24out',['$out',['../php2po_8php.html#a48cb304902320d173a4eaa41543327b9',1,'php2po.php']]],
+ ['_24owner_5fid',['$owner_id',['../classRedBasicAuth.html#a09c1488a0b290f5a54dc15180c5690d7',1,'RedBasicAuth']]],
['_24owner_5fname',['$owner_name',['../classItem.html#a9594df6014b0b6f45364ea7a34510130',1,'Item']]],
+ ['_24owner_5fnick',['$owner_nick',['../classRedBasicAuth.html#a8d09b8d784cc810a0b3be580d05106a7',1,'RedBasicAuth']]],
['_24owner_5fphoto',['$owner_photo',['../classItem.html#a078f95b4134ce3a1df344cf8d386f986',1,'Item']]],
['_24owner_5furl',['$owner_url',['../classItem.html#afa54851df82962c7c42dea3cc9f5c92c',1,'Item']]],
['_24page',['$page',['../classApp.html#a4b67935096f66d1f14b657399a8461ac',1,'App']]],
@@ -108,6 +104,7 @@ var searchData=
['_24pmenu_5freply',['$pmenu_reply',['../redbasic_2php_2style_8php.html#a9b489f1c595b867212d30eca0c85b38c',1,'style.php']]],
['_24pmenu_5ftop',['$pmenu_top',['../redbasic_2php_2style_8php.html#ac98bd8264411bd207a5740d08e81a158',1,'style.php']]],
['_24pofile',['$pofile',['../php2po_8php.html#a401d84ce156e49e8168bd0c4781e1be1',1,'php2po.php']]],
+ ['_24poi',['$poi',['../classApp.html#a1936f2afce0dc0d1bbed15ae1f2ee81a',1,'App']]],
['_24prepared_5fitem',['$prepared_item',['../classConversation.html#a5b6adbb2fe24f0f53d6c22660dff91b2',1,'Conversation']]],
['_24preview',['$preview',['../classConversation.html#ae9937f9e0f3d927acc2bed46cc72e9ae',1,'Conversation']]],
['_24profile',['$profile',['../classApp.html#a57d041fcc003d08c127dfa99a02bc192',1,'App']]],
@@ -115,23 +112,19 @@ var searchData=
['_24profile_5fuid',['$profile_uid',['../classApp.html#a08c24d6a6fc52fcc784b0f765f13b820',1,'App']]],
['_24query_5fstring',['$query_string',['../classApp.html#a2e82da4aecfc2017a8d1d332ca501f9f',1,'App']]],
['_24r',['$r',['../classTemplate.html#aac9a4638f11271e1b1dcc9f247242718',1,'Template']]],
- ['_24radius',['$radius',['../redbasic_2php_2style_8php.html#a6502bedd57105ad1fb2dee2be9cf6351',1,'style.php']]],
['_24rdelim',['$rdelim',['../classApp.html#a244b2d53b21be269aad2269d23192f95',1,'App']]],
['_24red_5fpath',['$red_path',['../classRedDirectory.html#acb32b8df27538c57772824a745e751d7',1,'RedDirectory']]],
['_24redirect_5furl',['$redirect_url',['../classItem.html#a5b561415861f5b89b0733aacfe0428d1',1,'Item']]],
['_24replace',['$replace',['../classTemplate.html#a4e86b566c3f728e95ce5db1b33665c10',1,'Template']]],
- ['_24reply_5fphoto',['$reply_photo',['../redbasic_2php_2style_8php.html#a0b070f2c9140a7a12a0b1f88601a29e4',1,'style.php']]],
['_24res',['$res',['../docblox__errorchecker_8php.html#a49a8a4009b02e49717caa88b128affc5',1,'docblox_errorchecker.php']]],
+ ['_24root_5fdir',['$root_dir',['../classRedDirectory.html#ad87c514a307ec97ba0f1372e9bcfa6a4',1,'RedDirectory']]],
['_24s',['$s',['../extract_8php.html#a50b05cf2e02ef0b67fcad97106dd7634',1,'extract.php']]],
- ['_24schema',['$schema',['../redbasic_2php_2style_8php.html#a83022b1d70799d2bde3d64dca9cb40ee',1,'style.php']]],
['_24scheme',['$scheme',['../classApp.html#ad082d63acc078e5bf23825a03bdd6a76',1,'App']]],
['_24search',['$search',['../classTemplate.html#a317d535946dc065c35dd5cd38380e6c6',1,'Template']]],
['_24sectionleft',['$sectionleft',['../minimalisticdarkness_8php.html#a0ac3f5b52212b0af87d513273da03ead',1,'minimalisticdarkness.php']]],
['_24sectionwidth',['$sectionwidth',['../minimalisticdarkness_8php.html#a04de7b747e4f0a353e0e38cf77c3404f',1,'minimalisticdarkness.php']]],
['_24session_5fexists',['$session_exists',['../session_8php.html#a62e4a6cb26b4bb1b8ddd8277b26090eb',1,'session.php']]],
['_24session_5fexpire',['$session_expire',['../session_8php.html#af0100a2642a5268594bbd5742a03d885',1,'session.php']]],
- ['_24shadow',['$shadow',['../redbasic_2php_2style_8php.html#ab00dfc29448b183055d2ae61a0e1874a',1,'style.php']]],
- ['_24sloppy_5fphotos',['$sloppy_photos',['../redbasic_2php_2style_8php.html#a6ffadaf926b41ad84c30da319011e9ad',1,'style.php']]],
['_24sourcename',['$sourcename',['../classApp.html#a13710907ef62554a0b4dd8a5eaa2eb11',1,'App']]],
['_24stack',['$stack',['../classTemplate.html#a6f0efc256688c36110180b501067ff11',1,'Template']]],
['_24str',['$str',['../typohelper_8php.html#a7542d95618011800c61773127fa625cf',1,'typohelper.php']]],
@@ -144,14 +137,11 @@ var searchData=
['_24theme_5fthread_5fallow',['$theme_thread_allow',['../classApp.html#a487332f8de40414ca1a54a4265570b70',1,'App']]],
['_24threaded',['$threaded',['../classItem.html#a1cb6aa8abdf7ea7daca647e40c8ea3a2',1,'Item']]],
['_24threads',['$threads',['../classConversation.html#a41f4a549e6a99f98935c4742addd22c8',1,'Conversation']]],
- ['_24timezone',['$timezone',['../classApp.html#ab35b01a366a2ea95725e97af278f87ab',1,'App']]],
- ['_24toolicon_5factivecolour',['$toolicon_activecolour',['../redbasic_2php_2style_8php.html#acfd00ec469ca3c5e8bfac787573093f3',1,'style.php']]],
- ['_24toolicon_5fcolour',['$toolicon_colour',['../redbasic_2php_2style_8php.html#a4161f6b8aa923f67e53f54dfb6554cdb',1,'style.php']]],
- ['_24top_5fphoto',['$top_photo',['../redbasic_2php_2style_8php.html#a810142b4bdd35a1d377ab279b02b47eb',1,'style.php']]],
+ ['_24timezone',['$timezone',['../classApp.html#ab35b01a366a2ea95725e97af278f87ab',1,'App\$timezone()'],['../classRedBasicAuth.html#a2d0246ed446fd5e55c17938b4ce6ac47',1,'RedBasicAuth\$timezone()']]],
['_24toplevel',['$toplevel',['../classItem.html#a5cfa6cf964f433a917a81cab079ff9d8',1,'Item']]],
['_24type',['$type',['../classphoto__driver.html#a4920ed7cbb1ac735ac84153067537f03',1,'photo_driver']]],
['_24types',['$types',['../classphoto__driver.html#a00cb166c00b7502dbc456c94330e5b03',1,'photo_driver']]],
- ['_24uid',['$uid',['../apw_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a',1,'$uid():&#160;style.php'],['../redbasic_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a',1,'$uid():&#160;style.php']]],
+ ['_24uid',['$uid',['../apw_2php_2style_8php.html#a109bbd7f4add27541707b191b73ef84a',1,'style.php']]],
['_24user',['$user',['../classApp.html#a91fd3c8b89016113b05f3be24805ccff',1,'App']]],
['_24valid',['$valid',['../classphoto__driver.html#a01d28d43b404d6f6de219dc9c5069dc9',1,'photo_driver']]],
['_24videoheight',['$videoheight',['../classApp.html#a56b1a432c96aef8b1971f779c9d93c8c',1,'App']]],
diff --git a/doc/html/search/variables_61.js b/doc/html/search/variables_61.js
index 04c1a72d8..b5537bddf 100644
--- a/doc/html/search/variables_61.js
+++ b/doc/html/search/variables_61.js
@@ -18,6 +18,7 @@ var searchData=
['account_5fremoved',['ACCOUNT_REMOVED',['../boot_8php.html#ab5ddbe69d3d03acd06e1fb281488cb78',1,'boot.php']]],
['account_5frole_5fadmin',['ACCOUNT_ROLE_ADMIN',['../boot_8php.html#ac8400313df2c831653f9036f71ebd86d',1,'boot.php']]],
['account_5frole_5fallowcode',['ACCOUNT_ROLE_ALLOWCODE',['../boot_8php.html#a84f48897059bbd4a8738d7ee4cec6688',1,'boot.php']]],
+ ['account_5frole_5fsystem',['ACCOUNT_ROLE_SYSTEM',['../boot_8php.html#a7c2eb822d50e1554bf5c32861f36342b',1,'boot.php']]],
['account_5funverified',['ACCOUNT_UNVERIFIED',['../boot_8php.html#af3a4271630aabd8be592213f925d6a36',1,'boot.php']]],
['activity_5fdislike',['ACTIVITY_DISLIKE',['../boot_8php.html#a0e57f846e6d47a308feced0f7274f178',1,'boot.php']]],
['activity_5ffavorite',['ACTIVITY_FAVORITE',['../boot_8php.html#a3e2ea123d29a72012db1241f96280b0e',1,'boot.php']]],
diff --git a/doc/html/search/variables_69.js b/doc/html/search/variables_69.js
index c71968467..5aa9e0fe6 100644
--- a/doc/html/search/variables_69.js
+++ b/doc/html/search/variables_69.js
@@ -1,7 +1,8 @@
var searchData=
[
- ['if',['if',['../php2po_8php.html#a45b05625748f412ec97afcd61cf7980b',1,'if():&#160;php2po.php'],['../php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762',1,'if():&#160;default.php'],['../full_8php.html#a6fac1b4b8cdfde06ea1b7713479e92db',1,'if():&#160;full.php'],['../apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a',1,'if():&#160;style.php'],['../redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a',1,'if():&#160;style.php']]],
+ ['if',['if',['../php2po_8php.html#a45b05625748f412ec97afcd61cf7980b',1,'if():&#160;php2po.php'],['../php_2default_8php.html#a23bc1996b18e69c1a3ab44536613a762',1,'if():&#160;default.php'],['../full_8php.html#a6fac1b4b8cdfde06ea1b7713479e92db',1,'if():&#160;full.php'],['../apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a',1,'if():&#160;style.php']]],
['item_5fblocked',['ITEM_BLOCKED',['../boot_8php.html#ab28dc518fa90b6f617dd8c564eb4f35f',1,'boot.php']]],
+ ['item_5fbug',['ITEM_BUG',['../boot_8php.html#a87b0f279f8413c7e4d805c5d85f20d34',1,'boot.php']]],
['item_5fbuildblock',['ITEM_BUILDBLOCK',['../boot_8php.html#a7fc4b291a7cdaa48b38e27344ea183cf',1,'boot.php']]],
['item_5fdelayed_5fpublish',['ITEM_DELAYED_PUBLISH',['../boot_8php.html#ac890557fedc5b5a3b1d996249b1e1a20',1,'boot.php']]],
['item_5fdeleted',['ITEM_DELETED',['../boot_8php.html#a3515ea6bf77495de89b93e9ccd881c49',1,'boot.php']]],
diff --git a/doc/html/search/variables_6d.js b/doc/html/search/variables_6d.js
index 4996247cb..68833d773 100644
--- a/doc/html/search/variables_6d.js
+++ b/doc/html/search/variables_6d.js
@@ -8,6 +8,8 @@ var searchData=
['mail_5fseen',['MAIL_SEEN',['../boot_8php.html#a1fbb93cf030f07391f22cc2948744869',1,'boot.php']]],
['max_5fimage_5flength',['MAX_IMAGE_LENGTH',['../boot_8php.html#a525ca93ff35d3535d1a2b8ba57876afa',1,'boot.php']]],
['max_5flikers',['MAX_LIKERS',['../boot_8php.html#a35625dacd2158b9f1f1a8e77f9f081fd',1,'boot.php']]],
+ ['menu_5fbookmark',['MENU_BOOKMARK',['../boot_8php.html#a458e19af801bc4b0d1f1ce1a6d9e857e',1,'boot.php']]],
['menu_5fitem_5fnewwin',['MENU_ITEM_NEWWIN',['../boot_8php.html#ad11f30a6590d3d77f0c5e1e3909af8f5',1,'boot.php']]],
- ['menu_5fitem_5fzid',['MENU_ITEM_ZID',['../boot_8php.html#aed0dfb35f7dd00dc9e4f868ea7f7ff53',1,'boot.php']]]
+ ['menu_5fitem_5fzid',['MENU_ITEM_ZID',['../boot_8php.html#aed0dfb35f7dd00dc9e4f868ea7f7ff53',1,'boot.php']]],
+ ['menu_5fsystem',['MENU_SYSTEM',['../boot_8php.html#a718a801b0be6cbaef5e519516da12721',1,'boot.php']]]
];
diff --git a/doc/html/search/variables_70.js b/doc/html/search/variables_70.js
index 333736820..4951dfb53 100644
--- a/doc/html/search/variables_70.js
+++ b/doc/html/search/variables_70.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['page',['page',['../mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb',1,'page():&#160;mod_import.php'],['../mod__new__channel_8php.html#a8db1899eeeb44dabd0904065b63627bb',1,'page():&#160;mod_new_channel.php'],['../mod__register_8php.html#a8db1899eeeb44dabd0904065b63627bb',1,'page():&#160;mod_register.php']]],
+ ['page',['page',['../mod__import_8php.html#a8db1899eeeb44dabd0904065b63627bb',1,'mod_import.php']]],
['page_5fadult',['PAGE_ADULT',['../boot_8php.html#ace83842dbeb84f7ed9ac59a9f57a7c32',1,'boot.php']]],
['page_5fapplication',['PAGE_APPLICATION',['../boot_8php.html#a8231d115060d41a9c2a677f2c86f10ed',1,'boot.php']]],
['page_5fautoconnect',['PAGE_AUTOCONNECT',['../boot_8php.html#aa275653b9c87abc7391bb8040c1c2de9',1,'boot.php']]],
@@ -9,9 +9,12 @@ var searchData=
['page_5fnormal',['PAGE_NORMAL',['../boot_8php.html#a09532c3f750ae8c4527e63b2b790cbf3',1,'boot.php']]],
['page_5fpremium',['PAGE_PREMIUM',['../boot_8php.html#ab3920c2f3cd64802c0b7ff625c3b2ea8',1,'boot.php']]],
['page_5fremoved',['PAGE_REMOVED',['../boot_8php.html#a4edce16cb7f21cdafa1e85bf63d713e6',1,'boot.php']]],
+ ['page_5fsystem',['PAGE_SYSTEM',['../boot_8php.html#a6ee7a72d558d1851bbb9e3cdde377932',1,'boot.php']]],
['path',['path',['../namespacefriendica-to-smarty-tpl.html#a68d15934660cd1f4301ce251b1646f09',1,'friendica-to-smarty-tpl.path()'],['../namespaceupdatetpl.html#ae694f5e1f25f8a92a945eb90c432dfe6',1,'updatetpl.path()']]],
+ ['perms_5fa_5fbookmark',['PERMS_A_BOOKMARK',['../boot_8php.html#a8b2af16eaee9e7768a88d0e437877f3b',1,'boot.php']]],
['perms_5fa_5fdelegate',['PERMS_A_DELEGATE',['../boot_8php.html#a423505ab8dbd8e39d04ae3fe1374102b',1,'boot.php']]],
['perms_5fa_5frepublish',['PERMS_A_REPUBLISH',['../boot_8php.html#aae6c941bde5fd6fce07e51dba7326ead',1,'boot.php']]],
+ ['perms_5fauthed',['PERMS_AUTHED',['../boot_8php.html#a852d4036a3bed66af1534d014c4ecde2',1,'boot.php']]],
['perms_5fcontacts',['PERMS_CONTACTS',['../boot_8php.html#ab2d0e8a9b81ee548ef2ce8e4560da2f6',1,'boot.php']]],
['perms_5fnetwork',['PERMS_NETWORK',['../boot_8php.html#a6df1102664f64b274810db85197c2755',1,'boot.php']]],
['perms_5fpublic',['PERMS_PUBLIC',['../boot_8php.html#aff210e8403dd72368522b17fb6e5d4e7',1,'boot.php']]],
diff --git a/doc/html/search/variables_74.js b/doc/html/search/variables_74.js
index e36593332..61edce925 100644
--- a/doc/html/search/variables_74.js
+++ b/doc/html/search/variables_74.js
@@ -1,5 +1,6 @@
var searchData=
[
+ ['term_5fbookmark',['TERM_BOOKMARK',['../boot_8php.html#a115faf8797718c3165498abbd6895843',1,'boot.php']]],
['term_5fcategory',['TERM_CATEGORY',['../boot_8php.html#af33d1b2e98a1e21af672005525d46dfe',1,'boot.php']]],
['term_5ffile',['TERM_FILE',['../boot_8php.html#afb97615e985a013799839b68b99018d7',1,'boot.php']]],
['term_5fhashtag',['TERM_HASHTAG',['../boot_8php.html#a2750985ec445617d7e82ae3098c91e3f',1,'boot.php']]],
diff --git a/doc/html/search/variables_78.js b/doc/html/search/variables_78.js
index ef8c3194c..75be51da5 100644
--- a/doc/html/search/variables_78.js
+++ b/doc/html/search/variables_78.js
@@ -3,6 +3,8 @@ var searchData=
['xchan_5fflags_5fcensored',['XCHAN_FLAGS_CENSORED',['../boot_8php.html#accd6f36cc9f40225cbd720e4d12a7c6e',1,'boot.php']]],
['xchan_5fflags_5fdeleted',['XCHAN_FLAGS_DELETED',['../boot_8php.html#a9ea1290e00c6d40684892047f2c778a9',1,'boot.php']]],
['xchan_5fflags_5fhidden',['XCHAN_FLAGS_HIDDEN',['../boot_8php.html#a1af3ed96de14aa0d7891b39cc75b60f2',1,'boot.php']]],
+ ['xchan_5fflags_5fnormal',['XCHAN_FLAGS_NORMAL',['../boot_8php.html#a8fdcc4ffb365a3267bd02ce8a8d466d6',1,'boot.php']]],
['xchan_5fflags_5forphan',['XCHAN_FLAGS_ORPHAN',['../boot_8php.html#a1c923b99bf77e4203ae94e5684b6ad0f',1,'boot.php']]],
- ['xchan_5fflags_5fselfcensored',['XCHAN_FLAGS_SELFCENSORED',['../boot_8php.html#a5a681a672e007cdc22b43345d71f07c6',1,'boot.php']]]
+ ['xchan_5fflags_5fselfcensored',['XCHAN_FLAGS_SELFCENSORED',['../boot_8php.html#a5a681a672e007cdc22b43345d71f07c6',1,'boot.php']]],
+ ['xchan_5fflags_5fsystem',['XCHAN_FLAGS_SYSTEM',['../boot_8php.html#afef254290febac854c85fc698d9483a6',1,'boot.php']]]
];
diff --git a/doc/html/search_8php.html b/doc/html/search_8php.html
index 74adf4da0..ec93dbf2b 100644
--- a/doc/html/search_8php.html
+++ b/doc/html/search_8php.html
@@ -112,12 +112,8 @@ $(document).ready(function(){initNavTree('search_8php.html','');});
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:aa911f7c7f0cdb0284e35d0ed610f19c6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6">search_saved_searches</a> ()</td></tr>
-<tr class="separator:aa911f7c7f0cdb0284e35d0ed610f19c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf19fd30f07f495781ca0d7a0a08b435"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search_init</a> (&amp;$a)</td></tr>
<tr class="separator:acf19fd30f07f495781ca0d7a0a08b435"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a230ec9681ddee3b5b8b40c8d550f32f7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="search_8php.html#a230ec9681ddee3b5b8b40c8d550f32f7">search_post</a> (&amp;$a)</td></tr>
-<tr class="separator:a230ec9681ddee3b5b8b40c8d550f32f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2568591359edde5b483a6cd9a24b2cc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content</a> (&amp;$a, $update=0, $load=false)</td></tr>
<tr class="separator:ab2568591359edde5b483a6cd9a24b2cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -172,39 +168,6 @@ Functions</h2></td></tr>
</div>
</div>
-<a class="anchor" id="a230ec9681ddee3b5b8b40c8d550f32f7"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">search_post </td>
- <td>(</td>
- <td class="paramtype">&amp;&#160;</td>
- <td class="paramname"><em>$a</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<a class="anchor" id="aa911f7c7f0cdb0284e35d0ed610f19c6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">search_saved_searches </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-<p>Referenced by <a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search_init()</a>.</p>
-
-</div>
-</div>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/search_8php.js b/doc/html/search_8php.js
index ffe2bd8fc..254c8c72e 100644
--- a/doc/html/search_8php.js
+++ b/doc/html/search_8php.js
@@ -1,7 +1,5 @@
var search_8php =
[
[ "search_content", "search_8php.html#ab2568591359edde5b483a6cd9a24b2cc", null ],
- [ "search_init", "search_8php.html#acf19fd30f07f495781ca0d7a0a08b435", null ],
- [ "search_post", "search_8php.html#a230ec9681ddee3b5b8b40c8d550f32f7", null ],
- [ "search_saved_searches", "search_8php.html#aa911f7c7f0cdb0284e35d0ed610f19c6", null ]
+ [ "search_init", "search_8php.html#acf19fd30f07f495781ca0d7a0a08b435", null ]
]; \ No newline at end of file
diff --git a/doc/html/security_8php.html b/doc/html/security_8php.html
index b1263fa59..d9f31f484 100644
--- a/doc/html/security_8php.html
+++ b/doc/html/security_8php.html
@@ -132,7 +132,7 @@ Functions</h2></td></tr>
<tr class="separator:a77ba0d1889a39cf32434c5ce96fe1433"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a444ac867dfa8c37cf0a7a226412bee28"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#a444ac867dfa8c37cf0a7a226412bee28">check_form_security_token_ForbiddenOnErr</a> ($typename= '', $formname= 'form_security_token')</td></tr>
<tr class="separator:a444ac867dfa8c37cf0a7a226412bee28"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae92c5c1a1cbbc49ddbb8b3265d2db809"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(!function_exists('init_groups_visitor'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809">stream_perms_api_uids</a> ($perms_min=<a class="el" href="boot_8php.html#a9ff652e5cb83cd11cbb0350844e7b28f">PERMS_SITE</a>)</td></tr>
+<tr class="memitem:ae92c5c1a1cbbc49ddbb8b3265d2db809"><td class="memItemLeft" align="right" valign="top"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(!function_exists('init_groups_visitor'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809">stream_perms_api_uids</a> ($perms_min=<a class="el" href="boot_8php.html#a9ff652e5cb83cd11cbb0350844e7b28f">PERMS_SITE</a>)</td></tr>
<tr class="separator:ae92c5c1a1cbbc49ddbb8b3265d2db809"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15e0f8f511cc06192db63387f97238b3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="security_8php.html#a15e0f8f511cc06192db63387f97238b3">stream_perms_xchans</a> ($perms_min=<a class="el" href="boot_8php.html#a9ff652e5cb83cd11cbb0350844e7b28f">PERMS_SITE</a>)</td></tr>
<tr class="separator:a15e0f8f511cc06192db63387f97238b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -180,7 +180,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, and <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>.</p>
+<p>Referenced by <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, and <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>.</p>
</div>
</div>
@@ -323,7 +323,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, and <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>.</p>
+<p>Referenced by <a class="el" href="admin_8php.html#a6943543f3138f6ee182cb701f415d1cc">admin_page_hubloc()</a>, <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, and <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>.</p>
</div>
</div>
@@ -361,7 +361,7 @@ Functions</h2></td></tr>
<p>Profile owner - everything is visible</p>
<p>Authenticated visitor. Unless pre-verified, check that the contact belongs to this $owner_id and load the groups the visitor belongs to. If pre-verified, the caller is expected to have already done this and passed the groups into this function.</p>
-<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="comanche_8php.html#af7150df735e5ff9d467994cd6f769c6e">pdl_selector()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="comanche_8php.html#af7150df735e5ff9d467994cd6f769c6e">pdl_selector()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
</div>
</div>
@@ -399,7 +399,7 @@ Functions</h2></td></tr>
<p>Profile owner - everything is visible</p>
<p>Authenticated visitor. Unless pre-verified, check that the contact belongs to this $owner_id and load the groups the visitor belongs to. If pre-verified, the caller is expected to have already done this and passed the groups into this function.</p>
-<p>Referenced by <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata()</a>, <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files()</a>, <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="include_2menu_8php.html#a68ebbf492470c930f652013656f9071d">menu_fetch()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos_albums_list()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, and <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>.</p>
+<p>Referenced by <a class="el" href="include_2attach_8php.html#a0d07c5b83d3d54e186f752e571847b36">attach_by_hash()</a>, <a class="el" href="include_2attach_8php.html#ad991208ce939387e2f93a3bce7d09932">attach_by_hash_nodata()</a>, <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files()</a>, <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="include_2chat_8php.html#a2c95b545e46bfee64faa05ecf0afea91">chatroom_enter()</a>, <a class="el" href="include_2chat_8php.html#aedcb532a0627b8644001a2fadab4e87a">chatroom_list()</a>, <a class="el" href="chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9">chatsvc_content()</a>, <a class="el" href="chatsvc_8php.html#a7c9a9b9c24a2b02eed8efd6b09632d03">chatsvc_post()</a>, <a class="el" href="include_2menu_8php.html#a68ebbf492470c930f652013656f9071d">menu_fetch()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="include_2photos_8php.html#aedccaf18282b26899d9549c29bd9d1b9">photos_albums_list()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, <a class="el" href="reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266">RedCollectionData()</a>, <a class="el" href="reddav_8php.html#a9f531641dfb4e43cd88ac1a9ae7e2088">RedFileData()</a>, and <a class="el" href="include_2attach_8php.html#aeb07968990e66a88c95483ca09a7f909">z_readdir()</a>.</p>
</div>
</div>
@@ -426,7 +426,7 @@ Functions</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (!function_exists('init_groups_visitor')) stream_perms_api_uids </td>
+ <td class="memname"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (!function_exists('init_groups_visitor')) stream_perms_api_uids </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$perms_min</em> = <code><a class="el" href="boot_8php.html#a9ff652e5cb83cd11cbb0350844e7b28f">PERMS_SITE</a></code></td><td>)</td>
diff --git a/doc/html/settings_8php.html b/doc/html/settings_8php.html
index 8cd9e7063..cb50bbc52 100644
--- a/doc/html/settings_8php.html
+++ b/doc/html/settings_8php.html
@@ -116,8 +116,6 @@ Functions</h2></td></tr>
<tr class="separator:a39abc76ff5459c57e3b957664f273f18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a4cde287482fced008583f54ba2a722"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="settings_8php.html#a3a4cde287482fced008583f54ba2a722">settings_init</a> (&amp;$a)</td></tr>
<tr class="separator:a3a4cde287482fced008583f54ba2a722"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae5aebccb006bee1300078576baaf5582"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside</a> (&amp;$a)</td></tr>
-<tr class="separator:ae5aebccb006bee1300078576baaf5582"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7ee94d88ac088edb04ccf3a26de3586"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post</a> (&amp;$a)</td></tr>
<tr class="separator:aa7ee94d88ac088edb04ccf3a26de3586"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -140,22 +138,6 @@ Functions</h2></td></tr>
</div>
</div>
-<a class="anchor" id="ae5aebccb006bee1300078576baaf5582"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">settings_aside </td>
- <td>(</td>
- <td class="paramtype">&amp;&#160;</td>
- <td class="paramname"><em>$a</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
<a class="anchor" id="a3a4cde287482fced008583f54ba2a722"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/settings_8php.js b/doc/html/settings_8php.js
index facd5da67..9185251bc 100644
--- a/doc/html/settings_8php.js
+++ b/doc/html/settings_8php.js
@@ -1,7 +1,6 @@
var settings_8php =
[
[ "get_theme_config_file", "settings_8php.html#a39abc76ff5459c57e3b957664f273f18", null ],
- [ "settings_aside", "settings_8php.html#ae5aebccb006bee1300078576baaf5582", null ],
[ "settings_init", "settings_8php.html#a3a4cde287482fced008583f54ba2a722", null ],
[ "settings_post", "settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586", null ]
]; \ No newline at end of file
diff --git a/doc/html/setup_8php.html b/doc/html/setup_8php.html
index ab0d78658..3537830f1 100644
--- a/doc/html/setup_8php.html
+++ b/doc/html/setup_8php.html
@@ -133,6 +133,8 @@ Functions</h2></td></tr>
<tr class="separator:a5ad92c0857d1dadd6b60a9a557159c9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd8b0b3ade1507c45325caf377bf459d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html#afd8b0b3ade1507c45325caf377bf459d">check_smarty3</a> (&amp;$checks)</td></tr>
<tr class="separator:afd8b0b3ade1507c45325caf377bf459d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4b71369a25021d59247c917e98d8246"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html#ab4b71369a25021d59247c917e98d8246">check_store</a> (&amp;$checks)</td></tr>
+<tr class="separator:ab4b71369a25021d59247c917e98d8246"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c3f3b671381f6dccd924b8ecdfc56c4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4">check_htaccess</a> (&amp;$checks)</td></tr>
<tr class="separator:a0c3f3b671381f6dccd924b8ecdfc56c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe405d227ba7232971964a706d4f3bce"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="setup_8php.html#abe405d227ba7232971964a706d4f3bce">manual_config</a> (&amp;$a)</td></tr>
@@ -193,7 +195,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p>checks : array passed to template title : string status : boolean required : boolean help : string optional </p>
-<p>Referenced by <a class="el" href="setup_8php.html#a69a450e06dd3771fb51d3e4b0266a35e">check_funcs()</a>, <a class="el" href="setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4">check_htaccess()</a>, <a class="el" href="setup_8php.html#a5ad92c0857d1dadd6b60a9a557159c9f">check_htconfig()</a>, <a class="el" href="setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76">check_keys()</a>, <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, and <a class="el" href="setup_8php.html#afd8b0b3ade1507c45325caf377bf459d">check_smarty3()</a>.</p>
+<p>Referenced by <a class="el" href="setup_8php.html#a69a450e06dd3771fb51d3e4b0266a35e">check_funcs()</a>, <a class="el" href="setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4">check_htaccess()</a>, <a class="el" href="setup_8php.html#a5ad92c0857d1dadd6b60a9a557159c9f">check_htconfig()</a>, <a class="el" href="setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76">check_keys()</a>, <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, <a class="el" href="setup_8php.html#afd8b0b3ade1507c45325caf377bf459d">check_smarty3()</a>, and <a class="el" href="setup_8php.html#ab4b71369a25021d59247c917e98d8246">check_store()</a>.</p>
</div>
</div>
@@ -315,6 +317,24 @@ Variables</h2></td></tr>
</div>
</div>
+<a class="anchor" id="ab4b71369a25021d59247c917e98d8246"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">check_store </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$checks</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="a8652788e8589778c5f81634a9d5b9429"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/setup_8php.js b/doc/html/setup_8php.js
index 386036b13..e02d5899c 100644
--- a/doc/html/setup_8php.js
+++ b/doc/html/setup_8php.js
@@ -7,6 +7,7 @@ var setup_8php =
[ "check_keys", "setup_8php.html#aa3bbb111780da70ba35cc23a306f2c76", null ],
[ "check_php", "setup_8php.html#a14d208682a88632290c895d20da6e7d6", null ],
[ "check_smarty3", "setup_8php.html#afd8b0b3ade1507c45325caf377bf459d", null ],
+ [ "check_store", "setup_8php.html#ab4b71369a25021d59247c917e98d8246", null ],
[ "get_db_errno", "setup_8php.html#a8652788e8589778c5f81634a9d5b9429", null ],
[ "load_database", "setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a", null ],
[ "load_database_rem", "setup_8php.html#a2b375ddc555140236fc500135de99371", null ],
diff --git a/doc/html/socgraph_8php.html b/doc/html/socgraph_8php.html
index 5f67be58c..47a2222ca 100644
--- a/doc/html/socgraph_8php.html
+++ b/doc/html/socgraph_8php.html
@@ -168,8 +168,6 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>.</p>
-
</div>
</div>
<a class="anchor" id="a7d34cd58025bcd9e575282f44db75918"></a>
@@ -406,7 +404,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>.</p>
+<p>Referenced by <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, and <a class="el" href="widgets_8php.html#a0d404276fedc59f5038cf5c085028326">widget_suggestions()</a>.</p>
</div>
</div>
diff --git a/doc/html/spam_8php.html b/doc/html/spam_8php.html
new file mode 100644
index 000000000..448abfb17
--- /dev/null
+++ b/doc/html/spam_8php.html
@@ -0,0 +1,165 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: include/spam.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('spam_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">spam.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a05861201147b9a538d006f0269255cf9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spam_8php.html#a05861201147b9a538d006f0269255cf9">string_splitter</a> ($s)</td></tr>
+<tr class="separator:a05861201147b9a538d006f0269255cf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab8fd81a82c9622cbebb8ceab6b310ca6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="spam_8php.html#ab8fd81a82c9622cbebb8ceab6b310ca6">get_words</a> ($uid, $list)</td></tr>
+<tr class="separator:ab8fd81a82c9622cbebb8ceab6b310ca6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ab8fd81a82c9622cbebb8ceab6b310ca6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_words </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$list</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a05861201147b9a538d006f0269255cf9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">string_splitter </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/spam_8php.js b/doc/html/spam_8php.js
new file mode 100644
index 000000000..3867b1aec
--- /dev/null
+++ b/doc/html/spam_8php.js
@@ -0,0 +1,5 @@
+var spam_8php =
+[
+ [ "get_words", "spam_8php.html#ab8fd81a82c9622cbebb8ceab6b310ca6", null ],
+ [ "string_splitter", "spam_8php.html#a05861201147b9a538d006f0269255cf9", null ]
+]; \ No newline at end of file
diff --git a/doc/html/sslify_8php.html b/doc/html/sslify_8php.html
new file mode 100644
index 000000000..e408329b5
--- /dev/null
+++ b/doc/html/sslify_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/sslify.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('sslify_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">sslify.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a75b11e54a3d1fc83e7d4c0e8b4dab316"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sslify_8php.html#a75b11e54a3d1fc83e7d4c0e8b4dab316">sslify_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a75b11e54a3d1fc83e7d4c0e8b4dab316"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a75b11e54a3d1fc83e7d4c0e8b4dab316"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">sslify_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/sslify_8php.js b/doc/html/sslify_8php.js
new file mode 100644
index 000000000..ec3ef3c09
--- /dev/null
+++ b/doc/html/sslify_8php.js
@@ -0,0 +1,4 @@
+var sslify_8php =
+[
+ [ "sslify_init", "sslify_8php.html#a75b11e54a3d1fc83e7d4c0e8b4dab316", null ]
+]; \ No newline at end of file
diff --git a/doc/html/suggest_8php.html b/doc/html/suggest_8php.html
index 9dcf0c0e7..822cf8fd4 100644
--- a/doc/html/suggest_8php.html
+++ b/doc/html/suggest_8php.html
@@ -114,28 +114,10 @@ $(document).ready(function(){initNavTree('suggest_8php.html','');});
Functions</h2></td></tr>
<tr class="memitem:a696acf1dd8070e479adcc80c63c6718c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c">suggest_init</a> (&amp;$a)</td></tr>
<tr class="separator:a696acf1dd8070e479adcc80c63c6718c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4df91c84594d51ba56b5918de414230d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="suggest_8php.html#a4df91c84594d51ba56b5918de414230d">suggest_aside</a> (&amp;$a)</td></tr>
-<tr class="separator:a4df91c84594d51ba56b5918de414230d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58748a8235d4523f8333847f3e42dd91"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content</a> (&amp;$a)</td></tr>
<tr class="separator:a58748a8235d4523f8333847f3e42dd91"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="a4df91c84594d51ba56b5918de414230d"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">suggest_aside </td>
- <td>(</td>
- <td class="paramtype">&amp;&#160;</td>
- <td class="paramname"><em>$a</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
<a class="anchor" id="a58748a8235d4523f8333847f3e42dd91"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/suggest_8php.js b/doc/html/suggest_8php.js
index 98b2888c5..6a1ef5b3d 100644
--- a/doc/html/suggest_8php.js
+++ b/doc/html/suggest_8php.js
@@ -1,6 +1,5 @@
var suggest_8php =
[
- [ "suggest_aside", "suggest_8php.html#a4df91c84594d51ba56b5918de414230d", null ],
[ "suggest_content", "suggest_8php.html#a58748a8235d4523f8333847f3e42dd91", null ],
[ "suggest_init", "suggest_8php.html#a696acf1dd8070e479adcc80c63c6718c", null ]
]; \ No newline at end of file
diff --git a/doc/html/taxonomy_8php.html b/doc/html/taxonomy_8php.html
index bb854072f..fc33f4d61 100644
--- a/doc/html/taxonomy_8php.html
+++ b/doc/html/taxonomy_8php.html
@@ -138,8 +138,10 @@ Functions</h2></td></tr>
<tr class="separator:a599ee71dd3194c8127b00dabec77abc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03f55ee46c5f496e42f3d29db8d09cce"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce">obj_verbs</a> ()</td></tr>
<tr class="separator:a03f55ee46c5f496e42f3d29db8d09cce"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac12a651a42ed77f8dc7072c6168811a2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html#ac12a651a42ed77f8dc7072c6168811a2">obj_verb_selector</a> ()</td></tr>
-<tr class="separator:ac12a651a42ed77f8dc7072c6168811a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af387463d42ffdf7d2ab3d5b22e40a0c7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html#af387463d42ffdf7d2ab3d5b22e40a0c7">obj_verb_selector</a> ($current= '')</td></tr>
+<tr class="separator:af387463d42ffdf7d2ab3d5b22e40a0c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7747fa859ac56fbffd4f9782d85505de"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="taxonomy_8php.html#a7747fa859ac56fbffd4f9782d85505de">get_things</a> ($profile_hash, $uid)</td></tr>
+<tr class="separator:a7747fa859ac56fbffd4f9782d85505de"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a088371f4bc19155b2291508f5cd63332"></a>
@@ -184,7 +186,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>.</p>
+<p>Referenced by <a class="el" href="widgets_8php.html#a08035db02ff6a23260146b4c64153422">widget_dirtags()</a>.</p>
</div>
</div>
@@ -250,8 +252,6 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>.</p>
-
</div>
</div>
<a class="anchor" id="adfead45e3b8a3dfb2b4a4b9281d0dbe1"></a>
@@ -296,18 +296,47 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">format_categories()</a>, <a class="el" href="text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91">format_filer()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7">item_getfeedtags()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>.</p>
+<p>Referenced by <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">format_categories()</a>, <a class="el" href="text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91">format_filer()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="items_8php.html#a649dc3e53ed794d0ead4b5d037f8d8d7">item_getfeedtags()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, and <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7747fa859ac56fbffd4f9782d85505de"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">get_things </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$profile_hash</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$uid</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>.</p>
</div>
</div>
-<a class="anchor" id="ac12a651a42ed77f8dc7072c6168811a2"></a>
+<a class="anchor" id="af387463d42ffdf7d2ab3d5b22e40a0c7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">obj_verb_selector </td>
<td>(</td>
- <td class="paramname"></td><td>)</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$current</em> = <code>''</code></td><td>)</td>
<td></td>
</tr>
</table>
@@ -331,7 +360,7 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<p>verbs: [0] = first person singular, e.g. "I want", [1] = 3rd person singular, e.g. "Bill wants" We use the first person form when creating an activity, but the third person for use in activities FIXME: There is no accounting for verb gender for languages where this is significant. We may eventually require <a class="el" href="taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce">obj_verbs()</a> to provide full conjugations and specify which form to use in the $_REQUEST params to this module. </p>
-<p>Referenced by <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="taxonomy_8php.html#ac12a651a42ed77f8dc7072c6168811a2">obj_verb_selector()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
+<p>Referenced by <a class="el" href="taxonomy_8php.html#a7747fa859ac56fbffd4f9782d85505de">get_things()</a>, <a class="el" href="taxonomy_8php.html#af387463d42ffdf7d2ab3d5b22e40a0c7">obj_verb_selector()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
</div>
</div>
@@ -493,7 +522,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside()</a>, and <a class="el" href="lastpost_8php.html#a6108289ef2a767495c7c85a24f364983">lastpost_aside()</a>.</p>
+<p>Referenced by <a class="el" href="widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653">widget_tagcloud_wall()</a>.</p>
</div>
</div>
diff --git a/doc/html/taxonomy_8php.js b/doc/html/taxonomy_8php.js
index d2025fb8a..24b5fb426 100644
--- a/doc/html/taxonomy_8php.js
+++ b/doc/html/taxonomy_8php.js
@@ -7,7 +7,8 @@ var taxonomy_8php =
[ "file_tag_file_query", "taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1", null ],
[ "format_term_for_display", "taxonomy_8php.html#adfead45e3b8a3dfb2b4a4b9281d0dbe1", null ],
[ "get_terms_oftype", "taxonomy_8php.html#a0fb8cf0ac7bcbc8b27d856fe9bf69cd1", null ],
- [ "obj_verb_selector", "taxonomy_8php.html#ac12a651a42ed77f8dc7072c6168811a2", null ],
+ [ "get_things", "taxonomy_8php.html#a7747fa859ac56fbffd4f9782d85505de", null ],
+ [ "obj_verb_selector", "taxonomy_8php.html#af387463d42ffdf7d2ab3d5b22e40a0c7", null ],
[ "obj_verbs", "taxonomy_8php.html#a03f55ee46c5f496e42f3d29db8d09cce", null ],
[ "store_item_tag", "taxonomy_8php.html#a4ba1339b2a7054971178ce194e4440fd", null ],
[ "tagadelic", "taxonomy_8php.html#aaf90ba8b839d6459065f39a4f1109b8a", null ],
diff --git a/doc/html/text_8php.html b/doc/html/text_8php.html
index b4472a962..a26cbae9f 100644
--- a/doc/html/text_8php.html
+++ b/doc/html/text_8php.html
@@ -131,7 +131,7 @@ Functions</h2></td></tr>
<tr class="separator:aaed4413ed8918838b517e3b2fafaea0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1360fed7f918d859daaca1c9f384f9af"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a1360fed7f918d859daaca1c9f384f9af">unxmlify</a> ($s)</td></tr>
<tr class="separator:a1360fed7f918d859daaca1c9f384f9af"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afe9f178d264d44a94dc1292aaf0fd585"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(!function_exists('hex2bin'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#afe9f178d264d44a94dc1292aaf0fd585">paginate</a> (&amp;$a)</td></tr>
+<tr class="memitem:afe9f178d264d44a94dc1292aaf0fd585"><td class="memItemLeft" align="right" valign="top"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>(!function_exists('hex2bin'))&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#afe9f178d264d44a94dc1292aaf0fd585">paginate</a> (&amp;$a)</td></tr>
<tr class="separator:afe9f178d264d44a94dc1292aaf0fd585"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75c243e06341ec16bd5a44b9b1cacd85"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85">alt_pager</a> (&amp;$a, $i, $more= '', $less= '')</td></tr>
<tr class="separator:a75c243e06341ec16bd5a44b9b1cacd85"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -157,6 +157,8 @@ Functions</h2></td></tr>
<tr class="separator:af8a3e3a66a7b862d4510f145d2e13186"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4659fbc4e54ddc700c3aa66b9092c623"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623">get_tags</a> ($s)</td></tr>
<tr class="separator:a4659fbc4e54ddc700c3aa66b9092c623"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f2585385530cb935a6325c809d84a4d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a2f2585385530cb935a6325c809d84a4d">strip_zids</a> ($s)</td></tr>
+<tr class="separator:a2f2585385530cb935a6325c809d84a4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc998d2796a6b2a08e96f7cc061e7221"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#afc998d2796a6b2a08e96f7cc061e7221">qp</a> ($s)</td></tr>
<tr class="separator:afc998d2796a6b2a08e96f7cc061e7221"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76d1b3435c067978d7b484c45f56472b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a76d1b3435c067978d7b484c45f56472b">get_mentions</a> ($item, $tags)</td></tr>
@@ -175,20 +177,24 @@ Functions</h2></td></tr>
<tr class="separator:a2a902f5fdba8646333e997898ac45ea3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a876e94892867019935b348b573299352"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search</a> ($s, $id='search-box', $url='/search', $save=false)</td></tr>
<tr class="separator:a876e94892867019935b348b573299352"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae91e4d2a2c6f7a9daccd2c186ae3447"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#aae91e4d2a2c6f7a9daccd2c186ae3447">searchbox</a> ($s, $id='<a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search</a>-box', $url='/<a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search</a>', $save=false)</td></tr>
+<tr class="separator:aae91e4d2a2c6f7a9daccd2c186ae3447"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a3d80a6c6fb234fd0bac44203b828eb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a6a3d80a6c6fb234fd0bac44203b828eb">valid_email</a> ($<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
<tr class="separator:a6a3d80a6c6fb234fd0bac44203b828eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11255c8c4e5245b6c24f97684826aa54"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a11255c8c4e5245b6c24f97684826aa54">linkify</a> ($s)</td></tr>
<tr class="separator:a11255c8c4e5245b6c24f97684826aa54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a33bdb5d4bfff2ede7caf61a98ac0a2e9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a33bdb5d4bfff2ede7caf61a98ac0a2e9">sslify</a> ($s)</td></tr>
+<tr class="separator:a33bdb5d4bfff2ede7caf61a98ac0a2e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa46f941155c2ac1155f2f17ffb0adb66"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66">get_poke_verbs</a> ()</td></tr>
<tr class="separator:aa46f941155c2ac1155f2f17ffb0adb66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a736db13a966b8abaf8c9198faa35911a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a736db13a966b8abaf8c9198faa35911a">get_mood_verbs</a> ()</td></tr>
<tr class="separator:a736db13a966b8abaf8c9198faa35911a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d225b253bb9e0f2498c11647d927b0b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies</a> ($s, $sample=false)</td></tr>
<tr class="separator:a3d225b253bb9e0f2498c11647d927b0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a44d460fcdee6247c67b9bef3ea15f3e6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a44d460fcdee6247c67b9bef3ea15f3e6">smile_encode</a> ($m)</td></tr>
-<tr class="separator:a44d460fcdee6247c67b9bef3ea15f3e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aca0f589be74fab1a460c57e88dad9779"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#aca0f589be74fab1a460c57e88dad9779">smile_decode</a> ($m)</td></tr>
-<tr class="separator:aca0f589be74fab1a460c57e88dad9779"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a10dde167249ed5abf190a7a0986878ea"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a10dde167249ed5abf190a7a0986878ea">smile_shield</a> ($m)</td></tr>
+<tr class="separator:a10dde167249ed5abf190a7a0986878ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a273156a6f5cddc6652ad656821cd5805"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a273156a6f5cddc6652ad656821cd5805">smile_unshield</a> ($m)</td></tr>
+<tr class="separator:a273156a6f5cddc6652ad656821cd5805"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac19d2b33a58372a357a43d51eed19162"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#ac19d2b33a58372a357a43d51eed19162">preg_heart</a> ($<a class="el" href="boot_8php.html#a01353c9abebc3544ea080ac161729632">x</a>)</td></tr>
<tr class="separator:ac19d2b33a58372a357a43d51eed19162"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63fb21c0bed2fc72eef2c1471ac42b63"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a63fb21c0bed2fc72eef2c1471ac42b63">day_translate</a> ($s)</td></tr>
@@ -219,8 +225,8 @@ Functions</h2></td></tr>
<tr class="separator:a8d8c4a11e53461caca21181ebd72daca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89929fa6f70a8ba54d5273fcf622b665"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a89929fa6f70a8ba54d5273fcf622b665">feed_salmonlinks</a> ($nick)</td></tr>
<tr class="separator:a89929fa6f70a8ba54d5273fcf622b665"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3ef8c0cf31f35f77462067de8712fa34"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a3ef8c0cf31f35f77462067de8712fa34">get_plink</a> ($item, $mode)</td></tr>
-<tr class="separator:a3ef8c0cf31f35f77462067de8712fa34"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac0969ae09853205992ba06ab9f9f61a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#aac0969ae09853205992ba06ab9f9f61a">get_plink</a> ($item, $conversation_mode=true)</td></tr>
+<tr class="separator:aac0969ae09853205992ba06ab9f9f61a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29d6b804e368d3ef359ee295e96ed4c7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a29d6b804e368d3ef359ee295e96ed4c7">unamp</a> ($s)</td></tr>
<tr class="separator:a29d6b804e368d3ef359ee295e96ed4c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3999a0b3e22e440f280ee791ce34d384"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a3999a0b3e22e440f280ee791ce34d384">layout_select</a> ($channel_id, $current= '')</td></tr>
@@ -231,8 +237,6 @@ Functions</h2></td></tr>
<tr class="separator:a71f6952243d3fe1c5a8154f78027e29c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2126da85966da0e79c6bcbac63b0bda"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#ae2126da85966da0e79c6bcbac63b0bda">return_bytes</a> ($size_str)</td></tr>
<tr class="separator:ae2126da85966da0e79c6bcbac63b0bda"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae4f6881d7e13623f8eded6277595112a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#ae4f6881d7e13623f8eded6277595112a">generate_user_guid</a> ()</td></tr>
-<tr class="separator:ae4f6881d7e13623f8eded6277595112a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a070384ec000fd65043fce11d5392d241"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a070384ec000fd65043fce11d5392d241">base64url_encode</a> ($s, $strip_padding=true)</td></tr>
<tr class="separator:a070384ec000fd65043fce11d5392d241"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13286f8a95d2de6b102966ecc270c8d6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a13286f8a95d2de6b102966ecc270c8d6">base64url_decode</a> ($s)</td></tr>
@@ -249,8 +253,6 @@ Functions</h2></td></tr>
<tr class="separator:ad855a32bee22c3f3b9734e3a334b96f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1dbf2e37e8069bea2c0f557fdbf203e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#ac1dbf2e37e8069bea2c0f557fdbf203e">item_post_type</a> ($item)</td></tr>
<tr class="separator:ac1dbf2e37e8069bea2c0f557fdbf203e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:adba17ec946f4285285dc100f7860bf51"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#adba17ec946f4285285dc100f7860bf51">normalise_openid</a> ($s)</td></tr>
-<tr class="separator:adba17ec946f4285285dc100f7860bf51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a740ad03e00459039a2c0992246c4e727"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a740ad03e00459039a2c0992246c4e727">undo_post_tagging</a> ($s)</td></tr>
<tr class="separator:a740ad03e00459039a2c0992246c4e727"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdc69fe3f6c09e35e46304dcea63ae28"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#afdc69fe3f6c09e35e46304dcea63ae28">fix_mce_lf</a> ($s)</td></tr>
@@ -285,6 +287,8 @@ Functions</h2></td></tr>
<tr class="separator:a87a3cefc603302c78982f1d8e1245265"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75c326298519ed14ebe762194c8a3f2a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#a75c326298519ed14ebe762194c8a3f2a">in_arrayi</a> ($needle, $haystack)</td></tr>
<tr class="separator:a75c326298519ed14ebe762194c8a3f2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adba17ec946f4285285dc100f7860bf51"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="text_8php.html#adba17ec946f4285285dc100f7860bf51">normalise_openid</a> ($s)</td></tr>
+<tr class="separator:adba17ec946f4285285dc100f7860bf51"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
@@ -358,7 +362,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, and <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>.</p>
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, and <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>.</p>
</div>
</div>
@@ -447,7 +451,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914">aes_unencapsulate()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014">oembed_init()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="text_8php.html#aca0f589be74fab1a460c57e88dad9779">smile_decode()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
+<p>Referenced by <a class="el" href="crypto_8php.html#aca7c3a574bfb6c6ef1f2403a56823914">aes_unencapsulate()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="mod_2oembed_8php.html#a9145025aaf057fb5d3f9f7011e5e1014">oembed_init()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="text_8php.html#a273156a6f5cddc6652ad656821cd5805">smile_unshield()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
</div>
</div>
@@ -475,7 +479,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>, <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity_basic_export()</a>, <a class="el" href="zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d">import_author_zot()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed_iframe()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="text_8php.html#a9d6a5ee1290de7a8b483fe78585daade">random_string()</a>, <a class="el" href="text_8php.html#a44d460fcdee6247c67b9bef3ea15f3e6">smile_encode()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>, <a class="el" href="zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7">zot_new_uid()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
+<p>Referenced by <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>, <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity_basic_export()</a>, <a class="el" href="zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d">import_author_zot()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed_iframe()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="text_8php.html#a9d6a5ee1290de7a8b483fe78585daade">random_string()</a>, <a class="el" href="text_8php.html#a10dde167249ed5abf190a7a0986878ea">smile_shield()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>, <a class="el" href="zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7">zot_new_uid()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
</div>
</div>
@@ -527,7 +531,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, and <a class="el" href="text_8php.html#a2a902f5fdba8646333e997898ac45ea3">micropro()</a>.</p>
+<p>Referenced by <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, and <a class="el" href="text_8php.html#a2a902f5fdba8646333e997898ac45ea3">micropro()</a>.</p>
</div>
</div>
@@ -545,7 +549,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8">Item\check_wall_to_wall()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">fetch_post_tags()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090">randprof_init()</a>, and <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>.</p>
+<p>Referenced by <a class="el" href="classItem.html#abcdb0ea9bcd1576bc99bba9b8f700bb8">Item\check_wall_to_wall()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="items_8php.html#adf980098b6de9c3993bc3ff26a8dd6f9">fetch_post_tags()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090">randprof_init()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, and <a class="el" href="widgets_8php.html#a0d404276fedc59f5038cf5c085028326">widget_suggestions()</a>.</p>
</div>
</div>
@@ -580,7 +584,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, and <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>.</p>
+<p>Referenced by <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, and <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>.</p>
</div>
</div>
@@ -632,7 +636,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, and <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>.</p>
+<p>Referenced by <a class="el" href="widgets_8php.html#a145ff35319cfa47a9cc07f9425bd674b">widget_design_tools()</a>.</p>
</div>
</div>
@@ -684,7 +688,7 @@ Variables</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
-<p>Referenced by <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8">menu_add_item()</a>, <a class="el" href="include_2menu_8php.html#a08a800821721781a8dfffbe31481ff98">menu_create()</a>, <a class="el" href="include_2menu_8php.html#a6a33c6a3db2a7510b16cc656edaec571">menu_edit()</a>, <a class="el" href="include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa">menu_edit_item()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="dba__driver_8php.html#a55bf30d8176967e682656b5be4ad9249">printable()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, and <a class="el" href="text_8php.html#a324c58f37f6acdf9cd1922aa76077d9f">z_input_filter()</a>.</p>
+<p>Referenced by <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="chatsvc_8php.html#a7c9a9b9c24a2b02eed8efd6b09632d03">chatsvc_post()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8">menu_add_item()</a>, <a class="el" href="include_2menu_8php.html#a08a800821721781a8dfffbe31481ff98">menu_create()</a>, <a class="el" href="include_2menu_8php.html#a6a33c6a3db2a7510b16cc656edaec571">menu_edit()</a>, <a class="el" href="include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa">menu_edit_item()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="notes_8php.html#a4dbd7b1f906440746af48b484d66535a">notes_init()</a>, <a class="el" href="dba__driver_8php.html#a55bf30d8176967e682656b5be4ad9249">printable()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, and <a class="el" href="text_8php.html#a324c58f37f6acdf9cd1922aa76077d9f">z_input_filter()</a>.</p>
</div>
</div>
@@ -780,7 +784,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, and <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>.</p>
+<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, and <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>.</p>
</div>
</div>
@@ -830,21 +834,6 @@ Variables</h2></td></tr>
</div>
</div>
-<a class="anchor" id="ae4f6881d7e13623f8eded6277595112a"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">generate_user_guid </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
<a class="anchor" id="a76d1b3435c067978d7b484c45f56472b"></a>
<div class="memitem">
<div class="memproto">
@@ -888,7 +877,7 @@ Variables</h2></td></tr>
</div>
</div>
-<a class="anchor" id="a3ef8c0cf31f35f77462067de8712fa34"></a>
+<a class="anchor" id="aac0969ae09853205992ba06ab9f9f61a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -902,7 +891,7 @@ Variables</h2></td></tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$mode</em>&#160;</td>
+ <td class="paramname"><em>$conversation_mode</em> = <code>true</code>&#160;</td>
</tr>
<tr>
<td></td>
@@ -1021,7 +1010,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+<p>Referenced by <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
</div>
</div>
@@ -1049,7 +1038,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>.</p>
+<p>Referenced by <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, and <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>.</p>
</div>
</div>
@@ -1084,7 +1073,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, and <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>.</p>
+<p>Referenced by <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="include_2photos_8php.html#ad648c0c5544fe9263409b6f6e57c6274">photos_create_item()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, and <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>.</p>
</div>
</div>
@@ -1144,7 +1133,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">encode_mail()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53">theme_attachments()</a>, and <a class="el" href="text_8php.html#a8264348059abd1d4d5bb521323d3b19a">unobscure()</a>.</p>
+<p>Referenced by <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="items_8php.html#a2d840c74ed23d1b6c7daee05cf89dda7">encode_mail()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="include_2message_8php.html#a5f8de9847e203329e317ac38dc646898">private_messages_fetch_conversation()</a>, <a class="el" href="include_2message_8php.html#a254a756031e4d5e94f85e2939bdb5091">private_messages_fetch_message()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53">theme_attachments()</a>, and <a class="el" href="text_8php.html#a8264348059abd1d4d5bb521323d3b19a">unobscure()</a>.</p>
</div>
</div>
@@ -1257,7 +1246,7 @@ Variables</h2></td></tr>
<p>Function: linkify</p>
<p>Replace naked text hyperlink with HTML formatted hyperlink </p>
-<p>Referenced by <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, and <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>.</p>
+<p>Referenced by <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, and <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>.</p>
</div>
</div>
@@ -1285,7 +1274,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="Contact_8php.html#a6e64de7db60b7243dce45fb6347636ff">account_remove()</a>, <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</a>, <a class="el" href="classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51">Item\add_child()</a>, <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>, <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5">api_call()</a>, <a class="el" href="include_2api_8php.html#a72bfecac1970bc29b853073e816388ff">api_channel_stream()</a>, <a class="el" href="include_2api_8php.html#adfc035ee6303c1d8ba5336a4ead2bd53">api_export_basic()</a>, <a class="el" href="include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f">api_favorites()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="include_2api_8php.html#aa1bddb580510e70cc1a7b7381667f1a3">api_oauth_request_token()</a>, <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api_statuses_destroy()</a>, <a class="el" href="include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95">api_statuses_mediap()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update()</a>, <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7">avatar_img()</a>, <a class="el" href="text_8php.html#a13286f8a95d2de6b102966ecc270c8d6">base64url_decode()</a>, <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#aae58cc837fe56473d9f3370abfe533ae">blog_install()</a>, <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#a3e77dbe111f330c64a1ff6c741cd515c">blog_uninstall()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="include_2chanman_8php.html#a21ba9a5c961e866ff27aee3ee67bf99b">chanman_remove_everything_from_network()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="security_8php.html#a444ac867dfa8c37cf0a7a226412bee28">check_form_security_token_ForbiddenOnErr()</a>, <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca">cronhooks_run()</a>, <a class="el" href="datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226">datetime_convert()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">detect_language()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0">email_send()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="include_2network_8php.html#a8d5a3afb51cc932032b5dcc159efaae0">fetch_lrdd_template()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="classConversation.html#a2a96b7a6573ae53db861624659e831cb">Conversation\get_template_data()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="photo__driver_8php.html#a243cee492ce443afb6a7d77d54b6c4aa">guess_image_type()</a>, <a class="el" href="boot_8php.html#a0e4701c9742c3ef88f02ac450a042a84">head_set_icon()</a>, <a class="el" href="include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2">http_status_exit()</a>, <a class="el" href="zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d">import_author_zot()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5">install_plugin()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="items_8php.html#af94c281016c6c912d06e064113336c5c">limit_body_size()</a>, <a class="el" href="plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d">load_plugin()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1">FKOAuthDataStore\lookup_consumer()</a>, <a class="el" href="classFKOAuthDataStore.html#a96f76387c3a93b0abe27a98013804bab">FKOAuthDataStore\lookup_token()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="include_2menu_8php.html#a6a33c6a3db2a7510b16cc656edaec571">menu_edit()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32">mini_group_select()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934">FKOAuthDataStore\new_access_token()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="crypto_8php.html#aae0ab70d6a199b29555b1ac3cf250d6a">new_keypair()</a>, <a class="el" href="classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050">FKOAuthDataStore\new_request_token()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="onedirsync_8php.html#a411aedd47c57476099647961e6a86691">onedirsync_run()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6">parse_xml_string()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>, <a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">process_profile_delivery()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="classdba__mysql.html#ac3fd60c278f400907322dac578754a99">dba_mysql\q()</a>, <a class="el" href="classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec">dba_mysqli\q()</a>, <a class="el" href="dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f">q()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025">reload_plugins()</a>, <a class="el" href="classItem.html#a2ce70ef63f9f4d86a09c351678806925">Item\remove_child()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24">remove_queue_item()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="classenotify.html#afbc088860f534c6c05788b48cfc262c6">enotify\send()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation\set_mode()</a>, <a class="el" href="security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a15e0f8f511cc06192db63387f97238b3">stream_perms_xchans()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76">uninstall_plugin()</a>, <a class="el" href="plugin_8php.html#a90538627db68605aeb6db17a8ead6523">unload_plugin()</a>, <a class="el" href="dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13">update_directory_entry()</a>, <a class="el" href="zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df">update_imported_item()</a>, <a class="el" href="queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1">update_queue_time()</a>, <a class="el" href="classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b">RedBasicAuth\validateUserPass()</a>, <a class="el" href="include_2network_8php.html#a8122356933bcd6b0a8567e8e15ae5cc5">webfinger()</a>, <a class="el" href="include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335">webfinger_dfrn()</a>, <a class="el" href="include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff">xml2array()</a>, <a class="el" href="include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6">xml_status()</a>, <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url()</a>, <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">z_post_url()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet()</a>, <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, <a class="el" href="zot_8php.html#a95528377d7303131958c9f0b7158fdce">zot_finger()</a>, <a class="el" href="zot_8php.html#a55056e863a7860bc0cf922e78fcce073">zot_gethub()</a>, <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>, <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot_process_response()</a>, <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>, <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
+<p>Referenced by <a class="el" href="classRedDirectory.html#a1e35e3cd31d2a15250655e4cafdea180">RedDirectory\__construct()</a>, <a class="el" href="classRedFile.html#a9a67bdb34c9db6ce144b3f371148b183">RedFile\__construct()</a>, <a class="el" href="Contact_8php.html#a6e64de7db60b7243dce45fb6347636ff">account_remove()</a>, <a class="el" href="auth_8php.html#a07bae0e623e2daa9ee2cd5a8aa294dee">account_verify_password()</a>, <a class="el" href="classItem.html#a80dcd9d0f548c3ad550abe7e6981fb51">Item\add_child()</a>, <a class="el" href="classConversation.html#a8335cdd43f1836e3c255638e61a09e16">Conversation\add_thread()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#a60ba9783ad14545814919970bc3fb725">admin_page_hubloc_post()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>, <a class="el" href="zot_8php.html#a703f528ade8382cf374e4119bd6f7859">allowed_public_recips()</a>, <a class="el" href="include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5">api_call()</a>, <a class="el" href="include_2api_8php.html#a72bfecac1970bc29b853073e816388ff">api_channel_stream()</a>, <a class="el" href="include_2api_8php.html#adfc035ee6303c1d8ba5336a4ead2bd53">api_export_basic()</a>, <a class="el" href="include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f">api_favorites()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="include_2api_8php.html#aa1bddb580510e70cc1a7b7381667f1a3">api_oauth_request_token()</a>, <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api_statuses_destroy()</a>, <a class="el" href="include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95">api_statuses_mediap()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update()</a>, <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7">avatar_img()</a>, <a class="el" href="text_8php.html#a13286f8a95d2de6b102966ecc270c8d6">base64url_decode()</a>, <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#aae58cc837fe56473d9f3370abfe533ae">blog_install()</a>, <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#a3e77dbe111f330c64a1ff6c741cd515c">blog_uninstall()</a>, <a class="el" href="include_2bookmarks_8php.html#a88ce7dee6a3dc7465aa9b8eaa45b0087">bookmark_add()</a>, <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="include_2chanman_8php.html#a21ba9a5c961e866ff27aee3ee67bf99b">chanman_remove_everything_from_network()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="security_8php.html#a444ac867dfa8c37cf0a7a226412bee28">check_form_security_token_ForbiddenOnErr()</a>, <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr()</a>, <a class="el" href="classRedDirectory.html#a5e3fc08b2bf9f61cea4d2ccae0495bec">RedDirectory\childExists()</a>, <a class="el" href="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud_init()</a>, <a class="el" href="items_8php.html#a8794863cdf8ce1333040933d3a3f66bd">consume_feed()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="classRedDirectory.html#a986936910f0216887a25e28916c166c7">RedDirectory\createDirectory()</a>, <a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">RedDirectory\createFile()</a>, <a class="el" href="cronhooks_8php.html#a4c4c1bbec4ecc9a0efa00dd6afd2c0ca">cronhooks_run()</a>, <a class="el" href="datetime_8php.html#ad6301e74b0f9267d52f8d432b5beb226">datetime_convert()</a>, <a class="el" href="zot_8php.html#adfeb9400ae6b726beec89f8f1e8fde72">delete_imported_item()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="language_8php.html#a632da17c7ac0d2dc1a00a4706870194b">detect_language()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="account_8php.html#a0d183a3cb4c67a0f5e906811df7a1fc9">downgrade_accounts()</a>, <a class="el" href="include_2network_8php.html#a1ff07d9fad93b713b93da0ab77aab7f0">email_send()</a>, <a class="el" href="items_8php.html#a82955cc578f0fa600acec84475026194">encode_item()</a>, <a class="el" href="expire_8php.html#a444e45c9b67727b27db4c779fd51a298">expire_run()</a>, <a class="el" href="feed_8php.html#af86137700b56f33d1d5f25c8dec22c04">feed_init()</a>, <a class="el" href="include_2network_8php.html#a8d5a3afb51cc932032b5dcc159efaae0">fetch_lrdd_template()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="boot_8php.html#aca5e42678e178c6b9034610d66666fd7">fix_system_urls()</a>, <a class="el" href="classRedFile.html#a7c868dfcef6c70cd0e24cf3caa2c3535">RedFile\get()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="items_8php.html#a536d0313b6ffe33b9d2490c4e25c5361">get_item_elements()</a>, <a class="el" href="language_8php.html#a43e6ddba9df019c9ac3ab4c94c444ae7">get_language_name()</a>, <a class="el" href="classConversation.html#a2a96b7a6573ae53db861624659e831cb">Conversation\get_template_data()</a>, <a class="el" href="classRedDirectory.html#aaa20f0f44da23781917af8170c0a2569">RedDirectory\getChild()</a>, <a class="el" href="classRedDirectory.html#aa42d3065f6f065b17db87146a7cb031a">RedDirectory\getChildren()</a>, <a class="el" href="classRedDirectory.html#a70173d4458572d95e586b2037d2fd2f4">RedDirectory\getDir()</a>, <a class="el" href="classRedDirectory.html#af6e4475dbd5abcdede00d20b8d388583">RedDirectory\getName()</a>, <a class="el" href="classRedFile.html#a0c961c5f49544d2502420361fa526437">RedFile\getName()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="photo__driver_8php.html#a243cee492ce443afb6a7d77d54b6c4aa">guess_image_type()</a>, <a class="el" href="boot_8php.html#a0e4701c9742c3ef88f02ac450a042a84">head_set_icon()</a>, <a class="el" href="include_2network_8php.html#a4cfb2c05a1c295317283d762440ce0b2">http_status_exit()</a>, <a class="el" href="items_8php.html#a6bee35961f2e32905f20367a9309d627">import_author_rss()</a>, <a class="el" href="zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d">import_author_zot()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887">import_profile_photo()</a>, <a class="el" href="zot_8php.html#a2657e141d62d5f67ad3c87651b585299">import_site()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="plugin_8php.html#a482131013272a1d5d5c1b1469c6c55d5">install_plugin()</a>, <a class="el" href="items_8php.html#a6f7e1334af5d684a987fa6a3eb37f4cc">item_expire()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="items_8php.html#af94c281016c6c912d06e064113336c5c">limit_body_size()</a>, <a class="el" href="plugin_8php.html#a9ca9632b7309a65b05c03a3e2f473a3d">load_plugin()</a>, <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">local_dir_update()</a>, <a class="el" href="conversation_8php.html#a9bd7f9fb6678736c581bcba3b17f471c">localize_item()</a>, <a class="el" href="classRedDirectory.html#a11376aed1963b4471eb1592c13c63976">RedDirectory\log()</a>, <a class="el" href="classRedBasicAuth.html#a2cc8b1eac9c5a799bfb53ea7f287f3f0">RedBasicAuth\log()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="classFKOAuthDataStore.html#a1148d47b546350bf440bdd92792c5df1">FKOAuthDataStore\lookup_consumer()</a>, <a class="el" href="classFKOAuthDataStore.html#a96f76387c3a93b0abe27a98013804bab">FKOAuthDataStore\lookup_token()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="include_2menu_8php.html#a6a33c6a3db2a7510b16cc656edaec571">menu_edit()</a>, <a class="el" href="include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32">mini_group_select()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="classFKOAuthDataStore.html#a434882f03e3cdb171ed89e09e337e934">FKOAuthDataStore\new_access_token()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="crypto_8php.html#aae0ab70d6a199b29555b1ac3cf250d6a">new_keypair()</a>, <a class="el" href="classFKOAuthDataStore.html#a431b44d70e3da6a8256ab38f710e3050">FKOAuthDataStore\new_request_token()</a>, <a class="el" href="notes_8php.html#a4dbd7b1f906440746af48b484d66535a">notes_init()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="onedirsync_8php.html#a411aedd47c57476099647961e6a86691">onedirsync_run()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="parse__url_8php.html#a05a9e8944380ba3cf6bbf5893dd4b74b">parse_url_content()</a>, <a class="el" href="include_2network_8php.html#a27a951b59d8d622c0b3e7b0673ba74c6">parse_xml_string()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>, <a class="el" href="include_2message_8php.html#a652973ce47a262f2d238c2fd6233d97e">private_messages_list()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="zot_8php.html#a37ec13b18057634eadb071f05297f5e1">process_delivery()</a>, <a class="el" href="zot_8php.html#aa6ae96db8cbbdbb10e6876d206bbf7cc">process_mail_delivery()</a>, <a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">process_profile_delivery()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="zot_8php.html#a083aec6c900d244e1bfc1406f9461465">public_recips()</a>, <a class="el" href="classRedFile.html#a41a49a583eb276b75626fcf97f4a699c">RedFile\put()</a>, <a class="el" href="classdba__mysql.html#ac3fd60c278f400907322dac578754a99">dba_mysql\q()</a>, <a class="el" href="classdba__mysqli.html#a611c4de8d6d7512dffb83a38bb6701ec">dba_mysqli\q()</a>, <a class="el" href="dba__driver_8php.html#a2c09a731d3b4fef41fed0e83db01be1f">q()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="reddav_8php.html#ae92ea0df1993f6a7bcd1b6efa6c1fb66">RedChannelList()</a>, <a class="el" href="reddav_8php.html#a5df0d09893f2e65dc5cf6bbab6cfb266">RedCollectionData()</a>, <a class="el" href="reddav_8php.html#a9f531641dfb4e43cd88ac1a9ae7e2088">RedFileData()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="plugin_8php.html#af9ac19004dca49adae1ac7a0d9f3b025">reload_plugins()</a>, <a class="el" href="classItem.html#a2ce70ef63f9f4d86a09c351678806925">Item\remove_child()</a>, <a class="el" href="zot_8php.html#aad25a3fe0e1566121d6fb8222979bc10">remove_community_tag()</a>, <a class="el" href="queue__fn_8php.html#a8fe71e981399bbf5d000a6ca42f57b24">remove_queue_item()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="classenotify.html#afbc088860f534c6c05788b48cfc262c6">enotify\send()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation\set_mode()</a>, <a class="el" href="classRedFile.html#a38a82bfc1b30028ea6ac75923e90fa25">RedFile\setName()</a>, <a class="el" href="security_8php.html#ae92c5c1a1cbbc49ddbb8b3265d2db809">stream_perms_api_uids()</a>, <a class="el" href="security_8php.html#a15e0f8f511cc06192db63387f97238b3">stream_perms_xchans()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="dir__fns_8php.html#aa666e7df6ca8c332f4081c9b66b4bdf6">sync_directories()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="plugin_8php.html#a093a9cb98f51e3643634bd8bc6ed6e76">uninstall_plugin()</a>, <a class="el" href="plugin_8php.html#a90538627db68605aeb6db17a8ead6523">unload_plugin()</a>, <a class="el" href="dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13">update_directory_entry()</a>, <a class="el" href="zot_8php.html#a31aad56acf8ff8f2353e6ff8595544df">update_imported_item()</a>, <a class="el" href="queue__fn_8php.html#a4c2876181f75a4a61e85b7f00dfdbba1">update_queue_time()</a>, <a class="el" href="classRedBasicAuth.html#a8dfd9a0953f8884723b421b7c1acf79b">RedBasicAuth\validateUserPass()</a>, <a class="el" href="include_2network_8php.html#a8122356933bcd6b0a8567e8e15ae5cc5">webfinger()</a>, <a class="el" href="include_2network_8php.html#adf6008b38c555e98e7ed10da9ede2335">webfinger_dfrn()</a>, <a class="el" href="include_2network_8php.html#a99353baabbc3e0584b85eb79ee802cff">xml2array()</a>, <a class="el" href="include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6">xml_status()</a>, <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url()</a>, <a class="el" href="include_2network_8php.html#a9129fd55e7fc175b4ea9a195cccc16bc">z_post_url()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, <a class="el" href="zot_8php.html#a3862b3161b2c8557dc1a95020179bd81">zot_build_packet()</a>, <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, <a class="el" href="zot_8php.html#a95528377d7303131958c9f0b7158fdce">zot_finger()</a>, <a class="el" href="zot_8php.html#a55056e863a7860bc0cf922e78fcce073">zot_gethub()</a>, <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>, <a class="el" href="zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03">zot_process_response()</a>, <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>, <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>, and <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>.</p>
</div>
</div>
@@ -1439,6 +1428,8 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
+<p>Referenced by <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>.</p>
+
</div>
</div>
<a class="anchor" id="a1af49756c8c71902a66c7e329c462beb"></a>
@@ -1466,7 +1457,7 @@ Variables</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>string Filtered string </dd></dl>
-<p>Referenced by <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="qsearch_8php.html#a0501887b95bd8fa21018b2936a668894">qsearch_init()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="text_8php.html#a9fbeae13c9abd6e27cb4d8d1817f969c">sanitise_acl()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, and <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>.</p>
+<p>Referenced by <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd">filestorage_post()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="register_8php.html#a51731dcc1917c58a790eb1c0f6132271">register_post()</a>, <a class="el" href="text_8php.html#a9fbeae13c9abd6e27cb4d8d1817f969c">sanitise_acl()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, and <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>.</p>
</div>
</div>
@@ -1475,7 +1466,7 @@ Variables</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (!function_exists('hex2bin')) paginate </td>
+ <td class="memname"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (!function_exists('hex2bin')) paginate </td>
<td>(</td>
<td class="paramtype">&amp;&#160;</td>
<td class="paramname"><em>$a</em></td><td>)</td>
@@ -1484,7 +1475,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, and <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>.</p>
+<p>Referenced by <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, and <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>.</p>
</div>
</div>
@@ -1502,7 +1493,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8">menu_add_item()</a>, <a class="el" href="include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa">menu_edit_item()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, and <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>.</p>
+<p>Referenced by <a class="el" href="mod_2chat_8php.html#a999d594745597c656c9760253ae297ad">chat_post()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="filestorage_8php.html#ad3b64e3ece9831f9d3a9f00c0ae983cd">filestorage_post()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="include_2menu_8php.html#add35fae5e9695031b3d46e30ac409eb8">menu_add_item()</a>, <a class="el" href="include_2menu_8php.html#acb66f80ca895a6ccd562b3d9ae7b41aa">menu_edit_item()</a>, <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, and <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>.</p>
</div>
</div>
@@ -1519,7 +1510,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>, and <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>.</p>
+<p>Referenced by <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887">import_profile_photo()</a>, and <a class="el" href="include_2photos_8php.html#a6c40ef58aefef705a5adc84a40e97109">photo_upload()</a>.</p>
</div>
</div>
@@ -1643,7 +1634,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files()</a>, <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1">file_tag_file_query()</a>, <a class="el" href="security_8php.html#a9355488460ab11d6058656ff919e5cf9">item_permissions_sql()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f">permissions_sql()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, <a class="el" href="security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01">public_permissions_sql()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, and <a class="el" href="taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c">term_query()</a>.</p>
+<p>Referenced by <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2attach_8php.html#a887d2d44a3ef18dcb6624e7fb58dc8e3">attach_count_files()</a>, <a class="el" href="include_2attach_8php.html#a3634af95f11a023dd8e882c3c7a3600d">attach_list_files()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="include_2chat_8php.html#a2ba3af6884ecdce95de69262fe599639">chatroom_destroy()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="dirsearch_8php.html#aa1fb04e1de4f25b63349ac78f94ceb4c">dirsearch_content()</a>, <a class="el" href="taxonomy_8php.html#a163b5131f388080b0fc82398d3a32fe1">file_tag_file_query()</a>, <a class="el" href="security_8php.html#a9355488460ab11d6058656ff919e5cf9">item_permissions_sql()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="include_2menu_8php.html#a32701c4245e78ba9106eef52c08bf33d">menu_list()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="security_8php.html#afa683bc025a1d2fe9065e2f6cd71a22f">permissions_sql()</a>, <a class="el" href="include_2photos_8php.html#aa27b9e435dcc34e1009f56dc02c7ca51">photos_list_photos()</a>, <a class="el" href="security_8php.html#ab3bdd30dc60d9ee72370b866aa4a2d01">public_permissions_sql()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, and <a class="el" href="taxonomy_8php.html#a7a913d19c77610da689be48fbbf6734c">term_query()</a>.</p>
</div>
</div>
@@ -1661,7 +1652,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>, and <a class="el" href="text_8php.html#a324c58f37f6acdf9cd1922aa76077d9f">z_input_filter()</a>.</p>
+<p>Referenced by <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, and <a class="el" href="text_8php.html#a324c58f37f6acdf9cd1922aa76077d9f">z_input_filter()</a>.</p>
</div>
</div>
@@ -1705,7 +1696,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="bbcode_8php.html#a851f5aafefe52474201b83f9fd65931f">bb_parse_crypt()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="text_8php.html#ae4f6881d7e13623f8eded6277595112a">generate_user_guid()</a>, <a class="el" href="include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce">group_add()</a>, <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e">item_message_id()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
+<p>Referenced by <a class="el" href="crypto_8php.html#a2148d7aac7b30c720f7ebda7e9790286">aes_encapsulate()</a>, <a class="el" href="include_2attach_8php.html#ab6830b3ab74a5d284876141ac80f6cbc">attach_mkdir()</a>, <a class="el" href="include_2attach_8php.html#a84a8a64c4805e1525b42d4add464833f">attach_store()</a>, <a class="el" href="bbcode_8php.html#a851f5aafefe52474201b83f9fd65931f">bb_parse_crypt()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="account_8php.html#a141fe579c351c78209d425473f978eb5">create_account()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="classRedDirectory.html#a2d12d99d38a6a75fc9a830b2f7fc0bf0">RedDirectory\createFile()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="include_2group_8php.html#a06ec565d2b64e79044e7c1bf91a2a4ce">group_add()</a>, <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="text_8php.html#aa6b0aa8afbeab50d1a3058ad21acb74e">item_message_id()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">local_dir_update()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="items_8php.html#a77da7ce9a117601d49ac4a67c71b514f">mail_store()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, and <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>.</p>
</div>
</div>
@@ -1770,7 +1761,7 @@ Variables</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>string substituted string </dd></dl>
-<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a6943543f3138f6ee182cb701f415d1cc">admin_page_hubloc()</a>, <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85">alt_pager()</a>, <a class="el" href="include_2api_8php.html#a5990101034e7abf6404feba3cd273629">api_apply_template()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="view_2theme_2blogga_2php_2config_8php.html#a8a311a402d3e746ce53fadc38e4b2d27">blogtheme_form()</a>, <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="connect_8php.html#a489f0a66c660de6ec4d6917b27674f07">connect_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair_content()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="text_8php.html#a87a3cefc603302c78982f1d8e1245265">design_tools()</a>, <a class="el" href="dir__fns_8php.html#acf621621e929d49441da30aad76a58cf">dir_safe_mode()</a>, <a class="el" href="dir__fns_8php.html#ae56881d69bb6f8e828c9e35454386774">dir_sort_links()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="datetime_8php.html#a03900dcf0f9e3c58793a031673a70326">field_timezone()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="contact__widgets_8php.html#af24e693532a045954caab515942cfc6f">follow_widget()</a>, <a class="el" href="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">format_categories()</a>, <a class="el" href="text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91">format_filer()</a>, <a class="el" href="identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a1042d74055bafe54a6a30103d87a7f17">group_side()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184">import_content()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="text_8php.html#a71f6952243d3fe1c5a8154f78027e29c">lang_selector()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="include_2menu_8php.html#a890cc6237971e15f15702e6b2e88502e">menu_render()</a>, <a class="el" href="mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7">message_aside()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="text_8php.html#a2a902f5fdba8646333e997898ac45ea3">micropro()</a>, <a class="el" href="include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32">mini_group_select()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3">oembed_format_object()</a>, <a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange_init()</a>, <a class="el" href="opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9">opensearch_init()</a>, <a class="el" href="page__widgets_8php.html#ad82011c1ed90d9de8b9f34c12af5c6f0">pagelist_widget()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="acl__selectors_8php.html#a7b5446e999636ceceea65c154d865a31">populate_acl()</a>, <a class="el" href="items_8php.html#abe695dd89e1e10ed042c26b80114f0ed">posted_date_widget()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793">redbasic_form()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef">rmagic_content()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="account_8php.html#aa9c29c497c17d8f9344dce8631ad8761">send_verification_email()</a>, <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53">theme_attachments()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="vote_8php.html#a6aa67489bf458ca5e3206e46dac68596">vote_content()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="page__widgets_8php.html#a1a1e729da27f252cab6678288a17958f">writepages_widget()</a>, and <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>.</p>
+<p>Referenced by <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a6943543f3138f6ee182cb701f415d1cc">admin_page_hubloc()</a>, <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85">alt_pager()</a>, <a class="el" href="include_2api_8php.html#a5990101034e7abf6404feba3cd273629">api_apply_template()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="view_2theme_2blogga_2php_2config_8php.html#a8a311a402d3e746ce53fadc38e4b2d27">blogtheme_form()</a>, <a class="el" href="classApp.html#a08f0537964d98958d218066364cff785">App\build_pagehead()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="setup_8php.html#a14d208682a88632290c895d20da6e7d6">check_php()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="connect_8php.html#a489f0a66c660de6ec4d6917b27674f07">connect_content()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="text_8php.html#a87a3cefc603302c78982f1d8e1245265">design_tools()</a>, <a class="el" href="dir__fns_8php.html#acf621621e929d49441da30aad76a58cf">dir_safe_mode()</a>, <a class="el" href="dir__fns_8php.html#ae56881d69bb6f8e828c9e35454386774">dir_sort_links()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="dirprofile_8php.html#a3e1d30d3d93863ff5615f2df4ac7f052">dirprofile_init()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="datetime_8php.html#a03900dcf0f9e3c58793a031673a70326">field_timezone()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="text_8php.html#a3054189cff173977f4216c9a3dd29e1b">format_categories()</a>, <a class="el" href="text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91">format_filer()</a>, <a class="el" href="identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="include_2group_8php.html#a6a69bd7be032fa8ce4e49c43a42cc6e9">group_side()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="import_8php.html#afdf25ed70096d5dbf4f6d0ca79fea184">import_content()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="text_8php.html#a71f6952243d3fe1c5a8154f78027e29c">lang_selector()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="manage_8php.html#a2bca247b5296827638959138367db4f5">manage_content()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="include_2menu_8php.html#a4d7123b0577fa994770199f9b831da11">menu_render()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, <a class="el" href="text_8php.html#a2a902f5fdba8646333e997898ac45ea3">micropro()</a>, <a class="el" href="include_2group_8php.html#ab0e422a0f31c0c64fd9084ca03d85f32">mini_group_select()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mood_8php.html#a721b9b6703b3234a005641c92d409b8f">mood_content()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="new__channel_8php.html#ae585191610f79da129492482ce8e2fee">new_channel_content()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3">oembed_format_object()</a>, <a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange_init()</a>, <a class="el" href="opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9">opensearch_init()</a>, <a class="el" href="page__widgets_8php.html#ad82011c1ed90d9de8b9f34c12af5c6f0">pagelist_widget()</a>, <a class="el" href="include_2photos_8php.html#af24c6aeed28ecc31ec39e7d9a1804979">photos_album_widget()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="poke_8php.html#ac9190563a8da9c07a16f9dcd71cf6993">poke_content()</a>, <a class="el" href="acl__selectors_8php.html#a7b5446e999636ceceea65c154d865a31">populate_acl()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793">redbasic_form()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="rmagic_8php.html#a3e28db1e5cfa7e5c2617f90222c1caef">rmagic_content()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="account_8php.html#a014de2d5d5c9785de5bf547a485822fa">send_reg_approval_email()</a>, <a class="el" href="account_8php.html#aa9c29c497c17d8f9344dce8631ad8761">send_verification_email()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="sources_8php.html#ac442ccef080ab95772d8929fcafcb4b7">sources_content()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53">theme_attachments()</a>, <a class="el" href="thing_8php.html#a24a35f1e64029a67fdbea94a776ae04b">thing_content()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="vote_8php.html#a6aa67489bf458ca5e3206e46dac68596">vote_content()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="widgets_8php.html#add9b24d3304e529a7975e96122315554">widget_affinity()</a>, <a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widget_archive()</a>, <a class="el" href="widgets_8php.html#a47c72aac42058ea086c9ef8651c259da">widget_chatroom_list()</a>, <a class="el" href="widgets_8php.html#a5ab3b64496e02cab56429978ad55f1c0">widget_filer()</a>, <a class="el" href="widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd">widget_follow()</a>, <a class="el" href="widgets_8php.html#afa2e55a78f95667a6da082efac7fec74">widget_mailmenu()</a>, <a class="el" href="widgets_8php.html#a45ea061dabe9a8372e4ca3b9e5714256">widget_notes()</a>, <a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widget_savedsearch()</a>, <a class="el" href="widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01">widget_settings_menu()</a>, <a class="el" href="widgets_8php.html#a0d404276fedc59f5038cf5c085028326">widget_suggestions()</a>, <a class="el" href="page__widgets_8php.html#a1a1e729da27f252cab6678288a17958f">writepages_widget()</a>, and <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>.</p>
</div>
</div>
@@ -1842,16 +1833,56 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, and <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>.</p>
+<p>Referenced by <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>.</p>
</div>
</div>
-<a class="anchor" id="aca0f589be74fab1a460c57e88dad9779"></a>
+<a class="anchor" id="aae91e4d2a2c6f7a9daccd2c186ae3447"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">smile_decode </td>
+ <td class="memname">searchbox </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$id</em> = <code>'<a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search</a>-box'</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$url</em> = <code>'/<a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search</a>'</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$save</em> = <code>false</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widget_savedsearch()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a10dde167249ed5abf190a7a0986878ea"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">smile_shield </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$m</em></td><td>)</td>
@@ -1862,12 +1893,12 @@ Variables</h2></td></tr>
</div>
</div>
-<a class="anchor" id="a44d460fcdee6247c67b9bef3ea15f3e6"></a>
+<a class="anchor" id="a273156a6f5cddc6652ad656821cd5805"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">smile_encode </td>
+ <td class="memname">smile_unshield </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$m</em></td><td>)</td>
@@ -1905,10 +1936,36 @@ Variables</h2></td></tr>
<p>Description: Replaces text emoticons with graphical images</p>
<p>: string $s</p>
<p>Returns string</p>
-<p>It is expected that this function will be called using HTML text. We will escape text between HTML pre and code blocks from being processed.</p>
+<p>It is expected that this function will be called using HTML text. We will escape text between HTML pre and code blocks, and HTML attributes (such as urls) from being processed.</p>
<p>At a higher level, the bbcode [nosmile] tag can be used to prevent this function from being executed by the <a class="el" href="text_8php.html#afe54312607d92f7ce9593f5760831f80">prepare_text()</a> routine when preparing bbcode source for HTML display </p>
-<p>Referenced by <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, and <a class="el" href="smilies_8php.html#ab43b1e9f33a700a830aff14c7b3a617f">smilies_content()</a>.</p>
+<p>Referenced by <a class="el" href="chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9">chatsvc_content()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, and <a class="el" href="smilies_8php.html#ab43b1e9f33a700a830aff14c7b3a617f">smilies_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a33bdb5d4bfff2ede7caf61a98ac0a2e9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">sslify </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>sslify($s) Replace media element using http url with https to a local redirector if using https locally </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramtype">string</td><td class="paramname">$s</td><td>Looks for HTML tags containing src elements that are http when we're viewing an https page Typically this throws an insecure content violation in the browser. So we redirect them to a local redirector which uses https and which redirects to the selected content</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>string </dd></dl>
+
+<p>Referenced by <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>.</p>
</div>
</div>
@@ -1936,7 +1993,25 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345">expand_groups()</a>, <a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity_basic_export()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="taxonomy_8php.html#aaf90ba8b839d6459065f39a4f1109b8a">tagadelic()</a>, and <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>.</p>
+<p>Referenced by <a class="el" href="include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345">expand_groups()</a>, <a class="el" href="taxonomy_8php.html#a7747fa859ac56fbffd4f9782d85505de">get_things()</a>, <a class="el" href="identity_8php.html#a3570a4eb77332b292d394c4132cb8f03">identity_basic_export()</a>, <a class="el" href="lockview_8php.html#a851e26ab9a1008df5c5ebebea31e9b44">lockview_content()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="taxonomy_8php.html#aaf90ba8b839d6459065f39a4f1109b8a">tagadelic()</a>, and <a class="el" href="zot_8php.html#aeea071f17e306fe3d0c488551906bfab">zot_import()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2f2585385530cb935a6325c809d84a4d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">strip_zids </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$s</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud_init()</a>, and <a class="el" href="items_8php.html#a4e6d7639431e0dd8e9f4dba8e1ac408b">red_zrl_callback()</a>.</p>
</div>
</div>
@@ -1954,7 +2029,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>.</p>
+<p>Referenced by <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, and <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>.</p>
</div>
</div>
@@ -2088,7 +2163,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
+<p>Referenced by <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home_content()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, and <a class="el" href="items_8php.html#a004e89d86b0f29b2c4da20108ecc4091">zot_feed()</a>.</p>
</div>
</div>
@@ -2114,7 +2189,7 @@ Variables</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>string Escaped text. </dd></dl>
-<p>Referenced by <a class="el" href="text_8php.html#acedb584f65114a33f389efb796172a91">array_xmlify()</a>, <a class="el" href="items_8php.html#a016dd86c827d08db89061ea81d15c6cb">atom_author()</a>, <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>, <a class="el" href="items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee">construct_activity_object()</a>, <a class="el" href="items_8php.html#aa579bc4445d60098b1410961ca8e96b7">construct_activity_target()</a>, <a class="el" href="items_8php.html#aa723c0571e314a1853a24c5854b4f54f">encode_rel_links()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="items_8php.html#a09d425596b9f8663472cf7474ad36d96">item_getfeedattach()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, and <a class="el" href="include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6">xml_status()</a>.</p>
+<p>Referenced by <a class="el" href="text_8php.html#acedb584f65114a33f389efb796172a91">array_xmlify()</a>, <a class="el" href="items_8php.html#a016dd86c827d08db89061ea81d15c6cb">atom_author()</a>, <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>, <a class="el" href="items_8php.html#aa9e99613d38a97b39c8cf5449699c2ee">construct_activity_object()</a>, <a class="el" href="items_8php.html#aa579bc4445d60098b1410961ca8e96b7">construct_activity_target()</a>, <a class="el" href="items_8php.html#aa723c0571e314a1853a24c5854b4f54f">encode_rel_links()</a>, <a class="el" href="items_8php.html#a896c1809d58f2d7a42cfe14577958ddf">get_atom_elements()</a>, <a class="el" href="items_8php.html#a04a35b610acfe54434df08adec39c0c7">get_feed_for()</a>, <a class="el" href="items_8php.html#a09d425596b9f8663472cf7474ad36d96">item_getfeedattach()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, and <a class="el" href="include_2network_8php.html#a9e9da2aafb806c98ecdc318604e60dc6">xml_status()</a>.</p>
</div>
</div>
@@ -2148,7 +2223,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, and <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>.</p>
+<p>Referenced by <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a2541e6861a56d145c9281877cc501615">item_store()</a>, <a class="el" href="items_8php.html#acf0bf7c9d21ac84f32effb754f7ad484">item_store_update()</a>, and <a class="el" href="items_8php.html#a410f9c743877c125ca06312373346903">post_activity_item()</a>.</p>
</div>
</div>
diff --git a/doc/html/text_8php.js b/doc/html/text_8php.js
index cf3d8b77f..e742132d5 100644
--- a/doc/html/text_8php.js
+++ b/doc/html/text_8php.js
@@ -25,10 +25,9 @@ var text_8php =
[ "fix_mce_lf", "text_8php.html#afdc69fe3f6c09e35e46304dcea63ae28", null ],
[ "format_categories", "text_8php.html#a3054189cff173977f4216c9a3dd29e1b", null ],
[ "format_filer", "text_8php.html#a4e4d42b0a805148d9f9a92bcac89bf91", null ],
- [ "generate_user_guid", "text_8php.html#ae4f6881d7e13623f8eded6277595112a", null ],
[ "get_mentions", "text_8php.html#a76d1b3435c067978d7b484c45f56472b", null ],
[ "get_mood_verbs", "text_8php.html#a736db13a966b8abaf8c9198faa35911a", null ],
- [ "get_plink", "text_8php.html#a3ef8c0cf31f35f77462067de8712fa34", null ],
+ [ "get_plink", "text_8php.html#aac0969ae09853205992ba06ab9f9f61a", null ],
[ "get_poke_verbs", "text_8php.html#aa46f941155c2ac1155f2f17ffb0adb66", null ],
[ "get_rel_link", "text_8php.html#a3972701c5c83624ec4e2d06242f614e7", null ],
[ "get_tags", "text_8php.html#a4659fbc4e54ddc700c3aa66b9092c623", null ],
@@ -69,10 +68,13 @@ var text_8php =
[ "return_bytes", "text_8php.html#ae2126da85966da0e79c6bcbac63b0bda", null ],
[ "sanitise_acl", "text_8php.html#a9fbeae13c9abd6e27cb4d8d1817f969c", null ],
[ "search", "text_8php.html#a876e94892867019935b348b573299352", null ],
- [ "smile_decode", "text_8php.html#aca0f589be74fab1a460c57e88dad9779", null ],
- [ "smile_encode", "text_8php.html#a44d460fcdee6247c67b9bef3ea15f3e6", null ],
+ [ "searchbox", "text_8php.html#aae91e4d2a2c6f7a9daccd2c186ae3447", null ],
+ [ "smile_shield", "text_8php.html#a10dde167249ed5abf190a7a0986878ea", null ],
+ [ "smile_unshield", "text_8php.html#a273156a6f5cddc6652ad656821cd5805", null ],
[ "smilies", "text_8php.html#a3d225b253bb9e0f2498c11647d927b0b", null ],
+ [ "sslify", "text_8php.html#a33bdb5d4bfff2ede7caf61a98ac0a2e9", null ],
[ "stringify_array_elms", "text_8php.html#a8796f6a9ca592ecdce7b3afc3462aa13", null ],
+ [ "strip_zids", "text_8php.html#a2f2585385530cb935a6325c809d84a4d", null ],
[ "theme_attachments", "text_8php.html#af9c9ac3f74c82dc60acfa404d0e9dc53", null ],
[ "unamp", "text_8php.html#a29d6b804e368d3ef359ee295e96ed4c7", null ],
[ "undo_post_tagging", "text_8php.html#a740ad03e00459039a2c0992246c4e727", null ],
diff --git a/doc/html/theme_2blogga_2php_2default_8php.html b/doc/html/theme_2blogga_2php_2default_8php.html
index 7e1aeec61..20528d9fe 100644
--- a/doc/html/theme_2blogga_2php_2default_8php.html
+++ b/doc/html/theme_2blogga_2php_2default_8php.html
@@ -116,7 +116,7 @@ Variables</h2></td></tr>
<tr class="separator:ac7062908d1eb80c0735270f7997c4527"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1230ab83d4ec9785d8f3a966f33dc5f3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="theme_2blogga_2php_2default_8php.html#a1230ab83d4ec9785d8f3a966f33dc5f3">$headimghome</a> = <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config</a>('blogtheme', 'headimghome')</td></tr>
<tr class="separator:a1230ab83d4ec9785d8f3a966f33dc5f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a720581ae288aa09511670563e4205a4a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>($a-&gt;module=='display')&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="theme_2blogga_2php_2default_8php.html#a720581ae288aa09511670563e4205a4a">$bodyclass</a> =&quot;&quot;</td></tr>
+<tr class="memitem:a720581ae288aa09511670563e4205a4a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>($a-&gt;module=='display')&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="theme_2blogga_2php_2default_8php.html#a720581ae288aa09511670563e4205a4a">$bodyclass</a> =&quot;&quot;</td></tr>
<tr class="separator:a720581ae288aa09511670563e4205a4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Variable Documentation</h2>
@@ -125,7 +125,7 @@ Variables</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> ($a-&gt;module=='display') $bodyclass =&quot;&quot;</td>
+ <td class="memname"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> ($a-&gt;module=='display') $bodyclass =&quot;&quot;</td>
</tr>
</table>
</div><div class="memdoc">
diff --git a/doc/html/theme_2blogga_2view_2theme_2blog_2default_8php.html b/doc/html/theme_2blogga_2view_2theme_2blog_2default_8php.html
index eafbefc24..6efad8c6e 100644
--- a/doc/html/theme_2blogga_2view_2theme_2blog_2default_8php.html
+++ b/doc/html/theme_2blogga_2view_2theme_2blog_2default_8php.html
@@ -116,7 +116,7 @@ Variables</h2></td></tr>
<tr class="separator:a52d9dd070ed541729088395c22502539"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1230ab83d4ec9785d8f3a966f33dc5f3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="theme_2blogga_2view_2theme_2blog_2default_8php.html#a1230ab83d4ec9785d8f3a966f33dc5f3">$headimghome</a> = <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config</a>('blogtheme', 'headimghome')</td></tr>
<tr class="separator:a1230ab83d4ec9785d8f3a966f33dc5f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a720581ae288aa09511670563e4205a4a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>($a-&gt;module=='display')&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="theme_2blogga_2view_2theme_2blog_2default_8php.html#a720581ae288aa09511670563e4205a4a">$bodyclass</a> =&quot;&quot;</td></tr>
+<tr class="memitem:a720581ae288aa09511670563e4205a4a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>($a-&gt;module=='display')&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="theme_2blogga_2view_2theme_2blog_2default_8php.html#a720581ae288aa09511670563e4205a4a">$bodyclass</a> =&quot;&quot;</td></tr>
<tr class="separator:a720581ae288aa09511670563e4205a4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Variable Documentation</h2>
@@ -125,7 +125,7 @@ Variables</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> ($a-&gt;module=='display') $bodyclass =&quot;&quot;</td>
+ <td class="memname"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> ($a-&gt;module=='display') $bodyclass =&quot;&quot;</td>
</tr>
</table>
</div><div class="memdoc">
@@ -137,7 +137,7 @@ Variables</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (<a class="el" href="boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44">local_user</a>()) $headimg = <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config</a>('blogtheme', 'headimg')</td>
+ <td class="memname"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> (<a class="el" href="boot_8php.html#ad4c9dc2c8a82e8f52b7404c1655eab44">local_user</a>()) $headimg = <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config</a>('blogtheme', 'headimg')</td>
</tr>
</table>
</div><div class="memdoc">
diff --git a/doc/html/tpldebug_8php.html b/doc/html/tpldebug_8php.html
index fc1d1a91f..b9aeb5405 100644
--- a/doc/html/tpldebug_8php.html
+++ b/doc/html/tpldebug_8php.html
@@ -118,7 +118,7 @@ Functions</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
-<tr class="memitem:afbc7aadb3f7ff1edf0aaaa326a42179c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>($<a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc</a> &gt; 1)&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tpldebug_8php.html#afbc7aadb3f7ff1edf0aaaa326a42179c">else</a></td></tr>
+<tr class="memitem:afbc7aadb3f7ff1edf0aaaa326a42179c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a>($<a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc</a> &gt; 1)&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tpldebug_8php.html#afbc7aadb3f7ff1edf0aaaa326a42179c">else</a></td></tr>
<tr class="separator:afbc7aadb3f7ff1edf0aaaa326a42179c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5358407d65f2ca826f96356a6642d149"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tpldebug_8php.html#a5358407d65f2ca826f96356a6642d149">$files</a> = glob('include/*.php')</td></tr>
<tr class="separator:a5358407d65f2ca826f96356a6642d149"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -158,7 +158,7 @@ Variables</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname"><a class="el" href="redbasic_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> ($<a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc</a> &gt; 1) else</td>
+ <td class="memname"><a class="el" href="apw_2php_2style_8php.html#a883f9f14e205f7aa7de02c14df67b40a">if</a> ($<a class="el" href="boot_8php.html#abc0a90a1a77f5b668aa7e4b57d1776a7">argc</a> &gt; 1) else</td>
</tr>
</table>
</div><div class="memdoc">
diff --git a/doc/html/typo_8php.html b/doc/html/typo_8php.html
index c643c7fae..24a480775 100644
--- a/doc/html/typo_8php.html
+++ b/doc/html/typo_8php.html
@@ -134,7 +134,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6">FriendicaSmarty\__construct()</a>, <a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">Item\__construct()</a>, <a class="el" href="classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6">FriendicaSmartyEngine\__construct()</a>, <a class="el" href="classTemplate.html#ae0836e7d5bd5afceb04f50fd635f1228">Template\_replcb_if()</a>, <a class="el" href="classTemplate.html#a86e8fd27955ef10cadfd86f3fca70677">Template\_replcb_inc()</a>, <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>, <a class="el" href="Contact_8php.html#a024919623a830e8703ac4f23496dd66c">abook_toggle_flag()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a6943543f3138f6ee182cb701f415d1cc">admin_page_hubloc()</a>, <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="allfriends_8php.html#aad992ddbb5f20e81c5cf2259718aec83">allfriends_content()</a>, <a class="el" href="include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694">allowed_email()</a>, <a class="el" href="include_2network_8php.html#aee35d9ad6b3f872bfb39ba3598936aa7">allowed_url()</a>, <a class="el" href="text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85">alt_pager()</a>, <a class="el" href="include_2api_8php.html#a864191bb876a515ed71b17e260ef35ad">api_account_verify_credentials()</a>, <a class="el" href="include_2api_8php.html#aa9dc5350b26d6c7727d6c4b641ecba18">api_albums()</a>, <a class="el" href="include_2api_8php.html#a5990101034e7abf6404feba3cd273629">api_apply_template()</a>, <a class="el" href="include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5">api_call()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="include_2api_8php.html#a970b02c06dea8b229aa3d5fff9cf4705">api_direct_messages_all()</a>, <a class="el" href="include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5">api_direct_messages_box()</a>, <a class="el" href="include_2api_8php.html#a9160288b7ac220635942d8dc209b78c3">api_direct_messages_conversation()</a>, <a class="el" href="include_2api_8php.html#ad2b0192f3006918bea895de8074bf8d2">api_direct_messages_inbox()</a>, <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new()</a>, <a class="el" href="include_2api_8php.html#a58cf4c02ef435996f5c3bc4283d3968d">api_direct_messages_sentbox()</a>, <a class="el" href="include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f">api_favorites()</a>, <a class="el" href="include_2api_8php.html#ab1ecb58954f722444bfe03233345cb1b">api_followers_ids()</a>, <a class="el" href="include_2api_8php.html#a18cab7c6391df5c421753463f5d2a879">api_format_as()</a>, <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="include_2api_8php.html#acafd2899309a005fcb725289173dc7fe">api_friends_ids()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#aa49741342ad8ba285737eea1209a37e1">api_item_get_user()</a>, <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f">api_photos()</a>, <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api_post()</a>, <a class="el" href="include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f">api_rss_extra()</a>, <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api_statuses_destroy()</a>, <a class="el" href="include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410">api_statuses_f()</a>, <a class="el" href="include_2api_8php.html#a6951c690d87775eb37e569c66011988e">api_statuses_followers()</a>, <a class="el" href="include_2api_8php.html#ade742525b2e41c82b090799ef3c51d5e">api_statuses_friends()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95">api_statuses_mediap()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update()</a>, <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, <a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>, <a class="el" href="text_8php.html#a95fd2f8f23a1948414a03ebc963bac57">attribute_contains()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7">avatar_img()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7">best_link_url()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="blogga_2php_2theme_8php.html#aa55c1cb1f05087b5002ecb633b550b1b">blog_init()</a>, <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#a028ae8e9f2824670dfa76a6651d817e5">blogtheme_display_item()</a>, <a class="el" href="view_2theme_2blogga_2php_2config_8php.html#a8a311a402d3e746ce53fadc38e4b2d27">blogtheme_form()</a>, <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#af634a3f721c5e238530d0636d33230ec">blogtheme_imgurl()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="datetime_8php.html#aea356409ba69f9de412298c998595dd2">cal()</a>, <a class="el" href="plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c">call_hooks()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="channel_8php.html#aea8e189f2fbabfda779349dd94082e8e">channel_aside()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="security_8php.html#a9c6180e82150a5a9af91a1255d096b5c">check_form_security_token()</a>, <a class="el" href="security_8php.html#a444ac867dfa8c37cf0a7a226412bee28">check_form_security_token_ForbiddenOnErr()</a>, <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr()</a>, <a class="el" href="setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4">check_htaccess()</a>, <a class="el" href="boot_8php.html#ab79b8b4555cae20d03f8200666d89d63">clean_urls()</a>, <a class="el" href="cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b">cli_startup()</a>, <a class="el" href="cli__suggest_8php.html#a8f3a60fc96f4bec7d3837c4efc7725f2">cli_suggest_run()</a>, <a class="el" href="comanche_8php.html#a1fe339e1454803aa502ac89379c17f5b">comanche_menu()</a>, <a class="el" href="comanche_8php.html#a1a208fdb40dd83d6298caec4290ee922">comanche_parser()</a>, <a class="el" href="comanche_8php.html#a028f004d5b8c23d6367816d899e17cfe">comanche_replace_region()</a>, <a class="el" href="comanche_8php.html#a6b0191c1a63db1696a2eb139d90d9e7f">comanche_widget()</a>, <a class="el" href="common_8php.html#a3b12ec67b3d3edcf595c8d195da5d14a">common_aside()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connect_8php.html#a489f0a66c660de6ec4d6917b27674f07">connect_content()</a>, <a class="el" href="connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36">connect_init()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="connections_8php.html#af48f7ad20914760ba9874c090384e35a">connections_aside()</a>, <a class="el" href="connections_8php.html#a15af118efee9c948b6f8294e54a73bb2">connections_clone()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections_init()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="crepair_8php.html#a29464c01838e209c8059cfcd2d195caa">crepair_content()</a>, <a class="el" href="crepair_8php.html#ab089978e50df156bbfabf9f8f5ccd198">crepair_init()</a>, <a class="el" href="crepair_8php.html#acc4493e1ffd1462a605dd9b870034513">crepair_post()</a>, <a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme()</a>, <a class="el" href="boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3">current_theme_url()</a>, <a class="el" href="include_2config_8php.html#a549910227348003efc3c05c9105c42da">del_config()</a>, <a class="el" href="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">del_pconfig()</a>, <a class="el" href="include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72">del_xconfig()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="mod_2directory_8php.html#aa1d928543212871491706216742dd73c">directory_aside()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf">directory_init()</a>, <a class="el" href="dirsearch_8php.html#a3e51964ae3f5ff147403407b65324752">dirsearch_init()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c">dlogger()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="event_8php.html#a32ba1b9ddf7a744a9a1512b052e5f850">ev_compare()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="text_8php.html#ae4282a39492caa23ccbc2ce98e54f110">expand_acl()</a>, <a class="el" href="include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345">expand_groups()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="contact__widgets_8php.html#af24e693532a045954caab515942cfc6f">follow_widget()</a>, <a class="el" href="bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863">format_event_diaspora()</a>, <a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest_content()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="classBaseObject.html#ac43f10e69ce80c78e4870636250fc8a2">BaseObject\get_app()</a>, <a class="el" href="boot_8php.html#a0e6db7e365f2b041a828b93786f694bc">get_app()</a>, <a class="el" href="language_8php.html#a980dee1d8715a98ab02e36b59facf8ed">get_best_language()</a>, <a class="el" href="identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config()</a>, <a class="el" href="boot_8php.html#a899d24fd074594ceebbf72e1feff335f">get_custom_nav()</a>, <a class="el" href="identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="security_8php.html#acd06ef411116115c2f0a92633700db8a">get_form_security_token()</a>, <a class="el" href="classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118">FriendicaSmartyEngine\get_intltext_template()</a>, <a class="el" href="plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295">get_intltext_template()</a>, <a class="el" href="plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4">get_markup_template()</a>, <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig()</a>, <a class="el" href="text_8php.html#a3ef8c0cf31f35f77462067de8712fa34">get_plink()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="plugin_8php.html#a48047edfbef770125a5508dcc2f9282f">get_theme_screenshot()</a>, <a class="el" href="include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e">get_xconfig()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="mod_2group_8php.html#aeb0784dd928e53e6d8693513bec8928c">group_aside()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">group_select()</a>, <a class="el" href="photo__driver_8php.html#a243cee492ce443afb6a7d77d54b6c4aa">guess_image_type()</a>, <a class="el" href="item_8php.html#abd0e603a6696051af16476eb968d52e7">handle_tag()</a>, <a class="el" href="hcard_8php.html#a956c7cae2009652a37900306e5b7b73d">hcard_aside()</a>, <a class="el" href="hcard_8php.html#ac34f26b0e6a37eef44fa49bea135136d">hcard_init()</a>, <a class="el" href="boot_8php.html#a24a7a70afedd5d85fe0eadc85afa9f77">head_get_icon()</a>, <a class="el" href="boot_8php.html#a0e4701c9742c3ef88f02ac450a042a84">head_set_icon()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="photo__driver_8php.html#a102f3f26f67e0e38f4322a771951c1ca">import_profile_photo()</a>, <a class="el" href="boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498">info()</a>, <a class="el" href="plugin_8php.html#aeaebe63dcf6fa2794f363ba2bc0b2c6b">insert_hook()</a>, <a class="el" href="intro_8php.html#abc3abf25da64f98f215126eb08c7936b">intro_aside()</a>, <a class="el" href="intro_8php.html#a3e2a523697633ddb4517b9266a515f5b">intro_content()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e">is_site_admin()</a>, <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="text_8php.html#a71f6952243d3fe1c5a8154f78027e29c">lang_selector()</a>, <a class="el" href="lastpost_8php.html#a6108289ef2a767495c7c85a24f364983">lastpost_aside()</a>, <a class="el" href="lastpost_8php.html#a82f14cce5d3cfe27f40bdbd2c679d493">lastpost_content()</a>, <a class="el" href="lastpost_8php.html#ab4c6ebd25736af678e64d55ce508ce8c">lastpost_init()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</a>, <a class="el" href="text_8php.html#a47c1e4a5f3f53027daacd8a9db24f285">link_compare()</a>, <a class="el" href="include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1">load_config()</a>, <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links()</a>, <a class="el" href="setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a">load_database()</a>, <a class="el" href="plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813">load_hooks()</a>, <a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">load_pconfig()</a>, <a class="el" href="language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05">load_translation_table()</a>, <a class="el" href="include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33">load_xconfig()</a>, <a class="el" href="text_8php.html#a030fa5ecc64168af0c4f44897a9bce63">logger()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login_content()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="setup_8php.html#abe405d227ba7232971964a706d4f3bce">manual_config()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2menu_8php.html#a6fed23af14d71a78a4153c8363a685cf">menu_content()</a>, <a class="el" href="mod_2message_8php.html#af4ba72486117cc24335fd8e92a2112a7">message_aside()</a>, <a class="el" href="mod_2message_8php.html#a3547ed86d09a4bb8fa64ec374a40ee79">message_content()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a9627cd857cafdf04e4fc0ae48c8e8518">mitem_init()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8">msearch_post()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="nav_8php.html#ac3c920ce3ea5b0d9e0678ee37155f06a">nav_set_selected()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">notice()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url()</a>, <a class="el" href="include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3">oembed_format_object()</a>, <a class="el" href="include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed_iframe()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange_init()</a>, <a class="el" href="onedirsync_8php.html#a411aedd47c57476099647961e6a86691">onedirsync_run()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9">opensearch_init()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="text_8php.html#afe9f178d264d44a94dc1292aaf0fd585">paginate()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="language_8php.html#a78bd204955ec4cc3a9ac651285a1689d">pop_lang()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="text_8php.html#ac19d2b33a58372a357a43d51eed19162">preg_heart()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="profile_8php.html#a1a2482b775476f2f64ea5e8f4fc3fd1e">profile_aside()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="identity_8php.html#ad4a2c8caca8f6ae93633ebeca0ed6620">profile_create_sidebar()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#ac9cd968a767e2ae1b88383b6cdd6dbe3">profile_photo_aside()</a>, <a class="el" href="profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02">profile_photo_init()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#a2a3ac90f51941ff78b85e9389304969c">profiles_aside()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#a77fd398ae7c25142e1d9ad724ec347cc">profperm_aside()</a>, <a class="el" href="profperm_8php.html#aef015787de2373d9fb3fe3f814fb5023">profperm_content()</a>, <a class="el" href="profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6">profperm_init()</a>, <a class="el" href="language_8php.html#ac9142ef1d01a235c760deb0f16643f5a">push_lang()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090">randprof_init()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793">redbasic_form()</a>, <a class="el" href="redir_8php.html#a9ac266c3f5cf0d94ef63e6d0f2edf1f5">redir_init()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82">relative_date()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme_post()</a>, <a class="el" href="text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09">replace_macros()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="mod_2network_8php.html#a36e03af6f2efe62ecaa247509365bfad">saved_searches()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search_init()</a>, <a class="el" href="search_8php.html#a230ec9681ddee3b5b8b40c8d550f32f7">search_post()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a">set_config()</a>, <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation\set_mode()</a>, <a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">set_pconfig()</a>, <a class="el" href="include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e">set_xconfig()</a>, <a class="el" href="settings_8php.html#ae5aebccb006bee1300078576baaf5582">settings_aside()</a>, <a class="el" href="settings_8php.html#a3a4cde287482fced008583f54ba2a722">settings_init()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="suggest_8php.html#a4df91c84594d51ba56b5918de414230d">suggest_aside()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04">t()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="taxonomy_8php.html#aaeded36bcc983b35d9205fe5b6c18c43">tags_sort()</a>, <a class="el" href="Contact_8php.html#a38daa1c210b78385307123450ca9a1fc">terminate_friendship()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="view_2theme_2blogga_2php_2config_8php.html#a09cd81013505f83aea0771243a1e4e53">theme_admin()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>, <a class="el" href="plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2">theme_include()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865">timezone_cmp()</a>, <a class="el" href="toggle__mobile_8php.html#aca53ade8971802b45c31e722b22c6254">toggle_mobile_init()</a>, <a class="el" href="language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d">tt()</a>, <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport_init()</a>, <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel_content()</a>, <a class="el" href="update__community_8php.html#abdcc5c4ecebbe0b5fcba2755c69cb3b1">update_community_content()</a>, <a class="el" href="update__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display_content()</a>, <a class="el" href="update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41">update_network_content()</a>, <a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search_content()</a>, <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6">viewconnections_aside()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="vote_8php.html#a6aa67489bf458ca5e3206e46dac68596">vote_content()</a>, <a class="el" href="vote_8php.html#ae0c6610f40afbbc1f4fe6494c51fbab2">vote_init()</a>, <a class="el" href="vote_8php.html#a57a9516ee1b923b224e66dcc47377fb2">vote_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58">what_next()</a>, <a class="el" href="widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923">widget_profile()</a>, <a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widget_tagcloud()</a>, <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>, <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url()</a>, <a class="el" href="boot_8php.html#aba208673515cbb8a55e5fa4a1da99fda">z_path()</a>, <a class="el" href="boot_8php.html#add517a0958ac684792c62142a3877f81">z_root()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>, and <a class="el" href="zping_8php.html#a4d3a6b0b8b04ed6469015823e615ee75">zping_content()</a>.</p>
+<p>Referenced by <a class="el" href="classFriendicaSmarty.html#af12091b920b95eeef1218cbc48066ca6">FriendicaSmarty\__construct()</a>, <a class="el" href="classItem.html#a248f45871ecfe82a08d1d4c0769b2eb2">Item\__construct()</a>, <a class="el" href="classFriendicaSmartyEngine.html#ab7c305bd8c386c2944e4dc9136cea5b6">FriendicaSmartyEngine\__construct()</a>, <a class="el" href="classTemplate.html#ae0836e7d5bd5afceb04f50fd635f1228">Template\_replcb_if()</a>, <a class="el" href="classTemplate.html#a86e8fd27955ef10cadfd86f3fca70677">Template\_replcb_inc()</a>, <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>, <a class="el" href="Contact_8php.html#a024919623a830e8703ac4f23496dd66c">abook_toggle_flag()</a>, <a class="el" href="achievements_8php.html#a35ae04ada0e227d19671f289a32fb30e">achievements_content()</a>, <a class="el" href="acl_8php.html#ac6776dba871806ecdb5d1659bc2eb07a">acl_init()</a>, <a class="el" href="admin_8php.html#afef415e4011607fbb665610441595015">admin_content()</a>, <a class="el" href="admin_8php.html#aaa6addf2dbc3f3fcf99244a56b41eade">admin_page_dbsync()</a>, <a class="el" href="admin_8php.html#a6943543f3138f6ee182cb701f415d1cc">admin_page_hubloc()</a>, <a class="el" href="admin_8php.html#a60ba9783ad14545814919970bc3fb725">admin_page_hubloc_post()</a>, <a class="el" href="admin_8php.html#a1d1362698af14d209aa3a0fb655551dd">admin_page_logs()</a>, <a class="el" href="admin_8php.html#a233b7c8c31776b7020532003c6e44e1c">admin_page_logs_post()</a>, <a class="el" href="admin_8php.html#a54128076986ba80c4a103de3fc3e19a8">admin_page_plugins()</a>, <a class="el" href="admin_8php.html#ac0f3bd12431c056aad77bac9d09fa30e">admin_page_site()</a>, <a class="el" href="admin_8php.html#add865f4ae806ecbf716f423fc3e50e4f">admin_page_site_post()</a>, <a class="el" href="admin_8php.html#ac6e95b920b5abd030cc522964987087a">admin_page_summary()</a>, <a class="el" href="admin_8php.html#af124619fdc278fe2bf14c45ddaa260fb">admin_page_themes()</a>, <a class="el" href="admin_8php.html#a62f10f90c47686c9c3c37c4c03a108d2">admin_page_users()</a>, <a class="el" href="admin_8php.html#a5a696706a3869800e65fb365214241b7">admin_page_users_post()</a>, <a class="el" href="admin_8php.html#acf51f5837a7427832144c2bf7308ada3">admin_post()</a>, <a class="el" href="identity_8php.html#aa870d2c1f558cfd52bef05bc124e8fa4">advanced_profile()</a>, <a class="el" href="include_2network_8php.html#aba38458a2ff2d92d3536488dbb119694">allowed_email()</a>, <a class="el" href="include_2network_8php.html#aee35d9ad6b3f872bfb39ba3598936aa7">allowed_url()</a>, <a class="el" href="text_8php.html#a75c243e06341ec16bd5a44b9b1cacd85">alt_pager()</a>, <a class="el" href="include_2api_8php.html#a864191bb876a515ed71b17e260ef35ad">api_account_verify_credentials()</a>, <a class="el" href="include_2api_8php.html#aa9dc5350b26d6c7727d6c4b641ecba18">api_albums()</a>, <a class="el" href="include_2api_8php.html#a5990101034e7abf6404feba3cd273629">api_apply_template()</a>, <a class="el" href="include_2api_8php.html#a176c448d79c211ad41c2bbe3124658f5">api_call()</a>, <a class="el" href="mod_2api_8php.html#a33315b5bbf5418f6850b2038107b526d">api_content()</a>, <a class="el" href="include_2api_8php.html#a970b02c06dea8b229aa3d5fff9cf4705">api_direct_messages_all()</a>, <a class="el" href="include_2api_8php.html#a7759ccddc8dff012ad168e511ffe5af5">api_direct_messages_box()</a>, <a class="el" href="include_2api_8php.html#a9160288b7ac220635942d8dc209b78c3">api_direct_messages_conversation()</a>, <a class="el" href="include_2api_8php.html#ad2b0192f3006918bea895de8074bf8d2">api_direct_messages_inbox()</a>, <a class="el" href="include_2api_8php.html#a0991f72554f821255397d615e76f3203">api_direct_messages_new()</a>, <a class="el" href="include_2api_8php.html#a58cf4c02ef435996f5c3bc4283d3968d">api_direct_messages_sentbox()</a>, <a class="el" href="include_2api_8php.html#a2c71b1226ef1283b5370bd1c200fee5f">api_favorites()</a>, <a class="el" href="include_2api_8php.html#ab1ecb58954f722444bfe03233345cb1b">api_followers_ids()</a>, <a class="el" href="include_2api_8php.html#a18cab7c6391df5c421753463f5d2a879">api_format_as()</a>, <a class="el" href="include_2api_8php.html#a4c6fb9fb5203aa60f4b3afd4521db8ea">api_format_items()</a>, <a class="el" href="include_2api_8php.html#acafd2899309a005fcb725289173dc7fe">api_friends_ids()</a>, <a class="el" href="include_2api_8php.html#aa40bae797bcd9ccacffdce5a3b5a1afa">api_get_user()</a>, <a class="el" href="include_2api_8php.html#aa49741342ad8ba285737eea1209a37e1">api_item_get_user()</a>, <a class="el" href="include_2api_8php.html#afe534f826e4282b72d66e8cadca7bb73">api_login()</a>, <a class="el" href="include_2api_8php.html#aa6fc3bc8c0fad1d081db0dcc456dd77f">api_photos()</a>, <a class="el" href="mod_2api_8php.html#a6fe77f05c07cb51048df0d557b4b9bd2">api_post()</a>, <a class="el" href="include_2api_8php.html#a6a04b48168ba1d9dd2de3081a630611f">api_rss_extra()</a>, <a class="el" href="include_2api_8php.html#a645397787618b5c548a31e8686e8cca4">api_status_show()</a>, <a class="el" href="include_2api_8php.html#ad4c29f43418f6110f85a6b3998239ab4">api_statuses_destroy()</a>, <a class="el" href="include_2api_8php.html#aa0d6b29fff0344a8e67f3507a6d01410">api_statuses_f()</a>, <a class="el" href="include_2api_8php.html#a6951c690d87775eb37e569c66011988e">api_statuses_followers()</a>, <a class="el" href="include_2api_8php.html#ade742525b2e41c82b090799ef3c51d5e">api_statuses_friends()</a>, <a class="el" href="include_2api_8php.html#a528d8070ee74ea800102936ce73cf366">api_statuses_home_timeline()</a>, <a class="el" href="include_2api_8php.html#a450d8732b7b608f7ac929aee61572b95">api_statuses_mediap()</a>, <a class="el" href="include_2api_8php.html#a8b25a186bd0893f51aa72a62f655735e">api_statuses_mentions()</a>, <a class="el" href="include_2api_8php.html#ad24ce1bf20867add4c9211a8eaf93f22">api_statuses_public_timeline()</a>, <a class="el" href="include_2api_8php.html#ae0fa388479cace9c5a7a45b571ab42f8">api_statuses_repeat()</a>, <a class="el" href="include_2api_8php.html#af6f1d89cdb0a0621025efbec1597bc63">api_statuses_show()</a>, <a class="el" href="include_2api_8php.html#ad4d1634df6b35126552324683caaffa2">api_statuses_update()</a>, <a class="el" href="include_2api_8php.html#a32f0dda848d0c11c727fe1c3e741c283">api_statuses_user_timeline()</a>, <a class="el" href="include_2api_8php.html#a623793229a7256dd31bcfd5ab90eef08">api_statusnet_config()</a>, <a class="el" href="include_2api_8php.html#abe8e929e93f7ab134b1cb1fb30f19a76">api_users_show()</a>, <a class="el" href="apps_8php.html#a546016cb960d0b110ee8e489dfa6c27c">apps_content()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#a8b51951a70e1c1324be71345a61d70ec">apw_form()</a>, <a class="el" href="items_8php.html#a275108c050f7eb18bcbb5018e6b81cf6">atom_entry()</a>, <a class="el" href="text_8php.html#a95fd2f8f23a1948414a03ebc963bac57">attribute_contains()</a>, <a class="el" href="security_8php.html#adc7bf51e3b8d67bd80e9348f9ab03733">authenticate_success()</a>, <a class="el" href="include_2network_8php.html#ab07ce9d75eae559865ed90aad2154bd7">avatar_img()</a>, <a class="el" href="bbcode_8php.html#a3a989cbf308a32468d171d83e9c51d1e">bb_sanitize_style()</a>, <a class="el" href="bbcode_8php.html#a009f61aaf78771737ed0765c8463911b">bbcode()</a>, <a class="el" href="conversation_8php.html#ad470fc7766f0db66d138fa1916c7a8b7">best_link_url()</a>, <a class="el" href="blocks_8php.html#a2531a8fd51db3cecb2eb20c002c66e12">blocks_content()</a>, <a class="el" href="blogga_2php_2theme_8php.html#aa55c1cb1f05087b5002ecb633b550b1b">blog_init()</a>, <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#a028ae8e9f2824670dfa76a6651d817e5">blogtheme_display_item()</a>, <a class="el" href="view_2theme_2blogga_2php_2config_8php.html#a8a311a402d3e746ce53fadc38e4b2d27">blogtheme_form()</a>, <a class="el" href="blogga_2view_2theme_2blog_2theme_8php.html#af634a3f721c5e238530d0636d33230ec">blogtheme_imgurl()</a>, <a class="el" href="mod_2bookmarks_8php.html#a6b7942f3d27e40f0f47c88704127b9b3">bookmarks_init()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="datetime_8php.html#aea356409ba69f9de412298c998595dd2">cal()</a>, <a class="el" href="plugin_8php.html#a7f05de16c0a32602853b09b99dd85e7c">call_hooks()</a>, <a class="el" href="contact__widgets_8php.html#a165eb021e61c4dcab2a552f28628d353">categories_widget()</a>, <a class="el" href="channel_8php.html#a9c6a6179e0e626398ebecc6151905ef1">channel_content()</a>, <a class="el" href="channel_8php.html#ac7c8c7845741baadf87fae6bc279f3dc">channel_init()</a>, <a class="el" href="Contact_8php.html#a186162051a5127069cc851d78740f205">channel_remove()</a>, <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>, <a class="el" href="mod_2chat_8php.html#aa9ae4782e9baef0b7314ab9527c2707e">chat_init()</a>, <a class="el" href="mod_2chat_8php.html#a999d594745597c656c9760253ae297ad">chat_post()</a>, <a class="el" href="chatsvc_8php.html#a7032784215e1f6747cf385a6598770f9">chatsvc_content()</a>, <a class="el" href="chatsvc_8php.html#a28d248b056fa47452e28ed01130e9116">chatsvc_init()</a>, <a class="el" href="chatsvc_8php.html#a7c9a9b9c24a2b02eed8efd6b09632d03">chatsvc_post()</a>, <a class="el" href="boot_8php.html#a4c02d88e66852a01bd5a1feecb7c3ce3">check_config()</a>, <a class="el" href="security_8php.html#a9c6180e82150a5a9af91a1255d096b5c">check_form_security_token()</a>, <a class="el" href="security_8php.html#a444ac867dfa8c37cf0a7a226412bee28">check_form_security_token_ForbiddenOnErr()</a>, <a class="el" href="security_8php.html#a77ba0d1889a39cf32434c5ce96fe1433">check_form_security_token_redirectOnErr()</a>, <a class="el" href="setup_8php.html#a0c3f3b671381f6dccd924b8ecdfc56c4">check_htaccess()</a>, <a class="el" href="boot_8php.html#ab79b8b4555cae20d03f8200666d89d63">clean_urls()</a>, <a class="el" href="cli__startup_8php.html#adfdde63686e33ccd4851fa5edc4fc70b">cli_startup()</a>, <a class="el" href="cli__suggest_8php.html#a8f3a60fc96f4bec7d3837c4efc7725f2">cli_suggest_run()</a>, <a class="el" href="cloud_8php.html#a1b79a6fe0454bc76673ad9aef55bf02d">cloud_init()</a>, <a class="el" href="comanche_8php.html#a1fe339e1454803aa502ac89379c17f5b">comanche_menu()</a>, <a class="el" href="comanche_8php.html#a1a208fdb40dd83d6298caec4290ee922">comanche_parser()</a>, <a class="el" href="comanche_8php.html#a028f004d5b8c23d6367816d899e17cfe">comanche_replace_region()</a>, <a class="el" href="comanche_8php.html#a6b0191c1a63db1696a2eb139d90d9e7f">comanche_widget()</a>, <a class="el" href="common_8php.html#ab63408f39abef7a6915186e8dabc5a96">common_content()</a>, <a class="el" href="contact__widgets_8php.html#a552f8544528cec0c995cea7287ea9d65">common_friends_visitor_widget()</a>, <a class="el" href="common_8php.html#aca62f113655809f41f49042ce9b123c2">common_init()</a>, <a class="el" href="community_8php.html#a1197aafd6a6b540dbb4a0c04ade3a25a">community_content()</a>, <a class="el" href="connect_8php.html#a489f0a66c660de6ec4d6917b27674f07">connect_content()</a>, <a class="el" href="connect_8php.html#ad46a38f32fd7a3d324b1fa26373efa36">connect_init()</a>, <a class="el" href="connect_8php.html#a417ec27afe33f21a929667a665e32ee2">connect_post()</a>, <a class="el" href="connections_8php.html#a15af118efee9c948b6f8294e54a73bb2">connections_clone()</a>, <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="connections_8php.html#a1f23623f802af7bd35e95b0e94e5d558">connections_init()</a>, <a class="el" href="connections_8php.html#a1224058db8e3fb56463eb312f98e561d">connections_post()</a>, <a class="el" href="connedit_8php.html#a707ea7e63cf9674025b1d6b081ae74f5">connedit_clone()</a>, <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="connedit_8php.html#a4da871e075597a09a8b374b9171dd92e">connedit_init()</a>, <a class="el" href="connedit_8php.html#a234c48426b652bf4d37053f2af329ac5">connedit_post()</a>, <a class="el" href="boot_8php.html#acc4e0c910af066148b810e5fde55fff1">construct_page()</a>, <a class="el" href="text_8php.html#ad6432621d0fafcbcf3d3b9b49bef7784">contact_block()</a>, <a class="el" href="acl__selectors_8php.html#a9476997d2968a5794f3723878ed89c91">contact_select()</a>, <a class="el" href="conversation_8php.html#affea1afb3f32ca41e966c8ddb4204d81">conversation()</a>, <a class="el" href="identity_8php.html#a345f4c943d84de502ec6e72d2c813945">create_identity()</a>, <a class="el" href="boot_8php.html#ad206598b909e8eb67eb0e0bb5ef69c13">current_theme()</a>, <a class="el" href="boot_8php.html#a926cad0b3d8b9d9ee5da1898fc063ba3">current_theme_url()</a>, <a class="el" href="include_2config_8php.html#a549910227348003efc3c05c9105c42da">del_config()</a>, <a class="el" href="include_2config_8php.html#a7ad2081c5f812ac4387fd76f3762d941">del_pconfig()</a>, <a class="el" href="include_2config_8php.html#a9c171def547deee16738dc58fdeb4b72">del_xconfig()</a>, <a class="el" href="delegate_8php.html#a943eea8996ef348eb845c498f9f354dd">delegate_content()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="mod_2directory_8php.html#aac79396570d759da2efac24fcedf5b44">directory_content()</a>, <a class="el" href="mod_2directory_8php.html#a5ee59c213508b6b9787612a8219cb5bf">directory_init()</a>, <a class="el" href="dirsearch_8php.html#a3e51964ae3f5ff147403407b65324752">dirsearch_init()</a>, <a class="el" href="display_8php.html#a37137c98d47bf3306f4c2bb9f5b60de0">display_content()</a>, <a class="el" href="text_8php.html#a0a1f7c0e97f9ecbebf3e5834582b014c">dlogger()</a>, <a class="el" href="items_8php.html#afa1db13c2a8b73b5b17b97f17e5a19d1">drop_item()</a>, <a class="el" href="editblock_8php.html#abbe8f55de06967bc8d79d620509a49e6">editblock_content()</a>, <a class="el" href="editlayout_8php.html#aa877e4157a26b099de904164181dd386">editlayout_content()</a>, <a class="el" href="editpost_8php.html#a34011690864d122680c802e9e748ccfb">editpost_content()</a>, <a class="el" href="editwebpage_8php.html#a375e945255fad79a71036528f7480650">editwebpage_content()</a>, <a class="el" href="event_8php.html#a32ba1b9ddf7a744a9a1512b052e5f850">ev_compare()</a>, <a class="el" href="event_8php.html#a89ef533faf345db8d64a58d4856bde3a">event_store()</a>, <a class="el" href="events_8php.html#a1d293fb217ae6bc9e3858c4b32e363ec">events_content()</a>, <a class="el" href="events_8php.html#ab3e8a8f901175f8e40a8089eea45c075">events_post()</a>, <a class="el" href="text_8php.html#ae4282a39492caa23ccbc2ce98e54f110">expand_acl()</a>, <a class="el" href="include_2group_8php.html#a22a81875259c7d3d64d4848afea6b345">expand_groups()</a>, <a class="el" href="fbrowser_8php.html#aee476addcf7a3e0fe9454f7dfd5a56c4">fbrowser_content()</a>, <a class="el" href="contact__widgets_8php.html#a1eda66319d170f60a8d07c7ece95533b">fileas_widget()</a>, <a class="el" href="filer_8php.html#a5fd5d7e61b2f9c43cb5f110c89dc4274">filer_content()</a>, <a class="el" href="filerm_8php.html#ae2eb28d2054fa2c37e38689882172208">filerm_content()</a>, <a class="el" href="filestorage_8php.html#a61bb1be78472555df4ce619f51014040">filestorage_content()</a>, <a class="el" href="contact__widgets_8php.html#a57e73ebcfd62bb5d8c7a7b9e663726d6">findpeople_widget()</a>, <a class="el" href="items_8php.html#aba98fcbbcd7044a7e9ea34edabc14c87">fix_private_photos()</a>, <a class="el" href="mod_2follow_8php.html#a171f5b19f50d7738adc3b2e96ec6018a">follow_init()</a>, <a class="el" href="bb2diaspora_8php.html#a29a2ad41f5826f3975fa9a49934ff863">format_event_diaspora()</a>, <a class="el" href="fsuggest_8php.html#aa6c49ed4b50a387f1845f36844dd7998">fsuggest_content()</a>, <a class="el" href="fsuggest_8php.html#a61ecfe10ce937ed526614f8fd3de3c7d">fsuggest_post()</a>, <a class="el" href="classBaseObject.html#ac43f10e69ce80c78e4870636250fc8a2">BaseObject\get_app()</a>, <a class="el" href="boot_8php.html#a0e6db7e365f2b041a828b93786f694bc">get_app()</a>, <a class="el" href="language_8php.html#a980dee1d8715a98ab02e36b59facf8ed">get_best_language()</a>, <a class="el" href="identity_8php.html#ad2c97627a313d53df1a1c7b4215ddb51">get_birthdays()</a>, <a class="el" href="classItem.html#a3ee7667c2ec6cd7657328e27848c0bdf">Item\get_comment_box()</a>, <a class="el" href="include_2config_8php.html#af02c96e6b37335774b548914ede1d22e">get_config()</a>, <a class="el" href="boot_8php.html#a899d24fd074594ceebbf72e1feff335f">get_custom_nav()</a>, <a class="el" href="identity_8php.html#ae381db3d43f8e7c1da8b15d14ecf5312">get_events()</a>, <a class="el" href="security_8php.html#acd06ef411116115c2f0a92633700db8a">get_form_security_token()</a>, <a class="el" href="classFriendicaSmartyEngine.html#a35ec0ee828c36640ea25296bcb84a118">FriendicaSmartyEngine\get_intltext_template()</a>, <a class="el" href="plugin_8php.html#acb63c27d07f6d7dffe95f98a6cef1295">get_intltext_template()</a>, <a class="el" href="plugin_8php.html#a75f7dfed291fd7add7fc85b5c022a1f4">get_markup_template()</a>, <a class="el" href="include_2config_8php.html#ad58a4913937179adb13201c2ee3261ad">get_pconfig()</a>, <a class="el" href="text_8php.html#aac0969ae09853205992ba06ab9f9f61a">get_plink()</a>, <a class="el" href="classItem.html#ad5dcbe0b94cb2d5719bc5b6bd8ad60c8">Item\get_template_data()</a>, <a class="el" href="plugin_8php.html#a48047edfbef770125a5508dcc2f9282f">get_theme_screenshot()</a>, <a class="el" href="include_2config_8php.html#aa3dc1d3de2d091ac702e675acd3a085e">get_xconfig()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="mod_2group_8php.html#a07a64f6c65b0080d8190b3d9728a7a83">group_content()</a>, <a class="el" href="mod_2group_8php.html#aed1f009b1221348021bb34761160ef35">group_post()</a>, <a class="el" href="acl__selectors_8php.html#aa1e3bc344ca2b29f97eb9860216d21a0">group_select()</a>, <a class="el" href="photo__driver_8php.html#a243cee492ce443afb6a7d77d54b6c4aa">guess_image_type()</a>, <a class="el" href="item_8php.html#aa22feef4de326e1d7078dedd892e615c">handle_tag()</a>, <a class="el" href="boot_8php.html#a24a7a70afedd5d85fe0eadc85afa9f77">head_get_icon()</a>, <a class="el" href="plugin_8php.html#a9ab6caae31935f6cf781ce7872db7cdf">head_remove_css()</a>, <a class="el" href="plugin_8php.html#a4a0ae7b881e7c8af99a69e3b03f898b4">head_remove_js()</a>, <a class="el" href="boot_8php.html#a0e4701c9742c3ef88f02ac450a042a84">head_set_icon()</a>, <a class="el" href="help_8php.html#af055e15f600ffa6fbca9386fdf715224">help_content()</a>, <a class="el" href="home_8php.html#aa1cf697851a646755baf537f75334c46">home_content()</a>, <a class="el" href="home_8php.html#ac4642c38b6f23a8d065dd4a75c620bde">home_init()</a>, <a class="el" href="hostxrd_8php.html#aa37ffc8e7900bc76c4828bd25916db92">hostxrd_init()</a>, <a class="el" href="photo__driver_8php.html#a1d0bc7161dec0d177b7d3bbe4421af9a">import_channel_photo()</a>, <a class="el" href="import_8php.html#af17fef0410518f7eac205d0ea416eaa2">import_post()</a>, <a class="el" href="photo__driver_8php.html#a78f5a10c568d2a9bbbb129dc96548887">import_profile_photo()</a>, <a class="el" href="boot_8php.html#adfb2fc7be5a4226c0a8e24131da9d498">info()</a>, <a class="el" href="plugin_8php.html#aeaebe63dcf6fa2794f363ba2bc0b2c6b">insert_hook()</a>, <a class="el" href="invite_8php.html#a244385b28cfd021d308715f01158bfd9">invite_content()</a>, <a class="el" href="invite_8php.html#aeb0881c0f93c8e8552e5ed756ce6e5a5">invite_post()</a>, <a class="el" href="boot_8php.html#aa1e828bbbcba170265eb2668d8daf42e">is_site_admin()</a>, <a class="el" href="item_8php.html#a764bbb2e9a885a86fb23d0b5e4a09221">item_content()</a>, <a class="el" href="conversation_8php.html#aacbb12d372d5e9c3ab0735b4aea48fb3">item_photo_menu()</a>, <a class="el" href="item_8php.html#a693cd09805755ab85bbb5ecae69a48c3">item_post()</a>, <a class="el" href="items_8php.html#a756738301f2ed96be50232500677d58a">items_fetch()</a>, <a class="el" href="text_8php.html#a71f6952243d3fe1c5a8154f78027e29c">lang_selector()</a>, <a class="el" href="layouts_8php.html#a6e0193759ad9eef76d3df2db24237b50">layouts_content()</a>, <a class="el" href="like_8php.html#a9d7dd268f21c21e9d29dd2aca2dd9538">like_content()</a>, <a class="el" href="conversation_8php.html#afe5b2f38d8b803edb0d7ec5fa2868db0">like_puller()</a>, <a class="el" href="text_8php.html#a47c1e4a5f3f53027daacd8a9db24f285">link_compare()</a>, <a class="el" href="include_2config_8php.html#a27559f388c9b9af81c94e48d6889d1d1">load_config()</a>, <a class="el" href="boot_8php.html#a719c7f3972d5f9268f37a41c76cd4ef6">load_contact_links()</a>, <a class="el" href="setup_8php.html#ad2e0375a9ab87ebe6e78124ee125054a">load_database()</a>, <a class="el" href="plugin_8php.html#a326365e48ef94f0b9a0a771b8d75e813">load_hooks()</a>, <a class="el" href="include_2config_8php.html#ac543813a980b3841cc5a277fcd4a24a6">load_pconfig()</a>, <a class="el" href="language_8php.html#a7e9904c730bb24ddcb0ff50fc96f6b05">load_translation_table()</a>, <a class="el" href="include_2config_8php.html#a55bbed9a014c9109c767486834f3ca33">load_xconfig()</a>, <a class="el" href="text_8php.html#a030fa5ecc64168af0c4f44897a9bce63">logger()</a>, <a class="el" href="boot_8php.html#aefecf8599036df7f1b95d6820e0e2fa4">login()</a>, <a class="el" href="login_8php.html#a1d69ca88eb9005a7026e128b9a645904">login_content()</a>, <a class="el" href="classFKOAuth1.html#a2b1dac2ed31fc6ef84668afdda8b263f">FKOAuth1\loginUser()</a>, <a class="el" href="lostpass_8php.html#a0314d94e48c789b1b3a201d740c9eab3">lostpass_content()</a>, <a class="el" href="lostpass_8php.html#a8ed35ba71a4404eaf4903da61d0321cc">lostpass_post()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mail_8php.html#a3c7c485fc69f92371e8b20936040eca1">mail_content()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="setup_8php.html#abe405d227ba7232971964a706d4f3bce">manual_config()</a>, <a class="el" href="match_8php.html#a1dd853e959b9e70c1911bb2fb5f5130d">match_content()</a>, <a class="el" href="mod_2message_8php.html#ac72dfed3ce08fcb331d66b37edc6e15f">message_content()</a>, <a class="el" href="mitem_8php.html#a7a31b702ecad18eeb6a38b243ff0037e">mitem_content()</a>, <a class="el" href="mitem_8php.html#a9627cd857cafdf04e4fc0ae48c8e8518">mitem_init()</a>, <a class="el" href="mitem_8php.html#a6ee694cca4b551a20d7c7a94b5243ec1">mitem_post()</a>, <a class="el" href="mood_8php.html#a7ae136dd7476865b4828136175db5022">mood_init()</a>, <a class="el" href="msearch_8php.html#ac80d2a6c0a92e79eec7efbbccd74d9a8">msearch_post()</a>, <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="nav_8php.html#ac3c920ce3ea5b0d9e0678ee37155f06a">nav_set_selected()</a>, <a class="el" href="mod_2network_8php.html#a43f2f29b90c5e29072c561934bc8f8b4">network_content()</a>, <a class="el" href="mod_2network_8php.html#a180fce90ad11d7e0e45be094da7149ec">network_init()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="boot_8php.html#a9255af5ae9c887520091ea04763c1a88">notice()</a>, <a class="el" href="enotify_8php.html#a3e9a9355b243777c488d2a9883908dfc">notification()</a>, <a class="el" href="notifications_8php.html#aadd0b5525bd8c283a5d8a37982bbfe62">notifications_content()</a>, <a class="el" href="notifications_8php.html#a5baffec7b2e625c9f9cefbc097550d33">notifications_post()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="mod_2notify_8php.html#acdf3851688ebd6d6a575eb84ef9febe3">notify_content()</a>, <a class="el" href="mod_2notify_8php.html#a94f9a6a9d4b5fd704baafff0c34f41ae">notify_init()</a>, <a class="el" href="include_2oembed_8php.html#a98549b9af8140eda3eceaeedcaabc2c2">oembed_fetch_url()</a>, <a class="el" href="include_2oembed_8php.html#a26bb4c1e330d2f94ea7b6ce2fe970cf3">oembed_format_object()</a>, <a class="el" href="include_2oembed_8php.html#a9e57f3e36a0a0a47e6db79544b701d9a">oembed_iframe()</a>, <a class="el" href="oexchange_8php.html#a2d8b785cd7d041a4e6274f5af370cf26">oexchange_content()</a>, <a class="el" href="oexchange_8php.html#ac8e2e469ddc3db984b0c1b44558aca59">oexchange_init()</a>, <a class="el" href="onedirsync_8php.html#a411aedd47c57476099647961e6a86691">onedirsync_run()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, <a class="el" href="openid_8php.html#a9a13827dbcf61ae4e45f0b6b33a88f43">openid_content()</a>, <a class="el" href="opensearch_8php.html#ad13034877a496565ac7d99e9fc6f55e9">opensearch_init()</a>, <a class="el" href="page_8php.html#a91a5f649f68406149108bded1dc90b22">page_content()</a>, <a class="el" href="page_8php.html#a4d89800c0366a239191b1692c09635cf">page_init()</a>, <a class="el" href="text_8php.html#afe9f178d264d44a94dc1292aaf0fd585">paginate()</a>, <a class="el" href="photo_8php.html#a582779d24882b0d31ee909a91d70a448">photo_init()</a>, <a class="el" href="mod_2photos_8php.html#aa87382611a66ec5effdb2d78f13f5812">photos_content()</a>, <a class="el" href="mod_2photos_8php.html#ab950295cd77626f5fe65331a87693014">photos_init()</a>, <a class="el" href="mod_2photos_8php.html#a062bed4d04d14fee8a53f4c9be673080">photos_post()</a>, <a class="el" href="ping_8php.html#a77217b1b190b4c5d8770867b45f0c0a1">ping_init()</a>, <a class="el" href="poco_8php.html#a53def16f75e3d41f1d2bb7cfa4905498">poco_init()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="poke_8php.html#a9725aab97b3983e6a98bd81c4efe7d3b">poke_init()</a>, <a class="el" href="poller_8php.html#a5f12df3a4738124b6c039971e87e76da">poller_run()</a>, <a class="el" href="language_8php.html#a78bd204955ec4cc3a9ac651285a1689d">pop_lang()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="text_8php.html#ac19d2b33a58372a357a43d51eed19162">preg_heart()</a>, <a class="el" href="text_8php.html#ae4df74296fbe55051ed3c035e55205e5">prepare_body()</a>, <a class="el" href="probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</a>, <a class="el" href="boot_8php.html#ab346a2ece14993861f3e4206befa94f0">proc_run()</a>, <a class="el" href="activities_8php.html#a80134e807719b3c54aba971958d2e132">profile_activity()</a>, <a class="el" href="profile_8php.html#a3775cf6eef6587e5143133356a7b76c0">profile_content()</a>, <a class="el" href="identity_8php.html#ad4a2c8caca8f6ae93633ebeca0ed6620">profile_create_sidebar()</a>, <a class="el" href="profile_8php.html#ab5d0246be0552e2182a585c1206d22a5">profile_init()</a>, <a class="el" href="identity_8php.html#a4751b522ea913d0e7ed43e03d22e9e68">profile_load()</a>, <a class="el" href="profile__photo_8php.html#a140631c56438fbfacb61a1eb43067d02">profile_photo_init()</a>, <a class="el" href="profile__photo_8php.html#a4b80234074bd603221aa5364f330e479">profile_photo_post()</a>, <a class="el" href="identity_8php.html#a432259b2cf5b6f59be53e71db9f2c7dc">profile_sidebar()</a>, <a class="el" href="profiles_8php.html#a46975783b8b8d70402d51487eb1f0b00">profiles_content()</a>, <a class="el" href="profiles_8php.html#a36f71405ad536228f8bb84a551b23f7e">profiles_init()</a>, <a class="el" href="profiles_8php.html#ab0362c81b1d3b0b12a772b9fac446e04">profiles_post()</a>, <a class="el" href="profperm_8php.html#a17fb64ec05edee1dc94d95438807d6c6">profperm_init()</a>, <a class="el" href="language_8php.html#ac9142ef1d01a235c760deb0f16643f5a">push_lang()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="randprof_8php.html#abf5dba3c608b9304cbf68327cd31b090">randprof_init()</a>, <a class="el" href="view_2theme_2redbasic_2php_2config_8php.html#a8574a41fa9735ee391ba57ab24b93793">redbasic_form()</a>, <a class="el" href="register_8php.html#a0e91f57f111407ea8d3223a05022bb2a">register_content()</a>, <a class="el" href="regmod_8php.html#a7953df4e32e63946565e90cdd5d50409">regmod_content()</a>, <a class="el" href="datetime_8php.html#a8ae8dc95ace7ac27fa5a1ecf42b78c82">relative_date()</a>, <a class="el" href="removeme_8php.html#a065a589caa2aa84c60f7073a28f0ad9c">removeme_content()</a>, <a class="el" href="removeme_8php.html#a7be08738beca44bb98a79e01cdb2ee88">removeme_post()</a>, <a class="el" href="text_8php.html#a9c6ce4e12a4ac883c5e3f36fed6e1e09">replace_macros()</a>, <a class="el" href="rmagic_8php.html#a869de069d081b3c4e98b957d06bbf08f">rmagic_post()</a>, <a class="el" href="rpost_8php.html#a8190354d789000806d9879aea276728f">rpost_content()</a>, <a class="el" href="include_2network_8php.html#ae8d9c41a11000fb8667039fc71b4f73f">scale_external_images()</a>, <a class="el" href="text_8php.html#a876e94892867019935b348b573299352">search()</a>, <a class="el" href="search__ac_8php.html#a14f90c83a3f2be095e9e2992a8d66138">search_ac_init()</a>, <a class="el" href="search_8php.html#ab2568591359edde5b483a6cd9a24b2cc">search_content()</a>, <a class="el" href="search_8php.html#acf19fd30f07f495781ca0d7a0a08b435">search_init()</a>, <a class="el" href="text_8php.html#aae91e4d2a2c6f7a9daccd2c186ae3447">searchbox()</a>, <a class="el" href="include_2message_8php.html#a751ffd6635022b2190f56154ee745752">send_message()</a>, <a class="el" href="plugin_8php.html#a030cec6793b909c439c0336ba39b1571">service_class_allows()</a>, <a class="el" href="plugin_8php.html#a905b54e10704b283ac64680a8abc0971">service_class_fetch()</a>, <a class="el" href="include_2config_8php.html#ad6da879e4fb5b37d1e161d4e9be5c32a">set_config()</a>, <a class="el" href="classConversation.html#a66f121ca4026246f86a732e5faa0682c">Conversation\set_mode()</a>, <a class="el" href="include_2config_8php.html#a61591371cb18764138655d67dc817ab2">set_pconfig()</a>, <a class="el" href="include_2config_8php.html#afe117b70f1bba2f6348d9300b601f86e">set_xconfig()</a>, <a class="el" href="settings_8php.html#a3a4cde287482fced008583f54ba2a722">settings_init()</a>, <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>, <a class="el" href="setup_8php.html#a88247384a96e14516f474d7af6a465c1">setup_content()</a>, <a class="el" href="setup_8php.html#a13cf286774149a0a7bd8adb8179cec75">setup_post()</a>, <a class="el" href="share_8php.html#afeb26046bdd02567ecd29ab5f188b249">share_init()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="siteinfo_8php.html#a3efbd0bd6564af19ec0a9ce0294e59d0">siteinfo_init()</a>, <a class="el" href="text_8php.html#a3d225b253bb9e0f2498c11647d927b0b">smilies()</a>, <a class="el" href="sources_8php.html#ac73298ff162ce7b2de8dcaf3d3305b1e">sources_post()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, <a class="el" href="suggest_8php.html#a58748a8235d4523f8333847f3e42dd91">suggest_content()</a>, <a class="el" href="language_8php.html#aae0c3638fb476ae1e31f8d242f5dac04">t()</a>, <a class="el" href="items_8php.html#ab1bce4261bcf75ad62753b498a144d17">tag_deliver()</a>, <a class="el" href="tagger_8php.html#a0e4a3eb177d1684553c547503d67161c">tagger_content()</a>, <a class="el" href="tagrm_8php.html#adfd4ea5b4d7fc6d9c9e042af5cd7d49a">tagrm_content()</a>, <a class="el" href="tagrm_8php.html#a1702f40aa53a2fa93deade1f609abe78">tagrm_post()</a>, <a class="el" href="taxonomy_8php.html#aaeded36bcc983b35d9205fe5b6c18c43">tags_sort()</a>, <a class="el" href="Contact_8php.html#a38daa1c210b78385307123450ca9a1fc">terminate_friendship()</a>, <a class="el" href="items_8php.html#a88c6cf7649ac836fbbed82a7a0315110">tgroup_check()</a>, <a class="el" href="view_2theme_2blogga_2php_2config_8php.html#a09cd81013505f83aea0771243a1e4e53">theme_admin()</a>, <a class="el" href="view_2theme_2apw_2php_2config_8php.html#aa7d5739b72efef9822535b2b32d5364d">theme_content()</a>, <a class="el" href="plugin_8php.html#a65fedcffbe03562ef844cabee37d34e2">theme_include()</a>, <a class="el" href="thing_8php.html#a8be23b1d475ec3d9291999221c674c80">thing_init()</a>, <a class="el" href="datetime_8php.html#aa51b5a7ea4f931b23acbdfcea46e9865">timezone_cmp()</a>, <a class="el" href="toggle__mobile_8php.html#aca53ade8971802b45c31e722b22c6254">toggle_mobile_init()</a>, <a class="el" href="bbcode_8php.html#aa92f119341f4c69dcef2768a013079b8">tryzrlvideo()</a>, <a class="el" href="language_8php.html#ae310fb3880484ee1cc4faefe0c63c06d">tt()</a>, <a class="el" href="uexport_8php.html#a118920137dedebe0581623a2e57e7b0d">uexport_init()</a>, <a class="el" href="update__channel_8php.html#aca52a9da500f0db2f0a8666af5bc06ba">update_channel_content()</a>, <a class="el" href="update__community_8php.html#abdcc5c4ecebbe0b5fcba2755c69cb3b1">update_community_content()</a>, <a class="el" href="update__display_8php.html#aa36ac524059e209d5d75a03c16206246">update_display_content()</a>, <a class="el" href="update__network_8php.html#a8abf5b9f65af6a27ee2f9d7207ed1b41">update_network_content()</a>, <a class="el" href="update__search_8php.html#ace4c3a23fa7d6922399e27c297a6ba52">update_search_content()</a>, <a class="el" href="socgraph_8php.html#a790690bb1a1d02483fe31632a160144d">update_suggestions()</a>, <a class="el" href="account_8php.html#ac5c570a2d46446bad4dd2501e9c5a4b1">user_allow()</a>, <a class="el" href="Contact_8php.html#a6348a532c9d26cd1c9afbc9aa6aa8960">vcard_from_xchan()</a>, <a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content()</a>, <a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init()</a>, <a class="el" href="viewsrc_8php.html#a6eff3d0c1d7d14b335c4edb785cd60a4">viewsrc_content()</a>, <a class="el" href="vote_8php.html#a6aa67489bf458ca5e3206e46dac68596">vote_content()</a>, <a class="el" href="vote_8php.html#ae0c6610f40afbbc1f4fe6494c51fbab2">vote_init()</a>, <a class="el" href="vote_8php.html#a57a9516ee1b923b224e66dcc47377fb2">vote_post()</a>, <a class="el" href="wall__upload_8php.html#a7cbe204244cf9e0380ee932263a74d8f">wall_upload_post()</a>, <a class="el" href="webpages_8php.html#af3b7397d4abc153e3d2147740ee1a41d">webpages_content()</a>, <a class="el" href="wfinger_8php.html#ae21e50c8d0a5f3c9be9f43a4e519acd3">wfinger_init()</a>, <a class="el" href="setup_8php.html#aea1ebdda58ec938f4e7b31aa5c5f6b58">what_next()</a>, <a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widget_archive()</a>, <a class="el" href="widgets_8php.html#af37fdad3b2e861d860a4a8c4d8a76c0b">widget_categories()</a>, <a class="el" href="widgets_8php.html#a47c72aac42058ea086c9ef8651c259da">widget_chatroom_list()</a>, <a class="el" href="widgets_8php.html#a145ff35319cfa47a9cc07f9425bd674b">widget_design_tools()</a>, <a class="el" href="widgets_8php.html#a5ab3b64496e02cab56429978ad55f1c0">widget_filer()</a>, <a class="el" href="widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd">widget_follow()</a>, <a class="el" href="widgets_8php.html#a70442dfa079312d9d5e5ee01be51a165">widget_fullprofile()</a>, <a class="el" href="widgets_8php.html#afa2e55a78f95667a6da082efac7fec74">widget_mailmenu()</a>, <a class="el" href="widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e">widget_photo_albums()</a>, <a class="el" href="widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923">widget_profile()</a>, <a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widget_savedsearch()</a>, <a class="el" href="widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01">widget_settings_menu()</a>, <a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widget_tagcloud()</a>, <a class="el" href="widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653">widget_tagcloud_wall()</a>, <a class="el" href="xrd_8php.html#aee3cf087968e4a0ff3a87de16eb23270">xrd_init()</a>, <a class="el" href="include_2network_8php.html#aafd06c0a75402aefb06cfb9f9740fa37">z_fetch_url()</a>, <a class="el" href="boot_8php.html#aba208673515cbb8a55e5fa4a1da99fda">z_path()</a>, <a class="el" href="boot_8php.html#add517a0958ac684792c62142a3877f81">z_root()</a>, <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>, <a class="el" href="identity_8php.html#a680fbafc2db023c5b1309e0180e81315">zid_init()</a>, <a class="el" href="zotfeed_8php.html#a24dfc23d366e7f840cf2847d0c1c8eac">zotfeed_init()</a>, and <a class="el" href="zping_8php.html#a4d3a6b0b8b04ed6469015823e615ee75">zping_content()</a>.</p>
</div>
</div>
diff --git a/doc/html/typohelper_8php.html b/doc/html/typohelper_8php.html
index a84627eb5..c6abcb4eb 100644
--- a/doc/html/typohelper_8php.html
+++ b/doc/html/typohelper_8php.html
@@ -144,7 +144,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, and <a class="el" href="system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa">system_down()</a>.</p>
+<p>Referenced by <a class="el" href="nav_8php.html#a43be0df73b90647ea70947ce004e231e">nav()</a>, <a class="el" href="siteinfo_8php.html#a70c09bfb6dd1c86a125a35f62ed53656">siteinfo_content()</a>, <a class="el" href="subthread_8php.html#a50368f3d825b77996030528e7fbfa3d3">subthread_content()</a>, and <a class="el" href="system__unavailable_8php.html#a73751a6bcc17ad3ca503496e2fb020fa">system_down()</a>.</p>
</div>
</div>
diff --git a/doc/html/viewconnections_8php.html b/doc/html/viewconnections_8php.html
index 944b4efe2..ebdf48289 100644
--- a/doc/html/viewconnections_8php.html
+++ b/doc/html/viewconnections_8php.html
@@ -114,28 +114,10 @@ $(document).ready(function(){initNavTree('viewconnections_8php.html','');});
Functions</h2></td></tr>
<tr class="memitem:a00163d50b17568f7b0e48b1ca9ab7330"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330">viewconnections_init</a> (&amp;$a)</td></tr>
<tr class="separator:a00163d50b17568f7b0e48b1ca9ab7330"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae330cea4cddd091559659f8b469617b6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6">viewconnections_aside</a> (&amp;$a)</td></tr>
-<tr class="separator:ae330cea4cddd091559659f8b469617b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6c4d983e97b3a8a879567ff76507776"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776">viewconnections_content</a> (&amp;$a)</td></tr>
<tr class="separator:ab6c4d983e97b3a8a879567ff76507776"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
-<a class="anchor" id="ae330cea4cddd091559659f8b469617b6"></a>
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">viewconnections_aside </td>
- <td>(</td>
- <td class="paramtype">&amp;&#160;</td>
- <td class="paramname"><em>$a</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
-</div><div class="memdoc">
-
-</div>
-</div>
<a class="anchor" id="ab6c4d983e97b3a8a879567ff76507776"></a>
<div class="memitem">
<div class="memproto">
diff --git a/doc/html/viewconnections_8php.js b/doc/html/viewconnections_8php.js
index 5b9ec8153..f74e87152 100644
--- a/doc/html/viewconnections_8php.js
+++ b/doc/html/viewconnections_8php.js
@@ -1,6 +1,5 @@
var viewconnections_8php =
[
- [ "viewconnections_aside", "viewconnections_8php.html#ae330cea4cddd091559659f8b469617b6", null ],
[ "viewconnections_content", "viewconnections_8php.html#ab6c4d983e97b3a8a879567ff76507776", null ],
[ "viewconnections_init", "viewconnections_8php.html#a00163d50b17568f7b0e48b1ca9ab7330", null ]
]; \ No newline at end of file
diff --git a/doc/html/widgets_8php.html b/doc/html/widgets_8php.html
index d91f1a939..50582fe01 100644
--- a/doc/html/widgets_8php.html
+++ b/doc/html/widgets_8php.html
@@ -116,8 +116,327 @@ Functions</h2></td></tr>
<tr class="separator:abd2e508a2a0b911c4a838e3cb7599923"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6dbc227aac750774284ee39c45f0a200"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#a6dbc227aac750774284ee39c45f0a200">widget_tagcloud</a> ($args)</td></tr>
<tr class="separator:a6dbc227aac750774284ee39c45f0a200"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa189a07241246d97efbee29f1c6a6f7f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#aa189a07241246d97efbee29f1c6a6f7f">widget_collections</a> ($args)</td></tr>
+<tr class="separator:aa189a07241246d97efbee29f1c6a6f7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d404276fedc59f5038cf5c085028326"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#a0d404276fedc59f5038cf5c085028326">widget_suggestions</a> ($arr)</td></tr>
+<tr class="separator:a0d404276fedc59f5038cf5c085028326"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad1bf7aa69e8d100d95faba17c7bc91cd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd">widget_follow</a> ($args)</td></tr>
+<tr class="separator:ad1bf7aa69e8d100d95faba17c7bc91cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45ea061dabe9a8372e4ca3b9e5714256"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#a45ea061dabe9a8372e4ca3b9e5714256">widget_notes</a> ($arr)</td></tr>
+<tr class="separator:a45ea061dabe9a8372e4ca3b9e5714256"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a94203eb9bcd63cbdecbbcb15163598d8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8">widget_savedsearch</a> ($arr)</td></tr>
+<tr class="separator:a94203eb9bcd63cbdecbbcb15163598d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ab3b64496e02cab56429978ad55f1c0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#a5ab3b64496e02cab56429978ad55f1c0">widget_filer</a> ($arr)</td></tr>
+<tr class="separator:a5ab3b64496e02cab56429978ad55f1c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b1e357b5a2027718470b77ec921fc65"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65">widget_archive</a> ($arr)</td></tr>
+<tr class="separator:a7b1e357b5a2027718470b77ec921fc65"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a70442dfa079312d9d5e5ee01be51a165"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#a70442dfa079312d9d5e5ee01be51a165">widget_fullprofile</a> ($arr)</td></tr>
+<tr class="separator:a70442dfa079312d9d5e5ee01be51a165"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af37fdad3b2e861d860a4a8c4d8a76c0b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#af37fdad3b2e861d860a4a8c4d8a76c0b">widget_categories</a> ($arr)</td></tr>
+<tr class="separator:af37fdad3b2e861d860a4a8c4d8a76c0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4ced69d83dbdd9e6b51660d9eba8653"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653">widget_tagcloud_wall</a> ($arr)</td></tr>
+<tr class="separator:ae4ced69d83dbdd9e6b51660d9eba8653"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add9b24d3304e529a7975e96122315554"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#add9b24d3304e529a7975e96122315554">widget_affinity</a> ($arr)</td></tr>
+<tr class="separator:add9b24d3304e529a7975e96122315554"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaa73bcf1702eaadd9dcd253502f55e01"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01">widget_settings_menu</a> ($arr)</td></tr>
+<tr class="separator:aaa73bcf1702eaadd9dcd253502f55e01"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa2e55a78f95667a6da082efac7fec74"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#afa2e55a78f95667a6da082efac7fec74">widget_mailmenu</a> ($arr)</td></tr>
+<tr class="separator:afa2e55a78f95667a6da082efac7fec74"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a145ff35319cfa47a9cc07f9425bd674b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#a145ff35319cfa47a9cc07f9425bd674b">widget_design_tools</a> ($arr)</td></tr>
+<tr class="separator:a145ff35319cfa47a9cc07f9425bd674b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ade630b19fb4c622b7b2f6f8ef89eefa2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#ade630b19fb4c622b7b2f6f8ef89eefa2">widget_findpeople</a> ($arr)</td></tr>
+<tr class="separator:ade630b19fb4c622b7b2f6f8ef89eefa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a702e2fc0adc9b615999eca18b7311b5e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e">widget_photo_albums</a> ($arr)</td></tr>
+<tr class="separator:a702e2fc0adc9b615999eca18b7311b5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe03366fd22fd27d683518fa0765da50"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#abe03366fd22fd27d683518fa0765da50">widget_vcard</a> ($arr)</td></tr>
+<tr class="separator:abe03366fd22fd27d683518fa0765da50"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a268b01ce1ab8fe2cb346cb769b9d1091"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#a268b01ce1ab8fe2cb346cb769b9d1091">widget_dirsafemode</a> ($arr)</td></tr>
+<tr class="separator:a268b01ce1ab8fe2cb346cb769b9d1091"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a95c06bc9be133e89768746302d2ac395"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#a95c06bc9be133e89768746302d2ac395">widget_dirsort</a> ($arr)</td></tr>
+<tr class="separator:a95c06bc9be133e89768746302d2ac395"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a08035db02ff6a23260146b4c64153422"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#a08035db02ff6a23260146b4c64153422">widget_dirtags</a> ($arr)</td></tr>
+<tr class="separator:a08035db02ff6a23260146b4c64153422"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3bdfb81bf9a8ddf219924fa7eaf22013"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#a3bdfb81bf9a8ddf219924fa7eaf22013">widget_menu_preview</a> ($arr)</td></tr>
+<tr class="separator:a3bdfb81bf9a8ddf219924fa7eaf22013"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a47c72aac42058ea086c9ef8651c259da"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="widgets_8php.html#a47c72aac42058ea086c9ef8651c259da">widget_chatroom_list</a> ($arr)</td></tr>
+<tr class="separator:a47c72aac42058ea086c9ef8651c259da"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="add9b24d3304e529a7975e96122315554"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_affinity </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7b1e357b5a2027718470b77ec921fc65"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_archive </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af37fdad3b2e861d860a4a8c4d8a76c0b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_categories </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a47c72aac42058ea086c9ef8651c259da"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_chatroom_list </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Referenced by <a class="el" href="mod_2chat_8php.html#a8b0b8bee6fef6477e8c64c5e951b1b4f">chat_content()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa189a07241246d97efbee29f1c6a6f7f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_collections </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$args</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a145ff35319cfa47a9cc07f9425bd674b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_design_tools </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a268b01ce1ab8fe2cb346cb769b9d1091"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_dirsafemode </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>The following directory widgets are only useful on the directory page </p>
+
+</div>
+</div>
+<a class="anchor" id="a95c06bc9be133e89768746302d2ac395"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_dirsort </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a08035db02ff6a23260146b4c64153422"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_dirtags </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5ab3b64496e02cab56429978ad55f1c0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_filer </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ade630b19fb4c622b7b2f6f8ef89eefa2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_findpeople </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad1bf7aa69e8d100d95faba17c7bc91cd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_follow </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$args</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a70442dfa079312d9d5e5ee01be51a165"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_fullprofile </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afa2e55a78f95667a6da082efac7fec74"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_mailmenu </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3bdfb81bf9a8ddf219924fa7eaf22013"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_menu_preview </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a45ea061dabe9a8372e4ca3b9e5714256"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_notes </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a702e2fc0adc9b615999eca18b7311b5e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_photo_albums </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="abd2e508a2a0b911c4a838e3cb7599923"></a>
<div class="memitem">
<div class="memproto">
@@ -134,6 +453,54 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a94203eb9bcd63cbdecbbcb15163598d8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_savedsearch </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aaa73bcf1702eaadd9dcd253502f55e01"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_settings_menu </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0d404276fedc59f5038cf5c085028326"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_suggestions </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="a6dbc227aac750774284ee39c45f0a200"></a>
<div class="memitem">
<div class="memproto">
@@ -150,6 +517,38 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="ae4ced69d83dbdd9e6b51660d9eba8653"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_tagcloud_wall </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abe03366fd22fd27d683518fa0765da50"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">widget_vcard </td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$arr</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/widgets_8php.js b/doc/html/widgets_8php.js
index 0b1db1013..30270e8c7 100644
--- a/doc/html/widgets_8php.js
+++ b/doc/html/widgets_8php.js
@@ -1,5 +1,27 @@
var widgets_8php =
[
+ [ "widget_affinity", "widgets_8php.html#add9b24d3304e529a7975e96122315554", null ],
+ [ "widget_archive", "widgets_8php.html#a7b1e357b5a2027718470b77ec921fc65", null ],
+ [ "widget_categories", "widgets_8php.html#af37fdad3b2e861d860a4a8c4d8a76c0b", null ],
+ [ "widget_chatroom_list", "widgets_8php.html#a47c72aac42058ea086c9ef8651c259da", null ],
+ [ "widget_collections", "widgets_8php.html#aa189a07241246d97efbee29f1c6a6f7f", null ],
+ [ "widget_design_tools", "widgets_8php.html#a145ff35319cfa47a9cc07f9425bd674b", null ],
+ [ "widget_dirsafemode", "widgets_8php.html#a268b01ce1ab8fe2cb346cb769b9d1091", null ],
+ [ "widget_dirsort", "widgets_8php.html#a95c06bc9be133e89768746302d2ac395", null ],
+ [ "widget_dirtags", "widgets_8php.html#a08035db02ff6a23260146b4c64153422", null ],
+ [ "widget_filer", "widgets_8php.html#a5ab3b64496e02cab56429978ad55f1c0", null ],
+ [ "widget_findpeople", "widgets_8php.html#ade630b19fb4c622b7b2f6f8ef89eefa2", null ],
+ [ "widget_follow", "widgets_8php.html#ad1bf7aa69e8d100d95faba17c7bc91cd", null ],
+ [ "widget_fullprofile", "widgets_8php.html#a70442dfa079312d9d5e5ee01be51a165", null ],
+ [ "widget_mailmenu", "widgets_8php.html#afa2e55a78f95667a6da082efac7fec74", null ],
+ [ "widget_menu_preview", "widgets_8php.html#a3bdfb81bf9a8ddf219924fa7eaf22013", null ],
+ [ "widget_notes", "widgets_8php.html#a45ea061dabe9a8372e4ca3b9e5714256", null ],
+ [ "widget_photo_albums", "widgets_8php.html#a702e2fc0adc9b615999eca18b7311b5e", null ],
[ "widget_profile", "widgets_8php.html#abd2e508a2a0b911c4a838e3cb7599923", null ],
- [ "widget_tagcloud", "widgets_8php.html#a6dbc227aac750774284ee39c45f0a200", null ]
+ [ "widget_savedsearch", "widgets_8php.html#a94203eb9bcd63cbdecbbcb15163598d8", null ],
+ [ "widget_settings_menu", "widgets_8php.html#aaa73bcf1702eaadd9dcd253502f55e01", null ],
+ [ "widget_suggestions", "widgets_8php.html#a0d404276fedc59f5038cf5c085028326", null ],
+ [ "widget_tagcloud", "widgets_8php.html#a6dbc227aac750774284ee39c45f0a200", null ],
+ [ "widget_tagcloud_wall", "widgets_8php.html#ae4ced69d83dbdd9e6b51660d9eba8653", null ],
+ [ "widget_vcard", "widgets_8php.html#abe03366fd22fd27d683518fa0765da50", null ]
]; \ No newline at end of file
diff --git a/doc/html/xref_8php.html b/doc/html/xref_8php.html
new file mode 100644
index 000000000..2f08a643f
--- /dev/null
+++ b/doc/html/xref_8php.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.3.1"/>
+<title>The Red Matrix: mod/xref.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="rm-64.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">The Red Matrix
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('xref_8php.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">xref.php File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a9bee399213b8de8226b0d60834307473"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xref_8php.html#a9bee399213b8de8226b0d60834307473">xref_init</a> (&amp;$a)</td></tr>
+<tr class="separator:a9bee399213b8de8226b0d60834307473"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a9bee399213b8de8226b0d60834307473"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">xref_init </td>
+ <td>(</td>
+ <td class="paramtype">&amp;&#160;</td>
+ <td class="paramname"><em>$a</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+
diff --git a/doc/html/xref_8php.js b/doc/html/xref_8php.js
new file mode 100644
index 000000000..01291c5c5
--- /dev/null
+++ b/doc/html/xref_8php.js
@@ -0,0 +1,4 @@
+var xref_8php =
+[
+ [ "xref_init", "xref_8php.html#a9bee399213b8de8226b0d60834307473", null ]
+]; \ No newline at end of file
diff --git a/doc/html/zfinger_8php.html b/doc/html/zfinger_8php.html
index e41ca2a51..b35337c42 100644
--- a/doc/html/zfinger_8php.html
+++ b/doc/html/zfinger_8php.html
@@ -129,6 +129,8 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
+<p>The special address '[system]' will return a system channel if one has been defined, Or the first valid channel we find if there are no system channels.</p>
+<p>This is used by magic-auth if we have no prior communications with this site - and returns an identity on this site which we can use to create a valid hub record so that we can exchange signed messages. The precise identity is irrelevant. It's the hub information that we really need at the other end - and this will return it.</p>
<p>Referenced by <a class="el" href="__well__known_8php.html#a6ebfa937a2024f0b5dab53f0ac90fed0">_well_known_init()</a>.</p>
diff --git a/doc/html/zot_8php.html b/doc/html/zot_8php.html
index 014f6795b..129745ae5 100644
--- a/doc/html/zot_8php.html
+++ b/doc/html/zot_8php.html
@@ -122,8 +122,8 @@ Functions</h2></td></tr>
<tr class="separator:ab3e9b99ddb11353f37f265a05bb42142"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95528377d7303131958c9f0b7158fdce"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a95528377d7303131958c9f0b7158fdce">zot_finger</a> ($webbie, $channel, $autofallback=true)</td></tr>
<tr class="separator:a95528377d7303131958c9f0b7158fdce"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7b23bfb31d4491231e1e73bdc077240d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh</a> ($them, $channel=null)</td></tr>
-<tr class="separator:a7b23bfb31d4491231e1e73bdc077240d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ac30ff51274bf0b6d3eade37972145c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh</a> ($them, $channel=null, $force=false)</td></tr>
+<tr class="separator:a7ac30ff51274bf0b6d3eade37972145c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55056e863a7860bc0cf922e78fcce073"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a55056e863a7860bc0cf922e78fcce073">zot_gethub</a> ($arr)</td></tr>
<tr class="separator:a55056e863a7860bc0cf922e78fcce073"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bcdfef419b16075a0eca990956223dc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub</a> ($arr)</td></tr>
@@ -213,7 +213,7 @@ Functions</h2></td></tr>
</div><div class="memdoc">
<p>Send a zot packet to all hubs where this channel is duplicated, refreshing such things as personal settings, channel permissions, address book updates, etc. </p>
-<p>Referenced by <a class="el" href="connections_8php.html#a15af118efee9c948b6f8294e54a73bb2">connections_clone()</a>, and <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>.</p>
+<p>Referenced by <a class="el" href="connections_8php.html#a15af118efee9c948b6f8294e54a73bb2">connections_clone()</a>, <a class="el" href="connedit_8php.html#a707ea7e63cf9674025b1d6b081ae74f5">connedit_clone()</a>, and <a class="el" href="settings_8php.html#aa7ee94d88ac088edb04ccf3a26de3586">settings_post()</a>.</p>
</div>
</div>
@@ -357,7 +357,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">process_profile_delivery()</a>, and <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>.</p>
+<p>Referenced by <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">local_dir_update()</a>, and <a class="el" href="zot_8php.html#a9a57b40669351c9791126b925cb7ef3b">process_profile_delivery()</a>.</p>
</div>
</div>
@@ -412,17 +412,17 @@ Functions</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<p>import_xchan($arr,$ud_flags = 1) Takes an associative array of a fecthed discovery packet and updates all internal data structures which need to be updated as a result.</p>
+<p>import_xchan($arr,$ud_flags = 1) Takes an associative array of a fetched discovery packet and updates all internal data structures which need to be updated as a result.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramtype">array</td><td class="paramname">$arr</td><td>=&gt; json_decoded discovery packet </td></tr>
- <tr><td class="paramtype">int</td><td class="paramname">$ud_flags</td><td>Determines whether to create a directory update record if any changes occur, default 1 or true</td></tr>
+ <tr><td class="paramtype">int</td><td class="paramname">$ud_flags</td><td>Determines whether to create a directory update record if any changes occur, default 1 or true $ud_flags = (-1) indicates a forced refresh where we unconditionally create a directory update record this typically occurs once a month for each channel as part of a scheduled ping to notify the directory that the channel still exists</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>array =&gt; 'success' (boolean true or false) 'message' (optional error string only if success is false) </dd></dl>
-<p>Referenced by <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13">update_directory_entry()</a>, <a class="el" href="zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d">zot_refresh()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
+<p>Referenced by <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, <a class="el" href="dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13">update_directory_entry()</a>, <a class="el" href="zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c">zot_refresh()</a>, and <a class="el" href="zot_8php.html#a5bcdfef419b16075a0eca990956223dc">zot_register_hub()</a>.</p>
</div>
</div>
@@ -690,7 +690,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p>Referenced by <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, and <a class="el" href="dir__fns_8php.html#a6cae22cfdd6edda5ddf09e07abb3242a">syncdirs()</a>.</p>
+<p>Referenced by <a class="el" href="zot_8php.html#aeec89da5b6ff090c63a79de4de884a35">import_directory_profile()</a>, <a class="el" href="zot_8php.html#a56f3f65514e4e7f0cd117d01735aebd1">import_xchan()</a>, and <a class="el" href="dir__fns_8php.html#acd37b17dce3bdec6d5a6344a20598c1e">local_dir_update()</a>.</p>
</div>
</div>
@@ -739,16 +739,16 @@ Functions</h2></td></tr>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramtype">array</td><td class="paramname">$channel</td><td>=&gt; sender channel structure </td></tr>
- <tr><td class="paramtype">string</td><td class="paramname">$type</td><td>=&gt; packet type: one of 'ping', 'pickup', 'purge', 'refresh', 'notify', 'auth_check' </td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$type</td><td>=&gt; packet type: one of 'ping', 'pickup', 'purge', 'refresh', 'force_refresh', 'notify', 'auth_check' </td></tr>
<tr><td class="paramtype">array</td><td class="paramname">$recipients</td><td>=&gt; envelope information, array ( 'guid' =&gt; string, 'guid_sig' =&gt; string ); empty for public posts </td></tr>
<tr><td class="paramtype">string</td><td class="paramname">$remote_key</td><td>=&gt; optional public site key of target hub used to encrypt entire packet NOTE: remote_key and encrypted packets are required for 'auth_check' packets, optional for all others </td></tr>
- <tr><td class="paramtype">string</td><td class="paramname">$secret</td><td>=&gt; random string, required for packets which require verification/callback e.g. 'pickup', 'purge', 'notify', 'auth_check' &mdash; 'ping' and 'refresh' do not require verification</td></tr>
+ <tr><td class="paramtype">string</td><td class="paramname">$secret</td><td>=&gt; random string, required for packets which require verification/callback e.g. 'pickup', 'purge', 'notify', 'auth_check'. Packet types 'ping', 'force_refresh', and 'refresh' do not require verification</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>string json encoded zot packet </dd></dl>
-<p>Referenced by <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, and <a class="el" href="zping_8php.html#a4d3a6b0b8b04ed6469015823e615ee75">zping_content()</a>.</p>
+<p>Referenced by <a class="el" href="admin_8php.html#a60ba9783ad14545814919970bc3fb725">admin_page_hubloc_post()</a>, <a class="el" href="zot_8php.html#ac34e479d27f32b82dd6b33542f81a6a7">build_sync_packet()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, and <a class="el" href="zping_8php.html#a4d3a6b0b8b04ed6469015823e615ee75">zping_content()</a>.</p>
</div>
</div>
@@ -823,7 +823,7 @@ which will be processed and delivered before this function ultimately returns.
</dl>
<dl class="section return"><dt>Returns</dt><dd>: array =&gt; see z_post_url and <a class="el" href="zfinger_8php.html">mod/zfinger.php</a> </dd></dl>
-<p>Referenced by <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mod_2message_8php.html#a0db7030362a7e9ed9549b341d7b35718">message_post()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</a>, and <a class="el" href="dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13">update_directory_entry()</a>.</p>
+<p>Referenced by <a class="el" href="chanview_8php.html#a4192c6da888c8c1165851acf9ad4cb8b">chanview_content()</a>, <a class="el" href="gprobe_8php.html#adf72cb0a70b5b9d99fdec1cc60e18ed1">gprobe_run()</a>, <a class="el" href="magic_8php.html#acea2cc792849ca2d71d4b689f66518bf">magic_init()</a>, <a class="el" href="mail_8php.html#acfc2cc0bf4e0b178207758384977f25a">mail_post()</a>, <a class="el" href="include_2follow_8php.html#ae387d4ae097c23d69f3247e7f08140c7">new_contact()</a>, <a class="el" href="socgraph_8php.html#a5ef8bef37161df53718a21e93d02fbd6">poco_load()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="probe_8php.html#a1f1db3fa6038e451e737964c94bf5e99">probe_content()</a>, <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, and <a class="el" href="dir__fns_8php.html#a44062d4b471d1e83f92f6c184585aa13">update_directory_entry()</a>.</p>
</div>
</div>
@@ -849,7 +849,7 @@ which will be processed and delivered before this function ultimately returns.
</dl>
<p>Only search for active hublocs - e.g. those that haven't been marked deleted </p>
-<p>Referenced by <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
+<p>Referenced by <a class="el" href="zot_8php.html#ac301c67864917c35922257950ae0f95c">process_channel_sync_delivery()</a>, and <a class="el" href="zfinger_8php.html#a8139b83a22ef98869adc10aa224027a0">zfinger_init()</a>.</p>
</div>
</div>
@@ -992,7 +992,7 @@ which will be processed and delivered before this function ultimately returns.
</div>
</div>
-<a class="anchor" id="a7b23bfb31d4491231e1e73bdc077240d"></a>
+<a class="anchor" id="a7ac30ff51274bf0b6d3eade37972145c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
@@ -1006,7 +1006,13 @@ which will be processed and delivered before this function ultimately returns.
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
- <td class="paramname"><em>$channel</em> = <code>null</code>&#160;</td>
+ <td class="paramname"><em>$channel</em> = <code>null</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>$force</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
@@ -1015,7 +1021,7 @@ which will be processed and delivered before this function ultimately returns.
</tr>
</table>
</div><div class="memdoc">
-<p>: zot_refresh($them, $channel = null)</p>
+<p>: zot_refresh($them, $channel = null, $force = false)</p>
<p>zot_refresh is typically invoked when somebody has changed permissions of a channel and they are notified to fetch new permissions via a finger/discovery operation. This may result in a new connection (abook entry) being added to a local channel and it may result in auto-permissions being granted.</p>
<p>Friending in zot is accomplished by sending a refresh packet to a specific channel which indicates a permission change has been made by the sender which affects the target channel. The hub controlling the target channel does targetted discovery (a zot-finger request requesting permissions for the local channel). These are decoded here, and if necessary and abook structure (addressbook) is created to store the permissions assigned to this channel.</p>
<p>Initially these abook structures are created with a 'pending' flag, so that no reverse permissions are implied until this is approved by the owner channel. A channel can also auto-populate permissions in return and send back a refresh packet of its own. This is used by forum and group communication channels so that friending and membership in the channel's "club" is automatic.</p>
@@ -1028,7 +1034,7 @@ which will be processed and delivered before this function ultimately returns.
</dl>
<dl class="section return"><dt>Returns</dt><dd>boolean true if successful, else false </dd></dl>
-<p>Referenced by <a class="el" href="connections_8php.html#aec2e457420fce3e3bf6a9f48e36df25c">connections_content()</a>, <a class="el" href="zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d">import_author_zot()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, and <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>.</p>
+<p>Referenced by <a class="el" href="connedit_8php.html#a795acb3d9d841f55c255d7611681ab67">connedit_content()</a>, <a class="el" href="zot_8php.html#ad149f1e98c0c5b88ff9147e6ee3f330d">import_author_zot()</a>, <a class="el" href="onepoll_8php.html#a72753b2fdec79b37c7f432035c91fb6d">onepoll_run()</a>, and <a class="el" href="post_8php.html#af59e6a1dc22d19d9257b01cd7ccedb75">post_post()</a>.</p>
</div>
</div>
@@ -1092,7 +1098,7 @@ which will be processed and delivered before this function ultimately returns.
</dl>
<dl class="section return"><dt>Returns</dt><dd>: array =&gt; see z_post_url for returned data format </dd></dl>
-<p>Referenced by <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, and <a class="el" href="zping_8php.html#a4d3a6b0b8b04ed6469015823e615ee75">zping_content()</a>.</p>
+<p>Referenced by <a class="el" href="admin_8php.html#a60ba9783ad14545814919970bc3fb725">admin_page_hubloc_post()</a>, <a class="el" href="deliver_8php.html#a397afcb9afecf0c1816b0951189dd346">deliver_run()</a>, <a class="el" href="include_2directory_8php.html#aa75d3b0697ca1456aaabdb37a74aa0f0">directory_run()</a>, <a class="el" href="notifier_8php.html#a568c502f626cff95e344c0748938b85d">notifier_run()</a>, <a class="el" href="post_8php.html#af4b48181ce773ef0cdfc972441445c34">post_init()</a>, <a class="el" href="queue_8php.html#af8c93de86d866c3200174c8450a0f341">queue_run()</a>, <a class="el" href="zot_8php.html#a61cdc1ec843663c423ed2d8160ae5aea">zot_fetch()</a>, and <a class="el" href="zping_8php.html#a4d3a6b0b8b04ed6469015823e615ee75">zping_content()</a>.</p>
</div>
</div>
diff --git a/doc/html/zot_8php.js b/doc/html/zot_8php.js
index dd70498b0..00d9e0322 100644
--- a/doc/html/zot_8php.js
+++ b/doc/html/zot_8php.js
@@ -25,7 +25,7 @@ var zot_8php =
[ "zot_import", "zot_8php.html#aeea071f17e306fe3d0c488551906bfab", null ],
[ "zot_new_uid", "zot_8php.html#ab22d67660702056bf3f4696dcebf5ce7", null ],
[ "zot_process_response", "zot_8php.html#a928f5643ca66ae9635d85aeb2be62e03", null ],
- [ "zot_refresh", "zot_8php.html#a7b23bfb31d4491231e1e73bdc077240d", null ],
+ [ "zot_refresh", "zot_8php.html#a7ac30ff51274bf0b6d3eade37972145c", null ],
[ "zot_register_hub", "zot_8php.html#a5bcdfef419b16075a0eca990956223dc", null ],
[ "zot_zot", "zot_8php.html#ab3e9b99ddb11353f37f265a05bb42142", null ]
]; \ No newline at end of file
diff --git a/doc/install.bb b/doc/install.bb
new file mode 100644
index 000000000..ef9ed2ca6
--- /dev/null
+++ b/doc/install.bb
@@ -0,0 +1,103 @@
+[b]Red Installation[/b]
+
+Red should run on commodity hosting platforms - such as those used to host Wordpress blogs and Drupal websites. But be aware that Red is more than a simple web application. The kind of functionality offered by Red requires a bit more of the host system than the typical blog. Not every PHP/MySQL hosting provider will be able to support Red. Many will. But **please** review the requirements and confirm these with your hosting provider prior to installation.
+
+Also if you encounter installation issues, please let us know via the Github issue tracker (#^[url=https://github.com/friendica/red/issues]https://github.com/friendica/red/issues[/url]). Please be as clear as you can about your operating environment and provide as much detail as possible about any error messages you may see, so that we can prevent it from happening in the future. Due to the large variety of operating systems and PHP platforms in existence we may have only limited ability to debug your PHP installation or acquire any missing modules - but we will do our best to solve any general code issues.
+
+Before you begin: Choose a domain name or subdomain name for your server.
+
+1. Requirements
+ - Apache with mod-rewrite enabled and &quot;AllowOverride All&quot; so you can use a
+local .htaccess file
+
+ - PHP 5.3 or later
+ - PHP *command line* access with register_argc_argv set to true in the
+php.ini file
+ - curl, gd, mysql, and openssl extensions
+ - some form of email server or email gateway such that PHP mail() works
+ - mcrypt (optional; used for server-to-server message encryption)
+
+ - Mysql 5.x
+
+ - ability to schedule jobs with cron (Linux/Mac) or Scheduled Tasks
+(Windows) [Note: other options are presented in Section 7 of this document]
+
+ - Installation into a top-level domain or sub-domain (without a
+directory/path component in the URL) is preferred. Directory paths will
+not be as convenient to use and have not been thoroughly tested.
+
+
+ [Dreamhost.com offers all of the necessary hosting features at a
+reasonable price. If your hosting provider doesn't allow Unix shell access,
+you might have trouble getting everything to work.]
+
+2. Unpack the Red files into the root of your web server document area.
+
+ - If you are able to do so, we recommend using git to clone the source repository rather than to use a packaged tar or zip file. This makes the software much easier to update. The Linux command to clone the repository into a directory &quot;mywebsite&quot; would be
+
+ `git clone #^[url=https://github.com/friendica/red.git]https://github.com/friendica/red.git[/url] mywebsite`
+
+ - and then you can pick up the latest changes at any time with
+
+ `git pull`
+
+ - make sure folder *view/tpl/smarty3* exists and is writable by webserver
+
+ `mkdir view/tpl/smarty3`
+
+ `chmod 777 view/smarty3`
+
+ - For installing addons
+
+ - First you should be **on** your website folder
+
+ `cd mywebsite`
+
+ - Then you should clone the addon repository (separtely)
+
+ `git clone #^[url=https://github.com/friendica/red-addons.git]https://github.com/friendica/red-addons.git[/url] addon`
+
+ - For keeping the addon tree updated, you should be on you addon tree and issue a git pull
+
+ `cd mywebsite/addon`
+
+ `git pull`
+
+ - If you copy the directory tree to your webserver, make sure
+ that you also copy .htaccess - as &quot;dot&quot; files are often hidden
+ and aren't normally copied.
+
+
+3. Create an empty database and note the access details (hostname, username, password, database name).
+
+4. Visit your website with a web browser and follow the instructions. Please note any error messages and correct these before continuing.
+
+5. *If* the automated installation fails for any reason, check the following:
+
+ - &quot;.htconfig.php&quot; exists ... If not, edit htconfig.php and change system settings. Rename
+to .htconfig.php
+ - Database is populated. ... If not, import the contents of &quot;database.sql&quot; with phpmyadmin
+or mysql command line
+
+6. At this point visit your website again, and register your personal account.
+Registration errors should all be recoverable automatically.
+If you get any *critical* failure at this point, it generally indicates the
+database was not installed correctly. You might wish to move/rename
+.htconfig.php to another name and empty (called 'dropping') the database
+tables, so that you can start fresh.
+
+7. Set up a cron job or scheduled task to run the poller once every 15
+minutes in order to perform background processing. Example:
+
+ `cd /base/directory; /path/to/php include/poller.php`
+
+Change &quot;/base/directory&quot;, and &quot;/path/to/php&quot; as appropriate for your situation.
+
+If you are using a Linux server, run &quot;crontab -e&quot; and add a line like the
+one shown, substituting for your unique paths and settings:
+
+`*/15 * * * * cd /home/myname/mywebsite; /usr/bin/php include/poller.php`
+
+You can generally find the location of PHP by executing &quot;which php&quot;. If you
+have troubles with this section please contact your hosting provider for
+assistance. Red will not work correctly if you cannot perform this step. \ No newline at end of file
diff --git a/doc/install/sample-lighttpd.conf b/doc/install/sample-lighttpd.conf
index 213719ac9..721fa25ea 100644
--- a/doc/install/sample-lighttpd.conf
+++ b/doc/install/sample-lighttpd.conf
@@ -74,7 +74,7 @@ $HTTP["url"] =~ "\.(out|log|htaccess)$" {
url.access-deny = ("")
}
-$HTTP["url"] =~ "(^|/)\.git" {
+$HTTP["url"] =~ "(^|/)\.git|(^|/)store" {
url.access-deny = ("")
}
diff --git a/doc/install/sample-nginx.conf b/doc/install/sample-nginx.conf
index 396e39fb8..cd12d8dea 100644
--- a/doc/install/sample-nginx.conf
+++ b/doc/install/sample-nginx.conf
@@ -124,4 +124,12 @@ server {
location ~ /\. {
deny all;
}
+
+#deny access to store
+
+ location ~ /store {
+ deny all;
+ }
+
+
}
diff --git a/doc/intro_for_developers.bb b/doc/intro_for_developers.bb
new file mode 100644
index 000000000..002088be3
--- /dev/null
+++ b/doc/intro_for_developers.bb
@@ -0,0 +1,99 @@
+[b]Red Developer Guide[/b]
+
+[b]File system layout:[/b]
+
+[addon] optional addons/plugins
+
+[boot.php] Every process uses this to bootstrap the application structure
+
+[doc] Help Files
+
+[images] core required images
+
+[include] The &quot;model&quot; in MVC - (back-end functions), also contains PHP &quot;executables&quot; for background processing
+
+[index.php] The front-end controller for web access
+
+[install] Installation and upgrade files and DB schema
+
+[js] core required javascript
+
+[library] Third party modules (must be license compatible)
+
+[mod] Controller modules based on URL pathname (e.g. #^[url=http://sitename/foo]http://sitename/foo[/url] loads mod/foo.php)
+
+[spec] protocol specifications
+
+[util] translation tools, main English string database and other miscellaneous utilities
+
+[version.inc] contains current version (auto-updated via cron for the master repository and distributed via git)
+
+[view] theming and language files
+
+[view/(css,js,img,php,tpl)] default theme files
+
+[view/(en,it,es ...)] language strings and resources
+
+[view/theme/] individual named themes containing (css,js,img,php,tpl) over-rides
+
+[b]The Database:[/b]
+
+ [li]abook - contact table, replaces Friendica 'contact'[/li]
+ [li]account - service provider account[/li]
+ [li]addon - registered plugins[/li]
+ [li]attach - file attachments[/li]
+ [li]auth_codes - OAuth usage[/li]
+ [li]cache - TBD[/li]
+ [li]challenge - old DFRN structure, may re-use or may deprecate[/li]
+ [li]channel - replaces Friendica 'user'[/li]
+ [li]clients - OAuth usage[/li]
+ [li]config - main configuration storage[/li]
+ [li]event - Events[/li]
+ [li]fcontact - friend suggestion stuff[/li]
+ [li]ffinder - friend suggestion stuff[/li]
+ [li]fserver - obsolete[/li]
+ [li]fsuggest - friend suggestion stuff[/li]
+ [li]gcign - ignored friend suggestions[/li]
+ [li]gcontact - social graph storage, obsolete[/li]
+ [li]glink - social graph storage - obsolete[/li]
+ [li]group - privacy groups[/li]
+ [li]group_member - privacy groups[/li]
+ [li]hook - plugin hook registry[/li]
+ [li]hubloc - Red location storage, ties a location to an xchan[/li]
+ [li]intro - DFRN introductions, may be obsolete[/li]
+ [li]item - posts[/li]
+ [li]item_id - other identifiers on other services for posts[/li]
+ [li]mail - private messages[/li]
+ [li]manage - may be unused in Red, table of accounts that can &quot;su&quot; each other[/li]
+ [li]notify - notifications[/li]
+ [li]notify-threads - need to factor this out and use item thread info on notifications[/li]
+ [li]outq - Red output queue[/li]
+ [li]pconfig - personal (per channel) configuration storage[/li]
+ [li]photo - photo storage[/li]
+ [li]profile - channel profiles[/li]
+ [li]profile_check - DFRN remote auth use, may be obsolete[/li]
+ [li]queue - old Friendica queue, obsolete[/li]
+ [li]register - registrations requiring admin approval[/li]
+ [li]session - web session storage[/li]
+ [li]site - site table to find directory peers[/li]
+ [li]spam - unfinished[/li]
+ [li]term - item taxonomy (categories, tags, etc.) table[/li]
+ [li]tokens - OAuth usage[/li]
+ [li]verify - general purpose verification structure[/li]
+ [li]xchan - replaces 'gcontact', list of known channels in the universe[/li]
+ [li]xlink - &quot;friends of friends&quot; linkages derived from poco[/li]
+ [li]xprof - if this hub is a directory server, contains basic public profile info of everybody in the network[/li]
+ [li]xtag - if this hub is a directory server, contains tags or interests of everybody in the network[/li]
+
+
+[b]How to theme Red - by Olivier Migeot[/b]
+
+This is a short documentation on what I found while trying to modify Red's appearance.
+
+First, you'll need to create a new theme. This is in /view/theme, and I chose to copy 'redbasic' since it's the only available for now. Let's assume I named it .
+
+Oh, and don't forget to rename the _init function in /php/theme.php to be _init() instead of redbasic_init().
+
+At that point, if you need to add javascript or css files, add them to /js or /css, and then &quot;register&quot; them in _init() through head_add_js('file.js') and head_add_css('file.css').
+
+Now you'll probably want to alter a template. These can be found in in /view/tpl OR view//tpl. All you should have to do is copy whatever you want to tweak from the first place to your theme's own tpl directory. \ No newline at end of file
diff --git a/doc/main.bb b/doc/main.bb
new file mode 100644
index 000000000..0e8ea15fd
--- /dev/null
+++ b/doc/main.bb
@@ -0,0 +1,59 @@
+[b]Red Matrix Documentation and Resources[/b]
+
+Contents
+
+[zrl=[baseurl]/help/about]What is the Red Matrix?[/zrl]
+[zrl=[baseurl]/help/features]Red Matrix Features[/zrl]
+[zrl=[baseurl]/help/what_is_zot] What is Zot?[/zrl]
+
+[b]Using the Red Matrix[/b]
+
+[zrl=[baseurl]/help/account_basics]Account Basics[/zrl]
+[zrl=[baseurl]/help/profiles]Profiles[/zrl]
+[zrl=[baseurl]/help/channels]Channels[/zrl]
+[zrl=[baseurl]/help/connecting_to_channels]Connecting to Channels[/zrl]
+[zrl=[baseurl]/help/permissions]Permissions[/zrl]
+[zrl=[baseurl]/help/cloud]Cloud Storage[/zrl]
+
+[b]But Wait - There's More. MUCH More...[/b]
+
+[zrl=[baseurl]/help/tags_and_mentions]Tags and Mentions[/zrl]
+[zrl=[baseurl]/help/webpages]Web Pages[/zrl]
+[zrl=[baseurl]/help/remove_account]Remove Account[/zrl]
+[zrl=[baseurl]/help/extra_features]BBcode reference for posts and comments[/zrl]
+[zrl=[baseurl]/help/checking_account_quota_usage]Checking Account Quota Usage[/zrl]
+[zrl=[baseurl]/help/cloud_desktop_clients]Cloud Desktop Clients[/zrl]
+
+[b]For Hub Administrators[/b]
+
+[zrl=[baseurl]/help/debian_install]Easy Install on Debian via script[/zrl]
+[zrl=[baseurl]/help/red2pi]Installing Red on the Raspberry Pi[/zrl]
+[zrl=[baseurl]/help/problems-following-an-update]Problems Following A Software Update[/zrl]
+[zrl=[baseurl]/help/troubleshooting]Troubleshooting Tips[/zrl]
+
+
+[b]Technical Documentation[/b]
+
+[zrl=[baseurl]/help/install]Install[/zrl]
+[zrl=[baseurl]/help/comanche]Comanche Page Descriptions[/zrl]
+[zrl=[baseurl]/help/plugins]Plugins[/zrl]
+[zrl=[baseurl]/help/schema_development]Schemas[/zrl]
+[zrl=[baseurl]/help/developers]Developers[/zrl]
+[zrl=[baseurl]/help/intro_for_developers]Intro for Developers[/zrl]
+[zrl=[baseurl]/help/api_functions]API functions[/zrl]
+[zrl=[baseurl]/help/developer_function_primer]Red Functions 101[/zrl]
+[zrl=[baseurl]/doc/html/]Code Reference (doxygen generated - sets cookies)[/zrl]
+[zrl=[baseurl]/help/to_do_doco]To-Do list for the Red Documentation Project[/zrl]
+[zrl=[baseurl]/help/to_do_code]To-Do list for Developers[/zrl]
+[zrl=[baseurl]/help/git_for_non_developers]Git for Non-Developers[/zrl]
+
+[b]External Resources[/b]
+
+[zrl=[baseurl]/help/external-resource-links]External Resource Links[/zrl]
+[url=https://github.com/friendica/red]Main Website[/url]
+[url=https://github.com/friendica/red-addons]Addon Website[/url]
+[url=https://zothub.com/channel/one]Development Channel[/url]
+
+[b]About[/b]
+
+[zrl=[baseurl]/siteinfo]Site/Version Info[/zrl]
diff --git a/doc/permissions.bb b/doc/permissions.bb
new file mode 100644
index 000000000..69ee62139
--- /dev/null
+++ b/doc/permissions.bb
@@ -0,0 +1,97 @@
+[b]Permissions[/b]
+
+Permissions in the Red Matrix are more complete than you may be used to. This allows us to define more fine graded relationships than the black and white &quot;this person is my friend, so they can do everything&quot; or &quot;this person is not my friend, so they can't do anything&quot; permissions you may find elsewhere.
+
+[b]Default Permissions[/b]
+
+On your settings page, you will find a list of default permissions. These permissions are automatically applied to everybody unless you specify otherwise. The scope of these permissions varies from &quot;Only me&quot; to &quot;Everybody&quot; - though some scopes may not be available for some permissions. For example, you can't allow &quot;anybody on the internet&quot; to send you private messages, because we'd have no way to identify the sender, therefore no way to reply to them.
+
+The scopes of permissions are:
+
+[li]Nobody Except Yourself. This is self explanatory. Only you will be allowed to use this permission.[/li]
+
+[li]Only those you specifically allow. By default, people you are not connected to, and all new contacts will have this permission denied. You will be able to make exceptions for individual channels on their contact edit screen.[/li]
+
+[li]Anybody in your address book. Anybody you do not know will have this permission denied, but anybody you accept as a contact will have this permission approved. This is the way most legacy platforms handle permissions.[/li]
+
+[li]Anybody On This Website. Anybody using the same website as you will have permission approved. Anybody who registered at a different site will have this permission denied.[/li]
+
+[li]Anybody in this network. Anybody in the Red Matrix will have this permission approved. Even complete strangers. However, anybody not logged in/authenticated will have this permission denied.
+Anybody on the internet. Completely public. This permission will be approved for anybody at all.[/li]
+
+The individual permissions are:
+
+[i]Can view my &quot;public&quot; stream and posts.[/i]
+
+This permision determines who can view your channel &quot;stream&quot; that is, the non-private posts that appear on the &quot;home&quot; tab when you're logged in.
+
+[i]Can view my &quot;public&quot; channel profile.[/i]
+
+This permission determines who can view your channel's profile. This refers to the &quot;about&quot; tab
+
+[i]Can view my &quot;public&quot; photo albums.[/i]
+
+ This permission determines who can view your photo albums. Individual photographs may still be posted to a more private audience.
+
+[i]Can view my &quot;public&quot; address book.[/i]
+
+This permission determines who can view your contacts. These are the connections displayed in the &quot;View connections&quot; section.
+
+[i]Can view my &quot;public&quot; file storage.[/i]
+
+This permission determines who can view your public files. This isn't done yet, so this is placeholder text.
+
+[i]Can view my &quot;public&quot; pages.[/i]
+
+This permission determines who can view your public web pages. This isn't done yet, so this is placeholder text.
+
+[i]Can send me their channel stream and posts.[/i]
+
+This permission determines whose posts you will view. If your channel is a personal channel (ie, you as a person), you would probably want to set this to &quot;anyone in my address book&quot; at a minimum. A personal notes channel would probably want to choose &quot;nobody except myself&quot;. Setting this to &quot;Anybody in the network&quot; will show you posts from complete strangers, which is a good form of discovery.
+
+[i]Can post on my channel page (&quot;wall&quot;).[/i]
+
+This permission determines who can write to your wall when clicking through to your channel.
+
+[i]Can comment on my posts.[/i]
+
+This permission determines who can comment on posts you create. Normally, you would want this to match your &quot;can view my public pages&quot; permission
+
+[i]Can send me private mail messages.[/i]
+
+This determines who can send you private messages (zotmail).
+
+[i]Can post photos to my photo albums.[/i]
+
+This determines who can post photographs in your albums. This is very useful for forum-like channels where connections may not be connected to each other.
+
+[i]Can forward to all my channel contacts via post tags.[/i]
+
+Using @- mentions will reproduce a copy of your post on the profile specified, as though you posted on the channel wall. This determines if people can post to your channel in this way.
+
+[i]Can chat with me (when available).[/i]
+
+This determines who can join the public chat rooms created by your channel.
+
+[i]Can write to my &quot;public&quot; file storage.[/i]
+
+This determines who can upload files to your public file storage. This isn't done yet, so this is placeholder text.
+
+[i]Can edit my &quot;public&quot; pages.[/i]
+
+This determines who can edit your webpages. This is useful for wikis or sites with multiple editors.
+
+[i]Can administer my channel resources.[/i]
+
+This determines who can have full control of your channel. This should normally be set to &quot;nobody except myself&quot;.
+
+[i]Note:[/i]
+Plugins/addons may provide special permission settings, so you may be offered additional permission settings beyond what is described here.
+
+If you have set any of these permissions to &quot;only those I specifically allow&quot;, you may specify indivudal permissions on the connnection edit screen.
+
+[b]Affinity[/b]
+
+The connection edit screen offers a slider to select a degree of friendship with the connnection (this tool is enabled through the &quot;Extra Features&quot; tab of your Settings page). Think of this as a measure of how much you like or dislike them. 1 is for people you like, whose posts you want to see all the time. 99 is for people you don't care for, and whose posts you might only wish to look at occasionally. Once you've assigned a value here, you can use the affinity tool on the matrix page to filter content based on this number.
+
+The slider on the matrix page has both a minimum and maximum value. Posts will only be shown from people who fall between this range. Affinity has no relation to permissions, and is only useful in conjunction with the affinity tool feature. \ No newline at end of file
diff --git a/doc/plugins.bb b/doc/plugins.bb
new file mode 100644
index 000000000..2440de762
--- /dev/null
+++ b/doc/plugins.bb
@@ -0,0 +1,257 @@
+[b]Plugins[/b]
+
+So you want to make the Red Matrix do something it doesn't already do. There are lots of ways. But let's learn how to write a plugin or addon.
+
+
+In your Red Matrix folder/directory, you will probably see a sub-directory called 'addon'. If you don't have one already, go ahead and create it.
+[code]
+ mkdir addon
+[/code]
+Then figure out a name for your addon. You probably have at least a vague idea of what you want it to do. For our example I'm going to create a plugin called 'randplace' that provides a somewhat random location for each of your posts. The name of your plugin is used to find the functions we need to access and is part of the function names, so to be safe, use only simple text characters.
+
+Once you've chosen a name, create a directory beneath 'addon' to hold your working file or files.
+[code]
+ mkdir addon/randplace
+[/code]
+Now create your plugin file. It needs to have the same name, and it's a PHP script, so using your favourite editor, create the file
+[code]
+ addon/randplace/randplace.php
+[/code]
+The very first line of this file needs to be
+[code]
+ &lt;?php
+[/code]
+Then we're going to create a comment block to describe the plugin. There's a special format for this. We use /* ... */ comment-style and some tagged lines consisting of
+[code]
+ /**
+ *
+ * Name: Random Place (here you can use better descriptions than you could in the filename)
+ * Description: Sample Red Matrix plugin, Sets a random place when posting.
+ * Version: 1.0
+ * Author: Mike Macgirvin &lt;mike@zothub.com&gt;
+ *
+ */
+[/code]
+These tags will be seen by the site administrator when he/she installs or manages plugins from the admin panel. There can be more than one author. Just add another line starting with 'Author:'.
+
+The typical plugin will have at least the following functions:
+[code]
+ pluginname_load()
+ pluginname_unload()
+[/code]
+In our case, we'll call them randplace_load() and randplace_unload(), as that is the name of our plugin. These functions are called whenever we wish to either initialise the plugin or remove it from the current webpage. Also if your plugin requires things like altering the database schema before it can run for the very first time, you would likely place these instructions in the functions named
+[code]
+ pluginname_install()
+ pluginname_uninstall()
+[/code]
+
+Next we'll talk about **hooks**. Hooks are places in the Red Matrix code where we allow plugins to do stuff. There are a [lot of these](help/Hooks), and they each have a name. What we normally do is use the pluginname_load() function to register a &quot;handler function&quot; for any hooks you are interested in. Then when any of these hooks are triggered, your code will be called.
+
+We register hook handlers with the 'register_hook()' function. It takes 3 arguments. The first is the hook we wish to catch, the second is the filename of the file to find our handler function (relative to the base of your Red Matrix installation), and the third is the function name of your handler function. So let's create our randplace_load() function right now.
+
+[code]
+ function randplace_load() {
+ register_hook('post_local', 'addon/randplace/randplace.php', 'randplace_post_hook');
+
+ register_hook('feature_settings', 'addon/randplace/randplace.php', 'randplace_settings');
+ register_hook('feature_settings_post', 'addon/randplace/randplace.php', 'randplace_settings_post');
+
+ }
+[/code]
+
+So we're going to catch three events, 'post_local' which is triggered when a post is made on the local system, 'feature_settings' to set some preferences for our plugin, and 'feature_settings_post' to store those settings.
+
+Next we'll create an unload function. This is easy, as it just unregisters our hooks. It takes exactly the same arguments.
+[code]
+ function randplace_unload() {
+ unregister_hook('post_local', 'addon/randplace/randplace.php', 'randplace_post_hook');
+
+ unregister_hook('feature_settings', 'addon/randplace/randplace.php', 'randplace_settings');
+ unregister_hook('feature_settings_post', 'addon/randplace/randplace.php', 'randplace_settings_post');
+
+ }
+[/code]
+
+Hooks are called with two arguments. The first is always $a, which is our global App structure and contains a huge amount of information about the state of the web request we are processing; as well as who the viewer is, and what our login state is, and the current contents of the web page we're probably constructing.
+
+The second argument is specific to the hook you're calling. It contains information relevant to that particular place in the program, and often allows you to look at, and even change it. In order to change it, you need to add '&amp;' to the variable name so it is passed to your function by reference. Otherwise it will create a copy and any changes you make will be lost when the hook process returns. Usually (but not always) the second argument is a named array of data structures. Please see the &quot;hook reference&quot; (not yet written as of this date) for details on any specific hook. Occasionally you may need to view the program source to see precisely how a given hook is called and how the results are processed.
+
+Let's go ahead and add some code to implement our post_local hook handler.
+[code]
+ function randplace_post_hook($a, &amp;$item) {
+
+ /**
+ *
+ * An item was posted on the local system.
+ * We are going to look for specific items:
+ * - A status post by a profile owner
+ * - The profile owner must have allowed our plugin
+ *
+ */
+
+ logger('randplace invoked');
+
+ if(! local_user()) /* non-zero if this is a logged in user of this system */
+ return;
+
+ if(local_user() != $item['uid']) /* Does this person own the post? */
+ return;
+
+ if(($item['parent']) || ($item['item_restrict'])) {
+ /* If the item has a parent, or item_restrict is non-zero, this is a comment or something else, not a status post. */
+ return;
+ }
+
+ /* Retrieve our personal config setting */
+
+ $active = get_pconfig(local_user(), 'randplace', 'enable');
+
+ if(! $active)
+ return;
+ /**
+ *
+ * OK, we're allowed to do our stuff.
+ * Here's what we are going to do:
+ * load the list of timezone names, and use that to generate a list of world cities.
+ * Then we'll pick one of those at random and put it in the &quot;location&quot; field for the post.
+ *
+ */
+
+ $cities = array();
+ $zones = timezone_identifiers_list();
+ foreach($zones as $zone) {
+ if((strpos($zone,'/')) &amp;&amp; (! stristr($zone,'US/')) &amp;&amp; (! stristr($zone,'Etc/')))
+ $cities[] = str_replace('_', ' ',substr($zone,strpos($zone,'/') + 1));
+ }
+
+ if(! count($cities))
+ return;
+ $city = array_rand($cities,1);
+ $item['location'] = $cities[$city];
+
+ return;
+ }
+[/code]
+
+Now let's add our functions to create and store preference settings.
+[code]
+ /**
+ *
+ * Callback from the settings post function.
+ * $post contains the global $_POST array.
+ * We will make sure we've got a valid user account
+ * and that only our own submit button was clicked
+ * and if so set our configuration setting for this person.
+ *
+ */
+
+ function randplace_settings_post($a,$post) {
+ if(! local_user())
+ return;
+ if($_POST['randplace-submit'])
+ set_pconfig(local_user(),'randplace','enable',intval($_POST['randplace']));
+ }
+
+
+
+ /**
+ *
+ * Called from the Feature Setting form.
+ * The second argument is a string in this case, the HTML content region of the page.
+ * Add our own settings info to the string.
+ *
+ * For uniformity of settings pages, we use the following convention
+ * &lt;div class=&quot;settings-block&quot;&gt;
+ * &lt;h3&gt;title&lt;/h3&gt;
+ * .... settings html - many elements will be floated...
+ * &lt;div class=&quot;clear&quot;&gt;&lt;/div&gt; &lt;!-- generic class which clears all floats --&gt;
+ * &lt;input type=&quot;submit&quot; name=&quot;pluginnname-submit&quot; class=&quot;settings-submit&quot; ..... /&gt;
+ * &lt;/div&gt;
+ */
+
+
+
+ function randplace_settings(&amp;$a,&amp;$s) {
+
+ if(! local_user())
+ return;
+
+ /* Add our stylesheet to the page so we can make our settings look nice */
+
+ head_add_css(/addon/randplace/randplace.css');
+
+ /* Get the current state of our config variable */
+
+ $enabled = get_pconfig(local_user(),'randplace','enable');
+
+ $checked = (($enabled) ? ' checked=&quot;checked&quot; ' : '');
+
+ /* Add some HTML to the existing form */
+
+ $s .= '&lt;div class=&quot;settings-block&quot;&gt;';
+ $s .= '&lt;h3&gt;' . t('Randplace Settings') . '&lt;/h3&gt;';
+ $s .= '&lt;div id=&quot;randplace-enable-wrapper&quot;&gt;';
+ $s .= '&lt;label id=&quot;randplace-enable-label&quot; for=&quot;randplace-checkbox&quot;&gt;' . t('Enable Randplace Plugin') . '&lt;/label&gt;';
+ $s .= '&lt;input id=&quot;randplace-checkbox&quot; type=&quot;checkbox&quot; name=&quot;randplace&quot; value=&quot;1&quot; ' . $checked . '/&gt;';
+ $s .= '&lt;/div&gt;&lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;';
+
+ /* provide a submit button */
+
+ $s .= '&lt;div class=&quot;settings-submit-wrapper&quot; &gt;&lt;input type=&quot;submit&quot; name=&quot;randplace-submit&quot; class=&quot;settings-submit&quot; value=&quot;' . t('Submit') . '&quot; /&gt;&lt;/div&gt;&lt;/div&gt;';
+
+ }
+
+[/code]
+
+
+
+***Advanced Plugins***
+
+Sometimes your plugins want to provide a range of new functionality which isn't provided at all or is clumsy to provide using hooks. In this case your plugin can also act as a 'module'. A module in our case refers to a structured webpage handler which responds to a given URL. Then anything which accesses that URL will be handled completely by your plugin.
+
+The key to this is to create a simple function named pluginname_module() which does nothing.
+[code]
+ function randplace_module() { return; }
+[/code]
+Once this function exists, the URL #^[url=https://yoursite/randplace]https://yoursite/randplace[/url] will access your plugin as a module. Then you can define functions which are called at various points to build a webpage just like the modules in the mod/ directory. The typical functions and the order which they are called is
+[code]
+ modulename_init($a) // (e.g. randplace_init($a);) called first - if you wish to emit json or xml,
+ // you should do it here, followed by killme() which will avoid the default action of building a webpage
+ modulename_aside($a) // Often used to create sidebar content
+ modulename_post($a) // Called whenever the page is accessed via the &quot;post&quot; method
+ modulename_content($a) // called to generate the central page content. This function should return a string
+ // consisting of the central page content.
+[/code]
+Your module functions have access to the URL path as if they were standalone programs in the Unix operating system. For instance if you visit the page
+[code]
+ https://yoursite/randplace/something/somewhere/whatever
+[/code]
+we will create an argc/argv list for use by your module functions
+[code]
+ $x = argc(); $x will be 4, the number of path arguments after the sitename
+
+ for($x = 0; $x &lt; argc(); $x ++)
+ echo $x . ' ' . argv($x);
+
+
+ 0 randplace
+ 1 something
+ 2 somewhere
+ 3 whatever
+[/code]
+
+***Porting Friendica Plugins***
+
+The Red Matrix uses a similar plugin architecture to the Friendica project. The authentication, identity, and permissions systems are completely different. Many Friendica can be ported reasonably easily by renaming a few functions - and then ensuring that the permissions model is adhered to. The functions which need to be renamed are:
+
+[li] Friendica's pluginname_install() is pluginname_load()[/li]
+
+[li] Friendica's pluginname_uninstall() is pluginname_unload()[/li]
+
+The Red Matrix has _install and _uninstall functions but these are used differently.
+
+[li] Friendica's &quot;plugin_settings&quot; hook is called &quot;feature_settings&quot;[/li]
+
+[li] Friendica's &quot;plugin_settings_post&quot; hook is called &quot;feature_settings_post&quot;[/li]
+
+Changing these will often allow your plugin to function, but please double check all your permission and identity code because the concepts behind it are completely different in the Red Matrix. Many structured data names (especially DB schema columns) are also quite different. \ No newline at end of file
diff --git a/doc/problems-following-an-update.bb b/doc/problems-following-an-update.bb
new file mode 100644
index 000000000..bb2e07a07
--- /dev/null
+++ b/doc/problems-following-an-update.bb
@@ -0,0 +1,37 @@
+[b]Problems Following An Update[/b]
+
+A good 90% of all bugs encountered immediately after updating the code to the latest version are simple cache errors of one sort or another. If you update and find something very obvious is broken - like your matrix page doesn't load, notifications are missing, or comment boxes are missing - the chances are it's not a bug at all. Breaking basic functionality is the kind of thing developers tend to notice.
+
+If this happens to you, there are a few simple steps to take before resorting to the support forums:
+
+[b]Browser Cache[/b]
+
+Symptoms: Menus do not expand, ACL selector does not open, progress indicator does not display (or loops forever), Matrix and channel pages do not load.
+
+Force reload the page. Shift reload, or ctrl+f5. Occasionally, but very, very rarely, you will also need to clear the session data - which is achieved by restarting the browser.
+
+[b]FastCGI[/b]
+
+Symptoms: Incorrect variables. The basic UI mostly works, but displays incorrect content or is missing content entirely.
+
+If you're using php5-fpm, this problem is usually resolved with [code]service php5-fpm restart[/code]
+
+[b]Smarty Cache[/b]
+
+Symptoms:
+
+1) [zrl=https://beardyunixer.com/page/jargon/wsod]White Screen Of Death[/zrl]. This is most prevalent on the settings and admin pages.
+
+2) Missing icons, tabs, menus or features.
+
+We use the Smarty3 template engine to generate pages. These templates are compiled before they are displayed. Occasionally, a new or modified template will fail to overwrite the old compiled version. To clear the Smarty cache, delete all the files in view/tpl/smarty3/compiled [b]but do not delete the directory itself[/b]. Templates will then be recompiled on their next access.
+
+[b]Theme Issues[/b]
+
+There are many themes for The Red Matrix. Only Redbasic is officialy supported by the core developers. This applies [i]even if a core developer happens to support an additional theme[/i]. This means new features are only guaranteed to work in Redbasic.
+
+Redbasic uses a few javascript libraries that are done differently, or entirely absent in other themes. This means new features may only work properly in Redbasic. Before reporting an issue, therefore, you should switch to Redbasic to see if it exists there. If the issue goes away, this is not a bug - it's a theme that isn't up to date.
+
+Should you report an issue with the theme developers then? No. Theme developers use their themes. Chances are, they know. Give them two or three days to catch up and [i]then[/i] report the issue if it's still not fixed. There are two workarounds for this situation. Firstly, you can temporarily use Redbasic. Secondly, most themes are open source too - open a pull request and make yourself a friend.
+
+Return to the [url=[baseurl]/help/troubleshooting]Troubleshooting documentation page[/url] \ No newline at end of file
diff --git a/doc/profiles.bb b/doc/profiles.bb
new file mode 100644
index 000000000..e9b1d5571
--- /dev/null
+++ b/doc/profiles.bb
@@ -0,0 +1,33 @@
+[b]Profiles[/b]
+
+Red has unlimited profiles. You may use different profiles to show different &quot;sides of yourself&quot; to different audiences. This is different to having different channels. Different channels allow for completely different sets of information. You may have a channel for yourself, a channel for your sports team, a channel for your website, or whatever else. A profile allows for finely graded &quot;sides&quot; of each channel. For example, your default public profile might say &quot;Hello, I'm Fred, and I like laughing&quot;. You may show your close friends a profile that adds &quot;and I also enjoy dwarf tossing&quot;.
+
+You always have a profile known as your &quot;default&quot; or &quot;public&quot; profile. This profile is always available to the general public and cannot be hidden (there may be rare exceptions on privately run or disconnected sites). You may, and probably should restrict the information you make available on your public profile.
+
+That said, if you want other friends to be able to find you, it helps to have the following information in your public profile...
+
+[li]Your real name or at least a nickname everybody knows[/li]
+[li]A photo of you[/li]
+[li]Your location on the planet, at least to a country level.[/li]
+
+Without this basic information, you could get very lonely here. Most people (even your best friends) will not try and connect with somebody that has a fake name or doesn't contain a real photo.
+
+In addition, if you'd like to meet people that share some general interests with you, please take a moment and add some &quot;Keywords&quot; to your profile. Such as &quot;music, linux, photography&quot; or whatever. You can add as many keywords as you like.
+
+To create an alternate profile, select &quot;View Profile&quot; from the menu of your Red Matrix site, then click on the pencil at your profile photo. You may edit an existing profile, change the profile photo, add things to a profile or create a new profile. You may also create a &quot;clone&quot; of an existing profile if you only wish to change a few items but don't wish to enter all the information again. To do that, click on the profile you want to clone and choose &quot;Clone this profile&quot; there.
+
+In the list of your profiles, you can also choose the contacts who can see a specific profile. Just click on &quot;Edit visibility&quot; next to the profile in question (only available for the profiles that are not your default profile) and then click on user images to add them to or remove them from the group of people who can see this profile.
+
+Once a profile has been selected, when the person views your profile, they will see the private profile you have assigned. If they are not authenticated, they will see your public profile.
+
+There is a setting which allows you to publish your profile to a directory and ensure that it can be found by others. You can change this setting on the &quot;Settings&quot; page.
+
+If you do not wish to be found be people unless you give them your channel address, you may leave your profile unpublished.
+
+[b]Keywords and Directory Search[/b]
+
+On the directory page, you may search for people with published profiles. The search is typically for your nickname or part of your full name. However this search will also match against other profile fields - such as gender, location, &quot;about&quot;, work, and education. You may also include &quot;Keywords&quot; in your default profile - which may be used to search for common interests with other members. Keywords are used in the channel suggestion tool and although they aren't visible in the directory, they are shown if people visit your profile page.
+
+Directory searches are also able to use &quot;boolean&quot; logic so that you can search for &quot;+lesbian +Florida&quot; and find those who's sexual preference (or keywords) contain the world &quot;lesbian&quot; and that live in Florida. See the section on &quot;Topical Tags&quot; on the Tags-and-Mentions page for more information on performing boolean searches.
+
+On your Connnections page and in the directory there is a link to &quot;Suggestions&quot; or &quot;Channel Suggestions&quot;, respectively. This will find channels who have matching and/or similar keywords. The more keywords you provide, the more relevant the search results that are returned. These are sorted by relevance. \ No newline at end of file
diff --git a/doc/red2pi.bb b/doc/red2pi.bb
new file mode 100644
index 000000000..2abba8ec5
--- /dev/null
+++ b/doc/red2pi.bb
@@ -0,0 +1,349 @@
+[b]How to install the Red Matrix on a Raspberry Pi[/b]
+
+[zrl=[baseurl]/help/main] Back to the main page[/zrl]
+Last update 2014-02-22
+[hr]
+
+You just bought a Raspberry Pi and want to run the RED Matrix with your own domain name?
+
+Then this page is for you! You will:
+[list=1]
+[*] Install Raspberry OS (Debian Linux) on a Raspberry
+[*] Install Apache Web Server, PHP, MaySQL, phpMyAdmin
+[*] Register a free domain (dynamic DNS) and use it for your RED hub
+[*] Install the RED Matrix
+[*] Keep your Raspberry Pi and your Redmatrix up-to-date
+[*] TODO Running Friendica with SSL
+[*] TODO Make the webserver less vulnarable to attacks
+[/list]
+
+[size=large]1. Install Raspberry OS (Debian Linux)[/size]
+
+instructions under #^[url=http://www.raspberrypi.org/downloads]http://www.raspberrypi.org/downloads[/url]
+This page links to the quick start containing detailed instruction.
+
+[b]Format SD card[/b]
+
+using the programm gparted under Linux Mint 15
+
+format as FAT32
+
+[b]Download NOOBS (offline and network install)[/b]
+
+#^[url=http://downloads.raspberrypi.org/noobs]http://downloads.raspberrypi.org/noobs[/url]
+
+unzip
+
+copy unzipped files to SD card
+
+[b]Install Raspbian as OS on the Rasperry Pi[/b]
+
+connect with keyboard via USB
+
+connect with monitor via HDMI
+
+Insert SD card into Rasperry Pi
+
+Connect with power supply to switch on the Rasperry
+
+choose Raspbian as OS (&gt; installs Raspbian....)
+
+wait for the coniguration program raspi-config (you can later start it by sudo raspi-config)
+
+[b]Configure Raspbian[/b]
+
+in raspi-config &gt; advanced &gt; choose to use ssh (!! You need this to connect to administrate your Pi from your PC !!)
+
+in raspi-config &gt; change the password (of default user &quot;pi&quot; from &quot;raspberry&quot; to your password)
+
+in raspi-config (optional) &gt; Internationalisation options &gt; Change Locale &gt; to de_DE.utf-8 utf-8 (for example)
+
+in raspi-config (optional) &gt; Internationalisation options &gt; Change Timezoe &gt; set your timezone
+
+in raspi-config (optional) &gt; Overlock &gt; medium
+
+(Source #^[url=http://www.manfred-steger.de/tuts/20-der-eigene-webserver-mit-dem-raspberry-pi#]http://www.manfred-steger.de/tuts/20-der-eigene-webserver-mit-dem-raspberry-pi#[/url])
+
+
+[b]More[/b]
+
+[code]sudo reboot[/code]
+
+Now its time to connect the Pi to the network.
+[ul]
+[*] pull out keyboard
+[*] pull out monitor
+[*] you even can pull out the power supply (USB)
+[*] plug-in the network cable to the router
+[*] plug-in the power supply again
+[*] wait for a minute or to give the Pi time to boot and start ssh...
+[/ul]
+
+On your PC connect to the Pi to administrate (here update it).
+Open the console on the PC (Window: Start &gt; cmd, Linux: Shell)
+
+Hint: use the router admin tool to find out the IP of your PI[code]ssh pi@192.168.178.37
+sudo apt-get update
+sudo apt-get dist-upgrade[/code]
+
+(Source #^[url=http://www.manfred-steger.de/tuts/20-der-eigene-webserver-mit-dem-raspberry-pi#]http://www.manfred-steger.de/tuts/20-der-eigene-webserver-mit-dem-raspberry-pi#[/url])
+
+
+
+[size=large]2. Install Apache Web Server, PHP, MaySQL, phpMyAdmin[/size]
+
+[b]Install Apache Webserver[/b]
+
+[code]sudo bash
+sudo groupadd www-data[/code] might exist already
+
+[code]sudo usermod -a -G www-data www-data
+sudo apt-get update
+sudo reboot[/code]
+
+wait...
+reconnect via ssh, example: [code]ssh pi@192.168.178.37
+sudo apt-get install apache2 apache2-doc apache2-utils[/code]
+
+Open webbrowser on PC and check #^[url=http://192.168.178.37]http://192.168.178.37[/url]
+Should show you a page like &quot;It works&quot;
+
+(Source #^[url=http://www.manfred-steger.de/tuts/20-der-eigene-webserver-mit-dem-raspberry-pi#]http://www.manfred-steger.de/tuts/20-der-eigene-webserver-mit-dem-raspberry-pi#[/url])
+
+
+[b]Install PHP, MaySQL, phpMyAdmin[/b]
+
+[code]sudo bash
+apt-get install libapache2-mod-php5 php5 php-pear php5-xcache php5-curl
+apt-get install php5-mysql
+apt-get install mysql-server mysql-client[/code] enter and note the mysql passwort
+
+[code]apt-get install phpmyadmin[/code]
+
+Configuring phpmyadmin
+- Select apache2
+- Configure database for phpmyadmin with dbconfig-common?: Choose Yes
+
+(Source #^[url=http://www.manfred-steger.de/tuts/20-der-eigene-webserver-mit-dem-raspberry-pi#]http://www.manfred-steger.de/tuts/20-der-eigene-webserver-mit-dem-raspberry-pi#[/url])
+
+
+[b]Test installation[/b]
+
+[code]cd /var/www[/code]
+
+create a php file to test the php installation[code]sudo nano phpinfo.php[/code]
+
+Insert into the file:[code]
+&lt;?php
+ phpinfo();
+?&gt;
+[/code]
+(save CTRL+0, ENTER, CTRL+X)
+
+open webbrowser on PC and try #^[url=http://192.168.178.37/phpinfo.php]http://192.168.178.37/phpinfo.php[/url] (page shows infos on php)
+
+connect phpMyAdmin with MySQL database [code]nano /etc/apache2/apache2.conf[/code]
+- CTRL+V... to the end of the file
+- Insert at the end of the file: (save CTRL+0, ENTER, CTRL+X)[code]Include /etc/phpmyadmin/apache.conf[/code]
+
+restart apache[code]/etc/init.d/apache2 restart
+sudo apt-get update
+sudo apt-get upgrade
+sudo reboot[/code]
+
+(Source #^[url=http://www.manfred-steger.de/tuts/20-der-eigene-webserver-mit-dem-raspberry-pi#]http://www.manfred-steger.de/tuts/20-der-eigene-webserver-mit-dem-raspberry-pi#[/url])
+
+
+[b]phpMyAdmin[/b]
+
+open webbrowser on PC and try #^[url=http://192.168.178.37/phpmyadmin]http://192.168.178.37/phpmyadmin[/url]
+
+(Source #^[url=http://www.manfred-steger.de/tuts/20-der-eigene-webserver-mit-dem-raspberry-pi#]http://www.manfred-steger.de/tuts/20-der-eigene-webserver-mit-dem-raspberry-pi#[/url])
+
+
+[b]Create an empty database... that is later used by RED[/b]
+
+open webbrowser on PC and try #^[url=http://192.168.178.37/phpmyadmin]http://192.168.178.37/phpmyadmin[/url]
+
+Create an empty database
+
+Note the access details (hostname, username, password, database name).
+
+
+[size=large]3. Selfhost[/size]
+
+(Source: #^[url=http://www.techjawab.com/2013/06/setup-dynamic-dns-dyndns-for-free-on.html]http://www.techjawab.com/2013/06/setup-dynamic-dns-dyndns-for-free-on.html[/url])
+
+#^[url=http://freedns.afraid.org/signup/]http://freedns.afraid.org/signup/[/url]
+
+[b]Step 1[/b]
+Register for a Free domain at #^[url=http://freedns.afraid.org/signup/]http://freedns.afraid.org/signup/[/url]
+(We will take techhome.homenet.org in this guide)
+
+[b]Step 2[/b]
+
+Logon to FreeDNS (where you just registered) and goto #^[url=http://freedns.afraid.org/dynamic/]http://freedns.afraid.org/dynamic/[/url]
+Right click on &quot;Direct Link&quot; and copy the URL and paste it somewhere.
+You should notice a large and unique alpha-numeric key in the URL, make a note of it as shown below:
+[code]http://freedns.afraid.org/dynamic/update.php?alphanumeric-key[/code]
+
+
+[b]Step 3[/b]
+Install inadyn using the following command:[code]sudo apt-get install inadyn[/code]
+
+[b]Step 4[/b]
+Configure inadyn using the below steps:[code]sudo nano /etc/inadyn.conf[/code]
+And add the following contains in it replacing the actual values:
+[code]
+--username [color=red]techhome[/color]
+--password [color=red]mypassword[/color]
+--update_period 3600
+--forced_update_period 14400
+--alias [color=red]techhome.homenet.org&lt;/b&gt;,[color=red]alphanumeric key[/color]
+--background
+--dyndns_system default@freedns.afraid.org
+--syslog
+[/code]
+
+
+[b]Step 5[/b]
+
+Now, we need to ensure that the DNS updater (Inadyn) runs automatically after every re-boot[code]export EDITOR=gedit &amp;&amp; sudo crontab -e[/code]
+Add the following line:[code]@reboot /usr/sbin/inadyn[/code]
+
+
+[b]Step 6[/b]
+
+Reboot system and then run the following command to ensure inadyn is running:[code]
+sudo reboot
+ps -A | grep inadyn
+[/code]
+Now your host is ready and up for accessing from internet...
+You can trying ssh-ing from another computer over the internet
+[code]ssh username@techhome.homenet.org[/code]
+Or, if any web server is running, then simply browse to #^[url=http://techhome.homenet.org]http://techhome.homenet.org[/url]
+Or, you can just ping it to test ping techhome.homenet.org
+To check the logs you can use this:
+[code]more /var/log/messages |grep INADYN[/code]
+
+
+[size=large]4. Install RED [/size]
+
+(Source: #^[zrl=https://friendicared.net/help/Install]https://friendicared.net/help/Install[/zrl])
+
+Linux Appache document root is /var/www/
+Two files exist there (created by the steps above): index.html, phpinfo.php
+
+
+[b]Install RED and its Addons[/b]
+
+Cleanup: Remove the directory www/ (Git will not create files and folders in directories that are not empty.) Make sure you are in directory var[code]pi@pi /var $ cd /var[/code]
+
+Remove directory[code]pi@pi /var $ sudo rm -rf www/[/code]
+
+Download the sources of RED from GIT
+[code]pi@pi /var $ sudo git clone https://github.com/friendica/red.git www[/code]
+
+Download the sources of the addons from GIT
+[code]pi@pi /var/www $ sudo git clone https://github.com/friendica/red-addons.git addon[/code]
+
+Make user www-data the owner of the whole red directory (including subdirectories and files)
+(TODO: This step has to be proofed by the next installation.)
+[code]pi@pi /var $ chown -R www-data:www-data /var/www/[/code]
+
+Check if you can update the sources from git[code]
+pi@pi /var $ cd www
+pi@pi /var/www $ git pull
+[/code]
+
+Check if you can update the addons
+[code]pi@pi /var/www $ cd addon/
+pi@pi /var/www/addon $ sudo git pull[/code]
+
+Make sure folder view/tpl/smarty3 exists and is writable by the webserver
+[code]pi@pi /var/www $ sudo chmod ou+w view/tpl/smarty3/[/code]
+
+Create .htconfig.php and is writable by the webserver
+[code]pi@pi /var/www $ sudo touch .htconfig.php
+pi@pi /var/www $ sudo chmod ou+w .htconfig.php[/code]
+
+Prevent search engines from indexing your site. Why? This can fill up your database.
+(Source: [url=http://wiki.pixelbits.de/redmatrix]Pixelbits[/url] )
+[code]pi@pi /var/www $ sudo touch robots.txt[/code]
+Open the file.
+[code]pi@pi /var/www $ sudo nano robots.txt[/code]
+Paste this text and save.
+[code]
+# Prevent search engines to index this site
+ User-agent: *
+ Disallow: /search
+[/code]
+
+
+[b]First start and initial configuration of your RED Matrix hub[/b]
+
+In browser open #^[zrl=http://einervonvielen.mooo.com/]http://einervonvielen.mooo.com/[/zrl]
+(Replace einervonvielen.mooo.com by your domain, see chapter selfhost. Be patient. It takes time.)
+(#^[zrl=http://einervonvielen.mooo.com/index.php?q=setup]http://einervonvielen.mooo.com/index.php?q=setup[/zrl])
+
+There might be errors like the following.
+
+Error: libCURL PHP module required but not installed.
+Solution:
+apt-get install php5-curl
+
+Error: Apache webserver mod-rewrite module is required but not installed.
+Solution
+(Source: #^[url=http://xmodulo.com/2013/01/how-to-enable-mod_rewrite-in-apache2-on-debian-ubuntu.html]http://xmodulo.com/2013/01/how-to-enable-mod_rewrite-in-apache2-on-debian-ubuntu.html[/url])
+The default installation of Apache2 comes with mod_rewrite installed. To check whether this is the case, verify the existence of /etc/apache2/mods-available/rewrite.load
+- pi@pi /var/www $ nano /etc/apache2/mods-available/rewrite.load
+ (You should find the contendt: LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so)
+To enable and load mod_rewrite, do the rest of steps.
+Create a symbolic link in /etc/apache2/mods-enabled
+- pi@pi /var/www $ sudo a2enmod rewrite
+Then open up the following file, and replace every occurrence of &quot;AllowOverride None&quot; with &quot;AllowOverride all&quot;.
+- pi@pi /var/www $ sudo nano /etc/apache2/sites-available/default
+Finally, restart Apache2.
+- pi@pi /var/www $ sudo service apache2 restart
+
+Error store is writable (not checked)
+Solution:
+(TODO: Make writeable to group www-data only?)
+pi@pi /var/www $ sudo mkdir store
+pi@pi /var/www $ chown -R www-data:www-data /var/www/red/
+pi@pi /var/www $ sudo chmod ou+w view
+
+[b]More[/b]
+
+Set up a cron job to run the poller once every 15 minutes in order to perform background processing.
+- pi@pi /var/www $ which php
+Make sure you are in the document root directory of the webserver
+- pi@pi /var/www $ cd /var/www/
+Try to execute the poller in oder to make sure it works
+- pi@pi /var/www $ /usr/bin/php include/poller.php
+Create the cronjob
+- pi@pi /var/www $ crontab -e
+Enter
+- */15 * * * * cd /var/www/; /usr/bin/php include/poller.php
+- Save and exit.
+
+
+[size=large]5. Keep your Raspberry Pi and your Redmatrix up-to-date[/size]
+
+Git update of RED every day at 4 am and addons at 5 am every day
+Try if the command is working
+- pi@pi /var/www $ sudo git pull
+Create the cronjob
+- pi@pi /var/www $ crontab -e
+Enter the following to update RED at 4:01 am every day
+- 01 04 * * * cd /var/www/; sudo git pull
+Enter the following to update the addons at 5:01 am every day
+- 01 05 * * * cd /var/www/addon/; sudo git pull
+Enter the following to update the Raspberry Pi (Raspbian OS = Debian) at 6:01 am every day
+- 01 06 * * * sudo aptitude -y update &amp;&amp; sudo aptitude -y safe-upgrade
+Save and exit.
+
+[size=large]6. Running Friendica with SSL[/size]
+
+Follow the instructions here:
+#^[url=https://github.com/friendica/friendica/wiki/Running-Friendica-with-SSL]https://github.com/friendica/friendica/wiki/Running-Friendica-with-SSL[/url] \ No newline at end of file
diff --git a/doc/remove_account.bb b/doc/remove_account.bb
new file mode 100644
index 000000000..90ef1d7df
--- /dev/null
+++ b/doc/remove_account.bb
@@ -0,0 +1,17 @@
+[b]Remove Account[/b]
+
+[b]Remove Account[/b]
+
+It is presently not possible to remove an account without asking your site administrator for assistance.
+
+[b]Remove Channel[/b]
+
+Visit the URL
+
+ [baseurl]/removeme
+
+You will need to confirm your password and the channel you are currently logged into will be removed.
+
+This is irreversible.
+
+If you have identity clones on other sites this only removes the channel instance which exists on this site. \ No newline at end of file
diff --git a/doc/schema_development.bb b/doc/schema_development.bb
new file mode 100644
index 000000000..6b2c3d315
--- /dev/null
+++ b/doc/schema_development.bb
@@ -0,0 +1,74 @@
+[b]Red Development - A Guide To The Schema System[/b]
+
+A schema, in a nutshell, is a collection of settings for a bunch of variables to define
+certain elements of a theme. A schema is loaded as though it were part of config.php
+and has access to all the same information. Importantly, this means it is identity aware,
+and can be used to do some interesting things. One could, for example, restrict options
+by service class, or present different options to different members.
+
+By default, we filter only by whether or not expert mode is enabled. If expert mode is
+enabled, all options are presented to the member. If it is not, only scheme, background
+image, font face, and iconset are available as choices.
+
+A schema is loaded *after* the member's personal settings. Therefore, to allow a member
+to overwrite a particular aspect of a schema you would use the following syntax:
+[code]
+ if (! $foo)
+ $foo = 'bar';
+[/code]
+However, there are circumstances - particularly with positional elements - where it
+may be desirable (or necessary) to override a member's settings. In this case, the syntax
+is even simpler:
+[code]
+ $foo = 'bar';
+[/code]
+Members will not thank you for this, however, so only use it when it is required.
+
+If no personal options are set, and no schema is selected, we will first try to load a schema
+with the file name &quot;default.php&quot;. This file should never be included with a theme. If it
+is, merge conflicts will occur as people update their code. Rather, this should be defined
+by administrators on a site by site basis.
+
+You schema does not need to - and should not - contain all of these values. Only the values
+that differ from the defaults should be listed. This gives you some very powerful options
+with very few lines of code.
+
+Note the options available differ with each theme. The options available with the Redbasic
+theme are as follows:
+
+[li] nav_colour
+ The colour of the navigation bar. Options are red, black and silver. Alternatively,
+ one can set $nav_bg_1, $nav_bg_2, $nav_bg_3 and $nav_bg_4 to provide gradient and
+ hover effects.[/li]
+[li] banner_colour
+ The font colour of the banner element. Accepts an RGB or Hex value.[/li]
+[li] bgcolour
+ Set the body background colour. Accepts an RGB or Hex value.[/li]
+[li] background_image
+ Sets a background image. Accepts a URL or path.[/li]
+[li] item_colour
+ Set the background colour of items. Accepts an RGB or Hex value.[/li]
+[li] item_opacity
+ Set the opacity of items. Accepts a value from 0.01 to 1[/li]
+[li] toolicon_colour
+ Set the colour of tool icons. Accepts an RGB or Hex value.[/li]
+[li] toolicon_activecolour
+ Set the colour of active or hovered icon tools.[/li]
+[li] font_size
+ Set the size of fonts in items and posts. Accepts px or em.[/li]
+[li] body_font_size
+ Sets the size of fonts at the body level. Accepts px or em.[/li]
+[li] font_colour
+ Sets the font colour. Accepts an RGB or Hex value.[/li]
+[li] radius
+ Set the radius of corners. Accepts a numeral, and is always in px.[/li]
+[li] shadow
+ Set the size of shadows shown with inline images. Accepts a numerical
+ value. Note shadows are not applied to smileys.[/li]
+[li] converse_width
+ Set the maximum width of conversations. Accepts px, or %.[/li]
+[li] nav_min_opacity[/li]
+[li] top_photo[/li]
+[li] reply_photo[/li]
+[li] sloppy_photos
+ Determins whether photos are &quot;sloppy&quot; or aligned. Set or unset (1 or '')[/li] \ No newline at end of file
diff --git a/doc/tags_and_mentions.bb b/doc/tags_and_mentions.bb
new file mode 100644
index 000000000..0614a1e47
--- /dev/null
+++ b/doc/tags_and_mentions.bb
@@ -0,0 +1,23 @@
+[b]Tags And Mentions[/b]
+
+Like many other platforms, Red uses a special notation inside messages to indicate &quot;tags&quot; or contextual links to other entities.
+
+[b]Mentions[/b]
+
+Channels are tagged by simply preceding their name with the @ character. Unless their system blocks unsolicited &quot;mentions&quot;, the person tagged will likely receive a &quot;Mention&quot; post/activity or become a direct participant in the conversation in the case of public posts.
+
+When you start to mention somebody, it will create an auto-complete box to select from your immediate connections. Select one as appropriate. Some connections will be displayed in different colours. A light blue entry (using the default theme) indicates a channel which will redeliver to others if tagged. This is generally a conversation group or forum. But be aware that when tagged, the message will also go to anybody they choose, in addition to anybody you choose.
+
+[b]Private Mentions[/b]
+
+If you wish to restrict a post to a single person or a number of people, you can do this by selecting channels or collections from the privacy tool. You can also just tag them with a privacy tag. A privacy tag is a name preceded by the two characters @! - and in addition to tagging these channels, will also change the privacy permissions of the post to include them (and perhaps restrict the post from &quot;everybody&quot; if this was the default). You can have more than one privacy tag, for instance @!bob and @!linda will send the post only to Bob and Linda (in addition to any recipients you selected with the privacy selector - if any).
+
+You may also tag public collections. When you create or edit a collection, there is a checkbox to allow the group members to be seen by others. If this box is checked for a collection and you tag (for instance) @!Friends - the post will be restricted to the Friends collection. Check that the collection is public before doing this - as there is no way to take back a post except to delete it. The collection name will appear in the post and will alert members of that collection that they are members of it.
+
+
+
+[b]Topical Tags[/b]
+
+Topical tags are indicated by preceding the tag name with the # character. This will create a link in the post to a generalised site search for the term provided. For example, #[zrl=https://friendicared.net/search?tag=cars]cars[/zrl] will provide a search link for all posts mentioning 'cars' on your site. Topical tags are generally a minimum of three characters in length. Shorter search terms are not likely to yield any search results, although this depends on the database configuration. The same rules apply as with names that spaces within tags are represented by the underscore character. It is therefore not possible to create a tag whose target contains an underscore.
+
+Topical tags are also not linked if they are purely numeric, e.g. #1. If you wish to use a numeric hashtag, please add some descriptive text such as #[zrl=https://friendicared.net/search?tag=2012-elections]2012-elections[/zrl]. \ No newline at end of file
diff --git a/doc/to_do_code.bb b/doc/to_do_code.bb
new file mode 100644
index 000000000..295095e87
--- /dev/null
+++ b/doc/to_do_code.bb
@@ -0,0 +1,51 @@
+[b]Project Code To-Do List[/b]
+
+We need much more than this, but here are areas where developers can help. Please edit this page when items are finished. Another place for developers to start is with the issues list.
+
+[li]Turn top-level Apps menu into an Apps page - which will probably require App plugins to have icons. Add documentation specifically to the plugin/addon documentation for creating apps. Add links to the App Store (which doesn't currently exist).[/li]
+
+[li]Documentation - see Red Documentation Project To-Do List[/li]
+
+[li]Infinite scroll to the directory pages[/li]
+
+[li]Finish the anti-spam bayesian engine[/li]
+
+[li]Integrate the &quot;open site&quot; list with the register page[/li]
+
+[li]Write more webpage layouts[/li]
+
+[li]Write more webpage widgets[/li]
+
+[li](Advanced) create a UI for building Comanche pages[/li]
+
+[li]templatise and translate the Web interface to webDAV[/li]
+
+[li]Extend WebDAV to provide desktop access to photo albums]/li]
+
+[li]service classes - provide a pluggable subscription payment gateway for premium accounts[/li]
+
+[li]service classes - account overview page showing resources consumed by channel. With special consideration this page can also be accessed at a meta level by the site admin to drill down on problematic accounts/channels.[/li]
+
+[li]Events module - bring back birthday reminders for friends, fix permissions on events, and provide JS translation support for the calendar overview; integrate with calDAV[/li]
+
+[li]Events module - event followups and RSVP[/li]
+
+[li]Uploads - integrate #^[url=https://github.com/blueimp/jQuery-File-Upload]https://github.com/blueimp/jQuery-File-Upload[/url][/li]
+
+[li]replace the tinymce visual editor and/or make the visual editor pluggable and responsive to different output formats. We probably want library/bbedit for bbcode. This needs a fair bit of work to catch up with our &quot;enhanced bbcode&quot;, but start with images, links, bold and highlight and work from there.[/li]
+
+[li]Photos module - turn photos into normal conversations and fix tagging[/li]
+
+[li]Provide RSS feed support which look like channels (in matrix only - copyright issues)[/li]
+
+[li]Create mobile clients for the top platforms - which involves extending the API so that we can do stuff far beyond the current crop of Twitter/Statusnet clients. Ditto for mobile themes. We can probably use something like the Friendica Android app as a base to start from.[/li]
+
+[li]Activity Stream generation for liking things, liking channels and other combinations.[/li]
+
+[li]Implement owned and exchangeable &quot;things&quot;.[/li]
+
+[li]Family Account creation - using service classes (an account holder can create a certain number of sub-accounts which are all tied to their subscription - if the subscription lapses they all go away).[/li]
+
+[li]Put mod_admin under Comanche[/li]
+
+In many cases some of the work has already been started and code exists so that you needn't start from scratch. Please contact one of the developer channels like Channel One (one@zothub.com) before embarking and we can tell you what we already have and provide some insights on how we envision these features fitting together. \ No newline at end of file
diff --git a/doc/to_do_doco.bb b/doc/to_do_doco.bb
new file mode 100644
index 000000000..4505de31a
--- /dev/null
+++ b/doc/to_do_doco.bb
@@ -0,0 +1,21 @@
+[b]Documentation To-Do List[/b]
+
+[b]Documentation we need to write[/b]
+
+ Database schema detailed descriptions
+
+ Complete plugin hook documentation
+
+ API documentation
+
+ Function and code documentation (doxygen)
+
+ New Member guide
+
+ &quot;Extra Feature&quot; reference, description of each
+
+ Detailed Personal Settings Documentation
+
+ Administration Guide (post-install)
+
+ Administration Guide (pre-install) \ No newline at end of file
diff --git a/doc/troubleshooting.bb b/doc/troubleshooting.bb
new file mode 100644
index 000000000..ea7dbb11a
--- /dev/null
+++ b/doc/troubleshooting.bb
@@ -0,0 +1,5 @@
+[b]Troubleshooting[/b]
+
+[li][zrl=[baseurl]/help/problems-following-an-update]Problems following an update[/zrl][/li]
+
+Return to the [url=[baseurl]/help/main]Main documentation page[/url] \ No newline at end of file
diff --git a/doc/webpages.bb b/doc/webpages.bb
new file mode 100644
index 000000000..74760c8bf
--- /dev/null
+++ b/doc/webpages.bb
@@ -0,0 +1,13 @@
+[b]Creating Web Pages[/b]
+
+Red enables users to create static webpages. To activate this feature, enable the web pages feature in your Additional Features section.
+
+Once enabled, a new tab will appear on your channel page labelled &quot;Webpages&quot;. Clicking this link will take you to the webpage editor. Here you can create a post using either BBCode or the rich text editor.
+
+Pages will be accessible at mydomain/page/username/pagelinktitle
+
+The &quot;page link title&quot; box allows a user to specify the &quot;pagelinktitle&quot; of this URL. If no page link title is set, we will set one for you automatically, using the message ID of the item.
+
+Beneath the page creation box, a list of existing pages will appear with an &quot;edit&quot; link. Clicking this will take you to an editor, similar to that of the post editor, where you can make changes to your webpages.
+
+If you are the admin of a site, you can specify a channel whose webpages we will use at key points around the site. Presently, the only place this is implemented is the home page. If you specify the channel &quot;admin&quot; and then the channel called &quot;admin&quot; creates a webpage called &quot;home&quot;, we will display it's content on your websites home page. We expect this functionality to be extended to other areas in future. \ No newline at end of file
diff --git a/doc/what_is_zot.bb b/doc/what_is_zot.bb
new file mode 100644
index 000000000..a398a65a4
--- /dev/null
+++ b/doc/what_is_zot.bb
@@ -0,0 +1,61 @@
+[b]What is Zot?[/b]
+
+Zot is the protocol that powers the Red Matrix, providing three core capabilities: Communications, Identity, and Access Control.
+
+The functionality it provides can also be described as follows:
+
+ - a relationship online is just a bunch of permissions
+ - the internet is just another folder
+
+[b][color= grey][size=20]Communications[/size][/color][/b]
+
+Zot is a revolutionary protocol which provides [i]decentralised communications[/i] and [i]identity management[/i] across the matrix. The resulting platform can provide web services comparable to those offered by large corporate providers, but without the large corporate provider and their associated privacy issues, insatiable profit drive, and walled-garden mentality.
+
+Communications and social networking are an integral part of the matrix. Any channel (and any services provided by that channel) can make full use of feature-rich social communications on a global scale. These communications may be public or private - and private communications comprise not only fully encrypted transport, but also encrypted storage to help protect against accidental snooping and disclosure by rogue system administrators and internet service providers.
+
+Zot allows a wide array of background services in the matrix, from offering friend suggestions, to directory services. You can also perform other things which would typically only be possibly on a centralized provider - such as &quot;Wall to Wall&quot; posts. Priivate/multiple profiles can be easily created, and web content can be tailored to the viewer via the [i]Affinity Slider[/i].
+
+You won't find these features at all on other decentralized communication services. In addition to providing hub (server) decentralization, perhaps the most innovative and interesting Zot feature is its provision of [i]decentralized identity[/i] services.
+
+[b][color= grey][size=20]Identity[/size][/color][/b]
+
+Zot's identity layer is unique. It provides [i]invisible single sign-on[/i] across all sites in the matrix.
+
+It also provides [i]nomadic identity[/i], so that your communications with friends, family, and or anyone else you're communicating with won't be affected by the loss of your primary communication node - either temporarily or permanently.
+
+The important bits of your identity and relationships can be backed up to a thumb drive, or your laptop, and may appear at any node in the matrix at any time - with all your friends and preferences intact.
+
+Crucially, these nomadic instances are kept in sync so any instance can take over if another one is compromised or damaged. This protects you against not only major system failure, but also temporary site overloads and governmental manipulation or censorship.
+
+Nomadic identity, single sign-on, and Red's decentralization of hubs, we believe, introduce a high degree of degree of [i]resiliency[/i] and [i]persistence[/i] in internet communications, that are sorely needed amidst global trends towards corporate centralization, as well as mass and indiscriminate government surveillance and censorship.
+
+As you browse the matrix, viewing channels and their unique content, you are seamlessly authenticated as you go, even across completely different server hubs. No passwords to enter. Nothing to type. You're just greeted by name on every new site you visit.
+
+How does Zot do that? We call it [i]magic-auth[/i], because Red hides the details of the complexities that go into single sign-on logins, and nomadic identities, from the experience of browsing on the matrix. This is one of the design goals of Red: to increase privacy, and freedom on the web, while reducing the complexity and tedium brought by the need to enter new passwords and user names for every different sight that someone might visit online.
+
+You login only once on your home hub (or any nomadic backup hub you have chosen). This allows you to access any authenticated services provided anywhere in the matrix - such as shopping, blogs, forums, and access to private information. This is just like the services offered by large corporate providers with huge user databases; however you can be a member of this community, as well as a server on this network using a $35 Rasberry Pi. Your password isn't stored on a thousand different sites, or even worse, only on a few sites like Google and Facebook, beyond your direct control.
+
+You cannot be silenced. You cannot be removed from the matrix, unless you yourself choose to exit it.
+
+[b][color= grey][size=20]Access Control[/size][/color][/b]
+
+Zot's identity layer allows you to provide fine-grained permissions to any content you wish to publish - and these permissions extend across the Red Matrix. This is like having one super huge website made up of an army of small individual websites - and where each channel in the matrix can completely control their privacy and sharing preferences for any web resources they create.
+
+Currently, the matrix supports communications, photo albums, events, and files. This will be extended in the future to provide content management services (web pages) and cloud storage facilities, such as WebDAV and multi-media libraries. Every object and how it is shared and with whom is completely under your control.
+
+This type of control is available on large corporate providers such as Facebook and Google, because they own the user database. Within the matrix, there is no need for a huge user databaseon your machine - because the matrix [i]is[/i] your user database. It has what is essentially infinite capacity (limited by the total number of hubs online across the internet), and is spread amongst hundreds, and potentially millions of computers.
+
+Access can be granted or denied for any resource, to any channel, or any group of channels; anywhere within the matrix. Others can access your content if you permit them to do so, and they do not even need to have an account on your hub. Your private photos cannot be viewed, because permission really work; they are not an addon that was added as an afterthought. If you aren't on the list of allowed viewers for a particular photo, you aren't going to look at it.
+
+[b][color= grey][size=18]Additional Resources and Links[/size][/color][/b]
+
+For more detailed, technical information about Zot, check out the following links:
+
+ - [url=https://github.com/friendica/red/wiki/Zot---A-High-Level-Overview]A high level overview[/url]
+
+ - [url=https://github.com/friendica/red/wiki/zot]Zot development specification[/url]
+
+ - [url=https://github.com/friendica/red/blob/master/include/zot.php]Zot reference implementation in PHP[/url]
+
+
+Return to the [url=[baseurl]/help/main]Main documentation page[/url] \ No newline at end of file
diff --git a/images/default_profile_photos/blank/175.jpg b/images/default_profile_photos/blank/175.jpg
new file mode 100644
index 000000000..4024d6e88
--- /dev/null
+++ b/images/default_profile_photos/blank/175.jpg
Binary files differ
diff --git a/images/default_profile_photos/blank/48.jpg b/images/default_profile_photos/blank/48.jpg
new file mode 100644
index 000000000..e7c44fcff
--- /dev/null
+++ b/images/default_profile_photos/blank/48.jpg
Binary files differ
diff --git a/images/default_profile_photos/blank/80.jpg b/images/default_profile_photos/blank/80.jpg
new file mode 100644
index 000000000..767e1ee66
--- /dev/null
+++ b/images/default_profile_photos/blank/80.jpg
Binary files differ
diff --git a/images/default_profile_photos/red_koala/175.jpg b/images/default_profile_photos/red_koala/175.jpg
new file mode 100644
index 000000000..e49343b1d
--- /dev/null
+++ b/images/default_profile_photos/red_koala/175.jpg
Binary files differ
diff --git a/images/default_profile_photos/red_koala/48.jpg b/images/default_profile_photos/red_koala/48.jpg
new file mode 100644
index 000000000..90e6d3a10
--- /dev/null
+++ b/images/default_profile_photos/red_koala/48.jpg
Binary files differ
diff --git a/images/default_profile_photos/red_koala/80.jpg b/images/default_profile_photos/red_koala/80.jpg
new file mode 100644
index 000000000..efab04c26
--- /dev/null
+++ b/images/default_profile_photos/red_koala/80.jpg
Binary files differ
diff --git a/include/Contact.php b/include/Contact.php
index 5725e06f0..9883c598d 100644
--- a/include/Contact.php
+++ b/include/Contact.php
@@ -52,24 +52,27 @@ function abook_self($channel_id) {
}
function channelx_by_nick($nick) {
- return q("SELECT * FROM channel left join xchan on channel_hash = xchan_hash WHERE channel_address = '%s' and not ( channel_pageflags & %d ) LIMIT 1",
+ $r = q("SELECT * FROM channel left join xchan on channel_hash = xchan_hash WHERE channel_address = '%s' and not ( channel_pageflags & %d ) LIMIT 1",
dbesc($nick),
intval(PAGE_REMOVED)
);
+ return(($r) ? $r[0] : false);
}
function channelx_by_hash($hash) {
- return q("SELECT * FROM channel left join xchan on channel_hash = xchan_hash WHERE channel_hash = '%s' and not ( channel_pageflags & %d ) LIMIT 1",
+ $r = q("SELECT * FROM channel left join xchan on channel_hash = xchan_hash WHERE channel_hash = '%s' and not ( channel_pageflags & %d ) LIMIT 1",
dbesc($hash),
intval(PAGE_REMOVED)
);
+ return(($r) ? $r[0] : false);
}
function channelx_by_n($id) {
- return q("SELECT * FROM channel left join xchan on channel_hash = xchan_hash WHERE channel_id = %d and not ( channel_pageflags & %d ) LIMIT 1",
+ $r = q("SELECT * FROM channel left join xchan on channel_hash = xchan_hash WHERE channel_id = %d and not ( channel_pageflags & %d ) LIMIT 1",
dbesc($id),
intval(PAGE_REMOVED)
);
+ return(($r) ? $r[0] : false);
}
@@ -77,6 +80,23 @@ function vcard_from_xchan($xchan, $observer = null, $mode = '') {
$a = get_app();
+ if(! $xchan) {
+ if($a->poi) {
+ $xchan = $a->poi;
+ }
+ elseif(is_array($a->profile) && $a->profile['channel_hash']) {
+ $r = q("select * from xchan where xchan_hash = '%s' limit 1",
+ dbesc($a->profile['channel_hash'])
+ );
+ if($r)
+ $xchan = $r[0];
+ }
+ }
+
+ if(! $xchan)
+ return;
+
+// FIXME - show connect button to observer if appropriate
$connect = false;
if(local_user()) {
$r = q("select * from abook where abook_xchan = '%s' and abook_channel = %d limit 1",
@@ -97,7 +117,7 @@ function vcard_from_xchan($xchan, $observer = null, $mode = '') {
return replace_macros(get_markup_template('xchan_vcard.tpl'),array(
'$name' => $xchan['xchan_name'],
- '$photo' => $xchan['xchan_photo_l'],
+ '$photo' => ((is_array($a->profile) && array_key_exists('photo',$a->profile)) ? $a->profile['photo'] : $xchan['xchan_photo_l']),
'$follow' => $xchan['xchan_addr'],
'$connect' => $connect,
'$newwin' => (($mode === 'chanview') ? t('New window') : ''),
@@ -238,7 +258,7 @@ function channel_remove($channel_id, $local = true) {
}
- q("DELETE FROM `group` WHERE `uid` = %d", intval($channel_id));
+ q("DELETE FROM `groups` WHERE `uid` = %d", intval($channel_id));
q("DELETE FROM `group_member` WHERE `uid` = %d", intval($channel_id));
q("DELETE FROM `event` WHERE `uid` = %d", intval($channel_id));
q("DELETE FROM `item` WHERE `uid` = %d", intval($channel_id));
diff --git a/include/ItemObject.php b/include/ItemObject.php
index 6088a2c1c..2922ee473 100644
--- a/include/ItemObject.php
+++ b/include/ItemObject.php
@@ -10,6 +10,7 @@ require_once('boot.php');
/**
* An item
*/
+
class Item extends BaseObject {
public $data = array();
private $template = 'conv_item.tpl';
@@ -170,6 +171,15 @@ class Item extends BaseObject {
);
}
+ $has_bookmarks = false;
+ if(is_array($item['term'])) {
+ foreach($item['term'] as $t) {
+ if($t['type'] == TERM_BOOKMARK)
+ $has_bookmarks = true;
+ }
+ }
+
+
if($this->is_commentable()) {
$like = array( t("I like this \x28toggle\x29"), t("like"));
$dislike = array( t("I don't like this \x28toggle\x29"), t("dislike"));
@@ -217,6 +227,7 @@ class Item extends BaseObject {
'isotime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'c'),
'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'),
'editedtime' => (($item['edited'] != $item['created']) ? sprintf( t('last edited: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['edited'], 'r')) : ''),
+ 'expiretime' => (($item['expires'] !== '0000-00-00 00:00:00') ? sprintf( t('Expires: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['expires'], 'r')):''),
'lock' => $lock,
'verified' => $verified,
'unverified' => $unverified,
@@ -230,11 +241,13 @@ class Item extends BaseObject {
'like' => $like,
'dislike' => ((feature_enabled($conv->get_profile_owner(),'dislike')) ? $dislike : ''),
'share' => $share,
- 'plink' => get_plink($item,$mode),
+ 'rawmid' => $item['mid'],
+ 'plink' => get_plink($item),
'edpost' => ((feature_enabled($conv->get_profile_owner(),'edit_posts')) ? $edpost : ''),
'star' => ((feature_enabled($conv->get_profile_owner(),'star_posts')) ? $star : ''),
'tagger' => ((feature_enabled($conv->get_profile_owner(),'commtag')) ? $tagger : ''),
'filer' => ((feature_enabled($conv->get_profile_owner(),'filing')) ? $filer : ''),
+ 'bookmark' => (($conv->get_profile_owner() == local_user() && $has_bookmarks) ? t('Bookmark Links') : ''),
'drop' => $drop,
'multidrop' => ((feature_enabled($conv->get_profile_owner(),'multi_delete')) ? $multidrop : ''),
// end toolbar buttons
@@ -457,6 +470,11 @@ class Item extends BaseObject {
return $this->template;
}
+
+ private function set_template($t) {
+ $this->template = $t;
+ }
+
/**
* Check if this is a toplevel post
*/
diff --git a/include/account.php b/include/account.php
index ab442ab39..1206223d9 100644
--- a/include/account.php
+++ b/include/account.php
@@ -111,6 +111,7 @@ function create_account($arr) {
$expires = ((x($arr,'expires')) ? intval($arr['expires']) : '0000-00-00 00:00:00');
$default_service_class = get_config('system','default_service_class');
+
if($default_service_class === false)
$default_service_class = '';
@@ -382,11 +383,11 @@ function user_deny($hash) {
if(! count($register))
return false;
- $user = q("SELECT account_id FROM account WHERE account_id = %d LIMIT 1",
+ $account = q("SELECT account_id FROM account WHERE account_id = %d LIMIT 1",
intval($register[0]['uid'])
);
- if(! $user)
+ if(! $account)
return false;
$r = q("DELETE FROM account WHERE account_id = %d LIMIT 1",
@@ -400,3 +401,58 @@ function user_deny($hash) {
return true;
}
+
+
+/**
+ * @function downgrade_accounts()
+ * Checks for accounts that have past their expiration date.
+ * If the account has a service class which is not the site default,
+ * the service class is reset to the site default and expiration reset to never.
+ * If the account has no service class it is expired and subsequently disabled.
+ * called from include/poller.php as a scheduled task.
+ *
+ * Reclaiming resources which are no longer within the service class limits is
+ * not the job of this function, but this can be implemented by plugin if desired.
+ * Default behaviour is to stop allowing additional resources to be consumed.
+ */
+
+
+function downgrade_accounts() {
+
+ $r = q("select * from account where not ( account_flags & %d )
+ and account_expires != '0000-00-00 00:00:00'
+ and account_expires < UTC_TIMESTAMP() ",
+ intval(ACCOUNT_EXPIRED)
+ );
+
+ if(! $r)
+ return;
+
+ $basic = get_config('system','default_service_class');
+
+
+ foreach($r as $rr) {
+
+ if(($basic) && ($rr['account_service_class']) && ($rr['account_service_class'] != $basic)) {
+ $x = q("UPDATE account set account_service_class = '%s', account_expires = '%s'
+ where account_id = %d limit 1",
+ dbesc($basic),
+ dbesc('0000-00-00 00:00:00'),
+ intval($rr['account_id'])
+ );
+ $ret = array('account' => $rr);
+ call_hooks('account_downgrade', $ret );
+ logger('downgrade_accounts: Account id ' . $rr['account_id'] . ' downgraded.');
+ }
+ else {
+ $x = q("UPDATE account SET account_flags = (account_flags | %d) where account_id = %d limit 1",
+ intval(ACCOUNT_EXPIRED),
+ intval($rr['account_id'])
+ );
+ $ret = array('account' => $rr);
+ call_hooks('account_downgrade', $ret);
+ logger('downgrade_accounts: Account id ' . $rr['account_id'] . ' expired.');
+ }
+ }
+}
+
diff --git a/include/acl_selectors.php b/include/acl_selectors.php
index 930f9967a..749ca75eb 100644
--- a/include/acl_selectors.php
+++ b/include/acl_selectors.php
@@ -14,7 +14,7 @@ function group_select($selname,$selclass,$preselected = false,$size = 4) {
$o .= "<select name=\"{$selname}[]\" id=\"$selclass\" class=\"$selclass\" multiple=\"multiple\" size=\"$size\" >\r\n";
- $r = q("SELECT * FROM `group` WHERE `deleted` = 0 AND `uid` = %d ORDER BY `name` ASC",
+ $r = q("SELECT * FROM `groups` WHERE `deleted` = 0 AND `uid` = %d ORDER BY `name` ASC",
intval(local_user())
);
diff --git a/include/activities.php b/include/activities.php
index 73180eae0..4502b758e 100644
--- a/include/activities.php
+++ b/include/activities.php
@@ -24,6 +24,8 @@ function profile_activity($changed, $value) {
$arr['item_flags'] = ITEM_WALL|ITEM_ORIGIN|ITEM_THREAD_TOP;
$arr['verb'] = ACTIVITY_UPDATE;
$arr['obj_type'] = ACTIVITY_OBJ_PROFILE;
+
+ $arr['$plink'] = z_root() . '/channel/' . $self['channel_address'] . '/?f=&mid=' . $arr['mid'];
$A = '[url=' . z_root() . '/channel/' . $self['channel_address'] . ']' . $self['channel_name'] . '[/url]';
diff --git a/include/api.php b/include/api.php
index 093839875..dc270167b 100644
--- a/include/api.php
+++ b/include/api.php
@@ -7,6 +7,7 @@ require_once("oauth.php");
require_once("html2plain.php");
require_once('include/security.php');
require_once('include/photos.php');
+require_once('include/items.php');
/*
*
@@ -362,7 +363,8 @@ require_once('include/photos.php');
'location' => ($usr) ? $usr[0]['channel_location'] : '',
'profile_image_url' => $uinfo[0]['xchan_photo_l'],
'url' => $uinfo[0]['xchan_url'],
- 'contact_url' => $a->get_baseurl()."/connections/".$uinfo[0]['abook_id'],
+//FIXME
+ 'contact_url' => $a->get_baseurl() . "/connections/".$uinfo[0]['abook_id'],
'protected' => false,
'friends_count' => intval($countfriends),
'created_at' => api_date($uinfo[0]['abook_created']),
@@ -555,7 +557,7 @@ require_once('include/photos.php');
function api_photos(&$a,$type) {
$album = $_REQUEST['album'];
- json_return_and_die(photos_list_photos($a->get_channel(),$a->get_observer()),$album);
+ json_return_and_die(photos_list_photos($a->get_channel(),$a->get_observer(),$album));
}
api_register_func('api/red/photos','api_photos', true);
@@ -1241,27 +1243,43 @@ require_once('include/photos.php');
$sql_extra = '';
if ($user_info['self']==1) $sql_extra .= " AND `item`.`wall` = 1 ";
+
+//FIXME - this isn't yet implemented
if ($exclude_replies > 0) $sql_extra .= ' AND `item`.`parent` = `item`.`id`';
- $r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
- `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
- `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn_id`, `contact`.`self`,
- `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
- FROM `item`, `contact`
- WHERE `item`.`uid` = %d
- AND `item`.`contact-id` = %d
- AND `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`deleted` = 0
- AND `contact`.`id` = `item`.`contact-id`
- AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
- $sql_extra
- AND `item`.`id`>%d
- ORDER BY `item`.`received` DESC LIMIT %d ,%d ",
- intval(api_user()),
- intval($user_info['id']),
- intval($since_id),
- intval($start), intval($count)
- );
+// $r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
+// `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
+// `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn_id`, `contact`.`self`,
+// `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
+// FROM `item`, `contact`
+// WHERE `item`.`uid` = %d
+// AND `item`.`contact-id` = %d
+// AND `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`deleted` = 0
+// AND `contact`.`id` = `item`.`contact-id`
+// AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
+// $sql_extra
+// AND `item`.`id`>%d
+// ORDER BY `item`.`received` DESC LIMIT %d ,%d ",
+// intval(api_user()),
+// intval($user_info['id']),
+// intval($since_id),
+// intval($start), intval($count)
+// );
+
+ $arr = array(
+ 'uid' => api_user(),
+ 'since_id' => $since_id,
+ 'start' => $start,
+ 'records' => $count);
+
+ if ($user_info['self']==1)
+ $arr['wall'] = 1;
+ else
+ $arr['cid'] = $user_info['id'];
+
+ $r = items_fetch($arr,get_app()->get_channel(),get_observer_hash());
+
$ret = api_format_items($r,$user_info);
diff --git a/include/attach.php b/include/attach.php
index 0c748cba6..a3ee3f0ef 100644
--- a/include/attach.php
+++ b/include/attach.php
@@ -1,7 +1,8 @@
-<?php /** @file */
+<?php
-/*
- * File/attach API with the potential for revision control.
+/** @file
+ *
+ * @brief File/attach API with the potential for revision control.
*
* TODO: a filesystem storage abstraction which maintains security (and 'data' contains a system filename
* which is inaccessible from the web). This could get around PHP storage limits and store videos and larger
@@ -12,6 +13,15 @@
require_once('include/permissions.php');
require_once('include/security.php');
+/**
+ * @brief Guess the mimetype from file ending.
+ *
+ * This function takes a file name and guess the mimetype from the
+ * filename extension.
+ *
+ * @param $filename a string filename
+ * @return string The mimetype according to a file ending.
+ */
function z_mime_content_type($filename) {
$mime_types = array(
@@ -26,6 +36,7 @@ function z_mime_content_type($filename) {
'xml' => 'application/xml',
'swf' => 'application/x-shockwave-flash',
'flv' => 'video/x-flv',
+ 'epub' => 'application/epub+zip',
// images
'png' => 'image/png',
@@ -80,20 +91,26 @@ function z_mime_content_type($filename) {
return $mime_types[$ext];
}
}
-// can't use this because we're just passing a name, e.g. not a file that can be opened
-// elseif (function_exists('finfo_open')) {
-// $finfo = @finfo_open(FILEINFO_MIME);
-// $mimetype = @finfo_file($finfo, $filename);
-// @finfo_close($finfo);
-// return $mimetype;
-// }
- else {
- return 'application/octet-stream';
- }
-}
+ return 'application/octet-stream';
+
+}
+/**
+ * @brief Count files/attachments.
+ *
+ *
+ * @param $channel_id
+ * @param $observer
+ * @param $hash (optional)
+ * @param $filename (optional)
+ * @param $filetype (optional)
+ * @return array
+ * $ret['success'] boolean
+ * $ret['results'] amount of found results, or false
+ * $ret['message'] string with error messages if any
+ */
function attach_count_files($channel_id, $observer, $hash = '', $filename = '', $filetype = '') {
$ret = array('success' => false);
@@ -125,6 +142,22 @@ function attach_count_files($channel_id, $observer, $hash = '', $filename = '',
}
+/**
+ * @brief Returns a list of files/attachments.
+ *
+ * @param $channel_id
+ * @param $observer
+ * @param $hash (optional)
+ * @param $filename (optional)
+ * @param $filetype (optional)
+ * @param $orderby
+ * @param $start
+ * @param $entries
+ * @return array
+ * $ret['success'] boolean
+ * $ret['results'] array with results, or false
+ * $ret['message'] string with error messages if any
+ */
function attach_list_files($channel_id, $observer, $hash = '', $filename = '', $filetype = '', $orderby = 'created desc', $start = 0, $entries = 0) {
$ret = array('success' => false);
@@ -161,10 +194,17 @@ function attach_list_files($channel_id, $observer, $hash = '', $filename = '', $
}
-// Find an attachment by hash and revision. Returns the entire attach structure including data.
-// This could exhaust memory so most useful only when immediately sending the data.
-
-function attach_by_hash($hash,$rev = 0) {
+/**
+ * @brief Find an attachment by hash and revision.
+ *
+ * Returns the entire attach structure including data.
+ *
+ * This could exhaust memory so most useful only when immediately sending the data.
+ *
+ * @param $hash
+ * @param $rev
+ */
+function attach_by_hash($hash, $rev = 0) {
$ret = array('success' => false);
@@ -185,7 +225,7 @@ function attach_by_hash($hash,$rev = 0) {
return $ret;
}
- if(! perm_is_allowed($r[0]['uid'],get_observer_hash(),'view_storage')) {
+ if(! perm_is_allowed($r[0]['uid'], get_observer_hash(), 'view_storage')) {
$ret['message'] = t('Permission denied.');
return $ret;
}
@@ -193,15 +233,14 @@ function attach_by_hash($hash,$rev = 0) {
$sql_extra = permissions_sql($r[0]['uid']);
// Now we'll see if we can access the attachment
-dbg(1);
$r = q("SELECT * FROM attach WHERE hash = '%s' and uid = %d $sql_extra LIMIT 1",
dbesc($hash),
intval($r[0]['uid'])
);
-dbg(0);
+
if(! $r) {
- $ret['message'] = t('Permission denied.');
+ $ret['message'] = t('Permission denied.');
return $ret;
}
@@ -211,9 +250,16 @@ dbg(0);
}
-
-
-function attach_by_hash_nodata($hash,$rev = 0) {
+/**
+ * @brief Find an attachment by hash and revision.
+ *
+ * Returns the entire attach structure excluding data.
+ *
+ * @see attach_by_hash()
+ * @param $hash
+ * @param $ref
+ */
+function attach_by_hash_nodata($hash, $rev = 0) {
$ret = array('success' => false);
@@ -242,13 +288,13 @@ function attach_by_hash_nodata($hash,$rev = 0) {
// Now we'll see if we can access the attachment
- $r = q("select id, aid, uid, hash, filename, filetype, filesize, revision, folder, flags, created, edited, allow_cid, allow_gid, deny_cid, deny_gid from attach where uid = %d and hash = '%s' $sql_extra limit 1",
+ $r = q("select id, aid, uid, hash, creator, filename, filetype, filesize, revision, folder, flags, created, edited, allow_cid, allow_gid, deny_cid, deny_gid from attach where uid = %d and hash = '%s' $sql_extra limit 1",
intval($r[0]['uid']),
dbesc($hash)
);
if(! $r) {
- $ret['message'] = t('Permission denied.');
+ $ret['message'] = t('Permission denied.');
return $ret;
}
@@ -258,17 +304,21 @@ function attach_by_hash_nodata($hash,$rev = 0) {
}
-
-
-
-function attach_store($channel,$observer_hash,$options = '',$arr = null) {
-
+/**
+ * @brief
+ *
+ * @param $channel channel array of owner
+ * @param $observer_hash hash of current observer
+ * @param $options (optional)
+ * @param $arr (optional)
+ */
+function attach_store($channel, $observer_hash, $options = '', $arr = null) {
$ret = array('success' => false);
$channel_id = $channel['channel_id'];
$sql_options = '';
- if(! perm_is_allowed($channel_id,get_observer_hash(),'write_storage')) {
+ if(! perm_is_allowed($channel_id,get_observer_hash(), 'write_storage')) {
$ret['message'] = t('Permission denied.');
return $ret;
}
@@ -312,7 +362,7 @@ function attach_store($channel,$observer_hash,$options = '',$arr = null) {
if($options === 'update' && $arr && array_key_exists('revision',$arr))
$sql_options = " and revision = " . intval($arr['revision']) . " ";
- $x =q("select id, aid, uid, filename, filetype, filesize, hash, revision, folder, flags, created, edited, allow_cid, allow_gid, deny_cid, deny_gid from attach where hash = '%s' and uid = %d $sql_options limit 1",
+ $x = q("select id, aid, uid, filename, filetype, filesize, hash, revision, folder, flags, created, edited, allow_cid, allow_gid, deny_cid, deny_gid from attach where hash = '%s' and uid = %d $sql_options limit 1",
dbesc($arr['hash']),
intval($channel_id)
);
@@ -333,13 +383,14 @@ function attach_store($channel,$observer_hash,$options = '',$arr = null) {
return $ret;
}
- $limit = service_class_fetch($channel_id,'attach_upload_limit');
+ $limit = service_class_fetch($channel_id, 'attach_upload_limit');
+
if($limit !== false) {
- $r = q("select sum(filesize) as total from attach where uid = %d ",
- intval($channel_id)
+ $r = q("select sum(filesize) as total from attach where aid = %d ",
+ intval($channel['channel_account_id'])
);
if(($r) && (($r[0]['total'] + $filesize) > ($limit - $existing_size))) {
- $ret['message'] = upgrade_message(true).sprintf(t("You have reached your limit of %1$.0f Mbytes attachment storage."),$limit / 1024000);
+ $ret['message'] = upgrade_message(true) . sprintf(t("You have reached your limit of %1$.0f Mbytes attachment storage."), $limit / 1024000);
@unlink($src);
return $ret;
}
@@ -363,11 +414,12 @@ function attach_store($channel,$observer_hash,$options = '',$arr = null) {
);
}
elseif($options === 'revise') {
- $r = q("insert into attach ( aid, uid, hash, filename, filetype, filesize, revision, data, created, edited, allow_cid, allow_gid, deny_cid, deny_gid )
- VALUES ( %d, %d, '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ",
+ $r = q("insert into attach ( aid, uid, hash, creator, filename, filetype, filesize, revision, data, created, edited, allow_cid, allow_gid, deny_cid, deny_gid )
+ VALUES ( %d, %d, '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ",
intval($x[0]['aid']),
intval($channel_id),
dbesc($x[0]['hash']),
+ dbesc(get_observer_hash()),
dbesc($filename),
dbesc($mimetype),
intval($filesize),
@@ -381,7 +433,6 @@ function attach_store($channel,$observer_hash,$options = '',$arr = null) {
dbesc($x[0]['deny_gid'])
);
}
-
elseif($options === 'update') {
$r = q("update attach set filename = '%s', filetype = '%s', edited = '%s',
allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s' where id = %d and uid = %d limit 1",
@@ -396,13 +447,13 @@ function attach_store($channel,$observer_hash,$options = '',$arr = null) {
intval($x[0]['uid'])
);
}
-
else {
- $r = q("INSERT INTO attach ( aid, uid, hash, filename, filetype, filesize, revision, data, created, edited, allow_cid, allow_gid,deny_cid, deny_gid )
- VALUES ( %d, %d, '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ",
+ $r = q("INSERT INTO attach ( aid, uid, hash, creator, filename, filetype, filesize, revision, data, created, edited, allow_cid, allow_gid,deny_cid, deny_gid )
+ VALUES ( %d, %d, '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ",
intval($channel['channel_account_id']),
intval($channel_id),
dbesc($hash),
+ dbesc(get_observer_hash()),
dbesc($filename),
dbesc($mimetype),
intval($filesize),
@@ -427,7 +478,7 @@ function attach_store($channel,$observer_hash,$options = '',$arr = null) {
// Caution: This re-uses $sql_options set further above
- $r = q("select id, aid, uid, hash, filename, filetype, filesize, revision, folder, flags, created, edited, allow_cid, allow_gid, deny_cid, deny_gid from attach where uid = %d and hash = '%s' $sql_options limit 1",
+ $r = q("select id, aid, uid, hash, creator, filename, filetype, filesize, revision, folder, flags, created, edited, allow_cid, allow_gid, deny_cid, deny_gid from attach where uid = %d and hash = '%s' $sql_options limit 1",
intval($channel_id),
dbesc($hash)
);
@@ -442,12 +493,11 @@ function attach_store($channel,$observer_hash,$options = '',$arr = null) {
return $ret;
}
-
/**
* Read a virtual directory and return contents, checking permissions of all parent components.
* @function z_readdir
* @param integer $channel_id
- * @param string $observer_hash
+ * @param string $observer_hash hash of current observer
* @param string $pathname
* @param string $parent_hash (optional)
*
@@ -456,18 +506,16 @@ function attach_store($channel,$observer_hash,$options = '',$arr = null) {
* $ret['message'] = error message if success is false
* $ret['data'] = array of attach DB entries without data component
*/
-
-function z_readdir($channel_id,$observer_hash,$pathname, $parent_hash = '') {
+function z_readdir($channel_id, $observer_hash, $pathname, $parent_hash = '') {
$ret = array('success' => false);
- if(! perm_is_allowed($r[0]['uid'],get_observer_hash(),'view_storage')) {
+ if(! perm_is_allowed($r[0]['uid'], get_observer_hash(), 'view_storage')) {
$ret['message'] = t('Permission denied.');
return $ret;
}
-
- if(strpos($pathname,'/')) {
- $paths = explode('/',$pathname);
+ if(strpos($pathname, '/')) {
+ $paths = explode('/', $pathname);
if(count($paths) > 1) {
$curpath = array_shift($paths);
@@ -481,13 +529,13 @@ function z_readdir($channel_id,$observer_hash,$pathname, $parent_hash = '') {
return $ret;
}
- return z_readdir($channel_id,$observer_hash,implode('/',$paths),$r[0]['hash']);
+ return z_readdir($channel_id, $observer_hash, implode('/', $paths), $r[0]['hash']);
}
}
else
$paths = array($pathname);
- $r = q("select id, aid, uid, hash, filename, filetype, filesize, revision, folder, flags, created, edited, allow_cid, allow_gid, deny_cid, deny_gid from attach where id = %d and folder = '%s' and filename = '%s' and (flags & %d ) " . permissions_sql($channel_id),
+ $r = q("select id, aid, uid, hash, creator, filename, filetype, filesize, revision, folder, flags, created, edited, allow_cid, allow_gid, deny_cid, deny_gid from attach where id = %d and folder = '%s' and filename = '%s' and (flags & %d ) " . permissions_sql($channel_id),
intval($channel_id),
dbesc($parent_hash),
dbesc($paths[0]),
@@ -502,20 +550,17 @@ function z_readdir($channel_id,$observer_hash,$pathname, $parent_hash = '') {
return $ret;
}
-
/**
* @function attach_mkdir($channel,$observer_hash,$arr);
*
- * Create directory
+ * @brief Create directory.
*
* @param $channel channel array of owner
* @param $observer_hash hash of current observer
* @param $arr parameter array to fulfil request
- *
* Required:
* $arr['filename']
* $arr['folder'] // hash of parent directory, empty string for root directory
- *
* Optional:
* $arr['hash'] // precumputed hash for this node
* $arr['allow_cid']
@@ -523,19 +568,20 @@ function z_readdir($channel_id,$observer_hash,$pathname, $parent_hash = '') {
* $arr['deny_cid']
* $arr['deny_gid']
*/
-
-function attach_mkdir($channel,$observer_hash,$arr = null) {
+function attach_mkdir($channel, $observer_hash, $arr = null) {
$ret = array('success' => false);
$channel_id = $channel['channel_id'];
$sql_options = '';
$basepath = 'store/' . $channel['channel_address'];
- if(! is_dir($basepath))
- @mkdir($basepath,STORAGE_DEFAULT_PERMISSIONS,true);
+ logger('attach_mkdir: basepath: ' . $basepath);
+
+ if(! is_dir($basepath))
+ mkdir($basepath,STORAGE_DEFAULT_PERMISSIONS, true);
- if(! perm_is_allowed($channel_id, get_observer_hash(),'write_storage')) {
+ if(! perm_is_allowed($channel_id, $observer_hash, 'write_storage')) {
$ret['message'] = t('Permission denied.');
return $ret;
}
@@ -545,10 +591,8 @@ function attach_mkdir($channel,$observer_hash,$arr = null) {
return $ret;
}
-
$arr['hash'] = (($arr['hash']) ? $arr['hash'] : random_string());
-
// Check for duplicate name.
// Check both the filename and the hash as we will be making use of both.
@@ -571,7 +615,7 @@ function attach_mkdir($channel,$observer_hash,$arr = null) {
$lpath = '';
$lfile = $arr['folder'];
- $sql_options = permissions_sql($channel);
+ $sql_options = permissions_sql($channel['channel_id']);
do {
$r = q("select filename, hash, flags, folder from attach where uid = %d and hash = '%s' and ( flags & %d )
@@ -580,7 +624,9 @@ function attach_mkdir($channel,$observer_hash,$arr = null) {
dbesc($lfile),
intval(ATTACH_FLAG_DIR)
);
+
if(! $r) {
+ logger('attach_mkdir: hash ' . $lfile . ' not found in ' . $lpath);
$ret['message'] = t('Path not found.');
return $ret;
}
@@ -589,7 +635,6 @@ function attach_mkdir($channel,$observer_hash,$arr = null) {
$lfile = $r[0]['folder'];
} while ( ($r[0]['folder']) && ($r[0]['flags'] & ATTACH_FLAG_DIR)) ;
$path = $basepath . '/' . $lpath;
-
}
else
$path = $basepath . '/';
@@ -598,28 +643,29 @@ function attach_mkdir($channel,$observer_hash,$arr = null) {
$created = datetime_convert();
- $r = q("INSERT INTO attach ( aid, uid, hash, filename, filetype, filesize, revision, folder, flags, data, created, edited, allow_cid, allow_gid, deny_cid, deny_gid )
- VALUES ( %d, %d, '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ",
+ $r = q("INSERT INTO attach ( aid, uid, hash, creator, filename, filetype, filesize, revision, folder, flags, data, created, edited, allow_cid, allow_gid, deny_cid, deny_gid )
+ VALUES ( %d, %d, '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ",
intval($channel['channel_account_id']),
intval($channel_id),
dbesc($arr['hash']),
+ dbesc(get_observer_hash()),
dbesc($arr['filename']),
dbesc('multipart/mixed'),
intval(0),
intval(0),
dbesc($arr['folder']),
- intval(ATTACH_FLAG_DIR),
- dbesc(''),
+ intval(ATTACH_FLAG_DIR|ATTACH_FLAG_OS),
+ dbesc($path),
dbesc($created),
dbesc($created),
- dbesc(($arr && array_key_exists('allow_cid',$arr)) ? $arr['allow_cid'] : ''),
- dbesc(($arr && array_key_exists('allow_gid',$arr)) ? $arr['allow_gid'] : ''),
- dbesc(($arr && array_key_exists('deny_cid',$arr)) ? $arr['deny_cid'] : ''),
- dbesc(($arr && array_key_exists('deny_gid',$arr)) ? $arr['deny_gid'] : '')
+ dbesc(($arr && array_key_exists('allow_cid',$arr)) ? $arr['allow_cid'] : $channel['channel_allow_cid']),
+ dbesc(($arr && array_key_exists('allow_gid',$arr)) ? $arr['allow_gid'] : $channel['channel_allow_gid']),
+ dbesc(($arr && array_key_exists('deny_cid',$arr)) ? $arr['deny_cid'] : $channel['channel_deny_cid']),
+ dbesc(($arr && array_key_exists('deny_gid',$arr)) ? $arr['deny_gid'] : $channel['channel_deny_gid'])
);
if($r) {
- if(mkdir($path,STORAGE_DEFAULT_PERMISSIONS)) {
+ if(mkdir($path,STORAGE_DEFAULT_PERMISSIONS, true)) {
$ret['success'] = true;
$ret['data'] = $arr;
}
@@ -633,4 +679,169 @@ function attach_mkdir($channel,$observer_hash,$arr = null) {
return $ret;
-} \ No newline at end of file
+}
+
+/**
+ * @brief Changes permissions of a file.
+ *
+ * @param $channel_id
+ * @param $resource
+ * @param $allow_cid
+ * @param $allow_gid
+ * @param $deny_cid
+ * @param $deny_gid
+ * @param $recurse
+ */
+function attach_change_permissions($channel_id, $resource, $allow_cid, $allow_gid, $deny_cid, $deny_gid, $recurse = false) {
+
+ $r = q("select hash, flags from attach where hash = '%s' and uid = %d limit 1",
+ dbesc($resource),
+ intval($channel_id)
+ );
+
+ if(! $r)
+ return;
+
+ if($r[0]['flags'] & ATTACH_FLAG_DIR) {
+ if($recurse) {
+ $r = q("select hash, flags from attach where folder = '%s' and uid = %d",
+ dbesc($resource),
+ intval($channel_id)
+ );
+ if($r) {
+ foreach($r as $rr) {
+ attach_change_permissions($channel_id, $resource, $allow_cid, $allow_gid, $deny_cid, $deny_gid, $recurse);
+ }
+ }
+ }
+ }
+
+ $x = q("update attach set allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s' where hash = '%s' and uid = %d limit 1",
+ dbesc($allow_cid),
+ dbesc($allow_gid),
+ dbesc($deny_cid),
+ dbesc($deny_gid),
+ dbesc($resource),
+ intval($channel_id)
+ );
+
+ return;
+}
+
+/**
+ * @brief Delete a file.
+ *
+ * @param $channel_id
+ * @param $resource
+ */
+function attach_delete($channel_id, $resource) {
+
+
+ $c = q("select channel_address from channel where channel_id = %d limit 1",
+ intval($channel_id)
+ );
+
+ $channel_address = (($c) ? $c[0]['channel_address'] : 'notfound');
+
+ $r = q("select hash, flags from attach where hash = '%s' and uid = %d limit 1",
+ dbesc($resource),
+ intval($channel_id)
+ );
+
+
+ if(! $r)
+ return;
+
+ if($r[0]['flags'] & ATTACH_FLAG_DIR) {
+ $x = q("select hash, flags from attach where folder = '%s' and uid = %d",
+ dbesc($resource),
+ intval($channel_id)
+ );
+ if($x) {
+ foreach($x as $xx) {
+ attach_delete($channel_id, $xx['hash']);
+ }
+ }
+ }
+ if($r[0]['flags'] & ATTACH_FLAG_OS) {
+ $y = q("select data from attach where hash = '%s' and uid = %d limit 1",
+ dbesc($resource),
+ intval($channel_id)
+ );
+
+ if($y) {
+ $f = 'store/' . $channel_address . '/' . $y[0]['data'];
+ if(is_dir($f))
+ @rmdir($f);
+ elseif(file_exists($f))
+ unlink($f);
+ }
+ }
+
+ $z = q("delete from attach where hash = '%s' and uid = %d limit 1",
+ dbesc($resource),
+ intval($channel_id)
+ );
+
+ return;
+}
+
+/**
+ * @brief Returns path to file in cloud/.
+ *
+ * @param $arr
+ * @return string with the path the file to cloud/
+ */
+function get_cloudpath($arr) {
+
+ $basepath = 'cloud/';
+ if($arr['uid']) {
+ $r = q("select channel_address from channel where channel_id = %d limit 1",
+ intval($arr['uid'])
+ );
+ if($r)
+ $basepath .= $r[0]['channel_address'] . '/';
+ }
+
+ $path = $basepath;
+
+ if($arr['folder']) {
+
+ $lpath = '';
+ $lfile = $arr['folder'];
+
+ do {
+ $r = q("select filename, hash, flags, folder from attach where uid = %d and hash = '%s' and ( flags & %d )
+ limit 1",
+ intval($arr['uid']),
+ dbesc($lfile),
+ intval(ATTACH_FLAG_DIR)
+ );
+
+ if(! $r)
+ break;
+
+ if($lfile)
+ $lpath = $r[0]['filename'] . '/' . $lpath;
+ $lfile = $r[0]['folder'];
+
+ } while ( ($r[0]['folder']) && ($r[0]['flags'] & ATTACH_FLAG_DIR)) ;
+
+ $path .= $lpath;
+ }
+
+ $path .= $arr['filename'];
+ return $path;
+}
+
+/**
+ *
+ * @param $in
+ * @param $out
+ */
+function pipe_streams($in, $out) {
+ $size = 0;
+ while (!feof($in))
+ $size += fwrite($out, fread($in,8192));
+ return $size;
+}
diff --git a/include/auth.php b/include/auth.php
index c0002e6c1..c21705c99 100644
--- a/include/auth.php
+++ b/include/auth.php
@@ -34,6 +34,7 @@ function nuke_session() {
*/
function account_verify_password($email,$pass) {
+
$r = q("select * from account where account_email = '%s'",
dbesc($email)
);
@@ -46,19 +47,28 @@ function account_verify_password($email,$pass) {
return $record;
}
}
- logger('password failed for ' . $email);
+ $error = 'password failed for ' . $email;
+ logger($error);
+ // Also log failed logins to a separate auth log to reduce overhead for server side intrusion prevention
+ $authlog = get_config('system', 'authlog');
+ if ($authlog)
+ @file_put_contents($authlog, datetime_convert() . ':' . session_id() . ' ' . $error . "\n", FILE_APPEND);
+
return null;
}
-// login/logout
-
-
+/**
+ * Inline - not a function
+ * look for auth parameters or re-validate an existing session
+ * also handles logout
+ */
+if((isset($_SESSION)) && (x($_SESSION,'authenticated')) && ((! (x($_POST,'auth-params'))) || ($_POST['auth-params'] !== 'login'))) {
-if((isset($_SESSION)) && (x($_SESSION,'authenticated')) && ((! (x($_POST,'auth-params'))) || ($_POST['auth-params'] !== 'login'))) {
+ // process a logout request
if(((x($_POST,'auth-params')) && ($_POST['auth-params'] === 'logout')) || ($a->module === 'logout')) {
@@ -70,6 +80,8 @@ if((isset($_SESSION)) && (x($_SESSION,'authenticated')) && ((! (x($_POST,'auth-p
goaway(z_root());
}
+ // re-validate a visitor, optionally invoke "su" if permitted to do so
+
if(x($_SESSION,'visitor_id') && (! x($_SESSION,'uid'))) {
// if our authenticated guest is allowed to take control of the admin channel, make it so.
$admins = get_config('system','remote_admin');
@@ -86,7 +98,7 @@ if((isset($_SESSION)) && (x($_SESSION,'authenticated')) && ((! (x($_POST,'auth-p
}
}
- $r = q("select * from hubloc left join xchan on xchan_hash = hubloc_hash where hubloc_hash = '%s' limit 1",
+ $r = q("select * from xchan left join hubloc on xchan_hash = hubloc_hash where xchan_hash = '%s' limit 1",
dbesc($_SESSION['visitor_id'])
);
if($r) {
@@ -99,9 +111,11 @@ if((isset($_SESSION)) && (x($_SESSION,'authenticated')) && ((! (x($_POST,'auth-p
$a->set_groups(init_groups_visitor($_SESSION['visitor_id']));
}
+ // already logged in user returning
+
if(x($_SESSION,'uid') || x($_SESSION,'account_id')) {
- // already logged in user returning
+ // first check if we're enforcing that sessions can't change IP address
$check = get_config('system','paranoia');
// extra paranoia - if the IP changed, log them out
@@ -143,6 +157,8 @@ else {
nuke_session();
}
+ // handle a fresh login request
+
if((x($_POST,'password')) && strlen($_POST['password']))
$encrypted = hash('whirlpool',trim($_POST['password']));
@@ -181,12 +197,18 @@ else {
notice( t('Failed authentication') . EOL);
}
- logger('authenticate: ' . print_r(get_app()->account,true));
+ logger('authenticate: ' . print_r(get_app()->account,true), LOGGER_DEBUG);
}
if((! $record) || (! count($record))) {
- logger('authenticate: failed login attempt: ' . notags(trim($_POST['username'])) . ' from IP ' . $_SERVER['REMOTE_ADDR']);
+ $error = 'authenticate: failed login attempt: ' . notags(trim($_POST['username'])) . ' from IP ' . $_SERVER['REMOTE_ADDR'];
+ logger($error);
+ // Also log failed logins to a separate auth log to reduce overhead for server side intrusion prevention
+ $authlog = get_config('system', 'authlog');
+ if ($authlog)
+ @file_put_contents($authlog, datetime_convert() . ':' . session_id() . ' ' . $error . "\n", FILE_APPEND);
+
notice( t('Login failed.') . EOL );
goaway(z_root());
}
@@ -217,3 +239,13 @@ else {
authenticate_success($record, true, true);
}
}
+
+
+function match_openid($authid) {
+ $r = q("select * from pconfig where cat = 'system' and k = 'openid' and v = '%s' limit 1",
+ dbesc($authid)
+ );
+ if($r)
+ return $r[0]['uid'];
+ return false;
+}
diff --git a/include/bbcode.php b/include/bbcode.php
index 271cace73..8bbf7ae01 100644
--- a/include/bbcode.php
+++ b/include/bbcode.php
@@ -16,6 +16,40 @@ function tryoembed($match) {
return $html;
}
+function tryzrlaudio($match) {
+
+ $link = $match[1];
+ $m = @parse_url($link);
+ $zrl = false;
+ if($m['host']) {
+ $r = q("select hubloc_url from hubloc where hubloc_host = '%s' limit 1",
+ dbesc($m['host'])
+ );
+ if($r)
+ $zrl = true;
+ }
+ if($zrl)
+ $link = zid($link);
+ return '<audio src="' . $link . '" controls="controls" ><a href="' . $link . '">' . $link . '</a></audio>';
+}
+
+function tryzrlvideo($match) {
+ $link = $match[1];
+ $m = @parse_url($link);
+ $zrl = false;
+ if($m['host']) {
+ $r = q("select hubloc_url from hubloc where hubloc_host = '%s' limit 1",
+ dbesc($m['host'])
+ );
+ if($r)
+ $zrl = true;
+ }
+ if($zrl)
+ $link = zid($link);
+ return '<video src="' . $link . '" controls="controls" width="' . get_app()->videowidth . '" height="' . $a->videoheight . '"><a href="' . $link . '">' . $link . '</a></video>';
+
+}
+
// [noparse][i]italic[/i][/noparse] turns into
// [noparse][ i ]italic[ /i ][/noparse],
// to hide them from parser.
@@ -105,21 +139,24 @@ function bb_parse_crypt($match) {
$attributes = $match[1];
$algorithm = "";
+
preg_match("/alg='(.*?)'/ism", $attributes, $matches);
if ($matches[1] != "")
- $algorithm = html_entity_decode($matches[1],ENT_QUOTES,'UTF-8');
+ $algorithm = $matches[1];
preg_match("/alg=\&quot\;(.*?)\&quot\;/ism", $attributes, $matches);
if ($matches[1] != "")
- $algorithm = html_entity_decode($matches[1],ENT_QUOTES,'UTF-8');
+ $algorithm = $matches[1];
$hint = "";
+
+
preg_match("/hint='(.*?)'/ism", $attributes, $matches);
if ($matches[1] != "")
- $hint = html_entity_decode($matches[1],ENT_QUOTES,'UTF-8');
+ $hint = $matches[1];
preg_match("/hint=\&quot\;(.*?)\&quot\;/ism", $attributes, $matches);
if ($matches[1] != "")
- $hint = html_entity_decode($matches[1],ENT_QUOTES,'UTF-8');
+ $hint = $matches[1];
$x = random_string();
@@ -129,6 +166,9 @@ function bb_parse_crypt($match) {
}
+function bb_qr($match) {
+ return '<img class="zrl" src="' . z_root() . '/photo/qr?f=&qr=' . urlencode($match[1]) . '" alt="' . t('QR code') . '" title="' . htmlspecialchars($match[1],ENT_QUOTES,'UTF-8') . '" />';
+}
function bb_ShareAttributes($match) {
@@ -183,6 +223,17 @@ function bb_ShareAttributes($match) {
return($text);
}
+function bb_location($match) {
+ // not yet implemented
+}
+
+function bbiframe($match) {
+ $a = get_app();
+ if(strpos($match[1],get_app()->get_hostname()))
+ return '<a href="' . $match[1] . '">' . $match[1] . '</a>';
+ return '<iframe src="' . $match[1] . '" width="' . $a->videowidth . '" height="' . $a->videoheight . '"><a href="' . $match[1] . '">' . $match[1] . '</a></iframe>';
+}
+
function bb_ShareAttributesSimple($match) {
$attributes = $match[1];
@@ -218,6 +269,56 @@ function rpost_callback($match) {
}
}
+function bb_sanitize_style($input) {
+ //whitelist property limits (0 = no limitation)
+ $w = array( // color properties
+ "color" => 0,
+ "background-color" => 0,
+ // box properties
+ "padding" => array("px"=>100, "%"=>0, "em"=>2, "ex"=>2, "mm"=>0, "cm"=>0, "in"=>0, "pt"=>0, "pc"=>0),
+ "margin" => array("px"=>100, "%"=>0, "em"=>2, "ex"=>2, "mm"=>0, "cm"=>0, "in"=>0, "pt"=>0, "pc"=>0),
+ "border" => array("px"=>100, "%"=>0, "em"=>2, "ex"=>2, "mm"=>0, "cm"=>0, "in"=>0, "pt"=>0, "pc"=>0),
+ "float" => 0,
+ "clear" => 0,
+ // text properties
+ "text-decoration" => 0,
+
+ );
+
+ $css_string = $input[1];
+ $a = explode(';',$css_string);
+ foreach($a as $parts){
+ list($k, $v) = explode(':', $parts);
+ $css[ trim($k) ] = trim($v);
+ }
+
+ // sanitize properties
+ $b = array_merge(array_diff_key($css, $w), array_diff_key($w, $css));
+ $css = array_diff_key($css, $b);
+
+ foreach($css as $key => $value) {
+ if($w[$key] != null) {
+ foreach($w[$key] as $limit_key => $limit_value) {
+ //sanitize values
+ if(strpos($value, $limit_key)) {
+ $value = preg_replace_callback(
+ "/(\S.*?)$limit_key/ism",
+ function($match) use($limit_value, $limit_key) {
+ if($match[1] > $limit_value) {
+ return $limit_value . $limit_key;
+ } else {
+ return $match[1] . $limit_key;
+ }
+ },
+ $value
+ );
+ }
+ }
+ }
+ $css_string_san .= $key . ":" . $value ."; ";
+ }
+ return "<span style=\"" . $css_string_san . "\">" . $input[2] . "</span>";
+}
// BBcode 2 HTML was written by WAY2WEB.net
// extended to work with Mistpark/Friendica/Red - Mike Macgirvin
@@ -226,15 +327,6 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
$a = get_app();
- // Extract the private images which use data url's since preg has issues with
- // large data sizes. Stash them away while we do bbcode conversion, and then put them back
- // in after we've done all the regex matching. We cannot use any preg functions to do this.
-
- $extracted = bb_extract_images($Text);
- $Text = $extracted['body'];
- $saved_image = $extracted['images'];
-
-
// Move all spaces out of the tags
$Text = preg_replace("/\[(\w*)\](\s*)/ism", '$2[$1]', $Text);
$Text = preg_replace("/(\s*)\[\/(\w*)\]/ism", '[/$2]$1', $Text);
@@ -250,6 +342,11 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
$Text = preg_replace_callback("/\[pre\](.*?)\[\/pre\]/ism", 'bb_spacefy',$Text);
}
+// Not yet implemented - thinking this should display a map or perhaps be a map directive
+// if (strpos($Text,'[location]') !== false) {
+// $Text = preg_replace_callback("/\[location\](.*?)\[\/location\]/ism", 'bb_location',$Text);
+// }
+
// If we find any event code, turn it into an event.
@@ -260,6 +357,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
// process [observer] tags before we do anything else because we might
// be stripping away stuff that then doesn't need to be worked on anymore
+
$observer = $a->get_observer();
if ((strpos($Text,'[/observer]') !== false) || (strpos($Text,'[/rpost]') !== false)) {
if ($observer) {
@@ -273,6 +371,21 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
}
}
+ $channel = $a->get_channel();
+ if (strpos($Text,'[/channel]') !== false) {
+ if ($channel) {
+ $Text = preg_replace("/\[channel\=1\](.*?)\[\/channel\]/ism", '$1', $Text);
+ $Text = preg_replace("/\[channel\=0\].*?\[\/channel\]/ism", '', $Text);
+ } else {
+ $Text = preg_replace("/\[channel\=1\].*?\[\/channel\]/ism", '', $Text);
+ $Text = preg_replace("/\[channel\=0\](.*?)\[\/channel\]/ism", '$1', $Text);
+ }
+ }
+
+
+ $Text = str_replace(array('[baseurl]','[sitename]'),array(z_root(),get_config('system','sitename')),$Text);
+
+
// Replace any html brackets with HTML Entities to prevent executing HTML or script
// Don't use strip_tags here because it breaks [url] search by replacing & with amp
@@ -325,6 +438,12 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
if (strpos($Text,'http') !== false) {
$Text = preg_replace("/([^\]\='".'"'."]|^)(https?\:\/\/$urlchars+)/ism", '$1<a href="$2" >$2</a>', $Text);
}
+
+ if (strpos($Text,'[/qr]') !== false) {
+ $Text = preg_replace_callback("/\[qr\](.*?)\[\/qr\]/ism","bb_qr",$Text);
+ }
+
+
if (strpos($Text,'[/share]') !== false) {
$Text = preg_replace_callback("/\[share(.*?)\](.*?)\[\/share\]/ism","bb_ShareAttributes",$Text);
}
@@ -334,10 +453,14 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
}
}
if (strpos($Text,'[/url]') !== false) {
+ $Text = preg_replace("/\#\^\[url\]([$URLSearchString]*)\[\/url\]/ism", '<span class="bookmark-identifier">#^</span><a class="bookmark" href="$1" >$1</a>', $Text);
+ $Text = preg_replace("/\#\^\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '<span class="bookmark-identifier">#^</span><a class="bookmark" href="$1" >$2</a>', $Text);
$Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/ism", '<a href="$1" >$1</a>', $Text);
$Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '<a href="$1" >$2</a>', $Text);
}
if (strpos($Text,'[/zrl]') !== false) {
+ $Text = preg_replace("/\#\^\[zrl\]([$URLSearchString]*)\[\/zrl\]/ism", '<span class="bookmark-identifier">#^</span><a class="zrl bookmark" href="$1" >$1</a>', $Text);
+ $Text = preg_replace("/\#\^\[zrl\=([$URLSearchString]*)\](.*?)\[\/zrl\]/ism", '<span class="bookmark-identifier">#^</span><a class="zrl bookmark" href="$1" >$2</a>', $Text);
$Text = preg_replace("/\[zrl\]([$URLSearchString]*)\[\/zrl\]/ism", '<a class="zrl" href="$1" >$1</a>', $Text);
$Text = preg_replace("/\[zrl\=([$URLSearchString]*)\](.*?)\[\/zrl\]/ism", '<a class="zrl" href="$1" >$2</a>', $Text);
}
@@ -383,14 +506,6 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
// Check for list text
$Text = str_replace("[*]", "<li>", $Text);
- // Check for style sheet commands
- if (strpos($Text,'[/style]') !== false) {
- $Text = preg_replace("(\[style=(.*?)\](.*?)\[\/style\])ism","<span style=\"$1;\">$2</span>",$Text);
- }
- // Check for CSS classes
- if (strpos($Text,'[/class]') !== false) {
- $Text = preg_replace("(\[class=(.*?)\](.*?)\[\/class\])ism","<span class=\"$1\">$2</span>",$Text);
- }
// handle nested lists
$endlessloop = 0;
@@ -418,7 +533,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
if (strpos($Text,'[tr]') !== false) {
$Text = preg_replace("/\[tr\](.*?)\[\/tr\]/sm", '<tr>$1</tr>' ,$Text);
}
- if (strpos($Text,'[table]') !== false) {
+ if (strpos($Text,'[/table]') !== false) {
$Text = preg_replace("/\[table\](.*?)\[\/table\]/sm", '<table>$1</table>' ,$Text);
$Text = preg_replace("/\[table border=1\](.*?)\[\/table\]/sm", '<table border="1" >$1</table>' ,$Text);
$Text = preg_replace("/\[table border=0\](.*?)\[\/table\]/sm", '<table border="0" >$1</table>' ,$Text);
@@ -480,36 +595,74 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
"<br /><strong class=".'"author"'.">" . $t_wrote . "</strong><blockquote>$2</blockquote>",
$Text);
- // [img=widthxheight]image source[/img]
- //$Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '<img src="$3" style="height: $2px; width: $1px;" >', $Text);
- if (strpos($Text,'[/img]') !== false) {
- $Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '<img src="$3" style="width: $1px;" >', $Text);
- }
- if (strpos($Text,'[/zmg]') !== false) {
- $Text = preg_replace("/\[zmg\=([0-9]*)x([0-9]*)\](.*?)\[\/zmg\]/ism", '<img class="zrl" src="$3" style="width: $1px;" >', $Text);
- }
// Images
// [img]pathtoimage[/img]
- if (strpos($Text,'[/img]') !== false) {
+ if (strpos($Text,'[/img]') !== false) {
$Text = preg_replace("/\[img\](.*?)\[\/img\]/ism", '<img src="$1" alt="' . t('Image/photo') . '" />', $Text);
}
- if (strpos($Text,'[/zmg]') !== false) {
+ if (strpos($Text,'[/zmg]') !== false) {
$Text = preg_replace("/\[zmg\](.*?)\[\/zmg\]/ism", '<img class="zrl" src="$1" alt="' . t('Image/photo') . '" />', $Text);
}
+ // [img float={left, right}]pathtoimage[/img]
+ if (strpos($Text,'[/img]') !== false) {
+ $Text = preg_replace("/\[img float=left\](.*?)\[\/img\]/ism", '<img src="$1" style="float: left;" alt="' . t('Image/photo') . '" />', $Text);
+ }
+ if (strpos($Text,'[/img]') !== false) {
+ $Text = preg_replace("/\[img float=right\](.*?)\[\/img\]/ism", '<img src="$1" style="float: right;" alt="' . t('Image/photo') . '" />', $Text);
+ }
+ if (strpos($Text,'[/zmg]') !== false) {
+ $Text = preg_replace("/\[zmg float=left\](.*?)\[\/zmg\]/ism", '<img class="zrl" src="$1" style="float: left;" alt="' . t('Image/photo') . '" />', $Text);
+ }
+ if (strpos($Text,'[/zmg]') !== false) {
+ $Text = preg_replace("/\[zmg float=right\](.*?)\[\/zmg\]/ism", '<img class="zrl" src="$1" style="float: right;" alt="' . t('Image/photo') . '" />', $Text);
+ }
+
+ // [img=widthxheight]pathtoimage[/img]
+ if (strpos($Text,'[/img]') !== false) {
+ $Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '<img src="$3" style="width: $1px;" alt="' . t('Image/photo') . '" >', $Text);
+ }
+ if (strpos($Text,'[/zmg]') !== false) {
+ $Text = preg_replace("/\[zmg\=([0-9]*)x([0-9]*)\](.*?)\[\/zmg\]/ism", '<img class="zrl" src="$3" style="width: $1px;" alt="' . t('Image/photo') . '" >', $Text);
+ }
+
+ // [img=widthxheight float={left, right}]pathtoimage[/img]
+ if (strpos($Text,'[/img]') !== false) {
+ $Text = preg_replace("/\[img\=([0-9]*)x([0-9]*) float=left\](.*?)\[\/img\]/ism", '<img src="$3" style="width: $1px; float: left;" alt="' . t('Image/photo') . '" >', $Text);
+ }
+ if (strpos($Text,'[/img]') !== false) {
+ $Text = preg_replace("/\[img\=([0-9]*)x([0-9]*) float=right\](.*?)\[\/img\]/ism", '<img src="$3" style="width: $1px; float: right;" alt="' . t('Image/photo') . '" >', $Text);
+ }
+ if (strpos($Text,'[/zmg]') !== false) {
+ $Text = preg_replace("/\[zmg\=([0-9]*)x([0-9]*) float=left\](.*?)\[\/zmg\]/ism", '<img class="zrl" src="$3" style="width: $1px; float: left;" alt="' . t('Image/photo') . '" >', $Text);
+ }
+ if (strpos($Text,'[/zmg]') !== false) {
+ $Text = preg_replace("/\[zmg\=([0-9]*)x([0-9]*) float=right\](.*?)\[\/zmg\]/ism", '<img class="zrl" src="$3" style="width: $1px; float: right;" alt="' . t('Image/photo') . '" >', $Text);
+ }
+
+ // style (sanitized)
+ if (strpos($Text,'[/style]') !== false) {
+ $Text = preg_replace_callback("(\[style=(.*?)\](.*?)\[\/style\])ism", "bb_sanitize_style", $Text);
+ }
+
+ // crypt
if (strpos($Text,'[/crypt]') !== false) {
$x = random_string();
$Text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism",'<br/><div id="' . $x . '"><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" onclick="red_decrypt(\'rot13\',\'\',\'$1\',\'#' . $x . '\');" alt="' . t('Encrypted content') . '" title="' . t('Encrypted content') . '" /><br /></div>', $Text);
$Text = preg_replace_callback("/\[crypt (.*?)\](.*?)\[\/crypt\]/ism", 'bb_parse_crypt', $Text);
}
+
+ // html5 video and audio
+ if (strpos($Text,'[/video]') !== false) {
+ $Text = preg_replace_callback("/\[video\](.*?\.(ogg|ogv|oga|ogm|webm|mp4))\[\/video\]/ism", 'tryzrlvideo', $Text);
+ }
+ if (strpos($Text,'[/audio]') !== false) {
+ $Text = preg_replace_callback("/\[audio\](.*?\.(ogg|ogv|oga|ogm|webm|mp4|mp3))\[\/audio\]/ism", 'tryzrlaudio', $Text);
+ }
+
// Try to Oembed
if ($tryoembed) {
- if (strpos($Text,'[/video]') !== false) {
- $Text = preg_replace("/\[video\](.*?\.(ogg|ogv|oga|ogm|webm|mp4))\[\/video\]/ism", '<video src="$1" controls="controls" width="' . $a->videowidth . '" height="' . $a->videoheight . '"><a href="$1">$1</a></video>', $Text);
- }
- if (strpos($Text,'[/audio]') !== false) {
- $Text = preg_replace("/\[audio\](.*?\.(ogg|ogv|oga|ogm|webm|mp4|mp3))\[\/audio\]/ism", '<audio src="$1" controls="controls"><a href="$1">$1</a></audio>', $Text);
- }
+
if (strpos($Text,'[/video]') !== false) {
$Text = preg_replace_callback("/\[video\](.*?)\[\/video\]/ism", 'tryoembed', $Text);
}
@@ -527,12 +680,11 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
}
- // html5 video and audio
if ($tryoembed){
if (strpos($Text,'[/iframe]') !== false) {
- $Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '<iframe src="$1" width="' . $a->videowidth . '" height="' . $a->videoheight . '"><a href="$1">$1</a></iframe>', $Text);
+ $Text = preg_replace_callback("/\[iframe\](.*?)\[\/iframe\]/ism", 'bbiframe', $Text);
}
}
else {
@@ -570,8 +722,6 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
else
$Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", "http://vimeo.com/$1", $Text);
}
-// $Text = preg_replace("/\[youtube\](.*?)\[\/youtube\]/", '<object width="425" height="350" type="application/x-shockwave-flash" data="http://www.youtube.com/v/$1" ><param name="movie" value="http://www.youtube.com/v/$1"></param><!--[if IE]><embed src="http://www.youtube.com/v/$1" type="application/x-shockwave-flash" width="425" height="350" /><![endif]--></object>', $Text);
-
// oembed tag
$Text = oembed_bbcode2html($Text);
@@ -614,28 +764,6 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
$Text = preg_replace("/\<(.*?)(src|href)=\"[^hfm](.*?)\>/ism",'<$1$2="">',$Text);
- if($saved_image)
- $Text = bb_replace_images($Text, $saved_image);
-
- // Clean up the HTML by loading and saving the HTML with the DOM
- // Only do it when it has to be done - for performance reasons
-// if (!$tryoembed) {//
-// $doc = new DOMDocument();
-// $doc->preserveWhiteSpace = false;
-
-// $Text = mb_convert_encoding($Text, 'HTML-ENTITIES', "UTF-8");
-
-// $doctype = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">';
-// @$doc->loadHTML($doctype."<html><body>".$Text."</body></html>");
-
-// $Text = $doc->saveHTML();
-// $Text = str_replace(array("<html><body>", "</body></html>", $doctype), array("", "", ""), $Text);
-
-// $Text = str_replace('<br></li>','</li>', $Text);
-
-// $Text = mb_convert_encoding($Text, "UTF-8", 'HTML-ENTITIES');
-// }
-
call_hooks('bbcode',$Text);
return $Text;
diff --git a/include/bookmarks.php b/include/bookmarks.php
new file mode 100644
index 000000000..21a775f9a
--- /dev/null
+++ b/include/bookmarks.php
@@ -0,0 +1,85 @@
+<?php /** @file */
+
+require_once('include/menu.php');
+
+function bookmark_add($channel,$sender,$taxonomy,$private,$opts = null) {
+
+ $menu_id = 0;
+ $menu_name = '';
+ $ischat = false;
+
+ if(is_array($opts)) {
+ $menu_id = ((x($opts,'menu_id')) ? intval($opt['menu_id']) : 0);
+ $menu_name = ((x($opts,'menu_name')) ? escape_tags($opts['menu_name']) : '');
+ $ischat = ((x($opts,'ischat')) ? intval($opts['ischat']) : 0);
+ }
+
+ $iarr = array();
+ $channel_id = $channel['channel_id'];
+
+ if($private)
+ $iarr['contact_allow'] = array($channel['channel_hash']);
+ $iarr['mitem_link'] = $taxonomy['url'];
+ $iarr['mitem_desc'] = $taxonomy['term'];
+ $iarr['mitem_flags'] = (($ischat) ? MENU_ITEM_CHATROOM : 0);
+
+ $m = @parse_url($taxonomy['url']);
+ $zrl = false;
+ if($m['host']) {
+ $r = q("select hubloc_url from hubloc where hubloc_host = '%s' limit 1",
+ dbesc($m['host'])
+ );
+ if($r)
+ $zrl = true;
+ }
+
+ if($zrl)
+ $iarr['mitem_flags'] |= MENU_ITEM_ZID;
+
+ $arr = array();
+ if(! $menu_name) {
+ $arr['menu_name'] = substr($sender['xchan_hash'],0,16) . ' ' . $sender['xchan_name'];
+ $arr['menu_desc'] = sprintf( t('%1$s\'s bookmarks'), $sender['xchan_name']);
+ }
+ else {
+ $arr['menu_name'] = $arr['menu_desc'] = $menu_name;
+ }
+ $arr['menu_flags'] = (($sender['xchan_hash'] === $channel['channel_hash']) ? MENU_BOOKMARK : MENU_SYSTEM|MENU_BOOKMARK);
+ $arr['menu_channel_id'] = $channel_id;
+
+ if(! $menu_id) {
+ $x = menu_list($arr['menu_channel_id'],$arr['menu_name'],$arr['menu_flags']);
+ if($x)
+ $menu_id = $x[0]['menu_id'];
+ else
+ $menu_id = menu_create($arr);
+ }
+
+ if(! $menu_id) {
+ logger('bookmark_add: unable to create menu ' . $arr['menu_name']);
+ return;
+ }
+ logger('add_bookmark: menu_id ' . $menu_id);
+ $r = q("select * from menu_item where mitem_link = '%s' and mitem_menu_id = %d and mitem_channel_id = %d limit 1",
+ dbesc($iarr['mitem_link']),
+ intval($menu_id),
+ intval($channel_id)
+ );
+ if($r)
+ logger('add_bookmark: duplicate menu entry', LOGGER_DEBUG);
+ if(! $r)
+ $r = menu_add_item($menu_id,$channel_id,$iarr);
+
+ return $r;
+}
+
+function get_bookmark_link($observer) {
+
+ if((! $observer) || ($observer['xchan_network'] !== 'zot'))
+ return '';
+
+ $h = @parse_url($observer['xchan_url']);
+ if($h)
+ return $h['scheme'] . '://' . $h['host'] . (($h['port']) ? ':' . $h['port'] : '') . '/rbmark?f=';
+ return '';
+}
diff --git a/include/chat.php b/include/chat.php
new file mode 100644
index 000000000..5a17230e0
--- /dev/null
+++ b/include/chat.php
@@ -0,0 +1,184 @@
+<?php /** @file */
+
+
+function chatroom_create($channel,$arr) {
+
+ $ret = array('success' => false);
+
+ $name = trim($arr['name']);
+ if(! $name) {
+ $ret['message'] = t('Missing room name');
+ return $ret;
+ }
+
+ $r = q("select cr_id from chatroom where cr_uid = %d and cr_name = '%s' limit 1",
+ intval($channel['channel_id']),
+ dbesc($name)
+ );
+ if($r) {
+ $ret['message'] = t('Duplicate room name');
+ return $ret;
+ }
+
+ $r = q("select count(cr_id) as total from chatroom where cr_aid = %d",
+ intval($channel['channel_account_id'])
+ );
+ if($r)
+ $limit = service_class_fetch($channel_id,'chatrooms');
+
+ if(($r) && ($limit !== false) && ($r[0]['total'] >= $limit)) {
+ $ret['message'] = upgrade_message();
+ return $ret;
+ }
+
+ if(! array_key_exists('expire',$arr))
+ $arr['expire'] = 120; // minutes, e.g. 2 hours
+
+ $created = datetime_convert();
+
+ $x = q("insert into chatroom ( cr_aid, cr_uid, cr_name, cr_created, cr_edited, cr_expire, allow_cid, allow_gid, deny_cid, deny_gid )
+ values ( %d, %d , '%s', '%s', '%s', %d, '%s', '%s', '%s', '%s' ) ",
+ intval($channel['channel_account_id']),
+ intval($channel['channel_id']),
+ dbesc($name),
+ dbesc($created),
+ dbesc($created),
+ intval($arr['expire']),
+ dbesc($arr['allow_cid']),
+ dbesc($arr['allow_gid']),
+ dbesc($arr['deny_cid']),
+ dbesc($arr['deny_gid'])
+ );
+
+ if($x)
+ $ret['success'] = true;
+
+ return $ret;
+}
+
+
+function chatroom_destroy($channel,$arr) {
+
+ $ret = array('success' => false);
+ if(intval($arr['cr_id']))
+ $sql_extra = " and cr_id = " . intval($arr['cr_id']) . " ";
+ elseif(trim($arr['cr_name']))
+ $sql_extra = " and cr_name = '" . protect_sprintf(dbesc(trim($arr['cr_name']))) . "' ";
+ else {
+ $ret['message'] = t('Invalid room specifier.');
+ return $ret;
+ }
+
+ $r = q("select * from chatroom where cr_uid = %d $sql_extra limit 1",
+ intval($channel['channel_id'])
+ );
+ if(! $r) {
+ $ret['message'] = t('Invalid room specifier.');
+ return $ret;
+ }
+
+ q("delete from chatroom where cr_id = %d limit 1",
+ intval($r[0]['cr_id'])
+ );
+ if($r[0]['cr_id']) {
+ q("delete from chatpresence where cp_room = %d",
+ intval($r[0]['cr_id'])
+ );
+ }
+ $ret['success'] = true;
+ return $ret;
+}
+
+
+function chatroom_enter($observer_xchan,$room_id,$status,$client) {
+
+ if(! $room_id || ! $observer_xchan)
+ return;
+
+ $r = q("select * from chatroom where cr_id = %d limit 1",
+ intval($room_id)
+ );
+ if(! $r) {
+ notice( t('Room not found.') . EOL);
+ return false;
+ }
+ require_once('include/security.php');
+ $sql_extra = permissions_sql($r[0]['cr_uid']);
+
+ $x = q("select * from chatroom where cr_id = %d and cr_uid = %d $sql_extra limit 1",
+ intval($room_id),
+ intval($r[0]['cr_uid'])
+ );
+ if(! $x) {
+ notice( t('Permission denied.') . EOL);
+ return false;
+ }
+
+ $limit = service_class_fetch($r[0]['cr_uid'],'chatters_inroom');
+ if($limit !== false) {
+ $x = q("select count(*) as total from chatpresence where cp_room = %d",
+ intval($room_id)
+ );
+ if($x && $x[0]['total'] > $limit) {
+ notice( t('Room is full') . EOL);
+ return false;
+ }
+ }
+
+ if(intval($x[0]['cr_expire']))
+ $r = q("delete from chat where created < UTC_TIMESTAMP() - INTERVAL " . intval($x[0]['cr_expire']) . " MINUTE and chat_room = " . intval($x[0]['cr_id']));
+
+ $r = q("select * from chatpresence where cp_xchan = '%s' and cp_room = %d limit 1",
+ dbesc($observer_xchan),
+ intval($room_id)
+ );
+ if($r) {
+ q("update chatpresence set cp_last = '%s' where cp_id = %d and cp_client = '%s' limit 1",
+ dbesc(datetime_convert()),
+ intval($r[0]['cp_id']),
+ dbesc($client)
+ );
+ return true;
+ }
+
+ $r = q("insert into chatpresence ( cp_room, cp_xchan, cp_last, cp_status, cp_client )
+ values ( %d, '%s', '%s', '%s', '%s' )",
+ intval($room_id),
+ dbesc($observer_xchan),
+ dbesc(datetime_convert()),
+ dbesc($status),
+ dbesc($client)
+ );
+ return $r;
+}
+
+
+function chatroom_leave($observer_xchan,$room_id,$client) {
+ if(! $room_id || ! $observer_xchan)
+ return;
+
+ $r = q("select * from chatpresence where cp_xchan = '%s' and cp_room = %d and cp_client = '%s' limit 1",
+ dbesc($observer_xchan),
+ intval($room_id),
+ dbesc($client)
+ );
+ if($r) {
+ q("delete from chatpresence where cp_id = %d limit 1",
+ intval($r[0]['cp_id'])
+ );
+ }
+
+ return true;
+}
+
+
+function chatroom_list($uid) {
+ require_once('include/security.php');
+ $sql_extra = permissions_sql($uid);
+
+ $r = q("select cr_name, cr_id, count(cp_id) as cr_inroom from chatroom left join chatpresence on cr_id = cp_room where cr_uid = %d $sql_extra group by cr_name order by cr_name",
+ intval($uid)
+ );
+
+ return $r;
+}
diff --git a/include/config.php b/include/config.php
index bccf0737f..8d98d56fa 100644
--- a/include/config.php
+++ b/include/config.php
@@ -65,7 +65,7 @@ function get_config($family, $key) {
if(! array_key_exists($key,$a->config[$family])) {
return false;
}
- return ((preg_match('|^a:[0-9]+:{.*}$|s', $a->config[$family][$key]))
+ return ((! is_array($a->config[$family][$key])) && (preg_match('|^a:[0-9]+:{.*}$|s', $a->config[$family][$key]))
? unserialize($a->config[$family][$key])
: $a->config[$family][$key]
);
@@ -174,8 +174,8 @@ function get_pconfig($uid,$family, $key, $instore = false) {
if((! array_key_exists($family,$a->config[$uid])) || (! array_key_exists($key,$a->config[$uid][$family])))
return false;
-
- return ((preg_match('|^a:[0-9]+:{.*}$|s', $a->config[$uid][$family][$key]))
+
+ return ((! is_array($a->config[$uid][$family][$key])) && (preg_match('|^a:[0-9]+:{.*}$|s', $a->config[$uid][$family][$key]))
? unserialize($a->config[$uid][$family][$key])
: $a->config[$uid][$family][$key]
);
@@ -304,7 +304,7 @@ function get_xconfig($xchan,$family, $key) {
if((! array_key_exists($family,$a->config[$xchan])) || (! array_key_exists($key,$a->config[$xchan][$family])))
return false;
- return ((preg_match('|^a:[0-9]+:{.*}$|s', $a->config[$xchan][$family][$key]))
+ return ((! is_array($a->config[$xchan][$family][$key])) && (preg_match('|^a:[0-9]+:{.*}$|s', $a->config[$xchan][$family][$key]))
? unserialize($a->config[$xchan][$family][$key])
: $a->config[$xchan][$family][$key]
);
diff --git a/include/contact_selectors.php b/include/contact_selectors.php
index b56a77937..a3cfd2489 100644
--- a/include/contact_selectors.php
+++ b/include/contact_selectors.php
@@ -5,7 +5,7 @@ function contact_profile_assign($current) {
$o = '';
- $o .= "<select id=\"contact-profile-selector\" name=\"profile-assign\" />\r\n";
+ $o .= "<select id=\"contact-profile-selector\" name=\"profile_assign\" />\r\n";
$r = q("SELECT profile_guid, profile_name FROM `profile` WHERE `uid` = %d",
intval($_SESSION['uid']));
diff --git a/include/contact_widgets.php b/include/contact_widgets.php
index cc0a3d617..482bbed78 100644
--- a/include/contact_widgets.php
+++ b/include/contact_widgets.php
@@ -25,7 +25,8 @@ function findpeople_widget() {
'$suggest' => t('Channel Suggestions'),
'$similar' => '', // FIXME and uncomment when mod/match working // t('Similar Interests'),
'$random' => t('Random Profile'),
- '$inv' => t('Invite Friends')
+ '$inv' => t('Invite Friends'),
+ '$loggedin' => local_user()
));
}
diff --git a/include/conversation.php b/include/conversation.php
index f5fc9da93..16ac4e909 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -687,12 +687,13 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
'isotime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'c'),
'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'),
'editedtime' => (($item['edited'] != $item['created']) ? sprintf( t('last edited: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['edited'], 'r')) : ''),
+ 'expiretime' => (($item['expires'] !== '0000-00-00 00:00:00') ? sprintf( t('Expires: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['expires'], 'r')):''),
'location' => $location,
'indent' => '',
'owner_name' => $owner_name,
'owner_url' => $owner_url,
'owner_photo' => $owner_photo,
- 'plink' => get_plink($item,$mode),
+ 'plink' => get_plink($item,false),
'edpost' => false,
'isstarred' => $isstarred,
'star' => $star,
@@ -782,6 +783,9 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
// $tx1 = dba_timer();
$item_object = new Item($item);
$conv->add_thread($item_object);
+ if($page_mode === 'list')
+ $item_object->set_template('conv_list.tpl');
+
// $tx2 = dba_timer();
// if($mode === 'network')
// profiler($tx1,$tx2,'add thread ' . $item['id']);
@@ -908,14 +912,14 @@ function item_photo_menu($item){
}
$profile_link = z_root() . "/chanview/?f=&hash=" . $item['author_xchan'];
- $pm_url = $a->get_baseurl($ssl_state) . '/message/new/?f=&hash=' . $item['author_xchan'];
+ $pm_url = $a->get_baseurl($ssl_state) . '/mail/new/?f=&hash=' . $item['author_xchan'];
if($a->contacts && array_key_exists($item['author_xchan'],$a->contacts))
$contact = $a->contacts[$item['author_xchan']];
if($contact) {
$poke_link = $a->get_baseurl($ssl_state) . '/poke/?f=&c=' . $contact['abook_id'];
- $contact_url = $a->get_baseurl($ssl_state) . '/connections/' . $contact['abook_id'];
+ $contact_url = $a->get_baseurl($ssl_state) . '/connedit/' . $contact['abook_id'];
$posts_link = $a->get_baseurl($ssl_state) . '/network/?cid=' . $contact['abook_id'];
$clean_url = normalise_link($item['author-link']);
@@ -1108,7 +1112,7 @@ function status_editor($a,$x,$popup=false) {
'$shortsetloc' => t('set location'),
'$noloc' => t('Clear browser location'),
'$shortnoloc' => t('clear location'),
- '$title' => ((x($x,'title')) ? htmlspecialchars($x['title']) : ''),
+ '$title' => ((x($x,'title')) ? htmlspecialchars($x['title'], ENT_COMPAT,'UTF-8') : ''),
'$placeholdertitle' => t('Set title'),
'$catsenabled' => ((feature_enabled($x['profile_uid'],'categories') && (! $webpage)) ? 'categories' : ''),
'$category' => "",
@@ -1117,7 +1121,7 @@ function status_editor($a,$x,$popup=false) {
'$permset' => t('Permission settings'),
'$shortpermset' => t('permissions'),
'$ptyp' => (($notes_cid) ? 'note' : 'wall'),
- '$content' => ((x($x,'body')) ? htmlspecialchars($x['body']) : ''),
+ '$content' => ((x($x,'body')) ? htmlspecialchars($x['body'], ENT_COMPAT,'UTF-8') : ''),
'$post_id' => '',
'$baseurl' => $a->get_baseurl(true),
'$defloc' => $x['default_location'],
@@ -1142,6 +1146,8 @@ function status_editor($a,$x,$popup=false) {
'$feature_encrypt' => ((feature_enabled($x['profile_uid'],'content_encrypt') && (! $webpage)) ? 'block' : 'none'),
'$encrypt' => t('Encrypt text'),
'$cipher' => $cipher,
+ '$expiryModalOK' => t('OK'),
+ '$expiryModalCANCEL' => t('Cancel'),
));
@@ -1294,18 +1300,25 @@ function prepare_page($item) {
$a = get_app();
$naked = ((get_pconfig($item['uid'],'system','nakedpage')) ? 1 : 0);
+ $observer = $a->get_observer();
+ $zid = ($observer['xchan_addr']);
+ //240 chars is the longest we can have before we start hitting problems with suhosin sites
+ $preview = substr(urlencode($item['body']), 0, 240);
+ $link = z_root() . '/' . $a->cmd;
if(array_key_exists('webpage',$a->layout) && array_key_exists('authored',$a->layout['webpage'])) {
if($a->layout['webpage']['authored'] === 'none')
$naked = 1;
// ... other possible options
}
-
return replace_macros(get_markup_template('page_display.tpl'),array(
'$author' => (($naked) ? '' : $item['author']['xchan_name']),
'$auth_url' => (($naked) ? '' : $item['author']['xchan_url']),
+ '$zid' => $zid,
'$date' => (($naked) ? '' : datetime_convert('UTC',date_default_timezone_get(),$item['created'],'Y-m-d H:i')),
'$title' => smilies(bbcode($item['title'])),
- '$body' => prepare_body($item,true)
+ '$body' => prepare_body($item,true),
+ '$preview' => $preview,
+ '$link' => $link,
));
}
@@ -1366,26 +1379,26 @@ function network_tabs() {
$tabs = array(
array(
'label' => t('Commented Order'),
- 'url'=>$a->get_baseurl(true) . '/' . $cmd . '?f=&order=comment' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : ''),
+ 'url'=>$a->get_baseurl(true) . '/' . $cmd . '?f=&order=comment' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '') . ((x($_GET,'gid')) ? '&gid=' . $_GET['gid'] : ''),
'sel'=>$all_active,
'title'=> t('Sort by Comment Date'),
),
array(
'label' => t('Posted Order'),
- 'url'=>$a->get_baseurl(true) . '/' . $cmd . '?f=&order=post' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : ''),
+ 'url'=>$a->get_baseurl(true) . '/' . $cmd . '?f=&order=post' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '') . ((x($_GET,'gid')) ? '&gid=' . $_GET['gid'] : ''),
'sel'=>$postord_active,
'title' => t('Sort by Post Date'),
),
array(
'label' => t('Personal'),
- 'url' => $a->get_baseurl(true) . '/' . $cmd . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&conv=1',
+ 'url' => $a->get_baseurl(true) . '/' . $cmd . '?f=' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '') . '&conv=1',
'sel' => $conv_active,
'title' => t('Posts that mention or involve you'),
),
array(
'label' => t('New'),
- 'url' => $a->get_baseurl(true) . '/' . $cmd . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&new=1',
+ 'url' => $a->get_baseurl(true) . '/' . $cmd . '?f=' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '') . '&new=1' . ((x($_GET,'gid')) ? '&gid=' . $_GET['gid'] : ''),
'sel' => $new_active,
'title' => t('Activity Stream - by date'),
),
@@ -1423,7 +1436,8 @@ function network_tabs() {
function profile_tabs($a, $is_owner=False, $nickname=Null){
//echo "<pre>"; var_dump($a->user); killme();
-
+
+
$channel = $a->get_channel();
if (is_null($nickname))
@@ -1443,24 +1457,51 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){
'title' => t('Status Messages and Posts'),
'id' => 'status-tab',
),
- array(
+ );
+
+ $p = get_all_perms($a->profile['profile_uid'],get_observer_hash());
+
+ if($p['view_profile']) {
+ $tabs[] = array(
'label' => t('About'),
'url' => $pr,
'sel' => ((argv(0) == 'profile') ? 'active' : ''),
'title' => t('Profile Details'),
'id' => 'profile-tab',
- ),
- array(
+ );
+ }
+ if($p['view_photos']) {
+ $tabs[] = array(
'label' => t('Photos'),
'url' => $a->get_baseurl() . '/photos/' . $nickname,
'sel' => ((argv(0) == 'photos') ? 'active' : ''),
'title' => t('Photo Albums'),
'id' => 'photo-tab',
- ),
+ );
+ }
+ if($p['view_storage']) {
+ $tabs[] = array(
+ 'label' => t('Files'),
+ 'url' => $a->get_baseurl() . '/cloud/' . $nickname . ((get_observer_hash()) ? '' : '?f=&davguest=1'),
+ 'sel' => ((argv(0) == 'cloud') ? 'active' : ''),
+ 'title' => t('Files and Storage'),
+ 'id' => 'files-tab',
+ );
+ }
+
+ require_once('include/chat.php');
+ $chats = chatroom_list($a->profile['profile_uid']);
+ $subdued = ((count($chats)) ? '' : ' subdued');
+ $tabs[] = array(
+ 'label' => t('Chatrooms'),
+ 'url' => $a->get_baseurl() . '/chat/' . $nickname,
+ 'sel' => ((argv(0) == 'chat') ? 'active' . $subdued : '' . $subdued),
+ 'title' => t('Chatrooms'),
+ 'id' => 'chat-tab',
);
- if ($is_owner){
+ if($is_owner) {
$tabs[] = array(
'label' => t('Events'),
'url' => $a->get_baseurl() . '/events',
@@ -1468,15 +1509,27 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){
'title' => t('Events and Calendar'),
'id' => 'events-tab',
);
- if(feature_enabled(local_user(),'webpages')){
+
+ $tabs[] = array(
+ 'label' => t('Bookmarks'),
+ 'url' => $a->get_baseurl() . '/bookmarks',
+ 'sel' => ((argv(0) == 'bookmarks') ? 'active' : ''),
+ 'title' => t('Saved Bookmarks'),
+ 'id' => 'bookmarks-tab',
+ );
+ }
+
+
+ if($is_owner && feature_enabled($a->profile['profile_uid'],'webpages')) {
$tabs[] = array(
'label' => t('Webpages'),
'url' => $a->get_baseurl() . '/webpages/' . $nickname,
'sel' => ((argv(0) == 'webpages') ? 'active' : ''),
'title' => t('Manage Webpages'),
'id' => 'webpages-tab',
- );}
+ );
}
+
else {
// FIXME
// we probably need a listing of events that were created by
diff --git a/include/crypto.php b/include/crypto.php
index e9372fbb4..33cdc10c0 100644
--- a/include/crypto.php
+++ b/include/crypto.php
@@ -4,6 +4,8 @@ function rsa_sign($data,$key,$alg = 'sha256') {
if(! $key)
return 'no key';
$sig = '';
+ if(intval(OPENSSL_ALGO_SHA256) && $alg === 'sha256')
+ $alg = OPENSSL_ALGO_SHA256;
openssl_sign($data,$sig,$key,$alg);
return $sig;
}
@@ -13,6 +15,8 @@ function rsa_verify($data,$sig,$key,$alg = 'sha256') {
if(! $key)
return false;
+ if(intval(OPENSSL_ALGO_SHA256) && $alg === 'sha256')
+ $alg = OPENSSL_ALGO_SHA256;
$verify = openssl_verify($data,$sig,$key,$alg);
return $verify;
}
diff --git a/include/deliver.php b/include/deliver.php
index b1314ce39..b0d15e1ef 100644
--- a/include/deliver.php
+++ b/include/deliver.php
@@ -26,6 +26,7 @@ function deliver_run($argv, $argc) {
// If there is no outq_msg, this is a refresh_all message which does not require local handling
if($r[0]['outq_msg']) {
$msg = array('body' => json_encode(array('pickup' => array(array('notify' => json_decode($r[0]['outq_notify'],true),'message' => json_decode($r[0]['outq_msg'],true))))));
+
zot_import($msg,z_root());
$r = q("delete from outq where outq_hash = '%s' limit 1",
dbesc($argv[$x])
diff --git a/include/dir_fns.php b/include/dir_fns.php
index 0c9a6bd9f..c2e614831 100644
--- a/include/dir_fns.php
+++ b/include/dir_fns.php
@@ -22,7 +22,8 @@ function dir_sort_links() {
function dir_safe_mode() {
$observer = get_observer_hash();
-
+ if (! $observer)
+ return;
if ($observer)
$safe_mode = get_xconfig($observer,'directory','safe_mode');
if($safe_mode === '0')
@@ -138,12 +139,15 @@ function update_directory_entry($ud) {
}
+/**
+ * @function local_dir_update($uid,$force)
+ * push local channel updates to a local directory server
+ *
+ */
+function local_dir_update($uid,$force) {
-
-function syncdirs($uid) {
-
- logger('syncdirs', LOGGER_DEBUG);
+ logger('local_dir_update', LOGGER_DEBUG);
$p = q("select channel.channel_hash, channel_address, channel_timezone, profile.* from profile left join channel on channel_id = uid where uid = %d and is_default = 1",
intval($uid)
@@ -166,6 +170,10 @@ function syncdirs($uid) {
$profile['region'] = $p[0]['region'];
$profile['postcode'] = $p[0]['postal_code'];
$profile['country'] = $p[0]['country_name'];
+ $profile['about'] = $p[0]['about'];
+ $profile['homepage'] = $p[0]['homepage'];
+ $profile['hometown'] = $p[0]['hometown'];
+
if($p[0]['keywords']) {
$tags = array();
$k = explode(' ',$p[0]['keywords']);
@@ -200,10 +208,10 @@ function syncdirs($uid) {
}
+ $address = $p[0]['channel_address'] . '@' . get_app()->get_hostname();
if(perm_is_allowed($uid,'','view_profile')) {
- import_directory_profile($hash,$profile);
-
+ import_directory_profile($hash,$profile,$address,0);
}
else {
// they may have made it private
@@ -216,8 +224,8 @@ function syncdirs($uid) {
}
}
- $ud_hash = random_string();
- update_modtime($ud_hash,$hash,$p[0]['channel_address'] . '@' . get_app()->get_hostname(),1);
+ $ud_hash = random_string() . '@' . get_app()->get_hostname();
+ update_modtime($hash,$ud_hash,$p[0]['channel_address'] . '@' . get_app()->get_hostname(),(($force) ? (-1) : 1));
}
diff --git a/include/directory.php b/include/directory.php
index 491240a9d..794420b6f 100644
--- a/include/directory.php
+++ b/include/directory.php
@@ -10,9 +10,13 @@ function directory_run($argv, $argc){
cli_startup();
- if($argc != 2)
+ if($argc < 2)
return;
+ $force = false;
+ if(($argc > 2) && ($argv[2] === 'force'))
+ $force = true;
+
logger('directory update', LOGGER_DEBUG);
$dirmode = get_config('system','directory_mode');
@@ -29,7 +33,8 @@ function directory_run($argv, $argc){
if(($dirmode == DIRECTORY_MODE_PRIMARY) || ($dirmode == DIRECTORY_MODE_STANDALONE)) {
- syncdirs($argv[1]);
+
+ local_dir_update($argv[1],$force);
q("update channel set channel_dirdate = '%s' where channel_id = %d limit 1",
dbesc(datetime_convert()),
@@ -53,7 +58,7 @@ function directory_run($argv, $argc){
// ensure the upstream directory is updated
- $packet = zot_build_packet($channel,'refresh');
+ $packet = zot_build_packet($channel,(($force) ? 'force_refresh' : 'refresh'));
$z = zot_zot($url,$packet);
// re-queue if unsuccessful
diff --git a/include/enotify.php b/include/enotify.php
index 011a1cde2..e0991257f 100644
--- a/include/enotify.php
+++ b/include/enotify.php
@@ -86,14 +86,17 @@ function notification($params) {
$preamble = sprintf( t('%1$s, %2$s sent you a new private message at %3$s.'),$recip['channel_name'], $sender['xchan_name'],$sitename);
$epreamble = sprintf( t('%1$s sent you %2$s.'),'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]', '[zrl=$itemlink]' . t('a private message') . '[/zrl]');
$sitelink = t('Please visit %s to view and/or reply to your private messages.');
- $tsitelink = sprintf( $sitelink, $siteurl . '/message/' . $params['item']['id'] );
- $hsitelink = sprintf( $sitelink, '<a href="' . $siteurl . '/message/' . $params['item']['id'] . '">' . $sitename . '</a>');
+ $tsitelink = sprintf( $sitelink, $siteurl . '/mail/' . $params['item']['id'] );
+ $hsitelink = sprintf( $sitelink, '<a href="' . $siteurl . '/mail/' . $params['item']['id'] . '">' . $sitename . '</a>');
$itemlink = $siteurl . '/message/' . $params['item']['id'];
}
if($params['type'] == NOTIFY_COMMENT) {
// logger("notification: params = " . print_r($params, true), LOGGER_DEBUG);
+ $itemlink = $params['link'];
+
+
// ignore like/unlike activity on posts - they probably require a sepearate notification preference
if(array_key_exists('item',$params) && (! visible_activity($params['item'])))
@@ -171,7 +174,6 @@ function notification($params) {
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
$tsitelink = sprintf( $sitelink, $siteurl );
$hsitelink = sprintf( $sitelink, '<a href="' . $siteurl . '">' . $sitename . '</a>');
- $itemlink = $params['link'];
}
if($params['type'] == NOTIFY_WALL) {
@@ -183,9 +185,6 @@ function notification($params) {
$recip['channel_name'],
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$params['link']);
-
- // FIXME - check the item privacy
- $private = false;
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
$tsitelink = sprintf( $sitelink, $siteurl );
@@ -455,6 +454,8 @@ function notification($params) {
if(! $datarray['email_secure']) {
switch($params['type']) {
case NOTIFY_WALL:
+ case NOTIFY_TAGSELF:
+ case NOTIFY_POKE:
case NOTIFY_COMMENT:
if(! $private)
break;
diff --git a/include/event.php b/include/event.php
index 7873de1ef..08b94dafa 100644
--- a/include/event.php
+++ b/include/event.php
@@ -15,7 +15,7 @@ function format_event_html($ev) {
$o .= '<p class="summary event-summary">' . bbcode($ev['summary']) . '</p>' . "\r\n";
- $o .= '<p class="description event-description">' . bbcode($ev['desc']) . '</p>' . "\r\n";
+ $o .= '<p class="description event-description">' . bbcode($ev['description']) . '</p>' . "\r\n";
$o .= '<p class="event-start">' . t('Starts:') . ' <abbr class="dtstart" title="'
. datetime_convert('UTC','UTC',$ev['start'], (($ev['adjust']) ? ATOM_TIME : 'Y-m-d\TH:i:s' ))
@@ -52,8 +52,8 @@ function format_event_bbcode($ev) {
if($ev['summary'])
$o .= '[event-summary]' . $ev['summary'] . '[/event-summary]';
- if($ev['desc'])
- $o .= '[event-description]' . $ev['desc'] . '[/event-description]';
+ if($ev['description'])
+ $o .= '[event-description]' . $ev['description'] . '[/event-description]';
if($ev['start'])
$o .= '[event-start]' . $ev['start'] . '[/event-start]';
@@ -75,7 +75,7 @@ function format_event_bbcode($ev) {
function bbtovcal($s) {
$o = '';
$ev = bbtoevent($s);
- if($ev['desc'])
+ if($ev['description'])
$o = format_event_html($ev);
return $o;
}
@@ -90,7 +90,7 @@ function bbtoevent($s) {
$ev['summary'] = $match[1];
$match = '';
if(preg_match("/\[event\-description\](.*?)\[\/event\-description\]/is",$s,$match))
- $ev['desc'] = $match[1];
+ $ev['description'] = $match[1];
$match = '';
if(preg_match("/\[event\-start\](.*?)\[\/event\-start\]/is",$s,$match))
$ev['start'] = $match[1];
@@ -122,7 +122,7 @@ function ev_compare($a,$b) {
$date_b = (($b['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$b['start']) : $b['start']);
if($date_a === $date_b)
- return strcasecmp($a['desc'],$b['desc']);
+ return strcasecmp($a['description'],$b['description']);
return strcmp($date_a,$date_b);
}
@@ -178,7 +178,7 @@ function event_store($arr) {
`start` = '%s',
`finish` = '%s',
`summary` = '%s',
- `desc` = '%s',
+ `description` = '%s',
`location` = '%s',
`type` = '%s',
`adjust` = %d,
@@ -193,7 +193,7 @@ function event_store($arr) {
dbesc($arr['start']),
dbesc($arr['finish']),
dbesc($arr['summary']),
- dbesc($arr['desc']),
+ dbesc($arr['description']),
dbesc($arr['location']),
dbesc($arr['type']),
intval($arr['adjust']),
@@ -266,7 +266,7 @@ function event_store($arr) {
$arr['mid'] = item_message_id();
- $r = q("INSERT INTO event ( uid,aid,event_xchan,event_hash,created,edited,start,finish,summary, `desc`,location,type,
+ $r = q("INSERT INTO event ( uid,aid,event_xchan,event_hash,created,edited,start,finish,summary,description,location,type,
adjust,nofinish,allow_cid,allow_gid,deny_cid,deny_gid)
VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s' ) ",
intval($arr['uid']),
@@ -278,7 +278,7 @@ function event_store($arr) {
dbesc($arr['start']),
dbesc($arr['finish']),
dbesc($arr['summary']),
- dbesc($arr['desc']),
+ dbesc($arr['description']),
dbesc($arr['location']),
dbesc($arr['type']),
intval($arr['adjust']),
@@ -337,6 +337,8 @@ function event_store($arr) {
$item_arr['obj_type'] = ACTIVITY_OBJ_EVENT;
$item_arr['body'] = format_event_bbcode($arr);
+ $item_arr['plink'] = z_root() . '/channel/' . $z[0]['channel_address'] . '/?f=&mid=' . $item_arr['mid'];
+
$x = q("select * from xchan where xchan_hash = '%s' limit 1",
dbesc($arr['event_xchan'])
);
diff --git a/include/features.php b/include/features.php
index 05206106a..cc8d457bc 100644
--- a/include/features.php
+++ b/include/features.php
@@ -7,6 +7,8 @@
function feature_enabled($uid,$feature) {
$x = get_pconfig($uid,'feature',$feature);
+ if($x === false)
+ $x = get_config('feature',$feature);
$arr = array('uid' => $uid, 'feature' => $feature, 'enabled' => $x);
call_hooks('feature_enabled',$arr);
return($arr['enabled']);
@@ -24,9 +26,11 @@ function get_features() {
array('multi_profiles', t('Multiple Profiles'), t('Ability to create multiple profiles')),
array('webpages', t('Web Pages'), t('Provide managed web pages on your channel')),
array('private_notes', t('Private Notes'), t('Enables a tool to store notes and reminders')),
- array('prettyphoto', t('Enhanced Photo Albums'), t('Enable photo album with enhanced features')),
+// prettyphoto has licensing issues and will no longer be provided in core -
+// in any event this setting should probably be a theme option or plugin
+// array('prettyphoto', t('Enhanced Photo Albums'), t('Enable photo album with enhanced features')),
//FIXME - needs a description, but how the hell do we explain this to normals?
- array('sendzid', t('Extended Identity Sharing'), t(' ')),
+ array('sendzid', t('Extended Identity Sharing'), t('Share your identity with all websites on the internet. When disabled, identity is only shared with sites in the matrix.')),
array('expert', t('Expert Mode'), t('Enable Expert Mode to provide advanced configuration options')),
array('premium_channel', t('Premium Channel'), t('Allows you to set restrictions and terms on those that connect with your channel')),
),
@@ -37,7 +41,7 @@ function get_features() {
array('richtext', t('Richtext Editor'), t('Enable richtext editor')),
array('preview', t('Post Preview'), t('Allow previewing posts and comments before publishing them')),
array('channel_sources', t('Channel Sources'), t('Automatically import channel content from other channels or feeds')),
- array('content_encrypt', t('Even More Encryption'), t('Allow encryption of content end-to-end with a shared secret key')),
+ array('content_encrypt', t('Even More Encryption'), t('Allow optional encryption of content end-to-end with a shared secret key')),
),
// Network Tools
@@ -49,6 +53,7 @@ function get_features() {
array('personal_tab', t('Network Personal Tab'), t('Enable tab to display only Network posts that you\'ve interacted on')),
array('new_tab', t('Network New Tab'), t('Enable tab to display all new Network activity')),
array('affinity', t('Affinity Tool'), t('Filter stream activity by depth of relationships')),
+ array('suggest', t('Suggest Channels'), t('Show channel suggestions')),
),
// Item tools
diff --git a/include/follow.php b/include/follow.php
index 845ce11da..0508a8b37 100644
--- a/include/follow.php
+++ b/include/follow.php
@@ -16,6 +16,8 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
$result = array('success' => false,'message' => '');
$a = get_app();
+ $is_red = false;
+
if(! allowed_url($url)) {
$result['message'] = t('Channel is blocked on this site.');
@@ -37,82 +39,94 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
$ret = zot_finger($url,$channel);
if($ret['success']) {
+ $is_red = true;
$j = json_decode($ret['body'],true);
}
- else {
- $result['message'] = t('Channel discovery failed. Website may be down or misconfigured.');
- logger('mod_follow: ' . $result['message']);
- return $result;
- }
- logger('follow: ' . $url . ' ' . print_r($j,true));
+ if($is_red && $j) {
- if(! $j) {
- $result['message'] = t('Response from remote channel was not understood.');
- logger('mod_follow: ' . $result['message']);
- return $result;
- }
+ $my_perms = PERMS_W_STREAM|PERMS_W_MAIL;
+ logger('follow: ' . $url . ' ' . print_r($j,true), LOGGER_DEBUG);
- if(! ($j['success'] && $j['guid'])) {
- $result['message'] = t('Response from remote channel was incomplete.');
- logger('mod_follow: ' . $result['message']);
- return $result;
- }
- // Premium channel, set confirm before callback to avoid recursion
+ if(! ($j['success'] && $j['guid'])) {
+ $result['message'] = t('Response from remote channel was incomplete.');
+ logger('mod_follow: ' . $result['message']);
+ return $result;
+ }
- if(array_key_exists('connect_url',$j) && (! $confirm))
- goaway(zid($j['connect_url']));
+ // Premium channel, set confirm before callback to avoid recursion
+ if(array_key_exists('connect_url',$j) && (! $confirm))
+ goaway(zid($j['connect_url']));
- // check service class limits
+ // check service class limits
- $r = q("select count(*) as total from abook where abook_channel = %d and not (abook_flags & %d) ",
- intval($uid),
- intval(ABOOK_FLAG_SELF)
- );
- if($r)
- $total_channels = $r[0]['total'];
+ $r = q("select count(*) as total from abook where abook_channel = %d and not (abook_flags & %d) ",
+ intval($uid),
+ intval(ABOOK_FLAG_SELF)
+ );
+ if($r)
+ $total_channels = $r[0]['total'];
- if(! service_class_allows($uid,'total_channels',$total_channels)) {
- $result['message'] = upgrade_message();
- return $result;
- }
+ if(! service_class_allows($uid,'total_channels',$total_channels)) {
+ $result['message'] = upgrade_message();
+ return $result;
+ }
- // do we have an xchan and hubloc?
- // If not, create them.
+ // do we have an xchan and hubloc?
+ // If not, create them.
- $x = import_xchan($j);
+ $x = import_xchan($j);
- if(! $x['success'])
- return $x;
+ if(! $x['success'])
+ return $x;
- $xchan_hash = $x['hash'];
+ $xchan_hash = $x['hash'];
- $their_perms = 0;
+ $their_perms = 0;
- $global_perms = get_perms();
+ $global_perms = get_perms();
- if( array_key_exists('permissions',$j) && array_key_exists('data',$j['permissions'])) {
- $permissions = crypto_unencapsulate(array(
- 'data' => $j['permissions']['data'],
- 'key' => $j['permissions']['key'],
- 'iv' => $j['permissions']['iv']),
- $channel['channel_prvkey']);
- if($permissions)
- $permissions = json_decode($permissions,true);
- logger('decrypted permissions: ' . print_r($permissions,true), LOGGER_DATA);
- }
- else
- $permissions = $j['permissions'];
+ if( array_key_exists('permissions',$j) && array_key_exists('data',$j['permissions'])) {
+ $permissions = crypto_unencapsulate(array(
+ 'data' => $j['permissions']['data'],
+ 'key' => $j['permissions']['key'],
+ 'iv' => $j['permissions']['iv']),
+ $channel['channel_prvkey']);
+ if($permissions)
+ $permissions = json_decode($permissions,true);
+ logger('decrypted permissions: ' . print_r($permissions,true), LOGGER_DATA);
+ }
+ else
+ $permissions = $j['permissions'];
- foreach($permissions as $k => $v) {
- if($v) {
- $their_perms = $their_perms | intval($global_perms[$k][1]);
+ foreach($permissions as $k => $v) {
+ if($v) {
+ $their_perms = $their_perms | intval($global_perms[$k][1]);
+ }
}
}
+ else {
+
+ // attempt network auto-discovery
+
+ $my_perms = 0;
+ $their_perms = 0;
+ $xchan_hash = '';
+
+
+
+
+ }
+
+ if(! $xchan_hash) {
+ $result['message'] = t('Channel discovery failed.');
+ logger('follow: ' . $result['message']);
+ return $result;
+ }
if((local_user()) && $uid == local_user()) {
$aid = get_account_id();
@@ -156,7 +170,7 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
intval($uid),
dbesc($xchan_hash),
intval($their_perms),
- intval(PERMS_W_STREAM|PERMS_W_MAIL),
+ intval($my_perms),
dbesc(datetime_convert()),
dbesc(datetime_convert())
);
@@ -172,7 +186,8 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
);
if($r) {
$result['abook'] = $r[0];
- proc_run('php', 'include/notifier.php', 'permission_update', $result['abook']['abook_id']);
+ if($is_red)
+ proc_run('php', 'include/notifier.php', 'permission_update', $result['abook']['abook_id']);
}
$arr = array('channel_id' => $uid, 'abook' => $result['abook']);
@@ -188,12 +203,6 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
group_add_member($uid,'',$xchan_hash,$g['id']);
}
- // Then send a ping/message to the other side
-
-
$result['success'] = true;
return $result;
-
-
-
}
diff --git a/include/group.php b/include/group.php
index 8f690785d..56f177ab0 100644
--- a/include/group.php
+++ b/include/group.php
@@ -14,11 +14,11 @@ function group_add($uid,$name,$public = 0) {
// access lists. What we're doing here is reviving the dead group, but old content which
// was restricted to this group may now be seen by the new group members.
- $z = q("SELECT * FROM `group` WHERE `id` = %d LIMIT 1",
+ $z = q("SELECT * FROM `groups` WHERE `id` = %d LIMIT 1",
intval($r)
);
if(count($z) && $z[0]['deleted']) {
- $r = q("UPDATE `group` SET `deleted` = 0 WHERE `uid` = %d AND `name` = '%s' LIMIT 1",
+ $r = q("UPDATE `groups` SET `deleted` = 0 WHERE `uid` = %d AND `name` = '%s' LIMIT 1",
intval($uid),
dbesc($name)
);
@@ -31,13 +31,13 @@ function group_add($uid,$name,$public = 0) {
$dups = false;
$hash = random_string() . $name;
- $r = q("SELECT id FROM `group` WHERE hash = '%s' LIMIT 1", dbesc($hash));
+ $r = q("SELECT id FROM `groups` WHERE hash = '%s' LIMIT 1", dbesc($hash));
if($r)
$dups = true;
} while($dups == true);
- $r = q("INSERT INTO `group` ( hash, uid, visible, name )
+ $r = q("INSERT INTO `groups` ( hash, uid, visible, name )
VALUES( '%s', %d, %d, '%s' ) ",
dbesc($hash),
intval($uid),
@@ -53,7 +53,7 @@ function group_add($uid,$name,$public = 0) {
function group_rmv($uid,$name) {
$ret = false;
if(x($uid) && x($name)) {
- $r = q("SELECT id, hash FROM `group` WHERE `uid` = %d AND `name` = '%s' LIMIT 1",
+ $r = q("SELECT id, hash FROM `groups` WHERE `uid` = %d AND `name` = '%s' LIMIT 1",
intval($uid),
dbesc($name)
);
@@ -104,7 +104,7 @@ function group_rmv($uid,$name) {
);
// remove group
- $r = q("UPDATE `group` SET `deleted` = 1 WHERE `uid` = %d AND `name` = '%s' LIMIT 1",
+ $r = q("UPDATE `groups` SET `deleted` = 1 WHERE `uid` = %d AND `name` = '%s' LIMIT 1",
intval($uid),
dbesc($name)
);
@@ -119,7 +119,7 @@ function group_rmv($uid,$name) {
function group_byname($uid,$name) {
if((! $uid) || (! strlen($name)))
return false;
- $r = q("SELECT * FROM `group` WHERE `uid` = %d AND `name` = '%s' LIMIT 1",
+ $r = q("SELECT * FROM `groups` WHERE `uid` = %d AND `name` = '%s' LIMIT 1",
intval($uid),
dbesc($name)
);
@@ -132,7 +132,7 @@ function group_byname($uid,$name) {
function group_rec_byhash($uid,$hash) {
if((! $uid) || (! strlen($hash)))
return false;
- $r = q("SELECT * FROM `group` WHERE `uid` = %d AND `hash` = '%s' LIMIT 1",
+ $r = q("SELECT * FROM `groups` WHERE `uid` = %d AND `hash` = '%s' LIMIT 1",
intval($uid),
dbesc($hash)
);
@@ -188,11 +188,11 @@ function group_get_members($gid) {
if(intval($gid)) {
$r = q("SELECT * FROM `group_member`
LEFT JOIN abook ON abook_xchan = `group_member`.`xchan` left join xchan on xchan_hash = abook_xchan
- WHERE `gid` = %d AND abook_channel = %d and `group_member`.`uid` = %d and not ( abook_flags & %d ) and not ( abook_flags & %d ) and not ( abook_flags & %d ) ORDER BY xchan_name ASC ",
+ WHERE `gid` = %d AND abook_channel = %d and `group_member`.`uid` = %d and not ( xchan_flags & %d ) and not ( abook_flags & %d ) and not ( abook_flags & %d ) ORDER BY xchan_name ASC ",
intval($gid),
intval(local_user()),
intval(local_user()),
- intval(ABOOK_FLAG_SELF),
+ intval(XCHAN_FLAGS_DELETED),
intval(ABOOK_FLAG_BLOCKED),
intval(ABOOK_FLAG_PENDING)
);
@@ -207,7 +207,7 @@ function mini_group_select($uid,$group = '') {
$grps = array();
$o = '';
- $r = q("SELECT * FROM `group` WHERE `deleted` = 0 AND `uid` = %d ORDER BY `name` ASC",
+ $r = q("SELECT * FROM `groups` WHERE `deleted` = 0 AND `uid` = %d ORDER BY `name` ASC",
intval($uid)
);
$grps[] = array('name' => '', 'hash' => '0', 'selected' => '');
@@ -229,7 +229,7 @@ function mini_group_select($uid,$group = '') {
-function group_side($every="contacts",$each="group",$edit = false, $group_id = 0, $cid = '',$mode = 1) {
+function group_side($every="connections",$each="group",$edit = false, $group_id = 0, $cid = '',$mode = 1) {
$o = '';
@@ -246,7 +246,7 @@ function group_side($every="contacts",$each="group",$edit = false, $group_id = 0
);
- $r = q("SELECT * FROM `group` WHERE `deleted` = 0 AND `uid` = %d ORDER BY `name` ASC",
+ $r = q("SELECT * FROM `groups` WHERE `deleted` = 0 AND `uid` = %d ORDER BY `name` ASC",
intval($_SESSION['uid'])
);
$member_of = array();
@@ -272,7 +272,7 @@ function group_side($every="contacts",$each="group",$edit = false, $group_id = 0
'cid' => $cid,
'text' => $rr['name'],
'selected' => $selected,
- 'href' => (($mode == 0) ? $each.'?f=&gid='.$rr['id'] : $each."/".$rr['id']),
+ 'href' => (($mode == 0) ? $each.'?f=&gid='.$rr['id'] : $each."/".$rr['id']) . ((x($_GET,'new')) ? '&new=' . $_GET['new'] : '') . ((x($_GET,'order')) ? '&order=' . $_GET['order'] : ''),
'edit' => $groupedit,
'ismember' => in_array($rr['id'],$member_of),
);
@@ -302,7 +302,7 @@ function expand_groups($a) {
$groups = implode(',', $x);
if($groups)
- $r = q("SELECT xchan FROM group_member WHERE gid IN ( select id from `group` where hash in ( $groups ))");
+ $r = q("SELECT xchan FROM group_member WHERE gid IN ( select id from `groups` where hash in ( $groups ))");
$ret = array();
if($r)
@@ -314,7 +314,7 @@ function expand_groups($a) {
function member_of($c) {
- $r = q("SELECT `group`.`name`, `group`.`id` FROM `group` LEFT JOIN `group_member` ON `group_member`.`gid` = `group`.`id` WHERE `group_member`.`xchan` = '%s' AND `group`.`deleted` = 0 ORDER BY `group`.`name` ASC ",
+ $r = q("SELECT `groups`.`name`, `groups`.`id` FROM `groups` LEFT JOIN `group_member` ON `group_member`.`gid` = `groups`.`id` WHERE `group_member`.`xchan` = '%s' AND `groups`.`deleted` = 0 ORDER BY `groups`.`name` ASC ",
dbesc($c)
);
diff --git a/include/identity.php b/include/identity.php
index b25594c87..2e611625a 100644
--- a/include/identity.php
+++ b/include/identity.php
@@ -22,8 +22,9 @@ require_once('include/crypto.php');
function identity_check_service_class($account_id) {
$ret = array('success' => false, $message => '');
- $r = q("select count(channel_id) as total from channel where channel_account_id = %d ",
- intval($account_id)
+ $r = q("select count(channel_id) as total from channel where channel_account_id = %d and not ( channel_pageflags & %d ) ",
+ intval($account_id),
+ intval(PAGE_REMOVED)
);
if(! ($r && count($r))) {
$ret['message'] = t('Unable to obtain identity information from database');
@@ -71,26 +72,37 @@ function validate_channelname($name) {
/**
- * @function create_dir_account()
+ * @function create_sys_channel()
* Create a system channel - which has no account attached
*
- * Currently unused.
- *
*/
-function create_dir_account() {
+function create_sys_channel() {
+ if(get_sys_channel())
+ return;
create_identity(array(
'account_id' => 'xxx', // This will create an identity with an (integer) account_id of 0, but account_id is required
- 'nickname' => 'dir',
- 'name' => 'Directory',
- 'pageflags' => PAGE_DIRECTORY_CHANNEL|PAGE_HIDDEN,
- 'publish' => 0
+ 'nickname' => 'sys',
+ 'name' => 'System',
+ 'pageflags' => PAGE_SYSTEM,
+ 'publish' => 0,
+ 'xchanflags' => XCHAN_FLAGS_SYSTEM
));
}
+function get_sys_channel() {
+ $r = q("select * from channel left join xchan on channel_hash = xchan_hash where (channel_pageflags & %d) limit 1",
+ intval(PAGE_SYSTEM)
+ );
+ if($r)
+ return $r[0];
+ return false;
+}
+
+
/**
* @channel_total()
- * Return the total number of channels on this site. No filtering is performed.
+ * Return the total number of channels on this site. No filtering is performed except to check PAGE_REMOVED
*
* @returns int
* on error returns boolean false
@@ -98,7 +110,10 @@ function create_dir_account() {
*/
function channel_total() {
- $r = q("select channel_id from channel where true");
+ $r = q("select channel_id from channel where not ( channel_pageflags & %d )",
+ intval(PAGE_REMOVED)
+ );
+
if(is_array($r))
return count($r);
return false;
@@ -145,7 +160,7 @@ function create_identity($arr) {
$name = escape_tags($arr['name']);
$pageflags = ((x($arr,'pageflags')) ? intval($arr['pageflags']) : PAGE_NORMAL);
-
+ $xchanflags = ((x($arr,'xchanflags')) ? intval($arr['xchanflags']) : XCHAN_FLAGS_NORMAL);
$name_error = validate_channelname($arr['name']);
if($name_error) {
$ret['message'] = $name_error;
@@ -243,7 +258,7 @@ function create_identity($arr) {
$newuid = $ret['channel']['channel_id'];
- $r = q("insert into xchan ( xchan_hash, xchan_guid, xchan_guid_sig, xchan_pubkey, xchan_photo_l, xchan_photo_m, xchan_photo_s, xchan_addr, xchan_url, xchan_follow, xchan_connurl, xchan_name, xchan_network, xchan_photo_date, xchan_name_date ) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
+ $r = q("insert into xchan ( xchan_hash, xchan_guid, xchan_guid_sig, xchan_pubkey, xchan_photo_l, xchan_photo_m, xchan_photo_s, xchan_addr, xchan_url, xchan_follow, xchan_connurl, xchan_name, xchan_network, xchan_photo_date, xchan_name_date, xchan_flags ) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d)",
dbesc($hash),
dbesc($guid),
dbesc($sig),
@@ -258,7 +273,8 @@ function create_identity($arr) {
dbesc($ret['channel']['channel_name']),
dbesc('zot'),
dbesc(datetime_convert()),
- dbesc(datetime_convert())
+ dbesc(datetime_convert()),
+ intval($xchanflags)
);
// Not checking return value.
@@ -396,7 +412,7 @@ function identity_basic_export($channel_id) {
$ret['hubloc'] = $r;
}
- $r = q("select * from `group` where uid = %d ",
+ $r = q("select * from `groups` where uid = %d ",
intval($channel_id)
);
@@ -470,12 +486,12 @@ function profile_load(&$a, $nickname, $profile = '') {
// get the current observer
$observer = $a->get_observer();
+ $can_view_profile = true;
+
// Can the observer see our profile?
require_once('include/permissions.php');
if(! perm_is_allowed($user[0]['channel_id'],$observer['xchan_hash'],'view_profile')) {
- // permission denied
- notice( t(' Sorry, you don\'t have the permission to view this profile. ') . EOL);
- return;
+ $can_view_profile = false;
}
if(! $profile) {
@@ -486,10 +502,10 @@ function profile_load(&$a, $nickname, $profile = '') {
if($r)
$profile = $r[0]['abook_profile'];
}
- $r = null;
+ $p = null;
if($profile) {
- $r = q("SELECT profile.uid AS profile_uid, profile.*, channel.* FROM profile
+ $p = q("SELECT profile.uid AS profile_uid, profile.*, channel.* FROM profile
LEFT JOIN channel ON profile.uid = channel.channel_id
WHERE channel.channel_address = '%s' AND profile.profile_guid = '%s' LIMIT 1",
dbesc($nickname),
@@ -497,8 +513,8 @@ function profile_load(&$a, $nickname, $profile = '') {
);
}
- if(! $r) {
- $r = q("SELECT profile.uid AS profile_uid, profile.*, channel.* FROM profile
+ if(! $p) {
+ $p = q("SELECT profile.uid AS profile_uid, profile.*, channel.* FROM profile
LEFT JOIN channel ON profile.uid = channel.channel_id
WHERE channel.channel_address = '%s' and not ( channel_pageflags & %d )
AND profile.is_default = 1 LIMIT 1",
@@ -507,7 +523,7 @@ function profile_load(&$a, $nickname, $profile = '') {
);
}
- if(! $r) {
+ if(! $p) {
logger('profile error: ' . $a->query_string, LOGGER_DEBUG);
notice( t('Requested profile is not available.') . EOL );
$a->error = 404;
@@ -516,34 +532,42 @@ function profile_load(&$a, $nickname, $profile = '') {
// fetch user tags if this isn't the default profile
- if(! $r[0]['is_default']) {
+ if(! $p[0]['is_default']) {
$x = q("select `keywords` from `profile` where uid = %d and `is_default` = 1 limit 1",
intval($profile_uid)
);
- if($x)
- $r[0]['keywords'] = $x[0]['keywords'];
+ if($x && $can_view_profile)
+ $p[0]['keywords'] = $x[0]['keywords'];
}
- if($r[0]['keywords']) {
- $keywords = str_replace(array('#',',',' ',',,'),array('',' ',',',','),$r[0]['keywords']);
- if(strlen($keywords))
+ if($p[0]['keywords']) {
+ $keywords = str_replace(array('#',',',' ',',,'),array('',' ',',',','),$p[0]['keywords']);
+ if(strlen($keywords) && $can_view_profile)
$a->page['htmlhead'] .= '<meta name="keywords" content="' . htmlentities($keywords,ENT_COMPAT,'UTF-8') . '" />' . "\r\n" ;
}
- $a->profile = $r[0];
- $a->profile_uid = $r[0]['profile_uid'];
+ if($can_view_profile) {
+ $a->profile = $p[0];
+ $online = get_online_status($nickname);
+ $a->profile['online_status'] = $online['result'];
+
+ $a->profile_uid = $p[0]['profile_uid'];
- $a->page['title'] = $a->profile['channel_name'] . " - " . $a->profile['channel_address'] . "@" . $a->get_hostname();
+ $a->page['title'] = $a->profile['channel_name'] . " - " . $a->profile['channel_address'] . "@" . $a->get_hostname();
+ }
- $a->profile['channel_mobile_theme'] = get_pconfig(local_user(),'system', 'mobile_theme');
- $_SESSION['theme'] = $a->profile['channel_theme'];
- $_SESSION['mobile_theme'] = $a->profile['channel_mobile_theme'];
+ if(local_user()) {
+ $a->profile['channel_mobile_theme'] = get_pconfig(local_user(),'system', 'mobile_theme');
+ $_SESSION['mobile_theme'] = $a->profile['channel_mobile_theme'];
+ }
/**
* load/reload current theme info
*/
+ $_SESSION['theme'] = $p[0]['channel_theme'];
+
$a->set_template_engine(); // reset the template engine to the default in case the user's theme doesn't specify one
$theme_info_file = "view/theme/".current_theme()."/php/theme.php";
@@ -551,6 +575,12 @@ function profile_load(&$a, $nickname, $profile = '') {
require_once($theme_info_file);
}
+ if(! $can_view_profile) {
+ // permission denied
+ notice( t(' Sorry, you don\'t have the permission to view this profile. ') . EOL);
+ return;
+ }
+
return;
}
@@ -655,6 +685,7 @@ function profile_sidebar($profile, $block = 0, $show_connect = true) {
}
}
+
if((x($profile,'address') == 1)
|| (x($profile,'locality') == 1)
|| (x($profile,'region') == 1)
@@ -665,9 +696,15 @@ function profile_sidebar($profile, $block = 0, $show_connect = true) {
$gender = ((x($profile,'gender') == 1) ? t('Gender:') : False);
$marital = ((x($profile,'marital') == 1) ? t('Status:') : False);
$homepage = ((x($profile,'homepage') == 1) ? t('Homepage:') : False);
+ $profile['online'] = (($profile['online_status'] === 'online') ? t('Online Now') : False);
+logger('online: ' . $profile['online']);
+
+ if(! perm_is_allowed($profile['uid'],((is_array($observer)) ? $observer['xchan_hash'] : ''),'view_profile')) {
+ $block = true;
+ }
if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) {
- $location = $pdesc = $gender = $marital = $homepage = False;
+ $location = $pdesc = $gender = $marital = $homepage = $online = False;
}
$firstname = ((strpos($profile['name'],' '))
@@ -688,7 +725,7 @@ function profile_sidebar($profile, $block = 0, $show_connect = true) {
$channel_menu = menu_render($m);
}
$menublock = get_pconfig($profile['uid'],'system','channel_menublock');
- if ($menublock) {
+ if ($menublock && (! $block)) {
require_once('include/comanche.php');
$channel_menu .= comanche_block($menublock);
}
@@ -935,6 +972,8 @@ function advanced_profile(&$a) {
if($txt = prepare_text($a->profile['contact'])) $profile['contact'] = array( t('Contact information and Social Networks:'), $txt);
+ if($txt = prepare_text($a->profile['channels'])) $profile['channels'] = array( t('My other channels:'), $txt);
+
if($txt = prepare_text($a->profile['music'])) $profile['music'] = array( t('Musical interests:'), $txt);
if($txt = prepare_text($a->profile['book'])) $profile['book'] = array( t('Books, literature:'), $txt);
@@ -949,44 +988,15 @@ function advanced_profile(&$a) {
if($txt = prepare_text($a->profile['education'])) $profile['education'] = array( t('School/education:'), $txt );
- $r = q("select * from obj left join term on obj_obj = term_hash where term_hash != '' and obj_page = '%s' and uid = %d and obj_type = %d
- order by obj_verb, term",
- dbesc($a->profile['profile_guid']),
- intval($a->profile['profile_uid']),
- intval(TERM_OBJ_THING)
- );
- $things = null;
+ $things = get_things($a->profile['profile_guid'],$a->profile['profile_uid']);
- if($r) {
- $things = array();
-
- // Use the system obj_verbs array as a sort key, since we don't really
- // want an alphabetic sort. To change the order, use a plugin to
- // alter the obj_verbs() array or alter it in code. Unknown verbs come
- // after the known ones - in no particular order.
-
- $v = obj_verbs();
- foreach($v as $k => $foo)
- $things[$k] = null;
- foreach($r as $rr) {
- if(! $things[$rr['obj_verb']])
- $things[$rr['obj_verb']] = array();
- $things[$rr['obj_verb']][] = array('term' => $rr['term'],'url' => $rr['url'],'img' => $rr['imgurl']);
- }
- $sorted_things = array();
- if($things)
- foreach($things as $k => $v)
- if(is_array($things[$k]))
- $sorted_things[$k] = $v;
- }
-
- logger('mod_profile: things: ' . print_r($sorted_things,true), LOGGER_DATA);
+ logger('mod_profile: things: ' . print_r($things,true), LOGGER_DATA);
return replace_macros($tpl, array(
'$title' => t('Profile'),
'$profile' => $profile,
- '$things' => $sorted_things
+ '$things' => $things
));
}
@@ -1028,15 +1038,18 @@ function zid_init(&$a) {
if(validate_email($tmp_str)) {
proc_run('php','include/gprobe.php',bin2hex($tmp_str));
$arr = array('zid' => $tmp_str, 'url' => $a->cmd);
- call_hooks('zid_init',$arr);
- if((! local_user()) && (! remote_user())) {
- logger('zid_init: not authenticated. Invoking reverse magic-auth for ' . $tmp_str);
- $r = q("select * from hubloc where hubloc_addr = '%s' order by hubloc_id desc limit 1",
+ call_hooks('zid_init',$arr);
+ if(! local_user()) {
+ $r = q("select * from hubloc where hubloc_addr = '%s' order by hubloc_connected desc limit 1",
dbesc($tmp_str)
);
+ if($r && remote_user() && remote_user() === $r[0]['hubloc_hash'])
+ return;
+ logger('zid_init: not authenticated. Invoking reverse magic-auth for ' . $tmp_str);
// try to avoid recursion - but send them home to do a proper magic auth
- $dest = '/' . $a->query_string;
- $dest = str_replace(array('?zid=','&zid='),array('?rzid=','&rzid='),$dest);
+ $query = $a->query_string;
+ $query = str_replace(array('?zid=','&zid='),array('?rzid=','&rzid='),$query);
+ $dest = '/' . urlencode($query);
if($r && ($r[0]['hubloc_url'] != z_root()) && (! strstr($dest,'/magic')) && (! strstr($dest,'/rmagic'))) {
goaway($r[0]['hubloc_url'] . '/magic' . '?f=&rev=1&dest=' . z_root() . $dest);
}
@@ -1102,5 +1115,114 @@ function get_theme_uid() {
if(! $uid)
return local_user();
}
+ if(! $uid) {
+ $x = get_sys_channel();
+ if($x)
+ return $x['channel_id'];
+ }
return $uid;
}
+
+/**
+* @function get_default_profile_photo($size = 175)
+* Retrieves the path of the default_profile_photo for this system
+* with the specified size.
+* @param int $size
+* one of (175, 80, 48)
+* @returns string
+*
+*/
+
+function get_default_profile_photo($size = 175) {
+ $scheme = get_config('system','default_profile_photo');
+ if(! $scheme)
+ $scheme = 'rainbow_man';
+ return 'images/default_profile_photos/' . $scheme . '/' . $size . '.jpg';
+}
+
+
+/**
+ *
+ * @function is_foreigner($s)
+ * Test whether a given identity is NOT a member of the Red Matrix
+ * @param string $s;
+ * xchan_hash of the identity in question
+ *
+ * @returns boolean true or false
+ *
+ */
+
+function is_foreigner($s) {
+ return((strpbrk($s,'.:@')) ? true : false);
+}
+
+
+/**
+ *
+ * @function is_member($s)
+ * Test whether a given identity is a member of the Red Matrix
+ * @param string $s;
+ * xchan_hash of the identity in question
+ *
+ * @returns boolean true or false
+ *
+ */
+
+function is_member($s) {
+ return((is_foreigner($s)) ? false : true);
+}
+
+function get_online_status($nick) {
+
+ $ret = array('result' => false);
+
+ if(get_config('system','block_public') && ! local_user() && ! remote_user())
+ return $ret;
+
+ $r = q("select channel_id, channel_hash from channel where channel_address = '%s' limit 1",
+ dbesc(argv(1))
+ );
+ if($r) {
+ $hide = get_pconfig($r[0]['channel_id'],'system','hide_online_status');
+ if($hide)
+ return $ret;
+ $x = q("select cp_status from chatpresence where cp_xchan = '%s' and cp_room = 0 limit 1",
+ dbesc($r[0]['channel_hash'])
+ );
+ if($x)
+ $ret['result'] = $x[0]['cp_status'];
+ }
+
+ return $ret;
+}
+
+
+function remote_online_status($webbie) {
+
+ $result = false;
+ $r = q("select * from hubloc where hubloc_addr = '%s' limit 1",
+ dbesc($webbie)
+ );
+ if(! $r)
+ return $result;
+
+ $url = $r[0]['hubloc_url'] . '/online/' . substr($webbie,0,strpos($webbie,'@'));
+
+ $x = z_fetch_url($url);
+ if($x['success']) {
+ $j = json_decode($x['body'],true);
+ if($j)
+ $result = (($j['result']) ? $j['result'] : false);
+ }
+ return $result;
+
+}
+
+
+function get_channel_by_nick($nick) {
+ $r = q("select * from channel where channel_address = '%s' limit 1",
+ dbesc($nick)
+ );
+ return(($r) ? $r[0] : false);
+
+} \ No newline at end of file
diff --git a/include/items.php b/include/items.php
index dd3cf7644..d380a7939 100755
--- a/include/items.php
+++ b/include/items.php
@@ -18,10 +18,17 @@ function collect_recipients($item,&$private) {
require_once('include/group.php');
- if($item['item_private'])
- $private = true;
+ $private = ((intval($item['item_private'])) ? true : false);
+ $recipients = array();
+
+ // if the post is marked private but there are no recipients, only add the author and owner
+ // as recipients. The ACL for the post may live on the hub of a different clone. We need to
+ // get the post to that hub.
if($item['allow_cid'] || $item['allow_gid'] || $item['deny_cid'] || $item['deny_gid']) {
+
+ // it is private
+
$allow_people = expand_acl($item['allow_cid']);
$allow_groups = expand_groups(expand_acl($item['allow_gid']));
@@ -54,19 +61,19 @@ function collect_recipients($item,&$private) {
$private = true;
}
else {
- $recipients = array();
- $r = q("select * from abook where abook_channel = %d and not (abook_flags & %d) and not (abook_flags & %d) and not (abook_flags & %d)",
- intval($item['uid']),
- intval(ABOOK_FLAG_SELF),
- intval(ABOOK_FLAG_PENDING),
- intval(ABOOK_FLAG_ARCHIVED)
- );
- if($r) {
- foreach($r as $rr) {
- $recipients[] = $rr['abook_xchan'];
+ if(! $private) {
+ $r = q("select abook_xchan from abook where abook_channel = %d and not (abook_flags & %d) and not (abook_flags & %d) and not (abook_flags & %d)",
+ intval($item['uid']),
+ intval(ABOOK_FLAG_SELF),
+ intval(ABOOK_FLAG_PENDING),
+ intval(ABOOK_FLAG_ARCHIVED)
+ );
+ if($r) {
+ foreach($r as $rr) {
+ $recipients[] = $rr['abook_xchan'];
+ }
}
}
- $private = false;
}
// This is a somewhat expensive operation but important.
@@ -138,7 +145,9 @@ function can_comment_on_post($observer_xchan,$item) {
* @function red_zrl_callback
* preg_match function when fixing 'naked' links in mod item.php
* Check if we've got a hubloc for the site and use a zrl if we do, a url if we don't.
- *
+ * Remove any existing zid= param which may have been pasted by mistake - and will have
+ * the author's credentials. zid's are dynamic and can't really be passed around like
+ * that.
*/
@@ -152,11 +161,41 @@ function red_zrl_callback($matches) {
if($r)
$zrl = true;
}
+
+ $t = strip_zids($matches[2]);
+ if($t !== $matches[2]) {
+ $zrl = true;
+ $matches[2] = $t;
+ }
+
+ if($matches[1] === '#^')
+ $matches[1] = '';
if($zrl)
- return $matches[1] . '[zrl=' . $matches[2] . ']' . $matches[2] . '[/zrl]';
- return $matches[0];
+ return $matches[1] . '#^[zrl=' . $matches[2] . ']' . $matches[2] . '[/zrl]';
+ return $matches[1] . '#^[url=' . $matches[2] . ']' . $matches[2] . '[/url]';
+}
+
+
+// If we've got a url or zrl tag with a naked url somewhere in the link text,
+// escape it with quotes unless the naked url is a linked photo.
+
+function red_escape_zrl_callback($matches) {
+
+ // Uncertain why the url/zrl forms weren't picked up by the non-greedy regex.
+
+ if((strpos($matches[3],'zmg') !== false) || (strpos($matches[3],'img') !== false) || (strpos($matches[3],'zrl') !== false) || (strpos($matches[3],'url') !== false))
+ return $matches[0];
+ return '[' . $matches[1] . 'rl' . $matches[2] . ']' . $matches[3] . '"' . $matches[4] . '"' . $matches[5] . '[/' . $matches[6] . 'rl]';
+}
+
+function red_escape_codeblock($m) {
+ return '[$b64' . $m[2] . base64_encode($m[1]) . '[/' . $m[2] . ']';
}
+function red_unescape_codeblock($m) {
+ return '[' . $m[2] . base64_decode($m[1]) . '[/' . $m[2] . ']';
+
+}
/**
@@ -243,6 +282,12 @@ function post_activity_item($arr) {
$arr['comment_policy'] = map_scope($channel['channel_w_comment']);
+
+ if ((! $arr['plink']) && ($arr['item_flags'] & ITEM_THREAD_TOP)) {
+ $arr['plink'] = z_root() . '/channel/' . $channel['channel_address'] . '/?f=&mid=' . $arr['mid'];
+ }
+
+
// for the benefit of plugins, we will behave as if this is an API call rather than a normal online post
$_REQUEST['api_source'] = 1;
@@ -564,9 +609,9 @@ function title_is_body($title, $body) {
function get_item_elements($x) {
-// logger('get_item_elements');
+
$arr = array();
- $arr['body'] = (($x['body']) ? htmlentities($x['body'],ENT_COMPAT,'UTF-8',false) : '');
+ $arr['body'] = (($x['body']) ? htmlspecialchars($x['body'],ENT_COMPAT,'UTF-8',false) : '');
$arr['created'] = datetime_convert('UTC','UTC',$x['created']);
$arr['edited'] = datetime_convert('UTC','UTC',$x['edited']);
@@ -584,27 +629,27 @@ function get_item_elements($x) {
? datetime_convert('UTC','UTC',$x['commented'])
: $arr['created']);
- $arr['title'] = (($x['title']) ? htmlentities($x['title'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['title'] = (($x['title']) ? htmlspecialchars($x['title'], ENT_COMPAT,'UTF-8',false) : '');
if(mb_strlen($arr['title']) > 255)
$arr['title'] = mb_substr($arr['title'],0,255);
- $arr['app'] = (($x['app']) ? htmlentities($x['app'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['mid'] = (($x['message_id']) ? htmlentities($x['message_id'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['parent_mid'] = (($x['message_top']) ? htmlentities($x['message_top'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['thr_parent'] = (($x['message_parent']) ? htmlentities($x['message_parent'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['app'] = (($x['app']) ? htmlspecialchars($x['app'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['mid'] = (($x['message_id']) ? htmlspecialchars($x['message_id'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['parent_mid'] = (($x['message_top']) ? htmlspecialchars($x['message_top'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['thr_parent'] = (($x['message_parent']) ? htmlspecialchars($x['message_parent'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['plink'] = (($x['permalink']) ? htmlentities($x['permalink'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['location'] = (($x['location']) ? htmlentities($x['location'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['coord'] = (($x['longlat']) ? htmlentities($x['longlat'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['verb'] = (($x['verb']) ? htmlentities($x['verb'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['mimetype'] = (($x['mimetype']) ? htmlentities($x['mimetype'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['obj_type'] = (($x['object_type']) ? htmlentities($x['object_type'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['tgt_type'] = (($x['target_type']) ? htmlentities($x['target_type'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['comment_policy'] = (($x['comment_scope']) ? htmlentities($x['comment_scope'], ENT_COMPAT,'UTF-8',false) : 'contacts');
+ $arr['plink'] = (($x['permalink']) ? htmlspecialchars($x['permalink'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['location'] = (($x['location']) ? htmlspecialchars($x['location'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['coord'] = (($x['longlat']) ? htmlspecialchars($x['longlat'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['verb'] = (($x['verb']) ? htmlspecialchars($x['verb'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['mimetype'] = (($x['mimetype']) ? htmlspecialchars($x['mimetype'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['obj_type'] = (($x['object_type']) ? htmlspecialchars($x['object_type'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['tgt_type'] = (($x['target_type']) ? htmlspecialchars($x['target_type'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['comment_policy'] = (($x['comment_scope']) ? htmlspecialchars($x['comment_scope'], ENT_COMPAT,'UTF-8',false) : 'contacts');
- $arr['sig'] = (($x['signature']) ? htmlentities($x['signature'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['sig'] = (($x['signature']) ? htmlspecialchars($x['signature'], ENT_COMPAT,'UTF-8',false) : '');
$arr['object'] = activity_sanitise($x['object']);
@@ -667,7 +712,6 @@ function get_item_elements($x) {
$arr['body'] = json_encode(crypto_encapsulate($arr['body'],$key));
}
-
return $arr;
}
@@ -681,14 +725,60 @@ function import_author_xchan($x) {
return $arr['xchan_hash'];
if((! array_key_exists('network', $x)) || ($x['network'] === 'zot')) {
- return import_author_zot($x);
+ $y = import_author_zot($x);
+ }
+
+ if($x['network'] === 'rss') {
+ $y = import_author_rss($x);
+ }
+
+ return(($y) ? $y : false);
+}
+
+function import_author_rss($x) {
+
+ if(! $x['url'])
+ return false;
+
+ $r = q("select xchan_hash from xchan where xchan_network = 'rss' and xchan_url = '%s' limit 1",
+ dbesc($x['url'])
+ );
+ if($r) {
+ logger('import_author_rss: in cache' , LOGGER_DEBUG);
+ return $r[0]['xchan_hash'];
}
+ $name = trim($x['name']);
+
+ $r = q("insert into xchan ( xchan_hash, xchan_url, xchan_name, xchan_network )
+ values ( '%s', '%s', '%s', '%s' )",
+ dbesc($x['url']),
+ dbesc($x['url']),
+ dbesc(($name) ? $name : t('(Unknown)')),
+ dbesc('rss')
+ );
+ if($r) {
- // TODO: create xchans for other common and/or aligned networks
+ $photos = import_profile_photo($x['photo'],$x['url']);
+
+ if($photos) {
+ $r = q("update xchan set xchan_photo_date = '%s', xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s' where xchan_url = '%s' and xchan_network = 'rss' limit 1",
+ dbesc(datetime_convert('UTC','UTC',$arr['photo_updated'])),
+ dbesc($photos[0]),
+ dbesc($photos[1]),
+ dbesc($photos[2]),
+ dbesc($photos[3]),
+ dbesc($x['url'])
+ );
+ if($r)
+ return $x['url'];
+ }
+ }
return false;
+
}
+
function encode_item($item) {
$x = array();
$x['type'] = 'activity';
@@ -810,7 +900,7 @@ function encode_item_xchan($xchan) {
function encode_item_terms($terms) {
$ret = array();
- $allowed_export_terms = array( TERM_UNKNOWN, TERM_HASHTAG, TERM_MENTION, TERM_CATEGORY );
+ $allowed_export_terms = array( TERM_UNKNOWN, TERM_HASHTAG, TERM_MENTION, TERM_CATEGORY, TERM_BOOKMARK );
if($terms) {
foreach($terms as $term) {
@@ -822,7 +912,7 @@ function encode_item_terms($terms) {
}
function termtype($t) {
- $types = array('unknown','hashtag','mention','category','private_category','file','search');
+ $types = array('unknown','hashtag','mention','category','private_category','file','search','thing','bookmark');
return(($types[$t]) ? $types[$t] : 'unknown');
}
@@ -832,8 +922,8 @@ function decode_tags($t) {
$ret = array();
foreach($t as $x) {
$tag = array();
- $tag['term'] = htmlentities($x['tag'], ENT_COMPAT,'UTF-8',false);
- $tag['url'] = htmlentities($x['url'], ENT_COMPAT,'UTF-8',false);
+ $tag['term'] = htmlspecialchars($x['tag'], ENT_COMPAT,'UTF-8',false);
+ $tag['url'] = htmlspecialchars($x['url'], ENT_COMPAT,'UTF-8',false);
switch($x['type']) {
case 'hashtag':
$tag['type'] = TERM_HASHTAG;
@@ -853,6 +943,12 @@ function decode_tags($t) {
case 'search':
$tag['type'] = TERM_SEARCH;
break;
+ case 'thing':
+ $tag['type'] = TERM_THING;
+ break;
+ case 'bookmark':
+ $tag['type'] = TERM_BOOKMARK;
+ break;
default:
case 'unknown':
$tag['type'] = TERM_UNKNOWN;
@@ -876,12 +972,12 @@ function activity_sanitise($arr) {
if(is_array($x))
$ret[$k] = activity_sanitise($x);
else
- $ret[$k] = htmlentities($x, ENT_COMPAT,'UTF-8',false);
+ $ret[$k] = htmlspecialchars($x, ENT_COMPAT,'UTF-8',false);
}
return $ret;
}
else {
- return htmlentities($arr, ENT_COMPAT,'UTF-8', false);
+ return htmlspecialchars($arr, ENT_COMPAT,'UTF-8', false);
}
}
return '';
@@ -893,7 +989,7 @@ function array_sanitise($arr) {
if($arr) {
$ret = array();
foreach($arr as $x) {
- $ret[] = htmlentities($x, ENT_COMPAT,'UTF-8',false);
+ $ret[] = htmlspecialchars($x, ENT_COMPAT,'UTF-8',false);
}
return $ret;
}
@@ -958,8 +1054,8 @@ function get_mail_elements($x) {
$arr = array();
- $arr['body'] = (($x['body']) ? htmlentities($x['body'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['title'] = (($x['title'])? htmlentities($x['title'],ENT_COMPAT,'UTF-8',false) : '');
+ $arr['body'] = (($x['body']) ? htmlspecialchars($x['body'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['title'] = (($x['title'])? htmlspecialchars($x['title'],ENT_COMPAT,'UTF-8',false) : '');
$arr['created'] = datetime_convert('UTC','UTC',$x['created']);
if((! array_key_exists('expires',$x)) || ($x['expires'] === '0000-00-00 00:00:00'))
@@ -977,18 +1073,18 @@ function get_mail_elements($x) {
$key = get_config('system','pubkey');
$arr['mail_flags'] |= MAIL_OBSCURED;
- $arr['body'] = htmlentities($arr['body'],ENT_COMPAT,'UTF-8',false);
+ $arr['body'] = htmlspecialchars($arr['body'],ENT_COMPAT,'UTF-8',false);
if($arr['body'])
$arr['body'] = json_encode(crypto_encapsulate($arr['body'],$key));
- $arr['title'] = htmlentities($arr['title'],ENT_COMPAT,'UTF-8',false);
+ $arr['title'] = htmlspecialchars($arr['title'],ENT_COMPAT,'UTF-8',false);
if($arr['title'])
$arr['title'] = json_encode(crypto_encapsulate($arr['title'],$key));
if($arr['created'] > datetime_convert())
$arr['created'] = datetime_convert();
- $arr['mid'] = (($x['message_id']) ? htmlentities($x['message_id'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['parent_mid'] = (($x['message_parent']) ? htmlentities($x['message_parent'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['mid'] = (($x['message_id']) ? htmlspecialchars($x['message_id'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['parent_mid'] = (($x['message_parent']) ? htmlspecialchars($x['message_parent'], ENT_COMPAT,'UTF-8',false) : '');
if($x['attach'])
$arr['attach'] = activity_sanitise($x['attach']);
@@ -1017,18 +1113,18 @@ function get_profile_elements($x) {
else
return array();
- $arr['desc'] = (($x['title']) ? htmlentities($x['title'],ENT_COMPAT,'UTF-8',false) : '');
+ $arr['desc'] = (($x['title']) ? htmlspecialchars($x['title'],ENT_COMPAT,'UTF-8',false) : '');
$arr['dob'] = datetime_convert('UTC','UTC',$x['birthday'],'Y-m-d');
$arr['age'] = (($x['age']) ? intval($x['age']) : 0);
- $arr['gender'] = (($x['gender']) ? htmlentities($x['gender'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['marital'] = (($x['marital']) ? htmlentities($x['marital'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['sexual'] = (($x['sexual']) ? htmlentities($x['sexual'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['locale'] = (($x['locale']) ? htmlentities($x['locale'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['region'] = (($x['region']) ? htmlentities($x['region'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['postcode'] = (($x['postcode']) ? htmlentities($x['postcode'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['country'] = (($x['country']) ? htmlentities($x['country'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['gender'] = (($x['gender']) ? htmlspecialchars($x['gender'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['marital'] = (($x['marital']) ? htmlspecialchars($x['marital'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['sexual'] = (($x['sexual']) ? htmlspecialchars($x['sexual'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['locale'] = (($x['locale']) ? htmlspecialchars($x['locale'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['region'] = (($x['region']) ? htmlspecialchars($x['region'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['postcode'] = (($x['postcode']) ? htmlspecialchars($x['postcode'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['country'] = (($x['country']) ? htmlspecialchars($x['country'], ENT_COMPAT,'UTF-8',false) : '');
$arr['keywords'] = (($x['keywords'] && is_array($x['keywords'])) ? array_sanitise($x['keywords']) : array());
@@ -1489,7 +1585,7 @@ function item_store($arr,$allow_exec = false) {
}
- $arr['title'] = ((x($arr,'title')) ? notags(trim($arr['title'])) : '');
+ $arr['title'] = ((x($arr,'title')) ? trim($arr['title']) : '');
$arr['body'] = ((x($arr,'body')) ? trim($arr['body']) : '');
$arr['allow_cid'] = ((x($arr,'allow_cid')) ? trim($arr['allow_cid']) : '');
@@ -1499,7 +1595,6 @@ function item_store($arr,$allow_exec = false) {
$arr['item_private'] = ((x($arr,'item_private')) ? intval($arr['item_private']) : 0 );
$arr['item_flags'] = ((x($arr,'item_flags')) ? intval($arr['item_flags']) : 0 );
- $arr['title'] = escape_tags($arr['title']);
// only detect language if we have text content, and if the post is private but not yet
@@ -1543,7 +1638,6 @@ function item_store($arr,$allow_exec = false) {
}
-
if((x($arr,'object')) && is_array($arr['object'])) {
activity_sanitise($arr['object']);
$arr['object'] = json_encode($arr['object']);
@@ -1606,6 +1700,8 @@ function item_store($arr,$allow_exec = false) {
if(! $arr['plink'])
$arr['plink'] = $arr['llink'];
+
+
if($arr['parent_mid'] === $arr['mid']) {
$parent_id = 0;
$parent_deleted = 0;
@@ -2087,6 +2183,17 @@ function send_status_notifications($post_id,$item) {
}
}
+ $link = get_app()->get_baseurl() . '/display/' . $item['mid'];
+
+
+ $y = q("select id from notify where link = '%s' and uid = %d limit 1",
+ dbesc($link),
+ intval($item['uid'])
+ );
+
+ if($y)
+ $notify = false;
+
if(! $notify)
return;
require_once('include/enotify.php');
@@ -2095,7 +2202,7 @@ function send_status_notifications($post_id,$item) {
'from_xchan' => $item['author_xchan'],
'to_xchan' => $r[0]['channel_hash'],
'item' => $item,
- 'link' => get_app()->get_baseurl() . '/display/' . $item['mid'],
+ 'link' => $link,
'verb' => ACTIVITY_POST,
'otype' => 'item',
'parent' => $parent,
@@ -2150,6 +2257,34 @@ function tag_deliver($uid,$item_id) {
$item = $i[0];
+ $terms = get_terms_oftype($item['term'],TERM_BOOKMARK);
+
+ if($terms && (! $item['item_restrict'])) {
+ logger('tag_deliver: found bookmark');
+ $bookmark_self = intval(get_pconfig($uid,'system','bookmark_self'));
+ if(perm_is_allowed($u[0]['channel_id'],$item['author_xchan'],'bookmark') && (($item['author_xchan'] != $u[0]['channel_hash']) || ($bookmark_self))) {
+ require_once('include/bookmarks.php');
+ require_once('include/Contact.php');
+
+ $s = q("select * from xchan where xchan_hash = '%s' limit 1",
+ dbesc($item['author_xchan'])
+ );
+ if($s) {
+ foreach($terms as $t) {
+ bookmark_add($u[0],$s[0],$t,$item['item_private']);
+ }
+ }
+ }
+ }
+
+ if(($item['source_xchan']) && ($item['item_flags'] & ITEM_UPLINK) && ($item['item_flags'] & ITEM_THREAD_TOP) && ($item['edited'] != $item['created'])) {
+ // this is an update to a post which was already processed by us and has a second delivery chain
+ // Just start the second delivery chain to deliver the updated post
+ proc_run('php','include/notifier.php','tgroup',$item['id']);
+ return;
+ }
+
+
if($item['obj_type'] === ACTIVITY_OBJ_TAGTERM) {
// We received a community tag activity for a post.
@@ -2172,6 +2307,13 @@ function tag_deliver($uid,$item_id) {
if(is_array($j_obj['link']))
$taglink = get_rel_link($j_obj['link'],'alternate');
store_item_tag($u[0]['channel_id'],$p[0]['id'],TERM_OBJ_POST,TERM_HASHTAG,$j_obj['title'],$j_obj['id']);
+ $x = q("update item set edited = '%s', received = '%s', changed = '%s' where mid = '%s' and uid = %d limit 1",
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ dbesc($j_tgt['id']),
+ intval($u[0]['channel_id'])
+ );
proc_run('php','include/notifier.php','edit_post',$p[0]['id']);
}
}
@@ -2187,7 +2329,7 @@ function tag_deliver($uid,$item_id) {
logger('check_item_source returns true');
- // This might be a followup by the original post author to a tagged forum
+ // This might be a followup (e.g. comment) by the original post author to a tagged forum
// If so setup a second delivery chain
$r = null;
@@ -2206,7 +2348,7 @@ function tag_deliver($uid,$item_id) {
// now change this copy of the post to a forum head message and deliver to all the tgroup members
// also reset all the privacy bits to the forum default permissions
- $private = (($u[0]['allow_cid'] || $u[0]['allow_gid'] || $u[0]['deny_cid'] || $u[0]['deny_gid']) ? 1 : 0);
+ $private = (($u[0]['channel_allow_cid'] || $u[0]['channel_allow_gid'] || $u[0]['channel_deny_cid'] || $u[0]['channel_deny_gid']) ? 1 : 0);
$flag_bits = ITEM_WALL|ITEM_ORIGIN;
@@ -2222,10 +2364,10 @@ function tag_deliver($uid,$item_id) {
deny_cid = '%s', deny_gid = '%s', item_private = %d where id = %d limit 1",
intval($flag_bits),
dbesc($u[0]['channel_hash']),
- dbesc($u[0]['allow_cid']),
- dbesc($u[0]['allow_gid']),
- dbesc($u[0]['deny_cid']),
- dbesc($u[0]['deny_gid']),
+ dbesc($u[0]['channel_allow_cid']),
+ dbesc($u[0]['channel_allow_gid']),
+ dbesc($u[0]['channel_deny_cid']),
+ dbesc($u[0]['channel_deny_gid']),
intval($private),
intval($item_id)
);
@@ -2245,7 +2387,7 @@ function tag_deliver($uid,$item_id) {
if($terms) {
foreach($terms as $term) {
- if(($term['term'] == $u[0]['channel_name']) && link_compare($term['url'],$link)) {
+ if((strcasecmp($term['term'],$u[0]['channel_name']) == 0) && link_compare($term['url'],$link)) {
$mention = true;
break;
}
@@ -2278,7 +2420,7 @@ function tag_deliver($uid,$item_id) {
$body = preg_replace('/\[share(.*?)\[\/share\]/','',$body);
- $pattern = '/@\[zrl\=' . preg_quote($term['url'],'/') . '\]' . preg_quote($u[0]['channel_name'],'/') . '\[\/zrl\]/';
+ $pattern = '/@\!?\[zrl\=' . preg_quote($term['url'],'/') . '\]' . preg_quote($u[0]['channel_name'],'/') . '\[\/zrl\]/';
if(! preg_match($pattern,$body,$matches)) {
logger('tag_deliver: mention was in a reshare - ignoring');
@@ -2308,8 +2450,10 @@ function tag_deliver($uid,$item_id) {
}
- if((! $mention) && (! $union))
+ if((! $mention) && (! $union)) {
+ logger('tag_deliver: no mention and no union.');
return;
+ }
// tgroup delivery - setup a second delivery chain
@@ -2326,7 +2470,7 @@ function tag_deliver($uid,$item_id) {
// now change this copy of the post to a forum head message and deliver to all the tgroup members
// also reset all the privacy bits to the forum default permissions
- $private = (($u[0]['allow_cid'] || $u[0]['allow_gid'] || $u[0]['deny_cid'] || $u[0]['deny_gid']) ? 1 : 0);
+ $private = (($u[0]['channel_allow_cid'] || $u[0]['channel_allow_gid'] || $u[0]['channel_deny_cid'] || $u[0]['channel_deny_gid']) ? 1 : 0);
$flag_bits = ITEM_WALL|ITEM_ORIGIN|ITEM_UPLINK;
@@ -2340,10 +2484,10 @@ function tag_deliver($uid,$item_id) {
deny_cid = '%s', deny_gid = '%s', item_private = %d where id = %d limit 1",
intval($flag_bits),
dbesc($u[0]['channel_hash']),
- dbesc($u[0]['allow_cid']),
- dbesc($u[0]['allow_gid']),
- dbesc($u[0]['deny_cid']),
- dbesc($u[0]['deny_gid']),
+ dbesc($u[0]['channel_allow_cid']),
+ dbesc($u[0]['channel_allow_gid']),
+ dbesc($u[0]['channel_deny_cid']),
+ dbesc($u[0]['channel_deny_gid']),
intval($private),
intval($item_id)
);
@@ -2363,12 +2507,13 @@ function tgroup_check($uid,$item) {
$mention = false;
// check that the message originated elsewhere and is a top-level post
- // or is a followup and we have already accepted the top level post
+ // or is a followup and we have already accepted the top level post as an uplink
if($item['mid'] != $item['parent_mid']) {
- $r = q("select id from item where mid = '%s' and uid = %d limit 1",
+ $r = q("select id from item where mid = '%s' and uid = %d and ( item_flags & %d ) limit 1",
dbesc($item['parent_mid']),
- intval($uid)
+ intval($uid),
+ intval(ITEM_UPLINK)
);
if($r)
return true;
@@ -2411,7 +2556,7 @@ function tgroup_check($uid,$item) {
$body = preg_replace('/\[share(.*?)\[\/share\]/','',$item['body']);
- $pattern = '/@\[zrl\=' . preg_quote($term['url'],'/') . '\]' . preg_quote($u[0]['channel_name'],'/') . '\[\/zrl\]/';
+ $pattern = '/@\!?\[zrl\=' . preg_quote($term['url'],'/') . '\]' . preg_quote($u[0]['channel_name'],'/') . '\[\/zrl\]/';
if(! preg_match($pattern,$body,$matches)) {
logger('tgroup_check: mention was in a reshare - ignoring');
@@ -2442,9 +2587,9 @@ function check_item_source($uid,$item) {
return false;
- $r = q("select * from source where src_channel_id = %d and src_xchan = '%s' limit 1",
+ $r = q("select * from source where src_channel_id = %d and ( src_xchan = '%s' || src_xchan = '*' ) limit 1",
intval($uid),
- dbesc($item['owner_xchan'])
+ dbesc(($item['source_xchan']) ? $item['source_xchan'] : $item['owner_xchan'])
);
if(! $r)
@@ -2478,7 +2623,7 @@ function check_item_source($uid,$item) {
foreach($words as $word) {
if(substr($word,0,1) === '#' && $tags) {
foreach($tags as $t)
- if($t['type'] == TERM_HASHTAG && substr($t,1) === $word)
+ if(($t['type'] == TERM_HASHTAG) && ((substr($t,1) === substr($word,1)) || (substr($word,1) === '*')))
return true;
}
if(stristr($text,$word) !== false)
@@ -3537,26 +3682,6 @@ function posted_dates($uid,$wall) {
}
-function posted_date_widget($url,$uid,$wall) {
- $o = '';
-
- if(! feature_enabled($uid,'archives'))
- return $o;
-
- $ret = posted_dates($uid,$wall);
- if(! count($ret))
- return $o;
-
- $o = replace_macros(get_markup_template('posted_date_widget.tpl'),array(
- '$title' => t('Archives'),
- '$size' => ((count($ret) > 6) ? 6 : count($ret)),
- '$url' => $url,
- '$dates' => $ret
- ));
- return $o;
-}
-
-
function fetch_post_tags($items,$link = false) {
$tag_finder = array();
@@ -3695,23 +3820,28 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C
$def_acl = '';
$item_uids = ' true ';
-
+
+ if ($arr['uid']) $uid= $arr['uid'];
+
if($channel) {
$uid = $channel['channel_id'];
$uidhash = $channel['channel_hash'];
$item_uids = " item.uid = " . intval($uid) . " ";
}
-
+
if($arr['star'])
$sql_options .= " and (item_flags & " . intval(ITEM_STARRED) . ") ";
if($arr['wall'])
$sql_options .= " and (item_flags & " . intval(ITEM_WALL) . ") ";
-
+
$sql_extra = " AND item.parent IN ( SELECT parent FROM item WHERE (item_flags & " . intval(ITEM_THREAD_TOP) . ") $sql_options ) ";
-
+
+ if($arr['since_id'])
+ $sql_extra .= " and item.id > " . $since_id . " ";
+
if($arr['gid'] && $uid) {
- $r = q("SELECT * FROM `group` WHERE id = %d AND uid = %d LIMIT 1",
+ $r = q("SELECT * FROM `groups` WHERE id = %d AND uid = %d LIMIT 1",
intval($arr['group']),
intval($uid)
);
@@ -3789,6 +3919,7 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C
);
}
+
if(($client_mode & CLIENT_MODE_UPDATE) && (! ($client_mode & CLIENT_MODE_LOAD))) {
// only setup pagination on initial page view
@@ -3801,6 +3932,8 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C
$pager_sql = sprintf(" LIMIT %d, %d ",intval(get_app()->pager['start']), intval(get_app()->pager['itemspage']));
}
+ if(isset($arr['start']) && isset($arr['records']))
+ $pager_sql = sprintf(" LIMIT %d, %d ",intval($arr['start']), intval($arr['records']));
if(($arr['cmin'] != 0) || ($arr['cmax'] != 99)) {
@@ -3835,7 +3968,7 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C
$item_restrict = " AND item_restrict = 0 ";
- if($arr['nouveau'] && ($client_mode & CLIENT_MODELOAD) && $channel) {
+ if($arr['nouveau'] && ($client_mode & CLIENT_MODE_LOAD) && $channel) {
// "New Item View" - show all items unthreaded in reverse created date order
$items = q("SELECT item.*, item.id AS item_id FROM item
@@ -3860,7 +3993,7 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C
else
$ordering = "commented";
- if(($client_mode & CLIENT_MODE_LOAD) || ($client_mode & CLIENT_MODE_NORMAL)) {
+ if(($client_mode & CLIENT_MODE_LOAD) || ($client_mode == CLIENT_MODE_NORMAL)) {
// Fetch a page full of parent items for this page
@@ -3873,7 +4006,7 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C
ORDER BY item.$ordering DESC $pager_sql ",
intval(ABOOK_FLAG_BLOCKED)
);
-
+
}
else {
// update
@@ -3928,3 +4061,52 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C
return $items;
}
+
+
+function update_remote_id($channel,$post_id,$webpage,$pagetitle,$namespace,$remote_id,$mid) {
+
+ $page_type = '';
+
+ if($webpage & ITEM_WEBPAGE)
+ $page_type = 'WEBPAGE';
+ elseif($webpage & ITEM_BUILDBLOCK)
+ $page_type = 'BUILDBLOCK';
+ elseif($webpage & ITEM_PDL)
+ $page_type = 'PDL';
+ elseif($namespace && $remote_id) {
+ $page_type = $namespace;
+ $pagetitle = $remote_id;
+ }
+
+ if($page_type) {
+
+ // store page info as an alternate message_id so we can access it via
+ // https://sitename/page/$channelname/$pagetitle
+ // if no pagetitle was given or it couldn't be transliterated into a url, use the first
+ // sixteen bytes of the mid - which makes the link portable and not quite as daunting
+ // as the entire mid. If it were the post_id the link would be less portable.
+
+ $r = q("select * from item_id where iid = %d and uid = %d and service = '%s' limit 1",
+ intval($post_id),
+ intval($channel['channel_id']),
+ dbesc($page_type)
+ );
+ if($r) {
+ q("update item_id set sid = '%s' where id = %d limit 1",
+ dbesc(($pagetitle) ? $pagetitle : substr($mid,0,16)),
+ intval($r[0]['id'])
+ );
+ }
+ else {
+ q("insert into item_id ( iid, uid, sid, service ) values ( %d, %d, '%s','%s' )",
+ intval($post_id),
+ intval($channel['channel_id']),
+ dbesc(($pagetitle) ? $pagetitle : substr($mid,0,16)),
+ dbesc($page_type)
+ );
+ }
+ }
+
+}
+
+
diff --git a/include/js_strings.php b/include/js_strings.php
index afa8f075a..cd0ee8c7c 100644
--- a/include/js_strings.php
+++ b/include/js_strings.php
@@ -2,18 +2,20 @@
function js_strings() {
return replace_macros(get_markup_template('js_strings.tpl'), array(
- '$delitem' => t('Delete this item?'),
- '$comment' => t('Comment'),
- '$showmore' => t('show more'),
- '$showfewer' => t('show fewer'),
- '$pwshort' => t("Password too short"),
- '$pwnomatch' => t("Passwords do not match"),
- '$everybody' => t('everybody'),
- '$passphrase' => t('Secret Passphrase'),
- '$passhint' => t('Passphrase hint'),
+ '$delitem' => t('Delete this item?'),
+ '$comment' => t('Comment'),
+ '$showmore' => t('show more'),
+ '$showfewer' => t('show fewer'),
+ '$divgrowmore' => t('+ Show More'),
+ '$divgrowless' => t('- Show Less'),
+ '$pwshort' => t("Password too short"),
+ '$pwnomatch' => t("Passwords do not match"),
+ '$everybody' => t('everybody'),
+ '$passphrase' => t('Secret Passphrase'),
+ '$passhint' => t('Passphrase hint'),
- '$t01' => ((t('timeago.prefixAgo') != 'timeago.prefixAgo') ? t('timeago.prefixAgo') : 'null'),
- '$t02' => ((t('timeago.suffixAgo') != 'timeago.suffixAgo') ? t('timeago.suffixAgo') : 'null'),
+ '$t01' => ((t('timeago.prefixAgo') != 'timeago.prefixAgo') ? t('timeago.prefixAgo') : ''),
+ '$t02' => ((t('timeago.prefixFromNow') != 'timeago.prefixFromNow') ? t('timeago.prefixFromNow') : ''),
'$t03' => t('ago'),
'$t04' => t('from now'),
'$t05' => t('less than a minute'),
@@ -30,6 +32,5 @@ function js_strings() {
'$t16' => t(' '), // wordSeparator
'$t17' => ((t('timeago.numbers') != 'timeago.numbers') ? t('timeago.numbers') : '[]')
-
));
-} \ No newline at end of file
+}
diff --git a/include/language.php b/include/language.php
index 2e7ad5ff1..b43f5aacc 100644
--- a/include/language.php
+++ b/include/language.php
@@ -1,22 +1,28 @@
-<?php /** @file */
-
-
+<?php
/**
- * translation support
+ * @file
+ *
+ * @brief translation support
+ *
+ * This file contains functions to work with translations and other
+ * language related tasks.
*/
/**
+ * @brief Get the browser's submitted preferred languages.
+ *
+ * This functions parses the HTTP_ACCEPT_LANGUAGE header sent by the browser and
+ * extracts the preferred languages and their priority.
*
* Get the language setting directly from system variables, bypassing get_config()
* as database may not yet be configured.
*
* If possible, we use the value from the browser.
*
+ * @return array with ordered list of preferred languages from browser
*/
-
function get_browser_language() {
-
$langs = array();
if (x($_SERVER,'HTTP_ACCEPT_LANGUAGE')) {
@@ -43,9 +49,18 @@ function get_browser_language() {
return $langs;
}
-
+/**
+ * @brief Returns the best language for which also a translation exists.
+ *
+ * This function takes the results from get_browser_language() and compares it
+ * with the available translations and returns the best fitting language for
+ * which there exists a translation.
+ *
+ * If there is no match fall back to config['system']['language']
+ *
+ * @return Language code in 2-letter ISO 639-1 (en).
+ */
function get_best_language() {
-
$langs = get_browser_language();
if(isset($langs) && count($langs)) {
@@ -79,7 +94,6 @@ function push_lang($language) {
$a->strings = array();
load_translation_table($language);
$a->language = $language;
-
}
function pop_lang() {
@@ -109,7 +123,7 @@ function load_translation_table($lang, $install = false) {
if(! $install) {
$plugins = q("SELECT name FROM addon WHERE installed=1;");
- if ($plugins!==false) {
+ if ($plugins !== false) {
foreach($plugins as $p) {
$name = $p['name'];
if(file_exists("addon/$name/lang/$lang/strings.php")) {
@@ -128,15 +142,18 @@ function load_translation_table($lang, $install = false) {
}
-// translate string if translation exists
-
+/**
+ * @brief translate string if translation exists.
+ *
+ * @param s string that should get translated
+ * @return translated string if exsists, otherwise s
+ */
function t($s) {
-
global $a;
if(x($a->strings,$s)) {
$t = $a->strings[$s];
- return is_array($t)?$t[0]:$t;
+ return is_array($t) ? $t[0] : $t;
}
return $s;
}
@@ -147,14 +164,14 @@ function tt($singular, $plural, $count){
if(x($a->strings,$singular)) {
$t = $a->strings[$singular];
- $f = 'string_plural_select_' . str_replace('-','_',$a->language);
+ $f = 'string_plural_select_' . str_replace('-', '_', $a->language);
if(! function_exists($f))
$f = 'string_plural_select_default';
$k = $f($count);
- return is_array($t)?$t[$k]:$t;
+ return is_array($t) ? $t[$k] : $t;
}
- if ($count!=1){
+ if ($count != 1){
return $plural;
} else {
return $singular;
@@ -168,84 +185,47 @@ function string_plural_select_default($n) {
return ($n != 1);
}
-
-
+/**
+ * @brief Takes a string and tries to identify the language.
+ *
+ * It uses the pear library Text_LanguageDetect and it can identify 52 human languages.
+ * It returns the identified languges and a confidence score for each.
+ *
+ * Strings need to have a min length config['system']['language_detect_min_length']
+ * and you can influence the confidence that must be met before a result will get
+ * returned through config['system']['language_detect_min_confidence'].
+ *
+ * @see http://pear.php.net/package/Text_LanguageDetect
+ * @param s A string to examine
+ * @return Language code in 2-letter ISO 639-1 (en, de, fr) format
+ */
function detect_language($s) {
-
- $detected_languages = array(
- 'Albanian' => 'sq',
- 'Arabic' => 'ar',
- 'Azeri' => 'az',
- 'Bengali' => 'bn',
- 'Bulgarian' => 'bg',
- 'Cebuano' => '',
- 'Croatian' => 'hr',
- 'Czech' => 'cz',
- 'Danish' => 'da',
- 'Dutch' => 'nl',
- 'English' => 'en',
- 'Estonian' => 'et',
- 'Farsi' => 'fa',
- 'Finnish' => 'fi',
- 'French' => 'fr',
- 'German' => 'de',
- 'Hausa' => 'ha',
- 'Hawaiian' => '',
- 'Hindi' => 'hi',
- 'Hungarian' => 'hu',
- 'Icelandic' => 'is',
- 'Indonesian' => 'id',
- 'Italian' => 'it',
- 'Kazakh' => 'kk',
- 'Kyrgyz' => 'ky',
- 'Latin' => 'la',
- 'Latvian' => 'lv',
- 'Lithuanian' => 'lt',
- 'Macedonian' => 'mk',
- 'Mongolian' => 'mn',
- 'Nepali' => 'ne',
- 'Norwegian' => 'no',
- 'Pashto' => 'ps',
- 'Pidgin' => '',
- 'Polish' => 'pl',
- 'Portuguese' => 'pt',
- 'Romanian' => 'ro',
- 'Russian' => 'ru',
- 'Serbian' => 'sr',
- 'Slovak' => 'sk',
- 'Slovene' => 'sl',
- 'Somali' => 'so',
- 'Spanish' => 'es',
- 'Swahili' => 'sw',
- 'Swedish' => 'sv',
- 'Tagalog' => 'tl',
- 'Turkish' => 'tr',
- 'Ukrainian' => 'uk',
- 'Urdu' => 'ur',
- 'Uzbek' => 'uz',
- 'Vietnamese' => 'vi',
- 'Welsh' => 'cy'
- );
-
require_once('Text/LanguageDetect.php');
- $min_length = get_config('system','language_detect_min_length');
+ $min_length = get_config('system', 'language_detect_min_length');
if($min_length === false)
$min_length = LANGUAGE_DETECT_MIN_LENGTH;
- $min_confidence = get_config('system','language_detect_min_confidence');
+ $min_confidence = get_config('system', 'language_detect_min_confidence');
if($min_confidence === false)
$min_confidence = LANGUAGE_DETECT_MIN_CONFIDENCE;
-
- $naked_body = preg_replace('/\[(.+?)\]/','',$s);
- if(mb_strlen($naked_body) < intval($min_length))
+ // strip off bbcode
+ $naked_body = preg_replace('/\[(.+?)\]/', '', $s);
+ if(mb_strlen($naked_body) < intval($min_length)) {
+ logger('detect language: string length less than ' . intval($min_length), LOGGER_DATA);
return '';
+ }
$l = new Text_LanguageDetect;
- $lng = $l->detectConfidence($naked_body);
-
- logger('detect language: ' . print_r($lng,true) . $naked_body, LOGGER_DATA);
+ try {
+ // return 2-letter ISO 639-1 (en) language code
+ $l->setNameMode(2);
+ $lng = $l->detectConfidence($naked_body);
+ logger('detect language: ' . print_r($lng, true) . $naked_body, LOGGER_DATA);
+ } catch (Text_LanguageDetect_Exception $e) {
+ logger('detect language exception: ' . $e->getMessage(), LOGGER_DATA);
+ }
if((! $lng) || (! (x($lng,'language')))) {
return '';
@@ -256,6 +236,29 @@ function detect_language($s) {
return '';
}
- return(($lng && (x($lng,'language'))) ? $detected_languages[ucfirst($lng['language'])] : '');
+ return($lng['language']);
+}
+
+/**
+ * @brief Returns the display name of a given language code.
+ *
+ * By default we use the localized language name. You can switch the result
+ * to any language with the optional 2nd parameter $l.
+ *
+ * $s and $l can be in any format that PHP's Locale understands. We will mostly
+ * use the 2-letter ISO 639-1 (en, de, fr) format.
+ *
+ * If nothing could be looked up it returns $s.
+ *
+ * @param $s Language code to look up
+ * @param $l (optional) In which language to return the name
+ * @return string with the language name, or $s if unrecognized
+ */
+function get_language_name($s, $l = null) {
+ if($l === null)
+ $l = $s;
+ logger('get_language_name: for ' . $s . ' in ' . $l . ' returns: ' . Locale::getDisplayLanguage($s, $l), LOGGER_DEBUG);
+ return Locale::getDisplayLanguage($s, $l);
}
+
diff --git a/include/menu.php b/include/menu.php
index c10a669b3..2f1719d0b 100644
--- a/include/menu.php
+++ b/include/menu.php
@@ -1,6 +1,7 @@
<?php /** @file */
require_once('include/security.php');
+require_once('include/bbcode.php');
function menu_fetch($name,$uid,$observer_xchan) {
@@ -23,18 +24,21 @@ function menu_fetch($name,$uid,$observer_xchan) {
return null;
}
-
-function menu_render($menu) {
+function menu_render($menu, $edit = false) {
if(! $menu)
return '';
- for($x = 0; $x < count($menu['items']); $x ++)
- if($menu['items']['mitem_flags'] & MENU_ITEM_ZID)
- $menu['items']['mitem_link'] = zid($menu['items']['mitem_link']);
- if($menu['items']['mitem_flags'] & MENU_ITEM_NEWWIN)
- $menu['items']['newwin'] = '1';
+
+ for($x = 0; $x < count($menu['items']); $x ++) {
+ if($menu['items'][$x]['mitem_flags'] & MENU_ITEM_ZID)
+ $menu['items'][$x]['mitem_link'] = zid($menu['items'][$x]['mitem_link']);
+ if($menu['items'][$x]['mitem_flags'] & MENU_ITEM_NEWWIN)
+ $menu['items'][$x]['newwin'] = '1';
+ $menu['items'][$x]['mitem_desc'] = bbcode($menu['items'][$x]['mitem_desc']);
+ }
return replace_macros(get_markup_template('usermenu.tpl'),array(
'$menu' => $menu['menu'],
+ '$edit' => (($edit) ? t("Edit") : ''),
'$items' => $menu['items']
));
}
@@ -58,6 +62,8 @@ function menu_create($arr) {
$menu_name = trim(escape_tags($arr['menu_name']));
$menu_desc = trim(escape_tags($arr['menu_desc']));
+ $menu_flags = intval($arr['menu_flags']);
+
if(! $menu_desc)
$menu_desc = $menu_name;
@@ -65,6 +71,9 @@ function menu_create($arr) {
if(! $menu_name)
return false;
+ if(! $menu_flags)
+ $menu_flags = 0;
+
$menu_channel_id = intval($arr['menu_channel_id']);
@@ -76,10 +85,11 @@ function menu_create($arr) {
if($r)
return false;
- $r = q("insert into menu ( menu_name, menu_desc, menu_channel_id )
- values( '%s', '%s', %d )",
+ $r = q("insert into menu ( menu_name, menu_desc, menu_flags, menu_channel_id )
+ values( '%s', '%s', %d, %d )",
dbesc($menu_name),
dbesc($menu_desc),
+ intval($menu_flags),
intval($menu_channel_id)
);
if(! $r)
@@ -95,8 +105,19 @@ function menu_create($arr) {
}
-function menu_list($channel_id) {
- $r = q("select * from menu where menu_channel_id = %d order by menu_name",
+/**
+ * If $flags is present, check that all the bits in $flags are set
+ * so that MENU_SYSTEM|MENU_BOOKMARK will return entries with both
+ * bits set. We will use this to find system generated bookmarks.
+ */
+
+function menu_list($channel_id, $name = '', $flags = 0) {
+
+ $sel_options = '';
+ $sel_options .= (($name) ? " and menu_name = '" . protect_sprintf(dbesc($name)) . "' " : '');
+ $sel_options .= (($flags) ? " and menu_flags = " . intval($flags) . " " : '');
+
+ $r = q("select * from menu where menu_channel_id = %d $sel_options order by menu_desc",
intval($channel_id)
);
return $r;
@@ -110,6 +131,7 @@ function menu_edit($arr) {
$menu_name = trim(escape_tags($arr['menu_name']));
$menu_desc = trim(escape_tags($arr['menu_desc']));
+ $menu_flags = intval($arr['menu_flags']);
if(! $menu_desc)
$menu_desc = $menu_name;
@@ -117,6 +139,9 @@ function menu_edit($arr) {
if(! $menu_name)
return false;
+ if(! $menu_flags)
+ $menu_flags = 0;
+
$menu_channel_id = intval($arr['menu_channel_id']);
@@ -139,21 +164,11 @@ function menu_edit($arr) {
return false;
}
-
- $r = q("select * from menu where menu_name = '%s' and menu_channel_id = %d and menu_desc = '%s' limit 1",
- dbesc($menu_name),
- intval($menu_channel_id),
- dbesc($menu_desc)
- );
-
- if($r)
- return false;
-
-
- return q("update menu set menu_name = '%s', menu_desc = '%s'
+ return q("update menu set menu_name = '%s', menu_desc = '%s', menu_flags = %d
where menu_id = %d and menu_channel_id = %d limit 1",
dbesc($menu_name),
dbesc($menu_desc),
+ intval($menu_flags),
intval($menu_id),
intval($menu_channel_id)
);
@@ -201,7 +216,8 @@ function menu_add_item($menu_id, $uid, $arr) {
$channel = get_app()->get_channel();
}
- if ((! $arr['contact_allow'])
+ if (($channel)
+ && (! $arr['contact_allow'])
&& (! $arr['group_allow'])
&& (! $arr['contact_deny'])
&& (! $arr['group_deny'])) {
@@ -220,11 +236,11 @@ function menu_add_item($menu_id, $uid, $arr) {
$str_contact_deny = perms2str($arr['contact_deny']);
}
-
- $allow_cid = perms2str($arr['allow_cid']);
- $allow_gid = perms2str($arr['allow_gid']);
- $deny_cid = perms2str($arr['deny_cid']);
- $deny_gid = perms2str($arr['deny_gid']);
+// unused
+// $allow_cid = perms2str($arr['allow_cid']);
+// $allow_gid = perms2str($arr['allow_gid']);
+// $deny_cid = perms2str($arr['deny_cid']);
+// $deny_gid = perms2str($arr['deny_gid']);
$r = q("insert into menu_item ( mitem_link, mitem_desc, mitem_flags, allow_cid, allow_gid, deny_cid, deny_gid, mitem_channel_id, mitem_menu_id, mitem_order ) values ( '%s', '%s', %d, '%s', '%s', '%s', '%s', %d, %d, %d ) ",
dbesc($mitem_link),
diff --git a/include/nav.php b/include/nav.php
index f89de2de0..dd15ff411 100644
--- a/include/nav.php
+++ b/include/nav.php
@@ -75,10 +75,14 @@ EOT;
$nav['usermenu'][] = Array('channel/' . $channel['channel_address'], t('Home'), "", t('Your posts and conversations'));
$nav['usermenu'][] = Array('profile/' . $channel['channel_address'], t('View Profile'), "", t('Your profile page'));
if(feature_enabled(local_user(),'multi_profiles'))
- $nav['usermenu'][] = Array('profiles', t('Edit Profiles'),"", t('Manage/Edit Profiles'));
+ $nav['usermenu'][] = Array('profiles', t('Edit Profiles'),"", t('Manage/Edit profiles'));
$nav['usermenu'][] = Array('photos/' . $channel['channel_address'], t('Photos'), "", t('Your photos'));
-// $nav['usermenu'][] = Array('events/', t('Events'), "", t('Your events'));
-
+ $nav['usermenu'][] = Array('cloud/' . $channel['channel_address'],t('Files'),"",t('Your files'));
+ $nav['usermenu'][] = Array('chat/' . $channel['channel_address'],t('Chat'),"",t('Your chatrooms'));
+ $nav['usermenu'][] = Array('events', t('Events'), "", t('Your events'));
+ $nav['usermenu'][] = Array('bookmarks', t('Bookmarks'), "", t('Your bookmarks'));
+ if(feature_enabled($channel['channel_id'],'webpages'))
+ $nav['usermenu'][] = Array('webpages/' . $channel['channel_address'],t('Webpages'),"",t('Your webpages'));
}
else {
if(! get_account_id())
@@ -91,7 +95,7 @@ EOT;
if($observer) {
$userinfo = array(
- 'icon' => $observer['xchan_photo_s'],
+ 'icon' => $observer['xchan_photo_m'],
'name' => $observer['xchan_addr'],
);
}
@@ -165,7 +169,7 @@ EOT;
$nav['messages']['mark'] = array('', t('Mark all private messages seen'), '','');
$nav['messages']['inbox'] = array('message', t('Inbox'), "", t('Inbox'));
$nav['messages']['outbox']= array('message/sent', t('Outbox'), "", t('Outbox'));
- $nav['messages']['new'] = array('message/new', t('New Message'), "", t('New Message'));
+ $nav['messages']['new'] = array('mail/new', t('New Message'), "", t('New Message'));
$nav['all_events'] = array('events', t('Events'), "", t('Event Calendar'));
@@ -196,7 +200,7 @@ EOT;
$banner = get_config('system','banner');
if($banner === false)
- $banner = 'red';
+ $banner = get_config('system','sitename');
$x = array('nav' => $nav, 'usermenu' => $userinfo );
call_hooks('nav', $x);
diff --git a/include/network.php b/include/network.php
index 50f853ca0..1fb4beaa7 100644
--- a/include/network.php
+++ b/include/network.php
@@ -78,7 +78,7 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) {
@curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
- // don't let curl abort the entire application
+ // don't let curl abort the entire application'
// if it throws any errors.
$s = @curl_exec($ch);
@@ -86,7 +86,7 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) {
$base = $s;
$curl_info = @curl_getinfo($ch);
$http_code = $curl_info['http_code'];
-// logger('fetch_url:' . $http_code . ' data: ' . $s);
+ //logger('fetch_url:' . $http_code . ' data: ' . $s);
$header = '';
// Pull out multiple headers, e.g. proxy and continuation headers
@@ -129,7 +129,7 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) {
function z_post_url($url,$params, $redirects = 0, $opts = array()) {
-
+
$ret = array('return_code' => 0, 'success' => false, 'header' => "", 'body' => "");
$ch = curl_init($url);
@@ -548,7 +548,7 @@ function avatar_img($email) {
call_hooks('avatar_lookup', $avatar);
if(! $avatar['success'])
- $avatar['url'] = $a->get_baseurl() . '/images/default_profile_photos/rainbow_man/175.jpg';
+ $avatar['url'] = $a->get_baseurl() . '/' . get_default_profile_photo();
logger('Avatar: ' . $avatar['email'] . ' ' . $avatar['url'], LOGGER_DEBUG);
return $avatar['url'];
@@ -582,7 +582,7 @@ function scale_external_images($s, $include_link = true, $scale_replace = false)
$a = get_app();
// Picture addresses can contain special characters
- $s = htmlspecialchars_decode($s);
+ $s = htmlspecialchars_decode($s, ENT_COMPAT);
$matches = null;
$c = preg_match_all('/\[img(.*?)\](.*?)\[\/img\]/ism',$s,$matches,PREG_SET_ORDER);
diff --git a/include/notifier.php b/include/notifier.php
index 0868ac77e..81f971107 100644
--- a/include/notifier.php
+++ b/include/notifier.php
@@ -425,8 +425,28 @@ function notifier_run($argv, $argc){
$sql_extra = (($private) ? "" : " or hubloc_url = '" . dbesc(z_root()) . "' ");
- $r = q("select hubloc_sitekey, hubloc_flags, hubloc_callback, hubloc_host from hubloc
- where hubloc_hash in (" . implode(',',$recipients) . ") $sql_extra group by hubloc_sitekey");
+
+ if($relay_to_owner && (! $private) && ($cmd !== 'relay')) {
+
+ // If sending a followup to the post owner, only send it to one channel clone - to avoid race conditions.
+ // In this case we'll pick the most recently contacted hub, as their primary might be down and the most
+ // recently contacted has the best chance of being alive.
+
+ // For private posts or uplinks we have to do things differently as only the sending clone will have the recipient list.
+ // We have to send to all clone channels of the owner to find out who has the definitive list. Posts with
+ // item_private set (but no ACL list) will return empty recipients (except for the sender and owner) in
+ // collect_recipients() above. The end result is we should get only one delivery per delivery chain if we
+ // aren't the owner or author.
+
+
+ $r = q("select hubloc_sitekey, hubloc_flags, hubloc_callback, hubloc_host from hubloc
+ where hubloc_hash in (" . implode(',',$recipients) . ") group by hubloc_sitekey order by hubloc_connected desc limit 1");
+ }
+ else {
+ $r = q("select hubloc_sitekey, hubloc_flags, hubloc_callback, hubloc_host from hubloc
+ where hubloc_hash in (" . implode(',',$recipients) . ") $sql_extra group by hubloc_sitekey");
+ }
+
if(! $r) {
logger('notifier: no hubs');
return;
diff --git a/include/oembed.php b/include/oembed.php
index 520b69892..d8671a752 100755
--- a/include/oembed.php
+++ b/include/oembed.php
@@ -1,12 +1,10 @@
<?php /** @file */
function oembed_replacecb($matches){
-// logger('oembedcb');
+
$embedurl=$matches[1];
$j = oembed_fetch_url($embedurl);
- $s = oembed_format_object($j);
- return $s;//oembed_iframe($s,$j->width,$j->height);
-
-
+ $s = oembed_format_object($j);
+ return $s;
}
@@ -26,7 +24,21 @@ function oembed_fetch_url($embedurl){
if(is_null($txt)){
$txt = "";
- if (!in_array($ext, $noexts)){
+ if (in_array($ext, $noexts)) {
+ $m = @parse_url($embedurl);
+ $zrl = false;
+ if($m['host']) {
+ $r = q("select hubloc_url from hubloc where hubloc_host = '%s' limit 1",
+ dbesc($m['host'])
+ );
+ if($r)
+ $zrl = true;
+ }
+ if($zrl) {
+ $embedurl = zid($embedurl);
+ }
+ }
+ else {
// try oembed autodiscovery
$redirects = 0;
@@ -57,12 +69,6 @@ function oembed_fetch_url($embedurl){
call_hooks('oembed_probe',$x);
if(array_key_exists('embed',$x))
$txt = $x['embed'];
-
- // try oohembed service
-// $ourl = "http://oohembed.com/oohembed/?url=".urlencode($embedurl).'&maxwidth=' . $a->videowidth;
-// $result = z_fetch_url($ourl);
-// if($result['success'])
-// $txt = $result['body'];
}
$txt=trim($txt);
@@ -82,6 +88,7 @@ function oembed_format_object($j){
$a = get_app();
$embedurl = $j->embedurl;
$jhtml = oembed_iframe($j->embedurl,(isset($j->width) ? $j->width : null), (isset($j->height) ? $j->height : null) );
+
$ret="<span class='oembed ".$j->type."'>";
switch ($j->type) {
case "video": {
diff --git a/include/permissions.php b/include/permissions.php
index 45ea7c3eb..eb1a7966f 100644
--- a/include/permissions.php
+++ b/include/permissions.php
@@ -24,11 +24,12 @@ function get_perms() {
'post_mail' => array('channel_w_mail', intval(PERMS_W_MAIL), false, t('Can send me private mail messages'), ''),
'post_photos' => array('channel_w_photos', intval(PERMS_W_PHOTOS), false, t('Can post photos to my photo albums'), ''),
'tag_deliver' => array('channel_w_tagwall', intval(PERMS_W_TAGWALL), false, t('Can forward to all my channel contacts via post @mentions'), t('Advanced - useful for creating group forum channels')),
- 'chat' => array('channel_w_chat', intval(PERMS_W_CHAT), false, t('Can chat with me (when available)'), t('Requires compatible chat plugin')),
+ 'chat' => array('channel_w_chat', intval(PERMS_W_CHAT), false, t('Can chat with me (when available)'), t('')),
'write_storage' => array('channel_w_storage', intval(PERMS_W_STORAGE), false, t('Can write to my "public" file storage'), ''),
'write_pages' => array('channel_w_pages', intval(PERMS_W_PAGES), false, t('Can edit my "public" pages'), ''),
'republish' => array('channel_a_republish', intval(PERMS_A_REPUBLISH), false, t('Can source my "public" posts in derived channels'), t('Somewhat advanced - very useful in open communities')),
+ 'bookmark' => array('channel_a_bookmark', intval(PERMS_A_BOOKMARK), false, t('Can send me bookmarks'), 'Bookmarks from this person will automatically be saved'),
'delegate' => array('channel_a_delegate', intval(PERMS_A_DELEGATE), false, t('Can administer my channel resources'), t('Extremely advanced. Leave this alone unless you know what you are doing')),
);
$ret = array('global_permissions' => $global_perms);
@@ -87,8 +88,13 @@ function get_all_perms($uid,$observer_xchan,$internal_use = true) {
// These take priority over all other settings.
if($observer_xchan) {
+ if($r[0][$channel_perm] & PERMS_AUTHED) {
+ $ret[$perm_name] = true;
+ continue;
+ }
+
if(! $abook_checked) {
- $x = q("select abook_my_perms, abook_flags from abook
+ $x = q("select abook_my_perms, abook_flags, xchan_network from abook left join xchan on abook_xchan = xchan_hash
where abook_channel = %d and abook_xchan = '%s' and not ( abook_flags & %d ) limit 1",
intval($uid),
dbesc($observer_xchan),
@@ -136,9 +142,9 @@ function get_all_perms($uid,$observer_xchan,$internal_use = true) {
continue;
}
- // If we're still here, we have an observer, which means they're in the network.
+ // If we're still here, we have an observer, check the network.
- if($r[0][$channel_perm] & PERMS_NETWORK) {
+ if(($r[0][$channel_perm] & PERMS_NETWORK) && ($x[0]['xchan_network'] === 'zot')) {
$ret[$perm_name] = true;
continue;
}
@@ -239,7 +245,11 @@ function perm_is_allowed($uid,$observer_xchan,$permission) {
return false;
if($observer_xchan) {
- $x = q("select abook_my_perms, abook_flags from abook where abook_channel = %d and abook_xchan = '%s' and not ( abook_flags & %d ) limit 1",
+ if($r[0][$channel_perm] & PERMS_AUTHED)
+ return true;
+
+ $x = q("select abook_my_perms, abook_flags, xchan_network from abook left join xchan on abook_xchan = xchan_hash
+ where abook_channel = %d and abook_xchan = '%s' and not ( abook_flags & %d ) limit 1",
intval($uid),
dbesc($observer_xchan),
intval(ABOOK_FLAG_SELF)
@@ -271,9 +281,9 @@ function perm_is_allowed($uid,$observer_xchan,$permission) {
return false;
}
- // If we're still here, we have an observer, which means they're in the network.
+ // If we're still here, we have an observer, check the network.
- if($r[0][$channel_perm] & PERMS_NETWORK)
+ if(($r[0][$channel_perm] & PERMS_NETWORK) && ($x[0]['xchan_network'] === 'zot'))
return true;
diff --git a/include/photo/photo_driver.php b/include/photo/photo_driver.php
index 8730b4298..484550cb7 100644
--- a/include/photo/photo_driver.php
+++ b/include/photo/photo_driver.php
@@ -357,7 +357,7 @@ abstract class photo_driver {
dbesc($p['resource_id']),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
- dbesc(basename($filename)),
+ dbesc(basename($p['filename'])),
dbesc($this->getType()),
dbesc($p['album']),
intval($this->getHeight()),
@@ -513,38 +513,72 @@ function guess_image_type($filename, $headers = '') {
}
-function import_profile_photo($photo,$xchan) {
+function import_profile_photo($photo,$xchan,$thing = false) {
$a = get_app();
+ $flags = (($thing) ? PHOTO_THING : PHOTO_XCHAN);
+ $album = (($thing) ? 'Things' : 'Contact Photos');
+
logger('import_profile_photo: updating channel photo from ' . $photo . ' for ' . $xchan, LOGGER_DEBUG);
- $r = q("select resource_id from photo where xchan = '%s' and scale = 4 limit 1",
- dbesc($xchan)
- );
- if($r) {
- $hash = $r[0]['resource_id'];
- }
- else {
+ if($thing)
$hash = photo_new_resource();
+ else {
+ $r = q("select resource_id from photo where xchan = '%s' and (photo_flags & %d ) and scale = 4 limit 1",
+ dbesc($xchan),
+ intval(PHOTO_XCHAN)
+ );
+ if($r) {
+ $hash = $r[0]['resource_id'];
+ }
+ else {
+ $hash = photo_new_resource();
+ }
}
$photo_failure = false;
+ $img_str = '';
+ if($photo) {
+ $filename = basename($photo);
+ $type = guess_image_type($photo,true);
- $filename = basename($photo);
- $type = guess_image_type($photo,true);
- $result = z_fetch_url($photo,true);
+ if(! $type)
+ $type = 'image/jpeg';
- if($result['success'])
- $img_str = $result['body'];
+ $result = z_fetch_url($photo,true);
+
+ if($result['success'])
+ $img_str = $result['body'];
+ }
$img = photo_factory($img_str, $type);
if($img->is_valid()) {
+ $width = $img->getWidth();
+ $height = $img->getHeight();
+
+ if($width && $height) {
+ if(($width / $height) > 1.2) {
+ // crop out the sides
+ $margin = $width - $height;
+ $img->cropImage(175,($margin / 2),0,$height,$height);
+ }
+ elseif(($height / $width) > 1.2) {
+ // crop out the bottom
+ $margin = $height - $width;
+ $img->cropImage(175,0,0,$width,$width);
- $img->scaleImageSquare(175);
+ }
+ else {
+ $img->scaleImageSquare(175);
+ }
+
+ }
+ else
+ $photo_failure = true;
- $p = array('xchan' => $xchan,'resource_id' => $hash, 'filename' => 'Contact Photos', 'photo_flags' => PHOTO_XCHAN, 'scale' => 4);
+ $p = array('xchan' => $xchan,'resource_id' => $hash, 'filename' => basename($photo), 'album' => $album, 'photo_flags' => $flags, 'scale' => 4);
$r = $img->save($p);
@@ -576,9 +610,9 @@ function import_profile_photo($photo,$xchan) {
$photo_failure = true;
}
if($photo_failure) {
- $photo = $a->get_baseurl() . '/images/default_profile_photos/rainbow_man/175.jpg';
- $thumb = $a->get_baseurl() . '/images/default_profile_photos/rainbow_man/80.jpg';
- $micro = $a->get_baseurl() . '/images/default_profile_photos/rainbow_man/48.jpg';
+ $photo = $a->get_baseurl() . '/' . get_default_profile_photo();
+ $thumb = $a->get_baseurl() . '/' . get_default_profile_photo(80);
+ $micro = $a->get_baseurl() . '/' . get_default_profile_photo(48);
$type = 'image/jpeg';
}
diff --git a/include/photos.php b/include/photos.php
index ea4b494e0..82af4aaeb 100644
--- a/include/photos.php
+++ b/include/photos.php
@@ -77,6 +77,7 @@ function photo_upload($channel, $observer, $args) {
$filesize = intval($_FILES['userfile']['size']);
$type = $_FILES['userfile']['type'];
}
+
if (! $type)
$type=guess_image_type($filename);
@@ -102,12 +103,10 @@ function photo_upload($channel, $observer, $args) {
$imagedata = @file_get_contents($src);
- $r = q("select sum(size) as total from photo where uid = %d and scale = 0 ",
- intval($channel_id)
+ $r = q("select sum(size) as total from photo where aid = %d and scale = 0 ",
+ intval($account_id)
);
-// FIXME service class limits should probably apply to accounts and not channels
-
$limit = service_class_fetch($channel_id,'photo_upload_limit');
if(($r) && ($limit !== false) && (($r[0]['total'] + strlen($imagedata)) > $limit)) {
@@ -218,6 +217,9 @@ function photo_upload($channel, $observer, $args) {
$arr['deny_gid'] = $str_group_deny;
$arr['verb'] = ACTIVITY_POST;
+ $arr['plink'] = z_root() . '/channel/' . $channel['channel_address'] . '/?f=&mid=' . $arr['mid'];
+
+
$arr['body'] = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo_hash . ']'
. '[zmg]' . z_root() . "/photo/{$photo_hash}-{$smallest}.".$ph->getExt() . '[/zmg]'
. '[/zrl]';
@@ -267,7 +269,11 @@ function photos_albums_list($channel,$observer) {
if($albums) {
$ret['success'] = true;
foreach($albums as $k => $album) {
- $entry = array('text' => $album['album'], 'urlencode' => urlencode($album['album']),'bin2hex' => bin2hex($album['album']));
+ $entry = array(
+ 'text' => $album['album'],
+ 'url' => z_root() . '/photos/' . $channel['channel_address'] . '/album/' . bin2hex($album['album']),
+ 'urlencode' => urlencode($album['album']),
+ 'bin2hex' => bin2hex($album['album']));
$ret[] = $entry;
}
}
@@ -279,8 +285,16 @@ function photos_album_widget($channelx,$observer,$albums = null) {
$o = '';
- if(! $albums)
- $albums = photos_albums_list($channelx,$observer);
+ // If we weren't passed an album list, see if the photos module
+ // dropped one for us to find in $a->data['albums'].
+ // If all else fails, load it.
+
+ if(! $albums) {
+ if(array_key_exists('albums', get_app()->data))
+ $albums = get_app()->data['albums'];
+ else
+ $albums = photos_albums_list($channelx,$observer);
+ }
if($albums) {
$o = replace_macros(get_markup_template('photo_albums.tpl'),array(
@@ -311,13 +325,16 @@ function photos_list_photos($channel,$observer,$album = '') {
$ret = array('success' => false);
- $r = q("select resource_id, created, edited, title, `desc`, album, filename, `type`, height, width, `size`, `scale`, profile, photo_flags, allow_cid, allow_gid, deny_cid, deny_gid from photo where uid = %d and ( photo_flags = %d or photo_flags = %d ) $sql_extra ",
+ $r = q("select resource_id, created, edited, title, description, album, filename, type, height, width, size, scale, profile, photo_flags, allow_cid, allow_gid, deny_cid, deny_gid from photo where uid = %d and ( photo_flags = %d or photo_flags = %d ) $sql_extra ",
intval($channel_id),
intval(PHOTO_NORMAL),
intval(PHOTO_PROFILE)
);
-
+
if($r) {
+ for($x = 0; $x < count($r); $x ++) {
+ $r[$x]['src'] = z_root() . '/photo/' . $r[$x]['resource_id'] . '-' . $r[$x]['scale'];
+ }
$ret['success'] = true;
$ret['photos'] = $r;
}
@@ -398,6 +415,8 @@ function photos_create_item($channel, $creator_hash, $photo, $visible = false) {
$arr['allow_gid'] = $photo['allow_gid'];
$arr['deny_cid'] = $photo['deny_cid'];
$arr['deny_gid'] = $photo['deny_gid'];
+
+ $arr['plink'] = z_root() . '/channel/' . $channel['channel_address'] . '/?f=&mid=' . $arr['mid'];
$arr['body'] = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo['resource_id'] . ']'
. '[zmg]' . z_root() . '/photo/' . $photo['resource_id'] . '-' . $photo['scale'] . '[/zmg]'
diff --git a/include/plugin.php b/include/plugin.php
index 5ed2a1736..9982a48a2 100755
--- a/include/plugin.php
+++ b/include/plugin.php
@@ -494,6 +494,15 @@ function head_add_css($src,$media = 'screen') {
get_app()->css_sources[] = array($src,$media);
}
+
+function head_remove_css($src,$media = 'screen') {
+ $a = get_app();
+ $index = array_search(array($src,$media),$a->css_sources);
+ if($index !== false)
+ unset($a->css_sources[$index]);
+
+}
+
function head_get_css() {
$str = '';
$sources = get_app()->css_sources;
@@ -511,15 +520,44 @@ function format_css_if_exists($source) {
$path = theme_include($source[0]);
if($path)
- return '<link rel="stylesheet" href="' . z_root() . '/' . $path . '" type="text/css" media="' . $source[1] . '" />' . "\r\n";
+ return '<link rel="stylesheet" href="' . script_path() . '/' . $path . '" type="text/css" media="' . $source[1] . '" />' . "\r\n";
}
+function script_path() {
+ if(x($_SERVER,'HTTPS') && $_SERVER['HTTPS'])
+ $scheme = 'https';
+ elseif(x($_SERVER,'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443))
+ $scheme = 'https';
+ else
+ $scheme = 'http';
+
+ if(x($_SERVER,'SERVER_NAME')) {
+ $hostname = $_SERVER['SERVER_NAME'];
+ }
+ else {
+ return z_root();
+ }
+
+ if(x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443) {
+ $hostname .= ':' . $_SERVER['SERVER_PORT'];
+ }
+
+ return $scheme . '://' . $hostname;
+}
function head_add_js($src) {
get_app()->js_sources[] = $src;
}
+function head_remove_js($src) {
+ $a = get_app();
+ $index = array_search($src,$a->js_sources);
+ if($index !== false)
+ unset($a->js_sources[$index]);
+
+}
+
function head_get_js() {
$str = '';
$sources = get_app()->js_sources;
@@ -536,7 +574,7 @@ function format_js_if_exists($source) {
else
$path = theme_include($source);
if($path)
- return '<script src="' . z_root() . '/' . $path . '" ></script>' . "\r\n" ;
+ return '<script src="' . script_path() . '/' . $path . '" ></script>' . "\r\n" ;
}
diff --git a/include/poller.php b/include/poller.php
index 0dcec4c0f..1c6f68eab 100644
--- a/include/poller.php
+++ b/include/poller.php
@@ -32,21 +32,13 @@ function poller_run($argv, $argc){
proc_run('php',"include/queue.php");
- // expire any expired accounts
-
- q("UPDATE account
- SET account_flags = (account_flags | %d)
- where not (account_flags & %d)
- and account_expires != '0000-00-00 00:00:00'
- and account_expires < UTC_TIMESTAMP() ",
- intval(ACCOUNT_EXPIRED),
- intval(ACCOUNT_EXPIRED)
- );
// expire any expired mail
q("delete from mail where expires != '0000-00-00 00:00:00' and expires < UTC_TIMESTAMP() ");
+ // expire any expired items
+
$r = q("select id from item where expires != '0000-00-00 00:00:00' and expires < UTC_TIMESTAMP()
and not ( item_restrict & %d ) ",
intval(ITEM_DELETED)
@@ -56,7 +48,8 @@ function poller_run($argv, $argc){
foreach($r as $rr)
drop_item($rr['id'],false);
}
-
+
+
// Ensure that every channel pings a directory server once a month. This way we can discover
// channels and sites that quietly vanished and prevent the directory from accumulating stale
// or dead entries.
@@ -64,7 +57,7 @@ function poller_run($argv, $argc){
$r = q("select channel_id from channel where channel_dirdate < UTC_TIMESTAMP() - INTERVAL 30 DAY");
if($r) {
foreach($r as $rr) {
- proc_run('php','include/directory.php',$rr['channel_id']);
+ proc_run('php','include/directory.php',$rr['channel_id'],'force');
if($interval)
@time_sleep_until(microtime(true) + (float) $interval);
}
@@ -103,8 +96,19 @@ function poller_run($argv, $argc){
$dirmode = get_config('system','directory_mode');
+
+ // Actions in the following block are executed once per day, not on every poller run
+
if($d2 != intval($d1)) {
+ // expire any read notifications over a month old
+
+ q("delete from notify where seen = 1 and date < UTC_TIMESTAMP() - INTERVAL 30 DAY");
+
+ // expire any expired accounts
+ require_once('include/account.php');
+ downgrade_accounts();
+
// If this is a directory server, request a sync with an upstream
// directory at least once a day, up to once every poll interval.
// Pull remote changes and push local changes.
@@ -115,14 +119,8 @@ function poller_run($argv, $argc){
sync_directories($dirmode);
}
-
set_config('system','last_expire_day',$d2);
-// Uncomment when expire protocol component is working
-// Update - this is not going to happen. We are only going to
-// implement per-item expire, not blanket expiration
-// proc_run('php','include/expire.php');
-
proc_run('php','include/cli_suggest.php');
}
diff --git a/include/reddav.php b/include/reddav.php
index c24414610..2a26ac42a 100644
--- a/include/reddav.php
+++ b/include/reddav.php
@@ -1,196 +1,1080 @@
<?php /** @file */
use Sabre\DAV;
- require_once('vendor/autoload.php');
+require_once('vendor/autoload.php');
-class RedInode implements DAV\INode {
+require_once('include/attach.php');
- private $attach;
+class RedDirectory extends DAV\Node implements DAV\ICollection, DAV\IQuota {
+
+ private $red_path;
+ private $folder_hash;
+ private $ext_path;
+ private $root_dir = '';
+ private $auth;
+ private $os_path = '';
+
+ function __construct($ext_path,&$auth_plugin) {
+ logger('RedDirectory::__construct() ' . $ext_path, LOGGER_DEBUG);
+ $this->ext_path = $ext_path;
+ $this->red_path = ((strpos($ext_path,'/cloud') === 0) ? substr($ext_path,6) : $ext_path);
+ if(! $this->red_path)
+ $this->red_path = '/';
+ $this->auth = $auth_plugin;
+ $this->folder_hash = '';
+
+ $this->getDir();
+
+ if($this->auth->browser)
+ $this->auth->browser->set_writeable();
- function __construct($attach) {
- $this->attach = $attach;
}
- function delete() {
- if(! perm_is_allowed($this->channel_id,'','view_storage'))
- return;
-
- /**
- * Since I don't believe this is documented elsewhere -
- * ATTACH_FLAG_OS means that the file contents are stored in the OS
- * rather than in the DB - as is the case for attachments.
- * Exactly how they are stored (what path and filename) are still
- * TBD. We will probably not be using the original filename but
- * instead the attachment 'hash' as this will prevent folks from
- * uploading PHP code onto misconfigured servers and executing it.
- * It's easy to misconfigure servers because we can provide a
- * rule for Apache, but folks using nginx will then be susceptible.
- * Then there are those who don't understand these kinds of exploits
- * and don't have any idea allowing uploaded PHP files to be executed
- * by the server could be a problem. We also don't have any idea what
- * executable types are served on their system - like .py, .pyc, .pl, .sh
- * .cgi, .exe, .bat, .net, whatever.
- */
-
- if($this->attach['flags'] & ATTACH_FLAG_OS) {
- // FIXME delete physical file
- }
- if($this->attach['flags'] & ATTACH_FLAG_DIR) {
- // FIXME delete contents (recursive?)
+ function log() {
+ logger('RedDirectory::log() ext_path ' . $this->ext_path, LOGGER_DATA);
+ logger('RedDirectory::log() os_path ' . $this->os_path, LOGGER_DATA);
+ logger('RedDirectory::log() red_path ' . $this->red_path, LOGGER_DATA);
+ }
+
+ function getChildren() {
+
+ logger('RedDirectory::getChildren() called for ' . $this->ext_path, LOGGER_DATA);
+
+ $this->log();
+
+ if(get_config('system','block_public') && (! $this->auth->channel_id) && (! $this->auth->observer)) {
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ return;
+ }
+
+ if(($this->auth->owner_id) && (! perm_is_allowed($this->auth->owner_id,$this->auth->observer,'view_storage'))) {
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ return;
}
+
+ $contents = RedCollectionData($this->red_path,$this->auth);
+ return $contents;
+ }
+
+
+ function getChild($name) {
+
+ logger('RedDirectory::getChild : ' . $name, LOGGER_DATA);
+
+ if(get_config('system','block_public') && (! $this->auth->channel_id) && (! $this->auth->observer)) {
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ return;
+ }
+
+ if(($this->auth->owner_id) && (! perm_is_allowed($this->auth->owner_id,$this->auth->observer,'view_storage'))) {
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ return;
+ }
+
+ if($this->red_path === '/' && $name === 'cloud') {
+ return new RedDirectory('/cloud', $this->auth);
+ }
+
+ $x = RedFileData($this->ext_path . '/' . $name, $this->auth);
+ if($x)
+ return $x;
+
+ throw new DAV\Exception\NotFound('The file with name: ' . $name . ' could not be found');
- q("delete from attach where id = %d limit 1",
- intval($this->attach['id'])
+ }
+
+ function getName() {
+ logger('RedDirectory::getName returns: ' . basename($this->red_path), LOGGER_DATA);
+ return (basename($this->red_path));
+ }
+
+
+
+
+ function createFile($name,$data = null) {
+ logger('RedDirectory::createFile : ' . $name, LOGGER_DEBUG);
+
+ if(! $this->auth->owner_id) {
+ logger('createFile: permission denied');
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ return;
+ }
+
+ if(! perm_is_allowed($this->auth->owner_id,$this->auth->observer,'write_storage')) {
+ logger('createFile: permission denied');
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ return;
+ }
+
+ $mimetype = z_mime_content_type($name);
+
+
+ $c = q("select * from channel where channel_id = %d and not (channel_pageflags & %d) limit 1",
+ intval($this->auth->owner_id),
+ intval(PAGE_REMOVED)
+
+ );
+
+ if(! $c) {
+ logger('createFile: no channel');
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ return;
+ }
+
+
+ $filesize = 0;
+ $hash = random_string();
+
+ $r = q("INSERT INTO attach ( aid, uid, hash, creator, filename, folder, flags, filetype, filesize, revision, data, created, edited, allow_cid, allow_gid, deny_cid, deny_gid )
+ VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ",
+ intval($c[0]['channel_account_id']),
+ intval($c[0]['channel_id']),
+ dbesc($hash),
+ dbesc($this->auth->observer),
+ dbesc($name),
+ dbesc($this->folder_hash),
+ dbesc(ATTACH_FLAG_OS),
+ dbesc($mimetype),
+ intval($filesize),
+ intval(0),
+ dbesc($this->os_path . '/' . $hash),
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ dbesc($c[0]['channel_allow_cid']),
+ dbesc($c[0]['channel_allow_gid']),
+ dbesc($c[0]['channel_deny_cid']),
+ dbesc($c[0]['channel_deny_gid'])
+
+
+ );
+
+ $f = 'store/' . $this->auth->owner_nick . '/' . (($this->os_path) ? $this->os_path . '/' : '') . $hash;
+
+ file_put_contents($f, $data);
+ $size = filesize($f);
+
+ $edited = datetime_convert();
+
+ $d = q("update attach set filesize = '%s', edited = '%s' where hash = '%s' and uid = %d limit 1",
+ dbesc($size),
+ dbesc($edited),
+ dbesc($hash),
+ intval($c[0]['channel_id'])
);
+ $e = q("update attach set edited = '%s' where folder = '%s' and uid = %d limit 1",
+ dbesc($edited),
+ dbesc($this->folder_hash),
+ intval($c[0]['channel_id'])
+ );
+
+ $maxfilesize = get_config('system','maxfilesize');
+
+ if(($maxfilesize) && ($size > $maxfilesize)) {
+ attach_delete($c[0]['channel_id'],$hash);
+ return;
+ }
+
+ $limit = service_class_fetch($c[0]['channel_id'],'attach_upload_limit');
+ if($limit !== false) {
+ $x = q("select sum(filesize) as total from attach where aid = %d ",
+ intval($c[0]['channel_account_id'])
+ );
+ if(($x) && ($x[0]['total'] + $size > $limit)) {
+ logger('reddav: service class limit exceeded for ' . $c[0]['channel_name'] . ' total usage is ' . $x[0]['total'] . ' limit is ' . $limit);
+ attach_delete($c[0]['channel_id'],$hash);
+ return;
+ }
+ }
}
- function getName() {
- return $this->attach['filename'];
+
+ function createDirectory($name) {
+
+ logger('RedDirectory::createDirectory: ' . $name, LOGGER_DEBUG);
+
+ if((! $this->auth->owner_id) || (! perm_is_allowed($this->auth->owner_id,$this->auth->observer,'write_storage'))) {
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ return;
+ }
+
+ $r = q("select * from channel where channel_id = %d and not (channel_pageflags & %d) limit 1",
+ intval($this->auth->owner_id),
+ intval(PAGE_REMOVED)
+ );
+
+ if($r) {
+ $result = attach_mkdir($r[0],$this->auth->observer,array('filename' => $name,'folder' => $this->folder_hash));
+ if(! $result['success'])
+ logger('RedDirectory::createDirectory: ' . print_r($result,true), LOGGER_DEBUG);
+ }
}
- function setName($newName) {
- if((! $newName) || (! perm_is_allowed($this->channel_id,'','view_storage')))
+ function childExists($name) {
+
+ if($this->red_path === '/' && $name === 'cloud') {
+ logger('RedDirectory::childExists /cloud: true', LOGGER_DATA);
+ return true;
+ }
+
+ $x = RedFileData($this->ext_path . '/' . $name, $this->auth,true);
+ logger('RedFileData returns: ' . print_r($x,true), LOGGER_DATA);
+ if($x)
+ return true;
+ return false;
+ }
+
+ function getDir() {
+ logger('getDir: ' . $this->ext_path, LOGGER_DEBUG);
+ $this->auth->log();
+
+ $file = $this->ext_path;
+
+ $x = strpos($file,'/cloud');
+ if($x === false)
+ return;
+ if($x === 0) {
+ $file = substr($file,6);
+ }
+
+ if((! $file) || ($file === '/')) {
+ return;
+ }
+
+ $file = trim($file,'/');
+ $path_arr = explode('/', $file);
+
+ if(! $path_arr)
return;
- $this->attach['filename'] = $newName;
- $r = q("update attach set filename = '%s' where id = %d limit 1",
- dbesc($this->attach['filename']),
- intval($this->attach['id'])
+
+ logger('getDir(): path: ' . print_r($path_arr,true), LOGGER_DEBUG);
+
+ $channel_name = $path_arr[0];
+
+
+ $r = q("select channel_id from channel where channel_address = '%s' and not ( channel_pageflags & %d ) limit 1",
+ dbesc($channel_name),
+ intval(PAGE_REMOVED)
);
+ if(! $r) {
+ throw new DAV\Exception\NotFound('The file with name: ' . $channel_name . ' could not be found');
+
+ return;
+ }
+ $channel_id = $r[0]['channel_id'];
+ $this->auth->owner_id = $channel_id;
+ $this->auth->owner_nick = $channel_name;
+
+ $path = '/' . $channel_name;
+
+ $folder = '';
+ $os_path = '';
+
+ for($x = 1; $x < count($path_arr); $x ++) {
+
+ $r = q("select id, hash, filename, flags from attach where folder = '%s' and filename = '%s' and (flags & %d)",
+ dbesc($folder),
+ dbesc($path_arr[$x]),
+ intval($channel_id),
+ intval(ATTACH_FLAG_DIR)
+ );
+
+ if($r && ( $r[0]['flags'] & ATTACH_FLAG_DIR)) {
+ $folder = $r[0]['hash'];
+ if(strlen($os_path))
+ $os_path .= '/';
+ $os_path .= $folder;
+
+ $path = $path . '/' . $r[0]['filename'];
+ }
+ }
+ $this->folder_hash = $folder;
+ $this->os_path = $os_path;
+ return;
}
+
function getLastModified() {
- return $this->attach['edited'];
+ $r = q("select edited from attach where folder = '%s' and uid = %d order by edited desc limit 1",
+ dbesc($this->folder_hash),
+ intval($this->auth->owner_id)
+ );
+ if($r)
+ return datetime_convert('UTC','UTC', $r[0]['edited'],'U');
+ return '';
+ }
+
+
+ public function getQuotaInfo() {
+
+ $limit = disk_total_space('store');
+ $free = disk_free_space('store');
+
+ if($this->auth->owner_id) {
+
+ $c = q("select * from channel where channel_id = %d and not (channel_pageflags & %d) limit 1",
+ intval($this->auth->owner_id),
+ intval(PAGE_REMOVED)
+
+ );
+
+ $ulimit = service_class_fetch($c[0]['channel_id'],'attach_upload_limit');
+ $limit = (($ulimit) ? $ulimit : $limit);
+
+ $x = q("select sum(filesize) as total from attach where aid = %d ",
+ intval($c[0]['channel_account_id'])
+ );
+ $free = (($x) ? $limit - $x[0]['total'] : 0);
+ }
+
+ return array(
+ $limit - $free,
+ $free
+ );
+
}
}
-abstract class RedDirectory extends DAV\Node implements DAV\ICollection {
+class RedFile extends DAV\Node implements DAV\IFile {
- private $red_path;
- private $dir_key;
+ private $data;
private $auth;
- private $channel_id;
+ private $name;
+
+ function __construct($name, $data, &$auth) {
+ $this->name = $name;
+ $this->data = $data;
+ $this->auth = $auth;
+
+ logger('RedFile::_construct: ' . print_r($this->data,true), LOGGER_DATA);
+ }
+
+
+ function getName() {
+ logger('RedFile::getName: ' . basename($this->name), LOGGER_DEBUG);
+ return basename($this->name);
+
+ }
+
+
+ function setName($newName) {
+ logger('RedFile::setName: ' . basename($this->name) . ' -> ' . $newName, LOGGER_DEBUG);
+
+ if((! $newName) || (! $this->auth->owner_id) || (! perm_is_allowed($this->auth->owner_id,$this->auth->observer,'write_storage'))) {
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ return;
+ }
+
+ $newName = str_replace('/','%2F',$newName);
+
+ $r = q("update attach set filename = '%s' where hash = '%s' and id = %d limit 1",
+ dbesc($this->data['filename']),
+ intval($this->data['id'])
+ );
- function __construct($red_path,$auth_plugin) {
- $this->red_path = $red_path;
- $this->auth = $auth_plugin;
}
- function getChildren() {
- if(! perm_is_allowed($this->channel_id,'','view_storage'))
- return array();
+ function put($data) {
+ logger('RedFile::put: ' . basename($this->name), LOGGER_DEBUG);
+
+ $c = q("select * from channel where channel_id = %d and not (channel_pageflags & %d) limit 1",
+ intval(PAGE_REMOVED),
+ intval($this->auth->owner_id)
+ );
- $ret = array();
- $r = q("select distinct filename from attach where folder = '%s' and uid = %d group by filename",
- dbesc($this->dir_key),
- intval($this->channel_id)
+ $r = q("select flags, folder, data from attach where hash = '%s' and uid = %d limit 1",
+ dbesc($this->data['hash']),
+ intval($c[0]['channel_id'])
);
if($r) {
- foreach($r as $rr) {
- $ret[] = $rr['filename'];
+ if($r[0]['flags'] & ATTACH_FLAG_OS) {
+ $f = 'store/' . $this->auth->owner_nick . '/' . (($r[0]['data']) ? $r[0]['data'] : '');
+ @file_put_contents($f, $data);
+ $size = @filesize($f);
+ logger('reddav: put() filename: ' . $f . ' size: ' . $size, LOGGER_DEBUG);
}
+ else {
+ $r = q("update attach set data = '%s' where hash = '%s' and uid = %d limit 1",
+ dbesc(stream_get_contents($data)),
+ dbesc($this->data['hash']),
+ intval($this->data['uid'])
+ );
+ $r = q("select length(data) as fsize from attach where hash = '%s' and uid = %d limit 1",
+ dbesc($this->data['hash']),
+ intval($this->data['uid'])
+ );
+ if($r)
+ $size = $r[0]['fsize'];
+ }
+
+ }
+
+ $edited = datetime_convert();
+
+ $d = q("update attach set filesize = '%s', edited = '%s' where hash = '%s' and uid = %d limit 1",
+ dbesc($size),
+ dbesc($edited),
+ dbesc($this->data['hash']),
+ intval($c[0]['channel_id'])
+ );
+
+ $e = q("update attach set edited = '%s' where folder = '%s' and uid = %d limit 1",
+ dbesc($edited),
+ dbesc($r[0]['folder']),
+ intval($c[0]['channel_id'])
+ );
+
+ $maxfilesize = get_config('system','maxfilesize');
+
+ if(($maxfilesize) && ($size > $maxfilesize)) {
+ attach_delete($c[0]['channel_id'],$this->data['hash']);
+ return;
}
- return $ret;
+ $limit = service_class_fetch($c[0]['channel_id'],'attach_upload_limit');
+ if($limit !== false) {
+ $x = q("select sum(filesize) as total from attach where aid = %d ",
+ intval($c[0]['channel_account_id'])
+ );
+ if(($x) && ($x[0]['total'] + $size > $limit)) {
+ logger('reddav: service class limit exceeded for ' . $c[0]['channel_name'] . ' total usage is ' . $x[0]['total'] . ' limit is ' . $limit);
+ attach_delete($c[0]['channel_id'],$this->data['hash']);
+ return;
+ }
+ }
}
- function getChild($name) {
- if(! perm_is_allowed($this->channel_id,'','view_storage')) {
+ function get() {
+ logger('RedFile::get: ' . basename($this->name), LOGGER_DEBUG);
+
+ $r = q("select data, flags, filename, filetype from attach where hash = '%s' and uid = %d limit 1",
+ dbesc($this->data['hash']),
+ intval($this->data['uid'])
+ );
+ if($r) {
+ $unsafe_types = array('text/html','text/css','application/javascript');
+
+ if(in_array($r[0]['filetype'],$unsafe_types)) {
+ header('Content-disposition: attachment; filename="' . $r[0]['filename'] . '"');
+ header('Content-type: text/plain');
+ }
+
+ if($r[0]['flags'] & ATTACH_FLAG_OS ) {
+ $f = 'store/' . $this->auth->owner_nick . '/' . (($this->os_path) ? $this->os_path . '/' : '') . $r[0]['data'];
+ return fopen($f,'rb');
+ }
+ return $r[0]['data'];
+ }
+
+ }
+
+ function getETag() {
+ return $this->data['hash'];
+ }
+
+
+ function getContentType() {
+ $unsafe_types = array('text/html','text/css','application/javascript');
+ if(in_array($this->data['filetype'],$unsafe_types)) {
+ return 'text/plain';
+ }
+ return $this->data['filetype'];
+ }
+
+
+ function getSize() {
+ return $this->data['filesize'];
+ }
+
+
+ function getLastModified() {
+ return datetime_convert('UTC','UTC',$this->data['edited'],'U');
+ }
+
+
+ function delete() {
+ if((! $this->auth->owner_id) || (! perm_is_allowed($this->auth->owner_id,$this->auth->observer,'write_storage'))) {
throw new DAV\Exception\Forbidden('Permission denied.');
return;
}
-// FIXME check revisions
+ if($this->auth->owner_id !== $this->auth->channel_id) {
+ if(($this->auth->observer !== $this->data['creator']) || ($this->data['flags'] & ATTACH_FLAG_DIR)) {
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ return;
+ }
+ }
+
+ attach_delete($this->auth->owner_id,$this->data['hash']);
+ }
+
+}
+
+function RedChannelList(&$auth) {
+
+ $ret = array();
+
+ $r = q("select channel_id, channel_address from channel where not (channel_pageflags & %d) and not (channel_pageflags & %d) ",
+ intval(PAGE_REMOVED),
+ intval(PAGE_HIDDEN)
+ );
+
+ if($r) {
+ foreach($r as $rr) {
+ if(perm_is_allowed($rr['channel_id'],$auth->observer,'view_storage')) {
+ logger('RedChannelList: ' . '/cloud/' . $rr['channel_address'], LOGGER_DATA);
+ $ret[] = new RedDirectory('/cloud/' . $rr['channel_address'],$auth);
+ }
+ }
+ }
+ return $ret;
+
+}
+
+
+function RedCollectionData($file,&$auth) {
+
+ $ret = array();
+
+ $x = strpos($file,'/cloud');
+ if($x === 0) {
+ $file = substr($file,6);
+ }
+
+ if((! $file) || ($file === '/')) {
+ return RedChannelList($auth);
+ }
+
+ $file = trim($file,'/');
+ $path_arr = explode('/', $file);
+
+ if(! $path_arr)
+ return null;
- $r = q("select * from attach where folder = '%s' and filename = '%s' and uid = %d limit 1",
- dbesc($this->dir_key),
- dbesc($name),
- dbesc($this->channel_id)
+ $channel_name = $path_arr[0];
+
+ $r = q("select channel_id from channel where channel_address = '%s' limit 1",
+ dbesc($channel_name)
+ );
+
+ if(! $r)
+ return null;
+
+ $channel_id = $r[0]['channel_id'];
+ $perms = permissions_sql($channel_id);
+
+ $auth->owner_id = $channel_id;
+
+ $path = '/' . $channel_name;
+
+ $folder = '';
+ $errors = false;
+ $permission_error = false;
+
+ for($x = 1; $x < count($path_arr); $x ++) {
+
+ $r = q("select id, hash, filename, flags from attach where folder = '%s' and filename = '%s' and (flags & %d) $perms limit 1",
+ dbesc($folder),
+ dbesc($path_arr[$x]),
+ intval(ATTACH_FLAG_DIR)
);
if(! $r) {
- throw new DAV\Exception\NotFound('The file with name: ' . $name . ' could not be found');
- }
+ // path wasn't found. Try without permissions to see if it was the result of permissions.
+ $errors = true;
+ $r = q("select id, hash, filename, flags from attach where folder = '%s' and filename = '%s' and (flags & %d) limit 1",
+ dbesc($folder),
+ basename($path_arr[$x]),
+ intval(ATTACH_FLAG_DIR)
+ );
+ if($r) {
+ $permission_error = true;
+ }
+ break;
+ }
-
+ if($r && ( $r[0]['flags'] & ATTACH_FLAG_DIR)) {
+ $folder = $r[0]['hash'];
+ $path = $path . '/' . $r[0]['filename'];
+ }
}
+ if($errors) {
+ if($permission_error) {
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ return;
+ }
+ else {
+ throw new DAV\Exception\NotFound('A component of the request file path could not be found');
+ return;
+ }
+ }
- function createFile($name,$data = null) {
+ // This should no longer be needed since we just returned errors for paths not found
+ if($path !== '/' . $file) {
+ logger("RedCollectionData: Path mismatch: $path !== /$file");
+ return NULL;
+ }
+
+ $ret = array();
+
+ $r = q("select id, uid, hash, filename, filetype, filesize, revision, folder, flags, created, edited from attach where folder = '%s' and uid = %d $perms group by filename",
+ dbesc($folder),
+ intval($channel_id)
+ );
+ foreach($r as $rr) {
+ logger('RedCollectionData: filename: ' . $rr['filename'], LOGGER_DATA);
+
+ if($rr['flags'] & ATTACH_FLAG_DIR)
+ $ret[] = new RedDirectory('/cloud' . $path . '/' . $rr['filename'],$auth);
+ else
+ $ret[] = new RedFile('/cloud' . $path . '/' . $rr['filename'],$rr,$auth);
}
- function createDirectory($name) {
+ return $ret;
+}
+
+function RedFileData($file, &$auth,$test = false) {
+
+ logger('RedFileData:' . $file . (($test) ? ' (test mode) ' : ''), LOGGER_DEBUG);
+ $x = strpos($file,'/cloud');
+ if($x === 0) {
+ $file = substr($file,6);
}
+ if((! $file) || ($file === '/')) {
+ return new RedDirectory('/',$auth);
- function childExists($name) {
- $r = q("select distinct filename from attach where folder = '%s' and filename = '%s' and uid = %d group by filename",
- dbesc($this->dir_key),
- dbesc($name),
- intval($this->channel_id)
+ }
+
+ $file = trim($file,'/');
+
+ $path_arr = explode('/', $file);
+
+ if(! $path_arr)
+ return null;
+
+
+ $channel_name = $path_arr[0];
+
+
+ $r = q("select channel_id from channel where channel_address = '%s' limit 1",
+ dbesc($channel_name)
+ );
+
+ if(! $r)
+ return null;
+
+ $channel_id = $r[0]['channel_id'];
+
+ $path = '/' . $channel_name;
+
+ $auth->owner_id = $channel_id;
+
+ $permission_error = false;
+
+ $folder = '';
+
+ require_once('include/security.php');
+ $perms = permissions_sql($channel_id);
+
+ $errors = false;
+
+ for($x = 1; $x < count($path_arr); $x ++) {
+ $r = q("select id, hash, filename, flags from attach where folder = '%s' and filename = '%s' and uid = %d and (flags & %d) $perms",
+ dbesc($folder),
+ dbesc($path_arr[$x]),
+ intval($channel_id),
+ intval(ATTACH_FLAG_DIR)
);
- if($r)
+
+ if($r && ( $r[0]['flags'] & ATTACH_FLAG_DIR)) {
+ $folder = $r[0]['hash'];
+ $path = $path . '/' . $r[0]['filename'];
+ }
+ if(! $r) {
+ $r = q("select id, uid, hash, filename, filetype, filesize, revision, folder, flags, created, edited from attach
+ where folder = '%s' and filename = '%s' and uid = %d $perms group by filename limit 1",
+ dbesc($folder),
+ basename($file),
+ intval($channel_id)
+
+ );
+ }
+ if(! $r) {
+
+ $errors = true;
+ $r = q("select id, uid, hash, filename, filetype, filesize, revision, folder, flags, created, edited from attach
+ where folder = '%s' and filename = '%s' and uid = %d group by filename limit 1",
+ dbesc($folder),
+ basename($file),
+ intval($channel_id)
+ );
+ if($r)
+ $permission_error = true;
+
+ }
+
+ }
+
+ if($path === '/' . $file) {
+ if($test)
return true;
- return false;
+ // final component was a directory.
+ return new RedDirectory('/cloud/' . $file,$auth);
+ }
+ if($errors) {
+ logger('RedFileData: not found');
+ if($test)
+ return false;
+ if($permission_error) {
+ logger('RedFileData: permission error');
+ throw new DAV\Exception\Forbidden('Permission denied.');
+ }
+ return;
}
+ if($r) {
+ if($test)
+ return true;
+
+ if($r[0]['flags'] & ATTACH_FLAG_DIR)
+ return new RedDirectory('/cloud' . $path . '/' . $r[0]['filename'],$auth);
+ else
+ return new RedFile('/cloud' . $path . '/' . $r[0]['filename'],$r[0],$auth);
+ }
+ return false;
}
-abstract class RedFile extends DAV\Node implements DAV\IFile {
+class RedBasicAuth extends Sabre\DAV\Auth\Backend\AbstractBasic {
- private $data;
+ public $channel_name = '';
+ public $channel_id = 0;
+ public $channel_hash = '';
+ public $observer = '';
+ public $browser;
+ public $owner_id;
+ public $owner_nick = '';
+ public $timezone;
+ protected function validateUserPass($username, $password) {
- function __construct($data) {
- $this->data = $data;
- }
+ if(trim($password) === '+++') {
+ logger('reddav: validateUserPass: guest ' . $username);
+ return true;
+ }
+ require_once('include/auth.php');
+ $record = account_verify_password($username,$password);
+ if($record && $record['account_default_channel']) {
+ $r = q("select * from channel where channel_account_id = %d and channel_id = %d limit 1",
+ intval($record['account_id']),
+ intval($record['account_default_channel'])
+ );
+ if($r) {
+ $this->currentUser = $r[0]['channel_address'];
+ $this->channel_name = $r[0]['channel_address'];
+ $this->channel_id = $r[0]['channel_id'];
+ $this->channel_hash = $this->observer = $r[0]['channel_hash'];
+ $_SESSION['uid'] = $r[0]['channel_id'];
+ $_SESSION['account_id'] = $r[0]['channel_account_id'];
+ $_SESSION['authenticated'] = true;
+ return true;
+ }
+ }
+ $r = q("select * from channel where channel_address = '%s' limit 1",
+ dbesc($username)
+ );
+ if($r) {
+ $x = q("select * from account where account_id = %d limit 1",
+ intval($r[0]['channel_account_id'])
+ );
+ if($x) {
+ foreach($x as $record) {
+ if(($record['account_flags'] == ACCOUNT_OK) || ($record['account_flags'] == ACCOUNT_UNVERIFIED)
+ && (hash('whirlpool',$record['account_salt'] . $password) === $record['account_password'])) {
+ logger('(DAV) RedBasicAuth: password verified for ' . $username);
+ $this->currentUser = $r[0]['channel_address'];
+ $this->channel_name = $r[0]['channel_address'];
+ $this->channel_id = $r[0]['channel_id'];
+ $this->channel_hash = $this->observer = $r[0]['channel_hash'];
+ $_SESSION['uid'] = $r[0]['channel_id'];
+ $_SESSION['account_id'] = $r[0]['channel_account_id'];
+ $_SESSION['authenticated'] = true;
+ return true;
+ }
+ }
+ }
+ }
+ logger('(DAV) RedBasicAuth: password failed for ' . $username);
+ return false;
+ }
+ function setCurrentUser($name) {
+ $this->currentUser = $name;
+ }
- function put($data) {
+ function setBrowserPlugin($browser) {
+ $this->browser = $browser;
+ }
+
+ function log() {
+ logger('dav: auth: channel_name ' . $this->channel_name, LOGGER_DATA);
+ logger('dav: auth: channel_id ' . $this->channel_id, LOGGER_DATA);
+ logger('dav: auth: channel_hash ' . $this->channel_hash, LOGGER_DATA);
+ logger('dav: auth: observer ' . $this->observer, LOGGER_DATA);
+ logger('dav: auth: owner_id ' . $this->owner_id, LOGGER_DATA);
+ logger('dav: auth: owner_nick ' . $this->owner_nick, LOGGER_DATA);
}
- function get() {
+}
- }
+class RedBrowser extends DAV\Browser\Plugin {
- function getETag() {
+ private $auth;
+ function __construct(&$auth) {
+ $this->auth = $auth;
+ $this->enableAssets = false;
}
+ // The DAV browser is instantiated after the auth module and directory classes but before we know the current
+ // directory and who the owner and observer are. So we add a pointer to the browser into the auth module and vice
+ // versa. Then when we've figured out what directory is actually being accessed, we call the following function
+ // to decide whether or not to show web elements which include writeable objects.
- function getContentType() {
- return $this->data['filetype'];
- }
+ function set_writeable() {
+
+ if(! $this->auth->owner_id)
+ $this->enablePost = false;
+
+ if(! perm_is_allowed($this->auth->owner_id, get_observer_hash(), 'write_storage'))
+ $this->enablePost = false;
+ else
+ $this->enablePost = true;
- function getSize() {
- return $this->data['filesize'];
}
-}
+ public function generateDirectoryIndex($path) {
+
+ if($this->auth->timezone)
+ date_default_timezone_set($this->auth->timezone);
+
+ $version = '';
+
+ $html = "
+<body>
+ <h1>Index for " . $this->escapeHTML($path) . "/</h1>
+ <table>
+ <tr><th width=\"24\"></th><th>Name</th><th>Type</th><th>Size</th><th>Last modified</th></tr>
+ <tr><td colspan=\"5\"><hr /></td></tr>";
+ $files = $this->server->getPropertiesForPath($path,array(
+ '{DAV:}displayname',
+ '{DAV:}resourcetype',
+ '{DAV:}getcontenttype',
+ '{DAV:}getcontentlength',
+ '{DAV:}getlastmodified',
+ ),1);
+ $parent = $this->server->tree->getNodeForPath($path);
+ if ($path) {
+ list($parentUri) = DAV\URLUtil::splitPath($path);
+ $fullPath = DAV\URLUtil::encodePath($this->server->getBaseUri() . $parentUri);
+
+ $icon = $this->enableAssets?'<a href="' . $fullPath . '"><img src="' . $this->getAssetUrl('icons/parent' . $this->iconExtension) . '" width="24" alt="Parent" /></a>':'';
+ $html.= "<tr>
+ <td>$icon</td>
+ <td><a href=\"{$fullPath}\">..</a></td>
+ <td>[parent]</td>
+ <td></td>
+ <td></td>
+ </tr>";
+
+ }
+
+ foreach($files as $file) {
+
+ // This is the current directory, we can skip it
+ if (rtrim($file['href'],'/')==$path) continue;
+
+ list(, $name) = DAV\URLUtil::splitPath($file['href']);
+
+ $type = null;
+
+
+ if (isset($file[200]['{DAV:}resourcetype'])) {
+ $type = $file[200]['{DAV:}resourcetype']->getValue();
+
+ // resourcetype can have multiple values
+ if (!is_array($type)) $type = array($type);
+
+ foreach($type as $k=>$v) {
+
+ // Some name mapping is preferred
+ switch($v) {
+ case '{DAV:}collection' :
+ $type[$k] = 'Collection';
+ break;
+ case '{DAV:}principal' :
+ $type[$k] = 'Principal';
+ break;
+ case '{urn:ietf:params:xml:ns:carddav}addressbook' :
+ $type[$k] = 'Addressbook';
+ break;
+ case '{urn:ietf:params:xml:ns:caldav}calendar' :
+ $type[$k] = 'Calendar';
+ break;
+ case '{urn:ietf:params:xml:ns:caldav}schedule-inbox' :
+ $type[$k] = 'Schedule Inbox';
+ break;
+ case '{urn:ietf:params:xml:ns:caldav}schedule-outbox' :
+ $type[$k] = 'Schedule Outbox';
+ break;
+ case '{http://calendarserver.org/ns/}calendar-proxy-read' :
+ $type[$k] = 'Proxy-Read';
+ break;
+ case '{http://calendarserver.org/ns/}calendar-proxy-write' :
+ $type[$k] = 'Proxy-Write';
+ break;
+ }
+
+ }
+ $type = implode(', ', $type);
+ }
+
+ // If no resourcetype was found, we attempt to use
+ // the contenttype property
+ if (!$type && isset($file[200]['{DAV:}getcontenttype'])) {
+ $type = $file[200]['{DAV:}getcontenttype'];
+ }
+ if (!$type) $type = 'Unknown';
+
+ $size = isset($file[200]['{DAV:}getcontentlength'])?(int)$file[200]['{DAV:}getcontentlength']:'';
+ $lastmodified = ((isset($file[200]['{DAV:}getlastmodified']))? $file[200]['{DAV:}getlastmodified']->getTime()->format('Y-m-d H:i:s') :'');
+
+ $fullPath = DAV\URLUtil::encodePath('/' . trim($this->server->getBaseUri() . ($path?$path . '/':'') . $name,'/'));
+
+ $displayName = isset($file[200]['{DAV:}displayname'])?$file[200]['{DAV:}displayname']:$name;
+
+ $displayName = $this->escapeHTML($displayName);
+ $type = $this->escapeHTML($type);
+
+ $icon = '';
+
+ if ($this->enableAssets) {
+ $node = $this->server->tree->getNodeForPath(($path?$path.'/':'') . $name);
+ foreach(array_reverse($this->iconMap) as $class=>$iconName) {
+
+ if ($node instanceof $class) {
+ $icon = '<a href="' . $fullPath . '"><img src="' . $this->getAssetUrl($iconName . $this->iconExtension) . '" alt="" width="24" /></a>';
+ break;
+ }
+
+
+ }
+
+ }
+
+ $html.= "<tr>
+ <td>$icon</td>
+ <td><a href=\"{$fullPath}\">{$displayName}</a></td>
+ <td>{$type}</td>
+ <td>{$size}</td>
+ <td>" . (($lastmodified) ? datetime_convert('UTC', date_default_timezone_get(),$lastmodified) : '') . "</td>
+ </tr>";
+
+ }
+
+ $html.= "<tr><td colspan=\"5\"><hr /></td></tr>";
+
+ $output = '';
+
+ if ($this->enablePost) {
+ $this->server->broadcastEvent('onHTMLActionsPanel',array($parent, &$output));
+ }
+
+ $html.=$output;
+
+ $html.= "</table>";
+
+ get_app()->page['content'] = $html;
+ construct_page(get_app());
+
+// return $html;
+
+ }
+
+
+ public function htmlActionsPanel(DAV\INode $node, &$output) {
+
+ if (!$node instanceof DAV\ICollection)
+ return;
+
+ // We also know fairly certain that if an object is a non-extended
+ // SimpleCollection, we won't need to show the panel either.
+
+ if (get_class($node)==='Sabre\\DAV\\SimpleCollection')
+ return;
+
+ $output.= '<tr><td colspan="2"><form method="post" action="">
+ <h3>Create new folder</h3>
+ <input type="hidden" name="sabreAction" value="mkcol" />
+ Name: <input type="text" name="name" />
+ <input type="submit" value="create" />
+ </form>
+ <form method="post" action="" enctype="multipart/form-data">
+ <h3>Upload file</h3>
+ <input type="hidden" name="sabreAction" value="put" />
+ Name (optional): <input type="text" name="name" /><br />
+ File: <input type="file" name="file" /><br />
+ <input type="submit" value="upload" />
+ </form>
+ </td></tr>';
+
+
+ if($this->auth->owner_id && $this->auth->owner_id == $this->auth->channel_id) {
+ $channel = get_app()->get_channel();
+ if($channel) {
+ $output .= '<tr><td>&nbsp;</td></tr><tr><td colspan="2"><a href="filestorage/' . $channel['channel_address'] . '" >' . t('Edit File properties') . '</a></td></tr>';
+ }
+ }
+
+ }
+
+ /**
+ * This method takes a path/name of an asset and turns it into url
+ * suiteable for http access.
+ *
+ * @param string $assetName
+ * @return string
+ */
+ protected function getAssetUrl($assetName) {
+ return z_root() .'/cloud/?sabreAction=asset&assetName=' . urlencode($assetName);
+ }
+
+}
diff --git a/include/security.php b/include/security.php
index 296fa450f..f52615357 100644
--- a/include/security.php
+++ b/include/security.php
@@ -31,95 +31,14 @@ function authenticate_success($user_record, $login_initial = false, $interactive
}
}
- else {
- $_SESSION['uid'] = $user_record['uid'];
- $_SESSION['theme'] = $user_record['theme'];
- $_SESSION['mobile_theme'] = get_pconfig($user_record['uid'], 'system', 'mobile_theme');
- $_SESSION['authenticated'] = 1;
- $_SESSION['page_flags'] = $user_record['page-flags'];
- $_SESSION['my_url'] = $a->get_baseurl() . '/channel/' . $user_record['nickname'];
- $_SESSION['my_address'] = $user_record['nickname'] . '@' . substr($a->get_baseurl(),strpos($a->get_baseurl(),'://')+3);
-
- $a->user = $user_record;
-
- if($interactive) {
- if($a->user['login_date'] === '0000-00-00 00:00:00') {
- $_SESSION['return_url'] = 'profile_photo/new';
- $a->module = 'profile_photo';
- info( t("Welcome ") . $a->user['username'] . EOL);
- info( t('Please upload a profile photo.') . EOL);
- }
- else
- info( t("Welcome back ") . $a->user['username'] . EOL);
- }
-
- $member_since = strtotime($a->user['register_date']);
- if(time() < ($member_since + ( 60 * 60 * 24 * 14)))
- $_SESSION['new_member'] = true;
- else
- $_SESSION['new_member'] = false;
- if(strlen($a->user['timezone'])) {
- date_default_timezone_set($a->user['timezone']);
- $a->timezone = $a->user['timezone'];
- }
-
- $master_record = $a->user;
-
- if((x($_SESSION,'submanage')) && intval($_SESSION['submanage'])) {
- $r = q("select * from user where uid = %d limit 1",
- intval($_SESSION['submanage'])
- );
- if(count($r))
- $master_record = $r[0];
- }
-
- $r = q("SELECT `uid`,`username`,`nickname` FROM `user` WHERE `password` = '%s' AND `email` = '%s'",
- dbesc($master_record['password']),
- dbesc($master_record['email'])
- );
- if($r && count($r))
- $a->identities = $r;
- else
- $a->identities = array();
-
- $r = q("select `user`.`uid`, `user`.`username`, `user`.`nickname`
- from manage left join user on manage.mid = user.uid
- where `manage`.`uid` = %d",
- intval($master_record['uid'])
- );
- if($r && count($r))
- $a->identities = array_merge($a->identities,$r);
-
- if($login_initial)
- logger('auth_identities: ' . print_r($a->identities,true), LOGGER_DEBUG);
-
- $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1",
- intval($_SESSION['uid']));
- if(count($r)) {
- $a->contact = $r[0];
- $a->cid = $r[0]['id'];
- $_SESSION['cid'] = $a->cid;
- }
-
- header('X-Account-Management-Status: active; name="' . $a->user['username'] . '"; id="' . $a->user['nickname'] .'"');
-
- if($login_initial) {
- $l = get_browser_language();
- q("UPDATE `user` SET `login_date` = '%s', `language` = '%s' WHERE `uid` = %d LIMIT 1",
- dbesc(datetime_convert()),
- dbesc($l),
- intval($_SESSION['uid'])
- );
+ if($login_initial) {
+ call_hooks('logged_in', $user_record);
- }
+ // might want to log success here
}
- if($login_initial)
- call_hooks('logged_in', $user_record);
-
-
if($return || x($_SESSION,'workflow')) {
unset($_SESSION['workflow']);
return;
@@ -131,6 +50,17 @@ function authenticate_success($user_record, $login_initial = false, $interactive
goaway($a->get_baseurl() . '/' . $return_url);
}
+ /* This account has never created a channel. Send them to new_channel by default */
+
+ if($a->module === 'login') {
+ $r = q("select count(channel_id) as total from channel where channel_account_id = %d",
+ intval($a->account['account_id'])
+ );
+ if(($r) && (! $r[0]['total']))
+ goaway(z_root() . '/new_channel');
+ }
+
+ /* else just return */
}
@@ -144,6 +74,7 @@ function change_channel($change_channel) {
intval(get_account_id()),
intval(PAGE_REMOVED)
);
+
if($r) {
$hash = $r[0]['channel_hash'];
$_SESSION['uid'] = intval($r[0]['channel_id']);
@@ -158,11 +89,14 @@ function change_channel($change_channel) {
);
if($x) {
$_SESSION['my_url'] = $x[0]['xchan_url'];
- $_SESSION['my_address'] = $x[0]['xchan_addr'];
+ $_SESSION['my_address'] = $r[0]['channel_address'] . '@' . substr(get_app()->get_baseurl(),strpos(get_app()->get_baseurl(),'://')+3);
get_app()->set_observer($x[0]);
get_app()->set_perms(get_all_perms(local_user(),$hash));
}
+ if(! is_dir('store/' . $r[0]['channel_address']))
+ @mkdir('store/' . $r[0]['channel_address'], STORAGE_DEFAULT_PERMISSIONS,true);
+
}
return $ret;
@@ -336,7 +270,7 @@ function get_form_security_token($typename = '') {
$timestamp = time();
$sec_hash = hash('whirlpool', $a->user['guid'] . $a->user['prvkey'] . session_id() . $timestamp . $typename);
-
+
return $timestamp . '.' . $sec_hash;
}
@@ -386,7 +320,7 @@ function check_form_security_token_ForbiddenOnErr($typename = '', $formname = 'f
if(! function_exists('init_groups_visitor')) {
function init_groups_visitor($contact_id) {
$groups = array();
- $r = q("SELECT hash FROM `group` left join group_member on group.id = group_member.gid WHERE xchan = '%s' ",
+ $r = q("SELECT hash FROM `groups` left join group_member on groups.id = group_member.gid WHERE xchan = '%s' ",
dbesc($contact_id)
);
if(count($r)) {
diff --git a/include/session.php b/include/session.php
index 6072bdb33..be1ec5ee7 100644
--- a/include/session.php
+++ b/include/session.php
@@ -15,6 +15,15 @@ function new_cookie($time) {
session_regenerate_id(false);
q("UPDATE session SET sid = '%s' WHERE sid = '%s'", dbesc(session_id()), dbesc($old_sid));
+
+ if (x($_COOKIE, 'jsAvailable')) {
+ if ($time) {
+ $expires = time() + $time;
+ } else {
+ $expires = 0;
+ }
+ setcookie('jsAvailable', $_COOKIE['jsAvailable'], $expires);
+ }
}
diff --git a/include/spam.php b/include/spam.php
new file mode 100644
index 000000000..8b158b7ae
--- /dev/null
+++ b/include/spam.php
@@ -0,0 +1,35 @@
+<?php /** @file */
+
+
+function string_splitter($s) {
+
+ if(! $s)
+ return array();
+
+ $s = preg_replace('/\pP+/','',$s);
+
+ $x = mb_split("\[|\]|\s",$s);
+
+ $ret = array();
+ if($x) {
+ foreach($x as $y) {
+ if(mb_strlen($y) > 2)
+ $ret[] = substr($y,0,64);
+ }
+ }
+ return $ret;
+}
+
+
+
+function get_words($uid,$list) {
+
+ stringify($list,true);
+
+ $r = q("select * from spam where term in ( " . $list . ") and uid = %d",
+ intval($uid)
+ );
+
+ return $r;
+}
+
diff --git a/include/taxonomy.php b/include/taxonomy.php
index 5159dad02..4f2b5e8fd 100644
--- a/include/taxonomy.php
+++ b/include/taxonomy.php
@@ -87,9 +87,9 @@ function format_term_for_display($term) {
return $s;
if($term['url'])
- $s .= '<a href="' . $term['url'] . '">' . htmlspecialchars($term['term']) . '</a>';
+ $s .= '<a href="' . $term['url'] . '">' . htmlspecialchars($term['term'], ENT_COMPAT,'UTF-8') . '</a>';
else
- $s .= htmlspecialchars($term['term']);
+ $s .= htmlspecialchars($term['term'], ENT_COMPAT,'UTF-8');
return $s;
}
@@ -217,16 +217,19 @@ function tagblock($link,$uid,$count = 0,$authors = '',$flags = 0,$restrict = 0,$
}
function dir_tagblock($link,$r) {
- $o = '';
- $tab = 0;
+ $o = '';
+ $tab = 0;
- if($r) {
- $o = '<div class="dirtagblock widget"><h3>' . t('Keywords') . '</h3><div class="tags" align="center">';
- foreach($r as $rr) {
- $o .= '<a href="'.$link .'/' . '?f=&keywords=' . urlencode($rr['term']).'" class="tag'.$rr['normalise'].'" rel="nofollow" >'.$rr['term'].'</a> ' . "\r\n";
+ if(! $r)
+ $r = get_app()->data['directory_keywords'];
+
+ if($r) {
+ $o = '<div class="dirtagblock widget"><h3>' . t('Keywords') . '</h3><div class="tags" align="center">';
+ foreach($r as $rr) {
+ $o .= '<a href="'.$link .'/' . '?f=&keywords=' . urlencode($rr['term']).'" class="tag'.$rr['normalise'].'" rel="nofollow" >'.$rr['term'].'</a> ' . "\r\n";
+ }
+ $o .= '</div></div>';
}
- $o .= '</div></div>';
- }
return $o;
}
@@ -258,13 +261,81 @@ function obj_verbs() {
}
-function obj_verb_selector() {
+function obj_verb_selector($current = '') {
$verbs = obj_verbs();
$o .= '<select class="obj-verb-selector" name="verb" >';
foreach($verbs as $k => $v) {
- $o .= '<option value="' . urlencode($k) . '">' . $v[0] . '</option>';
+ $selected = (($k == $current) ? ' selected="selected" ' : '');
+ $o .= '<option value="' . urlencode($k) . '"' . $selected . '>' . $v[0] . '</option>';
}
$o .= '</select>';
return $o;
+}
+
+function get_things($profile_hash,$uid) {
+
+ $sql_extra = (($profile_hash) ? " and obj_page = '" . $profile_hash . "' " : '');
+
+ $r = q("select * from obj left join term on obj_obj = term_hash where term_hash != '' and uid = %d and obj_type = %d $sql_extra order by obj_verb, term",
+ intval($uid),
+ intval(TERM_OBJ_THING)
+ );
+
+ $things = $sorted_things = null;
+
+ $profile_hashes = array();
+
+ if($r) {
+
+ // if no profile_hash was specified (display on profile page mode), match each of the things to a profile name
+ // (list all my things mode). This is harder than it sounds.
+
+ foreach($r as $rr) {
+ $rr['profile_name'] = '';
+ if(! in_array($rr['term_hash'],$profile_hashes))
+ $profile_hashes[] = $rr['term_hash'];
+ }
+ stringify_array_elms($profile_hashes);
+ if(! $profile_hash) {
+ $exp = explode(',',$profile_hashes);
+ $p = q("select profile_guid as hash, profile_name as name from profile where profile_guid in ( $exp ) ");
+ if($p) {
+ foreach($r as $rr) {
+ foreach($p as $pp) {
+ if($rr['obj_page'] == $pp['hash']) {
+ $rr['profile_name'] == $pp['name'];
+ }
+ }
+ }
+ }
+ }
+
+ $things = array();
+
+ // Use the system obj_verbs array as a sort key, since we don't really
+ // want an alphabetic sort. To change the order, use a plugin to
+ // alter the obj_verbs() array or alter it in code. Unknown verbs come
+ // after the known ones - in no particular order.
+
+ $v = obj_verbs();
+ foreach($v as $k => $foo)
+ $things[$k] = null;
+ foreach($r as $rr) {
+ if(! $things[$rr['obj_verb']])
+ $things[$rr['obj_verb']] = array();
+ $things[$rr['obj_verb']][] = array('term' => $rr['term'],'url' => $rr['url'],'img' => $rr['imgurl'], 'profile' => $rr['profile_name']);
+ }
+ $sorted_things = array();
+ if($things) {
+ foreach($things as $k => $v) {
+ if(is_array($things[$k])) {
+ $sorted_things[$k] = $v;
+ }
+ }
+ }
+ }
+
+ return $sorted_things;
+
} \ No newline at end of file
diff --git a/include/text.php b/include/text.php
index aa23f96b0..dfd35c769 100755
--- a/include/text.php
+++ b/include/text.php
@@ -442,7 +442,7 @@ function item_message_id() {
$mid = $hash . '@' . get_app()->get_hostname();
- $r = q("SELECT `id` FROM `item` WHERE `mid` = '%s' LIMIT 1",
+ $r = q("SELECT id FROM item WHERE mid = '%s' LIMIT 1",
dbesc($mid));
if(count($r))
$dups = true;
@@ -459,7 +459,7 @@ function photo_new_resource() {
do {
$found = false;
$resource = hash('md5',uniqid(mt_rand(),true));
- $r = q("SELECT `id` FROM `photo` WHERE `resource_id` = '%s' LIMIT 1",
+ $r = q("SELECT id FROM photo WHERE resource_id = '%s' LIMIT 1",
dbesc($resource)
);
if(count($r))
@@ -565,6 +565,10 @@ function get_tags($s) {
$s = preg_replace('/\[code\](.*?)\[\/code\]/sm','',$s);
+ // ignore anything in [style= ]
+
+ $s = preg_replace('/\[style=(.*?)\]/sm','',$s);
+
// Match full names against @tags including the space between first and last
// We will look these up afterward to see if they are full names or not recognisable.
@@ -593,7 +597,7 @@ function get_tags($s) {
if(substr($mtch,-1,1) === '.')
$mtch = substr($mtch,0,-1);
// ignore strictly numeric tags like #1
- if((strpos($mtch,'#') === 0) && ctype_digit(substr($mtch,1)))
+ if((strpos($mtch,'#') === 0) && ( ctype_digit(substr($mtch,1)) || substr($mtch,1,1) === '^'))
continue;
// try not to catch url fragments
if(strpos($s,$mtch) && preg_match('/[a-zA-z0-9\/]/',substr($s,strpos($s,$mtch)-1,1)))
@@ -601,10 +605,27 @@ function get_tags($s) {
$ret[] = $mtch;
}
}
+
+ // bookmarks
+
+ if(preg_match_all('/#\^\[(url|zrl)(.*?)\](.*?)\[\/(url|zrl)\]/',$s,$match,PREG_SET_ORDER)) {
+ foreach($match as $mtch) {
+ $ret[] = $mtch[0];
+ }
+ }
+
+
+ // logger('get_tags: ' . print_r($ret,true));
+
return $ret;
}
+function strip_zids($s) {
+ return preg_replace('/[\?&]zid=(.*?)(&|$)/ism','$2',$s);
+}
+
+
// quick and dirty quoted_printable encoding
@@ -781,6 +802,34 @@ function linkify($s) {
return($s);
}
+/**
+ * @function sslify($s)
+ * Replace media element using http url with https to a local redirector if using https locally
+ * @param string $s
+ *
+ * Looks for HTML tags containing src elements that are http when we're viewing an https page
+ * Typically this throws an insecure content violation in the browser. So we redirect them
+ * to a local redirector which uses https and which redirects to the selected content
+ *
+ * @returns string
+ */
+
+
+function sslify($s) {
+ if(strpos(z_root(),'https:') === false)
+ return $s;
+ $matches = null;
+ $cnt = preg_match_all("/\<(.*?)src=\"(http\:.*?)\"(.*?)\>/",$s,$matches,PREG_SET_ORDER);
+ if($cnt) {
+ foreach($matches as $match) {
+ $s = str_replace($match[2],z_root() . '/sslify?f=&url=' . urlencode($match[2]),$s);
+ }
+ }
+ return $s;
+}
+
+
+
function get_poke_verbs() {
// index is present tense verb
@@ -843,8 +892,8 @@ function get_mood_verbs() {
* Returns string
*
* It is expected that this function will be called using HTML text.
- * We will escape text between HTML pre and code blocks from being
- * processed.
+ * We will escape text between HTML pre and code blocks, and HTML attributes
+ * (such as urls) from being processed.
*
* At a higher level, the bbcode [nosmile] tag can be used to prevent this
* function from being executed by the prepare_text() routine when preparing
@@ -861,8 +910,8 @@ function smilies($s, $sample = false) {
|| (local_user() && intval(get_pconfig(local_user(),'system','no_smilies'))))
return $s;
- $s = preg_replace_callback('/<pre>(.*?)<\/pre>/ism','smile_encode',$s);
- $s = preg_replace_callback('/<code>(.*?)<\/code>/ism','smile_encode',$s);
+ $s = preg_replace_callback('{<(pre|code)>.*?</\1>}ism','smile_shield',$s);
+ $s = preg_replace_callback('/<[a-z]+ .*?>/ism','smile_shield',$s);
$texts = array(
'&lt;3',
@@ -953,19 +1002,18 @@ function smilies($s, $sample = false) {
$s = str_replace($params['texts'],$params['icons'],$params['string']);
}
- $s = preg_replace_callback('/<pre>(.*?)<\/pre>/ism','smile_decode',$s);
- $s = preg_replace_callback('/<code>(.*?)<\/code>/ism','smile_decode',$s);
+ $s = preg_replace_callback('/<!--base64:(.*?)-->/ism', 'smile_unshield', $s);
return $s;
}
-function smile_encode($m) {
- return(str_replace($m[1],base64url_encode($m[1]),$m[0]));
+function smile_shield($m) {
+ return '<!--base64:' . base64url_encode($m[0]) . '-->';
}
-function smile_decode($m) {
- return(str_replace($m[1],base64url_decode($m[1]),$m[0]));
+function smile_unshield($m) {
+ return base64url_decode($m[1]);
}
// expand <3333 to the correct number of hearts
@@ -1065,7 +1113,7 @@ function theme_attachments(&$item) {
break;
}
- $title = htmlentities($r['title'], ENT_COMPAT,'UTF-8');
+ $title = htmlspecialchars($r['title'], ENT_COMPAT,'UTF-8');
if(! $title)
$title = t('unknown.???');
$title .= ' ' . $r['length'] . ' ' . t('bytes');
@@ -1095,7 +1143,7 @@ function format_categories(&$item,$writeable) {
if($terms) {
$categories = array();
foreach($terms as $t) {
- $term = htmlspecialchars($t['term'],ENT_COMPAT,'UTF-8') ;
+ $term = htmlspecialchars($t['term'],ENT_COMPAT,'UTF-8',false) ;
if(! trim($term))
continue;
$removelink = (($writeable) ? z_root() . '/filerm/' . $item['id'] . '?f=&cat=' . urlencode($t['term']) : '');
@@ -1117,7 +1165,7 @@ function format_filer(&$item) {
if($terms) {
$categories = array();
foreach($terms as $t) {
- $term = htmlspecialchars($t['term'],ENT_COMPAT,'UTF-8') ;
+ $term = htmlspecialchars($t['term'],ENT_COMPAT,'UTF-8',false) ;
if(! trim($term))
continue;
$removelink = z_root() . '/filerm/' . $item['id'] . '?f=&term=' . urlencode($t['term']);
@@ -1166,6 +1214,10 @@ function prepare_body(&$item,$attach = false) {
if(local_user() == $item['uid'])
$s .= format_filer($item);
+
+ $s = sslify($s);
+
+
// Look for spoiler
$spoilersearch = '<blockquote class="spoiler">';
@@ -1272,24 +1324,15 @@ function prepare_text($text,$content_type = 'text/bbcode') {
function zidify_callback($match) {
- if (feature_enabled(local_user(),'sendzid')) {
- $replace = '<a' . $match[1] . ' href="' . zid($match[2]) . '"';
- }
- else {
- $replace = '<a' . $match[1] . 'class="zrl"' . $match[2] . ' href="' . zid($match[3]) . '"';
- }
-
+ $is_zid = ((feature_enabled(local_user(),'sendzid')) || (strpos($match[1],'zrl')) ? true : false);
+ $replace = '<a' . $match[1] . ' href="' . (($is_zid) ? zid($match[2]) : $match[2]) . '"';
$x = str_replace($match[0],$replace,$match[0]);
return $x;
}
function zidify_img_callback($match) {
- if (feature_enabled(local_user(),'sendzid')) {
- $replace = '<img' . $match[1] . ' src="' . zid($match[2]) . '"';
- }
- else {
- $replace = '<img' . $match[1] . ' src="' . zid($match[2]) . '"';
- }
+ $is_zid = ((feature_enabled(local_user(),'sendzid')) || (strpos($match[1],'zrl')) ? true : false);
+ $replace = '<img' . $match[1] . ' src="' . (($is_zid) ? zid($match[2]) : $match[2]) . '"';
$x = str_replace($match[0],$replace,$match[0]);
return $x;
@@ -1297,25 +1340,13 @@ function zidify_img_callback($match) {
function zidify_links($s) {
- if(feature_enabled(local_user(),'sendzid')) {
- $s = preg_replace_callback('/\<a(.*?)href\=\"(.*?)\"/ism','zidify_callback',$s);
- $s = preg_replace_callback('/\<img(.*?)src\=\"(.*?)\"/ism','zidify_img_callback',$s);
- }
- else {
- $s = preg_replace_callback('/\<a(.*?)class\=\"zrl\"(.*?)href\=\"(.*?)\"/ism','zidify_callback',$s);
- $s = preg_replace_callback('/\<img class\=\"zrl\"(.*?)src\=\"(.*?)\"/ism','zidify_img_callback',$s);
-// FIXME - remove the following line and redo the regex for the prev line once all Red images are converted to zmg
- $s = preg_replace_callback('/\<img(.*?)src\=\"(.*?)\"/ism','zidify_img_callback',$s);
- }
-
+ $s = preg_replace_callback('/\<a(.*?)href\=\"(.*?)\"/ism','zidify_callback',$s);
+ $s = preg_replace_callback('/\<img(.*?)src\=\"(.*?)\"/ism','zidify_img_callback',$s);
return $s;
}
-
-
-
/**
* return atom link elements for all of our hubs
*/
@@ -1357,9 +1388,9 @@ function feed_salmonlinks($nick) {
}
-function get_plink($item,$mode) {
+function get_plink($item,$conversation_mode = true) {
$a = get_app();
- if($mode == 'display')
+ if($conversation_mode)
$key = 'plink';
else
$key = 'llink';
@@ -1485,20 +1516,6 @@ function return_bytes ($size_str) {
}
}
-function generate_user_guid() {
- $found = true;
- do {
- $guid = random_string(16);
- $x = q("SELECT `uid` FROM `user` WHERE `guid` = '%s' LIMIT 1",
- dbesc($guid)
- );
- if(! count($x))
- $found = false;
- } while ($found == true );
- return $guid;
-}
-
-
function base64url_encode($s, $strip_padding = true) {
@@ -1516,23 +1533,6 @@ function base64url_decode($s) {
logger('base64url_decode: illegal input: ' . print_r(debug_backtrace(), true));
return $s;
}
-
-/*
- * // Placeholder for new rev of salmon which strips base64 padding.
- * // PHP base64_decode handles the un-padded input without requiring this step
- * // Uncomment if you find you need it.
- *
- * $l = strlen($s);
- * if(! strpos($s,'=')) {
- * $m = $l % 4;
- * if($m == 2)
- * $s .= '==';
- * if($m == 3)
- * $s .= '=';
- * }
- *
- */
-
return base64_decode(strtr($s,'-_','+/'));
}
@@ -1637,17 +1637,12 @@ function item_post_type($item) {
}
-function normalise_openid($s) {
- return trim(str_replace(array('http://','https://'),array('',''),$s),'/');
-}
-
-
function undo_post_tagging($s) {
$matches = null;
- $cnt = preg_match_all('/([@#])\[zrl=(.*?)\](.*?)\[\/zrl\]/ism',$s,$matches,PREG_SET_ORDER);
+ $cnt = preg_match_all('/([@#])(\!*)\[zrl=(.*?)\](.*?)\[\/zrl\]/ism',$s,$matches,PREG_SET_ORDER);
if($cnt) {
foreach($matches as $mtch) {
- $s = str_replace($mtch[0], $mtch[1] . $mtch[3],$s);
+ $s = str_replace($mtch[0], $mtch[1] . $mtch[2] . str_replace(' ','_',$mtch[4]),$s);
}
}
return $s;
@@ -1889,18 +1884,17 @@ function json_decode_plus($s) {
function design_tools() {
-$channel = get_app()->get_channel();
-$who = $channel['channel_address'];
-
-return replace_macros(get_markup_template('design_tools.tpl'), array(
- '$title' => t('Design'),
- '$who' => $who,
- '$blocks' => t('Blocks'),
- '$menus' => t('Menus'),
- '$layout' => t('Layouts'),
- '$pages' => t('Pages')
- ));
-
+ $channel = get_app()->get_channel();
+ $who = $channel['channel_address'];
+
+ return replace_macros(get_markup_template('design_tools.tpl'), array(
+ '$title' => t('Design'),
+ '$who' => $who,
+ '$blocks' => t('Blocks'),
+ '$menus' => t('Menus'),
+ '$layout' => t('Layouts'),
+ '$pages' => t('Pages')
+ ));
}
/* case insensitive in_array() */
@@ -1909,3 +1903,7 @@ function in_arrayi($needle, $haystack) {
return in_array(strtolower($needle), array_map('strtolower', $haystack));
}
+function normalise_openid($s) {
+ return trim(str_replace(array('http://','https://'),array('',''),$s),'/');
+}
+
diff --git a/include/widgets.php b/include/widgets.php
index cea5a6ce2..4a5ae9de7 100644
--- a/include/widgets.php
+++ b/include/widgets.php
@@ -1,17 +1,7 @@
<?php /** @file */
-function list_widgets() {
- $widgets = array(
- 'profile' => t('Displays a full channel profile'),
- 'tagcloud' => t('Tag cloud of webpage categories'),
- 'collections' => t('List and filter by collection'),
- 'suggestions' => t('Show a couple of channel suggestion'),
- 'follow' => t('Provide a channel follow form')
- );
- $arr = array('widgets' => $widgets);
- call_hooks('list_widgets',$arr);
- return $arr['widgets'];
-}
+require_once('include/dir_fns.php');
+require_once('include/contact_widgets.php');
function widget_profile($args) {
@@ -47,16 +37,48 @@ function widget_tagcloud($args) {
function widget_collections($args) {
require_once('include/group.php');
- $page = argv(0);
- $gid = $_REQUEST['gid'];
- return group_side($page,$page,true,$_REQUEST['gid'],'',0);
+ $mode = ((array_key_exists('mode',$args)) ? $args['mode'] : 'conversation');
+ switch($mode) {
+ case 'conversation':
+ $every = argv(0);
+ $each = argv(0);
+ $edit = true;
+ $current = $_REQUEST['gid'];
+ $abook_id = 0;
+ $wmode = 0;
+ break;
+ case 'groups':
+ $every = 'connections';
+ $each = argv(0);
+ $edit = false;
+ $current = intval(argv(1));
+ $abook_id = 0;
+ $wmode = 1;
+ break;
+ case 'abook':
+ $every = 'connections';
+ $each = 'group';
+ $edit = false;
+ $current = 0;
+ $abook_id = get_app()->poi['abook_xchan'];
+ $wmode = 1;
+ break;
+ default:
+ return '';
+ break;
+ }
+
+ return group_side($every, $each, $edit, $current, $abook_id, $wmode);
}
function widget_suggestions($arr) {
+ if((! local_user()) || (! feature_enabled(local_user(),'suggest')))
+ return '';
+
require_once('include/socgraph.php');
$r = suggestion_query(local_user(),get_observer_hash(),0,20);
@@ -143,7 +165,7 @@ function widget_notes($arr) {
if(! feature_enabled(local_user(),'private_notes'))
return '';
- $text = htmlspecialchars(get_pconfig(local_user(),'notes','text'));
+ $text = get_pconfig(local_user(),'notes','text');
$o = replace_macros(get_markup_template('notes.tpl'), array(
'$banner' => t('Notes'),
@@ -216,7 +238,7 @@ function widget_savedsearch($arr) {
'term' => $rr['term'],
'dellink' => z_root() . '/' . $srchurl . (($hasq) ? '' : '?f=') . '&amp;searchremove=1&amp;search=' . urlencode($rr['term']),
'srchlink' => z_root() . '/' . $srchurl . (($hasq) ? '' : '?f=') . '&amp;search=' . urlencode($rr['term']),
- 'displayterm' => htmlspecialchars($rr['term']),
+ 'displayterm' => htmlspecialchars($rr['term'], ENT_COMPAT,'UTF-8'),
'encodedterm' => urlencode($rr['term']),
'delete' => t('Remove term'),
'selected' => ($search==$rr['term']),
@@ -314,7 +336,7 @@ function widget_fullprofile($arr) {
function widget_categories($arr) {
$a = get_app();
- $cat = ((x($_REQUEST,'cat')) ? htmlspecialchars($_REQUEST['cat']) : '');
+ $cat = ((x($_REQUEST,'cat')) ? htmlspecialchars($_REQUEST['cat'],ENT_COMPAT,'UTF-8') : '');
$srchurl = $a->query_string;
$srchurl = rtrim(preg_replace('/cat\=[^\&].*?(\&|$)/is','',$srchurl),'&');
$srchurl = str_replace(array('?f=','&f='),array('',''),$srchurl);
@@ -330,4 +352,240 @@ function widget_tagcloud_wall($arr) {
if(feature_enabled($a->profile['profile_uid'],'tagadelic'))
return tagblock('search',$a->profile['profile_uid'],$limit,$a->profile['channel_hash'],ITEM_WALL);
return '';
-} \ No newline at end of file
+}
+
+
+function widget_affinity($arr) {
+
+ if(! local_user())
+ return '';
+
+ $cmin = ((x($_REQUEST,'cmin')) ? intval($_REQUEST['cmin']) : 0);
+ $cmax = ((x($_REQUEST,'cmax')) ? intval($_REQUEST['cmax']) : 99);
+
+ if(feature_enabled(local_user(),'affinity')) {
+ $tpl = get_markup_template('main_slider.tpl');
+ $x = replace_macros($tpl,array(
+ '$val' => $cmin . ';' . $cmax,
+ '$refresh' => t('Refresh'),
+ '$me' => t('Me'),
+ '$intimate' => t('Best Friends'),
+ '$friends' => t('Friends'),
+ '$coworkers' => t('Co-workers'),
+ '$oldfriends' => t('Former Friends'),
+ '$acquaintances' => t('Acquaintances'),
+ '$world' => t('Everybody')
+ ));
+ $arr = array('html' => $x);
+ call_hooks('main_slider',$arr);
+ return $arr['html'];
+ }
+ return '';
+}
+
+
+function widget_settings_menu($arr) {
+
+ if(! local_user())
+ return;
+
+ $a = get_app();
+ $channel = $a->get_channel();
+
+ $abook_self_id = 0;
+
+ // Retrieve the 'self' address book entry for use in the auto-permissions link
+
+ $abk = q("select abook_id from abook where abook_channel = %d and ( abook_flags & %d ) limit 1",
+ intval(local_user()),
+ intval(ABOOK_FLAG_SELF)
+ );
+ if($abk)
+ $abook_self_id = $abk[0]['abook_id'];
+
+
+ $tabs = array(
+ array(
+ 'label' => t('Account settings'),
+ 'url' => $a->get_baseurl(true).'/settings/account',
+ 'selected' => ((argv(1) === 'account') ? 'active' : ''),
+ ),
+
+ array(
+ 'label' => t('Channel settings'),
+ 'url' => $a->get_baseurl(true).'/settings/channel',
+ 'selected' => ((argv(1) === 'channel') ? 'active' : ''),
+ ),
+
+ array(
+ 'label' => t('Additional features'),
+ 'url' => $a->get_baseurl(true).'/settings/features',
+ 'selected' => ((argv(1) === 'features') ? 'active' : ''),
+ ),
+
+ array(
+ 'label' => t('Feature settings'),
+ 'url' => $a->get_baseurl(true).'/settings/featured',
+ 'selected' => ((argv(1) === 'featured') ? 'active' : ''),
+ ),
+
+ array(
+ 'label' => t('Display settings'),
+ 'url' => $a->get_baseurl(true).'/settings/display',
+ 'selected' => ((argv(1) === 'display') ? 'active' : ''),
+ ),
+
+ array(
+ 'label' => t('Connected apps'),
+ 'url' => $a->get_baseurl(true) . '/settings/oauth',
+ 'selected' => ((argv(1) === 'oauth') ? 'active' : ''),
+ ),
+
+ array(
+ 'label' => t('Export channel'),
+ 'url' => $a->get_baseurl(true) . '/uexport/basic',
+ 'selected' => ''
+ ),
+
+// array(
+// 'label' => t('Export account'),
+// 'url' => $a->get_baseurl(true) . '/uexport/complete',
+// 'selected' => ''
+// ),
+
+ array(
+ 'label' => t('Automatic Permissions (Advanced)'),
+ 'url' => $a->get_baseurl(true) . '/connedit/' . $abook_self_id,
+ 'selected' => ''
+ ),
+
+
+ );
+
+ if(feature_enabled(local_user(),'premium_channel')) {
+ $tabs[] = array(
+ 'label' => t('Premium Channel Settings'),
+ 'url' => $a->get_baseurl(true) . '/connect/' . $channel['channel_address'],
+ 'selected' => ''
+ );
+
+ }
+
+ if(feature_enabled(local_user(),'channel_sources')) {
+ $tabs[] = array(
+ 'label' => t('Channel Sources'),
+ 'url' => $a->get_baseurl(true) . '/sources',
+ 'selected' => ''
+ );
+
+ }
+
+
+
+ $tabtpl = get_markup_template("generic_links_widget.tpl");
+ return replace_macros($tabtpl, array(
+ '$title' => t('Settings'),
+ '$class' => 'settings-widget',
+ '$items' => $tabs,
+ ));
+
+}
+
+
+function widget_mailmenu($arr) {
+ if (! local_user())
+ return;
+
+ $a = get_app();
+ return replace_macros(get_markup_template('message_side.tpl'), array(
+ '$tabs'=> array(),
+
+ '$check'=>array(
+ 'label' => t('Check Mail'),
+ 'url' => $a->get_baseurl(true) . '/message',
+ 'sel' => (argv(1) == ''),
+ ),
+ '$new'=>array(
+ 'label' => t('New Message'),
+ 'url' => $a->get_baseurl(true) . '/mail/new',
+ 'sel'=> (argv(1) == 'new'),
+ )
+
+ ));
+
+}
+
+function widget_design_tools($arr) {
+ $a = get_app();
+
+ // mod menu doesn't load a profile. For any modules which load a profile, check it.
+ // otherwise local_user() is sufficient for permissions.
+
+ if($a->profile['profile_uid'])
+ if($a->profile['profile_uid'] != local_user())
+ return '';
+
+ if(! local_user())
+ return '';
+
+ return design_tools();
+}
+
+function widget_findpeople($arr) {
+ return findpeople_widget();
+}
+
+
+function widget_photo_albums($arr) {
+ $a = get_app();
+ if(! $a->profile['profile_uid'])
+ return '';
+ $channelx = channelx_by_n($a->profile['profile_uid']);
+ if((! $channelx) || (! perm_is_allowed($a->profile['profile_uid'],get_observer_hash(),'view_photos')))
+ return '';
+ return photos_album_widget($channelx,$a->get_observer());
+
+}
+
+
+function widget_vcard($arr) {
+ require_once ('include/Contact.php');
+ return vcard_from_xchan('',get_app()->get_observer());
+}
+
+
+/**
+ * The following directory widgets are only useful on the directory page
+ */
+
+function widget_dirsafemode($arr) {
+ return dir_safe_mode();
+}
+
+function widget_dirsort($arr) {
+ return dir_sort_links();
+}
+
+function widget_dirtags($arr) {
+ return dir_tagblock(z_root() . '/directory',null);
+}
+
+function widget_menu_preview($arr) {
+ if(! get_app()->data['menu_item'])
+ return;
+ require_once('include/menu.php');
+ return menu_render(get_app()->data['menu_item']);
+}
+
+function widget_chatroom_list($arr) {
+ $a = get_app();
+ require_once("include/chat.php");
+ $r = chatroom_list($a->profile['profile_uid']);
+ return replace_macros(get_markup_template('chatroomlist.tpl'),array(
+ '$header' => t('Chat Rooms'),
+ '$baseurl' => z_root(),
+ '$nickname' => $a->profile['channel_address'],
+ '$items' => $r,
+ ));
+}
+
diff --git a/include/zot.php b/include/zot.php
index 77d82f110..d7d7eb419 100644
--- a/include/zot.php
+++ b/include/zot.php
@@ -79,12 +79,12 @@ function zot_get_hublocs($hash) {
* zot it to the other side
*
* @param array $channel => sender channel structure
- * @param string $type => packet type: one of 'ping', 'pickup', 'purge', 'refresh', 'notify', 'auth_check'
+ * @param string $type => packet type: one of 'ping', 'pickup', 'purge', 'refresh', 'force_refresh', 'notify', 'auth_check'
* @param array $recipients => envelope information, array ( 'guid' => string, 'guid_sig' => string ); empty for public posts
* @param string $remote_key => optional public site key of target hub used to encrypt entire packet
* NOTE: remote_key and encrypted packets are required for 'auth_check' packets, optional for all others
* @param string $secret => random string, required for packets which require verification/callback
- * e.g. 'pickup', 'purge', 'notify', 'auth_check' --- 'ping' and 'refresh' do not require verification
+ * e.g. 'pickup', 'purge', 'notify', 'auth_check'. Packet types 'ping', 'force_refresh', and 'refresh' do not require verification
*
* @returns string json encoded zot packet
*/
@@ -228,7 +228,7 @@ function zot_finger($webbie,$channel,$autofallback = true) {
}
/**
- * @function: zot_refresh($them, $channel = null)
+ * @function: zot_refresh($them, $channel = null, $force = false)
*
* zot_refresh is typically invoked when somebody has changed permissions of a channel and they are notified
* to fetch new permissions via a finger/discovery operation. This may result in a new connection
@@ -251,7 +251,7 @@ function zot_finger($webbie,$channel,$autofallback = true) {
* @returns boolean true if successful, else false
*/
-function zot_refresh($them,$channel = null) {
+function zot_refresh($them,$channel = null, $force = false) {
logger('zot_refresh: them: ' . print_r($them,true), LOGGER_DATA);
if($channel)
@@ -305,7 +305,7 @@ function zot_refresh($them,$channel = null) {
return false;
}
- $x = import_xchan($j);
+ $x = import_xchan($j,(($force) ? (-1) : 1));
if(! $x['success'])
return false;
@@ -518,12 +518,15 @@ function zot_register_hub($arr) {
/**
* @function import_xchan($arr,$ud_flags = 1)
- * Takes an associative array of a fecthed discovery packet and updates
+ * Takes an associative array of a fetched discovery packet and updates
* all internal data structures which need to be updated as a result.
*
* @param array $arr => json_decoded discovery packet
* @param int $ud_flags
* Determines whether to create a directory update record if any changes occur, default 1 or true
+ * $ud_flags = (-1) indicates a forced refresh where we unconditionally create a directory update record
+ * this typically occurs once a month for each channel as part of a scheduled ping to notify the directory
+ * that the channel still exists
*
* @returns array => 'success' (boolean true or false)
* 'message' (optional error string only if success is false)
@@ -745,6 +748,16 @@ function import_xchan($arr,$ud_flags = 1) {
}
}
+ if(! $location['sitekey']) {
+ logger('import_xchan: empty hubloc sitekey. ' . print_r($location,true));
+ continue;
+ }
+
+ // Catch some malformed entries from the past which still exist
+
+ if(strpos($location['address'],'/') !== false)
+ $location['address'] = substr($location['address'],0,strpos($location['address'],'/'));
+
// match as many fields as possible in case anything at all changed.
$r = q("select * from hubloc where hubloc_hash = '%s' and hubloc_guid = '%s' and hubloc_guid_sig = '%s' and hubloc_url = '%s' and hubloc_url_sig = '%s' and hubloc_host = '%s' and hubloc_addr = '%s' and hubloc_callback = '%s' and hubloc_sitekey = '%s' ",
@@ -801,14 +814,6 @@ function import_xchan($arr,$ud_flags = 1) {
continue;
}
- if(! $location['sitekey']) {
- logger('import_xchan: empty hubloc sitekey. ' . print_r($location,true));
- continue;
- }
-
- if(strpos($location['address'],'/') !== false)
- $location['address'] = substr($location['address'],0,strpos($location['address'],'/'));
-
// new hub claiming to be primary. Make it so.
if(intval($location['primary'])) {
@@ -837,9 +842,11 @@ function import_xchan($arr,$ud_flags = 1) {
);
$what .= 'newhub ';
$changed = true;
+
}
// get rid of any hubs we have for this channel which weren't reported.
+
if($xisting) {
foreach($xisting as $x) {
if(! array_key_exists('updated',$x)) {
@@ -852,7 +859,6 @@ function import_xchan($arr,$ud_flags = 1) {
}
}
}
-
}
// Are we a directory server of some kind?
@@ -885,7 +891,7 @@ function import_xchan($arr,$ud_flags = 1) {
}
}
- if($changed) {
+ if(($changed) || ($ud_flags == (-1))) {
$guid = random_string() . '@' . get_app()->get_hostname();
update_modtime($xchan_hash,$guid,$arr['address'],$ud_flags);
logger('import_xchan: changed: ' . $what,LOGGER_DEBUG);
@@ -1061,7 +1067,9 @@ function zot_import($arr, $sender_url) {
}
stringify_array_elms($recip_arr);
$recips = implode(',',$recip_arr);
- $r = q("select channel_hash as hash from channel where channel_hash in ( " . $recips . " ) ");
+ $r = q("select channel_hash as hash from channel where channel_hash in ( " . $recips . " ) and not ( channel_pageflags & %d ) ",
+ intval(PAGE_REMOVED)
+ );
if(! $r) {
logger('recips: no recipients on this site');
continue;
@@ -1219,8 +1227,7 @@ function public_recips($msg) {
if(! $r)
$r = array();
- $x = q("select channel_hash as hash from channel left join abook on abook_channel = channel_id where abook_xchan = '%s'
- and (( " . $col . " & " . PERMS_SPECIFIC . " ) and ( abook_my_perms & " . $field . " )) OR ( " . $col . " & " . PERMS_CONTACTS . " ) ",
+ $x = q("select channel_hash as hash from channel left join abook on abook_channel = channel_id where abook_xchan = '%s' and not ( channel_pageflags & " . PAGE_REMOVED . " ) and (( " . $col . " & " . PERMS_SPECIFIC . " ) and ( abook_my_perms & " . $field . " )) OR ( " . $col . " & " . PERMS_CONTACTS . " ) ",
dbesc($msg['notify']['sender']['hash'])
);
@@ -1272,11 +1279,6 @@ function allowed_public_recips($msg) {
if(array_key_exists('public_scope',$msg['message']))
$scope = $msg['message']['public_scope'];
- // we can pull out these two lines once everybody has upgraded to >= 2013-02-15.225
-
- else
- $scope = 'public';
-
$hash = base64url_encode(hash('whirlpool',$msg['notify']['sender']['guid'] . $msg['notify']['sender']['guid_sig'], true));
if($scope === 'public' || $scope === 'network: red')
@@ -1301,8 +1303,9 @@ function allowed_public_recips($msg) {
$condensed_recips[] = $rr['hash'];
$results = array();
- $r = q("select channel_hash as hash from channel left join abook on abook_channel = channel_id where abook_xchan = '%s' ",
- dbesc($hash)
+ $r = q("select channel_hash as hash from channel left join abook on abook_channel = channel_id where abook_xchan = '%s' and not ( channel_pageflags & %d ) ",
+ dbesc($hash),
+ intval(PAGE_REMOVED)
);
if($r) {
foreach($r as $rr)
@@ -1368,7 +1371,7 @@ function process_delivery($sender,$arr,$deliveries,$relay) {
remove_community_tag($sender,$arr,$channel['channel_id']);
$item_id = delete_imported_item($sender,$arr,$channel['channel_id']);
- $result[] = array($d['hash'],'deleted',$channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>');
+ $result[] = array($d['hash'],(($item_id) ? 'deleted' : 'delete_failed'),$channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>');
if($relay && $item_id) {
logger('process_delivery: invoking relay');
@@ -1384,7 +1387,7 @@ function process_delivery($sender,$arr,$deliveries,$relay) {
if((x($arr,'obj_type')) && (activity_match($arr['obj_type'],ACTIVITY_OBJ_EVENT))) {
require_once('include/event.php');
$ev = bbtoevent($arr['body']);
- if(x($ev,'desc') && x($ev,'start')) {
+ if(x($ev,'desc') && x($ev,'start')) {
$ev['event_xchan'] = $arr['author_xchan'];
$ev['uid'] = $channel['channel_id'];
$ev['account'] = $channel['channel_account_id'];
@@ -1409,8 +1412,6 @@ function process_delivery($sender,$arr,$deliveries,$relay) {
}
}
-
-
$r = q("select id, edited from item where mid = '%s' and uid = %d limit 1",
dbesc($arr['mid']),
intval($channel['channel_id'])
@@ -1524,10 +1525,11 @@ function delete_imported_item($sender,$item,$uid) {
logger('delete_imported_item invoked',LOGGER_DEBUG);
- $r = q("select id from item where ( author_xchan = '%s' or owner_xchan = '%s' )
+ $r = q("select id, item_restrict from item where ( author_xchan = '%s' or owner_xchan = '%s' or source_xchan = '%s' )
and mid = '%s' and uid = %d limit 1",
dbesc($sender['hash']),
dbesc($sender['hash']),
+ dbesc($sender['hash']),
dbesc($item['mid']),
intval($uid)
);
@@ -1536,9 +1538,17 @@ function delete_imported_item($sender,$item,$uid) {
logger('delete_imported_item: failed: ownership issue');
return false;
}
+
+ if($r[0]['item_restrict'] & ITEM_DELETED) {
+ logger('delete_imported_item: item was already deleted');
+ return false;
+ }
require_once('include/items.php');
drop_item($r[0]['id'],false);
+
+ tag_deliver($uid,$r[0]['id']);
+
return $r[0]['id'];
}
@@ -1633,22 +1643,26 @@ function import_directory_profile($hash,$profile,$addr,$ud_flags = 1, $suppress_
$arr = array();
$arr['xprof_hash'] = $hash;
- $arr['xprof_desc'] = (($profile['description']) ? htmlentities($profile['description'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['xprof_desc'] = (($profile['description']) ? htmlspecialchars($profile['description'], ENT_COMPAT,'UTF-8',false) : '');
$arr['xprof_dob'] = datetime_convert('','',$profile['birthday'],'Y-m-d'); // !!!! check this for 0000 year
$arr['xprof_age'] = (($profile['age']) ? intval($profile['age']) : 0);
- $arr['xprof_gender'] = (($profile['gender']) ? htmlentities($profile['gender'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['xprof_marital'] = (($profile['marital']) ? htmlentities($profile['marital'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['xprof_sexual'] = (($profile['sexual']) ? htmlentities($profile['sexual'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['xprof_locale'] = (($profile['locale']) ? htmlentities($profile['locale'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['xprof_region'] = (($profile['region']) ? htmlentities($profile['region'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['xprof_postcode'] = (($profile['postcode']) ? htmlentities($profile['postcode'], ENT_COMPAT,'UTF-8',false) : '');
- $arr['xprof_country'] = (($profile['country']) ? htmlentities($profile['country'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['xprof_gender'] = (($profile['gender']) ? htmlspecialchars($profile['gender'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['xprof_marital'] = (($profile['marital']) ? htmlspecialchars($profile['marital'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['xprof_sexual'] = (($profile['sexual']) ? htmlspecialchars($profile['sexual'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['xprof_locale'] = (($profile['locale']) ? htmlspecialchars($profile['locale'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['xprof_region'] = (($profile['region']) ? htmlspecialchars($profile['region'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['xprof_postcode'] = (($profile['postcode']) ? htmlspecialchars($profile['postcode'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['xprof_country'] = (($profile['country']) ? htmlspecialchars($profile['country'], ENT_COMPAT,'UTF-8',false) : '');
+
+ $arr['xprof_about'] = (($profile['about']) ? htmlspecialchars($profile['about'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['xprof_homepage'] = (($profile['homepage']) ? htmlspecialchars($profile['homepage'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['xprof_hometown'] = (($profile['hometown']) ? htmlspecialchars($profile['hometown'], ENT_COMPAT,'UTF-8',false) : '');
$clean = array();
if(array_key_exists('keywords',$profile) and is_array($profile['keywords'])) {
import_directory_keywords($hash,$profile['keywords']);
foreach($profile['keywords'] as $kw) {
- $kw = trim(htmlentities($kw,ENT_COMPAT,'UTF-8',false));
+ $kw = trim(htmlspecialchars($kw,ENT_COMPAT,'UTF-8',false));
$kw = trim($kw,',');
$clean[] = $kw;
}
@@ -1692,6 +1706,9 @@ function import_directory_profile($hash,$profile,$addr,$ud_flags = 1, $suppress_
xprof_region = '%s',
xprof_postcode = '%s',
xprof_country = '%s',
+ xprof_about = '%s',
+ xprof_homepage = '%s',
+ xprof_hometown = '%s',
xprof_keywords = '%s'
where xprof_hash = '%s' limit 1",
dbesc($arr['xprof_desc']),
@@ -1704,6 +1721,9 @@ function import_directory_profile($hash,$profile,$addr,$ud_flags = 1, $suppress_
dbesc($arr['xprof_region']),
dbesc($arr['xprof_postcode']),
dbesc($arr['xprof_country']),
+ dbesc($arr['xprof_about']),
+ dbesc($arr['xprof_homepage']),
+ dbesc($arr['xprof_hometown']),
dbesc($arr['xprof_keywords']),
dbesc($arr['xprof_hash'])
);
@@ -1712,7 +1732,7 @@ function import_directory_profile($hash,$profile,$addr,$ud_flags = 1, $suppress_
else {
$update = true;
logger('import_directory_profile: new profile');
- $x = q("insert into xprof (xprof_hash, xprof_desc, xprof_dob, xprof_age, xprof_gender, xprof_marital, xprof_sexual, xprof_locale, xprof_region, xprof_postcode, xprof_country, xprof_keywords) values ('%s', '%s', '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s') ",
+ $x = q("insert into xprof (xprof_hash, xprof_desc, xprof_dob, xprof_age, xprof_gender, xprof_marital, xprof_sexual, xprof_locale, xprof_region, xprof_postcode, xprof_country, xprof_about, xprof_homepage, xprof_hometown, xprof_keywords) values ('%s', '%s', '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s') ",
dbesc($arr['xprof_hash']),
dbesc($arr['xprof_desc']),
dbesc($arr['xprof_dob']),
@@ -1724,6 +1744,9 @@ function import_directory_profile($hash,$profile,$addr,$ud_flags = 1, $suppress_
dbesc($arr['xprof_region']),
dbesc($arr['xprof_postcode']),
dbesc($arr['xprof_country']),
+ dbesc($arr['xprof_about']),
+ dbesc($arr['xprof_homepage']),
+ dbesc($arr['xprof_hometown']),
dbesc($arr['xprof_keywords'])
);
}
@@ -1750,7 +1773,7 @@ function import_directory_keywords($hash,$keywords) {
$clean = array();
foreach($keywords as $kw) {
- $kw = trim(htmlentities($kw,ENT_COMPAT,'UTF-8',false));
+ $kw = trim(htmlspecialchars($kw,ENT_COMPAT,'UTF-8',false));
$kw = trim($kw,',');
$clean[] = $kw;
}
@@ -1849,10 +1872,21 @@ function import_site($arr,$pubkey) {
$access_policy = ACCESS_TIERED;
}
- $directory_url = htmlentities($arr['directory_url'],ENT_COMPAT,'UTF-8',false);
- $url = htmlentities($arr['url'],ENT_COMPAT,'UTF-8',false);
- $sellpage = htmlentities($arr['sellpage'],ENT_COMPAT,'UTF-8',false);
- $site_location = htmlentities($arr['location'],ENT_COMPAT,'UTF-8',false);
+ // don't let insecure sites register as public hubs
+
+ if(strpos($arr['url'],'https://') === false)
+ $access_policy = ACCESS_PRIVATE;
+
+ if($access_policy != ACCESS_PRIVATE) {
+ $x = z_fetch_url($arr['url'] . '/siteinfo/json');
+ if(! $x['success'])
+ $access_policy = ACCESS_PRIVATE;
+ }
+
+ $directory_url = htmlspecialchars($arr['directory_url'],ENT_COMPAT,'UTF-8',false);
+ $url = htmlspecialchars($arr['url'],ENT_COMPAT,'UTF-8',false);
+ $sellpage = htmlspecialchars($arr['sellpage'],ENT_COMPAT,'UTF-8',false);
+ $site_location = htmlspecialchars($arr['location'],ENT_COMPAT,'UTF-8',false);
if($exists) {
if(($siterecord['site_flags'] != $site_directory)
@@ -2050,7 +2084,7 @@ function process_channel_sync_delivery($sender,$arr,$deliveries) {
}
if(array_key_exists('channel',$arr) && is_array($arr['channel']) && count($arr['channel'])) {
- $disallowed = array('channel_id','channel_account_id','channel_primary','channel_prvkey', 'channel_address');
+ $disallowed = array('channel_id','channel_account_id','channel_primary','channel_prvkey', 'channel_address', 'channel_notifyflags');
$clean = array();
foreach($arr['channel'] as $k => $v) {
@@ -2073,6 +2107,33 @@ function process_channel_sync_delivery($sender,$arr,$deliveries) {
$clean = array();
foreach($arr['abook'] as $abook) {
+
+ // Perform discovery if the referenced xchan hasn't ever been seen on this hub.
+ // This relies on the undocumented behaviour that red sites send xchan info with the abook
+
+ if($abook['abook_xchan'] && $abook['xchan_address']) {
+ $h = zot_get_hublocs($abook['abook_xchan']);
+ if(! $h) {
+ $f = zot_finger($abook['xchan_address'],$channel);
+ if(! $f['success']) {
+ logger('process_channel_sync_delivery: abook not probe-able' . $abook['xchan_address']);
+ continue;
+ }
+ $j = json_decode($f['body'],true);
+ if(! ($j['success'] && $j['guid'])) {
+ logger('process_channel_sync_delivery: probe failed.');
+ continue;
+ }
+
+ $x = import_xchan($j);
+
+ if(! $x['success']) {
+ logger('process_channel_sync_delivery: import failed.');
+ continue;
+ }
+ }
+ }
+
foreach($abook as $k => $v) {
if(in_array($k,$disallowed) || (strpos($k,'abook') !== 0))
continue;
diff --git a/index.php b/index.php
index adfa6534f..24d54d829 100755
--- a/index.php
+++ b/index.php
@@ -19,11 +19,11 @@ $a = new App;
/**
*
* Load the configuration file which contains our DB credentials.
- * Ignore errors. If the file doesn't exist or is empty, we are running in installation mode.
+ * Ignore errors. If the file doesn't exist or is empty, we are running in installation mode.'
*
*/
-$install = ((file_exists('.htconfig.php') && filesize('.htconfig.php')) ? false : true);
+$a->install = ((file_exists('.htconfig.php') && filesize('.htconfig.php')) ? false : true);
@include(".htconfig.php");
@@ -38,8 +38,8 @@ $a->language = get_best_language();
require_once("include/dba/dba_driver.php");
-if(! $install) {
- $db = dba_factory($db_host, $db_port, $db_user, $db_pass, $db_data, $install);
+if(! $a->install) {
+ $db = dba_factory($db_host, $db_port, $db_user, $db_pass, $db_data, $a->install);
unset($db_host, $db_port, $db_user, $db_pass, $db_data);
/**
@@ -62,8 +62,6 @@ else {
}
-
-
/**
*
* Important stuff we always need to do.
@@ -93,8 +91,8 @@ if((x($_SESSION,'language')) && ($_SESSION['language'] !== $lang)) {
load_translation_table($a->language);
}
-if((x($_GET,'zid')) && (! $install)) {
- $a->query_string = preg_replace('/[\?&]zid=(.*?)([\?&]|$)/is','',$a->query_string);
+if((x($_GET,'zid')) && (! $a->install)) {
+ $a->query_string = strip_zids($a->query_string);
if(! local_user()) {
$_SESSION['my_address'] = $_GET['zid'];
zid_init($a);
@@ -118,7 +116,7 @@ if(! x($_SESSION,'sysmsg_info'))
*/
-if($install) {
+if($a->install) {
/* Allow an exception for the view module so that pcss will be interpreted during installation */
if($a->module != 'view')
$a->module = 'setup';
@@ -184,7 +182,6 @@ if(strlen($a->module)) {
* Otherwise, look for the standard program module in the 'mod' directory
*/
-
if(! $a->module_loaded) {
if(file_exists("custom/{$a->module}.php")) {
include_once("custom/{$a->module}.php");
@@ -245,14 +242,22 @@ if (file_exists($theme_info_file)){
if(! x($a->page,'content'))
$a->page['content'] = '';
-/* set JS cookie */
-if($_COOKIE['jsAvailable'] != 1) {
- $a->page['content'] .= '<script>document.cookie="jsAvailable=1; path=/"; location.reload();</script>';
-}
-if(! $install)
+if(! ($a->module === 'setup')) {
+ /* set JS cookie */
+ if($_COOKIE['jsAvailable'] != 1) {
+ $a->page['content'] .= '<script>document.cookie="jsAvailable=1; path=/"; var jsMatch = /\&JS=1/; if (!jsMatch.exec(location.href)) { location.href = location.href + "&JS=1"; }</script>';
+ /* emulate JS cookie if cookies are not accepted */
+ if ($_GET['JS'] == 1) {
+ $_COOKIE['jsAvailable'] = 1;
+ }
+ }
call_hooks('page_content_top',$a->page['content']);
+}
+
+
+
/**
* Call module functions
diff --git a/install/INSTALL.txt b/install/INSTALL.txt
index ee029f0ee..65efa9cfe 100644
--- a/install/INSTALL.txt
+++ b/install/INSTALL.txt
@@ -37,7 +37,7 @@ Decide if you will use SSL and obtain an SSL cert before software installation.
1. Requirements
- - Apache with mod-rewrite enabled and "Options All" so you can use a
+ - Apache with mod-rewrite enabled and "AllowOverride All" so you can use a
local .htaccess file
- PHP 5.3+. The later the better.
@@ -74,11 +74,13 @@ directory/path component in the URL) is REQUIRED.
git pull
- - make sure folder *view/tpl/smarty3* exists and is writable by webserver
+ - make sure folders *view/tpl/smarty3* and *store* exist and are writable by webserver
mkdir view/tpl/smarty3
+ mkdir store
chmod 777 view/tpl/smarty3
+ chmod 777 store
[This permission (777) is very dangerous and if you have sufficient
privilege and knowledge you should make this directory writeable only
diff --git a/install/database.sql b/install/database.sql
index ef79862c3..cd31a0285 100644
--- a/install/database.sql
+++ b/install/database.sql
@@ -54,6 +54,7 @@ CREATE TABLE IF NOT EXISTS `account` (
`account_expires` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`account_expire_notified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`account_service_class` char(32) NOT NULL DEFAULT '',
+ `account_level` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`account_id`),
KEY `account_email` (`account_email`),
KEY `account_service_class` (`account_service_class`),
@@ -63,7 +64,8 @@ CREATE TABLE IF NOT EXISTS `account` (
KEY `account_lastlog` (`account_lastlog`),
KEY `account_expires` (`account_expires`),
KEY `account_default_channel` (`account_default_channel`),
- KEY `account_external` (`account_external`)
+ KEY `account_external` (`account_external`),
+ KEY `account_level` (`account_level`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `addon` (
@@ -85,6 +87,7 @@ CREATE TABLE IF NOT EXISTS `attach` (
`aid` int(10) unsigned NOT NULL DEFAULT '0',
`uid` int(10) unsigned NOT NULL DEFAULT '0',
`hash` char(64) NOT NULL DEFAULT '',
+ `creator` char(128) NOT NULL DEFAULT '',
`filename` char(255) NOT NULL DEFAULT '',
`filetype` char(64) NOT NULL DEFAULT '',
`filesize` int(10) unsigned NOT NULL DEFAULT '0',
@@ -109,7 +112,8 @@ CREATE TABLE IF NOT EXISTS `attach` (
KEY `edited` (`edited`),
KEY `revision` (`revision`),
KEY `folder` (`folder`),
- KEY `flags` (`flags`)
+ KEY `flags` (`flags`),
+ KEY `creator` (`creator`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `auth_codes` (
@@ -173,6 +177,7 @@ CREATE TABLE IF NOT EXISTS `channel` (
`channel_r_pages` int(10) unsigned NOT NULL DEFAULT '128',
`channel_w_pages` int(10) unsigned NOT NULL DEFAULT '128',
`channel_a_republish` int(10) unsigned NOT NULL DEFAULT '128',
+ `channel_a_bookmark` int(10) unsigned NOT NULL DEFAULT '128',
PRIMARY KEY (`channel_id`),
UNIQUE KEY `channel_address_unique` (`channel_address`),
KEY `channel_account_id` (`channel_account_id`),
@@ -207,9 +212,57 @@ CREATE TABLE IF NOT EXISTS `channel` (
KEY `channel_w_pages` (`channel_w_pages`),
KEY `channel_deleted` (`channel_deleted`),
KEY `channel_a_republish` (`channel_a_republish`),
+ KEY `channel_a_bookmark` (`channel_a_bookmark`),
KEY `channel_dirdate` (`channel_dirdate`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE IF NOT EXISTS `chat` (
+ `chat_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `chat_room` int(10) unsigned NOT NULL DEFAULT '0',
+ `chat_xchan` char(255) NOT NULL DEFAULT '',
+ `chat_text` mediumtext NOT NULL,
+ `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ PRIMARY KEY (`chat_id`),
+ KEY `chat_room` (`chat_room`),
+ KEY `chat_xchan` (`chat_xchan`),
+ KEY `created` (`created`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+CREATE TABLE IF NOT EXISTS `chatpresence` (
+ `cp_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `cp_room` int(10) unsigned NOT NULL DEFAULT '0',
+ `cp_xchan` char(255) NOT NULL DEFAULT '',
+ `cp_last` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `cp_status` char(255) NOT NULL,
+ `cp_client` char(128) NOT NULL DEFAULT '',
+ PRIMARY KEY (`cp_id`),
+ KEY `cp_room` (`cp_room`),
+ KEY `cp_xchan` (`cp_xchan`),
+ KEY `cp_last` (`cp_last`),
+ KEY `cp_status` (`cp_status`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+CREATE TABLE IF NOT EXISTS `chatroom` (
+ `cr_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `cr_aid` int(10) unsigned NOT NULL DEFAULT '0',
+ `cr_uid` int(10) unsigned NOT NULL DEFAULT '0',
+ `cr_name` char(255) NOT NULL DEFAULT '',
+ `cr_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `cr_edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `cr_expire` int(10) unsigned NOT NULL DEFAULT '0',
+ `allow_cid` mediumtext NOT NULL,
+ `allow_gid` mediumtext NOT NULL,
+ `deny_cid` mediumtext NOT NULL,
+ `deny_gid` mediumtext NOT NULL,
+ PRIMARY KEY (`cr_id`),
+ KEY `cr_aid` (`cr_aid`),
+ KEY `cr_uid` (`cr_uid`),
+ KEY `cr_name` (`cr_name`),
+ KEY `cr_created` (`cr_created`),
+ KEY `cr_edited` (`cr_edited`),
+ KEY `cr_expire` (`cr_expire`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
CREATE TABLE IF NOT EXISTS `clients` (
`client_id` varchar(20) NOT NULL,
`pw` varchar(20) NOT NULL,
@@ -240,7 +293,7 @@ CREATE TABLE IF NOT EXISTS `event` (
`start` datetime NOT NULL,
`finish` datetime NOT NULL,
`summary` text NOT NULL,
- `desc` text NOT NULL,
+ `description` text NOT NULL,
`location` text NOT NULL,
`type` char(255) NOT NULL,
`nofinish` tinyint(1) NOT NULL DEFAULT '0',
@@ -319,7 +372,7 @@ CREATE TABLE IF NOT EXISTS `fsuggest` (
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-CREATE TABLE IF NOT EXISTS `group` (
+CREATE TABLE IF NOT EXISTS `groups` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`hash` char(255) NOT NULL DEFAULT '',
`uid` int(10) unsigned NOT NULL,
@@ -532,9 +585,11 @@ CREATE TABLE IF NOT EXISTS `menu` (
`menu_channel_id` int(10) unsigned NOT NULL DEFAULT '0',
`menu_name` char(255) NOT NULL DEFAULT '',
`menu_desc` char(255) NOT NULL DEFAULT '',
+ `menu_flags` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`menu_id`),
KEY `menu_channel_id` (`menu_channel_id`),
- KEY `menu_name` (`menu_name`)
+ KEY `menu_name` (`menu_name`),
+ KEY `menu_flags` (`menu_flags`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `menu_item` (
@@ -590,13 +645,17 @@ CREATE TABLE IF NOT EXISTS `obj` (
`obj_type` int(10) unsigned NOT NULL DEFAULT '0',
`obj_obj` char(255) NOT NULL DEFAULT '',
`obj_channel` int(10) unsigned NOT NULL DEFAULT '0',
+ `allow_cid` mediumtext NOT NULL,
+ `allow_gid` mediumtext NOT NULL,
+ `deny_cid` mediumtext NOT NULL,
+ `deny_gid` mediumtext NOT NULL,
PRIMARY KEY (`obj_id`),
KEY `obj_verb` (`obj_verb`),
KEY `obj_page` (`obj_page`),
KEY `obj_type` (`obj_type`),
KEY `obj_channel` (`obj_channel`),
KEY `obj_obj` (`obj_obj`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `outq` (
`outq_hash` char(255) NOT NULL,
@@ -639,7 +698,7 @@ CREATE TABLE IF NOT EXISTS `photo` (
`created` datetime NOT NULL,
`edited` datetime NOT NULL,
`title` char(255) NOT NULL,
- `desc` text NOT NULL,
+ `description` text NOT NULL,
`album` char(255) NOT NULL,
`filename` char(255) NOT NULL,
`type` char(128) NOT NULL DEFAULT 'image/jpeg',
@@ -846,6 +905,15 @@ CREATE TABLE IF NOT EXISTS `spam` (
KEY `term` (`term`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+CREATE TABLE IF NOT EXISTS `sys_perms` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `cat` char(255) NOT NULL,
+ `k` char(255) NOT NULL,
+ `v` mediumtext NOT NULL,
+ `public_perm` tinyint(1) unsigned NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
CREATE TABLE IF NOT EXISTS `term` (
`tid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`aid` int(10) unsigned NOT NULL DEFAULT '0',
@@ -913,7 +981,7 @@ CREATE TABLE IF NOT EXISTS `verify` (
KEY `token` (`token`),
KEY `meta` (`meta`),
KEY `created` (`created`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `vote` (
`vote_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
@@ -969,7 +1037,7 @@ CREATE TABLE IF NOT EXISTS `xconfig` (
KEY `xchan` (`xchan`),
KEY `cat` (`cat`),
KEY `k` (`k`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `xign` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
@@ -1006,6 +1074,9 @@ CREATE TABLE IF NOT EXISTS `xprof` (
`xprof_postcode` char(32) NOT NULL DEFAULT '',
`xprof_country` char(255) NOT NULL DEFAULT '',
`xprof_keywords` text NOT NULL,
+ `xprof_about` text NOT NULL,
+ `xprof_homepage` char(255) NOT NULL DEFAULT '',
+ `xprof_hometown` char(255) NOT NULL DEFAULT '',
PRIMARY KEY (`xprof_hash`),
KEY `xprof_desc` (`xprof_desc`),
KEY `xprof_dob` (`xprof_dob`),
@@ -1016,7 +1087,8 @@ CREATE TABLE IF NOT EXISTS `xprof` (
KEY `xprof_region` (`xprof_region`),
KEY `xprof_postcode` (`xprof_postcode`),
KEY `xprof_country` (`xprof_country`),
- KEY `xprof_age` (`xprof_age`)
+ KEY `xprof_age` (`xprof_age`),
+ KEY `xprof_hometown` (`xprof_hometown`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `xtag` (
@@ -1028,4 +1100,4 @@ CREATE TABLE IF NOT EXISTS `xtag` (
KEY `xtag_term` (`xtag_term`),
KEY `xtag_hash` (`xtag_hash`),
KEY `xtag_flags` (`xtag_flags`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
diff --git a/install/htconfig.sample.php b/install/htconfig.sample.php
index 33258cf41..b23dfe3b6 100755
--- a/install/htconfig.sample.php
+++ b/install/htconfig.sample.php
@@ -3,7 +3,7 @@
// If automatic system installation fails:
// Copy or rename this file to .htconfig.php in the top level
-// Friendica directory
+// Red Matrix directory
// Why .htconfig.php? Because it contains sensitive information which could
// give somebody complete control of your database. Apache's default
diff --git a/install/update.php b/install/update.php
index f498ec042..7d1305863 100644
--- a/install/update.php
+++ b/install/update.php
@@ -1,6 +1,6 @@
<?php
-define( 'UPDATE_VERSION' , 1084 );
+define( 'UPDATE_VERSION' , 1098 );
/**
*
@@ -919,3 +919,184 @@ ADD INDEX ( `aid` )");
return UPDATE_FAILED;
}
+function update_r1084() {
+
+
+ $r = q("CREATE TABLE if not exists `sys_perms` (
+ `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
+ `cat` CHAR( 255 ) NOT NULL ,
+ `k` CHAR( 255 ) NOT NULL ,
+ `v` MEDIUMTEXT NOT NULL,
+ `public_perm` TINYINT( 1 ) UNSIGNED NOT NULL
+) ENGINE = MYISAM DEFAULT CHARSET = utf8");
+
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+
+}
+
+function update_r1085() {
+ $r1 = q("ALTER TABLE `photo` CHANGE `desc` `description` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ");
+
+ $r2 = q("RENAME TABLE `group` TO `groups`");
+
+ $r3 = q("ALTER TABLE `event` CHANGE `desc` `description` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ");
+
+ if($r1 && $r2 && $r3)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+
+}
+
+function update_r1086() {
+ $r = q("ALTER TABLE `account` ADD `account_level` INT UNSIGNED NOT NULL DEFAULT '0',
+ADD INDEX ( `account_level` )");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1087() {
+ $r = q("ALTER TABLE `xprof` ADD `xprof_about` TEXT NOT NULL DEFAULT '',
+ADD `xprof_homepage` CHAR( 255 ) NOT NULL DEFAULT '',
+ADD `xprof_hometown` CHAR( 255 ) NOT NULL DEFAULT '',
+ADD INDEX ( `xprof_hometown` )");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1088() {
+ $r = q("ALTER TABLE `obj` ADD `allow_cid` MEDIUMTEXT NOT NULL DEFAULT '',
+ADD `allow_gid` MEDIUMTEXT NOT NULL DEFAULT '',
+ADD `deny_cid` MEDIUMTEXT NOT NULL DEFAULT '',
+ADD `deny_gid` MEDIUMTEXT NOT NULL DEFAULT ''");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1089() {
+ $r = q("ALTER TABLE `attach` ADD `creator` CHAR( 128 ) NOT NULL DEFAULT '' AFTER `hash` ,
+ADD INDEX ( `creator` ) ");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+
+function update_r1090() {
+ $r = q("ALTER TABLE `menu` ADD `menu_flags` INT NOT NULL DEFAULT '0',
+ADD INDEX ( `menu_flags` )");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1091() {
+ @mkdir('store/[data]/smarty',STORAGE_DEFAULT_PERMISSIONS,true);
+ @file_put_contents('store/[data]/locks','');
+ return UPDATE_SUCCESS;
+}
+
+function update_r1092() {
+ $r1 = q("CREATE TABLE IF NOT EXISTS `chat` (
+ `chat_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `chat_room` int(10) unsigned NOT NULL DEFAULT '0',
+ `chat_xchan` char(255) NOT NULL DEFAULT '',
+ `chat_text` mediumtext NOT NULL,
+ `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ PRIMARY KEY (`chat_id`),
+ KEY `chat_room` (`chat_room`),
+ KEY `chat_xchan` (`chat_xchan`),
+ KEY `created` (`created`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8");
+
+ $r2 = q("CREATE TABLE IF NOT EXISTS `chatpresence` (
+ `cp_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `cp_room` int(10) unsigned NOT NULL DEFAULT '0',
+ `cp_xchan` char(255) NOT NULL DEFAULT '',
+ `cp_last` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `cp_status` char(255) NOT NULL,
+ PRIMARY KEY (`cp_id`),
+ KEY `cp_room` (`cp_room`),
+ KEY `cp_xchan` (`cp_xchan`),
+ KEY `cp_last` (`cp_last`),
+ KEY `cp_status` (`cp_status`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8");
+
+ $r3 = q("CREATE TABLE IF NOT EXISTS `chatroom` (
+ `cr_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `cr_aid` int(10) unsigned NOT NULL DEFAULT '0',
+ `cr_uid` int(10) unsigned NOT NULL DEFAULT '0',
+ `cr_name` char(255) NOT NULL DEFAULT '',
+ `cr_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `cr_edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `allow_cid` mediumtext NOT NULL,
+ `allow_gid` mediumtext NOT NULL,
+ `deny_cid` mediumtext NOT NULL,
+ `deny_gid` mediumtext NOT NULL,
+ PRIMARY KEY (`cr_id`),
+ KEY `cr_aid` (`cr_aid`),
+ KEY `cr_uid` (`cr_uid`),
+ KEY `cr_name` (`cr_name`),
+ KEY `cr_created` (`cr_created`),
+ KEY `cr_edited` (`cr_edited`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8");
+
+
+ if($r1 && $r2 && $r3)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+
+
+
+function update_r1093() {
+ $r = q("ALTER TABLE `chatpresence` ADD `cp_client` CHAR( 128 ) NOT NULL DEFAULT ''");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1094() {
+ $r = q("ALTER TABLE `chatroom` ADD `cr_expire` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `cr_edited` ,
+ADD INDEX ( `cr_expire` )");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1095() {
+ $r = q("ALTER TABLE `channel` ADD `channel_a_bookmark` INT UNSIGNED NOT NULL DEFAULT '128',
+ADD INDEX ( `channel_a_bookmark` )");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1096() {
+ $r = q("ALTER TABLE `account` CHANGE `account_level` `account_level` INT( 10 ) UNSIGNED NOT NULL DEFAULT '0'");
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+function update_r1097() {
+
+ // fix some mangled hublocs from a bug long ago
+
+ $r = q("select hubloc_id, hubloc_addr from hubloc where hubloc_addr like '%%/%%'");
+ if($r) {
+ foreach($r as $rr) {
+ q("update hubloc set hubloc_addr = '%s' where hubloc_id = %d limit 1",
+ dbesc(substr($rr['hubloc_addr'],0,strpos($rr['hubloc_addr'],'/'))),
+ intval($rr['hubloc_id'])
+ );
+ }
+ }
+ return UPDATE_SUCCESS;
+
+} \ No newline at end of file
diff --git a/library/bootstrap-datetimepicker/css/bootstrap-datetimepicker.css b/library/bootstrap-datetimepicker/css/bootstrap-datetimepicker.css
new file mode 100755
index 000000000..e5eb7a65c
--- /dev/null
+++ b/library/bootstrap-datetimepicker/css/bootstrap-datetimepicker.css
@@ -0,0 +1,174 @@
+/**
+ * Build file for the dist version of datetimepicker.css
+ */
+/*!
+ * Datetimepicker for Bootstrap v3
+ * https://github.com/Eonasdan/bootstrap-datetimepicker/
+ * Copyright 2012 Stefan Petre
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ */
+.bootstrap-datetimepicker-widget {
+ top: 0;
+ left: 0;
+ width: 250px;
+ padding: 4px;
+ margin-top: 1px;
+ z-index: 9999;
+ border-radius: 4px;
+ /*.dow {
+ border-top: 1px solid #ddd !important;
+ }*/
+}
+.bootstrap-datetimepicker-widget .btn {
+ padding: 6px;
+}
+.bootstrap-datetimepicker-widget:before {
+ content: '';
+ display: inline-block;
+ border-left: 7px solid transparent;
+ border-right: 7px solid transparent;
+ border-bottom: 7px solid #ccc;
+ border-bottom-color: rgba(0, 0, 0, 0.2);
+ position: absolute;
+ top: -7px;
+ left: 6px;
+}
+.bootstrap-datetimepicker-widget:after {
+ content: '';
+ display: inline-block;
+ border-left: 6px solid transparent;
+ border-right: 6px solid transparent;
+ border-bottom: 6px solid white;
+ position: absolute;
+ top: -6px;
+ left: 7px;
+}
+.bootstrap-datetimepicker-widget.pull-right:before {
+ left: auto;
+ right: 6px;
+}
+.bootstrap-datetimepicker-widget.pull-right:after {
+ left: auto;
+ right: 7px;
+}
+.bootstrap-datetimepicker-widget > ul {
+ list-style-type: none;
+ margin: 0;
+}
+.bootstrap-datetimepicker-widget .timepicker-hour,
+.bootstrap-datetimepicker-widget .timepicker-minute,
+.bootstrap-datetimepicker-widget .timepicker-second {
+ width: 100%;
+ font-weight: bold;
+ font-size: 1.2em;
+}
+.bootstrap-datetimepicker-widget table[data-hour-format="12"] .separator {
+ width: 4px;
+ padding: 0;
+ margin: 0;
+}
+.bootstrap-datetimepicker-widget .datepicker > div {
+ display: none;
+}
+.bootstrap-datetimepicker-widget .picker-switch {
+ text-align: center;
+}
+.bootstrap-datetimepicker-widget table {
+ width: 100%;
+ margin: 0;
+}
+.bootstrap-datetimepicker-widget td,
+.bootstrap-datetimepicker-widget th {
+ text-align: center;
+ width: 20px;
+ height: 20px;
+ border-radius: 4px;
+}
+.bootstrap-datetimepicker-widget td.day:hover,
+.bootstrap-datetimepicker-widget td.hour:hover,
+.bootstrap-datetimepicker-widget td.minute:hover,
+.bootstrap-datetimepicker-widget td.second:hover {
+ background: #eeeeee;
+ cursor: pointer;
+}
+.bootstrap-datetimepicker-widget td.old,
+.bootstrap-datetimepicker-widget td.new {
+ color: #999999;
+}
+.bootstrap-datetimepicker-widget td.active,
+.bootstrap-datetimepicker-widget td.active:hover {
+ background-color: #428bca;
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.bootstrap-datetimepicker-widget td.disabled,
+.bootstrap-datetimepicker-widget td.disabled:hover {
+ background: none;
+ color: #999999;
+ cursor: not-allowed;
+}
+.bootstrap-datetimepicker-widget td span {
+ display: block;
+ width: 47px;
+ height: 54px;
+ line-height: 54px;
+ float: left;
+ margin: 2px;
+ cursor: pointer;
+ border-radius: 4px;
+}
+.bootstrap-datetimepicker-widget td span:hover {
+ background: #eeeeee;
+}
+.bootstrap-datetimepicker-widget td span.active {
+ background-color: #428bca;
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.bootstrap-datetimepicker-widget td span.old {
+ color: #999999;
+}
+.bootstrap-datetimepicker-widget td span.disabled,
+.bootstrap-datetimepicker-widget td span.disabled:hover {
+ background: none;
+ color: #999999;
+ cursor: not-allowed;
+}
+.bootstrap-datetimepicker-widget th.switch {
+ width: 145px;
+}
+.bootstrap-datetimepicker-widget th.next,
+.bootstrap-datetimepicker-widget th.prev {
+ font-size: 21px;
+}
+.bootstrap-datetimepicker-widget th.disabled,
+.bootstrap-datetimepicker-widget th.disabled:hover {
+ background: none;
+ color: #999999;
+ cursor: not-allowed;
+}
+.bootstrap-datetimepicker-widget thead tr:first-child th {
+ cursor: pointer;
+}
+.bootstrap-datetimepicker-widget thead tr:first-child th:hover {
+ background: #eeeeee;
+}
+.input-group.date .input-group-addon span {
+ display: block;
+ cursor: pointer;
+ width: 16px;
+ height: 16px;
+}
+.bootstrap-datetimepicker-widget.left-oriented:before {
+ left: auto;
+ right: 6px;
+}
+.bootstrap-datetimepicker-widget.left-oriented:after {
+ left: auto;
+ right: 7px;
+}
+.bootstrap-datetimepicker-widget ul.list-unstyled li.in div.timepicker div.timepicker-picker table.table-condensed tbody > tr > td {
+ padding: 0px !important;
+}
diff --git a/library/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css b/library/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css
new file mode 100755
index 000000000..00b768767
--- /dev/null
+++ b/library/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css
@@ -0,0 +1,8 @@
+/*!
+ * Datetimepicker for Bootstrap v3
+ * https://github.com/Eonasdan/bootstrap-datetimepicker/
+ * Copyright 2012 Stefan Petre
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ */.bootstrap-datetimepicker-widget{top:0;left:0;width:250px;padding:4px;margin-top:1px;z-index:9999;border-radius:4px}.bootstrap-datetimepicker-widget .btn{padding:6px}.bootstrap-datetimepicker-widget:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,0.2);position:absolute;top:-7px;left:6px}.bootstrap-datetimepicker-widget:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;top:-6px;left:7px}.bootstrap-datetimepicker-widget.pull-right:before{left:auto;right:6px}.bootstrap-datetimepicker-widget.pull-right:after{left:auto;right:7px}.bootstrap-datetimepicker-widget>ul{list-style-type:none;margin:0}.bootstrap-datetimepicker-widget .timepicker-hour,.bootstrap-datetimepicker-widget .timepicker-minute,.bootstrap-datetimepicker-widget .timepicker-second{width:100%;font-weight:bold;font-size:1.2em}.bootstrap-datetimepicker-widget table[data-hour-format="12"] .separator{width:4px;padding:0;margin:0}.bootstrap-datetimepicker-widget .datepicker>div{display:none}.bootstrap-datetimepicker-widget .picker-switch{text-align:center}.bootstrap-datetimepicker-widget table{width:100%;margin:0}.bootstrap-datetimepicker-widget td,.bootstrap-datetimepicker-widget th{text-align:center;width:20px;height:20px;border-radius:4px}.bootstrap-datetimepicker-widget td.day:hover,.bootstrap-datetimepicker-widget td.hour:hover,.bootstrap-datetimepicker-widget td.minute:hover,.bootstrap-datetimepicker-widget td.second:hover{background:#eee;cursor:pointer}.bootstrap-datetimepicker-widget td.old,.bootstrap-datetimepicker-widget td.new{color:#999}.bootstrap-datetimepicker-widget td.active,.bootstrap-datetimepicker-widget td.active:hover{background-color:#428bca;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.bootstrap-datetimepicker-widget td.disabled,.bootstrap-datetimepicker-widget td.disabled:hover{background:none;color:#999;cursor:not-allowed}.bootstrap-datetimepicker-widget td span{display:block;width:47px;height:54px;line-height:54px;float:left;margin:2px;cursor:pointer;border-radius:4px}.bootstrap-datetimepicker-widget td span:hover{background:#eee}.bootstrap-datetimepicker-widget td span.active{background-color:#428bca;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.bootstrap-datetimepicker-widget td span.old{color:#999}.bootstrap-datetimepicker-widget td span.disabled,.bootstrap-datetimepicker-widget td span.disabled:hover{background:none;color:#999;cursor:not-allowed}.bootstrap-datetimepicker-widget th.switch{width:145px}.bootstrap-datetimepicker-widget th.next,.bootstrap-datetimepicker-widget th.prev{font-size:21px}.bootstrap-datetimepicker-widget th.disabled,.bootstrap-datetimepicker-widget th.disabled:hover{background:none;color:#999;cursor:not-allowed}.bootstrap-datetimepicker-widget thead tr:first-child th{cursor:pointer}.bootstrap-datetimepicker-widget thead tr:first-child th:hover{background:#eee}.input-group.date .input-group-addon span{display:block;cursor:pointer;width:16px;height:16px}.bootstrap-datetimepicker-widget.left-oriented:before{left:auto;right:6px}.bootstrap-datetimepicker-widget.left-oriented:after{left:auto;right:7px}.bootstrap-datetimepicker-widget ul.list-unstyled li.in div.timepicker div.timepicker-picker table.table-condensed tbody>tr>td{padding:0 !important} \ No newline at end of file
diff --git a/library/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js b/library/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js
new file mode 100755
index 000000000..3bc74fcbb
--- /dev/null
+++ b/library/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js
@@ -0,0 +1,28 @@
+/**
+ * version 2.1.11
+ * @license
+ * =========================================================
+ * bootstrap-datetimepicker.js
+ * http://www.eyecon.ro/bootstrap-datepicker
+ * =========================================================
+ * Copyright 2012 Stefan Petre
+ *
+ * Contributions:
+ * - updated for Bootstrap v3 by Jonathan Peterson (@Eonasdan) and (almost)
+ * completely rewritten to use Momentjs
+ * - based on tarruda's bootstrap-datepicker
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * =========================================================
+ */
+(function($){if(typeof moment==="undefined"){alert("momentjs is requried");throw new Error("momentjs is requried")}var dpgId=0,pMoment=moment,DateTimePicker=function(element,options){var defaults={pickDate:true,pickTime:true,startDate:new pMoment({y:1970}),endDate:(new pMoment).add(50,"y"),collapse:true,language:"en",defaultDate:"",disabledDates:[],icons:{},useStrict:false},icons={time:"glyphicon glyphicon-time",date:"glyphicon glyphicon-calendar",up:"glyphicon glyphicon-chevron-up",down:"glyphicon glyphicon-chevron-down"},picker=this,init=function(){var icon=false,i,dDate,longDateFormat;picker.options=$.extend({},defaults,options);picker.options.icons=$.extend({},icons,picker.options.icons);if(!(picker.options.pickTime||picker.options.pickDate))throw new Error("Must choose at least one picker");picker.id=dpgId++;pMoment.lang(picker.options.language);picker.date=pMoment();picker.element=$(element);picker.unset=false;picker.isInput=picker.element.is("input");picker.component=false;if(picker.element.hasClass("input-group")){if(picker.element.find(".datepickerbutton").size()==0){picker.component=picker.element.find(".input-group-addon")}else{picker.component=picker.element.find(".datepickerbutton")}}picker.format=picker.options.format;longDateFormat=pMoment()._lang._longDateFormat;if(!picker.format){if(picker.isInput)picker.format=picker.element.data("format");else picker.format=picker.element.find("input").data("format");if(!picker.format){picker.format=picker.options.pickDate?longDateFormat.L:"";if(picker.options.pickDate&&picker.options.pickTime)picker.format+=" ";picker.format+=picker.options.pickTime?longDateFormat.LT:""}}picker.use24hours=picker.format.toLowerCase().indexOf("a")<1;if(picker.component)icon=picker.component.find("span");if(picker.options.pickTime){if(icon)icon.addClass(picker.options.icons.time)}if(picker.options.pickDate){if(icon){icon.removeClass(picker.options.icons.time);icon.addClass(picker.options.icons.date)}}picker.widget=$(getTemplate(picker.options.pickDate,picker.options.pickTime,picker.options.collapse)).appendTo("body");picker.minViewMode=picker.options.minViewMode||picker.element.data("date-minviewmode")||0;if(typeof picker.minViewMode==="string"){switch(picker.minViewMode){case"months":picker.minViewMode=1;break;case"years":picker.minViewMode=2;break;default:picker.minViewMode=0;break}}picker.viewMode=picker.options.viewMode||picker.element.data("date-viewmode")||0;if(typeof picker.viewMode==="string"){switch(picker.viewMode){case"months":picker.viewMode=1;break;case"years":picker.viewMode=2;break;default:picker.viewMode=0;break}}for(i=0;i<picker.options.disabledDates.length;i++){dDate=picker.options.disabledDates[i];dDate=pMoment(dDate);if(!dDate.isValid())dDate=pMoment(picker.options.startDate).subtract(1,"day");picker.options.disabledDates[i]=dDate.format("L")}picker.startViewMode=picker.viewMode;picker.setStartDate(picker.options.startDate||picker.element.data("date-startdate"));picker.setEndDate(picker.options.endDate||picker.element.data("date-enddate"));fillDow();fillMonths();fillHours();fillMinutes();update();showMode();attachDatePickerEvents();if(picker.options.defaultDate!=="")picker.setValue(picker.options.defaultDate)},place=function(){var position="absolute",offset=picker.component?picker.component.offset():picker.element.offset(),$window=$(window);picker.width=picker.component?picker.component.outerWidth():picker.element.outerWidth();offset.top=offset.top+picker.element.outerHeight();if(picker.options.width!==undefined){picker.widget.width(picker.options.width)}if(picker.options.orientation==="left"){picker.widget.addClass("left-oriented");offset.left=offset.left-picker.widget.width()+20}if(isInFixed()){position="fixed";offset.top-=$window.scrollTop();offset.left-=$window.scrollLeft()}if($window.width()<offset.left+picker.widget.outerWidth()){offset.right=$window.width()-offset.left-picker.width;offset.left="auto";picker.widget.addClass("pull-right")}else{offset.right="auto";picker.widget.removeClass("pull-right")}picker.widget.css({position:position,top:offset.top,left:offset.left,right:offset.right})},notifyChange=function(oldDate){picker.element.trigger({type:"change.dp",date:picker.getDate(),oldDate:oldDate})},notifyError=function(date){picker.element.trigger({type:"error.dp",date:date})},update=function(newDate){pMoment.lang(picker.options.language);var dateStr=newDate;if(!dateStr){if(picker.isInput){dateStr=picker.element.val()}else{dateStr=picker.element.find("input").val()}if(dateStr)picker.date=pMoment(dateStr,picker.format,picker.options.useStrict);if(!picker.date)picker.date=pMoment()}picker.viewDate=pMoment(picker.date).startOf("month");fillDate();fillTime()},fillDow=function(){pMoment.lang(picker.options.language);var html=$("<tr>"),weekdaysMin=pMoment.weekdaysMin(),i;if(pMoment()._lang._week.dow==0){for(i=0;i<7;i++){html.append('<th class="dow">'+weekdaysMin[i]+"</th>")}}else{for(i=1;i<8;i++){if(i==7){html.append('<th class="dow">'+weekdaysMin[0]+"</th>")}else{html.append('<th class="dow">'+weekdaysMin[i]+"</th>")}}}picker.widget.find(".datepicker-days thead").append(html)},fillMonths=function(){pMoment.lang(picker.options.language);var html="",i=0,monthsShort=pMoment.monthsShort();while(i<12){html+='<span class="month">'+monthsShort[i++]+"</span>"}picker.widget.find(".datepicker-months td").append(html)},fillDate=function(){pMoment.lang(picker.options.language);var year=picker.viewDate.year(),month=picker.viewDate.month(),startYear=picker.options.startDate.year(),startMonth=picker.options.startDate.month(),endYear=picker.options.endDate.year(),endMonth=picker.options.endDate.month(),prevMonth,nextMonth,html=[],row,clsName,i,days,yearCont,currentYear,months=pMoment.months();picker.widget.find(".datepicker-days").find(".disabled").removeClass("disabled");picker.widget.find(".datepicker-months").find(".disabled").removeClass("disabled");picker.widget.find(".datepicker-years").find(".disabled").removeClass("disabled");picker.widget.find(".datepicker-days th:eq(1)").text(months[month]+" "+year);prevMonth=pMoment(picker.viewDate).subtract("months",1);days=prevMonth.daysInMonth();prevMonth.date(days).startOf("week");if(year==startYear&&month<=startMonth||year<startYear){picker.widget.find(".datepicker-days th:eq(0)").addClass("disabled")}if(year==endYear&&month>=endMonth||year>endYear){picker.widget.find(".datepicker-days th:eq(2)").addClass("disabled")}nextMonth=pMoment(prevMonth).add(42,"d");while(prevMonth.isBefore(nextMonth)){if(prevMonth.weekday()===pMoment().startOf("week").weekday()){row=$("<tr>");html.push(row)}clsName="";if(prevMonth.year()<year||prevMonth.year()==year&&prevMonth.month()<month){clsName+=" old"}else if(prevMonth.year()>year||prevMonth.year()==year&&prevMonth.month()>month){clsName+=" new"}if(prevMonth.isSame(pMoment({y:picker.date.year(),M:picker.date.month(),d:picker.date.date()}))){clsName+=" active"}if(pMoment(prevMonth).add(1,"d")<=picker.options.startDate||prevMonth>picker.options.endDate||isInDisableDates(prevMonth)){clsName+=" disabled"}row.append('<td class="day'+clsName+'">'+prevMonth.date()+"</td>");prevMonth.add(1,"d")}picker.widget.find(".datepicker-days tbody").empty().append(html);currentYear=pMoment().year(),months=picker.widget.find(".datepicker-months").find("th:eq(1)").text(year).end().find("span").removeClass("active");if(currentYear===year){months.eq(pMoment().month()).addClass("active")}if(currentYear-1<startYear){picker.widget.find(".datepicker-months th:eq(0)").addClass("disabled")}if(currentYear+1>endYear){picker.widget.find(".datepicker-months th:eq(2)").addClass("disabled")}for(i=0;i<12;i++){if(year==startYear&&startMonth>i||year<startYear){$(months[i]).addClass("disabled")}else if(year==endYear&&endMonth<i||year>endYear){$(months[i]).addClass("disabled")}}html="";year=parseInt(year/10,10)*10;yearCont=picker.widget.find(".datepicker-years").find("th:eq(1)").text(year+"-"+(year+9)).end().find("td");picker.widget.find(".datepicker-years").find("th").removeClass("disabled");if(startYear>year){picker.widget.find(".datepicker-years").find("th:eq(0)").addClass("disabled")}if(endYear<year+9){picker.widget.find(".datepicker-years").find("th:eq(2)").addClass("disabled")}year-=1;for(i=-1;i<11;i++){html+='<span class="year'+(i===-1||i===10?" old":"")+(currentYear===year?" active":"")+(year<startYear||year>endYear?" disabled":"")+'">'+year+"</span>";year+=1}yearCont.html(html)},fillHours=function(){pMoment.lang(picker.options.language);var table=picker.widget.find(".timepicker .timepicker-hours table"),html="",current,i,j;table.parent().hide();if(picker.use24hours){current=0;for(i=0;i<6;i+=1){html+="<tr>";for(j=0;j<4;j+=1){html+='<td class="hour">'+padLeft(current.toString())+"</td>";current++}html+="</tr>"}}else{current=1;for(i=0;i<3;i+=1){html+="<tr>";for(j=0;j<4;j+=1){html+='<td class="hour">'+padLeft(current.toString())+"</td>";current++}html+="</tr>"}}table.html(html)},fillMinutes=function(){var table=picker.widget.find(".timepicker .timepicker-minutes table"),html="",current=0,i,j;table.parent().hide();for(i=0;i<5;i++){html+="<tr>";for(j=0;j<4;j+=1){html+='<td class="minute">'+padLeft(current.toString())+"</td>";current+=3}html+="</tr>"}table.html(html)},fillTime=function(){if(!picker.date)return;var timeComponents=picker.widget.find(".timepicker span[data-time-component]"),hour=picker.date.hours(),period="AM";if(!picker.use24hours){if(hour>=12)period="PM";if(hour===0)hour=12;else if(hour!=12)hour=hour%12;picker.widget.find(".timepicker [data-action=togglePeriod]").text(period)}timeComponents.filter("[data-time-component=hours]").text(padLeft(hour));timeComponents.filter("[data-time-component=minutes]").text(padLeft(picker.date.minutes()))},click=function(e){e.stopPropagation();e.preventDefault();picker.unset=false;var target=$(e.target).closest("span, td, th"),month,year,step,day,oldDate=picker.date;if(target.length===1){if(!target.is(".disabled")){switch(target[0].nodeName.toLowerCase()){case"th":switch(target[0].className){case"switch":showMode(1);break;case"prev":case"next":step=dpGlobal.modes[picker.viewMode].navStep;if(target[0].className==="prev")step=step*-1;picker.viewDate.add(step,dpGlobal.modes[picker.viewMode].navFnc);fillDate();break}break;case"span":if(target.is(".month")){month=target.parent().find("span").index(target);picker.viewDate.month(month)}else{year=parseInt(target.text(),10)||0;picker.viewDate.year(year)}if(picker.viewMode!==0){picker.date=pMoment({y:picker.viewDate.year(),M:picker.viewDate.month(),d:picker.viewDate.date(),h:picker.date.hours(),m:picker.date.minutes()});notifyChange(oldDate)}showMode(-1);fillDate();break;case"td":if(target.is(".day")){day=parseInt(target.text(),10)||1;month=picker.viewDate.month();year=picker.viewDate.year();if(target.is(".old")){if(month===0){month=11;year-=1}else{month-=1}}else if(target.is(".new")){if(month==11){month=0;year+=1}else{month+=1}}picker.date=pMoment({y:year,M:month,d:day,h:picker.date.hours(),m:picker.date.minutes()});picker.viewDate=pMoment({y:year,M:month,d:Math.min(28,day)});fillDate();set();notifyChange(oldDate)}break}}}},actions={incrementHours:function(){checkDate("add","hours")},incrementMinutes:function(){checkDate("add","minutes")},decrementHours:function(){checkDate("subtract","hours")},decrementMinutes:function(){checkDate("subtract","minutes")},togglePeriod:function(){var hour=picker.date.hours();if(hour>=12)hour-=12;else hour+=12;picker.date.hours(hour)},showPicker:function(){picker.widget.find(".timepicker > div:not(.timepicker-picker)").hide();picker.widget.find(".timepicker .timepicker-picker").show()},showHours:function(){picker.widget.find(".timepicker .timepicker-picker").hide();picker.widget.find(".timepicker .timepicker-hours").show()},showMinutes:function(){picker.widget.find(".timepicker .timepicker-picker").hide();picker.widget.find(".timepicker .timepicker-minutes").show()},selectHour:function(e){picker.date.hours(parseInt($(e.target).text(),10));actions.showPicker.call(picker)},selectMinute:function(e){picker.date.minutes(parseInt($(e.target).text(),10));actions.showPicker.call(picker)}},doAction=function(e){var action=$(e.currentTarget).data("action"),rv=actions[action].apply(picker,arguments),oldDate=picker.date;stopEvent(e);if(!picker.date)picker.date=pMoment({y:1970});set();fillTime();notifyChange(oldDate);return rv},stopEvent=function(e){e.stopPropagation();e.preventDefault()},change=function(e){pMoment.lang(picker.options.language);var input=$(e.target),oldDate=picker.date,d=pMoment(input.val(),picker.format,picker.options.useStrict);if(d.isValid()){update();picker.setValue(d);notifyChange(oldDate);set()}else{picker.viewDate=oldDate;notifyChange(oldDate);notifyError(d);picker.unset=true;input.val("")}},showMode=function(dir){if(dir){picker.viewMode=Math.max(picker.minViewMode,Math.min(2,picker.viewMode+dir))}picker.widget.find(".datepicker > div").hide().filter(".datepicker-"+dpGlobal.modes[picker.viewMode].clsName).show()},attachDatePickerEvents=function(){var $this,$parent,expanded,closed,collapseData;picker.widget.on("click",".datepicker *",$.proxy(click,this));picker.widget.on("click","[data-action]",$.proxy(doAction,this));picker.widget.on("mousedown",$.proxy(stopEvent,this));if(picker.options.pickDate&&picker.options.pickTime){picker.widget.on("click.togglePicker",".accordion-toggle",function(e){e.stopPropagation();$this=$(this);$parent=$this.closest("ul");expanded=$parent.find(".in");closed=$parent.find(".collapse:not(.in)");if(expanded&&expanded.length){collapseData=expanded.data("collapse");if(collapseData&&collapseData.transitioning)return;expanded.collapse("hide");closed.collapse("show");$this.find("span").toggleClass(picker.options.icons.time+" "+picker.options.icons.date);picker.element.find(".input-group-addon span").toggleClass(picker.options.icons.time+" "+picker.options.icons.date)}})}if(picker.isInput){picker.element.on({focus:$.proxy(picker.show,this),change:$.proxy(change,this),blur:$.proxy(picker.hide,this)})}else{picker.element.on({change:$.proxy(change,this)},"input");if(picker.component){picker.component.on("click",$.proxy(picker.show,this))}else{picker.element.on("click",$.proxy(picker.show,this))}}},attachDatePickerGlobalEvents=function(){$(window).on("resize.datetimepicker"+picker.id,$.proxy(place,this));if(!picker.isInput){$(document).on("mousedown.datetimepicker"+picker.id,$.proxy(picker.hide,this))}},detachDatePickerEvents=function(){picker.widget.off("click",".datepicker *",picker.click);picker.widget.off("click","[data-action]");picker.widget.off("mousedown",picker.stopEvent);if(picker.options.pickDate&&picker.options.pickTime){picker.widget.off("click.togglePicker")}if(picker.isInput){picker.element.off({focus:picker.show,change:picker.change})}else{picker.element.off({change:picker.change},"input");if(picker.component){picker.component.off("click",picker.show)}else{picker.element.off("click",picker.show)}}},detachDatePickerGlobalEvents=function(){$(window).off("resize.datetimepicker"+picker.id);if(!picker.isInput){$(document).off("mousedown.datetimepicker"+picker.id)}},isInFixed=function(){if(picker.element){var parents=picker.element.parents(),inFixed=false,i;for(i=0;i<parents.length;i++){if($(parents[i]).css("position")=="fixed"){inFixed=true;break}}return inFixed}else{return false}},set=function(){pMoment.lang(picker.options.language);var formatted="",input;if(!picker.unset)formatted=pMoment(picker.date).format(picker.format);if(!picker.isInput){if(picker.component){input=picker.element.find("input");input.val(formatted)}picker.element.data("date",formatted)}else{picker.element.val(formatted)}if(!picker.options.pickTime)picker.hide()},checkDate=function(direction,unit){pMoment.lang(picker.options.language);var newDate;if(direction=="add"){newDate=pMoment(picker.date);if(newDate.hours()==23)newDate.add(1,unit);newDate.add(1,unit)}else{newDate=pMoment(picker.date).subtract(1,unit)}if(newDate.isAfter(picker.options.endDate)||newDate.subtract(1,unit).isBefore(picker.options.startDate)||isInDisableDates(newDate)){notifyError(newDate.format(picker.format));return}if(direction=="add"){picker.date.add(1,unit)}else{picker.date.subtract(1,unit)}},isInDisableDates=function(date){pMoment.lang(picker.options.language);var disabled=picker.options.disabledDates,i;for(i in disabled){if(disabled[i]==pMoment(date).format("L")){return true}}return false},padLeft=function(string){string=string.toString();if(string.length>=2)return string;else return"0"+string},getTemplate=function(pickDate,pickTime,collapse){if(pickDate&&pickTime){return'<div class="bootstrap-datetimepicker-widget dropdown-menu" style="z-index:9999 !important;">'+'<ul class="list-unstyled">'+"<li"+(collapse?' class="collapse in"':"")+">"+'<div class="datepicker">'+dpGlobal.template+"</div>"+"</li>"+'<li class="picker-switch accordion-toggle"><a class="btn" style="width:100%"><span class="'+picker.options.icons.time+'"></span></a></li>'+"<li"+(collapse?' class="collapse"':"")+">"+'<div class="timepicker">'+tpGlobal.getTemplate()+"</div>"+"</li>"+"</ul>"+"</div>"}else if(pickTime){return'<div class="bootstrap-datetimepicker-widget dropdown-menu">'+'<div class="timepicker">'+tpGlobal.getTemplate()+"</div>"+"</div>"}else{return'<div class="bootstrap-datetimepicker-widget dropdown-menu">'+'<div class="datepicker">'+dpGlobal.template+"</div>"+"</div>"}},dpGlobal={modes:[{clsName:"days",navFnc:"month",navStep:1},{clsName:"months",navFnc:"year",navStep:1},{clsName:"years",navFnc:"year",navStep:10}],headTemplate:"<thead>"+"<tr>"+'<th class="prev">&lsaquo;</th><th colspan="5" class="switch"></th><th class="next">&rsaquo;</th>'+"</tr>"+"</thead>",contTemplate:'<tbody><tr><td colspan="7"></td></tr></tbody>'},tpGlobal={hourTemplate:'<span data-action="showHours" data-time-component="hours" class="timepicker-hour"></span>',minuteTemplate:'<span data-action="showMinutes" data-time-component="minutes" class="timepicker-minute"></span>'};dpGlobal.template='<div class="datepicker-days">'+'<table class="table-condensed">'+dpGlobal.headTemplate+"<tbody></tbody></table>"+"</div>"+'<div class="datepicker-months">'+'<table class="table-condensed">'+dpGlobal.headTemplate+dpGlobal.contTemplate+"</table>"+"</div>"+'<div class="datepicker-years">'+'<table class="table-condensed">'+dpGlobal.headTemplate+dpGlobal.contTemplate+"</table>"+"</div>";tpGlobal.getTemplate=function(){return'<div class="timepicker-picker">'+'<table class="table-condensed">'+"<tr>"+'<td><a href="#" class="btn" data-action="incrementHours"><span class="'+picker.options.icons.up+'"></span></a></td>'+'<td class="separator"></td>'+'<td><a href="#" class="btn" data-action="incrementMinutes"><span class="'+picker.options.icons.up+'"></span></a></td>'+(!picker.use24hours?'<td class="separator"></td>':"")+"</tr>"+"<tr>"+"<td>"+tpGlobal.hourTemplate+"</td> "+'<td class="separator">:</td>'+"<td>"+tpGlobal.minuteTemplate+"</td> "+(!picker.use24hours?'<td class="separator"></td>'+'<td><button type="button" class="btn btn-primary" data-action="togglePeriod"></button></td>':"")+"</tr>"+"<tr>"+'<td><a href="#" class="btn" data-action="decrementHours"><span class="'+picker.options.icons.down+'"></span></a></td>'+'<td class="separator"></td>'+'<td><a href="#" class="btn" data-action="decrementMinutes"><span class="'+picker.options.icons.down+'"></span></a></td>'+(!picker.use24hours?'<td class="separator"></td>':"")+"</tr>"+"</table>"+"</div>"+'<div class="timepicker-hours" data-action="selectHour">'+'<table class="table-condensed"></table>'+"</div>"+'<div class="timepicker-minutes" data-action="selectMinute">'+'<table class="table-condensed"></table>'+"</div>"};picker.destroy=function(){detachDatePickerEvents();detachDatePickerGlobalEvents();picker.widget.remove();picker.element.removeData("DateTimePicker");if(picker.component)picker.component.removeData("DateTimePicker")};picker.show=function(e){picker.widget.show();picker.height=picker.component?picker.component.outerHeight():picker.element.outerHeight();place();picker.element.trigger({type:"show.dp",date:picker.date});attachDatePickerGlobalEvents();if(e){stopEvent(e)}},picker.disable=function(){picker.element.find("input").prop("disabled",true);detachDatePickerEvents()},picker.enable=function(){picker.element.find("input").prop("disabled",false);attachDatePickerEvents()},picker.hide=function(){var collapse=picker.widget.find(".collapse"),i,collapseData;for(i=0;i<collapse.length;i++){collapseData=collapse.eq(i).data("collapse");if(collapseData&&collapseData.transitioning)return}picker.widget.hide();picker.viewMode=picker.startViewMode;showMode();picker.element.trigger({type:"hide.dp",date:picker.date});detachDatePickerGlobalEvents()},picker.setValue=function(newDate){pMoment.lang(picker.options.language);if(!newDate){picker.unset=true}else{picker.unset=false}if(!pMoment.isMoment(newDate))newDate=pMoment(newDate);if(newDate.isValid()){picker.date=newDate;set();picker.viewDate=pMoment({y:picker.date.year(),M:picker.date.month()});fillDate();fillTime()}else{notifyError(newDate)}},picker.getDate=function(){if(picker.unset)return null;return picker.date},picker.setDate=function(date){if(!date)picker.setValue(null);else picker.setValue(date)},picker.setEndDate=function(date){picker.options.endDate=pMoment(date);if(!picker.options.endDate.isValid()){picker.options.endDate=pMoment().add(50,"y")}if(picker.viewDate)update()},picker.setStartDate=function(date){picker.options.startDate=pMoment(date);if(!picker.options.startDate.isValid()){picker.options.startDate=pMoment({y:1970})}if(picker.viewDate)update()};init()};$.fn.datetimepicker=function(options){return this.each(function(){var $this=$(this),data=$this.data("DateTimePicker");if(!data)$this.data("DateTimePicker",new DateTimePicker(this,options))})}})(jQuery); \ No newline at end of file
diff --git a/library/bootstrap-datetimepicker/js/moment.js b/library/bootstrap-datetimepicker/js/moment.js
new file mode 100644
index 000000000..0168748fa
--- /dev/null
+++ b/library/bootstrap-datetimepicker/js/moment.js
@@ -0,0 +1,7063 @@
+//! moment.js
+//! version : 2.4.0
+//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
+//! license : MIT
+//! momentjs.com
+
+(function (undefined) {
+
+ /************************************
+ Constants
+ ************************************/
+
+ var moment,
+ VERSION = "2.4.0",
+ round = Math.round,
+ i,
+
+ YEAR = 0,
+ MONTH = 1,
+ DATE = 2,
+ HOUR = 3,
+ MINUTE = 4,
+ SECOND = 5,
+ MILLISECOND = 6,
+
+ // internal storage for language config files
+ languages = {},
+
+ // check for nodeJS
+ hasModule = (typeof module !== 'undefined' && module.exports),
+
+ // ASP.NET json date format regex
+ aspNetJsonRegex = /^\/?Date\((\-?\d+)/i,
+ aspNetTimeSpanJsonRegex = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,
+
+ // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
+ // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
+ isoDurationRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,
+
+ // format tokens
+ formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,
+ localFormattingTokens = /(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,
+
+ // parsing token regexes
+ parseTokenOneOrTwoDigits = /\d\d?/, // 0 - 99
+ parseTokenOneToThreeDigits = /\d{1,3}/, // 0 - 999
+ parseTokenThreeDigits = /\d{3}/, // 000 - 999
+ parseTokenFourDigits = /\d{1,4}/, // 0 - 9999
+ parseTokenSixDigits = /[+\-]?\d{1,6}/, // -999,999 - 999,999
+ parseTokenDigits = /\d+/, // nonzero number of digits
+ parseTokenWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, // any word (or two) characters or numbers including two/three word month in arabic.
+ parseTokenTimezone = /Z|[\+\-]\d\d:?\d\d/i, // +00:00 -00:00 +0000 -0000 or Z
+ parseTokenT = /T/i, // T (ISO seperator)
+ parseTokenTimestampMs = /[\+\-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123
+
+ // preliminary iso regex
+ // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000)
+ isoRegex = /^\s*\d{4}-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d:?\d\d|Z)?)?$/,
+
+ isoFormat = 'YYYY-MM-DDTHH:mm:ssZ',
+
+ isoDates = [
+ 'YYYY-MM-DD',
+ 'GGGG-[W]WW',
+ 'GGGG-[W]WW-E',
+ 'YYYY-DDD'
+ ],
+
+ // iso time formats and regexes
+ isoTimes = [
+ ['HH:mm:ss.SSSS', /(T| )\d\d:\d\d:\d\d\.\d{1,3}/],
+ ['HH:mm:ss', /(T| )\d\d:\d\d:\d\d/],
+ ['HH:mm', /(T| )\d\d:\d\d/],
+ ['HH', /(T| )\d\d/]
+ ],
+
+ // timezone chunker "+10:00" > ["10", "00"] or "-1530" > ["-15", "30"]
+ parseTimezoneChunker = /([\+\-]|\d\d)/gi,
+
+ // getter and setter names
+ proxyGettersAndSetters = 'Date|Hours|Minutes|Seconds|Milliseconds'.split('|'),
+ unitMillisecondFactors = {
+ 'Milliseconds' : 1,
+ 'Seconds' : 1e3,
+ 'Minutes' : 6e4,
+ 'Hours' : 36e5,
+ 'Days' : 864e5,
+ 'Months' : 2592e6,
+ 'Years' : 31536e6
+ },
+
+ unitAliases = {
+ ms : 'millisecond',
+ s : 'second',
+ m : 'minute',
+ h : 'hour',
+ d : 'day',
+ D : 'date',
+ w : 'week',
+ W : 'isoWeek',
+ M : 'month',
+ y : 'year',
+ DDD : 'dayOfYear',
+ e : 'weekday',
+ E : 'isoWeekday',
+ gg: 'weekYear',
+ GG: 'isoWeekYear'
+ },
+
+ camelFunctions = {
+ dayofyear : 'dayOfYear',
+ isoweekday : 'isoWeekday',
+ isoweek : 'isoWeek',
+ weekyear : 'weekYear',
+ isoweekyear : 'isoWeekYear'
+ },
+
+ // format function strings
+ formatFunctions = {},
+
+ // tokens to ordinalize and pad
+ ordinalizeTokens = 'DDD w W M D d'.split(' '),
+ paddedTokens = 'M D H h m s w W'.split(' '),
+
+ formatTokenFunctions = {
+ M : function () {
+ return this.month() + 1;
+ },
+ MMM : function (format) {
+ return this.lang().monthsShort(this, format);
+ },
+ MMMM : function (format) {
+ return this.lang().months(this, format);
+ },
+ D : function () {
+ return this.date();
+ },
+ DDD : function () {
+ return this.dayOfYear();
+ },
+ d : function () {
+ return this.day();
+ },
+ dd : function (format) {
+ return this.lang().weekdaysMin(this, format);
+ },
+ ddd : function (format) {
+ return this.lang().weekdaysShort(this, format);
+ },
+ dddd : function (format) {
+ return this.lang().weekdays(this, format);
+ },
+ w : function () {
+ return this.week();
+ },
+ W : function () {
+ return this.isoWeek();
+ },
+ YY : function () {
+ return leftZeroFill(this.year() % 100, 2);
+ },
+ YYYY : function () {
+ return leftZeroFill(this.year(), 4);
+ },
+ YYYYY : function () {
+ return leftZeroFill(this.year(), 5);
+ },
+ gg : function () {
+ return leftZeroFill(this.weekYear() % 100, 2);
+ },
+ gggg : function () {
+ return this.weekYear();
+ },
+ ggggg : function () {
+ return leftZeroFill(this.weekYear(), 5);
+ },
+ GG : function () {
+ return leftZeroFill(this.isoWeekYear() % 100, 2);
+ },
+ GGGG : function () {
+ return this.isoWeekYear();
+ },
+ GGGGG : function () {
+ return leftZeroFill(this.isoWeekYear(), 5);
+ },
+ e : function () {
+ return this.weekday();
+ },
+ E : function () {
+ return this.isoWeekday();
+ },
+ a : function () {
+ return this.lang().meridiem(this.hours(), this.minutes(), true);
+ },
+ A : function () {
+ return this.lang().meridiem(this.hours(), this.minutes(), false);
+ },
+ H : function () {
+ return this.hours();
+ },
+ h : function () {
+ return this.hours() % 12 || 12;
+ },
+ m : function () {
+ return this.minutes();
+ },
+ s : function () {
+ return this.seconds();
+ },
+ S : function () {
+ return toInt(this.milliseconds() / 100);
+ },
+ SS : function () {
+ return leftZeroFill(toInt(this.milliseconds() / 10), 2);
+ },
+ SSS : function () {
+ return leftZeroFill(this.milliseconds(), 3);
+ },
+ SSSS : function () {
+ return leftZeroFill(this.milliseconds(), 3);
+ },
+ Z : function () {
+ var a = -this.zone(),
+ b = "+";
+ if (a < 0) {
+ a = -a;
+ b = "-";
+ }
+ return b + leftZeroFill(toInt(a / 60), 2) + ":" + leftZeroFill(toInt(a) % 60, 2);
+ },
+ ZZ : function () {
+ var a = -this.zone(),
+ b = "+";
+ if (a < 0) {
+ a = -a;
+ b = "-";
+ }
+ return b + leftZeroFill(toInt(10 * a / 6), 4);
+ },
+ z : function () {
+ return this.zoneAbbr();
+ },
+ zz : function () {
+ return this.zoneName();
+ },
+ X : function () {
+ return this.unix();
+ }
+ },
+
+ lists = ['months', 'monthsShort', 'weekdays', 'weekdaysShort', 'weekdaysMin'];
+
+ function padToken(func, count) {
+ return function (a) {
+ return leftZeroFill(func.call(this, a), count);
+ };
+ }
+ function ordinalizeToken(func, period) {
+ return function (a) {
+ return this.lang().ordinal(func.call(this, a), period);
+ };
+ }
+
+ while (ordinalizeTokens.length) {
+ i = ordinalizeTokens.pop();
+ formatTokenFunctions[i + 'o'] = ordinalizeToken(formatTokenFunctions[i], i);
+ }
+ while (paddedTokens.length) {
+ i = paddedTokens.pop();
+ formatTokenFunctions[i + i] = padToken(formatTokenFunctions[i], 2);
+ }
+ formatTokenFunctions.DDDD = padToken(formatTokenFunctions.DDD, 3);
+
+
+ /************************************
+ Constructors
+ ************************************/
+
+ function Language() {
+
+ }
+
+ // Moment prototype object
+ function Moment(config) {
+ checkOverflow(config);
+ extend(this, config);
+ }
+
+ // Duration Constructor
+ function Duration(duration) {
+ var normalizedInput = normalizeObjectUnits(duration),
+ years = normalizedInput.year || 0,
+ months = normalizedInput.month || 0,
+ weeks = normalizedInput.week || 0,
+ days = normalizedInput.day || 0,
+ hours = normalizedInput.hour || 0,
+ minutes = normalizedInput.minute || 0,
+ seconds = normalizedInput.second || 0,
+ milliseconds = normalizedInput.millisecond || 0;
+
+ // store reference to input for deterministic cloning
+ this._input = duration;
+
+ // representation for dateAddRemove
+ this._milliseconds = +milliseconds +
+ seconds * 1e3 + // 1000
+ minutes * 6e4 + // 1000 * 60
+ hours * 36e5; // 1000 * 60 * 60
+ // Because of dateAddRemove treats 24 hours as different from a
+ // day when working around DST, we need to store them separately
+ this._days = +days +
+ weeks * 7;
+ // It is impossible translate months into days without knowing
+ // which months you are are talking about, so we have to store
+ // it separately.
+ this._months = +months +
+ years * 12;
+
+ this._data = {};
+
+ this._bubble();
+ }
+
+ /************************************
+ Helpers
+ ************************************/
+
+
+ function extend(a, b) {
+ for (var i in b) {
+ if (b.hasOwnProperty(i)) {
+ a[i] = b[i];
+ }
+ }
+
+ if (b.hasOwnProperty("toString")) {
+ a.toString = b.toString;
+ }
+
+ if (b.hasOwnProperty("valueOf")) {
+ a.valueOf = b.valueOf;
+ }
+
+ return a;
+ }
+
+ function absRound(number) {
+ if (number < 0) {
+ return Math.ceil(number);
+ } else {
+ return Math.floor(number);
+ }
+ }
+
+ // left zero fill a number
+ // see http://jsperf.com/left-zero-filling for performance comparison
+ function leftZeroFill(number, targetLength) {
+ var output = number + '';
+ while (output.length < targetLength) {
+ output = '0' + output;
+ }
+ return output;
+ }
+
+ // helper function for _.addTime and _.subtractTime
+ function addOrSubtractDurationFromMoment(mom, duration, isAdding, ignoreUpdateOffset) {
+ var milliseconds = duration._milliseconds,
+ days = duration._days,
+ months = duration._months,
+ minutes,
+ hours;
+
+ if (milliseconds) {
+ mom._d.setTime(+mom._d + milliseconds * isAdding);
+ }
+ // store the minutes and hours so we can restore them
+ if (days || months) {
+ minutes = mom.minute();
+ hours = mom.hour();
+ }
+ if (days) {
+ mom.date(mom.date() + days * isAdding);
+ }
+ if (months) {
+ mom.month(mom.month() + months * isAdding);
+ }
+ if (milliseconds && !ignoreUpdateOffset) {
+ moment.updateOffset(mom);
+ }
+ // restore the minutes and hours after possibly changing dst
+ if (days || months) {
+ mom.minute(minutes);
+ mom.hour(hours);
+ }
+ }
+
+ // check if is an array
+ function isArray(input) {
+ return Object.prototype.toString.call(input) === '[object Array]';
+ }
+
+ function isDate(input) {
+ return Object.prototype.toString.call(input) === '[object Date]' ||
+ input instanceof Date;
+ }
+
+ // compare two arrays, return the number of differences
+ function compareArrays(array1, array2, dontConvert) {
+ var len = Math.min(array1.length, array2.length),
+ lengthDiff = Math.abs(array1.length - array2.length),
+ diffs = 0,
+ i;
+ for (i = 0; i < len; i++) {
+ if ((dontConvert && array1[i] !== array2[i]) ||
+ (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {
+ diffs++;
+ }
+ }
+ return diffs + lengthDiff;
+ }
+
+ function normalizeUnits(units) {
+ if (units) {
+ var lowered = units.toLowerCase().replace(/(.)s$/, '$1');
+ units = unitAliases[units] || camelFunctions[lowered] || lowered;
+ }
+ return units;
+ }
+
+ function normalizeObjectUnits(inputObject) {
+ var normalizedInput = {},
+ normalizedProp,
+ prop,
+ index;
+
+ for (prop in inputObject) {
+ if (inputObject.hasOwnProperty(prop)) {
+ normalizedProp = normalizeUnits(prop);
+ if (normalizedProp) {
+ normalizedInput[normalizedProp] = inputObject[prop];
+ }
+ }
+ }
+
+ return normalizedInput;
+ }
+
+ function makeList(field) {
+ var count, setter;
+
+ if (field.indexOf('week') === 0) {
+ count = 7;
+ setter = 'day';
+ }
+ else if (field.indexOf('month') === 0) {
+ count = 12;
+ setter = 'month';
+ }
+ else {
+ return;
+ }
+
+ moment[field] = function (format, index) {
+ var i, getter,
+ method = moment.fn._lang[field],
+ results = [];
+
+ if (typeof format === 'number') {
+ index = format;
+ format = undefined;
+ }
+
+ getter = function (i) {
+ var m = moment().utc().set(setter, i);
+ return method.call(moment.fn._lang, m, format || '');
+ };
+
+ if (index != null) {
+ return getter(index);
+ }
+ else {
+ for (i = 0; i < count; i++) {
+ results.push(getter(i));
+ }
+ return results;
+ }
+ };
+ }
+
+ function toInt(argumentForCoercion) {
+ var coercedNumber = +argumentForCoercion,
+ value = 0;
+
+ if (coercedNumber !== 0 && isFinite(coercedNumber)) {
+ if (coercedNumber >= 0) {
+ value = Math.floor(coercedNumber);
+ } else {
+ value = Math.ceil(coercedNumber);
+ }
+ }
+
+ return value;
+ }
+
+ function daysInMonth(year, month) {
+ return new Date(Date.UTC(year, month + 1, 0)).getUTCDate();
+ }
+
+ function daysInYear(year) {
+ return isLeapYear(year) ? 366 : 365;
+ }
+
+ function isLeapYear(year) {
+ return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
+ }
+
+ function checkOverflow(m) {
+ var overflow;
+ if (m._a && m._pf.overflow === -2) {
+ overflow =
+ m._a[MONTH] < 0 || m._a[MONTH] > 11 ? MONTH :
+ m._a[DATE] < 1 || m._a[DATE] > daysInMonth(m._a[YEAR], m._a[MONTH]) ? DATE :
+ m._a[HOUR] < 0 || m._a[HOUR] > 23 ? HOUR :
+ m._a[MINUTE] < 0 || m._a[MINUTE] > 59 ? MINUTE :
+ m._a[SECOND] < 0 || m._a[SECOND] > 59 ? SECOND :
+ m._a[MILLISECOND] < 0 || m._a[MILLISECOND] > 999 ? MILLISECOND :
+ -1;
+
+ if (m._pf._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
+ overflow = DATE;
+ }
+
+ m._pf.overflow = overflow;
+ }
+ }
+
+ function initializeParsingFlags(config) {
+ config._pf = {
+ empty : false,
+ unusedTokens : [],
+ unusedInput : [],
+ overflow : -2,
+ charsLeftOver : 0,
+ nullInput : false,
+ invalidMonth : null,
+ invalidFormat : false,
+ userInvalidated : false,
+ iso: false
+ };
+ }
+
+ function isValid(m) {
+ if (m._isValid == null) {
+ m._isValid = !isNaN(m._d.getTime()) &&
+ m._pf.overflow < 0 &&
+ !m._pf.empty &&
+ !m._pf.invalidMonth &&
+ !m._pf.nullInput &&
+ !m._pf.invalidFormat &&
+ !m._pf.userInvalidated;
+
+ if (m._strict) {
+ m._isValid = m._isValid &&
+ m._pf.charsLeftOver === 0 &&
+ m._pf.unusedTokens.length === 0;
+ }
+ }
+ return m._isValid;
+ }
+
+ function normalizeLanguage(key) {
+ return key ? key.toLowerCase().replace('_', '-') : key;
+ }
+
+ /************************************
+ Languages
+ ************************************/
+
+
+ extend(Language.prototype, {
+
+ set : function (config) {
+ var prop, i;
+ for (i in config) {
+ prop = config[i];
+ if (typeof prop === 'function') {
+ this[i] = prop;
+ } else {
+ this['_' + i] = prop;
+ }
+ }
+ },
+
+ _months : "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
+ months : function (m) {
+ return this._months[m.month()];
+ },
+
+ _monthsShort : "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
+ monthsShort : function (m) {
+ return this._monthsShort[m.month()];
+ },
+
+ monthsParse : function (monthName) {
+ var i, mom, regex;
+
+ if (!this._monthsParse) {
+ this._monthsParse = [];
+ }
+
+ for (i = 0; i < 12; i++) {
+ // make the regex if we don't have it already
+ if (!this._monthsParse[i]) {
+ mom = moment.utc([2000, i]);
+ regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
+ this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
+ }
+ // test the regex
+ if (this._monthsParse[i].test(monthName)) {
+ return i;
+ }
+ }
+ },
+
+ _weekdays : "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
+ weekdays : function (m) {
+ return this._weekdays[m.day()];
+ },
+
+ _weekdaysShort : "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
+ weekdaysShort : function (m) {
+ return this._weekdaysShort[m.day()];
+ },
+
+ _weekdaysMin : "Su_Mo_Tu_We_Th_Fr_Sa".split("_"),
+ weekdaysMin : function (m) {
+ return this._weekdaysMin[m.day()];
+ },
+
+ weekdaysParse : function (weekdayName) {
+ var i, mom, regex;
+
+ if (!this._weekdaysParse) {
+ this._weekdaysParse = [];
+ }
+
+ for (i = 0; i < 7; i++) {
+ // make the regex if we don't have it already
+ if (!this._weekdaysParse[i]) {
+ mom = moment([2000, 1]).day(i);
+ regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');
+ this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
+ }
+ // test the regex
+ if (this._weekdaysParse[i].test(weekdayName)) {
+ return i;
+ }
+ }
+ },
+
+ _longDateFormat : {
+ LT : "h:mm A",
+ L : "MM/DD/YYYY",
+ LL : "MMMM D YYYY",
+ LLL : "MMMM D YYYY LT",
+ LLLL : "dddd, MMMM D YYYY LT"
+ },
+ longDateFormat : function (key) {
+ var output = this._longDateFormat[key];
+ if (!output && this._longDateFormat[key.toUpperCase()]) {
+ output = this._longDateFormat[key.toUpperCase()].replace(/MMMM|MM|DD|dddd/g, function (val) {
+ return val.slice(1);
+ });
+ this._longDateFormat[key] = output;
+ }
+ return output;
+ },
+
+ isPM : function (input) {
+ // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
+ // Using charAt should be more compatible.
+ return ((input + '').toLowerCase().charAt(0) === 'p');
+ },
+
+ _meridiemParse : /[ap]\.?m?\.?/i,
+ meridiem : function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'pm' : 'PM';
+ } else {
+ return isLower ? 'am' : 'AM';
+ }
+ },
+
+ _calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ calendar : function (key, mom) {
+ var output = this._calendar[key];
+ return typeof output === 'function' ? output.apply(mom) : output;
+ },
+
+ _relativeTime : {
+ future : "in %s",
+ past : "%s ago",
+ s : "a few seconds",
+ m : "a minute",
+ mm : "%d minutes",
+ h : "an hour",
+ hh : "%d hours",
+ d : "a day",
+ dd : "%d days",
+ M : "a month",
+ MM : "%d months",
+ y : "a year",
+ yy : "%d years"
+ },
+ relativeTime : function (number, withoutSuffix, string, isFuture) {
+ var output = this._relativeTime[string];
+ return (typeof output === 'function') ?
+ output(number, withoutSuffix, string, isFuture) :
+ output.replace(/%d/i, number);
+ },
+ pastFuture : function (diff, output) {
+ var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
+ return typeof format === 'function' ? format(output) : format.replace(/%s/i, output);
+ },
+
+ ordinal : function (number) {
+ return this._ordinal.replace("%d", number);
+ },
+ _ordinal : "%d",
+
+ preparse : function (string) {
+ return string;
+ },
+
+ postformat : function (string) {
+ return string;
+ },
+
+ week : function (mom) {
+ return weekOfYear(mom, this._week.dow, this._week.doy).week;
+ },
+
+ _week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ },
+
+ _invalidDate: 'Invalid date',
+ invalidDate: function () {
+ return this._invalidDate;
+ }
+ });
+
+ // Loads a language definition into the `languages` cache. The function
+ // takes a key and optionally values. If not in the browser and no values
+ // are provided, it will load the language file module. As a convenience,
+ // this function also returns the language values.
+ function loadLang(key, values) {
+ values.abbr = key;
+ if (!languages[key]) {
+ languages[key] = new Language();
+ }
+ languages[key].set(values);
+ return languages[key];
+ }
+
+ // Remove a language from the `languages` cache. Mostly useful in tests.
+ function unloadLang(key) {
+ delete languages[key];
+ }
+
+ // Determines which language definition to use and returns it.
+ //
+ // With no parameters, it will return the global language. If you
+ // pass in a language key, such as 'en', it will return the
+ // definition for 'en', so long as 'en' has already been loaded using
+ // moment.lang.
+ function getLangDefinition(key) {
+ var i = 0, j, lang, next, split,
+ get = function (k) {
+ if (!languages[k] && hasModule) {
+ try {
+ require('./lang/' + k);
+ } catch (e) { }
+ }
+ return languages[k];
+ };
+
+ if (!key) {
+ return moment.fn._lang;
+ }
+
+ if (!isArray(key)) {
+ //short-circuit everything else
+ lang = get(key);
+ if (lang) {
+ return lang;
+ }
+ key = [key];
+ }
+
+ //pick the language from the array
+ //try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
+ //substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
+ while (i < key.length) {
+ split = normalizeLanguage(key[i]).split('-');
+ j = split.length;
+ next = normalizeLanguage(key[i + 1]);
+ next = next ? next.split('-') : null;
+ while (j > 0) {
+ lang = get(split.slice(0, j).join('-'));
+ if (lang) {
+ return lang;
+ }
+ if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {
+ //the next array item is better than a shallower substring of this one
+ break;
+ }
+ j--;
+ }
+ i++;
+ }
+ return moment.fn._lang;
+ }
+
+ /************************************
+ Formatting
+ ************************************/
+
+
+ function removeFormattingTokens(input) {
+ if (input.match(/\[[\s\S]/)) {
+ return input.replace(/^\[|\]$/g, "");
+ }
+ return input.replace(/\\/g, "");
+ }
+
+ function makeFormatFunction(format) {
+ var array = format.match(formattingTokens), i, length;
+
+ for (i = 0, length = array.length; i < length; i++) {
+ if (formatTokenFunctions[array[i]]) {
+ array[i] = formatTokenFunctions[array[i]];
+ } else {
+ array[i] = removeFormattingTokens(array[i]);
+ }
+ }
+
+ return function (mom) {
+ var output = "";
+ for (i = 0; i < length; i++) {
+ output += array[i] instanceof Function ? array[i].call(mom, format) : array[i];
+ }
+ return output;
+ };
+ }
+
+ // format date using native date object
+ function formatMoment(m, format) {
+
+ if (!m.isValid()) {
+ return m.lang().invalidDate();
+ }
+
+ format = expandFormat(format, m.lang());
+
+ if (!formatFunctions[format]) {
+ formatFunctions[format] = makeFormatFunction(format);
+ }
+
+ return formatFunctions[format](m);
+ }
+
+ function expandFormat(format, lang) {
+ var i = 5;
+
+ function replaceLongDateFormatTokens(input) {
+ return lang.longDateFormat(input) || input;
+ }
+
+ localFormattingTokens.lastIndex = 0;
+ while (i >= 0 && localFormattingTokens.test(format)) {
+ format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
+ localFormattingTokens.lastIndex = 0;
+ i -= 1;
+ }
+
+ return format;
+ }
+
+
+ /************************************
+ Parsing
+ ************************************/
+
+
+ // get the regex to find the next token
+ function getParseRegexForToken(token, config) {
+ var a;
+ switch (token) {
+ case 'DDDD':
+ return parseTokenThreeDigits;
+ case 'YYYY':
+ case 'GGGG':
+ case 'gggg':
+ return parseTokenFourDigits;
+ case 'YYYYY':
+ case 'GGGGG':
+ case 'ggggg':
+ return parseTokenSixDigits;
+ case 'S':
+ case 'SS':
+ case 'SSS':
+ case 'DDD':
+ return parseTokenOneToThreeDigits;
+ case 'MMM':
+ case 'MMMM':
+ case 'dd':
+ case 'ddd':
+ case 'dddd':
+ return parseTokenWord;
+ case 'a':
+ case 'A':
+ return getLangDefinition(config._l)._meridiemParse;
+ case 'X':
+ return parseTokenTimestampMs;
+ case 'Z':
+ case 'ZZ':
+ return parseTokenTimezone;
+ case 'T':
+ return parseTokenT;
+ case 'SSSS':
+ return parseTokenDigits;
+ case 'MM':
+ case 'DD':
+ case 'YY':
+ case 'GG':
+ case 'gg':
+ case 'HH':
+ case 'hh':
+ case 'mm':
+ case 'ss':
+ case 'M':
+ case 'D':
+ case 'd':
+ case 'H':
+ case 'h':
+ case 'm':
+ case 's':
+ case 'w':
+ case 'ww':
+ case 'W':
+ case 'WW':
+ case 'e':
+ case 'E':
+ return parseTokenOneOrTwoDigits;
+ default :
+ a = new RegExp(regexpEscape(unescapeFormat(token.replace('\\', '')), "i"));
+ return a;
+ }
+ }
+
+ function timezoneMinutesFromString(string) {
+ var tzchunk = (parseTokenTimezone.exec(string) || [])[0],
+ parts = (tzchunk + '').match(parseTimezoneChunker) || ['-', 0, 0],
+ minutes = +(parts[1] * 60) + toInt(parts[2]);
+
+ return parts[0] === '+' ? -minutes : minutes;
+ }
+
+ // function to convert string input to date
+ function addTimeToArrayFromToken(token, input, config) {
+ var a, datePartArray = config._a;
+
+ switch (token) {
+ // MONTH
+ case 'M' : // fall through to MM
+ case 'MM' :
+ if (input != null) {
+ datePartArray[MONTH] = toInt(input) - 1;
+ }
+ break;
+ case 'MMM' : // fall through to MMMM
+ case 'MMMM' :
+ a = getLangDefinition(config._l).monthsParse(input);
+ // if we didn't find a month name, mark the date as invalid.
+ if (a != null) {
+ datePartArray[MONTH] = a;
+ } else {
+ config._pf.invalidMonth = input;
+ }
+ break;
+ // DAY OF MONTH
+ case 'D' : // fall through to DD
+ case 'DD' :
+ if (input != null) {
+ datePartArray[DATE] = toInt(input);
+ }
+ break;
+ // DAY OF YEAR
+ case 'DDD' : // fall through to DDDD
+ case 'DDDD' :
+ if (input != null) {
+ config._dayOfYear = toInt(input);
+ }
+
+ break;
+ // YEAR
+ case 'YY' :
+ datePartArray[YEAR] = toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
+ break;
+ case 'YYYY' :
+ case 'YYYYY' :
+ datePartArray[YEAR] = toInt(input);
+ break;
+ // AM / PM
+ case 'a' : // fall through to A
+ case 'A' :
+ config._isPm = getLangDefinition(config._l).isPM(input);
+ break;
+ // 24 HOUR
+ case 'H' : // fall through to hh
+ case 'HH' : // fall through to hh
+ case 'h' : // fall through to hh
+ case 'hh' :
+ datePartArray[HOUR] = toInt(input);
+ break;
+ // MINUTE
+ case 'm' : // fall through to mm
+ case 'mm' :
+ datePartArray[MINUTE] = toInt(input);
+ break;
+ // SECOND
+ case 's' : // fall through to ss
+ case 'ss' :
+ datePartArray[SECOND] = toInt(input);
+ break;
+ // MILLISECOND
+ case 'S' :
+ case 'SS' :
+ case 'SSS' :
+ case 'SSSS' :
+ datePartArray[MILLISECOND] = toInt(('0.' + input) * 1000);
+ break;
+ // UNIX TIMESTAMP WITH MS
+ case 'X':
+ config._d = new Date(parseFloat(input) * 1000);
+ break;
+ // TIMEZONE
+ case 'Z' : // fall through to ZZ
+ case 'ZZ' :
+ config._useUTC = true;
+ config._tzm = timezoneMinutesFromString(input);
+ break;
+ case 'w':
+ case 'ww':
+ case 'W':
+ case 'WW':
+ case 'd':
+ case 'dd':
+ case 'ddd':
+ case 'dddd':
+ case 'e':
+ case 'E':
+ token = token.substr(0, 1);
+ /* falls through */
+ case 'gg':
+ case 'gggg':
+ case 'GG':
+ case 'GGGG':
+ case 'GGGGG':
+ token = token.substr(0, 2);
+ if (input) {
+ config._w = config._w || {};
+ config._w[token] = input;
+ }
+ break;
+ }
+ }
+
+ // convert an array to a date.
+ // the array should mirror the parameters below
+ // note: all values past the year are optional and will default to the lowest possible value.
+ // [year, month, day , hour, minute, second, millisecond]
+ function dateFromConfig(config) {
+ var i, date, input = [], currentDate,
+ yearToUse, fixYear, w, temp, lang, weekday, week;
+
+ if (config._d) {
+ return;
+ }
+
+ currentDate = currentDateArray(config);
+
+ //compute day of the year from weeks and weekdays
+ if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
+ fixYear = function (val) {
+ return val ?
+ (val.length < 3 ? (parseInt(val, 10) > 68 ? '19' + val : '20' + val) : val) :
+ (config._a[YEAR] == null ? moment().weekYear() : config._a[YEAR]);
+ };
+
+ w = config._w;
+ if (w.GG != null || w.W != null || w.E != null) {
+ temp = dayOfYearFromWeeks(fixYear(w.GG), w.W || 1, w.E, 4, 1);
+ }
+ else {
+ lang = getLangDefinition(config._l);
+ weekday = w.d != null ? parseWeekday(w.d, lang) :
+ (w.e != null ? parseInt(w.e, 10) + lang._week.dow : 0);
+
+ week = parseInt(w.w, 10) || 1;
+
+ //if we're parsing 'd', then the low day numbers may be next week
+ if (w.d != null && weekday < lang._week.dow) {
+ week++;
+ }
+
+ temp = dayOfYearFromWeeks(fixYear(w.gg), week, weekday, lang._week.doy, lang._week.dow);
+ }
+
+ config._a[YEAR] = temp.year;
+ config._dayOfYear = temp.dayOfYear;
+ }
+
+ //if the day of the year is set, figure out what it is
+ if (config._dayOfYear) {
+ yearToUse = config._a[YEAR] == null ? currentDate[YEAR] : config._a[YEAR];
+
+ if (config._dayOfYear > daysInYear(yearToUse)) {
+ config._pf._overflowDayOfYear = true;
+ }
+
+ date = makeUTCDate(yearToUse, 0, config._dayOfYear);
+ config._a[MONTH] = date.getUTCMonth();
+ config._a[DATE] = date.getUTCDate();
+ }
+
+ // Default to current date.
+ // * if no year, month, day of month are given, default to today
+ // * if day of month is given, default month and year
+ // * if month is given, default only year
+ // * if year is given, don't default anything
+ for (i = 0; i < 3 && config._a[i] == null; ++i) {
+ config._a[i] = input[i] = currentDate[i];
+ }
+
+ // Zero out whatever was not defaulted, including time
+ for (; i < 7; i++) {
+ config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
+ }
+
+ // add the offsets to the time to be parsed so that we can have a clean array for checking isValid
+ input[HOUR] += toInt((config._tzm || 0) / 60);
+ input[MINUTE] += toInt((config._tzm || 0) % 60);
+
+ config._d = (config._useUTC ? makeUTCDate : makeDate).apply(null, input);
+ }
+
+ function dateFromObject(config) {
+ var normalizedInput;
+
+ if (config._d) {
+ return;
+ }
+
+ normalizedInput = normalizeObjectUnits(config._i);
+ config._a = [
+ normalizedInput.year,
+ normalizedInput.month,
+ normalizedInput.day,
+ normalizedInput.hour,
+ normalizedInput.minute,
+ normalizedInput.second,
+ normalizedInput.millisecond
+ ];
+
+ dateFromConfig(config);
+ }
+
+ function currentDateArray(config) {
+ var now = new Date();
+ if (config._useUTC) {
+ return [
+ now.getUTCFullYear(),
+ now.getUTCMonth(),
+ now.getUTCDate()
+ ];
+ } else {
+ return [now.getFullYear(), now.getMonth(), now.getDate()];
+ }
+ }
+
+ // date from string and format string
+ function makeDateFromStringAndFormat(config) {
+
+ config._a = [];
+ config._pf.empty = true;
+
+ // This array is used to make a Date, either with `new Date` or `Date.UTC`
+ var lang = getLangDefinition(config._l),
+ string = '' + config._i,
+ i, parsedInput, tokens, token, skipped,
+ stringLength = string.length,
+ totalParsedInputLength = 0;
+
+ tokens = expandFormat(config._f, lang).match(formattingTokens) || [];
+
+ for (i = 0; i < tokens.length; i++) {
+ token = tokens[i];
+ parsedInput = (getParseRegexForToken(token, config).exec(string) || [])[0];
+ if (parsedInput) {
+ skipped = string.substr(0, string.indexOf(parsedInput));
+ if (skipped.length > 0) {
+ config._pf.unusedInput.push(skipped);
+ }
+ string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
+ totalParsedInputLength += parsedInput.length;
+ }
+ // don't parse if it's not a known token
+ if (formatTokenFunctions[token]) {
+ if (parsedInput) {
+ config._pf.empty = false;
+ }
+ else {
+ config._pf.unusedTokens.push(token);
+ }
+ addTimeToArrayFromToken(token, parsedInput, config);
+ }
+ else if (config._strict && !parsedInput) {
+ config._pf.unusedTokens.push(token);
+ }
+ }
+
+ // add remaining unparsed input length to the string
+ config._pf.charsLeftOver = stringLength - totalParsedInputLength;
+ if (string.length > 0) {
+ config._pf.unusedInput.push(string);
+ }
+
+ // handle am pm
+ if (config._isPm && config._a[HOUR] < 12) {
+ config._a[HOUR] += 12;
+ }
+ // if is 12 am, change hours to 0
+ if (config._isPm === false && config._a[HOUR] === 12) {
+ config._a[HOUR] = 0;
+ }
+
+ dateFromConfig(config);
+ checkOverflow(config);
+ }
+
+ function unescapeFormat(s) {
+ return s.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
+ return p1 || p2 || p3 || p4;
+ });
+ }
+
+ // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
+ function regexpEscape(s) {
+ return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
+ }
+
+ // date from string and array of format strings
+ function makeDateFromStringAndArray(config) {
+ var tempConfig,
+ bestMoment,
+
+ scoreToBeat,
+ i,
+ currentScore;
+
+ if (config._f.length === 0) {
+ config._pf.invalidFormat = true;
+ config._d = new Date(NaN);
+ return;
+ }
+
+ for (i = 0; i < config._f.length; i++) {
+ currentScore = 0;
+ tempConfig = extend({}, config);
+ initializeParsingFlags(tempConfig);
+ tempConfig._f = config._f[i];
+ makeDateFromStringAndFormat(tempConfig);
+
+ if (!isValid(tempConfig)) {
+ continue;
+ }
+
+ // if there is any input that was not parsed add a penalty for that format
+ currentScore += tempConfig._pf.charsLeftOver;
+
+ //or tokens
+ currentScore += tempConfig._pf.unusedTokens.length * 10;
+
+ tempConfig._pf.score = currentScore;
+
+ if (scoreToBeat == null || currentScore < scoreToBeat) {
+ scoreToBeat = currentScore;
+ bestMoment = tempConfig;
+ }
+ }
+
+ extend(config, bestMoment || tempConfig);
+ }
+
+ // date from iso format
+ function makeDateFromString(config) {
+ var i,
+ string = config._i,
+ match = isoRegex.exec(string);
+
+ if (match) {
+ config._pf.iso = true;
+ for (i = 4; i > 0; i--) {
+ if (match[i]) {
+ // match[5] should be "T" or undefined
+ config._f = isoDates[i - 1] + (match[6] || " ");
+ break;
+ }
+ }
+ for (i = 0; i < 4; i++) {
+ if (isoTimes[i][1].exec(string)) {
+ config._f += isoTimes[i][0];
+ break;
+ }
+ }
+ if (parseTokenTimezone.exec(string)) {
+ config._f += "Z";
+ }
+ makeDateFromStringAndFormat(config);
+ }
+ else {
+ config._d = new Date(string);
+ }
+ }
+
+ function makeDateFromInput(config) {
+ var input = config._i,
+ matched = aspNetJsonRegex.exec(input);
+
+ if (input === undefined) {
+ config._d = new Date();
+ } else if (matched) {
+ config._d = new Date(+matched[1]);
+ } else if (typeof input === 'string') {
+ makeDateFromString(config);
+ } else if (isArray(input)) {
+ config._a = input.slice(0);
+ dateFromConfig(config);
+ } else if (isDate(input)) {
+ config._d = new Date(+input);
+ } else if (typeof(input) === 'object') {
+ dateFromObject(config);
+ } else {
+ config._d = new Date(input);
+ }
+ }
+
+ function makeDate(y, m, d, h, M, s, ms) {
+ //can't just apply() to create a date:
+ //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply
+ var date = new Date(y, m, d, h, M, s, ms);
+
+ //the date constructor doesn't accept years < 1970
+ if (y < 1970) {
+ date.setFullYear(y);
+ }
+ return date;
+ }
+
+ function makeUTCDate(y) {
+ var date = new Date(Date.UTC.apply(null, arguments));
+ if (y < 1970) {
+ date.setUTCFullYear(y);
+ }
+ return date;
+ }
+
+ function parseWeekday(input, language) {
+ if (typeof input === 'string') {
+ if (!isNaN(input)) {
+ input = parseInt(input, 10);
+ }
+ else {
+ input = language.weekdaysParse(input);
+ if (typeof input !== 'number') {
+ return null;
+ }
+ }
+ }
+ return input;
+ }
+
+ /************************************
+ Relative Time
+ ************************************/
+
+
+ // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
+ function substituteTimeAgo(string, number, withoutSuffix, isFuture, lang) {
+ return lang.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
+ }
+
+ function relativeTime(milliseconds, withoutSuffix, lang) {
+ var seconds = round(Math.abs(milliseconds) / 1000),
+ minutes = round(seconds / 60),
+ hours = round(minutes / 60),
+ days = round(hours / 24),
+ years = round(days / 365),
+ args = seconds < 45 && ['s', seconds] ||
+ minutes === 1 && ['m'] ||
+ minutes < 45 && ['mm', minutes] ||
+ hours === 1 && ['h'] ||
+ hours < 22 && ['hh', hours] ||
+ days === 1 && ['d'] ||
+ days <= 25 && ['dd', days] ||
+ days <= 45 && ['M'] ||
+ days < 345 && ['MM', round(days / 30)] ||
+ years === 1 && ['y'] || ['yy', years];
+ args[2] = withoutSuffix;
+ args[3] = milliseconds > 0;
+ args[4] = lang;
+ return substituteTimeAgo.apply({}, args);
+ }
+
+
+ /************************************
+ Week of Year
+ ************************************/
+
+
+ // firstDayOfWeek 0 = sun, 6 = sat
+ // the day of the week that starts the week
+ // (usually sunday or monday)
+ // firstDayOfWeekOfYear 0 = sun, 6 = sat
+ // the first week is the week that contains the first
+ // of this day of the week
+ // (eg. ISO weeks use thursday (4))
+ function weekOfYear(mom, firstDayOfWeek, firstDayOfWeekOfYear) {
+ var end = firstDayOfWeekOfYear - firstDayOfWeek,
+ daysToDayOfWeek = firstDayOfWeekOfYear - mom.day(),
+ adjustedMoment;
+
+
+ if (daysToDayOfWeek > end) {
+ daysToDayOfWeek -= 7;
+ }
+
+ if (daysToDayOfWeek < end - 7) {
+ daysToDayOfWeek += 7;
+ }
+
+ adjustedMoment = moment(mom).add('d', daysToDayOfWeek);
+ return {
+ week: Math.ceil(adjustedMoment.dayOfYear() / 7),
+ year: adjustedMoment.year()
+ };
+ }
+
+ //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
+ function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) {
+ var d = new Date(Date.UTC(year, 0)).getUTCDay(),
+ daysToAdd, dayOfYear;
+
+ weekday = weekday != null ? weekday : firstDayOfWeek;
+ daysToAdd = firstDayOfWeek - d + (d > firstDayOfWeekOfYear ? 7 : 0);
+ dayOfYear = 7 * (week - 1) + (weekday - firstDayOfWeek) + daysToAdd + 1;
+
+ return {
+ year: dayOfYear > 0 ? year : year - 1,
+ dayOfYear: dayOfYear > 0 ? dayOfYear : daysInYear(year - 1) + dayOfYear
+ };
+ }
+
+ /************************************
+ Top Level Functions
+ ************************************/
+
+ function makeMoment(config) {
+ var input = config._i,
+ format = config._f;
+
+ if (typeof config._pf === 'undefined') {
+ initializeParsingFlags(config);
+ }
+
+ if (input === null) {
+ return moment.invalid({nullInput: true});
+ }
+
+ if (typeof input === 'string') {
+ config._i = input = getLangDefinition().preparse(input);
+ }
+
+ if (moment.isMoment(input)) {
+ config = extend({}, input);
+
+ config._d = new Date(+input._d);
+ } else if (format) {
+ if (isArray(format)) {
+ makeDateFromStringAndArray(config);
+ } else {
+ makeDateFromStringAndFormat(config);
+ }
+ } else {
+ makeDateFromInput(config);
+ }
+
+ return new Moment(config);
+ }
+
+ moment = function (input, format, lang, strict) {
+ if (typeof(lang) === "boolean") {
+ strict = lang;
+ lang = undefined;
+ }
+ return makeMoment({
+ _i : input,
+ _f : format,
+ _l : lang,
+ _strict : strict,
+ _isUTC : false
+ });
+ };
+
+ // creating with utc
+ moment.utc = function (input, format, lang, strict) {
+ var m;
+
+ if (typeof(lang) === "boolean") {
+ strict = lang;
+ lang = undefined;
+ }
+ m = makeMoment({
+ _useUTC : true,
+ _isUTC : true,
+ _l : lang,
+ _i : input,
+ _f : format,
+ _strict : strict
+ }).utc();
+
+ return m;
+ };
+
+ // creating with unix timestamp (in seconds)
+ moment.unix = function (input) {
+ return moment(input * 1000);
+ };
+
+ // duration
+ moment.duration = function (input, key) {
+ var isDuration = moment.isDuration(input),
+ isNumber = (typeof input === 'number'),
+ duration = (isDuration ? input._input : (isNumber ? {} : input)),
+ // matching against regexp is expensive, do it on demand
+ match = null,
+ sign,
+ ret,
+ parseIso,
+ timeEmpty,
+ dateTimeEmpty;
+
+ if (isNumber) {
+ if (key) {
+ duration[key] = input;
+ } else {
+ duration.milliseconds = input;
+ }
+ } else if (!!(match = aspNetTimeSpanJsonRegex.exec(input))) {
+ sign = (match[1] === "-") ? -1 : 1;
+ duration = {
+ y: 0,
+ d: toInt(match[DATE]) * sign,
+ h: toInt(match[HOUR]) * sign,
+ m: toInt(match[MINUTE]) * sign,
+ s: toInt(match[SECOND]) * sign,
+ ms: toInt(match[MILLISECOND]) * sign
+ };
+ } else if (!!(match = isoDurationRegex.exec(input))) {
+ sign = (match[1] === "-") ? -1 : 1;
+ parseIso = function (inp) {
+ // We'd normally use ~~inp for this, but unfortunately it also
+ // converts floats to ints.
+ // inp may be undefined, so careful calling replace on it.
+ var res = inp && parseFloat(inp.replace(',', '.'));
+ // apply sign while we're at it
+ return (isNaN(res) ? 0 : res) * sign;
+ };
+ duration = {
+ y: parseIso(match[2]),
+ M: parseIso(match[3]),
+ d: parseIso(match[4]),
+ h: parseIso(match[5]),
+ m: parseIso(match[6]),
+ s: parseIso(match[7]),
+ w: parseIso(match[8])
+ };
+ }
+
+ ret = new Duration(duration);
+
+ if (isDuration && input.hasOwnProperty('_lang')) {
+ ret._lang = input._lang;
+ }
+
+ return ret;
+ };
+
+ // version number
+ moment.version = VERSION;
+
+ // default format
+ moment.defaultFormat = isoFormat;
+
+ // This function will be called whenever a moment is mutated.
+ // It is intended to keep the offset in sync with the timezone.
+ moment.updateOffset = function () {};
+
+ // This function will load languages and then set the global language. If
+ // no arguments are passed in, it will simply return the current global
+ // language key.
+ moment.lang = function (key, values) {
+ var r;
+ if (!key) {
+ return moment.fn._lang._abbr;
+ }
+ if (values) {
+ loadLang(normalizeLanguage(key), values);
+ } else if (values === null) {
+ unloadLang(key);
+ key = 'en';
+ } else if (!languages[key]) {
+ getLangDefinition(key);
+ }
+ r = moment.duration.fn._lang = moment.fn._lang = getLangDefinition(key);
+ return r._abbr;
+ };
+
+ // returns language data
+ moment.langData = function (key) {
+ if (key && key._lang && key._lang._abbr) {
+ key = key._lang._abbr;
+ }
+ return getLangDefinition(key);
+ };
+
+ // compare moment object
+ moment.isMoment = function (obj) {
+ return obj instanceof Moment;
+ };
+
+ // for typechecking Duration objects
+ moment.isDuration = function (obj) {
+ return obj instanceof Duration;
+ };
+
+ for (i = lists.length - 1; i >= 0; --i) {
+ makeList(lists[i]);
+ }
+
+ moment.normalizeUnits = function (units) {
+ return normalizeUnits(units);
+ };
+
+ moment.invalid = function (flags) {
+ var m = moment.utc(NaN);
+ if (flags != null) {
+ extend(m._pf, flags);
+ }
+ else {
+ m._pf.userInvalidated = true;
+ }
+
+ return m;
+ };
+
+ moment.parseZone = function (input) {
+ return moment(input).parseZone();
+ };
+
+ /************************************
+ Moment Prototype
+ ************************************/
+
+
+ extend(moment.fn = Moment.prototype, {
+
+ clone : function () {
+ return moment(this);
+ },
+
+ valueOf : function () {
+ return +this._d + ((this._offset || 0) * 60000);
+ },
+
+ unix : function () {
+ return Math.floor(+this / 1000);
+ },
+
+ toString : function () {
+ return this.clone().lang('en').format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ");
+ },
+
+ toDate : function () {
+ return this._offset ? new Date(+this) : this._d;
+ },
+
+ toISOString : function () {
+ return formatMoment(moment(this).utc(), 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
+ },
+
+ toArray : function () {
+ var m = this;
+ return [
+ m.year(),
+ m.month(),
+ m.date(),
+ m.hours(),
+ m.minutes(),
+ m.seconds(),
+ m.milliseconds()
+ ];
+ },
+
+ isValid : function () {
+ return isValid(this);
+ },
+
+ isDSTShifted : function () {
+
+ if (this._a) {
+ return this.isValid() && compareArrays(this._a, (this._isUTC ? moment.utc(this._a) : moment(this._a)).toArray()) > 0;
+ }
+
+ return false;
+ },
+
+ parsingFlags : function () {
+ return extend({}, this._pf);
+ },
+
+ invalidAt: function () {
+ return this._pf.overflow;
+ },
+
+ utc : function () {
+ return this.zone(0);
+ },
+
+ local : function () {
+ this.zone(0);
+ this._isUTC = false;
+ return this;
+ },
+
+ format : function (inputString) {
+ var output = formatMoment(this, inputString || moment.defaultFormat);
+ return this.lang().postformat(output);
+ },
+
+ add : function (input, val) {
+ var dur;
+ // switch args to support add('s', 1) and add(1, 's')
+ if (typeof input === 'string') {
+ dur = moment.duration(+val, input);
+ } else {
+ dur = moment.duration(input, val);
+ }
+ addOrSubtractDurationFromMoment(this, dur, 1);
+ return this;
+ },
+
+ subtract : function (input, val) {
+ var dur;
+ // switch args to support subtract('s', 1) and subtract(1, 's')
+ if (typeof input === 'string') {
+ dur = moment.duration(+val, input);
+ } else {
+ dur = moment.duration(input, val);
+ }
+ addOrSubtractDurationFromMoment(this, dur, -1);
+ return this;
+ },
+
+ diff : function (input, units, asFloat) {
+ var that = this._isUTC ? moment(input).zone(this._offset || 0) : moment(input).local(),
+ zoneDiff = (this.zone() - that.zone()) * 6e4,
+ diff, output;
+
+ units = normalizeUnits(units);
+
+ if (units === 'year' || units === 'month') {
+ // average number of days in the months in the given dates
+ diff = (this.daysInMonth() + that.daysInMonth()) * 432e5; // 24 * 60 * 60 * 1000 / 2
+ // difference in months
+ output = ((this.year() - that.year()) * 12) + (this.month() - that.month());
+ // adjust by taking difference in days, average number of days
+ // and dst in the given months.
+ output += ((this - moment(this).startOf('month')) -
+ (that - moment(that).startOf('month'))) / diff;
+ // same as above but with zones, to negate all dst
+ output -= ((this.zone() - moment(this).startOf('month').zone()) -
+ (that.zone() - moment(that).startOf('month').zone())) * 6e4 / diff;
+ if (units === 'year') {
+ output = output / 12;
+ }
+ } else {
+ diff = (this - that);
+ output = units === 'second' ? diff / 1e3 : // 1000
+ units === 'minute' ? diff / 6e4 : // 1000 * 60
+ units === 'hour' ? diff / 36e5 : // 1000 * 60 * 60
+ units === 'day' ? (diff - zoneDiff) / 864e5 : // 1000 * 60 * 60 * 24, negate dst
+ units === 'week' ? (diff - zoneDiff) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst
+ diff;
+ }
+ return asFloat ? output : absRound(output);
+ },
+
+ from : function (time, withoutSuffix) {
+ return moment.duration(this.diff(time)).lang(this.lang()._abbr).humanize(!withoutSuffix);
+ },
+
+ fromNow : function (withoutSuffix) {
+ return this.from(moment(), withoutSuffix);
+ },
+
+ calendar : function () {
+ var diff = this.diff(moment().zone(this.zone()).startOf('day'), 'days', true),
+ format = diff < -6 ? 'sameElse' :
+ diff < -1 ? 'lastWeek' :
+ diff < 0 ? 'lastDay' :
+ diff < 1 ? 'sameDay' :
+ diff < 2 ? 'nextDay' :
+ diff < 7 ? 'nextWeek' : 'sameElse';
+ return this.format(this.lang().calendar(format, this));
+ },
+
+ isLeapYear : function () {
+ return isLeapYear(this.year());
+ },
+
+ isDST : function () {
+ return (this.zone() < this.clone().month(0).zone() ||
+ this.zone() < this.clone().month(5).zone());
+ },
+
+ day : function (input) {
+ var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
+ if (input != null) {
+ input = parseWeekday(input, this.lang());
+ return this.add({ d : input - day });
+ } else {
+ return day;
+ }
+ },
+
+ month : function (input) {
+ var utc = this._isUTC ? 'UTC' : '',
+ dayOfMonth;
+
+ if (input != null) {
+ if (typeof input === 'string') {
+ input = this.lang().monthsParse(input);
+ if (typeof input !== 'number') {
+ return this;
+ }
+ }
+
+ dayOfMonth = this.date();
+ this.date(1);
+ this._d['set' + utc + 'Month'](input);
+ this.date(Math.min(dayOfMonth, this.daysInMonth()));
+
+ moment.updateOffset(this);
+ return this;
+ } else {
+ return this._d['get' + utc + 'Month']();
+ }
+ },
+
+ startOf: function (units) {
+ units = normalizeUnits(units);
+ // the following switch intentionally omits break keywords
+ // to utilize falling through the cases.
+ switch (units) {
+ case 'year':
+ this.month(0);
+ /* falls through */
+ case 'month':
+ this.date(1);
+ /* falls through */
+ case 'week':
+ case 'isoWeek':
+ case 'day':
+ this.hours(0);
+ /* falls through */
+ case 'hour':
+ this.minutes(0);
+ /* falls through */
+ case 'minute':
+ this.seconds(0);
+ /* falls through */
+ case 'second':
+ this.milliseconds(0);
+ /* falls through */
+ }
+
+ // weeks are a special case
+ if (units === 'week') {
+ this.weekday(0);
+ } else if (units === 'isoWeek') {
+ this.isoWeekday(1);
+ }
+
+ return this;
+ },
+
+ endOf: function (units) {
+ units = normalizeUnits(units);
+ return this.startOf(units).add((units === 'isoWeek' ? 'week' : units), 1).subtract('ms', 1);
+ },
+
+ isAfter: function (input, units) {
+ units = typeof units !== 'undefined' ? units : 'millisecond';
+ return +this.clone().startOf(units) > +moment(input).startOf(units);
+ },
+
+ isBefore: function (input, units) {
+ units = typeof units !== 'undefined' ? units : 'millisecond';
+ return +this.clone().startOf(units) < +moment(input).startOf(units);
+ },
+
+ isSame: function (input, units) {
+ units = typeof units !== 'undefined' ? units : 'millisecond';
+ return +this.clone().startOf(units) === +moment(input).startOf(units);
+ },
+
+ min: function (other) {
+ other = moment.apply(null, arguments);
+ return other < this ? this : other;
+ },
+
+ max: function (other) {
+ other = moment.apply(null, arguments);
+ return other > this ? this : other;
+ },
+
+ zone : function (input) {
+ var offset = this._offset || 0;
+ if (input != null) {
+ if (typeof input === "string") {
+ input = timezoneMinutesFromString(input);
+ }
+ if (Math.abs(input) < 16) {
+ input = input * 60;
+ }
+ this._offset = input;
+ this._isUTC = true;
+ if (offset !== input) {
+ addOrSubtractDurationFromMoment(this, moment.duration(offset - input, 'm'), 1, true);
+ }
+ } else {
+ return this._isUTC ? offset : this._d.getTimezoneOffset();
+ }
+ return this;
+ },
+
+ zoneAbbr : function () {
+ return this._isUTC ? "UTC" : "";
+ },
+
+ zoneName : function () {
+ return this._isUTC ? "Coordinated Universal Time" : "";
+ },
+
+ parseZone : function () {
+ if (typeof this._i === 'string') {
+ this.zone(this._i);
+ }
+ return this;
+ },
+
+ hasAlignedHourOffset : function (input) {
+ if (!input) {
+ input = 0;
+ }
+ else {
+ input = moment(input).zone();
+ }
+
+ return (this.zone() - input) % 60 === 0;
+ },
+
+ daysInMonth : function () {
+ return daysInMonth(this.year(), this.month());
+ },
+
+ dayOfYear : function (input) {
+ var dayOfYear = round((moment(this).startOf('day') - moment(this).startOf('year')) / 864e5) + 1;
+ return input == null ? dayOfYear : this.add("d", (input - dayOfYear));
+ },
+
+ weekYear : function (input) {
+ var year = weekOfYear(this, this.lang()._week.dow, this.lang()._week.doy).year;
+ return input == null ? year : this.add("y", (input - year));
+ },
+
+ isoWeekYear : function (input) {
+ var year = weekOfYear(this, 1, 4).year;
+ return input == null ? year : this.add("y", (input - year));
+ },
+
+ week : function (input) {
+ var week = this.lang().week(this);
+ return input == null ? week : this.add("d", (input - week) * 7);
+ },
+
+ isoWeek : function (input) {
+ var week = weekOfYear(this, 1, 4).week;
+ return input == null ? week : this.add("d", (input - week) * 7);
+ },
+
+ weekday : function (input) {
+ var weekday = (this.day() + 7 - this.lang()._week.dow) % 7;
+ return input == null ? weekday : this.add("d", input - weekday);
+ },
+
+ isoWeekday : function (input) {
+ // behaves the same as moment#day except
+ // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
+ // as a setter, sunday should belong to the previous week.
+ return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7);
+ },
+
+ get : function (units) {
+ units = normalizeUnits(units);
+ return this[units]();
+ },
+
+ set : function (units, value) {
+ units = normalizeUnits(units);
+ if (typeof this[units] === 'function') {
+ this[units](value);
+ }
+ return this;
+ },
+
+ // If passed a language key, it will set the language for this
+ // instance. Otherwise, it will return the language configuration
+ // variables for this instance.
+ lang : function (key) {
+ if (key === undefined) {
+ return this._lang;
+ } else {
+ this._lang = getLangDefinition(key);
+ return this;
+ }
+ }
+ });
+
+ // helper for adding shortcuts
+ function makeGetterAndSetter(name, key) {
+ moment.fn[name] = moment.fn[name + 's'] = function (input) {
+ var utc = this._isUTC ? 'UTC' : '';
+ if (input != null) {
+ this._d['set' + utc + key](input);
+ moment.updateOffset(this);
+ return this;
+ } else {
+ return this._d['get' + utc + key]();
+ }
+ };
+ }
+
+ // loop through and add shortcuts (Month, Date, Hours, Minutes, Seconds, Milliseconds)
+ for (i = 0; i < proxyGettersAndSetters.length; i ++) {
+ makeGetterAndSetter(proxyGettersAndSetters[i].toLowerCase().replace(/s$/, ''), proxyGettersAndSetters[i]);
+ }
+
+ // add shortcut for year (uses different syntax than the getter/setter 'year' == 'FullYear')
+ makeGetterAndSetter('year', 'FullYear');
+
+ // add plural methods
+ moment.fn.days = moment.fn.day;
+ moment.fn.months = moment.fn.month;
+ moment.fn.weeks = moment.fn.week;
+ moment.fn.isoWeeks = moment.fn.isoWeek;
+
+ // add aliased format methods
+ moment.fn.toJSON = moment.fn.toISOString;
+
+ /************************************
+ Duration Prototype
+ ************************************/
+
+
+ extend(moment.duration.fn = Duration.prototype, {
+
+ _bubble : function () {
+ var milliseconds = this._milliseconds,
+ days = this._days,
+ months = this._months,
+ data = this._data,
+ seconds, minutes, hours, years;
+
+ // The following code bubbles up values, see the tests for
+ // examples of what that means.
+ data.milliseconds = milliseconds % 1000;
+
+ seconds = absRound(milliseconds / 1000);
+ data.seconds = seconds % 60;
+
+ minutes = absRound(seconds / 60);
+ data.minutes = minutes % 60;
+
+ hours = absRound(minutes / 60);
+ data.hours = hours % 24;
+
+ days += absRound(hours / 24);
+ data.days = days % 30;
+
+ months += absRound(days / 30);
+ data.months = months % 12;
+
+ years = absRound(months / 12);
+ data.years = years;
+ },
+
+ weeks : function () {
+ return absRound(this.days() / 7);
+ },
+
+ valueOf : function () {
+ return this._milliseconds +
+ this._days * 864e5 +
+ (this._months % 12) * 2592e6 +
+ toInt(this._months / 12) * 31536e6;
+ },
+
+ humanize : function (withSuffix) {
+ var difference = +this,
+ output = relativeTime(difference, !withSuffix, this.lang());
+
+ if (withSuffix) {
+ output = this.lang().pastFuture(difference, output);
+ }
+
+ return this.lang().postformat(output);
+ },
+
+ add : function (input, val) {
+ // supports only 2.0-style add(1, 's') or add(moment)
+ var dur = moment.duration(input, val);
+
+ this._milliseconds += dur._milliseconds;
+ this._days += dur._days;
+ this._months += dur._months;
+
+ this._bubble();
+
+ return this;
+ },
+
+ subtract : function (input, val) {
+ var dur = moment.duration(input, val);
+
+ this._milliseconds -= dur._milliseconds;
+ this._days -= dur._days;
+ this._months -= dur._months;
+
+ this._bubble();
+
+ return this;
+ },
+
+ get : function (units) {
+ units = normalizeUnits(units);
+ return this[units.toLowerCase() + 's']();
+ },
+
+ as : function (units) {
+ units = normalizeUnits(units);
+ return this['as' + units.charAt(0).toUpperCase() + units.slice(1) + 's']();
+ },
+
+ lang : moment.fn.lang,
+
+ toIsoString : function () {
+ // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
+ var years = Math.abs(this.years()),
+ months = Math.abs(this.months()),
+ days = Math.abs(this.days()),
+ hours = Math.abs(this.hours()),
+ minutes = Math.abs(this.minutes()),
+ seconds = Math.abs(this.seconds() + this.milliseconds() / 1000);
+
+ if (!this.asSeconds()) {
+ // this is the same as C#'s (Noda) and python (isodate)...
+ // but not other JS (goog.date)
+ return 'P0D';
+ }
+
+ return (this.asSeconds() < 0 ? '-' : '') +
+ 'P' +
+ (years ? years + 'Y' : '') +
+ (months ? months + 'M' : '') +
+ (days ? days + 'D' : '') +
+ ((hours || minutes || seconds) ? 'T' : '') +
+ (hours ? hours + 'H' : '') +
+ (minutes ? minutes + 'M' : '') +
+ (seconds ? seconds + 'S' : '');
+ }
+ });
+
+ function makeDurationGetter(name) {
+ moment.duration.fn[name] = function () {
+ return this._data[name];
+ };
+ }
+
+ function makeDurationAsGetter(name, factor) {
+ moment.duration.fn['as' + name] = function () {
+ return +this / factor;
+ };
+ }
+
+ for (i in unitMillisecondFactors) {
+ if (unitMillisecondFactors.hasOwnProperty(i)) {
+ makeDurationAsGetter(i, unitMillisecondFactors[i]);
+ makeDurationGetter(i.toLowerCase());
+ }
+ }
+
+ makeDurationAsGetter('Weeks', 6048e5);
+ moment.duration.fn.asMonths = function () {
+ return (+this - this.years() * 31536e6) / 2592e6 + this.years() * 12;
+ };
+
+
+ /************************************
+ Default Lang
+ ************************************/
+
+
+ // Set default language, other languages will inherit from English.
+ moment.lang('en', {
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (toInt(number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ }
+ });
+
+ // moment.js language configuration
+// language : Moroccan Arabic (ar-ma)
+// author : ElFadili Yassine : https://github.com/ElFadiliY
+// author : Abdel Said : https://github.com/abdelsaid
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('ar-ma', {
+ months : "يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),
+ monthsShort : "يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),
+ weekdays : "الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),
+ weekdaysShort : "احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),
+ weekdaysMin : "ح_ن_ث_ر_خ_ج_س".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd D MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay: "[اليوم على الساعة] LT",
+ nextDay: '[غدا على الساعة] LT',
+ nextWeek: 'dddd [على الساعة] LT',
+ lastDay: '[أمس على الساعة] LT',
+ lastWeek: 'dddd [على الساعة] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : "ÙÙŠ %s",
+ past : "منذ %s",
+ s : "ثوان",
+ m : "دقيقة",
+ mm : "%d دقائق",
+ h : "ساعة",
+ hh : "%d ساعات",
+ d : "يوم",
+ dd : "%d أيام",
+ M : "شهر",
+ MM : "%d أشهر",
+ y : "سنة",
+ yy : "%d سنوات"
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : Arabic (ar)
+// author : Abdel Said : https://github.com/abdelsaid
+// changes in months, weekdays : Ahmed Elkhatib
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('ar', {
+ months : "يناير/ كانون الثاني_Ùبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوÙمبر/ تشرين الثاني_ديسمبر/ كانون الأول".split("_"),
+ monthsShort : "يناير/ كانون الثاني_Ùبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوÙمبر/ تشرين الثاني_ديسمبر/ كانون الأول".split("_"),
+ weekdays : "الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),
+ weekdaysShort : "الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),
+ weekdaysMin : "ح_ن_ث_ر_خ_ج_س".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd D MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay: "[اليوم على الساعة] LT",
+ nextDay: '[غدا على الساعة] LT',
+ nextWeek: 'dddd [على الساعة] LT',
+ lastDay: '[أمس على الساعة] LT',
+ lastWeek: 'dddd [على الساعة] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : "ÙÙŠ %s",
+ past : "منذ %s",
+ s : "ثوان",
+ m : "دقيقة",
+ mm : "%d دقائق",
+ h : "ساعة",
+ hh : "%d ساعات",
+ d : "يوم",
+ dd : "%d أيام",
+ M : "شهر",
+ MM : "%d أشهر",
+ y : "سنة",
+ yy : "%d سنوات"
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : bulgarian (bg)
+// author : Krasen Borisov : https://github.com/kraz
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('bg', {
+ months : "Ñнуари_февруари_март_април_май_юни_юли_авгуÑÑ‚_Ñептември_октомври_ноември_декември".split("_"),
+ monthsShort : "Ñнр_фев_мар_апр_май_юни_юли_авг_Ñеп_окт_ное_дек".split("_"),
+ weekdays : "неделÑ_понеделник_вторник_ÑÑ€Ñда_четвъртък_петък_Ñъбота".split("_"),
+ weekdaysShort : "нед_пон_вто_ÑÑ€Ñ_чет_пет_Ñъб".split("_"),
+ weekdaysMin : "нд_пн_вт_ÑÑ€_чт_пт_Ñб".split("_"),
+ longDateFormat : {
+ LT : "H:mm",
+ L : "D.MM.YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd, D MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay : '[Ð”Ð½ÐµÑ Ð²] LT',
+ nextDay : '[Утре в] LT',
+ nextWeek : 'dddd [в] LT',
+ lastDay : '[Вчера в] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 6:
+ return '[В изминалата] dddd [в] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[Ð’ изминалиÑ] dddd [в] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "Ñлед %s",
+ past : "преди %s",
+ s : "нÑколко Ñекунди",
+ m : "минута",
+ mm : "%d минути",
+ h : "чаÑ",
+ hh : "%d чаÑа",
+ d : "ден",
+ dd : "%d дни",
+ M : "меÑец",
+ MM : "%d меÑеца",
+ y : "година",
+ yy : "%d години"
+ },
+ ordinal : function (number) {
+ var lastDigit = number % 10,
+ last2Digits = number % 100;
+ if (number === 0) {
+ return number + '-ев';
+ } else if (last2Digits === 0) {
+ return number + '-ен';
+ } else if (last2Digits > 10 && last2Digits < 20) {
+ return number + '-ти';
+ } else if (lastDigit === 1) {
+ return number + '-ви';
+ } else if (lastDigit === 2) {
+ return number + '-ри';
+ } else if (lastDigit === 7 || lastDigit === 8) {
+ return number + '-ми';
+ } else {
+ return number + '-ти';
+ }
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : breton (br)
+// author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function relativeTimeWithMutation(number, withoutSuffix, key) {
+ var format = {
+ 'mm': "munutenn",
+ 'MM': "miz",
+ 'dd': "devezh"
+ };
+ return number + ' ' + mutation(format[key], number);
+ }
+
+ function specialMutationForYears(number) {
+ switch (lastNumber(number)) {
+ case 1:
+ case 3:
+ case 4:
+ case 5:
+ case 9:
+ return number + ' bloaz';
+ default:
+ return number + ' vloaz';
+ }
+ }
+
+ function lastNumber(number) {
+ if (number > 9) {
+ return lastNumber(number % 10);
+ }
+ return number;
+ }
+
+ function mutation(text, number) {
+ if (number === 2) {
+ return softMutation(text);
+ }
+ return text;
+ }
+
+ function softMutation(text) {
+ var mutationTable = {
+ 'm': 'v',
+ 'b': 'v',
+ 'd': 'z'
+ };
+ if (mutationTable[text.charAt(0)] === undefined) {
+ return text;
+ }
+ return mutationTable[text.charAt(0)] + text.substring(1);
+ }
+
+ return moment.lang('br', {
+ months : "Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),
+ monthsShort : "Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),
+ weekdays : "Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),
+ weekdaysShort : "Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),
+ weekdaysMin : "Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),
+ longDateFormat : {
+ LT : "h[e]mm A",
+ L : "DD/MM/YYYY",
+ LL : "D [a viz] MMMM YYYY",
+ LLL : "D [a viz] MMMM YYYY LT",
+ LLLL : "dddd, D [a viz] MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay : '[Hiziv da] LT',
+ nextDay : '[Warc\'hoazh da] LT',
+ nextWeek : 'dddd [da] LT',
+ lastDay : '[Dec\'h da] LT',
+ lastWeek : 'dddd [paset da] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "a-benn %s",
+ past : "%s 'zo",
+ s : "un nebeud segondennoù",
+ m : "ur vunutenn",
+ mm : relativeTimeWithMutation,
+ h : "un eur",
+ hh : "%d eur",
+ d : "un devezh",
+ dd : relativeTimeWithMutation,
+ M : "ur miz",
+ MM : relativeTimeWithMutation,
+ y : "ur bloaz",
+ yy : specialMutationForYears
+ },
+ ordinal : function (number) {
+ var output = (number === 1) ? 'añ' : 'vet';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : bosnian (bs)
+// author : Nedim Cholich : https://github.com/frontyard
+// based on (hr) translation by Bojan Marković
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+
+ function translate(number, withoutSuffix, key) {
+ var result = number + " ";
+ switch (key) {
+ case 'm':
+ return withoutSuffix ? 'jedna minuta' : 'jedne minute';
+ case 'mm':
+ if (number === 1) {
+ result += 'minuta';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'minute';
+ } else {
+ result += 'minuta';
+ }
+ return result;
+ case 'h':
+ return withoutSuffix ? 'jedan sat' : 'jednog sata';
+ case 'hh':
+ if (number === 1) {
+ result += 'sat';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'sata';
+ } else {
+ result += 'sati';
+ }
+ return result;
+ case 'dd':
+ if (number === 1) {
+ result += 'dan';
+ } else {
+ result += 'dana';
+ }
+ return result;
+ case 'MM':
+ if (number === 1) {
+ result += 'mjesec';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'mjeseca';
+ } else {
+ result += 'mjeseci';
+ }
+ return result;
+ case 'yy':
+ if (number === 1) {
+ result += 'godina';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'godine';
+ } else {
+ result += 'godina';
+ }
+ return result;
+ }
+ }
+
+ return moment.lang('bs', {
+ months : "januar_februar_mart_april_maj_juni_juli_avgust_septembar_oktobar_novembar_decembar".split("_"),
+ monthsShort : "jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),
+ weekdays : "nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota".split("_"),
+ weekdaysShort : "ned._pon._uto._sri._Äet._pet._sub.".split("_"),
+ weekdaysMin : "ne_po_ut_sr_Äe_pe_su".split("_"),
+ longDateFormat : {
+ LT : "H:mm",
+ L : "DD. MM. YYYY",
+ LL : "D. MMMM YYYY",
+ LLL : "D. MMMM YYYY LT",
+ LLLL : "dddd, D. MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay : '[danas u] LT',
+ nextDay : '[sutra u] LT',
+
+ nextWeek : function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedjelju] [u] LT';
+ case 3:
+ return '[u] [srijedu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay : '[juÄer u] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ return '[prošlu] dddd [u] LT';
+ case 6:
+ return '[prošle] [subote] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[prošli] dddd [u] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "za %s",
+ past : "prije %s",
+ s : "par sekundi",
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : "dan",
+ dd : translate,
+ M : "mjesec",
+ MM : translate,
+ y : "godinu",
+ yy : translate
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : catalan (ca)
+// author : Juan G. Hurtado : https://github.com/juanghurtado
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('ca', {
+ months : "Gener_Febrer_Març_Abril_Maig_Juny_Juliol_Agost_Setembre_Octubre_Novembre_Desembre".split("_"),
+ monthsShort : "Gen._Febr._Mar._Abr._Mai._Jun._Jul._Ag._Set._Oct._Nov._Des.".split("_"),
+ weekdays : "Diumenge_Dilluns_Dimarts_Dimecres_Dijous_Divendres_Dissabte".split("_"),
+ weekdaysShort : "Dg._Dl._Dt._Dc._Dj._Dv._Ds.".split("_"),
+ weekdaysMin : "Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),
+ longDateFormat : {
+ LT : "H:mm",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd D MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay : function () {
+ return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ nextDay : function () {
+ return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ nextWeek : function () {
+ return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ lastDay : function () {
+ return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ lastWeek : function () {
+ return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "en %s",
+ past : "fa %s",
+ s : "uns segons",
+ m : "un minut",
+ mm : "%d minuts",
+ h : "una hora",
+ hh : "%d hores",
+ d : "un dia",
+ dd : "%d dies",
+ M : "un mes",
+ MM : "%d mesos",
+ y : "un any",
+ yy : "%d anys"
+ },
+ ordinal : '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : czech (cs)
+// author : petrbela : https://github.com/petrbela
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var months = "leden_únor_bÅ™ezen_duben_kvÄ›ten_Äerven_Äervenec_srpen_září_říjen_listopad_prosinec".split("_"),
+ monthsShort = "led_úno_bÅ™e_dub_kvÄ›_Ävn_Ävc_srp_zář_říj_lis_pro".split("_");
+
+ function plural(n) {
+ return (n > 1) && (n < 5) && (~~(n / 10) !== 1);
+ }
+
+ function translate(number, withoutSuffix, key, isFuture) {
+ var result = number + " ";
+ switch (key) {
+ case 's': // a few seconds / in a few seconds / a few seconds ago
+ return (withoutSuffix || isFuture) ? 'pár vteřin' : 'pár vteřinami';
+ case 'm': // a minute / in a minute / a minute ago
+ return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');
+ case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'minuty' : 'minut');
+ } else {
+ return result + 'minutami';
+ }
+ break;
+ case 'h': // an hour / in an hour / an hour ago
+ return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
+ case 'hh': // 9 hours / in 9 hours / 9 hours ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'hodiny' : 'hodin');
+ } else {
+ return result + 'hodinami';
+ }
+ break;
+ case 'd': // a day / in a day / a day ago
+ return (withoutSuffix || isFuture) ? 'den' : 'dnem';
+ case 'dd': // 9 days / in 9 days / 9 days ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'dny' : 'dní');
+ } else {
+ return result + 'dny';
+ }
+ break;
+ case 'M': // a month / in a month / a month ago
+ return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';
+ case 'MM': // 9 months / in 9 months / 9 months ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'měsíce' : 'měsíců');
+ } else {
+ return result + 'měsíci';
+ }
+ break;
+ case 'y': // a year / in a year / a year ago
+ return (withoutSuffix || isFuture) ? 'rok' : 'rokem';
+ case 'yy': // 9 years / in 9 years / 9 years ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'roky' : 'let');
+ } else {
+ return result + 'lety';
+ }
+ break;
+ }
+ }
+
+ return moment.lang('cs', {
+ months : months,
+ monthsShort : monthsShort,
+ monthsParse : (function (months, monthsShort) {
+ var i, _monthsParse = [];
+ for (i = 0; i < 12; i++) {
+ // use custom parser to solve problem with July (Äervenec)
+ _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');
+ }
+ return _monthsParse;
+ }(months, monthsShort)),
+ weekdays : "nedÄ›le_pondÄ›lí_úterý_stÅ™eda_Ätvrtek_pátek_sobota".split("_"),
+ weekdaysShort : "ne_po_út_st_Ät_pá_so".split("_"),
+ weekdaysMin : "ne_po_út_st_Ät_pá_so".split("_"),
+ longDateFormat : {
+ LT: "H:mm",
+ L : "DD.MM.YYYY",
+ LL : "D. MMMM YYYY",
+ LLL : "D. MMMM YYYY LT",
+ LLLL : "dddd D. MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay: "[dnes v] LT",
+ nextDay: '[zítra v] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[v neděli v] LT';
+ case 1:
+ case 2:
+ return '[v] dddd [v] LT';
+ case 3:
+ return '[ve středu v] LT';
+ case 4:
+ return '[ve Ätvrtek v] LT';
+ case 5:
+ return '[v pátek v] LT';
+ case 6:
+ return '[v sobotu v] LT';
+ }
+ },
+ lastDay: '[vÄera v] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[minulou neděli v] LT';
+ case 1:
+ case 2:
+ return '[minulé] dddd [v] LT';
+ case 3:
+ return '[minulou středu v] LT';
+ case 4:
+ case 5:
+ return '[minulý] dddd [v] LT';
+ case 6:
+ return '[minulou sobotu v] LT';
+ }
+ },
+ sameElse: "L"
+ },
+ relativeTime : {
+ future : "za %s",
+ past : "před %s",
+ s : translate,
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : translate,
+ dd : translate,
+ M : translate,
+ MM : translate,
+ y : translate,
+ yy : translate
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : chuvash (cv)
+// author : Anatoly Mironov : https://github.com/mirontoli
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('cv', {
+ months : "кăрлач_нарăÑ_пуш_ака_май_çĕртме_утă_çурла_авăн_юпа_чӳк_раштав".split("_"),
+ monthsShort : "кăр_нар_пуш_ака_май_çĕр_утă_çур_ав_юпа_чӳк_раш".split("_"),
+ weekdays : "вырÑарникун_тунтикун_ытларикун_юнкун_кĕçнерникун_Ñрнекун_шăматкун".split("_"),
+ weekdaysShort : "выр_тун_ытл_юн_кĕç_Ñрн_шăм".split("_"),
+ weekdaysMin : "вр_тн_Ñ‹Ñ‚_юн_кç_ÑÑ€_шм".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD-MM-YYYY",
+ LL : "YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ]",
+ LLL : "YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT",
+ LLLL : "dddd, YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT"
+ },
+ calendar : {
+ sameDay: '[ПаÑн] LT [Ñехетре]',
+ nextDay: '[Ыран] LT [Ñехетре]',
+ lastDay: '[Ĕнер] LT [Ñехетре]',
+ nextWeek: '[ÇитеÑ] dddd LT [Ñехетре]',
+ lastWeek: '[Иртнĕ] dddd LT [Ñехетре]',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : function (output) {
+ var affix = /Ñехет$/i.exec(output) ? "рен" : /çул$/i.exec(output) ? "тан" : "ран";
+ return output + affix;
+ },
+ past : "%s каÑлла",
+ s : "пĕр-ик çеккунт",
+ m : "пĕр минут",
+ mm : "%d минут",
+ h : "пĕр Ñехет",
+ hh : "%d Ñехет",
+ d : "пĕр кун",
+ dd : "%d кун",
+ M : "пĕр уйăх",
+ MM : "%d уйăх",
+ y : "пĕр çул",
+ yy : "%d çул"
+ },
+ ordinal : '%d-мĕш',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : Welsh (cy)
+// author : Robert Allen
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang("cy", {
+ months: "Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),
+ monthsShort: "Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),
+ weekdays: "Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),
+ weekdaysShort: "Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),
+ weekdaysMin: "Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),
+ // time formats are the same as en-gb
+ longDateFormat: {
+ LT: "HH:mm",
+ L: "DD/MM/YYYY",
+ LL: "D MMMM YYYY",
+ LLL: "D MMMM YYYY LT",
+ LLLL: "dddd, D MMMM YYYY LT"
+ },
+ calendar: {
+ sameDay: '[Heddiw am] LT',
+ nextDay: '[Yfory am] LT',
+ nextWeek: 'dddd [am] LT',
+ lastDay: '[Ddoe am] LT',
+ lastWeek: 'dddd [diwethaf am] LT',
+ sameElse: 'L'
+ },
+ relativeTime: {
+ future: "mewn %s",
+ past: "%s yn &#244;l",
+ s: "ychydig eiliadau",
+ m: "munud",
+ mm: "%d munud",
+ h: "awr",
+ hh: "%d awr",
+ d: "diwrnod",
+ dd: "%d diwrnod",
+ M: "mis",
+ MM: "%d mis",
+ y: "blwyddyn",
+ yy: "%d flynedd"
+ },
+ // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
+ ordinal: function (number) {
+ var b = number,
+ output = '',
+ lookup = [
+ '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed
+ 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed
+ ];
+
+ if (b > 20) {
+ if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
+ output = 'fed'; // not 30ain, 70ain or 90ain
+ } else {
+ output = 'ain';
+ }
+ } else if (b > 0) {
+ output = lookup[b];
+ }
+
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : danish (da)
+// author : Ulrik Nielsen : https://github.com/mrbase
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('da', {
+ months : "januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),
+ monthsShort : "jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),
+ weekdays : "søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),
+ weekdaysShort : "søn_man_tir_ons_tor_fre_lør".split("_"),
+ weekdaysMin : "sø_ma_ti_on_to_fr_lø".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd D. MMMM, YYYY LT"
+ },
+ calendar : {
+ sameDay : '[I dag kl.] LT',
+ nextDay : '[I morgen kl.] LT',
+ nextWeek : 'dddd [kl.] LT',
+ lastDay : '[I går kl.] LT',
+ lastWeek : '[sidste] dddd [kl] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "om %s",
+ past : "%s siden",
+ s : "få sekunder",
+ m : "et minut",
+ mm : "%d minutter",
+ h : "en time",
+ hh : "%d timer",
+ d : "en dag",
+ dd : "%d dage",
+ M : "en måned",
+ MM : "%d måneder",
+ y : "et år",
+ yy : "%d år"
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : german (de)
+// author : lluchs : https://github.com/lluchs
+// author: Menelion Elensúle: https://github.com/Oire
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ 'm': ['eine Minute', 'einer Minute'],
+ 'h': ['eine Stunde', 'einer Stunde'],
+ 'd': ['ein Tag', 'einem Tag'],
+ 'dd': [number + ' Tage', number + ' Tagen'],
+ 'M': ['ein Monat', 'einem Monat'],
+ 'MM': [number + ' Monate', number + ' Monaten'],
+ 'y': ['ein Jahr', 'einem Jahr'],
+ 'yy': [number + ' Jahre', number + ' Jahren']
+ };
+ return withoutSuffix ? format[key][0] : format[key][1];
+ }
+
+ return moment.lang('de', {
+ months : "Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),
+ monthsShort : "Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),
+ weekdays : "Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),
+ weekdaysShort : "So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),
+ weekdaysMin : "So_Mo_Di_Mi_Do_Fr_Sa".split("_"),
+ longDateFormat : {
+ LT: "H:mm [Uhr]",
+ L : "DD.MM.YYYY",
+ LL : "D. MMMM YYYY",
+ LLL : "D. MMMM YYYY LT",
+ LLLL : "dddd, D. MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay: "[Heute um] LT",
+ sameElse: "L",
+ nextDay: '[Morgen um] LT',
+ nextWeek: 'dddd [um] LT',
+ lastDay: '[Gestern um] LT',
+ lastWeek: '[letzten] dddd [um] LT'
+ },
+ relativeTime : {
+ future : "in %s",
+ past : "vor %s",
+ s : "ein paar Sekunden",
+ m : processRelativeTime,
+ mm : "%d Minuten",
+ h : processRelativeTime,
+ hh : "%d Stunden",
+ d : processRelativeTime,
+ dd : processRelativeTime,
+ M : processRelativeTime,
+ MM : processRelativeTime,
+ y : processRelativeTime,
+ yy : processRelativeTime
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : modern greek (el)
+// author : Aggelos Karalias : https://github.com/mehiel
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('el', {
+ monthsNominativeEl : "ΙανουάÏιος_ΦεβÏουάÏιος_ΜάÏτιος_ΑπÏίλιος_Μάιος_ΙοÏνιος_ΙοÏλιος_ΑÏγουστος_ΣεπτέμβÏιος_ΟκτώβÏιος_ÎοέμβÏιος_ΔεκέμβÏιος".split("_"),
+ monthsGenitiveEl : "ΙανουαÏίου_ΦεβÏουαÏίου_ΜαÏτίου_ΑπÏιλίου_ΜαÎου_Ιουνίου_Ιουλίου_ΑυγοÏστου_ΣεπτεμβÏίου_ΟκτωβÏίου_ÎοεμβÏίου_ΔεκεμβÏίου".split("_"),
+ months : function (momentToFormat, format) {
+ if (/D/.test(format.substring(0, format.indexOf("MMMM")))) { // if there is a day number before 'MMMM'
+ return this._monthsGenitiveEl[momentToFormat.month()];
+ } else {
+ return this._monthsNominativeEl[momentToFormat.month()];
+ }
+ },
+ monthsShort : "Ιαν_Φεβ_ΜαÏ_ΑπÏ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Îοε_Δεκ".split("_"),
+ weekdays : "ΚυÏιακή_ΔευτέÏα_ΤÏίτη_ΤετάÏτη_Πέμπτη_ΠαÏασκευή_Σάββατο".split("_"),
+ weekdaysShort : "ΚυÏ_Δευ_ΤÏι_Τετ_Πεμ_ΠαÏ_Σαβ".split("_"),
+ weekdaysMin : "Κυ_Δε_ΤÏ_Τε_Πε_Πα_Σα".split("_"),
+ meridiem : function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'μμ' : 'ΜΜ';
+ } else {
+ return isLower ? 'πμ' : 'ΠΜ';
+ }
+ },
+ longDateFormat : {
+ LT : "h:mm A",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd, D MMMM YYYY LT"
+ },
+ calendarEl : {
+ sameDay : '[ΣήμεÏα {}] LT',
+ nextDay : '[ΑÏÏιο {}] LT',
+ nextWeek : 'dddd [{}] LT',
+ lastDay : '[Χθες {}] LT',
+ lastWeek : '[την Ï€ÏοηγοÏμενη] dddd [{}] LT',
+ sameElse : 'L'
+ },
+ calendar : function (key, mom) {
+ var output = this._calendarEl[key],
+ hours = mom && mom.hours();
+
+ return output.replace("{}", (hours % 12 === 1 ? "στη" : "στις"));
+ },
+ relativeTime : {
+ future : "σε %s",
+ past : "%s Ï€Ïιν",
+ s : "δευτεÏόλεπτα",
+ m : "ένα λεπτό",
+ mm : "%d λεπτά",
+ h : "μία ÏŽÏα",
+ hh : "%d ÏŽÏες",
+ d : "μία μέÏα",
+ dd : "%d μέÏες",
+ M : "ένας μήνας",
+ MM : "%d μήνες",
+ y : "ένας χÏόνος",
+ yy : "%d χÏόνια"
+ },
+ ordinal : function (number) {
+ return number + 'η';
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : australian english (en-au)
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('en-au', {
+ months : "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
+ monthsShort : "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
+ weekdays : "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
+ weekdaysShort : "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
+ weekdaysMin : "Su_Mo_Tu_We_Th_Fr_Sa".split("_"),
+ longDateFormat : {
+ LT : "h:mm A",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd, D MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "in %s",
+ past : "%s ago",
+ s : "a few seconds",
+ m : "a minute",
+ mm : "%d minutes",
+ h : "an hour",
+ hh : "%d hours",
+ d : "a day",
+ dd : "%d days",
+ M : "a month",
+ MM : "%d months",
+ y : "a year",
+ yy : "%d years"
+ },
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~ (number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : canadian english (en-ca)
+// author : Jonathan Abourbih : https://github.com/jonbca
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('en-ca', {
+ months : "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
+ monthsShort : "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
+ weekdays : "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
+ weekdaysShort : "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
+ weekdaysMin : "Su_Mo_Tu_We_Th_Fr_Sa".split("_"),
+ longDateFormat : {
+ LT : "h:mm A",
+ L : "YYYY-MM-DD",
+ LL : "D MMMM, YYYY",
+ LLL : "D MMMM, YYYY LT",
+ LLLL : "dddd, D MMMM, YYYY LT"
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "in %s",
+ past : "%s ago",
+ s : "a few seconds",
+ m : "a minute",
+ mm : "%d minutes",
+ h : "an hour",
+ hh : "%d hours",
+ d : "a day",
+ dd : "%d days",
+ M : "a month",
+ MM : "%d months",
+ y : "a year",
+ yy : "%d years"
+ },
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~ (number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ }
+ });
+}));
+// moment.js language configuration
+// language : great britain english (en-gb)
+// author : Chris Gedrim : https://github.com/chrisgedrim
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('en-gb', {
+ months : "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
+ monthsShort : "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
+ weekdays : "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
+ weekdaysShort : "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
+ weekdaysMin : "Su_Mo_Tu_We_Th_Fr_Sa".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd, D MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay : '[Today at] LT',
+ nextDay : '[Tomorrow at] LT',
+ nextWeek : 'dddd [at] LT',
+ lastDay : '[Yesterday at] LT',
+ lastWeek : '[Last] dddd [at] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "in %s",
+ past : "%s ago",
+ s : "a few seconds",
+ m : "a minute",
+ mm : "%d minutes",
+ h : "an hour",
+ hh : "%d hours",
+ d : "a day",
+ dd : "%d days",
+ M : "a month",
+ MM : "%d months",
+ y : "a year",
+ yy : "%d years"
+ },
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~ (number % 100 / 10) === 1) ? 'th' :
+ (b === 1) ? 'st' :
+ (b === 2) ? 'nd' :
+ (b === 3) ? 'rd' : 'th';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : esperanto (eo)
+// author : Colin Dean : https://github.com/colindean
+// komento: Mi estas malcerta se mi korekte traktis akuzativojn en tiu traduko.
+// Se ne, bonvolu korekti kaj avizi min por ke mi povas lerni!
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('eo', {
+ months : "januaro_februaro_marto_aprilo_majo_junio_julio_aÅ­gusto_septembro_oktobro_novembro_decembro".split("_"),
+ monthsShort : "jan_feb_mar_apr_maj_jun_jul_aÅ­g_sep_okt_nov_dec".split("_"),
+ weekdays : "Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato".split("_"),
+ weekdaysShort : "Dim_Lun_Mard_Merk_Ä´aÅ­_Ven_Sab".split("_"),
+ weekdaysMin : "Di_Lu_Ma_Me_Ä´a_Ve_Sa".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "YYYY-MM-DD",
+ LL : "D[-an de] MMMM, YYYY",
+ LLL : "D[-an de] MMMM, YYYY LT",
+ LLLL : "dddd, [la] D[-an de] MMMM, YYYY LT"
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'p.t.m.' : 'P.T.M.';
+ } else {
+ return isLower ? 'a.t.m.' : 'A.T.M.';
+ }
+ },
+ calendar : {
+ sameDay : '[HodiaÅ­ je] LT',
+ nextDay : '[MorgaÅ­ je] LT',
+ nextWeek : 'dddd [je] LT',
+ lastDay : '[HieraÅ­ je] LT',
+ lastWeek : '[pasinta] dddd [je] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "je %s",
+ past : "antaÅ­ %s",
+ s : "sekundoj",
+ m : "minuto",
+ mm : "%d minutoj",
+ h : "horo",
+ hh : "%d horoj",
+ d : "tago",//ne 'diurno', ĉar estas uzita por proksimumo
+ dd : "%d tagoj",
+ M : "monato",
+ MM : "%d monatoj",
+ y : "jaro",
+ yy : "%d jaroj"
+ },
+ ordinal : "%da",
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : spanish (es)
+// author : Julio Napurí : https://github.com/julionc
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('es', {
+ months : "enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),
+ monthsShort : "ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),
+ weekdays : "domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),
+ weekdaysShort : "dom._lun._mar._mié._jue._vie._sáb.".split("_"),
+ weekdaysMin : "Do_Lu_Ma_Mi_Ju_Vi_Sá".split("_"),
+ longDateFormat : {
+ LT : "H:mm",
+ L : "DD/MM/YYYY",
+ LL : "D [de] MMMM [de] YYYY",
+ LLL : "D [de] MMMM [de] YYYY LT",
+ LLLL : "dddd, D [de] MMMM [de] YYYY LT"
+ },
+ calendar : {
+ sameDay : function () {
+ return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ nextDay : function () {
+ return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ nextWeek : function () {
+ return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ lastDay : function () {
+ return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ lastWeek : function () {
+ return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "en %s",
+ past : "hace %s",
+ s : "unos segundos",
+ m : "un minuto",
+ mm : "%d minutos",
+ h : "una hora",
+ hh : "%d horas",
+ d : "un día",
+ dd : "%d días",
+ M : "un mes",
+ MM : "%d meses",
+ y : "un año",
+ yy : "%d años"
+ },
+ ordinal : '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : estonian (et)
+// author : Henry Kehlmann : https://github.com/madhenry
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function translateSeconds(number, withoutSuffix, key, isFuture) {
+ return (isFuture || withoutSuffix) ? 'paari sekundi' : 'paar sekundit';
+ }
+
+ return moment.lang('et', {
+ months : "jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),
+ monthsShort : "jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),
+ weekdays : "pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),
+ weekdaysShort : "P_E_T_K_N_R_L".split("_"),
+ weekdaysMin : "P_E_T_K_N_R_L".split("_"),
+ longDateFormat : {
+ LT : "H:mm",
+ L : "DD.MM.YYYY",
+ LL : "D. MMMM YYYY",
+ LLL : "D. MMMM YYYY LT",
+ LLLL : "dddd, D. MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay : '[Täna,] LT',
+ nextDay : '[Homme,] LT',
+ nextWeek : '[Järgmine] dddd LT',
+ lastDay : '[Eile,] LT',
+ lastWeek : '[Eelmine] dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "%s pärast",
+ past : "%s tagasi",
+ s : translateSeconds,
+ m : "minut",
+ mm : "%d minutit",
+ h : "tund",
+ hh : "%d tundi",
+ d : "päev",
+ dd : "%d päeva",
+ M : "kuu",
+ MM : "%d kuud",
+ y : "aasta",
+ yy : "%d aastat"
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : euskara (eu)
+// author : Eneko Illarramendi : https://github.com/eillarra
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('eu', {
+ months : "urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),
+ monthsShort : "urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),
+ weekdays : "igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),
+ weekdaysShort : "ig._al._ar._az._og._ol._lr.".split("_"),
+ weekdaysMin : "ig_al_ar_az_og_ol_lr".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "YYYY-MM-DD",
+ LL : "YYYY[ko] MMMM[ren] D[a]",
+ LLL : "YYYY[ko] MMMM[ren] D[a] LT",
+ LLLL : "dddd, YYYY[ko] MMMM[ren] D[a] LT",
+ l : "YYYY-M-D",
+ ll : "YYYY[ko] MMM D[a]",
+ lll : "YYYY[ko] MMM D[a] LT",
+ llll : "ddd, YYYY[ko] MMM D[a] LT"
+ },
+ calendar : {
+ sameDay : '[gaur] LT[etan]',
+ nextDay : '[bihar] LT[etan]',
+ nextWeek : 'dddd LT[etan]',
+ lastDay : '[atzo] LT[etan]',
+ lastWeek : '[aurreko] dddd LT[etan]',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "%s barru",
+ past : "duela %s",
+ s : "segundo batzuk",
+ m : "minutu bat",
+ mm : "%d minutu",
+ h : "ordu bat",
+ hh : "%d ordu",
+ d : "egun bat",
+ dd : "%d egun",
+ M : "hilabete bat",
+ MM : "%d hilabete",
+ y : "urte bat",
+ yy : "%d urte"
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : Persian Language
+// author : Ebrahim Byagowi : https://github.com/ebraminio
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var symbolMap = {
+ '1': 'Û±',
+ '2': 'Û²',
+ '3': 'Û³',
+ '4': 'Û´',
+ '5': 'Ûµ',
+ '6': 'Û¶',
+ '7': 'Û·',
+ '8': 'Û¸',
+ '9': 'Û¹',
+ '0': 'Û°'
+ }, numberMap = {
+ 'Û±': '1',
+ 'Û²': '2',
+ 'Û³': '3',
+ 'Û´': '4',
+ 'Ûµ': '5',
+ 'Û¶': '6',
+ 'Û·': '7',
+ 'Û¸': '8',
+ 'Û¹': '9',
+ 'Û°': '0'
+ };
+
+ return moment.lang('fa', {
+ months : 'ژانویه_Ùوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
+ monthsShort : 'ژانویه_Ùوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
+ weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
+ weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
+ weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),
+ longDateFormat : {
+ LT : 'HH:mm',
+ L : 'DD/MM/YYYY',
+ LL : 'D MMMM YYYY',
+ LLL : 'D MMMM YYYY LT',
+ LLLL : 'dddd, D MMMM YYYY LT'
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return "قبل از ظهر";
+ } else {
+ return "بعد از ظهر";
+ }
+ },
+ calendar : {
+ sameDay : '[امروز ساعت] LT',
+ nextDay : '[Ùردا ساعت] LT',
+ nextWeek : 'dddd [ساعت] LT',
+ lastDay : '[دیروز ساعت] LT',
+ lastWeek : 'dddd [پیش] [ساعت] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : 'در %s',
+ past : '%s پیش',
+ s : 'چندین ثانیه',
+ m : 'یک دقیقه',
+ mm : '%d دقیقه',
+ h : 'یک ساعت',
+ hh : '%d ساعت',
+ d : 'یک روز',
+ dd : '%d روز',
+ M : 'یک ماه',
+ MM : '%d ماه',
+ y : 'یک سال',
+ yy : '%d سال'
+ },
+ preparse: function (string) {
+ return string.replace(/[Û°-Û¹]/g, function (match) {
+ return numberMap[match];
+ }).replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ }).replace(/,/g, '،');
+ },
+ ordinal : '%dÙ…',
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : finnish (fi)
+// author : Tarmo Aidantausta : https://github.com/bleadof
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var numbers_past = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),
+ numbers_future = ['nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',
+ numbers_past[7], numbers_past[8], numbers_past[9]];
+
+ function translate(number, withoutSuffix, key, isFuture) {
+ var result = "";
+ switch (key) {
+ case 's':
+ return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
+ case 'm':
+ return isFuture ? 'minuutin' : 'minuutti';
+ case 'mm':
+ result = isFuture ? 'minuutin' : 'minuuttia';
+ break;
+ case 'h':
+ return isFuture ? 'tunnin' : 'tunti';
+ case 'hh':
+ result = isFuture ? 'tunnin' : 'tuntia';
+ break;
+ case 'd':
+ return isFuture ? 'päivän' : 'päivä';
+ case 'dd':
+ result = isFuture ? 'päivän' : 'päivää';
+ break;
+ case 'M':
+ return isFuture ? 'kuukauden' : 'kuukausi';
+ case 'MM':
+ result = isFuture ? 'kuukauden' : 'kuukautta';
+ break;
+ case 'y':
+ return isFuture ? 'vuoden' : 'vuosi';
+ case 'yy':
+ result = isFuture ? 'vuoden' : 'vuotta';
+ break;
+ }
+ result = verbal_number(number, isFuture) + " " + result;
+ return result;
+ }
+
+ function verbal_number(number, isFuture) {
+ return number < 10 ? (isFuture ? numbers_future[number] : numbers_past[number]) : number;
+ }
+
+ return moment.lang('fi', {
+ months : "tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),
+ monthsShort : "tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),
+ weekdays : "sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),
+ weekdaysShort : "su_ma_ti_ke_to_pe_la".split("_"),
+ weekdaysMin : "su_ma_ti_ke_to_pe_la".split("_"),
+ longDateFormat : {
+ LT : "HH.mm",
+ L : "DD.MM.YYYY",
+ LL : "Do MMMM[ta] YYYY",
+ LLL : "Do MMMM[ta] YYYY, [klo] LT",
+ LLLL : "dddd, Do MMMM[ta] YYYY, [klo] LT",
+ l : "D.M.YYYY",
+ ll : "Do MMM YYYY",
+ lll : "Do MMM YYYY, [klo] LT",
+ llll : "ddd, Do MMM YYYY, [klo] LT"
+ },
+ calendar : {
+ sameDay : '[tänään] [klo] LT',
+ nextDay : '[huomenna] [klo] LT',
+ nextWeek : 'dddd [klo] LT',
+ lastDay : '[eilen] [klo] LT',
+ lastWeek : '[viime] dddd[na] [klo] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "%s päästä",
+ past : "%s sitten",
+ s : translate,
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : translate,
+ dd : translate,
+ M : translate,
+ MM : translate,
+ y : translate,
+ yy : translate
+ },
+ ordinal : "%d.",
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : faroese (fo)
+// author : Ragnar Johannesen : https://github.com/ragnar123
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('fo', {
+ months : "januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),
+ monthsShort : "jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),
+ weekdays : "sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),
+ weekdaysShort : "sun_mán_týs_mik_hós_frí_ley".split("_"),
+ weekdaysMin : "su_má_tý_mi_hó_fr_le".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd D. MMMM, YYYY LT"
+ },
+ calendar : {
+ sameDay : '[Ã dag kl.] LT',
+ nextDay : '[Ã morgin kl.] LT',
+ nextWeek : 'dddd [kl.] LT',
+ lastDay : '[à gjár kl.] LT',
+ lastWeek : '[síðstu] dddd [kl] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "um %s",
+ past : "%s síðani",
+ s : "fá sekund",
+ m : "ein minutt",
+ mm : "%d minuttir",
+ h : "ein tími",
+ hh : "%d tímar",
+ d : "ein dagur",
+ dd : "%d dagar",
+ M : "ein mánaði",
+ MM : "%d mánaðir",
+ y : "eitt ár",
+ yy : "%d ár"
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : canadian french (fr-ca)
+// author : Jonathan Abourbih : https://github.com/jonbca
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('fr-ca', {
+ months : "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),
+ monthsShort : "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),
+ weekdays : "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),
+ weekdaysShort : "dim._lun._mar._mer._jeu._ven._sam.".split("_"),
+ weekdaysMin : "Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "YYYY-MM-DD",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd D MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay: "[Aujourd'hui à] LT",
+ nextDay: '[Demain à] LT',
+ nextWeek: 'dddd [à] LT',
+ lastDay: '[Hier à] LT',
+ lastWeek: 'dddd [dernier à] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : "dans %s",
+ past : "il y a %s",
+ s : "quelques secondes",
+ m : "une minute",
+ mm : "%d minutes",
+ h : "une heure",
+ hh : "%d heures",
+ d : "un jour",
+ dd : "%d jours",
+ M : "un mois",
+ MM : "%d mois",
+ y : "un an",
+ yy : "%d ans"
+ },
+ ordinal : function (number) {
+ return number + (number === 1 ? 'er' : '');
+ }
+ });
+}));
+// moment.js language configuration
+// language : french (fr)
+// author : John Fischer : https://github.com/jfroffice
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('fr', {
+ months : "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),
+ monthsShort : "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),
+ weekdays : "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),
+ weekdaysShort : "dim._lun._mar._mer._jeu._ven._sam.".split("_"),
+ weekdaysMin : "Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd D MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay: "[Aujourd'hui à] LT",
+ nextDay: '[Demain à] LT',
+ nextWeek: 'dddd [à] LT',
+ lastDay: '[Hier à] LT',
+ lastWeek: 'dddd [dernier à] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : "dans %s",
+ past : "il y a %s",
+ s : "quelques secondes",
+ m : "une minute",
+ mm : "%d minutes",
+ h : "une heure",
+ hh : "%d heures",
+ d : "un jour",
+ dd : "%d jours",
+ M : "un mois",
+ MM : "%d mois",
+ y : "un an",
+ yy : "%d ans"
+ },
+ ordinal : function (number) {
+ return number + (number === 1 ? 'er' : '');
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : galician (gl)
+// author : Juan G. Hurtado : https://github.com/juanghurtado
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('gl', {
+ months : "Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro".split("_"),
+ monthsShort : "Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.".split("_"),
+ weekdays : "Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado".split("_"),
+ weekdaysShort : "Dom._Lun._Mar._Mér._Xov._Ven._Sáb.".split("_"),
+ weekdaysMin : "Do_Lu_Ma_Mé_Xo_Ve_Sá".split("_"),
+ longDateFormat : {
+ LT : "H:mm",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd D MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay : function () {
+ return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
+ },
+ nextDay : function () {
+ return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
+ },
+ nextWeek : function () {
+ return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
+ },
+ lastDay : function () {
+ return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';
+ },
+ lastWeek : function () {
+ return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : function (str) {
+ if (str === "uns segundos") {
+ return "nuns segundos";
+ }
+ return "en " + str;
+ },
+ past : "hai %s",
+ s : "uns segundos",
+ m : "un minuto",
+ mm : "%d minutos",
+ h : "unha hora",
+ hh : "%d horas",
+ d : "un día",
+ dd : "%d días",
+ M : "un mes",
+ MM : "%d meses",
+ y : "un ano",
+ yy : "%d anos"
+ },
+ ordinal : '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : Hebrew (he)
+// author : Tomer Cohen : https://github.com/tomer
+// author : Moshe Simantov : https://github.com/DevelopmentIL
+// author : Tal Ater : https://github.com/TalAter
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('he', {
+ months : "ינו×ר_פברו×ר_מרץ_×פריל_מ××™_יוני_יולי_×וגוסט_ספטמבר_×וקטובר_נובמבר_דצמבר".split("_"),
+ monthsShort : "ינו׳_פבר׳_מרץ_×פר׳_מ××™_יוני_יולי_×וג׳_ספט׳_×וק׳_נוב׳_דצמ׳".split("_"),
+ weekdays : "ר×שון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),
+ weekdaysShort : "×׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),
+ weekdaysMin : "×_ב_×’_ד_×”_ו_ש".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD/MM/YYYY",
+ LL : "D [ב]MMMM YYYY",
+ LLL : "D [ב]MMMM YYYY LT",
+ LLLL : "dddd, D [ב]MMMM YYYY LT",
+ l : "D/M/YYYY",
+ ll : "D MMM YYYY",
+ lll : "D MMM YYYY LT",
+ llll : "ddd, D MMM YYYY LT"
+ },
+ calendar : {
+ sameDay : '[×”×™×•× ×‘Ö¾]LT',
+ nextDay : '[מחר ב־]LT',
+ nextWeek : 'dddd [בשעה] LT',
+ lastDay : '[×תמול ב־]LT',
+ lastWeek : '[ביו×] dddd [×”×חרון בשעה] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "בעוד %s",
+ past : "לפני %s",
+ s : "מספר שניות",
+ m : "דקה",
+ mm : "%d דקות",
+ h : "שעה",
+ hh : function (number) {
+ if (number === 2) {
+ return "שעתיי×";
+ }
+ return number + " שעות";
+ },
+ d : "יו×",
+ dd : function (number) {
+ if (number === 2) {
+ return "יומיי×";
+ }
+ return number + " ימי×";
+ },
+ M : "חודש",
+ MM : function (number) {
+ if (number === 2) {
+ return "חודשיי×";
+ }
+ return number + " חודשי×";
+ },
+ y : "שנה",
+ yy : function (number) {
+ if (number === 2) {
+ return "שנתיי×";
+ }
+ return number + " שני×";
+ }
+ }
+ });
+}));
+// moment.js language configuration
+// language : hindi (hi)
+// author : Mayank Singhal : https://github.com/mayanksinghal
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var symbolMap = {
+ '1': '१',
+ '2': '२',
+ '3': '३',
+ '4': '४',
+ '5': '५',
+ '6': '६',
+ '7': '७',
+ '8': '८',
+ '9': '९',
+ '0': '०'
+ },
+ numberMap = {
+ '१': '1',
+ '२': '2',
+ '३': '3',
+ '४': '4',
+ '५': '5',
+ '६': '6',
+ '७': '7',
+ '८': '8',
+ '९': '9',
+ '०': '0'
+ };
+
+ return moment.lang('hi', {
+ months : 'जनवरी_फ़रवरी_मारà¥à¤š_अपà¥à¤°à¥ˆà¤²_मई_जून_जà¥à¤²à¤¾à¤ˆ_अगसà¥à¤¤_सितमà¥à¤¬à¤°_अकà¥à¤Ÿà¥‚बर_नवमà¥à¤¬à¤°_दिसमà¥à¤¬à¤°'.split("_"),
+ monthsShort : 'जन._फ़र._मारà¥à¤š_अपà¥à¤°à¥ˆ._मई_जून_जà¥à¤²._अग._सित._अकà¥à¤Ÿà¥‚._नव._दिस.'.split("_"),
+ weekdays : 'रविवार_सोमवार_मंगलवार_बà¥à¤§à¤µà¤¾à¤°_गà¥à¤°à¥‚वार_शà¥à¤•à¥à¤°à¤µà¤¾à¤°_शनिवार'.split("_"),
+ weekdaysShort : 'रवि_सोम_मंगल_बà¥à¤§_गà¥à¤°à¥‚_शà¥à¤•à¥à¤°_शनि'.split("_"),
+ weekdaysMin : 'र_सो_मं_बà¥_गà¥_शà¥_श'.split("_"),
+ longDateFormat : {
+ LT : "A h:mm बजे",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY, LT",
+ LLLL : "dddd, D MMMM YYYY, LT"
+ },
+ calendar : {
+ sameDay : '[आज] LT',
+ nextDay : '[कल] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[कल] LT',
+ lastWeek : '[पिछले] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "%s में",
+ past : "%s पहले",
+ s : "कà¥à¤› ही कà¥à¤·à¤£",
+ m : "à¤à¤• मिनट",
+ mm : "%d मिनट",
+ h : "à¤à¤• घंटा",
+ hh : "%d घंटे",
+ d : "à¤à¤• दिन",
+ dd : "%d दिन",
+ M : "à¤à¤• महीने",
+ MM : "%d महीने",
+ y : "à¤à¤• वरà¥à¤·",
+ yy : "%d वरà¥à¤·"
+ },
+ preparse: function (string) {
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ // Hindi notation for meridiems are quite fuzzy in practice. While there exists
+ // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return "रात";
+ } else if (hour < 10) {
+ return "सà¥à¤¬à¤¹";
+ } else if (hour < 17) {
+ return "दोपहर";
+ } else if (hour < 20) {
+ return "शाम";
+ } else {
+ return "रात";
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : hrvatski (hr)
+// author : Bojan Marković : https://github.com/bmarkovic
+
+// based on (sl) translation by Robert Sedovšek
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+
+ function translate(number, withoutSuffix, key) {
+ var result = number + " ";
+ switch (key) {
+ case 'm':
+ return withoutSuffix ? 'jedna minuta' : 'jedne minute';
+ case 'mm':
+ if (number === 1) {
+ result += 'minuta';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'minute';
+ } else {
+ result += 'minuta';
+ }
+ return result;
+ case 'h':
+ return withoutSuffix ? 'jedan sat' : 'jednog sata';
+ case 'hh':
+ if (number === 1) {
+ result += 'sat';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'sata';
+ } else {
+ result += 'sati';
+ }
+ return result;
+ case 'dd':
+ if (number === 1) {
+ result += 'dan';
+ } else {
+ result += 'dana';
+ }
+ return result;
+ case 'MM':
+ if (number === 1) {
+ result += 'mjesec';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'mjeseca';
+ } else {
+ result += 'mjeseci';
+ }
+ return result;
+ case 'yy':
+ if (number === 1) {
+ result += 'godina';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'godine';
+ } else {
+ result += 'godina';
+ }
+ return result;
+ }
+ }
+
+ return moment.lang('hr', {
+ months : "sjeÄanj_veljaÄa_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_"),
+ monthsShort : "sje._vel._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),
+ weekdays : "nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota".split("_"),
+ weekdaysShort : "ned._pon._uto._sri._Äet._pet._sub.".split("_"),
+ weekdaysMin : "ne_po_ut_sr_Äe_pe_su".split("_"),
+ longDateFormat : {
+ LT : "H:mm",
+ L : "DD. MM. YYYY",
+ LL : "D. MMMM YYYY",
+ LLL : "D. MMMM YYYY LT",
+ LLLL : "dddd, D. MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay : '[danas u] LT',
+ nextDay : '[sutra u] LT',
+
+ nextWeek : function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedjelju] [u] LT';
+ case 3:
+ return '[u] [srijedu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay : '[juÄer u] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ return '[prošlu] dddd [u] LT';
+ case 6:
+ return '[prošle] [subote] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[prošli] dddd [u] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "za %s",
+ past : "prije %s",
+ s : "par sekundi",
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : "dan",
+ dd : translate,
+ M : "mjesec",
+ MM : translate,
+ y : "godinu",
+ yy : translate
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : hungarian (hu)
+// author : Adam Brunner : https://github.com/adambrunner
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
+
+ function translate(number, withoutSuffix, key, isFuture) {
+ var num = number,
+ suffix;
+
+ switch (key) {
+ case 's':
+ return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';
+ case 'm':
+ return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
+ case 'mm':
+ return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
+ case 'h':
+ return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
+ case 'hh':
+ return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
+ case 'd':
+ return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
+ case 'dd':
+ return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
+ case 'M':
+ return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
+ case 'MM':
+ return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
+ case 'y':
+ return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
+ case 'yy':
+ return num + (isFuture || withoutSuffix ? ' év' : ' éve');
+ }
+
+ return '';
+ }
+
+ function week(isFuture) {
+ return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';
+ }
+
+ return moment.lang('hu', {
+ months : "január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),
+ monthsShort : "jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),
+ weekdays : "vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),
+ weekdaysShort : "vas_hét_kedd_sze_csüt_pén_szo".split("_"),
+ weekdaysMin : "v_h_k_sze_cs_p_szo".split("_"),
+ longDateFormat : {
+ LT : "H:mm",
+ L : "YYYY.MM.DD.",
+ LL : "YYYY. MMMM D.",
+ LLL : "YYYY. MMMM D., LT",
+ LLLL : "YYYY. MMMM D., dddd LT"
+ },
+ calendar : {
+ sameDay : '[ma] LT[-kor]',
+ nextDay : '[holnap] LT[-kor]',
+ nextWeek : function () {
+ return week.call(this, true);
+ },
+ lastDay : '[tegnap] LT[-kor]',
+ lastWeek : function () {
+ return week.call(this, false);
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "%s múlva",
+ past : "%s",
+ s : translate,
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : translate,
+ dd : translate,
+ M : translate,
+ MM : translate,
+ y : translate,
+ yy : translate
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : Bahasa Indonesia (id)
+// author : Mohammad Satrio Utomo : https://github.com/tyok
+// reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('id', {
+ months : "Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),
+ monthsShort : "Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),
+ weekdays : "Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),
+ weekdaysShort : "Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),
+ weekdaysMin : "Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),
+ longDateFormat : {
+ LT : "HH.mm",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY [pukul] LT",
+ LLLL : "dddd, D MMMM YYYY [pukul] LT"
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'pagi';
+ } else if (hours < 15) {
+ return 'siang';
+ } else if (hours < 19) {
+ return 'sore';
+ } else {
+ return 'malam';
+ }
+ },
+ calendar : {
+ sameDay : '[Hari ini pukul] LT',
+ nextDay : '[Besok pukul] LT',
+ nextWeek : 'dddd [pukul] LT',
+ lastDay : '[Kemarin pukul] LT',
+ lastWeek : 'dddd [lalu pukul] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "dalam %s",
+ past : "%s yang lalu",
+ s : "beberapa detik",
+ m : "semenit",
+ mm : "%d menit",
+ h : "sejam",
+ hh : "%d jam",
+ d : "sehari",
+ dd : "%d hari",
+ M : "sebulan",
+ MM : "%d bulan",
+ y : "setahun",
+ yy : "%d tahun"
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : icelandic (is)
+// author : Hinrik Örn Sigurðsson : https://github.com/hinrik
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function plural(n) {
+ if (n % 100 === 11) {
+ return true;
+ } else if (n % 10 === 1) {
+ return false;
+ }
+ return true;
+ }
+
+ function translate(number, withoutSuffix, key, isFuture) {
+ var result = number + " ";
+ switch (key) {
+ case 's':
+ return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';
+ case 'm':
+ return withoutSuffix ? 'mínúta' : 'mínútu';
+ case 'mm':
+ if (plural(number)) {
+ return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');
+ } else if (withoutSuffix) {
+ return result + 'mínúta';
+ }
+ return result + 'mínútu';
+ case 'hh':
+ if (plural(number)) {
+ return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');
+ }
+ return result + 'klukkustund';
+ case 'd':
+ if (withoutSuffix) {
+ return 'dagur';
+ }
+ return isFuture ? 'dag' : 'degi';
+ case 'dd':
+ if (plural(number)) {
+ if (withoutSuffix) {
+ return result + 'dagar';
+ }
+ return result + (isFuture ? 'daga' : 'dögum');
+ } else if (withoutSuffix) {
+ return result + 'dagur';
+ }
+ return result + (isFuture ? 'dag' : 'degi');
+ case 'M':
+ if (withoutSuffix) {
+ return 'mánuður';
+ }
+ return isFuture ? 'mánuð' : 'mánuði';
+ case 'MM':
+ if (plural(number)) {
+ if (withoutSuffix) {
+ return result + 'mánuðir';
+ }
+ return result + (isFuture ? 'mánuði' : 'mánuðum');
+ } else if (withoutSuffix) {
+ return result + 'mánuður';
+ }
+ return result + (isFuture ? 'mánuð' : 'mánuði');
+ case 'y':
+ return withoutSuffix || isFuture ? 'ár' : 'ári';
+ case 'yy':
+ if (plural(number)) {
+ return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
+ }
+ return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
+ }
+ }
+
+ return moment.lang('is', {
+ months : "janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),
+ monthsShort : "jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),
+ weekdays : "sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),
+ weekdaysShort : "sun_mán_þri_mið_fim_fös_lau".split("_"),
+ weekdaysMin : "Su_Má_Þr_Mi_Fi_Fö_La".split("_"),
+ longDateFormat : {
+ LT : "H:mm",
+ L : "DD/MM/YYYY",
+ LL : "D. MMMM YYYY",
+ LLL : "D. MMMM YYYY [kl.] LT",
+ LLLL : "dddd, D. MMMM YYYY [kl.] LT"
+ },
+ calendar : {
+ sameDay : '[í dag kl.] LT',
+ nextDay : '[á morgun kl.] LT',
+ nextWeek : 'dddd [kl.] LT',
+ lastDay : '[í gær kl.] LT',
+ lastWeek : '[síðasta] dddd [kl.] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "eftir %s",
+ past : "fyrir %s síðan",
+ s : translate,
+ m : translate,
+ mm : translate,
+ h : "klukkustund",
+ hh : translate,
+ d : translate,
+ dd : translate,
+ M : translate,
+ MM : translate,
+ y : translate,
+ yy : translate
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : italian (it)
+// author : Lorenzo : https://github.com/aliem
+// author: Mattia Larentis: https://github.com/nostalgiaz
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('it', {
+ months : "Gennaio_Febbraio_Marzo_Aprile_Maggio_Giugno_Luglio_Agosto_Settembre_Ottobre_Novembre_Dicembre".split("_"),
+ monthsShort : "Gen_Feb_Mar_Apr_Mag_Giu_Lug_Ago_Set_Ott_Nov_Dic".split("_"),
+ weekdays : "Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"),
+ weekdaysShort : "Dom_Lun_Mar_Mer_Gio_Ven_Sab".split("_"),
+ weekdaysMin : "D_L_Ma_Me_G_V_S".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd, D MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay: '[Oggi alle] LT',
+ nextDay: '[Domani alle] LT',
+ nextWeek: 'dddd [alle] LT',
+ lastDay: '[Ieri alle] LT',
+ lastWeek: '[lo scorso] dddd [alle] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : function (s) {
+ return ((/^[0-9].+$/).test(s) ? "tra" : "in") + " " + s;
+ },
+ past : "%s fa",
+ s : "secondi",
+ m : "un minuto",
+ mm : "%d minuti",
+ h : "un'ora",
+ hh : "%d ore",
+ d : "un giorno",
+ dd : "%d giorni",
+ M : "un mese",
+ MM : "%d mesi",
+ y : "un anno",
+ yy : "%d anni"
+ },
+ ordinal: '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : japanese (ja)
+// author : LI Long : https://github.com/baryon
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('ja', {
+ months : "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
+ monthsShort : "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
+ weekdays : "日曜日_月曜日_ç«æ›œæ—¥_水曜日_木曜日_金曜日_土曜日".split("_"),
+ weekdaysShort : "æ—¥_月_ç«_æ°´_木_金_土".split("_"),
+ weekdaysMin : "æ—¥_月_ç«_æ°´_木_金_土".split("_"),
+ longDateFormat : {
+ LT : "Ah時m分",
+ L : "YYYY/MM/DD",
+ LL : "YYYY年M月D日",
+ LLL : "YYYY年M月D日LT",
+ LLLL : "YYYY年M月D日LT dddd"
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return "åˆå‰";
+ } else {
+ return "åˆå¾Œ";
+ }
+ },
+ calendar : {
+ sameDay : '[今日] LT',
+ nextDay : '[明日] LT',
+ nextWeek : '[æ¥é€±]dddd LT',
+ lastDay : '[昨日] LT',
+ lastWeek : '[å‰é€±]dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "%s後",
+ past : "%så‰",
+ s : "数秒",
+ m : "1分",
+ mm : "%d分",
+ h : "1時間",
+ hh : "%d時間",
+ d : "1æ—¥",
+ dd : "%dæ—¥",
+ M : "1ヶ月",
+ MM : "%dヶ月",
+ y : "1å¹´",
+ yy : "%då¹´"
+ }
+ });
+}));
+// moment.js language configuration
+// language : Georgian (ka)
+// author : Irakli Janiashvili : https://github.com/irakli-janiashvili
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+
+ function monthsCaseReplace(m, format) {
+ var months = {
+ 'nominative': 'იáƒáƒœáƒ•áƒáƒ áƒ˜_თებერვáƒáƒšáƒ˜_მáƒáƒ áƒ¢áƒ˜_áƒáƒžáƒ áƒ˜áƒšáƒ˜_მáƒáƒ˜áƒ¡áƒ˜_ივნისი_ივლისი_áƒáƒ’ვისტáƒ_სექტემბერი_áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერი_ნáƒáƒ”მბერი_დეკემბერი'.split('_'),
+ 'accusative': 'იáƒáƒœáƒ•áƒáƒ áƒ¡_თებერვáƒáƒšáƒ¡_მáƒáƒ áƒ¢áƒ¡_áƒáƒžáƒ áƒ˜áƒšáƒ˜áƒ¡_მáƒáƒ˜áƒ¡áƒ¡_ივნისს_ივლისს_áƒáƒ’ვისტს_სექტემბერს_áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერს_ნáƒáƒ”მბერს_დეკემბერს'.split('_')
+ },
+
+ nounCase = (/D[oD] *MMMM?/).test(format) ?
+ 'accusative' :
+ 'nominative';
+
+ return months[nounCase][m.month()];
+ }
+
+ function weekdaysCaseReplace(m, format) {
+ var weekdays = {
+ 'nominative': 'კვირáƒ_áƒáƒ áƒ¨áƒáƒ‘áƒáƒ—ი_სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ი_áƒáƒ—ხშáƒáƒ‘áƒáƒ—ი_ხუთშáƒáƒ‘áƒáƒ—ი_პáƒáƒ áƒáƒ¡áƒ™áƒ”ვი_შáƒáƒ‘áƒáƒ—ი'.split('_'),
+ 'accusative': 'კვირáƒáƒ¡_áƒáƒ áƒ¨áƒáƒ‘áƒáƒ—ს_სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ს_áƒáƒ—ხშáƒáƒ‘áƒáƒ—ს_ხუთშáƒáƒ‘áƒáƒ—ს_პáƒáƒ áƒáƒ¡áƒ™áƒ”ვს_შáƒáƒ‘áƒáƒ—ს'.split('_')
+ },
+
+ nounCase = (/(წინáƒ|შემდეგ)/).test(format) ?
+ 'accusative' :
+ 'nominative';
+
+ return weekdays[nounCase][m.day()];
+ }
+
+ return moment.lang('ka', {
+ months : monthsCaseReplace,
+ monthsShort : "იáƒáƒœ_თებ_მáƒáƒ _áƒáƒžáƒ _მáƒáƒ˜_ივნ_ივლ_áƒáƒ’ვ_სექ_áƒáƒ¥áƒ¢_ნáƒáƒ”_დეკ".split("_"),
+ weekdays : weekdaysCaseReplace,
+ weekdaysShort : "კვი_áƒáƒ áƒ¨_სáƒáƒ›_áƒáƒ—ხ_ხუთ_პáƒáƒ _შáƒáƒ‘".split("_"),
+ weekdaysMin : "კვ_áƒáƒ _სáƒ_áƒáƒ—_ხუ_პáƒ_შáƒ".split("_"),
+ longDateFormat : {
+ LT : "h:mm A",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd, D MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay : '[დღეს] LT[-ზე]',
+ nextDay : '[ხვáƒáƒš] LT[-ზე]',
+ lastDay : '[გუშინ] LT[-ზე]',
+ nextWeek : '[შემდეგ] dddd LT[-ზე]',
+ lastWeek : '[წინáƒ] dddd LT-ზე',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : function (s) {
+ return (/(წáƒáƒ›áƒ˜|წუთი|სáƒáƒáƒ—ი|წელი)/).test(s) ?
+ s.replace(/ი$/, "ში") :
+ s + "ში";
+ },
+ past : function (s) {
+ if ((/(წáƒáƒ›áƒ˜|წუთი|სáƒáƒáƒ—ი|დღე|თვე)/).test(s)) {
+ return s.replace(/(ი|ე)$/, "ის წინ");
+ }
+ if ((/წელი/).test(s)) {
+ return s.replace(/წელი$/, "წლის წინ");
+ }
+ },
+ s : "რáƒáƒ›áƒ“ენიმე წáƒáƒ›áƒ˜",
+ m : "წუთი",
+ mm : "%d წუთი",
+ h : "სáƒáƒáƒ—ი",
+ hh : "%d სáƒáƒáƒ—ი",
+ d : "დღე",
+ dd : "%d დღე",
+ M : "თვე",
+ MM : "%d თვე",
+ y : "წელი",
+ yy : "%d წელი"
+ },
+ ordinal : function (number) {
+ if (number === 0) {
+ return number;
+ }
+
+ if (number === 1) {
+ return number + "-ლი";
+ }
+
+ if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {
+ return "მე-" + number;
+ }
+
+ return number + "-ე";
+ },
+ week : {
+ dow : 1,
+ doy : 7
+ }
+ });
+}));
+// moment.js language configuration
+// language : korean (ko)
+// author : Kyungwook, Park : https://github.com/kyungw00k
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('ko', {
+ months : "1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”".split("_"),
+ monthsShort : "1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”".split("_"),
+ weekdays : "ì¼ìš”ì¼_월요ì¼_화요ì¼_수요ì¼_목요ì¼_금요ì¼_토요ì¼".split("_"),
+ weekdaysShort : "ì¼_ì›”_í™”_수_목_금_토".split("_"),
+ weekdaysMin : "ì¼_ì›”_í™”_수_목_금_토".split("_"),
+ longDateFormat : {
+ LT : "A h시 mm분",
+ L : "YYYY.MM.DD",
+ LL : "YYYYë…„ MMMM Dì¼",
+ LLL : "YYYYë…„ MMMM Dì¼ LT",
+ LLLL : "YYYYë…„ MMMM Dì¼ dddd LT"
+ },
+ meridiem : function (hour, minute, isUpper) {
+ return hour < 12 ? '오전' : '오후';
+ },
+ calendar : {
+ sameDay : '오늘 LT',
+ nextDay : 'ë‚´ì¼ LT',
+ nextWeek : 'dddd LT',
+ lastDay : '어제 LT',
+ lastWeek : '지난주 dddd LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "%s 후",
+ past : "%s ì „",
+ s : "몇초",
+ ss : "%dì´ˆ",
+ m : "ì¼ë¶„",
+ mm : "%d분",
+ h : "한시간",
+ hh : "%d시간",
+ d : "하루",
+ dd : "%dì¼",
+ M : "한달",
+ MM : "%d달",
+ y : "ì¼ë…„",
+ yy : "%dë…„"
+ },
+ ordinal : '%dì¼'
+ });
+}));
+// moment.js language configuration
+// language : Lithuanian (lt)
+// author : Mindaugas Mozūras : https://github.com/mmozuras
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var units = {
+ "m" : "minutÄ—_minutÄ—s_minutÄ™",
+ "mm": "minutÄ—s_minuÄių_minutes",
+ "h" : "valanda_valandos_valandÄ…",
+ "hh": "valandos_valandų_valandas",
+ "d" : "diena_dienos_dienÄ…",
+ "dd": "dienos_dienų_dienas",
+ "M" : "mėnuo_mėnesio_mėnesį",
+ "MM": "mėnesiai_mėnesių_mėnesius",
+ "y" : "metai_metų_metus",
+ "yy": "metai_metų_metus"
+ },
+ weekDays = "pirmadienis_antradienis_treÄiadienis_ketvirtadienis_penktadienis_Å¡eÅ¡tadienis_sekmadienis".split("_");
+
+ function translateSeconds(number, withoutSuffix, key, isFuture) {
+ if (withoutSuffix) {
+ return "kelios sekundÄ—s";
+ } else {
+ return isFuture ? "kelių sekundžių" : "kelias sekundes";
+ }
+ }
+
+ function translateSingular(number, withoutSuffix, key, isFuture) {
+ return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);
+ }
+
+ function special(number) {
+ return number % 10 === 0 || (number > 10 && number < 20);
+ }
+
+ function forms(key) {
+ return units[key].split("_");
+ }
+
+ function translate(number, withoutSuffix, key, isFuture) {
+ var result = number + " ";
+ if (number === 1) {
+ return result + translateSingular(number, withoutSuffix, key[0], isFuture);
+ } else if (withoutSuffix) {
+ return result + (special(number) ? forms(key)[1] : forms(key)[0]);
+ } else {
+ if (isFuture) {
+ return result + forms(key)[1];
+ } else {
+ return result + (special(number) ? forms(key)[1] : forms(key)[2]);
+ }
+ }
+ }
+
+ function relativeWeekDay(moment, format) {
+ var nominative = format.indexOf('dddd LT') === -1,
+ weekDay = weekDays[moment.weekday()];
+
+ return nominative ? weekDay : weekDay.substring(0, weekDay.length - 2) + "į";
+ }
+
+ return moment.lang("lt", {
+ months : "sausio_vasario_kovo_balandžio_gegužės_biržėlio_liepos_rugpjÅ«Äio_rugsÄ—jo_spalio_lapkriÄio_gruodžio".split("_"),
+ monthsShort : "sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),
+ weekdays : relativeWeekDay,
+ weekdaysShort : "Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),
+ weekdaysMin : "S_P_A_T_K_Pn_Å ".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "YYYY-MM-DD",
+ LL : "YYYY [m.] MMMM D [d.]",
+ LLL : "YYYY [m.] MMMM D [d.], LT [val.]",
+ LLLL : "YYYY [m.] MMMM D [d.], dddd, LT [val.]",
+ l : "YYYY-MM-DD",
+ ll : "YYYY [m.] MMMM D [d.]",
+ lll : "YYYY [m.] MMMM D [d.], LT [val.]",
+ llll : "YYYY [m.] MMMM D [d.], ddd, LT [val.]"
+ },
+ calendar : {
+ sameDay : "[Å iandien] LT",
+ nextDay : "[Rytoj] LT",
+ nextWeek : "dddd LT",
+ lastDay : "[Vakar] LT",
+ lastWeek : "[Praėjusį] dddd LT",
+ sameElse : "L"
+ },
+ relativeTime : {
+ future : "po %s",
+ past : "prieš %s",
+ s : translateSeconds,
+ m : translateSingular,
+ mm : translate,
+ h : translateSingular,
+ hh : translate,
+ d : translateSingular,
+ dd : translate,
+ M : translateSingular,
+ MM : translate,
+ y : translateSingular,
+ yy : translate
+ },
+ ordinal : function (number) {
+ return number + '-oji';
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : latvian (lv)
+// author : Kristaps Karlsons : https://github.com/skakri
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var units = {
+ 'mm': 'minūti_minūtes_minūte_minūtes',
+ 'hh': 'stundu_stundas_stunda_stundas',
+ 'dd': 'dienu_dienas_diena_dienas',
+ 'MM': 'mēnesi_mēnešus_mēnesis_mēneši',
+ 'yy': 'gadu_gadus_gads_gadi'
+ };
+
+ function format(word, number, withoutSuffix) {
+ var forms = word.split('_');
+ if (withoutSuffix) {
+ return number % 10 === 1 && number !== 11 ? forms[2] : forms[3];
+ } else {
+ return number % 10 === 1 && number !== 11 ? forms[0] : forms[1];
+ }
+ }
+
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
+ return number + ' ' + format(units[key], number, withoutSuffix);
+ }
+
+ return moment.lang('lv', {
+ months : "janvÄris_februÄris_marts_aprÄ«lis_maijs_jÅ«nijs_jÅ«lijs_augusts_septembris_oktobris_novembris_decembris".split("_"),
+ monthsShort : "jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),
+ weekdays : "svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),
+ weekdaysShort : "Sv_P_O_T_C_Pk_S".split("_"),
+ weekdaysMin : "Sv_P_O_T_C_Pk_S".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD.MM.YYYY",
+ LL : "YYYY. [gada] D. MMMM",
+ LLL : "YYYY. [gada] D. MMMM, LT",
+ LLLL : "YYYY. [gada] D. MMMM, dddd, LT"
+ },
+ calendar : {
+ sameDay : '[Å odien pulksten] LT',
+ nextDay : '[RÄ«t pulksten] LT',
+ nextWeek : 'dddd [pulksten] LT',
+ lastDay : '[Vakar pulksten] LT',
+ lastWeek : '[PagÄjuÅ¡Ä] dddd [pulksten] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "%s vÄ“lÄk",
+ past : "%s agrÄk",
+ s : "dažas sekundes",
+ m : "minūti",
+ mm : relativeTimeWithPlural,
+ h : "stundu",
+ hh : relativeTimeWithPlural,
+ d : "dienu",
+ dd : relativeTimeWithPlural,
+ M : "mēnesi",
+ MM : relativeTimeWithPlural,
+ y : "gadu",
+ yy : relativeTimeWithPlural
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : malayalam (ml)
+// author : Floyd Pink : https://github.com/floydpink
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('ml', {
+ months : 'ജനàµà´µà´°à´¿_ഫെബàµà´°àµà´µà´°à´¿_മാർചàµà´šàµ_à´à´ªàµà´°à´¿àµ½_മേയàµ_ജൂൺ_ജൂലൈ_à´“à´—à´¸àµà´±àµà´±àµ_സെപàµà´±àµà´±à´‚ബർ_à´’à´•àµà´Ÿàµ‹à´¬àµ¼_നവംബർ_ഡിസംബർ'.split("_"),
+ monthsShort : 'ജനàµ._ഫെബàµà´°àµ._മാർ._à´à´ªàµà´°à´¿._മേയàµ_ജൂൺ_ജൂലൈ._à´“à´—._സെപàµà´±àµà´±._à´’à´•àµà´Ÿàµ‹._നവം._ഡിസം.'.split("_"),
+ weekdays : 'ഞായറാഴàµà´š_തിങàµà´•à´³à´¾à´´àµà´š_ചൊവàµà´µà´¾à´´àµà´š_à´¬àµà´§à´¨à´¾à´´àµà´š_à´µàµà´¯à´¾à´´à´¾à´´àµà´š_വെളàµà´³à´¿à´¯à´¾à´´àµà´š_ശനിയാഴàµà´š'.split("_"),
+ weekdaysShort : 'ഞായർ_തിങàµà´•àµ¾_ചൊവàµà´µ_à´¬àµà´§àµ»_à´µàµà´¯à´¾à´´à´‚_വെളàµà´³à´¿_ശനി'.split("_"),
+ weekdaysMin : 'à´žà´¾_തി_ചൊ_à´¬àµ_à´µàµà´¯à´¾_വെ_à´¶'.split("_"),
+ longDateFormat : {
+ LT : "A h:mm -à´¨àµ",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY, LT",
+ LLLL : "dddd, D MMMM YYYY, LT"
+ },
+ calendar : {
+ sameDay : '[ഇനàµà´¨àµ] LT',
+ nextDay : '[നാളെ] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[ഇനàµà´¨à´²àµ†] LT',
+ lastWeek : '[à´•à´´à´¿à´žàµà´ž] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "%s à´•à´´à´¿à´žàµà´žàµ",
+ past : "%s à´®àµàµ»à´ªàµ",
+ s : "അൽപ നിമിഷങàµà´™àµ¾",
+ m : "ഒരൠമിനിറàµà´±àµ",
+ mm : "%d മിനിറàµà´±àµ",
+ h : "ഒരൠമണികàµà´•àµ‚ർ",
+ hh : "%d മണികàµà´•àµ‚ർ",
+ d : "ഒരൠദിവസം",
+ dd : "%d ദിവസം",
+ M : "ഒരൠമാസം",
+ MM : "%d മാസം",
+ y : "ഒരൠവർഷം",
+ yy : "%d വർഷം"
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return "രാതàµà´°à´¿";
+ } else if (hour < 12) {
+ return "രാവിലെ";
+ } else if (hour < 17) {
+ return "ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ";
+ } else if (hour < 20) {
+ return "വൈകàµà´¨àµà´¨àµ‡à´°à´‚";
+ } else {
+ return "രാതàµà´°à´¿";
+ }
+ }
+ });
+}));
+// moment.js language configuration
+// language : Marathi (mr)
+// author : Harshad Kale : https://github.com/kalehv
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var symbolMap = {
+ '1': '१',
+ '2': '२',
+ '3': '३',
+ '4': '४',
+ '5': '५',
+ '6': '६',
+ '7': '७',
+ '8': '८',
+ '9': '९',
+ '0': '०'
+ },
+ numberMap = {
+ '१': '1',
+ '२': '2',
+ '३': '3',
+ '४': '4',
+ '५': '5',
+ '६': '6',
+ '७': '7',
+ '८': '8',
+ '९': '9',
+ '०': '0'
+ };
+
+ return moment.lang('mr', {
+ months : 'जानेवारी_फेबà¥à¤°à¥à¤µà¤¾à¤°à¥€_मारà¥à¤š_à¤à¤ªà¥à¤°à¤¿à¤²_मे_जून_जà¥à¤²à¥ˆ_ऑगसà¥à¤Ÿ_सपà¥à¤Ÿà¥‡à¤‚बर_ऑकà¥à¤Ÿà¥‹à¤¬à¤°_नोवà¥à¤¹à¥‡à¤‚बर_डिसेंबर'.split("_"),
+ monthsShort: 'जाने._फेबà¥à¤°à¥._मारà¥à¤š._à¤à¤ªà¥à¤°à¤¿._मे._जून._जà¥à¤²à¥ˆ._ऑग._सपà¥à¤Ÿà¥‡à¤‚._ऑकà¥à¤Ÿà¥‹._नोवà¥à¤¹à¥‡à¤‚._डिसें.'.split("_"),
+ weekdays : 'रविवार_सोमवार_मंगळवार_बà¥à¤§à¤µà¤¾à¤°_गà¥à¤°à¥‚वार_शà¥à¤•à¥à¤°à¤µà¤¾à¤°_शनिवार'.split("_"),
+ weekdaysShort : 'रवि_सोम_मंगळ_बà¥à¤§_गà¥à¤°à¥‚_शà¥à¤•à¥à¤°_शनि'.split("_"),
+ weekdaysMin : 'र_सो_मं_बà¥_गà¥_शà¥_श'.split("_"),
+ longDateFormat : {
+ LT : "A h:mm वाजता",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY, LT",
+ LLLL : "dddd, D MMMM YYYY, LT"
+ },
+ calendar : {
+ sameDay : '[आज] LT',
+ nextDay : '[उदà¥à¤¯à¤¾] LT',
+ nextWeek : 'dddd, LT',
+ lastDay : '[काल] LT',
+ lastWeek: '[मागील] dddd, LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "%s नंतर",
+ past : "%s पूरà¥à¤µà¥€",
+ s : "सेकंद",
+ m: "à¤à¤• मिनिट",
+ mm: "%d मिनिटे",
+ h : "à¤à¤• तास",
+ hh : "%d तास",
+ d : "à¤à¤• दिवस",
+ dd : "%d दिवस",
+ M : "à¤à¤• महिना",
+ MM : "%d महिने",
+ y : "à¤à¤• वरà¥à¤·",
+ yy : "%d वरà¥à¤·à¥‡"
+ },
+ preparse: function (string) {
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ meridiem: function (hour, minute, isLower)
+ {
+ if (hour < 4) {
+ return "रातà¥à¤°à¥€";
+ } else if (hour < 10) {
+ return "सकाळी";
+ } else if (hour < 17) {
+ return "दà¥à¤ªà¤¾à¤°à¥€";
+ } else if (hour < 20) {
+ return "सायंकाळी";
+ } else {
+ return "रातà¥à¤°à¥€";
+ }
+ },
+ week : {
+ dow : 0, // Sunday is the first day of the week.
+ doy : 6 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : Bahasa Malaysia (ms-MY)
+// author : Weldan Jamili : https://github.com/weldan
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('ms-my', {
+ months : "Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),
+ monthsShort : "Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),
+ weekdays : "Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),
+ weekdaysShort : "Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),
+ weekdaysMin : "Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),
+ longDateFormat : {
+ LT : "HH.mm",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY [pukul] LT",
+ LLLL : "dddd, D MMMM YYYY [pukul] LT"
+ },
+ meridiem : function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'pagi';
+ } else if (hours < 15) {
+ return 'tengahari';
+ } else if (hours < 19) {
+ return 'petang';
+ } else {
+ return 'malam';
+ }
+ },
+ calendar : {
+ sameDay : '[Hari ini pukul] LT',
+ nextDay : '[Esok pukul] LT',
+ nextWeek : 'dddd [pukul] LT',
+ lastDay : '[Kelmarin pukul] LT',
+ lastWeek : 'dddd [lepas pukul] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "dalam %s",
+ past : "%s yang lepas",
+ s : "beberapa saat",
+ m : "seminit",
+ mm : "%d minit",
+ h : "sejam",
+ hh : "%d jam",
+ d : "sehari",
+ dd : "%d hari",
+ M : "sebulan",
+ MM : "%d bulan",
+ y : "setahun",
+ yy : "%d tahun"
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : norwegian bokmål (nb)
+// authors : Espen Hovlandsdal : https://github.com/rexxars
+// Sigurd Gartmann : https://github.com/sigurdga
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('nb', {
+ months : "januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),
+ monthsShort : "jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),
+ weekdays : "søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),
+ weekdaysShort : "sø._ma._ti._on._to._fr._lø.".split("_"),
+ weekdaysMin : "sø_ma_ti_on_to_fr_lø".split("_"),
+ longDateFormat : {
+ LT : "H.mm",
+ L : "DD.MM.YYYY",
+ LL : "D. MMMM YYYY",
+ LLL : "D. MMMM YYYY [kl.] LT",
+ LLLL : "dddd D. MMMM YYYY [kl.] LT"
+ },
+ calendar : {
+ sameDay: '[i dag kl.] LT',
+ nextDay: '[i morgen kl.] LT',
+ nextWeek: 'dddd [kl.] LT',
+ lastDay: '[i går kl.] LT',
+ lastWeek: '[forrige] dddd [kl.] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : "om %s",
+ past : "for %s siden",
+ s : "noen sekunder",
+ m : "ett minutt",
+ mm : "%d minutter",
+ h : "en time",
+ hh : "%d timer",
+ d : "en dag",
+ dd : "%d dager",
+ M : "en måned",
+ MM : "%d måneder",
+ y : "ett år",
+ yy : "%d år"
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : nepali/nepalese
+// author : suvash : https://github.com/suvash
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var symbolMap = {
+ '1': '१',
+ '2': '२',
+ '3': '३',
+ '4': '४',
+ '5': '५',
+ '6': '६',
+ '7': '७',
+ '8': '८',
+ '9': '९',
+ '0': '०'
+ },
+ numberMap = {
+ '१': '1',
+ '२': '2',
+ '३': '3',
+ '४': '4',
+ '५': '5',
+ '६': '6',
+ '७': '7',
+ '८': '8',
+ '९': '9',
+ '०': '0'
+ };
+
+ return moment.lang('ne', {
+ months : 'जनवरी_फेबà¥à¤°à¥à¤µà¤°à¥€_मारà¥à¤š_अपà¥à¤°à¤¿à¤²_मई_जà¥à¤¨_जà¥à¤²à¤¾à¤ˆ_अगषà¥à¤Ÿ_सेपà¥à¤Ÿà¥‡à¤®à¥à¤¬à¤°_अकà¥à¤Ÿà¥‹à¤¬à¤°_नोभेमà¥à¤¬à¤°_डिसेमà¥à¤¬à¤°'.split("_"),
+ monthsShort : 'जन._फेबà¥à¤°à¥._मारà¥à¤š_अपà¥à¤°à¤¿._मई_जà¥à¤¨_जà¥à¤²à¤¾à¤ˆ._अग._सेपà¥à¤Ÿ._अकà¥à¤Ÿà¥‹._नोभे._डिसे.'.split("_"),
+ weekdays : 'आइतबार_सोमबार_मङà¥à¤—लबार_बà¥à¤§à¤¬à¤¾à¤°_बिहिबार_शà¥à¤•à¥à¤°à¤¬à¤¾à¤°_शनिबार'.split("_"),
+ weekdaysShort : 'आइत._सोम._मङà¥à¤—ल._बà¥à¤§._बिहि._शà¥à¤•à¥à¤°._शनि.'.split("_"),
+ weekdaysMin : 'आइ._सो._मङà¥_बà¥._बि._शà¥._श.'.split("_"),
+ longDateFormat : {
+ LT : "Aको h:mm बजे",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY, LT",
+ LLLL : "dddd, D MMMM YYYY, LT"
+ },
+ preparse: function (string) {
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 3) {
+ return "राती";
+ } else if (hour < 10) {
+ return "बिहान";
+ } else if (hour < 15) {
+ return "दिउà¤à¤¸à¥‹";
+ } else if (hour < 18) {
+ return "बेलà¥à¤•à¤¾";
+ } else if (hour < 20) {
+ return "साà¤à¤";
+ } else {
+ return "राती";
+ }
+ },
+ calendar : {
+ sameDay : '[आज] LT',
+ nextDay : '[भोली] LT',
+ nextWeek : '[आउà¤à¤¦à¥‹] dddd[,] LT',
+ lastDay : '[हिजो] LT',
+ lastWeek : '[गà¤à¤•à¥‹] dddd[,] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "%sमा",
+ past : "%s अगाडी",
+ s : "केही समय",
+ m : "à¤à¤• मिनेट",
+ mm : "%d मिनेट",
+ h : "à¤à¤• घणà¥à¤Ÿà¤¾",
+ hh : "%d घणà¥à¤Ÿà¤¾",
+ d : "à¤à¤• दिन",
+ dd : "%d दिन",
+ M : "à¤à¤• महिना",
+ MM : "%d महिना",
+ y : "à¤à¤• बरà¥à¤·",
+ yy : "%d बरà¥à¤·"
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : dutch (nl)
+// author : Joris Röling : https://github.com/jjupiter
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var monthsShortWithDots = "jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),
+ monthsShortWithoutDots = "jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_");
+
+ return moment.lang('nl', {
+ months : "januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),
+ monthsShort : function (m, format) {
+ if (/-MMM-/.test(format)) {
+ return monthsShortWithoutDots[m.month()];
+ } else {
+ return monthsShortWithDots[m.month()];
+ }
+ },
+ weekdays : "zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),
+ weekdaysShort : "zo._ma._di._wo._do._vr._za.".split("_"),
+ weekdaysMin : "Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD-MM-YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd D MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay: '[vandaag om] LT',
+ nextDay: '[morgen om] LT',
+ nextWeek: 'dddd [om] LT',
+ lastDay: '[gisteren om] LT',
+ lastWeek: '[afgelopen] dddd [om] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : "over %s",
+ past : "%s geleden",
+ s : "een paar seconden",
+ m : "één minuut",
+ mm : "%d minuten",
+ h : "één uur",
+ hh : "%d uur",
+ d : "één dag",
+ dd : "%d dagen",
+ M : "één maand",
+ MM : "%d maanden",
+ y : "één jaar",
+ yy : "%d jaar"
+ },
+ ordinal : function (number) {
+ return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : norwegian nynorsk (nn)
+// author : https://github.com/mechuwind
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('nn', {
+ months : "januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),
+ monthsShort : "jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),
+ weekdays : "sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),
+ weekdaysShort : "sun_mån_tys_ons_tor_fre_lau".split("_"),
+ weekdaysMin : "su_må_ty_on_to_fr_lø".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD.MM.YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd D MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay: '[I dag klokka] LT',
+ nextDay: '[I morgon klokka] LT',
+ nextWeek: 'dddd [klokka] LT',
+ lastDay: '[I går klokka] LT',
+ lastWeek: '[Føregående] dddd [klokka] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : "om %s",
+ past : "for %s siden",
+ s : "noen sekund",
+ m : "ett minutt",
+ mm : "%d minutt",
+ h : "en time",
+ hh : "%d timar",
+ d : "en dag",
+ dd : "%d dagar",
+ M : "en månad",
+ MM : "%d månader",
+ y : "ett år",
+ yy : "%d år"
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : polish (pl)
+// author : Rafal Hirsz : https://github.com/evoL
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var monthsNominative = "styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),
+ monthsSubjective = "stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");
+
+ function plural(n) {
+ return (n % 10 < 5) && (n % 10 > 1) && (~~(n / 10) !== 1);
+ }
+
+ function translate(number, withoutSuffix, key) {
+ var result = number + " ";
+ switch (key) {
+ case 'm':
+ return withoutSuffix ? 'minuta' : 'minutÄ™';
+ case 'mm':
+ return result + (plural(number) ? 'minuty' : 'minut');
+ case 'h':
+ return withoutSuffix ? 'godzina' : 'godzinÄ™';
+ case 'hh':
+ return result + (plural(number) ? 'godziny' : 'godzin');
+ case 'MM':
+ return result + (plural(number) ? 'miesiące' : 'miesięcy');
+ case 'yy':
+ return result + (plural(number) ? 'lata' : 'lat');
+ }
+ }
+
+ return moment.lang('pl', {
+ months : function (momentToFormat, format) {
+ if (/D MMMM/.test(format)) {
+ return monthsSubjective[momentToFormat.month()];
+ } else {
+ return monthsNominative[momentToFormat.month()];
+ }
+ },
+ monthsShort : "sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),
+ weekdays : "niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),
+ weekdaysShort : "nie_pon_wt_śr_czw_pt_sb".split("_"),
+ weekdaysMin : "N_Pn_Wt_Åšr_Cz_Pt_So".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD.MM.YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd, D MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay: '[DziÅ› o] LT',
+ nextDay: '[Jutro o] LT',
+ nextWeek: '[W] dddd [o] LT',
+ lastDay: '[Wczoraj o] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[W zeszłą niedzielę o] LT';
+ case 3:
+ return '[W zeszłą środę o] LT';
+ case 6:
+ return '[W zeszłą sobotę o] LT';
+ default:
+ return '[W zeszły] dddd [o] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : "za %s",
+ past : "%s temu",
+ s : "kilka sekund",
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : "1 dzień",
+ dd : '%d dni',
+ M : "miesiÄ…c",
+ MM : translate,
+ y : "rok",
+ yy : translate
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : brazilian portuguese (pt-br)
+// author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('pt-br', {
+ months : "Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),
+ monthsShort : "Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),
+ weekdays : "Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),
+ weekdaysShort : "Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),
+ weekdaysMin : "Dom_2ª_3ª_4ª_5ª_6ª_Sáb".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD/MM/YYYY",
+ LL : "D [de] MMMM [de] YYYY",
+ LLL : "D [de] MMMM [de] YYYY LT",
+ LLLL : "dddd, D [de] MMMM [de] YYYY LT"
+ },
+ calendar : {
+ sameDay: '[Hoje às] LT',
+ nextDay: '[Amanhã às] LT',
+ nextWeek: 'dddd [às] LT',
+ lastDay: '[Ontem às] LT',
+ lastWeek: function () {
+ return (this.day() === 0 || this.day() === 6) ?
+ '[Último] dddd [às] LT' : // Saturday + Sunday
+ '[Última] dddd [às] LT'; // Monday - Friday
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : "em %s",
+ past : "%s atrás",
+ s : "segundos",
+ m : "um minuto",
+ mm : "%d minutos",
+ h : "uma hora",
+ hh : "%d horas",
+ d : "um dia",
+ dd : "%d dias",
+ M : "um mês",
+ MM : "%d meses",
+ y : "um ano",
+ yy : "%d anos"
+ },
+ ordinal : '%dº'
+ });
+}));
+// moment.js language configuration
+// language : portuguese (pt)
+// author : Jefferson : https://github.com/jalex79
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('pt', {
+ months : "Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),
+ monthsShort : "Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),
+ weekdays : "Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),
+ weekdaysShort : "Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),
+ weekdaysMin : "Dom_2ª_3ª_4ª_5ª_6ª_Sáb".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD/MM/YYYY",
+ LL : "D [de] MMMM [de] YYYY",
+ LLL : "D [de] MMMM [de] YYYY LT",
+ LLLL : "dddd, D [de] MMMM [de] YYYY LT"
+ },
+ calendar : {
+ sameDay: '[Hoje às] LT',
+ nextDay: '[Amanhã às] LT',
+ nextWeek: 'dddd [às] LT',
+ lastDay: '[Ontem às] LT',
+ lastWeek: function () {
+ return (this.day() === 0 || this.day() === 6) ?
+ '[Último] dddd [às] LT' : // Saturday + Sunday
+ '[Última] dddd [às] LT'; // Monday - Friday
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : "em %s",
+ past : "%s atrás",
+ s : "segundos",
+ m : "um minuto",
+ mm : "%d minutos",
+ h : "uma hora",
+ hh : "%d horas",
+ d : "um dia",
+ dd : "%d dias",
+ M : "um mês",
+ MM : "%d meses",
+ y : "um ano",
+ yy : "%d anos"
+ },
+ ordinal : '%dº',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : romanian (ro)
+// author : Vlad Gurdiga : https://github.com/gurdiga
+// author : Valentin Agachi : https://github.com/avaly
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('ro', {
+ months : "Ianuarie_Februarie_Martie_Aprilie_Mai_Iunie_Iulie_August_Septembrie_Octombrie_Noiembrie_Decembrie".split("_"),
+ monthsShort : "Ian_Feb_Mar_Apr_Mai_Iun_Iul_Aug_Sep_Oct_Noi_Dec".split("_"),
+ weekdays : "Duminică_Luni_Marţi_Miercuri_Joi_Vineri_Sâmbătă".split("_"),
+ weekdaysShort : "Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),
+ weekdaysMin : "Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),
+ longDateFormat : {
+ LT : "H:mm",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY H:mm",
+ LLLL : "dddd, D MMMM YYYY H:mm"
+ },
+ calendar : {
+ sameDay: "[azi la] LT",
+ nextDay: '[mâine la] LT',
+ nextWeek: 'dddd [la] LT',
+ lastDay: '[ieri la] LT',
+ lastWeek: '[fosta] dddd [la] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : "peste %s",
+ past : "%s în urmă",
+ s : "câteva secunde",
+ m : "un minut",
+ mm : "%d minute",
+ h : "o oră",
+ hh : "%d ore",
+ d : "o zi",
+ dd : "%d zile",
+ M : "o lună",
+ MM : "%d luni",
+ y : "un an",
+ yy : "%d ani"
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : russian (ru)
+// author : Viktorminator : https://github.com/Viktorminator
+// Author : Menelion Elensúle : https://github.com/Oire
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function plural(word, num) {
+ var forms = word.split('_');
+ return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
+ }
+
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ 'mm': 'минута_минуты_минут',
+ 'hh': 'чаÑ_чаÑа_чаÑов',
+ 'dd': 'день_днÑ_дней',
+ 'MM': 'меÑÑц_меÑÑца_меÑÑцев',
+ 'yy': 'год_года_лет'
+ };
+ if (key === 'm') {
+ return withoutSuffix ? 'минута' : 'минуту';
+ }
+ else {
+ return number + ' ' + plural(format[key], +number);
+ }
+ }
+
+ function monthsCaseReplace(m, format) {
+ var months = {
+ 'nominative': 'Ñнварь_февраль_март_апрель_май_июнь_июль_авгуÑÑ‚_ÑентÑбрь_октÑбрь_ноÑбрь_декабрь'.split('_'),
+ 'accusative': 'ÑнварÑ_февралÑ_марта_апрелÑ_маÑ_июнÑ_июлÑ_авгуÑта_ÑентÑбрÑ_октÑбрÑ_ноÑбрÑ_декабрÑ'.split('_')
+ },
+
+ nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
+ 'accusative' :
+ 'nominative';
+
+ return months[nounCase][m.month()];
+ }
+
+ function monthsShortCaseReplace(m, format) {
+ var monthsShort = {
+ 'nominative': 'Ñнв_фев_мар_апр_май_июнь_июль_авг_Ñен_окт_ноÑ_дек'.split('_'),
+ 'accusative': 'Ñнв_фев_мар_апр_маÑ_июнÑ_июлÑ_авг_Ñен_окт_ноÑ_дек'.split('_')
+ },
+
+ nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
+ 'accusative' :
+ 'nominative';
+
+ return monthsShort[nounCase][m.month()];
+ }
+
+ function weekdaysCaseReplace(m, format) {
+ var weekdays = {
+ 'nominative': 'воÑкреÑенье_понедельник_вторник_Ñреда_четверг_пÑтница_Ñуббота'.split('_'),
+ 'accusative': 'воÑкреÑенье_понедельник_вторник_Ñреду_четверг_пÑтницу_Ñубботу'.split('_')
+ },
+
+ nounCase = (/\[ ?[Вв] ?(?:прошлую|Ñледующую)? ?\] ?dddd/).test(format) ?
+ 'accusative' :
+ 'nominative';
+
+ return weekdays[nounCase][m.day()];
+ }
+
+ return moment.lang('ru', {
+ months : monthsCaseReplace,
+ monthsShort : monthsShortCaseReplace,
+ weekdays : weekdaysCaseReplace,
+ weekdaysShort : "вÑ_пн_вт_ÑÑ€_чт_пт_Ñб".split("_"),
+ weekdaysMin : "вÑ_пн_вт_ÑÑ€_чт_пт_Ñб".split("_"),
+ monthsParse : [/^Ñнв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[й|Ñ]/i, /^июн/i, /^июл/i, /^авг/i, /^Ñен/i, /^окт/i, /^ноÑ/i, /^дек/i],
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD.MM.YYYY",
+ LL : "D MMMM YYYY г.",
+ LLL : "D MMMM YYYY г., LT",
+ LLLL : "dddd, D MMMM YYYY г., LT"
+ },
+ calendar : {
+ sameDay: '[Ð¡ÐµÐ³Ð¾Ð´Ð½Ñ Ð²] LT',
+ nextDay: '[Завтра в] LT',
+ lastDay: '[Вчера в] LT',
+ nextWeek: function () {
+ return this.day() === 2 ? '[Во] dddd [в] LT' : '[В] dddd [в] LT';
+ },
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[В прошлое] dddd [в] LT';
+ case 1:
+ case 2:
+ case 4:
+ return '[В прошлый] dddd [в] LT';
+ case 3:
+ case 5:
+ case 6:
+ return '[В прошлую] dddd [в] LT';
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : "через %s",
+ past : "%s назад",
+ s : "неÑколько Ñекунд",
+ m : relativeTimeWithPlural,
+ mm : relativeTimeWithPlural,
+ h : "чаÑ",
+ hh : relativeTimeWithPlural,
+ d : "день",
+ dd : relativeTimeWithPlural,
+ M : "меÑÑц",
+ MM : relativeTimeWithPlural,
+ y : "год",
+ yy : relativeTimeWithPlural
+ },
+
+ // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
+
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return "ночи";
+ } else if (hour < 12) {
+ return "утра";
+ } else if (hour < 17) {
+ return "днÑ";
+ } else {
+ return "вечера";
+ }
+ },
+
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'M':
+ case 'd':
+ case 'DDD':
+ return number + '-й';
+ case 'D':
+ return number + '-го';
+ case 'w':
+ case 'W':
+ return number + '-Ñ';
+ default:
+ return number;
+ }
+ },
+
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : slovak (sk)
+// author : Martin Minka : https://github.com/k2s
+// based on work of petrbela : https://github.com/petrbela
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ var months = "január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),
+ monthsShort = "jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");
+
+ function plural(n) {
+ return (n > 1) && (n < 5);
+ }
+
+ function translate(number, withoutSuffix, key, isFuture) {
+ var result = number + " ";
+ switch (key) {
+ case 's': // a few seconds / in a few seconds / a few seconds ago
+ return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';
+ case 'm': // a minute / in a minute / a minute ago
+ return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');
+ case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'minúty' : 'minút');
+ } else {
+ return result + 'minútami';
+ }
+ break;
+ case 'h': // an hour / in an hour / an hour ago
+ return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
+ case 'hh': // 9 hours / in 9 hours / 9 hours ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'hodiny' : 'hodín');
+ } else {
+ return result + 'hodinami';
+ }
+ break;
+ case 'd': // a day / in a day / a day ago
+ return (withoutSuffix || isFuture) ? 'deň' : 'dňom';
+ case 'dd': // 9 days / in 9 days / 9 days ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'dni' : 'dní');
+ } else {
+ return result + 'dňami';
+ }
+ break;
+ case 'M': // a month / in a month / a month ago
+ return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';
+ case 'MM': // 9 months / in 9 months / 9 months ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'mesiace' : 'mesiacov');
+ } else {
+ return result + 'mesiacmi';
+ }
+ break;
+ case 'y': // a year / in a year / a year ago
+ return (withoutSuffix || isFuture) ? 'rok' : 'rokom';
+ case 'yy': // 9 years / in 9 years / 9 years ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'roky' : 'rokov');
+ } else {
+ return result + 'rokmi';
+ }
+ break;
+ }
+ }
+
+ return moment.lang('sk', {
+ months : months,
+ monthsShort : monthsShort,
+ monthsParse : (function (months, monthsShort) {
+ var i, _monthsParse = [];
+ for (i = 0; i < 12; i++) {
+ // use custom parser to solve problem with July (Äervenec)
+ _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');
+ }
+ return _monthsParse;
+ }(months, monthsShort)),
+ weekdays : "nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),
+ weekdaysShort : "ne_po_ut_st_Å¡t_pi_so".split("_"),
+ weekdaysMin : "ne_po_ut_st_Å¡t_pi_so".split("_"),
+ longDateFormat : {
+ LT: "H:mm",
+ L : "DD.MM.YYYY",
+ LL : "D. MMMM YYYY",
+ LLL : "D. MMMM YYYY LT",
+ LLLL : "dddd D. MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay: "[dnes o] LT",
+ nextDay: '[zajtra o] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[v nedeľu o] LT';
+ case 1:
+ case 2:
+ return '[v] dddd [o] LT';
+ case 3:
+ return '[v stredu o] LT';
+ case 4:
+ return '[vo Å¡tvrtok o] LT';
+ case 5:
+ return '[v piatok o] LT';
+ case 6:
+ return '[v sobotu o] LT';
+ }
+ },
+ lastDay: '[vÄera o] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[minulú nedeľu o] LT';
+ case 1:
+ case 2:
+ return '[minulý] dddd [o] LT';
+ case 3:
+ return '[minulú stredu o] LT';
+ case 4:
+ case 5:
+ return '[minulý] dddd [o] LT';
+ case 6:
+ return '[minulú sobotu o] LT';
+ }
+ },
+ sameElse: "L"
+ },
+ relativeTime : {
+ future : "za %s",
+ past : "pred %s",
+ s : translate,
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : translate,
+ dd : translate,
+ M : translate,
+ MM : translate,
+ y : translate,
+ yy : translate
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : slovenian (sl)
+// author : Robert Sedovšek : https://github.com/sedovsek
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function translate(number, withoutSuffix, key) {
+ var result = number + " ";
+ switch (key) {
+ case 'm':
+ return withoutSuffix ? 'ena minuta' : 'eno minuto';
+ case 'mm':
+ if (number === 1) {
+ result += 'minuta';
+ } else if (number === 2) {
+ result += 'minuti';
+ } else if (number === 3 || number === 4) {
+ result += 'minute';
+ } else {
+ result += 'minut';
+ }
+ return result;
+ case 'h':
+ return withoutSuffix ? 'ena ura' : 'eno uro';
+ case 'hh':
+ if (number === 1) {
+ result += 'ura';
+ } else if (number === 2) {
+ result += 'uri';
+ } else if (number === 3 || number === 4) {
+ result += 'ure';
+ } else {
+ result += 'ur';
+ }
+ return result;
+ case 'dd':
+ if (number === 1) {
+ result += 'dan';
+ } else {
+ result += 'dni';
+ }
+ return result;
+ case 'MM':
+ if (number === 1) {
+ result += 'mesec';
+ } else if (number === 2) {
+ result += 'meseca';
+ } else if (number === 3 || number === 4) {
+ result += 'mesece';
+ } else {
+ result += 'mesecev';
+ }
+ return result;
+ case 'yy':
+ if (number === 1) {
+ result += 'leto';
+ } else if (number === 2) {
+ result += 'leti';
+ } else if (number === 3 || number === 4) {
+ result += 'leta';
+ } else {
+ result += 'let';
+ }
+ return result;
+ }
+ }
+
+ return moment.lang('sl', {
+ months : "januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),
+ monthsShort : "jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),
+ weekdays : "nedelja_ponedeljek_torek_sreda_Äetrtek_petek_sobota".split("_"),
+ weekdaysShort : "ned._pon._tor._sre._Äet._pet._sob.".split("_"),
+ weekdaysMin : "ne_po_to_sr_Äe_pe_so".split("_"),
+ longDateFormat : {
+ LT : "H:mm",
+ L : "DD. MM. YYYY",
+ LL : "D. MMMM YYYY",
+ LLL : "D. MMMM YYYY LT",
+ LLLL : "dddd, D. MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay : '[danes ob] LT',
+ nextDay : '[jutri ob] LT',
+
+ nextWeek : function () {
+ switch (this.day()) {
+ case 0:
+ return '[v] [nedeljo] [ob] LT';
+ case 3:
+ return '[v] [sredo] [ob] LT';
+ case 6:
+ return '[v] [soboto] [ob] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[v] dddd [ob] LT';
+ }
+ },
+ lastDay : '[vÄeraj ob] LT',
+ lastWeek : function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 6:
+ return '[prejšnja] dddd [ob] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[prejšnji] dddd [ob] LT';
+ }
+ },
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "Äez %s",
+ past : "%s nazaj",
+ s : "nekaj sekund",
+ m : translate,
+ mm : translate,
+ h : translate,
+ hh : translate,
+ d : "en dan",
+ dd : translate,
+ M : "en mesec",
+ MM : translate,
+ y : "eno leto",
+ yy : translate
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : Albanian (sq)
+// author : Flakërim Ismani : https://github.com/flakerimi
+// author: Menelion Elensúle: https://github.com/Oire (tests)
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('sq', {
+ months : "Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),
+ monthsShort : "Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),
+ weekdays : "E Diel_E Hënë_E Marte_E Mërkure_E Enjte_E Premte_E Shtunë".split("_"),
+ weekdaysShort : "Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),
+ weekdaysMin : "D_H_Ma_Më_E_P_Sh".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd, D MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay : '[Sot në] LT',
+ nextDay : '[Neser në] LT',
+ nextWeek : 'dddd [në] LT',
+ lastDay : '[Dje në] LT',
+ lastWeek : 'dddd [e kaluar në] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "në %s",
+ past : "%s me parë",
+ s : "disa seconda",
+ m : "një minut",
+ mm : "%d minutea",
+ h : "një orë",
+ hh : "%d orë",
+ d : "një ditë",
+ dd : "%d ditë",
+ M : "një muaj",
+ MM : "%d muaj",
+ y : "një vit",
+ yy : "%d vite"
+ },
+ ordinal : '%d.',
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : swedish (sv)
+// author : Jens Alm : https://github.com/ulmus
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('sv', {
+ months : "januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),
+ monthsShort : "jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),
+ weekdays : "söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),
+ weekdaysShort : "sön_mån_tis_ons_tor_fre_lör".split("_"),
+ weekdaysMin : "sö_må_ti_on_to_fr_lö".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "YYYY-MM-DD",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd D MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay: '[Idag] LT',
+ nextDay: '[Imorgon] LT',
+ lastDay: '[Igår] LT',
+ nextWeek: 'dddd LT',
+ lastWeek: '[Förra] dddd[en] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : "om %s",
+ past : "för %s sedan",
+ s : "några sekunder",
+ m : "en minut",
+ mm : "%d minuter",
+ h : "en timme",
+ hh : "%d timmar",
+ d : "en dag",
+ dd : "%d dagar",
+ M : "en månad",
+ MM : "%d månader",
+ y : "ett år",
+ yy : "%d år"
+ },
+ ordinal : function (number) {
+ var b = number % 10,
+ output = (~~ (number % 100 / 10) === 1) ? 'e' :
+ (b === 1) ? 'a' :
+ (b === 2) ? 'a' :
+ (b === 3) ? 'e' : 'e';
+ return number + output;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : thai (th)
+// author : Kridsada Thanabulpong : https://github.com/sirn
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('th', {
+ months : "มà¸à¸£à¸²à¸„ม_à¸à¸¸à¸¡à¸ à¸²à¸žà¸±à¸™à¸˜à¹Œ_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_à¸à¸£à¸à¸Žà¸²à¸„ม_สิงหาคม_à¸à¸±à¸™à¸¢à¸²à¸¢à¸™_ตุลาคม_พฤศจิà¸à¸²à¸¢à¸™_ธันวาคม".split("_"),
+ monthsShort : "มà¸à¸£à¸²_à¸à¸¸à¸¡à¸ à¸²_มีนา_เมษา_พฤษภา_มิถุนา_à¸à¸£à¸à¸Žà¸²_สิงหา_à¸à¸±à¸™à¸¢à¸²_ตุลา_พฤศจิà¸à¸²_ธันวา".split("_"),
+ weekdays : "อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุà¸à¸£à¹Œ_เสาร์".split("_"),
+ weekdaysShort : "อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุà¸à¸£à¹Œ_เสาร์".split("_"), // yes, three characters difference
+ weekdaysMin : "อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),
+ longDateFormat : {
+ LT : "H นาฬิà¸à¸² m นาที",
+ L : "YYYY/MM/DD",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY เวลา LT",
+ LLLL : "วันddddที่ D MMMM YYYY เวลา LT"
+ },
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 12) {
+ return "à¸à¹ˆà¸­à¸™à¹€à¸—ี่ยง";
+ } else {
+ return "หลังเที่ยง";
+ }
+ },
+ calendar : {
+ sameDay : '[วันนี้ เวลา] LT',
+ nextDay : '[พรุ่งนี้ เวลา] LT',
+ nextWeek : 'dddd[หน้า เวลา] LT',
+ lastDay : '[เมื่อวานนี้ เวลา] LT',
+ lastWeek : '[วัน]dddd[ที่à¹à¸¥à¹‰à¸§ เวลา] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "อีภ%s",
+ past : "%sที่à¹à¸¥à¹‰à¸§",
+ s : "ไม่à¸à¸µà¹ˆà¸§à¸´à¸™à¸²à¸—ี",
+ m : "1 นาที",
+ mm : "%d นาที",
+ h : "1 ชั่วโมง",
+ hh : "%d ชั่วโมง",
+ d : "1 วัน",
+ dd : "%d วัน",
+ M : "1 เดือน",
+ MM : "%d เดือน",
+ y : "1 ปี",
+ yy : "%d ปี"
+ }
+ });
+}));
+// moment.js language configuration
+// language : Tagalog/Filipino (tl-ph)
+// author : Dan Hagman
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('tl-ph', {
+ months : "Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),
+ monthsShort : "Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),
+ weekdays : "Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),
+ weekdaysShort : "Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),
+ weekdaysMin : "Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "MM/D/YYYY",
+ LL : "MMMM D, YYYY",
+ LLL : "MMMM D, YYYY LT",
+ LLLL : "dddd, MMMM DD, YYYY LT"
+ },
+ calendar : {
+ sameDay: "[Ngayon sa] LT",
+ nextDay: '[Bukas sa] LT',
+ nextWeek: 'dddd [sa] LT',
+ lastDay: '[Kahapon sa] LT',
+ lastWeek: 'dddd [huling linggo] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : "sa loob ng %s",
+ past : "%s ang nakalipas",
+ s : "ilang segundo",
+ m : "isang minuto",
+ mm : "%d minuto",
+ h : "isang oras",
+ hh : "%d oras",
+ d : "isang araw",
+ dd : "%d araw",
+ M : "isang buwan",
+ MM : "%d buwan",
+ y : "isang taon",
+ yy : "%d taon"
+ },
+ ordinal : function (number) {
+ return number;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : turkish (tr)
+// authors : Erhan Gundogan : https://github.com/erhangundogan,
+// Burak YiÄŸit Kaya: https://github.com/BYK
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+
+ var suffixes = {
+ 1: "'inci",
+ 5: "'inci",
+ 8: "'inci",
+ 70: "'inci",
+ 80: "'inci",
+
+ 2: "'nci",
+ 7: "'nci",
+ 20: "'nci",
+ 50: "'nci",
+
+ 3: "'üncü",
+ 4: "'üncü",
+ 100: "'üncü",
+
+ 6: "'ncı",
+
+ 9: "'uncu",
+ 10: "'uncu",
+ 30: "'uncu",
+
+ 60: "'ıncı",
+ 90: "'ıncı"
+ };
+
+ return moment.lang('tr', {
+ months : "Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),
+ monthsShort : "Oca_Åžub_Mar_Nis_May_Haz_Tem_AÄŸu_Eyl_Eki_Kas_Ara".split("_"),
+ weekdays : "Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),
+ weekdaysShort : "Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),
+ weekdaysMin : "Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD.MM.YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd, D MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay : '[bugün saat] LT',
+ nextDay : '[yarın saat] LT',
+ nextWeek : '[haftaya] dddd [saat] LT',
+ lastDay : '[dün] LT',
+ lastWeek : '[geçen hafta] dddd [saat] LT',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "%s sonra",
+ past : "%s önce",
+ s : "birkaç saniye",
+ m : "bir dakika",
+ mm : "%d dakika",
+ h : "bir saat",
+ hh : "%d saat",
+ d : "bir gün",
+ dd : "%d gün",
+ M : "bir ay",
+ MM : "%d ay",
+ y : "bir yıl",
+ yy : "%d yıl"
+ },
+ ordinal : function (number) {
+ if (number === 0) { // special case for zero
+ return number + "'ıncı";
+ }
+ var a = number % 10,
+ b = number % 100 - a,
+ c = number >= 100 ? 100 : null;
+
+ return number + (suffixes[a] || suffixes[b] || suffixes[c]);
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : Morocco Central Atlas Tamaziɣt in Latin (tzm-la)
+// author : Abdel Said : https://github.com/abdelsaid
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('tzm-la', {
+ months : "innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),
+ monthsShort : "innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),
+ weekdays : "asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas".split("_"),
+ weekdaysShort : "asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas".split("_"),
+ weekdaysMin : "asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd D MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay: "[asdkh g] LT",
+ nextDay: '[aska g] LT',
+ nextWeek: 'dddd [g] LT',
+ lastDay: '[assant g] LT',
+ lastWeek: 'dddd [g] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : "dadkh s yan %s",
+ past : "yan %s",
+ s : "imik",
+ m : "minuá¸",
+ mm : "%d minuá¸",
+ h : "saɛa",
+ hh : "%d tassaɛin",
+ d : "ass",
+ dd : "%d ossan",
+ M : "ayowr",
+ MM : "%d iyyirn",
+ y : "asgas",
+ yy : "%d isgasn"
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : Morocco Central Atlas Tamaziɣt (tzm)
+// author : Abdel Said : https://github.com/abdelsaid
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('tzm', {
+ months : "ⵉâµâµâ´°âµ¢âµ”_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓâµâµ¢âµ“_ⵢⵓâµâµ¢âµ“âµ£_ⵖⵓⵛⵜ_ⵛⵓⵜⴰâµâ´±âµ‰âµ”_ⴽⵟⵓⴱⵕ_âµâµ“ⵡⴰâµâ´±âµ‰âµ”_ⴷⵓⵊâµâ´±âµ‰âµ”".split("_"),
+ monthsShort : "ⵉâµâµâ´°âµ¢âµ”_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓâµâµ¢âµ“_ⵢⵓâµâµ¢âµ“âµ£_ⵖⵓⵛⵜ_ⵛⵓⵜⴰâµâ´±âµ‰âµ”_ⴽⵟⵓⴱⵕ_âµâµ“ⵡⴰâµâ´±âµ‰âµ”_ⴷⵓⵊâµâ´±âµ‰âµ”".split("_"),
+ weekdays : "ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),
+ weekdaysShort : "ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),
+ weekdaysMin : "ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "dddd D MMMM YYYY LT"
+ },
+ calendar : {
+ sameDay: "[ⴰⵙⴷⵅ ⴴ] LT",
+ nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
+ nextWeek: 'dddd [â´´] LT',
+ lastDay: '[ⴰⵚⴰâµâµœ â´´] LT',
+ lastWeek: 'dddd [â´´] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : "ⴷⴰⴷⵅ ⵙ ⵢⴰⵠ%s",
+ past : "ⵢⴰⵠ%s",
+ s : "ⵉⵎⵉⴽ",
+ m : "ⵎⵉâµâµ“â´º",
+ mm : "%d ⵎⵉâµâµ“â´º",
+ h : "ⵙⴰⵄⴰ",
+ hh : "%d ⵜⴰⵙⵙⴰⵄⵉâµ",
+ d : "ⴰⵙⵙ",
+ dd : "%d oⵙⵙⴰâµ",
+ M : "ⴰⵢoⵓⵔ",
+ MM : "%d ⵉⵢⵢⵉⵔâµ",
+ y : "ⴰⵙⴳⴰⵙ",
+ yy : "%d ⵉⵙⴳⴰⵙâµ"
+ },
+ week : {
+ dow : 6, // Saturday is the first day of the week.
+ doy : 12 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : ukrainian (uk)
+// author : zemlanin : https://github.com/zemlanin
+// Author : Menelion Elensúle : https://github.com/Oire
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ function plural(word, num) {
+ var forms = word.split('_');
+ return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
+ }
+
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ 'mm': 'хвилина_хвилини_хвилин',
+ 'hh': 'година_години_годин',
+ 'dd': 'день_дні_днів',
+ 'MM': 'міÑÑць_міÑÑці_міÑÑців',
+ 'yy': 'рік_роки_років'
+ };
+ if (key === 'm') {
+ return withoutSuffix ? 'хвилина' : 'хвилину';
+ }
+ else if (key === 'h') {
+ return withoutSuffix ? 'година' : 'годину';
+ }
+ else {
+ return number + ' ' + plural(format[key], +number);
+ }
+ }
+
+ function monthsCaseReplace(m, format) {
+ var months = {
+ 'nominative': 'Ñічень_лютий_березень_квітень_травень_червень_липень_Ñерпень_вереÑень_жовтень_лиÑтопад_грудень'.split('_'),
+ 'accusative': 'ÑічнÑ_лютого_березнÑ_квітнÑ_травнÑ_червнÑ_липнÑ_ÑерпнÑ_вереÑнÑ_жовтнÑ_лиÑтопада_груднÑ'.split('_')
+ },
+
+ nounCase = (/D[oD]? *MMMM?/).test(format) ?
+ 'accusative' :
+ 'nominative';
+
+ return months[nounCase][m.month()];
+ }
+
+ function weekdaysCaseReplace(m, format) {
+ var weekdays = {
+ 'nominative': 'неділÑ_понеділок_вівторок_Ñереда_четвер_п’ÑтницÑ_Ñубота'.split('_'),
+ 'accusative': 'неділю_понеділок_вівторок_Ñереду_четвер_п’Ñтницю_Ñуботу'.split('_'),
+ 'genitive': 'неділі_понеділка_вівторка_Ñереди_четверга_п’Ñтниці_Ñуботи'.split('_')
+ },
+
+ nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ?
+ 'accusative' :
+ ((/\[?(?:минулої|наÑтупної)? ?\] ?dddd/).test(format) ?
+ 'genitive' :
+ 'nominative');
+
+ return weekdays[nounCase][m.day()];
+ }
+
+ function processHoursFunction(str) {
+ return function () {
+ return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
+ };
+ }
+
+ return moment.lang('uk', {
+ months : monthsCaseReplace,
+ monthsShort : "Ñіч_лют_бер_квіт_трав_черв_лип_Ñерп_вер_жовт_лиÑÑ‚_груд".split("_"),
+ weekdays : weekdaysCaseReplace,
+ weekdaysShort : "нд_пн_вт_ÑÑ€_чт_пт_Ñб".split("_"),
+ weekdaysMin : "нд_пн_вт_ÑÑ€_чт_пт_Ñб".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD.MM.YYYY",
+ LL : "D MMMM YYYY р.",
+ LLL : "D MMMM YYYY р., LT",
+ LLLL : "dddd, D MMMM YYYY р., LT"
+ },
+ calendar : {
+ sameDay: processHoursFunction('[Сьогодні '),
+ nextDay: processHoursFunction('[Завтра '),
+ lastDay: processHoursFunction('[Вчора '),
+ nextWeek: processHoursFunction('[У] dddd ['),
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 5:
+ case 6:
+ return processHoursFunction('[Минулої] dddd [').call(this);
+ case 1:
+ case 2:
+ case 4:
+ return processHoursFunction('[Минулого] dddd [').call(this);
+ }
+ },
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : "за %s",
+ past : "%s тому",
+ s : "декілька Ñекунд",
+ m : relativeTimeWithPlural,
+ mm : relativeTimeWithPlural,
+ h : "годину",
+ hh : relativeTimeWithPlural,
+ d : "день",
+ dd : relativeTimeWithPlural,
+ M : "міÑÑць",
+ MM : relativeTimeWithPlural,
+ y : "рік",
+ yy : relativeTimeWithPlural
+ },
+
+ // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
+
+ meridiem : function (hour, minute, isLower) {
+ if (hour < 4) {
+ return "ночі";
+ } else if (hour < 12) {
+ return "ранку";
+ } else if (hour < 17) {
+ return "днÑ";
+ } else {
+ return "вечора";
+ }
+ },
+
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'M':
+ case 'd':
+ case 'DDD':
+ case 'w':
+ case 'W':
+ return number + '-й';
+ case 'D':
+ return number + '-го';
+ default:
+ return number;
+ }
+ },
+
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 1st is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : uzbek
+// author : Sardor Muminov : https://github.com/muminoff
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('uz', {
+ months : "Ñнварь_февраль_март_апрель_май_июнь_июль_авгуÑÑ‚_ÑентÑбрь_октÑбрь_ноÑбрь_декабрь".split("_"),
+ monthsShort : "Ñнв_фев_мар_апр_май_июн_июл_авг_Ñен_окт_ноÑ_дек".split("_"),
+ weekdays : "Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),
+ weekdaysShort : "Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),
+ weekdaysMin : "Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM YYYY",
+ LLL : "D MMMM YYYY LT",
+ LLLL : "D MMMM YYYY, dddd LT"
+ },
+ calendar : {
+ sameDay : '[Бугун Ñоат] LT [да]',
+ nextDay : '[Эртага] LT [да]',
+ nextWeek : 'dddd [куни Ñоат] LT [да]',
+ lastDay : '[Кеча Ñоат] LT [да]',
+ lastWeek : '[Утган] dddd [куни Ñоат] LT [да]',
+ sameElse : 'L'
+ },
+ relativeTime : {
+ future : "Якин %s ичида",
+ past : "Бир неча %s олдин",
+ s : "фурÑат",
+ m : "бир дакика",
+ mm : "%d дакика",
+ h : "бир Ñоат",
+ hh : "%d Ñоат",
+ d : "бир кун",
+ dd : "%d кун",
+ M : "бир ой",
+ MM : "%d ой",
+ y : "бир йил",
+ yy : "%d йил"
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 7 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : vietnamese (vn)
+// author : Bang Nguyen : https://github.com/bangnk
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('vn', {
+ months : "tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),
+ monthsShort : "Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),
+ weekdays : "chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),
+ weekdaysShort : "CN_T2_T3_T4_T5_T6_T7".split("_"),
+ weekdaysMin : "CN_T2_T3_T4_T5_T6_T7".split("_"),
+ longDateFormat : {
+ LT : "HH:mm",
+ L : "DD/MM/YYYY",
+ LL : "D MMMM [năm] YYYY",
+ LLL : "D MMMM [năm] YYYY LT",
+ LLLL : "dddd, D MMMM [năm] YYYY LT",
+ l : "DD/M/YYYY",
+ ll : "D MMM YYYY",
+ lll : "D MMM YYYY LT",
+ llll : "ddd, D MMM YYYY LT"
+ },
+ calendar : {
+ sameDay: "[Hôm nay lúc] LT",
+ nextDay: '[Ngày mai lúc] LT',
+ nextWeek: 'dddd [tuần tới lúc] LT',
+ lastDay: '[Hôm qua lúc] LT',
+ lastWeek: 'dddd [tuần rồi lúc] LT',
+ sameElse: 'L'
+ },
+ relativeTime : {
+ future : "%s tá»›i",
+ past : "%s trÆ°á»›c",
+ s : "vài giây",
+ m : "một phút",
+ mm : "%d phút",
+ h : "má»™t giá»",
+ hh : "%d giá»",
+ d : "một ngày",
+ dd : "%d ngày",
+ M : "một tháng",
+ MM : "%d tháng",
+ y : "một năm",
+ yy : "%d năm"
+ },
+ ordinal : function (number) {
+ return number;
+ },
+ week : {
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : chinese
+// author : suupic : https://github.com/suupic
+// author : Zeno Zeng : https://github.com/zenozeng
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('zh-cn', {
+ months : "一月_二月_三月_四月_五月_六月_七月_八月_ä¹æœˆ_å月_å一月_å二月".split("_"),
+ monthsShort : "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
+ weekdays : "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),
+ weekdaysShort : "周日_周一_周二_周三_周四_周五_周六".split("_"),
+ weekdaysMin : "日_一_二_三_四_五_六".split("_"),
+ longDateFormat : {
+ LT : "Ah点mm",
+ L : "YYYYå¹´MMMDæ—¥",
+ LL : "YYYYå¹´MMMDæ—¥",
+ LLL : "YYYYå¹´MMMDæ—¥LT",
+ LLLL : "YYYYå¹´MMMDæ—¥ddddLT",
+ l : "YYYYå¹´MMMDæ—¥",
+ ll : "YYYYå¹´MMMDæ—¥",
+ lll : "YYYYå¹´MMMDæ—¥LT",
+ llll : "YYYYå¹´MMMDæ—¥ddddLT"
+ },
+ meridiem : function (hour, minute, isLower) {
+ var hm = hour * 100 + minute;
+ if (hm < 600) {
+ return "凌晨";
+ } else if (hm < 900) {
+ return "早上";
+ } else if (hm < 1130) {
+ return "上åˆ";
+ } else if (hm < 1230) {
+ return "中åˆ";
+ } else if (hm < 1800) {
+ return "下åˆ";
+ } else {
+ return "晚上";
+ }
+ },
+ calendar : {
+ sameDay : function () {
+ return this.minutes() === 0 ? "[今天]Ah[点整]" : "[今天]LT";
+ },
+ nextDay : function () {
+ return this.minutes() === 0 ? "[明天]Ah[点整]" : "[明天]LT";
+ },
+ lastDay : function () {
+ return this.minutes() === 0 ? "[昨天]Ah[点整]" : "[昨天]LT";
+ },
+ nextWeek : function () {
+ var startOfWeek, prefix;
+ startOfWeek = moment().startOf('week');
+ prefix = this.unix() - startOfWeek.unix() >= 7 * 24 * 3600 ? '[下]' : '[本]';
+ return this.minutes() === 0 ? prefix + "dddAh点整" : prefix + "dddAh点mm";
+ },
+ lastWeek : function () {
+ var startOfWeek, prefix;
+ startOfWeek = moment().startOf('week');
+ prefix = this.unix() < startOfWeek.unix() ? '[上]' : '[本]';
+ return this.minutes() === 0 ? prefix + "dddAh点整" : prefix + "dddAh点mm";
+ },
+ sameElse : 'L'
+ },
+ ordinal : function (number, period) {
+ switch (period) {
+ case "d":
+ case "D":
+ case "DDD":
+ return number + "æ—¥";
+ case "M":
+ return number + "月";
+ case "w":
+ case "W":
+ return number + "周";
+ default:
+ return number;
+ }
+ },
+ relativeTime : {
+ future : "%s内",
+ past : "%så‰",
+ s : "几秒",
+ m : "1分钟",
+ mm : "%d分钟",
+ h : "1å°æ—¶",
+ hh : "%då°æ—¶",
+ d : "1天",
+ dd : "%d天",
+ M : "1个月",
+ MM : "%d个月",
+ y : "1å¹´",
+ yy : "%då¹´"
+ },
+ week : {
+ // GB/T 7408-1994《数æ®å…ƒå’Œäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ—¥æœŸå’Œæ—¶é—´è¡¨ç¤ºæ³•ã€‹ä¸ŽISO 8601:1988等效
+ dow : 1, // Monday is the first day of the week.
+ doy : 4 // The week that contains Jan 4th is the first week of the year.
+ }
+ });
+}));
+// moment.js language configuration
+// language : traditional chinese (zh-tw)
+// author : Ben : https://github.com/ben-lin
+
+(function (factory) {
+ factory(moment);
+}(function (moment) {
+ return moment.lang('zh-tw', {
+ months : "一月_二月_三月_四月_五月_六月_七月_八月_ä¹æœˆ_å月_å一月_å二月".split("_"),
+ monthsShort : "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
+ weekdays : "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),
+ weekdaysShort : "週日_週一_週二_週三_週四_週五_週六".split("_"),
+ weekdaysMin : "日_一_二_三_四_五_六".split("_"),
+ longDateFormat : {
+ LT : "Ah點mm",
+ L : "YYYYå¹´MMMDæ—¥",
+ LL : "YYYYå¹´MMMDæ—¥",
+ LLL : "YYYYå¹´MMMDæ—¥LT",
+ LLLL : "YYYYå¹´MMMDæ—¥ddddLT",
+ l : "YYYYå¹´MMMDæ—¥",
+ ll : "YYYYå¹´MMMDæ—¥",
+ lll : "YYYYå¹´MMMDæ—¥LT",
+ llll : "YYYYå¹´MMMDæ—¥ddddLT"
+ },
+ meridiem : function (hour, minute, isLower) {
+ var hm = hour * 100 + minute;
+ if (hm < 900) {
+ return "早上";
+ } else if (hm < 1130) {
+ return "上åˆ";
+ } else if (hm < 1230) {
+ return "中åˆ";
+ } else if (hm < 1800) {
+ return "下åˆ";
+ } else {
+ return "晚上";
+ }
+ },
+ calendar : {
+ sameDay : '[今天]LT',
+ nextDay : '[明天]LT',
+ nextWeek : '[下]ddddLT',
+ lastDay : '[昨天]LT',
+ lastWeek : '[上]ddddLT',
+ sameElse : 'L'
+ },
+ ordinal : function (number, period) {
+ switch (period) {
+ case "d" :
+ case "D" :
+ case "DDD" :
+ return number + "æ—¥";
+ case "M" :
+ return number + "月";
+ case "w" :
+ case "W" :
+ return number + "週";
+ default :
+ return number;
+ }
+ },
+ relativeTime : {
+ future : "%så…§",
+ past : "%så‰",
+ s : "幾秒",
+ m : "一分é˜",
+ mm : "%d分é˜",
+ h : "一å°æ™‚",
+ hh : "%då°æ™‚",
+ d : "一天",
+ dd : "%d天",
+ M : "一個月",
+ MM : "%d個月",
+ y : "一年",
+ yy : "%då¹´"
+ }
+ });
+}));
+
+ moment.lang('en');
+
+
+ /************************************
+ Exposing Moment
+ ************************************/
+
+ function makeGlobal(deprecate) {
+ var warned = false, local_moment = moment;
+ /*global ender:false */
+ if (typeof ender !== 'undefined') {
+ return;
+ }
+ // here, `this` means `window` in the browser, or `global` on the server
+ // add `moment` as a global object via a string identifier,
+ // for Closure Compiler "advanced" mode
+ if (deprecate) {
+ this.moment = function () {
+ if (!warned && console && console.warn) {
+ warned = true;
+ console.warn(
+ "Accessing Moment through the global scope is " +
+ "deprecated, and will be removed in an upcoming " +
+ "release.");
+ }
+ return local_moment.apply(null, arguments);
+ };
+ } else {
+ this['moment'] = moment;
+ }
+ }
+
+ // CommonJS module is defined
+ if (hasModule) {
+ module.exports = moment;
+ makeGlobal(true);
+ } else if (typeof define === "function" && define.amd) {
+ define("moment", function (require, exports, module) {
+ if (module.config().noGlobal !== true) {
+ // If user provided noGlobal, he is aware of global
+ makeGlobal(module.config().noGlobal === undefined);
+ }
+
+ return moment;
+ });
+ } else {
+ makeGlobal();
+ }
+}).call(this);
diff --git a/library/bootstrap/css/bootstrap-theme.css b/library/bootstrap/css/bootstrap-theme.css
index df2d3d967..a4069929b 100644
--- a/library/bootstrap/css/bootstrap-theme.css
+++ b/library/bootstrap/css/bootstrap-theme.css
@@ -1,7 +1,7 @@
/*!
- * Bootstrap v3.0.3 (http://getbootstrap.com)
- * Copyright 2013 Twitter, Inc.
- * Licensed under http://www.apache.org/licenses/LICENSE-2.0
+ * Bootstrap v3.1.1 (http://getbootstrap.com)
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
.btn-default,
@@ -10,11 +10,10 @@
.btn-info,
.btn-warning,
.btn-danger {
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
}
-
.btn-default:active,
.btn-primary:active,
.btn-success:active,
@@ -27,371 +26,322 @@
.btn-info.active,
.btn-warning.active,
.btn-danger.active {
- -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
-
.btn:active,
.btn.active {
background-image: none;
}
-
.btn-default {
text-shadow: 0 1px 0 #fff;
- background-image: -webkit-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);
- background-image: linear-gradient(to bottom, #ffffff 0%, #e0e0e0 100%);
+ background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
+ background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #dbdbdb;
border-color: #ccc;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}
-
.btn-default:hover,
.btn-default:focus {
background-color: #e0e0e0;
background-position: 0 -15px;
}
-
.btn-default:active,
.btn-default.active {
background-color: #e0e0e0;
border-color: #dbdbdb;
}
-
.btn-primary {
background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
- background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
+ background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #2b669a;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}
-
.btn-primary:hover,
.btn-primary:focus {
background-color: #2d6ca2;
background-position: 0 -15px;
}
-
.btn-primary:active,
.btn-primary.active {
background-color: #2d6ca2;
border-color: #2b669a;
}
-
.btn-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
- background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
+ background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #3e8f3e;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}
-
.btn-success:hover,
.btn-success:focus {
background-color: #419641;
background-position: 0 -15px;
}
-
.btn-success:active,
.btn-success.active {
background-color: #419641;
border-color: #3e8f3e;
}
-
+.btn-info {
+ background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
+ background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+ background-repeat: repeat-x;
+ border-color: #28a4c9;
+}
+.btn-info:hover,
+.btn-info:focus {
+ background-color: #2aabd2;
+ background-position: 0 -15px;
+}
+.btn-info:active,
+.btn-info.active {
+ background-color: #2aabd2;
+ border-color: #28a4c9;
+}
.btn-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
- background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
+ background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #e38d13;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}
-
.btn-warning:hover,
.btn-warning:focus {
background-color: #eb9316;
background-position: 0 -15px;
}
-
.btn-warning:active,
.btn-warning.active {
background-color: #eb9316;
border-color: #e38d13;
}
-
.btn-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
- background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
+ background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #b92c28;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
}
-
.btn-danger:hover,
.btn-danger:focus {
background-color: #c12e2a;
background-position: 0 -15px;
}
-
.btn-danger:active,
.btn-danger.active {
background-color: #c12e2a;
border-color: #b92c28;
}
-
-.btn-info {
- background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
- background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
- background-repeat: repeat-x;
- border-color: #28a4c9;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
-}
-
-.btn-info:hover,
-.btn-info:focus {
- background-color: #2aabd2;
- background-position: 0 -15px;
-}
-
-.btn-info:active,
-.btn-info.active {
- background-color: #2aabd2;
- border-color: #28a4c9;
-}
-
.thumbnail,
.img-thumbnail {
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
+ box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
}
-
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
background-color: #e8e8e8;
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
- background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
- background-repeat: repeat-x;
+ background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
+ background-repeat: repeat-x;
}
-
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
background-color: #357ebd;
background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
- background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
- background-repeat: repeat-x;
+ background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
+ background-repeat: repeat-x;
}
-
.navbar-default {
- background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);
- background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);
+ background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
+ background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-radius: 4px;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
}
-
.navbar-default .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
- background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
- background-repeat: repeat-x;
+ background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
- -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
+ background-repeat: repeat-x;
+ -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
+ box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
}
-
.navbar-brand,
.navbar-nav > li > a {
- text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);
+ text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
}
-
.navbar-inverse {
- background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222222 100%);
- background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%);
- background-repeat: repeat-x;
+ background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
+ background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+ background-repeat: repeat-x;
}
-
.navbar-inverse .navbar-nav > .active > a {
- background-image: -webkit-linear-gradient(top, #222222 0%, #282828 100%);
- background-image: linear-gradient(to bottom, #222222 0%, #282828 100%);
- background-repeat: repeat-x;
+ background-image: -webkit-linear-gradient(top, #222 0%, #282828 100%);
+ background-image: linear-gradient(to bottom, #222 0%, #282828 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
- -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
- box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
+ background-repeat: repeat-x;
+ -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
+ box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
}
-
.navbar-inverse .navbar-brand,
.navbar-inverse .navbar-nav > li > a {
- text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
}
-
.navbar-static-top,
.navbar-fixed-top,
.navbar-fixed-bottom {
border-radius: 0;
}
-
.alert {
- text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
+ text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
}
-
.alert-success {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
- background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
+ background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
background-repeat: repeat-x;
border-color: #b2dba1;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
}
-
.alert-info {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
- background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
+ background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
background-repeat: repeat-x;
border-color: #9acfea;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
}
-
.alert-warning {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
- background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
+ background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
background-repeat: repeat-x;
border-color: #f5e79e;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
}
-
.alert-danger {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
- background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
+ background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
background-repeat: repeat-x;
border-color: #dca7a7;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
}
-
.progress {
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
- background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
- background-repeat: repeat-x;
+ background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
+ background-repeat: repeat-x;
}
-
.progress-bar {
background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
- background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
- background-repeat: repeat-x;
+ background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
+ background-repeat: repeat-x;
}
-
.progress-bar-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
- background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
- background-repeat: repeat-x;
+ background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
+ background-repeat: repeat-x;
}
-
.progress-bar-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
- background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
- background-repeat: repeat-x;
+ background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
+ background-repeat: repeat-x;
}
-
.progress-bar-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
- background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
- background-repeat: repeat-x;
+ background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
+ background-repeat: repeat-x;
}
-
.progress-bar-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
- background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
- background-repeat: repeat-x;
+ background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
+ background-repeat: repeat-x;
}
-
.list-group {
border-radius: 4px;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
+ box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
}
-
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
text-shadow: 0 -1px 0 #3071a9;
background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
- background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
+ background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
background-repeat: repeat-x;
border-color: #3278b3;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
}
-
.panel {
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
+ box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
}
-
.panel-default > .panel-heading {
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
- background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
- background-repeat: repeat-x;
+ background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
+ background-repeat: repeat-x;
}
-
.panel-primary > .panel-heading {
background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
- background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
- background-repeat: repeat-x;
+ background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
+ background-repeat: repeat-x;
}
-
.panel-success > .panel-heading {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
- background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
- background-repeat: repeat-x;
+ background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
+ background-repeat: repeat-x;
}
-
.panel-info > .panel-heading {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
- background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
- background-repeat: repeat-x;
+ background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
+ background-repeat: repeat-x;
}
-
.panel-warning > .panel-heading {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
- background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
- background-repeat: repeat-x;
+ background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
+ background-repeat: repeat-x;
}
-
.panel-danger > .panel-heading {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
- background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
- background-repeat: repeat-x;
+ background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
+ background-repeat: repeat-x;
}
-
.well {
background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
- background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
+ background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
border-color: #dcdcdc;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
- -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
- box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
-} \ No newline at end of file
+ -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
+ box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
+}
+/*# sourceMappingURL=bootstrap-theme.css.map */
diff --git a/library/bootstrap/css/bootstrap-theme.min.css b/library/bootstrap/css/bootstrap-theme.min.css
index c7b6d39b4..ba4bd28ae 100644
--- a/library/bootstrap/css/bootstrap-theme.min.css
+++ b/library/bootstrap/css/bootstrap-theme.min.css
@@ -1,7 +1,7 @@
/*!
- * Bootstrap v3.0.3 (http://getbootstrap.com)
- * Copyright 2013 Twitter, Inc.
- * Licensed under http://www.apache.org/licenses/LICENSE-2.0
+ * Bootstrap v3.1.1 (http://getbootstrap.com)
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
-.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn:active,.btn.active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe0e0e0',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-primary{background-image:-webkit-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:linear-gradient(to bottom,#428bca 0,#2d6ca2 100%);background-repeat:repeat-x;border-color:#2b669a;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff2d6ca2',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus{background-color:#2d6ca2;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#2d6ca2;border-color:#2b669a}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);background-repeat:repeat-x;border-color:#3e8f3e;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',endColorstr='#ff419641',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);background-repeat:repeat-x;border-color:#e38d13;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',endColorstr='#ffeb9316',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);background-repeat:repeat-x;border-color:#b92c28;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',endColorstr='#ffc12e2a',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);background-repeat:repeat-x;border-color:#28a4c9;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2aabd2',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#ffe8e8e8',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-color:#357ebd;background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff357ebd',GradientType=0)}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff8f8f8',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb',endColorstr='#fff3f3f3',GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.075);box-shadow:inset 0 3px 9px rgba(0,0,0,0.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:linear-gradient(to bottom,#222 0,#282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff282828',GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.25);box-shadow:inset 0 3px 9px rgba(0,0,0,0.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;border-color:#b2dba1;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',endColorstr='#ffc8e5bc',GradientType=0)}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;border-color:#9acfea;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',endColorstr='#ffb9def0',GradientType=0)}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);background-repeat:repeat-x;border-color:#f5e79e;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',endColorstr='#fff8efc0',GradientType=0)}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);background-repeat:repeat-x;border-color:#dca7a7;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',endColorstr='#ffe7c3c3',GradientType=0)}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb',endColorstr='#fff5f5f5',GradientType=0)}.progress-bar{background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3071a9',GradientType=0)}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',endColorstr='#ff449d44',GradientType=0)}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff31b0d5',GradientType=0)}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',endColorstr='#ffec971f',GradientType=0)}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',endColorstr='#ffc9302c',GradientType=0)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;border-color:#3278b3;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3278b3',GradientType=0)}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#ffe8e8e8',GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff357ebd',GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',endColorstr='#ffd0e9c6',GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',endColorstr='#ffc4e3f3',GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',endColorstr='#fffaf2cc',GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',endColorstr='#ffebcccc',GradientType=0)}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;border-color:#dcdcdc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8',endColorstr='#fff5f5f5',GradientType=0);-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1)} \ No newline at end of file
+.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn:active,.btn.active{background-image:none}.btn-default{background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;text-shadow:0 1px 0 #fff;border-color:#ccc}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-primary{background-image:-webkit-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:linear-gradient(to bottom,#428bca 0,#2d6ca2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#2b669a}.btn-primary:hover,.btn-primary:focus{background-color:#2d6ca2;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#2d6ca2;border-color:#2b669a}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-color:#e8e8e8}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);background-color:#357ebd}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:linear-gradient(to bottom,#222 0,#282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0)}.progress-bar{background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0)}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0)}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0)}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0)}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);border-color:#3278b3}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0)}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} \ No newline at end of file
diff --git a/library/bootstrap/css/bootstrap.css b/library/bootstrap/css/bootstrap.css
index 377dff300..7f3665196 100644
--- a/library/bootstrap/css/bootstrap.css
+++ b/library/bootstrap/css/bootstrap.css
@@ -1,11 +1,18 @@
/*!
- * Bootstrap v3.0.3 (http://getbootstrap.com)
- * Copyright 2013 Twitter, Inc.
- * Licensed under http://www.apache.org/licenses/LICENSE-2.0
+ * Bootstrap v3.1.1 (http://getbootstrap.com)
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
-/*! normalize.css v2.1.3 | MIT License | git.io/normalize */
-
+/*! normalize.css v3.0.0 | MIT License | git.io/normalize */
+html {
+ font-family: sans-serif;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+}
+body {
+ margin: 0;
+}
article,
aside,
details,
@@ -20,95 +27,49 @@ section,
summary {
display: block;
}
-
audio,
canvas,
+progress,
video {
display: inline-block;
+ vertical-align: baseline;
}
-
audio:not([controls]) {
display: none;
height: 0;
}
-
[hidden],
template {
display: none;
}
-
-html {
- font-family: sans-serif;
- -webkit-text-size-adjust: 100%;
- -ms-text-size-adjust: 100%;
-}
-
-body {
- margin: 0;
-}
-
a {
background: transparent;
}
-
-a:focus {
- outline: thin dotted;
-}
-
a:active,
a:hover {
outline: 0;
}
-
-h1 {
- margin: 0.67em 0;
- font-size: 2em;
-}
-
abbr[title] {
border-bottom: 1px dotted;
}
-
b,
strong {
font-weight: bold;
}
-
dfn {
font-style: italic;
}
-
-hr {
- height: 0;
- -moz-box-sizing: content-box;
- box-sizing: content-box;
+h1 {
+ margin: .67em 0;
+ font-size: 2em;
}
-
mark {
color: #000;
background: #ff0;
}
-
-code,
-kbd,
-pre,
-samp {
- font-family: monospace, serif;
- font-size: 1em;
-}
-
-pre {
- white-space: pre-wrap;
-}
-
-q {
- quotes: "\201C" "\201D" "\2018" "\2019";
-}
-
small {
font-size: 80%;
}
-
sub,
sup {
position: relative;
@@ -116,104 +77,113 @@ sup {
line-height: 0;
vertical-align: baseline;
}
-
sup {
- top: -0.5em;
+ top: -.5em;
}
-
sub {
- bottom: -0.25em;
+ bottom: -.25em;
}
-
img {
border: 0;
}
-
svg:not(:root) {
overflow: hidden;
}
-
figure {
- margin: 0;
+ margin: 1em 40px;
}
-
-fieldset {
- padding: 0.35em 0.625em 0.75em;
- margin: 0 2px;
- border: 1px solid #c0c0c0;
+hr {
+ height: 0;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
}
-
-legend {
- padding: 0;
- border: 0;
+pre {
+ overflow: auto;
+}
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em;
}
-
button,
input,
+optgroup,
select,
textarea {
margin: 0;
- font-family: inherit;
- font-size: 100%;
+ font: inherit;
+ color: inherit;
}
-
-button,
-input {
- line-height: normal;
+button {
+ overflow: visible;
}
-
button,
select {
text-transform: none;
}
-
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
- cursor: pointer;
-webkit-appearance: button;
+ cursor: pointer;
}
-
button[disabled],
html input[disabled] {
cursor: default;
}
-
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ padding: 0;
+ border: 0;
+}
+input {
+ line-height: normal;
+}
input[type="checkbox"],
input[type="radio"] {
- padding: 0;
box-sizing: border-box;
+ padding: 0;
+}
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto;
}
-
input[type="search"] {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
-webkit-appearance: textfield;
}
-
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
-
-button::-moz-focus-inner,
-input::-moz-focus-inner {
+fieldset {
+ padding: .35em .625em .75em;
+ margin: 0 2px;
+ border: 1px solid #c0c0c0;
+}
+legend {
padding: 0;
border: 0;
}
-
textarea {
overflow: auto;
- vertical-align: top;
}
-
+optgroup {
+ font-weight: bold;
+}
table {
- border-collapse: collapse;
border-spacing: 0;
+ border-collapse: collapse;
+}
+td,
+th {
+ padding: 0;
}
-
@media print {
* {
color: #000 !important;
@@ -238,6 +208,7 @@ table {
pre,
blockquote {
border: 1px solid #999;
+
page-break-inside: avoid;
}
thead {
@@ -250,9 +221,6 @@ table {
img {
max-width: 100% !important;
}
- @page {
- margin: 2cm .5cm;
- }
p,
h2,
h3 {
@@ -288,28 +256,29 @@ table {
border: 1px solid #ddd !important;
}
}
-
-*,
+* {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
*:before,
*:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
-
html {
font-size: 62.5%;
+
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
-
body {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
- line-height: 1.428571429;
- color: #333333;
- background-color: #ffffff;
+ line-height: 1.42857143;
+ color: #333;
+ background-color: #fff;
}
-
input,
button,
select,
@@ -318,62 +287,59 @@ textarea {
font-size: inherit;
line-height: inherit;
}
-
a {
color: #428bca;
text-decoration: none;
}
-
a:hover,
a:focus {
color: #2a6496;
text-decoration: underline;
}
-
a:focus {
outline: thin dotted;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
-
+figure {
+ margin: 0;
+}
img {
vertical-align: middle;
}
-
-.img-responsive {
+.img-responsive,
+.thumbnail > img,
+.thumbnail a > img,
+.carousel-inner > .item > img,
+.carousel-inner > .item > a > img {
display: block;
- height: auto;
max-width: 100%;
+ height: auto;
}
-
.img-rounded {
border-radius: 6px;
}
-
.img-thumbnail {
display: inline-block;
- height: auto;
max-width: 100%;
+ height: auto;
padding: 4px;
- line-height: 1.428571429;
- background-color: #ffffff;
- border: 1px solid #dddddd;
+ line-height: 1.42857143;
+ background-color: #fff;
+ border: 1px solid #ddd;
border-radius: 4px;
- -webkit-transition: all 0.2s ease-in-out;
- transition: all 0.2s ease-in-out;
+ -webkit-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
}
-
.img-circle {
border-radius: 50%;
}
-
hr {
margin-top: 20px;
margin-bottom: 20px;
border: 0;
- border-top: 1px solid #eeeeee;
+ border-top: 1px solid #eee;
}
-
.sr-only {
position: absolute;
width: 1px;
@@ -384,7 +350,6 @@ hr {
clip: rect(0, 0, 0, 0);
border: 0;
}
-
h1,
h2,
h3,
@@ -397,12 +362,11 @@ h6,
.h4,
.h5,
.h6 {
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-family: inherit;
font-weight: 500;
line-height: 1.1;
color: inherit;
}
-
h1 small,
h2 small,
h3 small,
@@ -429,210 +393,219 @@ h6 .small,
.h6 .small {
font-weight: normal;
line-height: 1;
- color: #999999;
+ color: #999;
}
-
h1,
+.h1,
h2,
-h3 {
+.h2,
+h3,
+.h3 {
margin-top: 20px;
margin-bottom: 10px;
}
-
h1 small,
+.h1 small,
h2 small,
+.h2 small,
h3 small,
+.h3 small,
h1 .small,
+.h1 .small,
h2 .small,
-h3 .small {
+.h2 .small,
+h3 .small,
+.h3 .small {
font-size: 65%;
}
-
h4,
+.h4,
h5,
-h6 {
+.h5,
+h6,
+.h6 {
margin-top: 10px;
margin-bottom: 10px;
}
-
h4 small,
+.h4 small,
h5 small,
+.h5 small,
h6 small,
+.h6 small,
h4 .small,
+.h4 .small,
h5 .small,
-h6 .small {
+.h5 .small,
+h6 .small,
+.h6 .small {
font-size: 75%;
}
-
h1,
.h1 {
font-size: 36px;
}
-
h2,
.h2 {
font-size: 30px;
}
-
h3,
.h3 {
font-size: 24px;
}
-
h4,
.h4 {
font-size: 18px;
}
-
h5,
.h5 {
font-size: 14px;
}
-
h6,
.h6 {
font-size: 12px;
}
-
p {
margin: 0 0 10px;
}
-
.lead {
margin-bottom: 20px;
font-size: 16px;
font-weight: 200;
line-height: 1.4;
}
-
@media (min-width: 768px) {
.lead {
font-size: 21px;
}
}
-
small,
.small {
font-size: 85%;
}
-
cite {
font-style: normal;
}
-
+.text-left {
+ text-align: left;
+}
+.text-right {
+ text-align: right;
+}
+.text-center {
+ text-align: center;
+}
+.text-justify {
+ text-align: justify;
+}
.text-muted {
- color: #999999;
+ color: #999;
}
-
.text-primary {
color: #428bca;
}
-
-.text-primary:hover {
+a.text-primary:hover {
color: #3071a9;
}
-
+.text-success {
+ color: #3c763d;
+}
+a.text-success:hover {
+ color: #2b542c;
+}
+.text-info {
+ color: #31708f;
+}
+a.text-info:hover {
+ color: #245269;
+}
.text-warning {
color: #8a6d3b;
}
-
-.text-warning:hover {
+a.text-warning:hover {
color: #66512c;
}
-
.text-danger {
color: #a94442;
}
-
-.text-danger:hover {
+a.text-danger:hover {
color: #843534;
}
-
-.text-success {
- color: #3c763d;
+.bg-primary {
+ color: #fff;
+ background-color: #428bca;
}
-
-.text-success:hover {
- color: #2b542c;
+a.bg-primary:hover {
+ background-color: #3071a9;
}
-
-.text-info {
- color: #31708f;
+.bg-success {
+ background-color: #dff0d8;
}
-
-.text-info:hover {
- color: #245269;
+a.bg-success:hover {
+ background-color: #c1e2b3;
}
-
-.text-left {
- text-align: left;
+.bg-info {
+ background-color: #d9edf7;
}
-
-.text-right {
- text-align: right;
+a.bg-info:hover {
+ background-color: #afd9ee;
}
-
-.text-center {
- text-align: center;
+.bg-warning {
+ background-color: #fcf8e3;
+}
+a.bg-warning:hover {
+ background-color: #f7ecb5;
+}
+.bg-danger {
+ background-color: #f2dede;
+}
+a.bg-danger:hover {
+ background-color: #e4b9b9;
}
-
.page-header {
padding-bottom: 9px;
margin: 40px 0 20px;
- border-bottom: 1px solid #eeeeee;
+ border-bottom: 1px solid #eee;
}
-
ul,
ol {
margin-top: 0;
margin-bottom: 10px;
}
-
ul ul,
ol ul,
ul ol,
ol ol {
margin-bottom: 0;
}
-
.list-unstyled {
padding-left: 0;
list-style: none;
}
-
.list-inline {
padding-left: 0;
+ margin-left: -5px;
list-style: none;
}
-
.list-inline > li {
display: inline-block;
padding-right: 5px;
padding-left: 5px;
}
-
-.list-inline > li:first-child {
- padding-left: 0;
-}
-
dl {
margin-top: 0;
margin-bottom: 20px;
}
-
dt,
dd {
- line-height: 1.428571429;
+ line-height: 1.42857143;
}
-
dt {
font-weight: bold;
}
-
dd {
margin-left: 0;
}
-
@media (min-width: 768px) {
.dl-horizontal dt {
float: left;
@@ -646,104 +619,79 @@ dd {
.dl-horizontal dd {
margin-left: 180px;
}
- .dl-horizontal dd:before,
- .dl-horizontal dd:after {
- display: table;
- content: " ";
- }
- .dl-horizontal dd:after {
- clear: both;
- }
- .dl-horizontal dd:before,
- .dl-horizontal dd:after {
- display: table;
- content: " ";
- }
- .dl-horizontal dd:after {
- clear: both;
- }
}
-
abbr[title],
abbr[data-original-title] {
cursor: help;
- border-bottom: 1px dotted #999999;
+ border-bottom: 1px dotted #999;
}
-
.initialism {
font-size: 90%;
text-transform: uppercase;
}
-
blockquote {
padding: 10px 20px;
margin: 0 0 20px;
- border-left: 5px solid #eeeeee;
-}
-
-blockquote p {
font-size: 17.5px;
- font-weight: 300;
- line-height: 1.25;
+ border-left: 5px solid #eee;
}
-
-blockquote p:last-child {
+blockquote p:last-child,
+blockquote ul:last-child,
+blockquote ol:last-child {
margin-bottom: 0;
}
-
+blockquote footer,
blockquote small,
blockquote .small {
display: block;
- line-height: 1.428571429;
- color: #999999;
+ font-size: 80%;
+ line-height: 1.42857143;
+ color: #999;
}
-
+blockquote footer:before,
blockquote small:before,
blockquote .small:before {
content: '\2014 \00A0';
}
-
+.blockquote-reverse,
blockquote.pull-right {
padding-right: 15px;
padding-left: 0;
- border-right: 5px solid #eeeeee;
- border-left: 0;
-}
-
-blockquote.pull-right p,
-blockquote.pull-right small,
-blockquote.pull-right .small {
text-align: right;
+ border-right: 5px solid #eee;
+ border-left: 0;
}
-
+.blockquote-reverse footer:before,
+blockquote.pull-right footer:before,
+.blockquote-reverse small:before,
blockquote.pull-right small:before,
+.blockquote-reverse .small:before,
blockquote.pull-right .small:before {
content: '';
}
-
+.blockquote-reverse footer:after,
+blockquote.pull-right footer:after,
+.blockquote-reverse small:after,
blockquote.pull-right small:after,
+.blockquote-reverse .small:after,
blockquote.pull-right .small:after {
content: '\00A0 \2014';
}
-
blockquote:before,
blockquote:after {
content: "";
}
-
address {
margin-bottom: 20px;
font-style: normal;
- line-height: 1.428571429;
+ line-height: 1.42857143;
}
-
code,
kbd,
pre,
samp {
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
}
-
code {
padding: 2px 4px;
font-size: 90%;
@@ -752,21 +700,27 @@ code {
background-color: #f9f2f4;
border-radius: 4px;
}
-
+kbd {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #fff;
+ background-color: #333;
+ border-radius: 3px;
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
+}
pre {
display: block;
padding: 9.5px;
margin: 0 0 10px;
font-size: 13px;
- line-height: 1.428571429;
- color: #333333;
+ line-height: 1.42857143;
+ color: #333;
word-break: break-all;
word-wrap: break-word;
background-color: #f5f5f5;
- border: 1px solid #cccccc;
+ border: 1px solid #ccc;
border-radius: 4px;
}
-
pre code {
padding: 0;
font-size: inherit;
@@ -775,441 +729,278 @@ pre code {
background-color: transparent;
border-radius: 0;
}
-
.pre-scrollable {
max-height: 340px;
overflow-y: scroll;
}
-
.container {
padding-right: 15px;
padding-left: 15px;
margin-right: auto;
margin-left: auto;
}
-
-.container:before,
-.container:after {
- display: table;
- content: " ";
-}
-
-.container:after {
- clear: both;
-}
-
-.container:before,
-.container:after {
- display: table;
- content: " ";
-}
-
-.container:after {
- clear: both;
-}
-
@media (min-width: 768px) {
.container {
width: 750px;
}
}
-
@media (min-width: 992px) {
.container {
width: 970px;
}
}
-
@media (min-width: 1200px) {
.container {
width: 1170px;
}
}
-
+.container-fluid {
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto;
+}
.row {
margin-right: -15px;
margin-left: -15px;
}
-
-.row:before,
-.row:after {
- display: table;
- content: " ";
-}
-
-.row:after {
- clear: both;
-}
-
-.row:before,
-.row:after {
- display: table;
- content: " ";
-}
-
-.row:after {
- clear: both;
-}
-
-.col-xs-1,
-.col-sm-1,
-.col-md-1,
-.col-lg-1,
-.col-xs-2,
-.col-sm-2,
-.col-md-2,
-.col-lg-2,
-.col-xs-3,
-.col-sm-3,
-.col-md-3,
-.col-lg-3,
-.col-xs-4,
-.col-sm-4,
-.col-md-4,
-.col-lg-4,
-.col-xs-5,
-.col-sm-5,
-.col-md-5,
-.col-lg-5,
-.col-xs-6,
-.col-sm-6,
-.col-md-6,
-.col-lg-6,
-.col-xs-7,
-.col-sm-7,
-.col-md-7,
-.col-lg-7,
-.col-xs-8,
-.col-sm-8,
-.col-md-8,
-.col-lg-8,
-.col-xs-9,
-.col-sm-9,
-.col-md-9,
-.col-lg-9,
-.col-xs-10,
-.col-sm-10,
-.col-md-10,
-.col-lg-10,
-.col-xs-11,
-.col-sm-11,
-.col-md-11,
-.col-lg-11,
-.col-xs-12,
-.col-sm-12,
-.col-md-12,
-.col-lg-12 {
+.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
position: relative;
min-height: 1px;
padding-right: 15px;
padding-left: 15px;
}
-
-.col-xs-1,
-.col-xs-2,
-.col-xs-3,
-.col-xs-4,
-.col-xs-5,
-.col-xs-6,
-.col-xs-7,
-.col-xs-8,
-.col-xs-9,
-.col-xs-10,
-.col-xs-11,
-.col-xs-12 {
+.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
float: left;
}
-
.col-xs-12 {
width: 100%;
}
-
.col-xs-11 {
- width: 91.66666666666666%;
+ width: 91.66666667%;
}
-
.col-xs-10 {
- width: 83.33333333333334%;
+ width: 83.33333333%;
}
-
.col-xs-9 {
width: 75%;
}
-
.col-xs-8 {
- width: 66.66666666666666%;
+ width: 66.66666667%;
}
-
.col-xs-7 {
- width: 58.333333333333336%;
+ width: 58.33333333%;
}
-
.col-xs-6 {
width: 50%;
}
-
.col-xs-5 {
- width: 41.66666666666667%;
+ width: 41.66666667%;
}
-
.col-xs-4 {
- width: 33.33333333333333%;
+ width: 33.33333333%;
}
-
.col-xs-3 {
width: 25%;
}
-
.col-xs-2 {
- width: 16.666666666666664%;
+ width: 16.66666667%;
}
-
.col-xs-1 {
- width: 8.333333333333332%;
+ width: 8.33333333%;
}
-
.col-xs-pull-12 {
right: 100%;
}
-
.col-xs-pull-11 {
- right: 91.66666666666666%;
+ right: 91.66666667%;
}
-
.col-xs-pull-10 {
- right: 83.33333333333334%;
+ right: 83.33333333%;
}
-
.col-xs-pull-9 {
right: 75%;
}
-
.col-xs-pull-8 {
- right: 66.66666666666666%;
+ right: 66.66666667%;
}
-
.col-xs-pull-7 {
- right: 58.333333333333336%;
+ right: 58.33333333%;
}
-
.col-xs-pull-6 {
right: 50%;
}
-
.col-xs-pull-5 {
- right: 41.66666666666667%;
+ right: 41.66666667%;
}
-
.col-xs-pull-4 {
- right: 33.33333333333333%;
+ right: 33.33333333%;
}
-
.col-xs-pull-3 {
right: 25%;
}
-
.col-xs-pull-2 {
- right: 16.666666666666664%;
+ right: 16.66666667%;
}
-
.col-xs-pull-1 {
- right: 8.333333333333332%;
+ right: 8.33333333%;
}
-
.col-xs-pull-0 {
right: 0;
}
-
.col-xs-push-12 {
left: 100%;
}
-
.col-xs-push-11 {
- left: 91.66666666666666%;
+ left: 91.66666667%;
}
-
.col-xs-push-10 {
- left: 83.33333333333334%;
+ left: 83.33333333%;
}
-
.col-xs-push-9 {
left: 75%;
}
-
.col-xs-push-8 {
- left: 66.66666666666666%;
+ left: 66.66666667%;
}
-
.col-xs-push-7 {
- left: 58.333333333333336%;
+ left: 58.33333333%;
}
-
.col-xs-push-6 {
left: 50%;
}
-
.col-xs-push-5 {
- left: 41.66666666666667%;
+ left: 41.66666667%;
}
-
.col-xs-push-4 {
- left: 33.33333333333333%;
+ left: 33.33333333%;
}
-
.col-xs-push-3 {
left: 25%;
}
-
.col-xs-push-2 {
- left: 16.666666666666664%;
+ left: 16.66666667%;
}
-
.col-xs-push-1 {
- left: 8.333333333333332%;
+ left: 8.33333333%;
}
-
.col-xs-push-0 {
left: 0;
}
-
.col-xs-offset-12 {
margin-left: 100%;
}
-
.col-xs-offset-11 {
- margin-left: 91.66666666666666%;
+ margin-left: 91.66666667%;
}
-
.col-xs-offset-10 {
- margin-left: 83.33333333333334%;
+ margin-left: 83.33333333%;
}
-
.col-xs-offset-9 {
margin-left: 75%;
}
-
.col-xs-offset-8 {
- margin-left: 66.66666666666666%;
+ margin-left: 66.66666667%;
}
-
.col-xs-offset-7 {
- margin-left: 58.333333333333336%;
+ margin-left: 58.33333333%;
}
-
.col-xs-offset-6 {
margin-left: 50%;
}
-
.col-xs-offset-5 {
- margin-left: 41.66666666666667%;
+ margin-left: 41.66666667%;
}
-
.col-xs-offset-4 {
- margin-left: 33.33333333333333%;
+ margin-left: 33.33333333%;
}
-
.col-xs-offset-3 {
margin-left: 25%;
}
-
.col-xs-offset-2 {
- margin-left: 16.666666666666664%;
+ margin-left: 16.66666667%;
}
-
.col-xs-offset-1 {
- margin-left: 8.333333333333332%;
+ margin-left: 8.33333333%;
}
-
.col-xs-offset-0 {
margin-left: 0;
}
-
@media (min-width: 768px) {
- .col-sm-1,
- .col-sm-2,
- .col-sm-3,
- .col-sm-4,
- .col-sm-5,
- .col-sm-6,
- .col-sm-7,
- .col-sm-8,
- .col-sm-9,
- .col-sm-10,
- .col-sm-11,
- .col-sm-12 {
+ .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
float: left;
}
.col-sm-12 {
width: 100%;
}
.col-sm-11 {
- width: 91.66666666666666%;
+ width: 91.66666667%;
}
.col-sm-10 {
- width: 83.33333333333334%;
+ width: 83.33333333%;
}
.col-sm-9 {
width: 75%;
}
.col-sm-8 {
- width: 66.66666666666666%;
+ width: 66.66666667%;
}
.col-sm-7 {
- width: 58.333333333333336%;
+ width: 58.33333333%;
}
.col-sm-6 {
width: 50%;
}
.col-sm-5 {
- width: 41.66666666666667%;
+ width: 41.66666667%;
}
.col-sm-4 {
- width: 33.33333333333333%;
+ width: 33.33333333%;
}
.col-sm-3 {
width: 25%;
}
.col-sm-2 {
- width: 16.666666666666664%;
+ width: 16.66666667%;
}
.col-sm-1 {
- width: 8.333333333333332%;
+ width: 8.33333333%;
}
.col-sm-pull-12 {
right: 100%;
}
.col-sm-pull-11 {
- right: 91.66666666666666%;
+ right: 91.66666667%;
}
.col-sm-pull-10 {
- right: 83.33333333333334%;
+ right: 83.33333333%;
}
.col-sm-pull-9 {
right: 75%;
}
.col-sm-pull-8 {
- right: 66.66666666666666%;
+ right: 66.66666667%;
}
.col-sm-pull-7 {
- right: 58.333333333333336%;
+ right: 58.33333333%;
}
.col-sm-pull-6 {
right: 50%;
}
.col-sm-pull-5 {
- right: 41.66666666666667%;
+ right: 41.66666667%;
}
.col-sm-pull-4 {
- right: 33.33333333333333%;
+ right: 33.33333333%;
}
.col-sm-pull-3 {
right: 25%;
}
.col-sm-pull-2 {
- right: 16.666666666666664%;
+ right: 16.66666667%;
}
.col-sm-pull-1 {
- right: 8.333333333333332%;
+ right: 8.33333333%;
}
.col-sm-pull-0 {
right: 0;
@@ -1218,37 +1009,37 @@ pre code {
left: 100%;
}
.col-sm-push-11 {
- left: 91.66666666666666%;
+ left: 91.66666667%;
}
.col-sm-push-10 {
- left: 83.33333333333334%;
+ left: 83.33333333%;
}
.col-sm-push-9 {
left: 75%;
}
.col-sm-push-8 {
- left: 66.66666666666666%;
+ left: 66.66666667%;
}
.col-sm-push-7 {
- left: 58.333333333333336%;
+ left: 58.33333333%;
}
.col-sm-push-6 {
left: 50%;
}
.col-sm-push-5 {
- left: 41.66666666666667%;
+ left: 41.66666667%;
}
.col-sm-push-4 {
- left: 33.33333333333333%;
+ left: 33.33333333%;
}
.col-sm-push-3 {
left: 25%;
}
.col-sm-push-2 {
- left: 16.666666666666664%;
+ left: 16.66666667%;
}
.col-sm-push-1 {
- left: 8.333333333333332%;
+ left: 8.33333333%;
}
.col-sm-push-0 {
left: 0;
@@ -1257,129 +1048,117 @@ pre code {
margin-left: 100%;
}
.col-sm-offset-11 {
- margin-left: 91.66666666666666%;
+ margin-left: 91.66666667%;
}
.col-sm-offset-10 {
- margin-left: 83.33333333333334%;
+ margin-left: 83.33333333%;
}
.col-sm-offset-9 {
margin-left: 75%;
}
.col-sm-offset-8 {
- margin-left: 66.66666666666666%;
+ margin-left: 66.66666667%;
}
.col-sm-offset-7 {
- margin-left: 58.333333333333336%;
+ margin-left: 58.33333333%;
}
.col-sm-offset-6 {
margin-left: 50%;
}
.col-sm-offset-5 {
- margin-left: 41.66666666666667%;
+ margin-left: 41.66666667%;
}
.col-sm-offset-4 {
- margin-left: 33.33333333333333%;
+ margin-left: 33.33333333%;
}
.col-sm-offset-3 {
margin-left: 25%;
}
.col-sm-offset-2 {
- margin-left: 16.666666666666664%;
+ margin-left: 16.66666667%;
}
.col-sm-offset-1 {
- margin-left: 8.333333333333332%;
+ margin-left: 8.33333333%;
}
.col-sm-offset-0 {
margin-left: 0;
}
}
-
@media (min-width: 992px) {
- .col-md-1,
- .col-md-2,
- .col-md-3,
- .col-md-4,
- .col-md-5,
- .col-md-6,
- .col-md-7,
- .col-md-8,
- .col-md-9,
- .col-md-10,
- .col-md-11,
- .col-md-12 {
+ .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
float: left;
}
.col-md-12 {
width: 100%;
}
.col-md-11 {
- width: 91.66666666666666%;
+ width: 91.66666667%;
}
.col-md-10 {
- width: 83.33333333333334%;
+ width: 83.33333333%;
}
.col-md-9 {
width: 75%;
}
.col-md-8 {
- width: 66.66666666666666%;
+ width: 66.66666667%;
}
.col-md-7 {
- width: 58.333333333333336%;
+ width: 58.33333333%;
}
.col-md-6 {
width: 50%;
}
.col-md-5 {
- width: 41.66666666666667%;
+ width: 41.66666667%;
}
.col-md-4 {
- width: 33.33333333333333%;
+ width: 33.33333333%;
}
.col-md-3 {
width: 25%;
}
.col-md-2 {
- width: 16.666666666666664%;
+ width: 16.66666667%;
}
.col-md-1 {
- width: 8.333333333333332%;
+ width: 8.33333333%;
}
.col-md-pull-12 {
right: 100%;
}
.col-md-pull-11 {
- right: 91.66666666666666%;
+ right: 91.66666667%;
}
.col-md-pull-10 {
- right: 83.33333333333334%;
+ right: 83.33333333%;
}
.col-md-pull-9 {
right: 75%;
}
.col-md-pull-8 {
- right: 66.66666666666666%;
+ right: 66.66666667%;
}
.col-md-pull-7 {
- right: 58.333333333333336%;
+ right: 58.33333333%;
}
.col-md-pull-6 {
right: 50%;
}
.col-md-pull-5 {
- right: 41.66666666666667%;
+ right: 41.66666667%;
}
.col-md-pull-4 {
- right: 33.33333333333333%;
+ right: 33.33333333%;
}
.col-md-pull-3 {
right: 25%;
}
.col-md-pull-2 {
- right: 16.666666666666664%;
+ right: 16.66666667%;
}
.col-md-pull-1 {
- right: 8.333333333333332%;
+ right: 8.33333333%;
}
.col-md-pull-0 {
right: 0;
@@ -1388,37 +1167,37 @@ pre code {
left: 100%;
}
.col-md-push-11 {
- left: 91.66666666666666%;
+ left: 91.66666667%;
}
.col-md-push-10 {
- left: 83.33333333333334%;
+ left: 83.33333333%;
}
.col-md-push-9 {
left: 75%;
}
.col-md-push-8 {
- left: 66.66666666666666%;
+ left: 66.66666667%;
}
.col-md-push-7 {
- left: 58.333333333333336%;
+ left: 58.33333333%;
}
.col-md-push-6 {
left: 50%;
}
.col-md-push-5 {
- left: 41.66666666666667%;
+ left: 41.66666667%;
}
.col-md-push-4 {
- left: 33.33333333333333%;
+ left: 33.33333333%;
}
.col-md-push-3 {
left: 25%;
}
.col-md-push-2 {
- left: 16.666666666666664%;
+ left: 16.66666667%;
}
.col-md-push-1 {
- left: 8.333333333333332%;
+ left: 8.33333333%;
}
.col-md-push-0 {
left: 0;
@@ -1427,129 +1206,117 @@ pre code {
margin-left: 100%;
}
.col-md-offset-11 {
- margin-left: 91.66666666666666%;
+ margin-left: 91.66666667%;
}
.col-md-offset-10 {
- margin-left: 83.33333333333334%;
+ margin-left: 83.33333333%;
}
.col-md-offset-9 {
margin-left: 75%;
}
.col-md-offset-8 {
- margin-left: 66.66666666666666%;
+ margin-left: 66.66666667%;
}
.col-md-offset-7 {
- margin-left: 58.333333333333336%;
+ margin-left: 58.33333333%;
}
.col-md-offset-6 {
margin-left: 50%;
}
.col-md-offset-5 {
- margin-left: 41.66666666666667%;
+ margin-left: 41.66666667%;
}
.col-md-offset-4 {
- margin-left: 33.33333333333333%;
+ margin-left: 33.33333333%;
}
.col-md-offset-3 {
margin-left: 25%;
}
.col-md-offset-2 {
- margin-left: 16.666666666666664%;
+ margin-left: 16.66666667%;
}
.col-md-offset-1 {
- margin-left: 8.333333333333332%;
+ margin-left: 8.33333333%;
}
.col-md-offset-0 {
margin-left: 0;
}
}
-
@media (min-width: 1200px) {
- .col-lg-1,
- .col-lg-2,
- .col-lg-3,
- .col-lg-4,
- .col-lg-5,
- .col-lg-6,
- .col-lg-7,
- .col-lg-8,
- .col-lg-9,
- .col-lg-10,
- .col-lg-11,
- .col-lg-12 {
+ .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
float: left;
}
.col-lg-12 {
width: 100%;
}
.col-lg-11 {
- width: 91.66666666666666%;
+ width: 91.66666667%;
}
.col-lg-10 {
- width: 83.33333333333334%;
+ width: 83.33333333%;
}
.col-lg-9 {
width: 75%;
}
.col-lg-8 {
- width: 66.66666666666666%;
+ width: 66.66666667%;
}
.col-lg-7 {
- width: 58.333333333333336%;
+ width: 58.33333333%;
}
.col-lg-6 {
width: 50%;
}
.col-lg-5 {
- width: 41.66666666666667%;
+ width: 41.66666667%;
}
.col-lg-4 {
- width: 33.33333333333333%;
+ width: 33.33333333%;
}
.col-lg-3 {
width: 25%;
}
.col-lg-2 {
- width: 16.666666666666664%;
+ width: 16.66666667%;
}
.col-lg-1 {
- width: 8.333333333333332%;
+ width: 8.33333333%;
}
.col-lg-pull-12 {
right: 100%;
}
.col-lg-pull-11 {
- right: 91.66666666666666%;
+ right: 91.66666667%;
}
.col-lg-pull-10 {
- right: 83.33333333333334%;
+ right: 83.33333333%;
}
.col-lg-pull-9 {
right: 75%;
}
.col-lg-pull-8 {
- right: 66.66666666666666%;
+ right: 66.66666667%;
}
.col-lg-pull-7 {
- right: 58.333333333333336%;
+ right: 58.33333333%;
}
.col-lg-pull-6 {
right: 50%;
}
.col-lg-pull-5 {
- right: 41.66666666666667%;
+ right: 41.66666667%;
}
.col-lg-pull-4 {
- right: 33.33333333333333%;
+ right: 33.33333333%;
}
.col-lg-pull-3 {
right: 25%;
}
.col-lg-pull-2 {
- right: 16.666666666666664%;
+ right: 16.66666667%;
}
.col-lg-pull-1 {
- right: 8.333333333333332%;
+ right: 8.33333333%;
}
.col-lg-pull-0 {
right: 0;
@@ -1558,37 +1325,37 @@ pre code {
left: 100%;
}
.col-lg-push-11 {
- left: 91.66666666666666%;
+ left: 91.66666667%;
}
.col-lg-push-10 {
- left: 83.33333333333334%;
+ left: 83.33333333%;
}
.col-lg-push-9 {
left: 75%;
}
.col-lg-push-8 {
- left: 66.66666666666666%;
+ left: 66.66666667%;
}
.col-lg-push-7 {
- left: 58.333333333333336%;
+ left: 58.33333333%;
}
.col-lg-push-6 {
left: 50%;
}
.col-lg-push-5 {
- left: 41.66666666666667%;
+ left: 41.66666667%;
}
.col-lg-push-4 {
- left: 33.33333333333333%;
+ left: 33.33333333%;
}
.col-lg-push-3 {
left: 25%;
}
.col-lg-push-2 {
- left: 16.666666666666664%;
+ left: 16.66666667%;
}
.col-lg-push-1 {
- left: 8.333333333333332%;
+ left: 8.33333333%;
}
.col-lg-push-0 {
left: 0;
@@ -1597,57 +1364,53 @@ pre code {
margin-left: 100%;
}
.col-lg-offset-11 {
- margin-left: 91.66666666666666%;
+ margin-left: 91.66666667%;
}
.col-lg-offset-10 {
- margin-left: 83.33333333333334%;
+ margin-left: 83.33333333%;
}
.col-lg-offset-9 {
margin-left: 75%;
}
.col-lg-offset-8 {
- margin-left: 66.66666666666666%;
+ margin-left: 66.66666667%;
}
.col-lg-offset-7 {
- margin-left: 58.333333333333336%;
+ margin-left: 58.33333333%;
}
.col-lg-offset-6 {
margin-left: 50%;
}
.col-lg-offset-5 {
- margin-left: 41.66666666666667%;
+ margin-left: 41.66666667%;
}
.col-lg-offset-4 {
- margin-left: 33.33333333333333%;
+ margin-left: 33.33333333%;
}
.col-lg-offset-3 {
margin-left: 25%;
}
.col-lg-offset-2 {
- margin-left: 16.666666666666664%;
+ margin-left: 16.66666667%;
}
.col-lg-offset-1 {
- margin-left: 8.333333333333332%;
+ margin-left: 8.33333333%;
}
.col-lg-offset-0 {
margin-left: 0;
}
}
-
table {
max-width: 100%;
background-color: transparent;
}
-
th {
text-align: left;
}
-
.table {
width: 100%;
margin-bottom: 20px;
}
-
.table > thead > tr > th,
.table > tbody > tr > th,
.table > tfoot > tr > th,
@@ -1655,16 +1418,14 @@ th {
.table > tbody > tr > td,
.table > tfoot > tr > td {
padding: 8px;
- line-height: 1.428571429;
+ line-height: 1.42857143;
vertical-align: top;
- border-top: 1px solid #dddddd;
+ border-top: 1px solid #ddd;
}
-
.table > thead > tr > th {
vertical-align: bottom;
- border-bottom: 2px solid #dddddd;
+ border-bottom: 2px solid #ddd;
}
-
.table > caption + thead > tr:first-child > th,
.table > colgroup + thead > tr:first-child > th,
.table > thead:first-child > tr:first-child > th,
@@ -1673,15 +1434,12 @@ th {
.table > thead:first-child > tr:first-child > td {
border-top: 0;
}
-
.table > tbody + tbody {
- border-top: 2px solid #dddddd;
+ border-top: 2px solid #ddd;
}
-
.table .table {
- background-color: #ffffff;
+ background-color: #fff;
}
-
.table-condensed > thead > tr > th,
.table-condensed > tbody > tr > th,
.table-condensed > tfoot > tr > th,
@@ -1690,128 +1448,149 @@ th {
.table-condensed > tfoot > tr > td {
padding: 5px;
}
-
.table-bordered {
- border: 1px solid #dddddd;
+ border: 1px solid #ddd;
}
-
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td {
- border: 1px solid #dddddd;
+ border: 1px solid #ddd;
}
-
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
border-bottom-width: 2px;
}
-
.table-striped > tbody > tr:nth-child(odd) > td,
.table-striped > tbody > tr:nth-child(odd) > th {
background-color: #f9f9f9;
}
-
.table-hover > tbody > tr:hover > td,
.table-hover > tbody > tr:hover > th {
background-color: #f5f5f5;
}
-
table col[class*="col-"] {
position: static;
display: table-column;
float: none;
}
-
table td[class*="col-"],
table th[class*="col-"] {
+ position: static;
display: table-cell;
float: none;
}
-
-.table > thead > tr > .active,
-.table > tbody > tr > .active,
-.table > tfoot > tr > .active,
-.table > thead > .active > td,
-.table > tbody > .active > td,
-.table > tfoot > .active > td,
-.table > thead > .active > th,
-.table > tbody > .active > th,
-.table > tfoot > .active > th {
+.table > thead > tr > td.active,
+.table > tbody > tr > td.active,
+.table > tfoot > tr > td.active,
+.table > thead > tr > th.active,
+.table > tbody > tr > th.active,
+.table > tfoot > tr > th.active,
+.table > thead > tr.active > td,
+.table > tbody > tr.active > td,
+.table > tfoot > tr.active > td,
+.table > thead > tr.active > th,
+.table > tbody > tr.active > th,
+.table > tfoot > tr.active > th {
background-color: #f5f5f5;
}
-
-.table-hover > tbody > tr > .active:hover,
-.table-hover > tbody > .active:hover > td,
-.table-hover > tbody > .active:hover > th {
+.table-hover > tbody > tr > td.active:hover,
+.table-hover > tbody > tr > th.active:hover,
+.table-hover > tbody > tr.active:hover > td,
+.table-hover > tbody > tr.active:hover > th {
background-color: #e8e8e8;
}
-
-.table > thead > tr > .success,
-.table > tbody > tr > .success,
-.table > tfoot > tr > .success,
-.table > thead > .success > td,
-.table > tbody > .success > td,
-.table > tfoot > .success > td,
-.table > thead > .success > th,
-.table > tbody > .success > th,
-.table > tfoot > .success > th {
+.table > thead > tr > td.success,
+.table > tbody > tr > td.success,
+.table > tfoot > tr > td.success,
+.table > thead > tr > th.success,
+.table > tbody > tr > th.success,
+.table > tfoot > tr > th.success,
+.table > thead > tr.success > td,
+.table > tbody > tr.success > td,
+.table > tfoot > tr.success > td,
+.table > thead > tr.success > th,
+.table > tbody > tr.success > th,
+.table > tfoot > tr.success > th {
background-color: #dff0d8;
}
-
-.table-hover > tbody > tr > .success:hover,
-.table-hover > tbody > .success:hover > td,
-.table-hover > tbody > .success:hover > th {
+.table-hover > tbody > tr > td.success:hover,
+.table-hover > tbody > tr > th.success:hover,
+.table-hover > tbody > tr.success:hover > td,
+.table-hover > tbody > tr.success:hover > th {
background-color: #d0e9c6;
}
-
-.table > thead > tr > .danger,
-.table > tbody > tr > .danger,
-.table > tfoot > tr > .danger,
-.table > thead > .danger > td,
-.table > tbody > .danger > td,
-.table > tfoot > .danger > td,
-.table > thead > .danger > th,
-.table > tbody > .danger > th,
-.table > tfoot > .danger > th {
- background-color: #f2dede;
-}
-
-.table-hover > tbody > tr > .danger:hover,
-.table-hover > tbody > .danger:hover > td,
-.table-hover > tbody > .danger:hover > th {
- background-color: #ebcccc;
+.table > thead > tr > td.info,
+.table > tbody > tr > td.info,
+.table > tfoot > tr > td.info,
+.table > thead > tr > th.info,
+.table > tbody > tr > th.info,
+.table > tfoot > tr > th.info,
+.table > thead > tr.info > td,
+.table > tbody > tr.info > td,
+.table > tfoot > tr.info > td,
+.table > thead > tr.info > th,
+.table > tbody > tr.info > th,
+.table > tfoot > tr.info > th {
+ background-color: #d9edf7;
}
-
-.table > thead > tr > .warning,
-.table > tbody > tr > .warning,
-.table > tfoot > tr > .warning,
-.table > thead > .warning > td,
-.table > tbody > .warning > td,
-.table > tfoot > .warning > td,
-.table > thead > .warning > th,
-.table > tbody > .warning > th,
-.table > tfoot > .warning > th {
+.table-hover > tbody > tr > td.info:hover,
+.table-hover > tbody > tr > th.info:hover,
+.table-hover > tbody > tr.info:hover > td,
+.table-hover > tbody > tr.info:hover > th {
+ background-color: #c4e3f3;
+}
+.table > thead > tr > td.warning,
+.table > tbody > tr > td.warning,
+.table > tfoot > tr > td.warning,
+.table > thead > tr > th.warning,
+.table > tbody > tr > th.warning,
+.table > tfoot > tr > th.warning,
+.table > thead > tr.warning > td,
+.table > tbody > tr.warning > td,
+.table > tfoot > tr.warning > td,
+.table > thead > tr.warning > th,
+.table > tbody > tr.warning > th,
+.table > tfoot > tr.warning > th {
background-color: #fcf8e3;
}
-
-.table-hover > tbody > tr > .warning:hover,
-.table-hover > tbody > .warning:hover > td,
-.table-hover > tbody > .warning:hover > th {
+.table-hover > tbody > tr > td.warning:hover,
+.table-hover > tbody > tr > th.warning:hover,
+.table-hover > tbody > tr.warning:hover > td,
+.table-hover > tbody > tr.warning:hover > th {
background-color: #faf2cc;
}
-
+.table > thead > tr > td.danger,
+.table > tbody > tr > td.danger,
+.table > tfoot > tr > td.danger,
+.table > thead > tr > th.danger,
+.table > tbody > tr > th.danger,
+.table > tfoot > tr > th.danger,
+.table > thead > tr.danger > td,
+.table > tbody > tr.danger > td,
+.table > tfoot > tr.danger > td,
+.table > thead > tr.danger > th,
+.table > tbody > tr.danger > th,
+.table > tfoot > tr.danger > th {
+ background-color: #f2dede;
+}
+.table-hover > tbody > tr > td.danger:hover,
+.table-hover > tbody > tr > th.danger:hover,
+.table-hover > tbody > tr.danger:hover > td,
+.table-hover > tbody > tr.danger:hover > th {
+ background-color: #ebcccc;
+}
@media (max-width: 767px) {
.table-responsive {
width: 100%;
margin-bottom: 15px;
overflow-x: scroll;
overflow-y: hidden;
- border: 1px solid #dddddd;
- -ms-overflow-style: -ms-autohiding-scrollbar;
-webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ border: 1px solid #ddd;
}
.table-responsive > .table {
margin-bottom: 0;
@@ -1850,13 +1629,12 @@ table th[class*="col-"] {
border-bottom: 0;
}
}
-
fieldset {
+ min-width: 0;
padding: 0;
margin: 0;
border: 0;
}
-
legend {
display: block;
width: 100%;
@@ -1864,47 +1642,38 @@ legend {
margin-bottom: 20px;
font-size: 21px;
line-height: inherit;
- color: #333333;
+ color: #333;
border: 0;
border-bottom: 1px solid #e5e5e5;
}
-
label {
display: inline-block;
margin-bottom: 5px;
font-weight: bold;
}
-
input[type="search"] {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
-
input[type="radio"],
input[type="checkbox"] {
margin: 4px 0 0;
margin-top: 1px \9;
/* IE8-9 */
-
line-height: normal;
}
-
input[type="file"] {
display: block;
}
-
+input[type="range"] {
+ display: block;
+ width: 100%;
+}
select[multiple],
select[size] {
height: auto;
}
-
-select optgroup {
- font-family: inherit;
- font-size: inherit;
- font-style: inherit;
-}
-
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
@@ -1912,79 +1681,65 @@ input[type="checkbox"]:focus {
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
-
-input[type="number"]::-webkit-outer-spin-button,
-input[type="number"]::-webkit-inner-spin-button {
- height: auto;
-}
-
output {
display: block;
padding-top: 7px;
font-size: 14px;
- line-height: 1.428571429;
- color: #555555;
- vertical-align: middle;
+ line-height: 1.42857143;
+ color: #555;
}
-
.form-control {
display: block;
width: 100%;
height: 34px;
padding: 6px 12px;
font-size: 14px;
- line-height: 1.428571429;
- color: #555555;
- vertical-align: middle;
- background-color: #ffffff;
+ line-height: 1.42857143;
+ color: #555;
+ background-color: #fff;
background-image: none;
- border: 1px solid #cccccc;
+ border: 1px solid #ccc;
border-radius: 4px;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
- transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+ -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+ transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
-
.form-control:focus {
border-color: #66afe9;
outline: 0;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
+ -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
}
-
-.form-control:-moz-placeholder {
- color: #999999;
-}
-
.form-control::-moz-placeholder {
- color: #999999;
+ color: #999;
opacity: 1;
}
-
.form-control:-ms-input-placeholder {
- color: #999999;
+ color: #999;
}
-
.form-control::-webkit-input-placeholder {
- color: #999999;
+ color: #999;
}
-
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
cursor: not-allowed;
- background-color: #eeeeee;
+ background-color: #eee;
+ opacity: 1;
}
-
textarea.form-control {
height: auto;
}
-
+input[type="search"] {
+ -webkit-appearance: none;
+}
+input[type="date"] {
+ line-height: 34px;
+}
.form-group {
margin-bottom: 15px;
}
-
.radio,
.checkbox {
display: block;
@@ -1992,17 +1747,13 @@ textarea.form-control {
padding-left: 20px;
margin-top: 10px;
margin-bottom: 10px;
- vertical-align: middle;
}
-
.radio label,
.checkbox label {
display: inline;
- margin-bottom: 0;
font-weight: normal;
cursor: pointer;
}
-
.radio input[type="radio"],
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
@@ -2010,12 +1761,10 @@ textarea.form-control {
float: left;
margin-left: -20px;
}
-
.radio + .radio,
.checkbox + .checkbox {
margin-top: -5px;
}
-
.radio-inline,
.checkbox-inline {
display: inline-block;
@@ -2025,13 +1774,11 @@ textarea.form-control {
vertical-align: middle;
cursor: pointer;
}
-
.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
margin-top: 0;
margin-left: 10px;
}
-
input[type="radio"][disabled],
input[type="checkbox"][disabled],
.radio[disabled],
@@ -2046,7 +1793,6 @@ fieldset[disabled] .checkbox,
fieldset[disabled] .checkbox-inline {
cursor: not-allowed;
}
-
.input-sm {
height: 30px;
padding: 5px 10px;
@@ -2054,16 +1800,14 @@ fieldset[disabled] .checkbox-inline {
line-height: 1.5;
border-radius: 3px;
}
-
select.input-sm {
height: 30px;
line-height: 30px;
}
-
-textarea.input-sm {
+textarea.input-sm,
+select[multiple].input-sm {
height: auto;
}
-
.input-lg {
height: 46px;
padding: 10px 16px;
@@ -2071,16 +1815,56 @@ textarea.input-sm {
line-height: 1.33;
border-radius: 6px;
}
-
select.input-lg {
height: 46px;
line-height: 46px;
}
-
-textarea.input-lg {
+textarea.input-lg,
+select[multiple].input-lg {
height: auto;
}
-
+.has-feedback {
+ position: relative;
+}
+.has-feedback .form-control {
+ padding-right: 42.5px;
+}
+.has-feedback .form-control-feedback {
+ position: absolute;
+ top: 25px;
+ right: 0;
+ display: block;
+ width: 34px;
+ height: 34px;
+ line-height: 34px;
+ text-align: center;
+}
+.has-success .help-block,
+.has-success .control-label,
+.has-success .radio,
+.has-success .checkbox,
+.has-success .radio-inline,
+.has-success .checkbox-inline {
+ color: #3c763d;
+}
+.has-success .form-control {
+ border-color: #3c763d;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+}
+.has-success .form-control:focus {
+ border-color: #2b542c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
+}
+.has-success .input-group-addon {
+ color: #3c763d;
+ background-color: #dff0d8;
+ border-color: #3c763d;
+}
+.has-success .form-control-feedback {
+ color: #3c763d;
+}
.has-warning .help-block,
.has-warning .control-label,
.has-warning .radio,
@@ -2089,25 +1873,24 @@ textarea.input-lg {
.has-warning .checkbox-inline {
color: #8a6d3b;
}
-
.has-warning .form-control {
border-color: #8a6d3b;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
}
-
.has-warning .form-control:focus {
border-color: #66512c;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
}
-
.has-warning .input-group-addon {
color: #8a6d3b;
background-color: #fcf8e3;
border-color: #8a6d3b;
}
-
+.has-warning .form-control-feedback {
+ color: #8a6d3b;
+}
.has-error .help-block,
.has-error .control-label,
.has-error .radio,
@@ -2116,63 +1899,33 @@ textarea.input-lg {
.has-error .checkbox-inline {
color: #a94442;
}
-
.has-error .form-control {
border-color: #a94442;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
}
-
.has-error .form-control:focus {
border-color: #843534;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
}
-
.has-error .input-group-addon {
color: #a94442;
background-color: #f2dede;
border-color: #a94442;
}
-
-.has-success .help-block,
-.has-success .control-label,
-.has-success .radio,
-.has-success .checkbox,
-.has-success .radio-inline,
-.has-success .checkbox-inline {
- color: #3c763d;
-}
-
-.has-success .form-control {
- border-color: #3c763d;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-
-.has-success .form-control:focus {
- border-color: #2b542c;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
-}
-
-.has-success .input-group-addon {
- color: #3c763d;
- background-color: #dff0d8;
- border-color: #3c763d;
+.has-error .form-control-feedback {
+ color: #a94442;
}
-
.form-control-static {
margin-bottom: 0;
}
-
.help-block {
display: block;
margin-top: 5px;
margin-bottom: 10px;
color: #737373;
}
-
@media (min-width: 768px) {
.form-inline .form-group {
display: inline-block;
@@ -2181,9 +1934,15 @@ textarea.input-lg {
}
.form-inline .form-control {
display: inline-block;
- }
- .form-inline select.form-control {
width: auto;
+ vertical-align: middle;
+ }
+ .form-inline .input-group > .form-control {
+ width: 100%;
+ }
+ .form-inline .control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
}
.form-inline .radio,
.form-inline .checkbox {
@@ -2191,14 +1950,17 @@ textarea.input-lg {
padding-left: 0;
margin-top: 0;
margin-bottom: 0;
+ vertical-align: middle;
}
.form-inline .radio input[type="radio"],
.form-inline .checkbox input[type="checkbox"] {
float: none;
margin-left: 0;
}
+ .form-inline .has-feedback .form-control-feedback {
+ top: 0;
+ }
}
-
.form-horizontal .control-label,
.form-horizontal .radio,
.form-horizontal .checkbox,
@@ -2208,121 +1970,93 @@ textarea.input-lg {
margin-top: 0;
margin-bottom: 0;
}
-
.form-horizontal .radio,
.form-horizontal .checkbox {
min-height: 27px;
}
-
.form-horizontal .form-group {
margin-right: -15px;
margin-left: -15px;
}
-
-.form-horizontal .form-group:before,
-.form-horizontal .form-group:after {
- display: table;
- content: " ";
-}
-
-.form-horizontal .form-group:after {
- clear: both;
-}
-
-.form-horizontal .form-group:before,
-.form-horizontal .form-group:after {
- display: table;
- content: " ";
-}
-
-.form-horizontal .form-group:after {
- clear: both;
-}
-
.form-horizontal .form-control-static {
padding-top: 7px;
}
-
@media (min-width: 768px) {
.form-horizontal .control-label {
text-align: right;
}
}
-
+.form-horizontal .has-feedback .form-control-feedback {
+ top: 0;
+ right: 15px;
+}
.btn {
display: inline-block;
padding: 6px 12px;
margin-bottom: 0;
font-size: 14px;
font-weight: normal;
- line-height: 1.428571429;
+ line-height: 1.42857143;
text-align: center;
white-space: nowrap;
vertical-align: middle;
cursor: pointer;
- background-image: none;
- border: 1px solid transparent;
- border-radius: 4px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
- -o-user-select: none;
user-select: none;
+ background-image: none;
+ border: 1px solid transparent;
+ border-radius: 4px;
}
-
-.btn:focus {
+.btn:focus,
+.btn:active:focus,
+.btn.active:focus {
outline: thin dotted;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
-
.btn:hover,
.btn:focus {
- color: #333333;
+ color: #333;
text-decoration: none;
}
-
.btn:active,
.btn.active {
background-image: none;
outline: 0;
- -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
-
.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
pointer-events: none;
cursor: not-allowed;
- opacity: 0.65;
filter: alpha(opacity=65);
-webkit-box-shadow: none;
box-shadow: none;
+ opacity: .65;
}
-
.btn-default {
- color: #333333;
- background-color: #ffffff;
- border-color: #cccccc;
+ color: #333;
+ background-color: #fff;
+ border-color: #ccc;
}
-
.btn-default:hover,
.btn-default:focus,
.btn-default:active,
.btn-default.active,
.open .dropdown-toggle.btn-default {
- color: #333333;
+ color: #333;
background-color: #ebebeb;
border-color: #adadad;
}
-
.btn-default:active,
.btn-default.active,
.open .dropdown-toggle.btn-default {
background-image: none;
}
-
.btn-default.disabled,
.btn-default[disabled],
fieldset[disabled] .btn-default,
@@ -2338,37 +2072,32 @@ fieldset[disabled] .btn-default:active,
.btn-default.disabled.active,
.btn-default[disabled].active,
fieldset[disabled] .btn-default.active {
- background-color: #ffffff;
- border-color: #cccccc;
+ background-color: #fff;
+ border-color: #ccc;
}
-
.btn-default .badge {
- color: #ffffff;
- background-color: #fff;
+ color: #fff;
+ background-color: #333;
}
-
.btn-primary {
- color: #ffffff;
+ color: #fff;
background-color: #428bca;
border-color: #357ebd;
}
-
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.open .dropdown-toggle.btn-primary {
- color: #ffffff;
+ color: #fff;
background-color: #3276b1;
border-color: #285e8e;
}
-
.btn-primary:active,
.btn-primary.active,
.open .dropdown-toggle.btn-primary {
background-image: none;
}
-
.btn-primary.disabled,
.btn-primary[disabled],
fieldset[disabled] .btn-primary,
@@ -2387,126 +2116,29 @@ fieldset[disabled] .btn-primary.active {
background-color: #428bca;
border-color: #357ebd;
}
-
.btn-primary .badge {
color: #428bca;
background-color: #fff;
}
-
-.btn-warning {
- color: #ffffff;
- background-color: #f0ad4e;
- border-color: #eea236;
-}
-
-.btn-warning:hover,
-.btn-warning:focus,
-.btn-warning:active,
-.btn-warning.active,
-.open .dropdown-toggle.btn-warning {
- color: #ffffff;
- background-color: #ed9c28;
- border-color: #d58512;
-}
-
-.btn-warning:active,
-.btn-warning.active,
-.open .dropdown-toggle.btn-warning {
- background-image: none;
-}
-
-.btn-warning.disabled,
-.btn-warning[disabled],
-fieldset[disabled] .btn-warning,
-.btn-warning.disabled:hover,
-.btn-warning[disabled]:hover,
-fieldset[disabled] .btn-warning:hover,
-.btn-warning.disabled:focus,
-.btn-warning[disabled]:focus,
-fieldset[disabled] .btn-warning:focus,
-.btn-warning.disabled:active,
-.btn-warning[disabled]:active,
-fieldset[disabled] .btn-warning:active,
-.btn-warning.disabled.active,
-.btn-warning[disabled].active,
-fieldset[disabled] .btn-warning.active {
- background-color: #f0ad4e;
- border-color: #eea236;
-}
-
-.btn-warning .badge {
- color: #f0ad4e;
- background-color: #fff;
-}
-
-.btn-danger {
- color: #ffffff;
- background-color: #d9534f;
- border-color: #d43f3a;
-}
-
-.btn-danger:hover,
-.btn-danger:focus,
-.btn-danger:active,
-.btn-danger.active,
-.open .dropdown-toggle.btn-danger {
- color: #ffffff;
- background-color: #d2322d;
- border-color: #ac2925;
-}
-
-.btn-danger:active,
-.btn-danger.active,
-.open .dropdown-toggle.btn-danger {
- background-image: none;
-}
-
-.btn-danger.disabled,
-.btn-danger[disabled],
-fieldset[disabled] .btn-danger,
-.btn-danger.disabled:hover,
-.btn-danger[disabled]:hover,
-fieldset[disabled] .btn-danger:hover,
-.btn-danger.disabled:focus,
-.btn-danger[disabled]:focus,
-fieldset[disabled] .btn-danger:focus,
-.btn-danger.disabled:active,
-.btn-danger[disabled]:active,
-fieldset[disabled] .btn-danger:active,
-.btn-danger.disabled.active,
-.btn-danger[disabled].active,
-fieldset[disabled] .btn-danger.active {
- background-color: #d9534f;
- border-color: #d43f3a;
-}
-
-.btn-danger .badge {
- color: #d9534f;
- background-color: #fff;
-}
-
.btn-success {
- color: #ffffff;
+ color: #fff;
background-color: #5cb85c;
border-color: #4cae4c;
}
-
.btn-success:hover,
.btn-success:focus,
.btn-success:active,
.btn-success.active,
.open .dropdown-toggle.btn-success {
- color: #ffffff;
+ color: #fff;
background-color: #47a447;
border-color: #398439;
}
-
.btn-success:active,
.btn-success.active,
.open .dropdown-toggle.btn-success {
background-image: none;
}
-
.btn-success.disabled,
.btn-success[disabled],
fieldset[disabled] .btn-success,
@@ -2525,34 +2157,29 @@ fieldset[disabled] .btn-success.active {
background-color: #5cb85c;
border-color: #4cae4c;
}
-
.btn-success .badge {
color: #5cb85c;
background-color: #fff;
}
-
.btn-info {
- color: #ffffff;
+ color: #fff;
background-color: #5bc0de;
border-color: #46b8da;
}
-
.btn-info:hover,
.btn-info:focus,
.btn-info:active,
.btn-info.active,
.open .dropdown-toggle.btn-info {
- color: #ffffff;
+ color: #fff;
background-color: #39b3d7;
border-color: #269abc;
}
-
.btn-info:active,
.btn-info.active,
.open .dropdown-toggle.btn-info {
background-image: none;
}
-
.btn-info.disabled,
.btn-info[disabled],
fieldset[disabled] .btn-info,
@@ -2571,19 +2198,98 @@ fieldset[disabled] .btn-info.active {
background-color: #5bc0de;
border-color: #46b8da;
}
-
.btn-info .badge {
color: #5bc0de;
background-color: #fff;
}
-
+.btn-warning {
+ color: #fff;
+ background-color: #f0ad4e;
+ border-color: #eea236;
+}
+.btn-warning:hover,
+.btn-warning:focus,
+.btn-warning:active,
+.btn-warning.active,
+.open .dropdown-toggle.btn-warning {
+ color: #fff;
+ background-color: #ed9c28;
+ border-color: #d58512;
+}
+.btn-warning:active,
+.btn-warning.active,
+.open .dropdown-toggle.btn-warning {
+ background-image: none;
+}
+.btn-warning.disabled,
+.btn-warning[disabled],
+fieldset[disabled] .btn-warning,
+.btn-warning.disabled:hover,
+.btn-warning[disabled]:hover,
+fieldset[disabled] .btn-warning:hover,
+.btn-warning.disabled:focus,
+.btn-warning[disabled]:focus,
+fieldset[disabled] .btn-warning:focus,
+.btn-warning.disabled:active,
+.btn-warning[disabled]:active,
+fieldset[disabled] .btn-warning:active,
+.btn-warning.disabled.active,
+.btn-warning[disabled].active,
+fieldset[disabled] .btn-warning.active {
+ background-color: #f0ad4e;
+ border-color: #eea236;
+}
+.btn-warning .badge {
+ color: #f0ad4e;
+ background-color: #fff;
+}
+.btn-danger {
+ color: #fff;
+ background-color: #d9534f;
+ border-color: #d43f3a;
+}
+.btn-danger:hover,
+.btn-danger:focus,
+.btn-danger:active,
+.btn-danger.active,
+.open .dropdown-toggle.btn-danger {
+ color: #fff;
+ background-color: #d2322d;
+ border-color: #ac2925;
+}
+.btn-danger:active,
+.btn-danger.active,
+.open .dropdown-toggle.btn-danger {
+ background-image: none;
+}
+.btn-danger.disabled,
+.btn-danger[disabled],
+fieldset[disabled] .btn-danger,
+.btn-danger.disabled:hover,
+.btn-danger[disabled]:hover,
+fieldset[disabled] .btn-danger:hover,
+.btn-danger.disabled:focus,
+.btn-danger[disabled]:focus,
+fieldset[disabled] .btn-danger:focus,
+.btn-danger.disabled:active,
+.btn-danger[disabled]:active,
+fieldset[disabled] .btn-danger:active,
+.btn-danger.disabled.active,
+.btn-danger[disabled].active,
+fieldset[disabled] .btn-danger.active {
+ background-color: #d9534f;
+ border-color: #d43f3a;
+}
+.btn-danger .badge {
+ color: #d9534f;
+ background-color: #fff;
+}
.btn-link {
font-weight: normal;
color: #428bca;
cursor: pointer;
border-radius: 0;
}
-
.btn-link,
.btn-link:active,
.btn-link[disabled],
@@ -2592,915 +2298,699 @@ fieldset[disabled] .btn-link {
-webkit-box-shadow: none;
box-shadow: none;
}
-
.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
border-color: transparent;
}
-
.btn-link:hover,
.btn-link:focus {
color: #2a6496;
text-decoration: underline;
background-color: transparent;
}
-
.btn-link[disabled]:hover,
fieldset[disabled] .btn-link:hover,
.btn-link[disabled]:focus,
fieldset[disabled] .btn-link:focus {
- color: #999999;
+ color: #999;
text-decoration: none;
}
-
-.btn-lg {
+.btn-lg,
+.btn-group-lg > .btn {
padding: 10px 16px;
font-size: 18px;
line-height: 1.33;
border-radius: 6px;
}
-
-.btn-sm {
+.btn-sm,
+.btn-group-sm > .btn {
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 3px;
}
-
-.btn-xs {
+.btn-xs,
+.btn-group-xs > .btn {
padding: 1px 5px;
font-size: 12px;
line-height: 1.5;
border-radius: 3px;
}
-
.btn-block {
display: block;
width: 100%;
padding-right: 0;
padding-left: 0;
}
-
.btn-block + .btn-block {
margin-top: 5px;
}
-
input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
width: 100%;
}
-
.fade {
opacity: 0;
- -webkit-transition: opacity 0.15s linear;
- transition: opacity 0.15s linear;
+ -webkit-transition: opacity .15s linear;
+ transition: opacity .15s linear;
}
-
.fade.in {
opacity: 1;
}
-
.collapse {
display: none;
}
-
.collapse.in {
display: block;
}
-
.collapsing {
position: relative;
height: 0;
overflow: hidden;
- -webkit-transition: height 0.35s ease;
- transition: height 0.35s ease;
+ -webkit-transition: height .35s ease;
+ transition: height .35s ease;
}
-
@font-face {
font-family: 'Glyphicons Halflings';
+
src: url('../fonts/glyphicons-halflings-regular.eot');
- src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg');
+ src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
-
.glyphicon {
position: relative;
top: 1px;
display: inline-block;
font-family: 'Glyphicons Halflings';
- -webkit-font-smoothing: antialiased;
font-style: normal;
font-weight: normal;
line-height: 1;
- -moz-osx-font-smoothing: grayscale;
-}
-.glyphicon:empty {
- width: 1em;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
}
-
.glyphicon-asterisk:before {
content: "\2a";
}
-
.glyphicon-plus:before {
content: "\2b";
}
-
.glyphicon-euro:before {
content: "\20ac";
}
-
.glyphicon-minus:before {
content: "\2212";
}
-
.glyphicon-cloud:before {
content: "\2601";
}
-
.glyphicon-envelope:before {
content: "\2709";
}
-
.glyphicon-pencil:before {
content: "\270f";
}
-
.glyphicon-glass:before {
content: "\e001";
}
-
.glyphicon-music:before {
content: "\e002";
}
-
.glyphicon-search:before {
content: "\e003";
}
-
.glyphicon-heart:before {
content: "\e005";
}
-
.glyphicon-star:before {
content: "\e006";
}
-
.glyphicon-star-empty:before {
content: "\e007";
}
-
.glyphicon-user:before {
content: "\e008";
}
-
.glyphicon-film:before {
content: "\e009";
}
-
.glyphicon-th-large:before {
content: "\e010";
}
-
.glyphicon-th:before {
content: "\e011";
}
-
.glyphicon-th-list:before {
content: "\e012";
}
-
.glyphicon-ok:before {
content: "\e013";
}
-
.glyphicon-remove:before {
content: "\e014";
}
-
.glyphicon-zoom-in:before {
content: "\e015";
}
-
.glyphicon-zoom-out:before {
content: "\e016";
}
-
.glyphicon-off:before {
content: "\e017";
}
-
.glyphicon-signal:before {
content: "\e018";
}
-
.glyphicon-cog:before {
content: "\e019";
}
-
.glyphicon-trash:before {
content: "\e020";
}
-
.glyphicon-home:before {
content: "\e021";
}
-
.glyphicon-file:before {
content: "\e022";
}
-
.glyphicon-time:before {
content: "\e023";
}
-
.glyphicon-road:before {
content: "\e024";
}
-
.glyphicon-download-alt:before {
content: "\e025";
}
-
.glyphicon-download:before {
content: "\e026";
}
-
.glyphicon-upload:before {
content: "\e027";
}
-
.glyphicon-inbox:before {
content: "\e028";
}
-
.glyphicon-play-circle:before {
content: "\e029";
}
-
.glyphicon-repeat:before {
content: "\e030";
}
-
.glyphicon-refresh:before {
content: "\e031";
}
-
.glyphicon-list-alt:before {
content: "\e032";
}
-
.glyphicon-lock:before {
content: "\e033";
}
-
.glyphicon-flag:before {
content: "\e034";
}
-
.glyphicon-headphones:before {
content: "\e035";
}
-
.glyphicon-volume-off:before {
content: "\e036";
}
-
.glyphicon-volume-down:before {
content: "\e037";
}
-
.glyphicon-volume-up:before {
content: "\e038";
}
-
.glyphicon-qrcode:before {
content: "\e039";
}
-
.glyphicon-barcode:before {
content: "\e040";
}
-
.glyphicon-tag:before {
content: "\e041";
}
-
.glyphicon-tags:before {
content: "\e042";
}
-
.glyphicon-book:before {
content: "\e043";
}
-
.glyphicon-bookmark:before {
content: "\e044";
}
-
.glyphicon-print:before {
content: "\e045";
}
-
.glyphicon-camera:before {
content: "\e046";
}
-
.glyphicon-font:before {
content: "\e047";
}
-
.glyphicon-bold:before {
content: "\e048";
}
-
.glyphicon-italic:before {
content: "\e049";
}
-
.glyphicon-text-height:before {
content: "\e050";
}
-
.glyphicon-text-width:before {
content: "\e051";
}
-
.glyphicon-align-left:before {
content: "\e052";
}
-
.glyphicon-align-center:before {
content: "\e053";
}
-
.glyphicon-align-right:before {
content: "\e054";
}
-
.glyphicon-align-justify:before {
content: "\e055";
}
-
.glyphicon-list:before {
content: "\e056";
}
-
.glyphicon-indent-left:before {
content: "\e057";
}
-
.glyphicon-indent-right:before {
content: "\e058";
}
-
.glyphicon-facetime-video:before {
content: "\e059";
}
-
.glyphicon-picture:before {
content: "\e060";
}
-
.glyphicon-map-marker:before {
content: "\e062";
}
-
.glyphicon-adjust:before {
content: "\e063";
}
-
.glyphicon-tint:before {
content: "\e064";
}
-
.glyphicon-edit:before {
content: "\e065";
}
-
.glyphicon-share:before {
content: "\e066";
}
-
.glyphicon-check:before {
content: "\e067";
}
-
.glyphicon-move:before {
content: "\e068";
}
-
.glyphicon-step-backward:before {
content: "\e069";
}
-
.glyphicon-fast-backward:before {
content: "\e070";
}
-
.glyphicon-backward:before {
content: "\e071";
}
-
.glyphicon-play:before {
content: "\e072";
}
-
.glyphicon-pause:before {
content: "\e073";
}
-
.glyphicon-stop:before {
content: "\e074";
}
-
.glyphicon-forward:before {
content: "\e075";
}
-
.glyphicon-fast-forward:before {
content: "\e076";
}
-
.glyphicon-step-forward:before {
content: "\e077";
}
-
.glyphicon-eject:before {
content: "\e078";
}
-
.glyphicon-chevron-left:before {
content: "\e079";
}
-
.glyphicon-chevron-right:before {
content: "\e080";
}
-
.glyphicon-plus-sign:before {
content: "\e081";
}
-
.glyphicon-minus-sign:before {
content: "\e082";
}
-
.glyphicon-remove-sign:before {
content: "\e083";
}
-
.glyphicon-ok-sign:before {
content: "\e084";
}
-
.glyphicon-question-sign:before {
content: "\e085";
}
-
.glyphicon-info-sign:before {
content: "\e086";
}
-
.glyphicon-screenshot:before {
content: "\e087";
}
-
.glyphicon-remove-circle:before {
content: "\e088";
}
-
.glyphicon-ok-circle:before {
content: "\e089";
}
-
.glyphicon-ban-circle:before {
content: "\e090";
}
-
.glyphicon-arrow-left:before {
content: "\e091";
}
-
.glyphicon-arrow-right:before {
content: "\e092";
}
-
.glyphicon-arrow-up:before {
content: "\e093";
}
-
.glyphicon-arrow-down:before {
content: "\e094";
}
-
.glyphicon-share-alt:before {
content: "\e095";
}
-
.glyphicon-resize-full:before {
content: "\e096";
}
-
.glyphicon-resize-small:before {
content: "\e097";
}
-
.glyphicon-exclamation-sign:before {
content: "\e101";
}
-
.glyphicon-gift:before {
content: "\e102";
}
-
.glyphicon-leaf:before {
content: "\e103";
}
-
.glyphicon-fire:before {
content: "\e104";
}
-
.glyphicon-eye-open:before {
content: "\e105";
}
-
.glyphicon-eye-close:before {
content: "\e106";
}
-
.glyphicon-warning-sign:before {
content: "\e107";
}
-
.glyphicon-plane:before {
content: "\e108";
}
-
.glyphicon-calendar:before {
content: "\e109";
}
-
.glyphicon-random:before {
content: "\e110";
}
-
.glyphicon-comment:before {
content: "\e111";
}
-
.glyphicon-magnet:before {
content: "\e112";
}
-
.glyphicon-chevron-up:before {
content: "\e113";
}
-
.glyphicon-chevron-down:before {
content: "\e114";
}
-
.glyphicon-retweet:before {
content: "\e115";
}
-
.glyphicon-shopping-cart:before {
content: "\e116";
}
-
.glyphicon-folder-close:before {
content: "\e117";
}
-
.glyphicon-folder-open:before {
content: "\e118";
}
-
.glyphicon-resize-vertical:before {
content: "\e119";
}
-
.glyphicon-resize-horizontal:before {
content: "\e120";
}
-
.glyphicon-hdd:before {
content: "\e121";
}
-
.glyphicon-bullhorn:before {
content: "\e122";
}
-
.glyphicon-bell:before {
content: "\e123";
}
-
.glyphicon-certificate:before {
content: "\e124";
}
-
.glyphicon-thumbs-up:before {
content: "\e125";
}
-
.glyphicon-thumbs-down:before {
content: "\e126";
}
-
.glyphicon-hand-right:before {
content: "\e127";
}
-
.glyphicon-hand-left:before {
content: "\e128";
}
-
.glyphicon-hand-up:before {
content: "\e129";
}
-
.glyphicon-hand-down:before {
content: "\e130";
}
-
.glyphicon-circle-arrow-right:before {
content: "\e131";
}
-
.glyphicon-circle-arrow-left:before {
content: "\e132";
}
-
.glyphicon-circle-arrow-up:before {
content: "\e133";
}
-
.glyphicon-circle-arrow-down:before {
content: "\e134";
}
-
.glyphicon-globe:before {
content: "\e135";
}
-
.glyphicon-wrench:before {
content: "\e136";
}
-
.glyphicon-tasks:before {
content: "\e137";
}
-
.glyphicon-filter:before {
content: "\e138";
}
-
.glyphicon-briefcase:before {
content: "\e139";
}
-
.glyphicon-fullscreen:before {
content: "\e140";
}
-
.glyphicon-dashboard:before {
content: "\e141";
}
-
.glyphicon-paperclip:before {
content: "\e142";
}
-
.glyphicon-heart-empty:before {
content: "\e143";
}
-
.glyphicon-link:before {
content: "\e144";
}
-
.glyphicon-phone:before {
content: "\e145";
}
-
.glyphicon-pushpin:before {
content: "\e146";
}
-
.glyphicon-usd:before {
content: "\e148";
}
-
.glyphicon-gbp:before {
content: "\e149";
}
-
.glyphicon-sort:before {
content: "\e150";
}
-
.glyphicon-sort-by-alphabet:before {
content: "\e151";
}
-
.glyphicon-sort-by-alphabet-alt:before {
content: "\e152";
}
-
.glyphicon-sort-by-order:before {
content: "\e153";
}
-
.glyphicon-sort-by-order-alt:before {
content: "\e154";
}
-
.glyphicon-sort-by-attributes:before {
content: "\e155";
}
-
.glyphicon-sort-by-attributes-alt:before {
content: "\e156";
}
-
.glyphicon-unchecked:before {
content: "\e157";
}
-
.glyphicon-expand:before {
content: "\e158";
}
-
.glyphicon-collapse-down:before {
content: "\e159";
}
-
.glyphicon-collapse-up:before {
content: "\e160";
}
-
.glyphicon-log-in:before {
content: "\e161";
}
-
.glyphicon-flash:before {
content: "\e162";
}
-
.glyphicon-log-out:before {
content: "\e163";
}
-
.glyphicon-new-window:before {
content: "\e164";
}
-
.glyphicon-record:before {
content: "\e165";
}
-
.glyphicon-save:before {
content: "\e166";
}
-
.glyphicon-open:before {
content: "\e167";
}
-
.glyphicon-saved:before {
content: "\e168";
}
-
.glyphicon-import:before {
content: "\e169";
}
-
.glyphicon-export:before {
content: "\e170";
}
-
.glyphicon-send:before {
content: "\e171";
}
-
.glyphicon-floppy-disk:before {
content: "\e172";
}
-
.glyphicon-floppy-saved:before {
content: "\e173";
}
-
.glyphicon-floppy-remove:before {
content: "\e174";
}
-
.glyphicon-floppy-save:before {
content: "\e175";
}
-
.glyphicon-floppy-open:before {
content: "\e176";
}
-
.glyphicon-credit-card:before {
content: "\e177";
}
-
.glyphicon-transfer:before {
content: "\e178";
}
-
.glyphicon-cutlery:before {
content: "\e179";
}
-
.glyphicon-header:before {
content: "\e180";
}
-
.glyphicon-compressed:before {
content: "\e181";
}
-
.glyphicon-earphone:before {
content: "\e182";
}
-
.glyphicon-phone-alt:before {
content: "\e183";
}
-
.glyphicon-tower:before {
content: "\e184";
}
-
.glyphicon-stats:before {
content: "\e185";
}
-
.glyphicon-sd-video:before {
content: "\e186";
}
-
.glyphicon-hd-video:before {
content: "\e187";
}
-
.glyphicon-subtitles:before {
content: "\e188";
}
-
.glyphicon-sound-stereo:before {
content: "\e189";
}
-
.glyphicon-sound-dolby:before {
content: "\e190";
}
-
.glyphicon-sound-5-1:before {
content: "\e191";
}
-
.glyphicon-sound-6-1:before {
content: "\e192";
}
-
.glyphicon-sound-7-1:before {
content: "\e193";
}
-
.glyphicon-copyright-mark:before {
content: "\e194";
}
-
.glyphicon-registration-mark:before {
content: "\e195";
}
-
.glyphicon-cloud-download:before {
content: "\e197";
}
-
.glyphicon-cloud-upload:before {
content: "\e198";
}
-
.glyphicon-tree-conifer:before {
content: "\e199";
}
-
.glyphicon-tree-deciduous:before {
content: "\e200";
}
-
.caret {
display: inline-block;
width: 0;
@@ -3511,15 +3001,12 @@ input[type="button"].btn-block {
border-right: 4px solid transparent;
border-left: 4px solid transparent;
}
-
.dropdown {
position: relative;
}
-
.dropdown-toggle:focus {
outline: 0;
}
-
.dropdown-menu {
position: absolute;
top: 100%;
@@ -3532,84 +3019,81 @@ input[type="button"].btn-block {
margin: 2px 0 0;
font-size: 14px;
list-style: none;
- background-color: #ffffff;
- border: 1px solid #cccccc;
- border: 1px solid rgba(0, 0, 0, 0.15);
- border-radius: 4px;
- -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
- box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ background-color: #fff;
background-clip: padding-box;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, .15);
+ border-radius: 4px;
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
+ box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
}
-
.dropdown-menu.pull-right {
right: 0;
left: auto;
}
-
.dropdown-menu .divider {
height: 1px;
margin: 9px 0;
overflow: hidden;
background-color: #e5e5e5;
}
-
.dropdown-menu > li > a {
display: block;
padding: 3px 20px;
clear: both;
font-weight: normal;
- line-height: 1.428571429;
- color: #333333;
+ line-height: 1.42857143;
+ color: #333;
white-space: nowrap;
}
-
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
color: #262626;
text-decoration: none;
background-color: #f5f5f5;
}
-
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
- color: #ffffff;
+ color: #fff;
text-decoration: none;
background-color: #428bca;
outline: 0;
}
-
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
- color: #999999;
+ color: #999;
}
-
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
text-decoration: none;
cursor: not-allowed;
background-color: transparent;
background-image: none;
- filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
-
.open > .dropdown-menu {
display: block;
}
-
.open > a {
outline: 0;
}
-
+.dropdown-menu-right {
+ right: 0;
+ left: auto;
+}
+.dropdown-menu-left {
+ right: auto;
+ left: 0;
+}
.dropdown-header {
display: block;
padding: 3px 20px;
font-size: 12px;
- line-height: 1.428571429;
- color: #999999;
+ line-height: 1.42857143;
+ color: #999;
}
-
.dropdown-backdrop {
position: fixed;
top: 0;
@@ -3618,46 +3102,43 @@ input[type="button"].btn-block {
left: 0;
z-index: 990;
}
-
.pull-right > .dropdown-menu {
right: 0;
left: auto;
}
-
.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
+ content: "";
border-top: 0;
border-bottom: 4px solid;
- content: "";
}
-
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
top: auto;
bottom: 100%;
margin-bottom: 1px;
}
-
@media (min-width: 768px) {
.navbar-right .dropdown-menu {
right: 0;
left: auto;
}
+ .navbar-right .dropdown-menu-left {
+ right: auto;
+ left: 0;
+ }
}
-
.btn-group,
.btn-group-vertical {
position: relative;
display: inline-block;
vertical-align: middle;
}
-
.btn-group > .btn,
.btn-group-vertical > .btn {
position: relative;
float: left;
}
-
.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover,
.btn-group > .btn:focus,
@@ -3668,147 +3149,88 @@ input[type="button"].btn-block {
.btn-group-vertical > .btn.active {
z-index: 2;
}
-
.btn-group > .btn:focus,
.btn-group-vertical > .btn:focus {
outline: none;
}
-
.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
.btn-group .btn-group + .btn,
.btn-group .btn-group + .btn-group {
margin-left: -1px;
}
-
-.btn-toolbar:before,
-.btn-toolbar:after {
- display: table;
- content: " ";
-}
-
-.btn-toolbar:after {
- clear: both;
-}
-
-.btn-toolbar:before,
-.btn-toolbar:after {
- display: table;
- content: " ";
-}
-
-.btn-toolbar:after {
- clear: both;
+.btn-toolbar {
+ margin-left: -5px;
}
-
-.btn-toolbar .btn-group {
+.btn-toolbar .btn-group,
+.btn-toolbar .input-group {
float: left;
}
-
-.btn-toolbar > .btn + .btn,
-.btn-toolbar > .btn-group + .btn,
-.btn-toolbar > .btn + .btn-group,
-.btn-toolbar > .btn-group + .btn-group {
+.btn-toolbar > .btn,
+.btn-toolbar > .btn-group,
+.btn-toolbar > .input-group {
margin-left: 5px;
}
-
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
border-radius: 0;
}
-
.btn-group > .btn:first-child {
margin-left: 0;
}
-
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
-
.btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle:not(:first-child) {
- border-bottom-left-radius: 0;
border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
}
-
.btn-group > .btn-group {
float: left;
}
-
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
border-radius: 0;
}
-
.btn-group > .btn-group:first-child > .btn:last-child,
.btn-group > .btn-group:first-child > .dropdown-toggle {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
-
.btn-group > .btn-group:last-child > .btn:first-child {
- border-bottom-left-radius: 0;
border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
}
-
.btn-group .dropdown-toggle:active,
.btn-group.open .dropdown-toggle {
outline: 0;
}
-
-.btn-group-xs > .btn {
- padding: 1px 5px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
-}
-
-.btn-group-sm > .btn {
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
-}
-
-.btn-group-lg > .btn {
- padding: 10px 16px;
- font-size: 18px;
- line-height: 1.33;
- border-radius: 6px;
-}
-
.btn-group > .btn + .dropdown-toggle {
padding-right: 8px;
padding-left: 8px;
}
-
.btn-group > .btn-lg + .dropdown-toggle {
padding-right: 12px;
padding-left: 12px;
}
-
.btn-group.open .dropdown-toggle {
- -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
-
.btn-group.open .dropdown-toggle.btn-link {
-webkit-box-shadow: none;
box-shadow: none;
}
-
.btn .caret {
margin-left: 0;
}
-
.btn-lg .caret {
border-width: 5px 5px 0;
border-bottom-width: 0;
}
-
.dropup .btn-lg .caret {
border-width: 0 5px 5px;
}
-
.btn-group-vertical > .btn,
.btn-group-vertical > .btn-group,
.btn-group-vertical > .btn-group > .btn {
@@ -3817,31 +3239,9 @@ input[type="button"].btn-block {
width: 100%;
max-width: 100%;
}
-
-.btn-group-vertical > .btn-group:before,
-.btn-group-vertical > .btn-group:after {
- display: table;
- content: " ";
-}
-
-.btn-group-vertical > .btn-group:after {
- clear: both;
-}
-
-.btn-group-vertical > .btn-group:before,
-.btn-group-vertical > .btn-group:after {
- display: table;
- content: " ";
-}
-
-.btn-group-vertical > .btn-group:after {
- clear: both;
-}
-
.btn-group-vertical > .btn-group > .btn {
float: none;
}
-
.btn-group-vertical > .btn + .btn,
.btn-group-vertical > .btn + .btn-group,
.btn-group-vertical > .btn-group + .btn,
@@ -3849,78 +3249,67 @@ input[type="button"].btn-block {
margin-top: -1px;
margin-left: 0;
}
-
.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
border-radius: 0;
}
-
.btn-group-vertical > .btn:first-child:not(:last-child) {
border-top-right-radius: 4px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
-
.btn-group-vertical > .btn:last-child:not(:first-child) {
+ border-top-left-radius: 0;
border-top-right-radius: 0;
border-bottom-left-radius: 4px;
- border-top-left-radius: 0;
}
-
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
border-radius: 0;
}
-
-.btn-group-vertical > .btn-group:first-child > .btn:last-child,
-.btn-group-vertical > .btn-group:first-child > .dropdown-toggle {
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
-
-.btn-group-vertical > .btn-group:last-child > .btn:first-child {
- border-top-right-radius: 0;
+.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
border-top-left-radius: 0;
+ border-top-right-radius: 0;
}
-
.btn-group-justified {
display: table;
width: 100%;
- border-collapse: separate;
table-layout: fixed;
+ border-collapse: separate;
}
-
.btn-group-justified > .btn,
.btn-group-justified > .btn-group {
display: table-cell;
float: none;
width: 1%;
}
-
.btn-group-justified > .btn-group .btn {
width: 100%;
}
-
[data-toggle="buttons"] > .btn > input[type="radio"],
[data-toggle="buttons"] > .btn > input[type="checkbox"] {
display: none;
}
-
.input-group {
position: relative;
display: table;
border-collapse: separate;
}
-
.input-group[class*="col-"] {
float: none;
padding-right: 0;
padding-left: 0;
}
-
.input-group .form-control {
+ position: relative;
+ z-index: 2;
+ float: left;
width: 100%;
margin-bottom: 0;
}
-
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn {
@@ -3930,20 +3319,20 @@ input[type="button"].btn-block {
line-height: 1.33;
border-radius: 6px;
}
-
select.input-group-lg > .form-control,
select.input-group-lg > .input-group-addon,
select.input-group-lg > .input-group-btn > .btn {
height: 46px;
line-height: 46px;
}
-
textarea.input-group-lg > .form-control,
textarea.input-group-lg > .input-group-addon,
-textarea.input-group-lg > .input-group-btn > .btn {
+textarea.input-group-lg > .input-group-btn > .btn,
+select[multiple].input-group-lg > .form-control,
+select[multiple].input-group-lg > .input-group-addon,
+select[multiple].input-group-lg > .input-group-btn > .btn {
height: auto;
}
-
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn {
@@ -3953,242 +3342,195 @@ textarea.input-group-lg > .input-group-btn > .btn {
line-height: 1.5;
border-radius: 3px;
}
-
select.input-group-sm > .form-control,
select.input-group-sm > .input-group-addon,
select.input-group-sm > .input-group-btn > .btn {
height: 30px;
line-height: 30px;
}
-
textarea.input-group-sm > .form-control,
textarea.input-group-sm > .input-group-addon,
-textarea.input-group-sm > .input-group-btn > .btn {
+textarea.input-group-sm > .input-group-btn > .btn,
+select[multiple].input-group-sm > .form-control,
+select[multiple].input-group-sm > .input-group-addon,
+select[multiple].input-group-sm > .input-group-btn > .btn {
height: auto;
}
-
.input-group-addon,
.input-group-btn,
.input-group .form-control {
display: table-cell;
}
-
.input-group-addon:not(:first-child):not(:last-child),
.input-group-btn:not(:first-child):not(:last-child),
.input-group .form-control:not(:first-child):not(:last-child) {
border-radius: 0;
}
-
.input-group-addon,
.input-group-btn {
width: 1%;
white-space: nowrap;
vertical-align: middle;
}
-
.input-group-addon {
padding: 6px 12px;
font-size: 14px;
font-weight: normal;
line-height: 1;
- color: #555555;
+ color: #555;
text-align: center;
- background-color: #eeeeee;
- border: 1px solid #cccccc;
+ background-color: #eee;
+ border: 1px solid #ccc;
border-radius: 4px;
}
-
.input-group-addon.input-sm {
padding: 5px 10px;
font-size: 12px;
border-radius: 3px;
}
-
.input-group-addon.input-lg {
padding: 10px 16px;
font-size: 18px;
border-radius: 6px;
}
-
.input-group-addon input[type="radio"],
.input-group-addon input[type="checkbox"] {
margin-top: 0;
}
-
.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group > .btn,
.input-group-btn:first-child > .dropdown-toggle,
-.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {
+.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
-
.input-group-addon:first-child {
border-right: 0;
}
-
.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group > .btn,
.input-group-btn:last-child > .dropdown-toggle,
-.input-group-btn:first-child > .btn:not(:first-child) {
- border-bottom-left-radius: 0;
+.input-group-btn:first-child > .btn:not(:first-child),
+.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
}
-
.input-group-addon:last-child {
border-left: 0;
}
-
.input-group-btn {
position: relative;
+ font-size: 0;
white-space: nowrap;
}
-
-.input-group-btn:first-child > .btn {
- margin-right: -1px;
-}
-
-.input-group-btn:last-child > .btn {
- margin-left: -1px;
-}
-
.input-group-btn > .btn {
position: relative;
}
-
.input-group-btn > .btn + .btn {
- margin-left: -4px;
+ margin-left: -1px;
}
-
.input-group-btn > .btn:hover,
+.input-group-btn > .btn:focus,
.input-group-btn > .btn:active {
z-index: 2;
}
-
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group {
+ margin-right: -1px;
+}
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group {
+ margin-left: -1px;
+}
.nav {
padding-left: 0;
margin-bottom: 0;
list-style: none;
}
-
-.nav:before,
-.nav:after {
- display: table;
- content: " ";
-}
-
-.nav:after {
- clear: both;
-}
-
-.nav:before,
-.nav:after {
- display: table;
- content: " ";
-}
-
-.nav:after {
- clear: both;
-}
-
.nav > li {
position: relative;
display: block;
}
-
.nav > li > a {
position: relative;
display: block;
padding: 10px 15px;
}
-
.nav > li > a:hover,
.nav > li > a:focus {
text-decoration: none;
- background-color: #eeeeee;
+ background-color: #eee;
}
-
.nav > li.disabled > a {
- color: #999999;
+ color: #999;
}
-
.nav > li.disabled > a:hover,
.nav > li.disabled > a:focus {
- color: #999999;
+ color: #999;
text-decoration: none;
cursor: not-allowed;
background-color: transparent;
}
-
.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus {
- background-color: #eeeeee;
+ background-color: #eee;
border-color: #428bca;
}
-
.nav .nav-divider {
height: 1px;
margin: 9px 0;
overflow: hidden;
background-color: #e5e5e5;
}
-
.nav > li > a > img {
max-width: none;
}
-
.nav-tabs {
- border-bottom: 1px solid #dddddd;
+ border-bottom: 1px solid #ddd;
}
-
.nav-tabs > li {
float: left;
margin-bottom: -1px;
}
-
.nav-tabs > li > a {
margin-right: 2px;
- line-height: 1.428571429;
+ line-height: 1.42857143;
border: 1px solid transparent;
border-radius: 4px 4px 0 0;
}
-
.nav-tabs > li > a:hover {
- border-color: #eeeeee #eeeeee #dddddd;
+ border-color: #eee #eee #ddd;
}
-
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
- color: #555555;
+ color: #555;
cursor: default;
- background-color: #ffffff;
- border: 1px solid #dddddd;
+ background-color: #fff;
+ border: 1px solid #ddd;
border-bottom-color: transparent;
}
-
.nav-tabs.nav-justified {
width: 100%;
border-bottom: 0;
}
-
.nav-tabs.nav-justified > li {
float: none;
}
-
.nav-tabs.nav-justified > li > a {
margin-bottom: 5px;
text-align: center;
}
-
.nav-tabs.nav-justified > .dropdown .dropdown-menu {
top: auto;
left: auto;
}
-
@media (min-width: 768px) {
.nav-tabs.nav-justified > li {
display: table-cell;
@@ -4198,76 +3540,62 @@ textarea.input-group-sm > .input-group-btn > .btn {
margin-bottom: 0;
}
}
-
.nav-tabs.nav-justified > li > a {
margin-right: 0;
border-radius: 4px;
}
-
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
.nav-tabs.nav-justified > .active > a:focus {
- border: 1px solid #dddddd;
+ border: 1px solid #ddd;
}
-
@media (min-width: 768px) {
.nav-tabs.nav-justified > li > a {
- border-bottom: 1px solid #dddddd;
+ border-bottom: 1px solid #ddd;
border-radius: 4px 4px 0 0;
}
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
.nav-tabs.nav-justified > .active > a:focus {
- border-bottom-color: #ffffff;
+ border-bottom-color: #fff;
}
}
-
.nav-pills > li {
float: left;
}
-
.nav-pills > li > a {
border-radius: 4px;
}
-
.nav-pills > li + li {
margin-left: 2px;
}
-
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
- color: #ffffff;
+ color: #fff;
background-color: #428bca;
}
-
.nav-stacked > li {
float: none;
}
-
.nav-stacked > li + li {
margin-top: 2px;
margin-left: 0;
}
-
.nav-justified {
width: 100%;
}
-
.nav-justified > li {
float: none;
}
-
.nav-justified > li > a {
margin-bottom: 5px;
text-align: center;
}
-
.nav-justified > .dropdown .dropdown-menu {
top: auto;
left: auto;
}
-
@media (min-width: 768px) {
.nav-justified > li {
display: table-cell;
@@ -4277,141 +3605,68 @@ textarea.input-group-sm > .input-group-btn > .btn {
margin-bottom: 0;
}
}
-
.nav-tabs-justified {
border-bottom: 0;
}
-
.nav-tabs-justified > li > a {
margin-right: 0;
border-radius: 4px;
}
-
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
.nav-tabs-justified > .active > a:focus {
- border: 1px solid #dddddd;
+ border: 1px solid #ddd;
}
-
@media (min-width: 768px) {
.nav-tabs-justified > li > a {
- border-bottom: 1px solid #dddddd;
+ border-bottom: 1px solid #ddd;
border-radius: 4px 4px 0 0;
}
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
.nav-tabs-justified > .active > a:focus {
- border-bottom-color: #ffffff;
+ border-bottom-color: #fff;
}
}
-
.tab-content > .tab-pane {
display: none;
}
-
.tab-content > .active {
display: block;
}
-
.nav-tabs .dropdown-menu {
margin-top: -1px;
- border-top-right-radius: 0;
border-top-left-radius: 0;
+ border-top-right-radius: 0;
}
-
.navbar {
position: relative;
min-height: 50px;
margin-bottom: 20px;
border: 1px solid transparent;
}
-
-.navbar:before,
-.navbar:after {
- display: table;
- content: " ";
-}
-
-.navbar:after {
- clear: both;
-}
-
-.navbar:before,
-.navbar:after {
- display: table;
- content: " ";
-}
-
-.navbar:after {
- clear: both;
-}
-
@media (min-width: 768px) {
.navbar {
border-radius: 4px;
}
}
-
-.navbar-header:before,
-.navbar-header:after {
- display: table;
- content: " ";
-}
-
-.navbar-header:after {
- clear: both;
-}
-
-.navbar-header:before,
-.navbar-header:after {
- display: table;
- content: " ";
-}
-
-.navbar-header:after {
- clear: both;
-}
-
@media (min-width: 768px) {
.navbar-header {
float: left;
}
}
-
.navbar-collapse {
max-height: 340px;
padding-right: 15px;
padding-left: 15px;
overflow-x: visible;
- border-top: 1px solid transparent;
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
-webkit-overflow-scrolling: touch;
+ border-top: 1px solid transparent;
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
}
-
-.navbar-collapse:before,
-.navbar-collapse:after {
- display: table;
- content: " ";
-}
-
-.navbar-collapse:after {
- clear: both;
-}
-
-.navbar-collapse:before,
-.navbar-collapse:after {
- display: table;
- content: " ";
-}
-
-.navbar-collapse:after {
- clear: both;
-}
-
.navbar-collapse.in {
overflow-y: auto;
}
-
@media (min-width: 768px) {
.navbar-collapse {
width: auto;
@@ -4434,32 +3689,31 @@ textarea.input-group-sm > .input-group-btn > .btn {
padding-left: 0;
}
}
-
.container > .navbar-header,
-.container > .navbar-collapse {
+.container-fluid > .navbar-header,
+.container > .navbar-collapse,
+.container-fluid > .navbar-collapse {
margin-right: -15px;
margin-left: -15px;
}
-
@media (min-width: 768px) {
.container > .navbar-header,
- .container > .navbar-collapse {
+ .container-fluid > .navbar-header,
+ .container > .navbar-collapse,
+ .container-fluid > .navbar-collapse {
margin-right: 0;
margin-left: 0;
}
}
-
.navbar-static-top {
z-index: 1000;
border-width: 0 0 1px;
}
-
@media (min-width: 768px) {
.navbar-static-top {
border-radius: 0;
}
}
-
.navbar-fixed-top,
.navbar-fixed-bottom {
position: fixed;
@@ -4467,43 +3721,38 @@ textarea.input-group-sm > .input-group-btn > .btn {
left: 0;
z-index: 1030;
}
-
@media (min-width: 768px) {
.navbar-fixed-top,
.navbar-fixed-bottom {
border-radius: 0;
}
}
-
.navbar-fixed-top {
top: 0;
border-width: 0 0 1px;
}
-
.navbar-fixed-bottom {
bottom: 0;
margin-bottom: 0;
border-width: 1px 0 0;
}
-
.navbar-brand {
float: left;
+ height: 50px;
padding: 15px 15px;
font-size: 18px;
line-height: 20px;
}
-
.navbar-brand:hover,
.navbar-brand:focus {
text-decoration: none;
}
-
@media (min-width: 768px) {
- .navbar > .container .navbar-brand {
+ .navbar > .container .navbar-brand,
+ .navbar > .container-fluid .navbar-brand {
margin-left: -15px;
}
}
-
.navbar-toggle {
position: relative;
float: right;
@@ -4516,34 +3765,31 @@ textarea.input-group-sm > .input-group-btn > .btn {
border: 1px solid transparent;
border-radius: 4px;
}
-
+.navbar-toggle:focus {
+ outline: none;
+}
.navbar-toggle .icon-bar {
display: block;
width: 22px;
height: 2px;
border-radius: 1px;
}
-
.navbar-toggle .icon-bar + .icon-bar {
margin-top: 4px;
}
-
@media (min-width: 768px) {
.navbar-toggle {
display: none;
}
}
-
.navbar-nav {
margin: 7.5px -15px;
}
-
.navbar-nav > li > a {
padding-top: 10px;
padding-bottom: 10px;
line-height: 20px;
}
-
@media (max-width: 767px) {
.navbar-nav .open .dropdown-menu {
position: static;
@@ -4566,7 +3812,6 @@ textarea.input-group-sm > .input-group-btn > .btn {
background-image: none;
}
}
-
@media (min-width: 768px) {
.navbar-nav {
float: left;
@@ -4583,7 +3828,6 @@ textarea.input-group-sm > .input-group-btn > .btn {
margin-right: -15px;
}
}
-
@media (min-width: 768px) {
.navbar-left {
float: left !important;
@@ -4592,7 +3836,6 @@ textarea.input-group-sm > .input-group-btn > .btn {
float: right !important;
}
}
-
.navbar-form {
padding: 10px 15px;
margin-top: 8px;
@@ -4601,10 +3844,9 @@ textarea.input-group-sm > .input-group-btn > .btn {
margin-left: -15px;
border-top: 1px solid transparent;
border-bottom: 1px solid transparent;
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
}
-
@media (min-width: 768px) {
.navbar-form .form-group {
display: inline-block;
@@ -4613,9 +3855,15 @@ textarea.input-group-sm > .input-group-btn > .btn {
}
.navbar-form .form-control {
display: inline-block;
- }
- .navbar-form select.form-control {
width: auto;
+ vertical-align: middle;
+ }
+ .navbar-form .input-group > .form-control {
+ width: 100%;
+ }
+ .navbar-form .control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
}
.navbar-form .radio,
.navbar-form .checkbox {
@@ -4623,20 +3871,22 @@ textarea.input-group-sm > .input-group-btn > .btn {
padding-left: 0;
margin-top: 0;
margin-bottom: 0;
+ vertical-align: middle;
}
.navbar-form .radio input[type="radio"],
.navbar-form .checkbox input[type="checkbox"] {
float: none;
margin-left: 0;
}
+ .navbar-form .has-feedback .form-control-feedback {
+ top: 0;
+ }
}
-
@media (max-width: 767px) {
.navbar-form .form-group {
margin-bottom: 5px;
}
}
-
@media (min-width: 768px) {
.navbar-form {
width: auto;
@@ -4652,44 +3902,31 @@ textarea.input-group-sm > .input-group-btn > .btn {
margin-right: -15px;
}
}
-
.navbar-nav > li > .dropdown-menu {
margin-top: 0;
- border-top-right-radius: 0;
border-top-left-radius: 0;
+ border-top-right-radius: 0;
}
-
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
-
-.navbar-nav.pull-right > li > .dropdown-menu,
-.navbar-nav > li > .dropdown-menu.pull-right {
- right: 0;
- left: auto;
-}
-
.navbar-btn {
margin-top: 8px;
margin-bottom: 8px;
}
-
.navbar-btn.btn-sm {
margin-top: 10px;
margin-bottom: 10px;
}
-
.navbar-btn.btn-xs {
margin-top: 14px;
margin-bottom: 14px;
}
-
.navbar-text {
margin-top: 15px;
margin-bottom: 15px;
}
-
@media (min-width: 768px) {
.navbar-text {
float: left;
@@ -4700,174 +3937,144 @@ textarea.input-group-sm > .input-group-btn > .btn {
margin-right: 0;
}
}
-
.navbar-default {
background-color: #f8f8f8;
border-color: #e7e7e7;
}
-
.navbar-default .navbar-brand {
- color: #777777;
+ color: #777;
}
-
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
color: #5e5e5e;
background-color: transparent;
}
-
.navbar-default .navbar-text {
- color: #777777;
+ color: #777;
}
-
.navbar-default .navbar-nav > li > a {
- color: #777777;
+ color: #777;
}
-
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
- color: #333333;
+ color: #333;
background-color: transparent;
}
-
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
- color: #555555;
+ color: #555;
background-color: #e7e7e7;
}
-
.navbar-default .navbar-nav > .disabled > a,
.navbar-default .navbar-nav > .disabled > a:hover,
.navbar-default .navbar-nav > .disabled > a:focus {
- color: #cccccc;
+ color: #ccc;
background-color: transparent;
}
-
.navbar-default .navbar-toggle {
- border-color: #dddddd;
+ border-color: #ddd;
}
-
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
- background-color: #dddddd;
+ background-color: #ddd;
}
-
.navbar-default .navbar-toggle .icon-bar {
- background-color: #cccccc;
+ background-color: #888;
}
-
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
border-color: #e7e7e7;
}
-
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
- color: #555555;
+ color: #555;
background-color: #e7e7e7;
}
-
@media (max-width: 767px) {
.navbar-default .navbar-nav .open .dropdown-menu > li > a {
- color: #777777;
+ color: #777;
}
.navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
.navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
- color: #333333;
+ color: #333;
background-color: transparent;
}
.navbar-default .navbar-nav .open .dropdown-menu > .active > a,
.navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
- color: #555555;
+ color: #555;
background-color: #e7e7e7;
}
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
- color: #cccccc;
+ color: #ccc;
background-color: transparent;
}
}
-
.navbar-default .navbar-link {
- color: #777777;
+ color: #777;
}
-
.navbar-default .navbar-link:hover {
- color: #333333;
+ color: #333;
}
-
.navbar-inverse {
- background-color: #222222;
+ background-color: #222;
border-color: #080808;
}
-
.navbar-inverse .navbar-brand {
- color: #999999;
+ color: #999;
}
-
.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
- color: #ffffff;
+ color: #fff;
background-color: transparent;
}
-
.navbar-inverse .navbar-text {
- color: #999999;
+ color: #999;
}
-
.navbar-inverse .navbar-nav > li > a {
- color: #999999;
+ color: #999;
}
-
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
- color: #ffffff;
+ color: #fff;
background-color: transparent;
}
-
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
- color: #ffffff;
+ color: #fff;
background-color: #080808;
}
-
.navbar-inverse .navbar-nav > .disabled > a,
.navbar-inverse .navbar-nav > .disabled > a:hover,
.navbar-inverse .navbar-nav > .disabled > a:focus {
- color: #444444;
+ color: #444;
background-color: transparent;
}
-
.navbar-inverse .navbar-toggle {
- border-color: #333333;
+ border-color: #333;
}
-
.navbar-inverse .navbar-toggle:hover,
.navbar-inverse .navbar-toggle:focus {
- background-color: #333333;
+ background-color: #333;
}
-
.navbar-inverse .navbar-toggle .icon-bar {
- background-color: #ffffff;
+ background-color: #fff;
}
-
.navbar-inverse .navbar-collapse,
.navbar-inverse .navbar-form {
border-color: #101010;
}
-
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .open > a:hover,
.navbar-inverse .navbar-nav > .open > a:focus {
- color: #ffffff;
+ color: #fff;
background-color: #080808;
}
-
@media (max-width: 767px) {
.navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
border-color: #080808;
@@ -4876,35 +4083,32 @@ textarea.input-group-sm > .input-group-btn > .btn {
background-color: #080808;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
- color: #999999;
+ color: #999;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
- color: #ffffff;
+ color: #fff;
background-color: transparent;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
- color: #ffffff;
+ color: #fff;
background-color: #080808;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
- color: #444444;
+ color: #444;
background-color: transparent;
}
}
-
.navbar-inverse .navbar-link {
- color: #999999;
+ color: #999;
}
-
.navbar-inverse .navbar-link:hover {
- color: #ffffff;
+ color: #fff;
}
-
.breadcrumb {
padding: 8px 15px;
margin-bottom: 20px;
@@ -4912,64 +4116,57 @@ textarea.input-group-sm > .input-group-btn > .btn {
background-color: #f5f5f5;
border-radius: 4px;
}
-
.breadcrumb > li {
display: inline-block;
}
-
.breadcrumb > li + li:before {
padding: 0 5px;
- color: #cccccc;
+ color: #ccc;
content: "/\00a0";
}
-
.breadcrumb > .active {
- color: #999999;
+ color: #999;
}
-
.pagination {
display: inline-block;
padding-left: 0;
margin: 20px 0;
border-radius: 4px;
}
-
.pagination > li {
display: inline;
}
-
.pagination > li > a,
.pagination > li > span {
position: relative;
float: left;
padding: 6px 12px;
margin-left: -1px;
- line-height: 1.428571429;
+ line-height: 1.42857143;
+ color: #428bca;
text-decoration: none;
- background-color: #ffffff;
- border: 1px solid #dddddd;
+ background-color: #fff;
+ border: 1px solid #ddd;
}
-
.pagination > li:first-child > a,
.pagination > li:first-child > span {
margin-left: 0;
- border-bottom-left-radius: 4px;
border-top-left-radius: 4px;
+ border-bottom-left-radius: 4px;
}
-
.pagination > li:last-child > a,
.pagination > li:last-child > span {
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}
-
.pagination > li > a:hover,
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
- background-color: #eeeeee;
+ color: #2a6496;
+ background-color: #eee;
+ border-color: #ddd;
}
-
.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
@@ -4977,208 +4174,157 @@ textarea.input-group-sm > .input-group-btn > .btn {
.pagination > .active > a:focus,
.pagination > .active > span:focus {
z-index: 2;
- color: #ffffff;
+ color: #fff;
cursor: default;
background-color: #428bca;
border-color: #428bca;
}
-
.pagination > .disabled > span,
.pagination > .disabled > span:hover,
.pagination > .disabled > span:focus,
.pagination > .disabled > a,
.pagination > .disabled > a:hover,
.pagination > .disabled > a:focus {
- color: #999999;
+ color: #999;
cursor: not-allowed;
- background-color: #ffffff;
- border-color: #dddddd;
+ background-color: #fff;
+ border-color: #ddd;
}
-
.pagination-lg > li > a,
.pagination-lg > li > span {
padding: 10px 16px;
font-size: 18px;
}
-
.pagination-lg > li:first-child > a,
.pagination-lg > li:first-child > span {
- border-bottom-left-radius: 6px;
border-top-left-radius: 6px;
+ border-bottom-left-radius: 6px;
}
-
.pagination-lg > li:last-child > a,
.pagination-lg > li:last-child > span {
border-top-right-radius: 6px;
border-bottom-right-radius: 6px;
}
-
.pagination-sm > li > a,
.pagination-sm > li > span {
padding: 5px 10px;
font-size: 12px;
}
-
.pagination-sm > li:first-child > a,
.pagination-sm > li:first-child > span {
- border-bottom-left-radius: 3px;
border-top-left-radius: 3px;
+ border-bottom-left-radius: 3px;
}
-
.pagination-sm > li:last-child > a,
.pagination-sm > li:last-child > span {
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
}
-
.pager {
padding-left: 0;
margin: 20px 0;
text-align: center;
list-style: none;
}
-
-.pager:before,
-.pager:after {
- display: table;
- content: " ";
-}
-
-.pager:after {
- clear: both;
-}
-
-.pager:before,
-.pager:after {
- display: table;
- content: " ";
-}
-
-.pager:after {
- clear: both;
-}
-
.pager li {
display: inline;
}
-
.pager li > a,
.pager li > span {
display: inline-block;
padding: 5px 14px;
- background-color: #ffffff;
- border: 1px solid #dddddd;
+ background-color: #fff;
+ border: 1px solid #ddd;
border-radius: 15px;
}
-
.pager li > a:hover,
.pager li > a:focus {
text-decoration: none;
- background-color: #eeeeee;
+ background-color: #eee;
}
-
.pager .next > a,
.pager .next > span {
float: right;
}
-
.pager .previous > a,
.pager .previous > span {
float: left;
}
-
.pager .disabled > a,
.pager .disabled > a:hover,
.pager .disabled > a:focus,
.pager .disabled > span {
- color: #999999;
+ color: #999;
cursor: not-allowed;
- background-color: #ffffff;
+ background-color: #fff;
}
-
.label {
display: inline;
padding: .2em .6em .3em;
font-size: 75%;
font-weight: bold;
line-height: 1;
- color: #ffffff;
+ color: #fff;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25em;
}
-
.label[href]:hover,
.label[href]:focus {
- color: #ffffff;
+ color: #fff;
text-decoration: none;
cursor: pointer;
}
-
.label:empty {
display: none;
}
-
.btn .label {
position: relative;
top: -1px;
}
-
.label-default {
- background-color: #999999;
+ background-color: #999;
}
-
.label-default[href]:hover,
.label-default[href]:focus {
background-color: #808080;
}
-
.label-primary {
background-color: #428bca;
}
-
.label-primary[href]:hover,
.label-primary[href]:focus {
background-color: #3071a9;
}
-
.label-success {
background-color: #5cb85c;
}
-
.label-success[href]:hover,
.label-success[href]:focus {
background-color: #449d44;
}
-
.label-info {
background-color: #5bc0de;
}
-
.label-info[href]:hover,
.label-info[href]:focus {
background-color: #31b0d5;
}
-
.label-warning {
background-color: #f0ad4e;
}
-
.label-warning[href]:hover,
.label-warning[href]:focus {
background-color: #ec971f;
}
-
.label-danger {
background-color: #d9534f;
}
-
.label-danger[href]:hover,
.label-danger[href]:focus {
background-color: #c9302c;
}
-
.badge {
display: inline-block;
min-width: 10px;
@@ -5186,68 +4332,59 @@ textarea.input-group-sm > .input-group-btn > .btn {
font-size: 12px;
font-weight: bold;
line-height: 1;
- color: #ffffff;
+ color: #fff;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
- background-color: #999999;
+ background-color: #999;
border-radius: 10px;
}
-
.badge:empty {
display: none;
}
-
.btn .badge {
position: relative;
top: -1px;
}
-
+.btn-xs .badge {
+ top: 0;
+ padding: 1px 5px;
+}
a.badge:hover,
a.badge:focus {
- color: #ffffff;
+ color: #fff;
text-decoration: none;
cursor: pointer;
}
-
a.list-group-item.active > .badge,
.nav-pills > .active > a > .badge {
color: #428bca;
- background-color: #ffffff;
+ background-color: #fff;
}
-
.nav-pills > li > a > .badge {
margin-left: 3px;
}
-
.jumbotron {
padding: 30px;
margin-bottom: 30px;
- font-size: 21px;
- font-weight: 200;
- line-height: 2.1428571435;
color: inherit;
- background-color: #eeeeee;
+ background-color: #eee;
}
-
.jumbotron h1,
.jumbotron .h1 {
- line-height: 1;
color: inherit;
}
-
.jumbotron p {
- line-height: 1.4;
+ margin-bottom: 15px;
+ font-size: 21px;
+ font-weight: 200;
}
-
.container .jumbotron {
border-radius: 6px;
}
-
.jumbotron .container {
max-width: 100%;
}
-
@media screen and (min-width: 768px) {
.jumbotron {
padding-top: 48px;
@@ -5262,131 +4399,104 @@ a.list-group-item.active > .badge,
font-size: 63px;
}
}
-
.thumbnail {
display: block;
padding: 4px;
margin-bottom: 20px;
- line-height: 1.428571429;
- background-color: #ffffff;
- border: 1px solid #dddddd;
+ line-height: 1.42857143;
+ background-color: #fff;
+ border: 1px solid #ddd;
border-radius: 4px;
- -webkit-transition: all 0.2s ease-in-out;
- transition: all 0.2s ease-in-out;
+ -webkit-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
}
-
.thumbnail > img,
.thumbnail a > img {
- display: block;
- height: auto;
- max-width: 100%;
margin-right: auto;
margin-left: auto;
}
-
a.thumbnail:hover,
a.thumbnail:focus,
a.thumbnail.active {
border-color: #428bca;
}
-
.thumbnail .caption {
padding: 9px;
- color: #333333;
+ color: #333;
}
-
.alert {
padding: 15px;
margin-bottom: 20px;
border: 1px solid transparent;
border-radius: 4px;
}
-
.alert h4 {
margin-top: 0;
color: inherit;
}
-
.alert .alert-link {
font-weight: bold;
}
-
.alert > p,
.alert > ul {
margin-bottom: 0;
}
-
.alert > p + p {
margin-top: 5px;
}
-
.alert-dismissable {
padding-right: 35px;
}
-
.alert-dismissable .close {
position: relative;
top: -2px;
right: -21px;
color: inherit;
}
-
.alert-success {
color: #3c763d;
background-color: #dff0d8;
border-color: #d6e9c6;
}
-
.alert-success hr {
border-top-color: #c9e2b3;
}
-
.alert-success .alert-link {
color: #2b542c;
}
-
.alert-info {
color: #31708f;
background-color: #d9edf7;
border-color: #bce8f1;
}
-
.alert-info hr {
border-top-color: #a6e1ec;
}
-
.alert-info .alert-link {
color: #245269;
}
-
.alert-warning {
color: #8a6d3b;
background-color: #fcf8e3;
border-color: #faebcc;
}
-
.alert-warning hr {
border-top-color: #f7e1b5;
}
-
.alert-warning .alert-link {
color: #66512c;
}
-
.alert-danger {
color: #a94442;
background-color: #f2dede;
border-color: #ebccd1;
}
-
.alert-danger hr {
border-top-color: #e4b9c0;
}
-
.alert-danger .alert-link {
color: #843534;
}
-
@-webkit-keyframes progress-bar-stripes {
from {
background-position: 40px 0;
@@ -5395,7 +4505,6 @@ a.thumbnail.active {
background-position: 0 0;
}
}
-
@keyframes progress-bar-stripes {
from {
background-position: 40px 0;
@@ -5404,267 +4513,368 @@ a.thumbnail.active {
background-position: 0 0;
}
}
-
.progress {
height: 20px;
margin-bottom: 20px;
overflow: hidden;
background-color: #f5f5f5;
border-radius: 4px;
- -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
}
-
.progress-bar {
float: left;
width: 0;
height: 100%;
font-size: 12px;
line-height: 20px;
- color: #ffffff;
+ color: #fff;
text-align: center;
background-color: #428bca;
- -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
- box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
- -webkit-transition: width 0.6s ease;
- transition: width 0.6s ease;
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
+ -webkit-transition: width .6s ease;
+ transition: width .6s ease;
}
-
.progress-striped .progress-bar {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-size: 40px 40px;
}
-
.progress.active .progress-bar {
-webkit-animation: progress-bar-stripes 2s linear infinite;
animation: progress-bar-stripes 2s linear infinite;
}
-
.progress-bar-success {
background-color: #5cb85c;
}
-
.progress-striped .progress-bar-success {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
}
-
.progress-bar-info {
background-color: #5bc0de;
}
-
.progress-striped .progress-bar-info {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
}
-
.progress-bar-warning {
background-color: #f0ad4e;
}
-
.progress-striped .progress-bar-warning {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
}
-
.progress-bar-danger {
background-color: #d9534f;
}
-
.progress-striped .progress-bar-danger {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
}
-
.media,
.media-body {
overflow: hidden;
zoom: 1;
}
-
.media,
.media .media {
margin-top: 15px;
}
-
.media:first-child {
margin-top: 0;
}
-
.media-object {
display: block;
}
-
.media-heading {
margin: 0 0 5px;
}
-
.media > .pull-left {
margin-right: 10px;
}
-
.media > .pull-right {
margin-left: 10px;
}
-
.media-list {
padding-left: 0;
list-style: none;
}
-
.list-group {
padding-left: 0;
margin-bottom: 20px;
}
-
.list-group-item {
position: relative;
display: block;
padding: 10px 15px;
margin-bottom: -1px;
- background-color: #ffffff;
- border: 1px solid #dddddd;
+ background-color: #fff;
+ border: 1px solid #ddd;
}
-
.list-group-item:first-child {
- border-top-right-radius: 4px;
border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
}
-
.list-group-item:last-child {
margin-bottom: 0;
border-bottom-right-radius: 4px;
border-bottom-left-radius: 4px;
}
-
.list-group-item > .badge {
float: right;
}
-
.list-group-item > .badge + .badge {
margin-right: 5px;
}
-
a.list-group-item {
- color: #555555;
+ color: #555;
}
-
a.list-group-item .list-group-item-heading {
- color: #333333;
+ color: #333;
}
-
a.list-group-item:hover,
a.list-group-item:focus {
text-decoration: none;
background-color: #f5f5f5;
}
-
a.list-group-item.active,
a.list-group-item.active:hover,
a.list-group-item.active:focus {
z-index: 2;
- color: #ffffff;
+ color: #fff;
background-color: #428bca;
border-color: #428bca;
}
-
a.list-group-item.active .list-group-item-heading,
a.list-group-item.active:hover .list-group-item-heading,
a.list-group-item.active:focus .list-group-item-heading {
color: inherit;
}
-
a.list-group-item.active .list-group-item-text,
a.list-group-item.active:hover .list-group-item-text,
a.list-group-item.active:focus .list-group-item-text {
color: #e1edf7;
}
-
+.list-group-item-success {
+ color: #3c763d;
+ background-color: #dff0d8;
+}
+a.list-group-item-success {
+ color: #3c763d;
+}
+a.list-group-item-success .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item-success:hover,
+a.list-group-item-success:focus {
+ color: #3c763d;
+ background-color: #d0e9c6;
+}
+a.list-group-item-success.active,
+a.list-group-item-success.active:hover,
+a.list-group-item-success.active:focus {
+ color: #fff;
+ background-color: #3c763d;
+ border-color: #3c763d;
+}
+.list-group-item-info {
+ color: #31708f;
+ background-color: #d9edf7;
+}
+a.list-group-item-info {
+ color: #31708f;
+}
+a.list-group-item-info .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item-info:hover,
+a.list-group-item-info:focus {
+ color: #31708f;
+ background-color: #c4e3f3;
+}
+a.list-group-item-info.active,
+a.list-group-item-info.active:hover,
+a.list-group-item-info.active:focus {
+ color: #fff;
+ background-color: #31708f;
+ border-color: #31708f;
+}
+.list-group-item-warning {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+}
+a.list-group-item-warning {
+ color: #8a6d3b;
+}
+a.list-group-item-warning .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item-warning:hover,
+a.list-group-item-warning:focus {
+ color: #8a6d3b;
+ background-color: #faf2cc;
+}
+a.list-group-item-warning.active,
+a.list-group-item-warning.active:hover,
+a.list-group-item-warning.active:focus {
+ color: #fff;
+ background-color: #8a6d3b;
+ border-color: #8a6d3b;
+}
+.list-group-item-danger {
+ color: #a94442;
+ background-color: #f2dede;
+}
+a.list-group-item-danger {
+ color: #a94442;
+}
+a.list-group-item-danger .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item-danger:hover,
+a.list-group-item-danger:focus {
+ color: #a94442;
+ background-color: #ebcccc;
+}
+a.list-group-item-danger.active,
+a.list-group-item-danger.active:hover,
+a.list-group-item-danger.active:focus {
+ color: #fff;
+ background-color: #a94442;
+ border-color: #a94442;
+}
.list-group-item-heading {
margin-top: 0;
margin-bottom: 5px;
}
-
.list-group-item-text {
margin-bottom: 0;
line-height: 1.3;
}
-
.panel {
margin-bottom: 20px;
- background-color: #ffffff;
+ background-color: #fff;
border: 1px solid transparent;
border-radius: 4px;
- -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
}
-
.panel-body {
padding: 15px;
}
-
-.panel-body:before,
-.panel-body:after {
- display: table;
- content: " ";
+.panel-heading {
+ padding: 10px 15px;
+ border-bottom: 1px solid transparent;
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
}
-
-.panel-body:after {
- clear: both;
+.panel-heading > .dropdown .dropdown-toggle {
+ color: inherit;
}
-
-.panel-body:before,
-.panel-body:after {
- display: table;
- content: " ";
+.panel-title {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-size: 16px;
+ color: inherit;
}
-
-.panel-body:after {
- clear: both;
+.panel-title > a {
+ color: inherit;
+}
+.panel-footer {
+ padding: 10px 15px;
+ background-color: #f5f5f5;
+ border-top: 1px solid #ddd;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
}
-
.panel > .list-group {
margin-bottom: 0;
}
-
.panel > .list-group .list-group-item {
border-width: 1px 0;
+ border-radius: 0;
}
-
-.panel > .list-group .list-group-item:first-child {
- border-top-right-radius: 0;
- border-top-left-radius: 0;
+.panel > .list-group:first-child .list-group-item:first-child {
+ border-top: 0;
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
}
-
-.panel > .list-group .list-group-item:last-child {
+.panel > .list-group:last-child .list-group-item:last-child {
border-bottom: 0;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
}
-
.panel-heading + .list-group .list-group-item:first-child {
border-top-width: 0;
}
-
.panel > .table,
.panel > .table-responsive > .table {
margin-bottom: 0;
}
-
+.panel > .table:first-child,
+.panel > .table-responsive:first-child > .table:first-child {
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
+}
+.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
+ border-top-left-radius: 3px;
+}
+.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
+ border-top-right-radius: 3px;
+}
+.panel > .table:last-child,
+.panel > .table-responsive:last-child > .table:last-child {
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
+ border-bottom-left-radius: 3px;
+}
+.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
+ border-bottom-right-radius: 3px;
+}
.panel > .panel-body + .table,
.panel > .panel-body + .table-responsive {
- border-top: 1px solid #dddddd;
+ border-top: 1px solid #ddd;
}
-
-.panel > .table > tbody:first-child th,
-.panel > .table > tbody:first-child td {
+.panel > .table > tbody:first-child > tr:first-child th,
+.panel > .table > tbody:first-child > tr:first-child td {
border-top: 0;
}
-
.panel > .table-bordered,
.panel > .table-responsive > .table-bordered {
border: 0;
}
-
.panel > .table-bordered > thead > tr > th:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
.panel > .table-bordered > tbody > tr > th:first-child,
@@ -5679,7 +4889,6 @@ a.list-group-item.active:focus .list-group-item-text {
.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
border-left: 0;
}
-
.panel > .table-bordered > thead > tr > th:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
.panel > .table-bordered > tbody > tr > th:last-child,
@@ -5694,191 +4903,137 @@ a.list-group-item.active:focus .list-group-item-text {
.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
border-right: 0;
}
-
-.panel > .table-bordered > thead > tr:last-child > th,
-.panel > .table-responsive > .table-bordered > thead > tr:last-child > th,
-.panel > .table-bordered > tbody > tr:last-child > th,
-.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
-.panel > .table-bordered > tfoot > tr:last-child > th,
-.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th,
-.panel > .table-bordered > thead > tr:last-child > td,
-.panel > .table-responsive > .table-bordered > thead > tr:last-child > td,
+.panel > .table-bordered > thead > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
+.panel > .table-bordered > tbody > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
+.panel > .table-bordered > thead > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
+.panel > .table-bordered > tbody > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
+ border-bottom: 0;
+}
.panel > .table-bordered > tbody > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
.panel > .table-bordered > tfoot > tr:last-child > td,
-.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td {
+.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
+.panel > .table-bordered > tbody > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
+.panel > .table-bordered > tfoot > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
border-bottom: 0;
}
-
.panel > .table-responsive {
margin-bottom: 0;
border: 0;
}
-
-.panel-heading {
- padding: 10px 15px;
- border-bottom: 1px solid transparent;
- border-top-right-radius: 3px;
- border-top-left-radius: 3px;
-}
-
-.panel-heading > .dropdown .dropdown-toggle {
- color: inherit;
-}
-
-.panel-title {
- margin-top: 0;
- margin-bottom: 0;
- font-size: 16px;
- color: inherit;
-}
-
-.panel-title > a {
- color: inherit;
-}
-
-.panel-footer {
- padding: 10px 15px;
- background-color: #f5f5f5;
- border-top: 1px solid #dddddd;
- border-bottom-right-radius: 3px;
- border-bottom-left-radius: 3px;
+.panel-group {
+ margin-bottom: 20px;
}
-
.panel-group .panel {
margin-bottom: 0;
overflow: hidden;
border-radius: 4px;
}
-
.panel-group .panel + .panel {
margin-top: 5px;
}
-
.panel-group .panel-heading {
border-bottom: 0;
}
-
.panel-group .panel-heading + .panel-collapse .panel-body {
- border-top: 1px solid #dddddd;
+ border-top: 1px solid #ddd;
}
-
.panel-group .panel-footer {
border-top: 0;
}
-
.panel-group .panel-footer + .panel-collapse .panel-body {
- border-bottom: 1px solid #dddddd;
+ border-bottom: 1px solid #ddd;
}
-
.panel-default {
- border-color: #dddddd;
+ border-color: #ddd;
}
-
.panel-default > .panel-heading {
- color: #333333;
+ color: #333;
background-color: #f5f5f5;
- border-color: #dddddd;
+ border-color: #ddd;
}
-
.panel-default > .panel-heading + .panel-collapse .panel-body {
- border-top-color: #dddddd;
+ border-top-color: #ddd;
}
-
.panel-default > .panel-footer + .panel-collapse .panel-body {
- border-bottom-color: #dddddd;
+ border-bottom-color: #ddd;
}
-
.panel-primary {
border-color: #428bca;
}
-
.panel-primary > .panel-heading {
- color: #ffffff;
+ color: #fff;
background-color: #428bca;
border-color: #428bca;
}
-
.panel-primary > .panel-heading + .panel-collapse .panel-body {
border-top-color: #428bca;
}
-
.panel-primary > .panel-footer + .panel-collapse .panel-body {
border-bottom-color: #428bca;
}
-
.panel-success {
border-color: #d6e9c6;
}
-
.panel-success > .panel-heading {
color: #3c763d;
background-color: #dff0d8;
border-color: #d6e9c6;
}
-
.panel-success > .panel-heading + .panel-collapse .panel-body {
border-top-color: #d6e9c6;
}
-
.panel-success > .panel-footer + .panel-collapse .panel-body {
border-bottom-color: #d6e9c6;
}
-
+.panel-info {
+ border-color: #bce8f1;
+}
+.panel-info > .panel-heading {
+ color: #31708f;
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+}
+.panel-info > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #bce8f1;
+}
+.panel-info > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #bce8f1;
+}
.panel-warning {
border-color: #faebcc;
}
-
.panel-warning > .panel-heading {
color: #8a6d3b;
background-color: #fcf8e3;
border-color: #faebcc;
}
-
.panel-warning > .panel-heading + .panel-collapse .panel-body {
border-top-color: #faebcc;
}
-
.panel-warning > .panel-footer + .panel-collapse .panel-body {
border-bottom-color: #faebcc;
}
-
.panel-danger {
border-color: #ebccd1;
}
-
.panel-danger > .panel-heading {
color: #a94442;
background-color: #f2dede;
border-color: #ebccd1;
}
-
.panel-danger > .panel-heading + .panel-collapse .panel-body {
border-top-color: #ebccd1;
}
-
.panel-danger > .panel-footer + .panel-collapse .panel-body {
border-bottom-color: #ebccd1;
}
-
-.panel-info {
- border-color: #bce8f1;
-}
-
-.panel-info > .panel-heading {
- color: #31708f;
- background-color: #d9edf7;
- border-color: #bce8f1;
-}
-
-.panel-info > .panel-heading + .panel-collapse .panel-body {
- border-top-color: #bce8f1;
-}
-
-.panel-info > .panel-footer + .panel-collapse .panel-body {
- border-bottom-color: #bce8f1;
-}
-
.well {
min-height: 20px;
padding: 19px;
@@ -5886,241 +5041,198 @@ a.list-group-item.active:focus .list-group-item-text {
background-color: #f5f5f5;
border: 1px solid #e3e3e3;
border-radius: 4px;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
}
-
.well blockquote {
border-color: #ddd;
- border-color: rgba(0, 0, 0, 0.15);
+ border-color: rgba(0, 0, 0, .15);
}
-
.well-lg {
padding: 24px;
border-radius: 6px;
}
-
.well-sm {
padding: 9px;
border-radius: 3px;
}
-
.close {
float: right;
font-size: 21px;
font-weight: bold;
line-height: 1;
- color: #000000;
- text-shadow: 0 1px 0 #ffffff;
- opacity: 0.2;
+ color: #000;
+ text-shadow: 0 1px 0 #fff;
filter: alpha(opacity=20);
+ opacity: .2;
}
-
.close:hover,
.close:focus {
- color: #000000;
+ color: #000;
text-decoration: none;
cursor: pointer;
- opacity: 0.5;
filter: alpha(opacity=50);
+ opacity: .5;
}
-
button.close {
+ -webkit-appearance: none;
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
- -webkit-appearance: none;
}
-
.modal-open {
overflow: hidden;
}
-
.modal {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
- z-index: 1040;
+ z-index: 1050;
display: none;
overflow: auto;
overflow-y: scroll;
+ -webkit-overflow-scrolling: touch;
+ outline: 0;
}
-
.modal.fade .modal-dialog {
+ -webkit-transition: -webkit-transform .3s ease-out;
+ -moz-transition: -moz-transform .3s ease-out;
+ -o-transition: -o-transform .3s ease-out;
+ transition: transform .3s ease-out;
-webkit-transform: translate(0, -25%);
-ms-transform: translate(0, -25%);
transform: translate(0, -25%);
- -webkit-transition: -webkit-transform 0.3s ease-out;
- -moz-transition: -moz-transform 0.3s ease-out;
- -o-transition: -o-transform 0.3s ease-out;
- transition: transform 0.3s ease-out;
}
-
.modal.in .modal-dialog {
-webkit-transform: translate(0, 0);
-ms-transform: translate(0, 0);
transform: translate(0, 0);
}
-
.modal-dialog {
position: relative;
- z-index: 1050;
width: auto;
margin: 10px;
}
-
.modal-content {
position: relative;
- background-color: #ffffff;
- border: 1px solid #999999;
- border: 1px solid rgba(0, 0, 0, 0.2);
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid #999;
+ border: 1px solid rgba(0, 0, 0, .2);
border-radius: 6px;
outline: none;
- -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
- box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
- background-clip: padding-box;
+ -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
+ box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
}
-
.modal-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
- z-index: 1030;
- background-color: #000000;
+ z-index: 1040;
+ background-color: #000;
}
-
.modal-backdrop.fade {
- opacity: 0;
filter: alpha(opacity=0);
+ opacity: 0;
}
-
.modal-backdrop.in {
- opacity: 0.5;
filter: alpha(opacity=50);
+ opacity: .5;
}
-
.modal-header {
- min-height: 16.428571429px;
+ min-height: 16.42857143px;
padding: 15px;
border-bottom: 1px solid #e5e5e5;
}
-
.modal-header .close {
margin-top: -2px;
}
-
.modal-title {
margin: 0;
- line-height: 1.428571429;
+ line-height: 1.42857143;
}
-
.modal-body {
position: relative;
padding: 20px;
}
-
.modal-footer {
padding: 19px 20px 20px;
margin-top: 15px;
text-align: right;
border-top: 1px solid #e5e5e5;
}
-
-.modal-footer:before,
-.modal-footer:after {
- display: table;
- content: " ";
-}
-
-.modal-footer:after {
- clear: both;
-}
-
-.modal-footer:before,
-.modal-footer:after {
- display: table;
- content: " ";
-}
-
-.modal-footer:after {
- clear: both;
-}
-
.modal-footer .btn + .btn {
margin-bottom: 0;
margin-left: 5px;
}
-
.modal-footer .btn-group .btn + .btn {
margin-left: -1px;
}
-
.modal-footer .btn-block + .btn-block {
margin-left: 0;
}
-
-@media screen and (min-width: 768px) {
+@media (min-width: 768px) {
.modal-dialog {
width: 600px;
margin: 30px auto;
}
.modal-content {
- -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
- box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+ -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
+ box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
+ }
+ .modal-sm {
+ width: 300px;
+ }
+}
+@media (min-width: 992px) {
+ .modal-lg {
+ width: 900px;
}
}
-
.tooltip {
position: absolute;
z-index: 1030;
display: block;
font-size: 12px;
line-height: 1.4;
- opacity: 0;
- filter: alpha(opacity=0);
visibility: visible;
+ filter: alpha(opacity=0);
+ opacity: 0;
}
-
.tooltip.in {
- opacity: 0.9;
filter: alpha(opacity=90);
+ opacity: .9;
}
-
.tooltip.top {
padding: 5px 0;
margin-top: -3px;
}
-
.tooltip.right {
padding: 0 5px;
margin-left: 3px;
}
-
.tooltip.bottom {
padding: 5px 0;
margin-top: 3px;
}
-
.tooltip.left {
padding: 0 5px;
margin-left: -3px;
}
-
.tooltip-inner {
max-width: 200px;
padding: 3px 8px;
- color: #ffffff;
+ color: #fff;
text-align: center;
text-decoration: none;
- background-color: #000000;
+ background-color: #000;
border-radius: 4px;
}
-
.tooltip-arrow {
position: absolute;
width: 0;
@@ -6128,67 +5240,58 @@ button.close {
border-color: transparent;
border-style: solid;
}
-
.tooltip.top .tooltip-arrow {
bottom: 0;
left: 50%;
margin-left: -5px;
- border-top-color: #000000;
border-width: 5px 5px 0;
+ border-top-color: #000;
}
-
.tooltip.top-left .tooltip-arrow {
bottom: 0;
left: 5px;
- border-top-color: #000000;
border-width: 5px 5px 0;
+ border-top-color: #000;
}
-
.tooltip.top-right .tooltip-arrow {
right: 5px;
bottom: 0;
- border-top-color: #000000;
border-width: 5px 5px 0;
+ border-top-color: #000;
}
-
.tooltip.right .tooltip-arrow {
top: 50%;
left: 0;
margin-top: -5px;
- border-right-color: #000000;
border-width: 5px 5px 5px 0;
+ border-right-color: #000;
}
-
.tooltip.left .tooltip-arrow {
top: 50%;
right: 0;
margin-top: -5px;
- border-left-color: #000000;
border-width: 5px 0 5px 5px;
+ border-left-color: #000;
}
-
.tooltip.bottom .tooltip-arrow {
top: 0;
left: 50%;
margin-left: -5px;
- border-bottom-color: #000000;
border-width: 0 5px 5px;
+ border-bottom-color: #000;
}
-
.tooltip.bottom-left .tooltip-arrow {
top: 0;
left: 5px;
- border-bottom-color: #000000;
border-width: 0 5px 5px;
+ border-bottom-color: #000;
}
-
.tooltip.bottom-right .tooltip-arrow {
top: 0;
right: 5px;
- border-bottom-color: #000000;
border-width: 0 5px 5px;
+ border-bottom-color: #000;
}
-
.popover {
position: absolute;
top: 0;
@@ -6199,31 +5302,26 @@ button.close {
padding: 1px;
text-align: left;
white-space: normal;
- background-color: #ffffff;
- border: 1px solid #cccccc;
- border: 1px solid rgba(0, 0, 0, 0.2);
- border-radius: 6px;
- -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
- box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ background-color: #fff;
background-clip: padding-box;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, .2);
+ border-radius: 6px;
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
+ box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
}
-
.popover.top {
margin-top: -10px;
}
-
.popover.right {
margin-left: 10px;
}
-
.popover.bottom {
margin-top: 10px;
}
-
.popover.left {
margin-left: -10px;
}
-
.popover-title {
padding: 8px 14px;
margin: 0;
@@ -6234,13 +5332,11 @@ button.close {
border-bottom: 1px solid #ebebeb;
border-radius: 5px 5px 0 0;
}
-
.popover-content {
padding: 9px 14px;
}
-
-.popover .arrow,
-.popover .arrow:after {
+.popover > .arrow,
+.popover > .arrow:after {
position: absolute;
display: block;
width: 0;
@@ -6248,147 +5344,121 @@ button.close {
border-color: transparent;
border-style: solid;
}
-
-.popover .arrow {
+.popover > .arrow {
border-width: 11px;
}
-
-.popover .arrow:after {
- border-width: 10px;
+.popover > .arrow:after {
content: "";
+ border-width: 10px;
}
-
-.popover.top .arrow {
+.popover.top > .arrow {
bottom: -11px;
left: 50%;
margin-left: -11px;
- border-top-color: #999999;
- border-top-color: rgba(0, 0, 0, 0.25);
+ border-top-color: #999;
+ border-top-color: rgba(0, 0, 0, .25);
border-bottom-width: 0;
}
-
-.popover.top .arrow:after {
+.popover.top > .arrow:after {
bottom: 1px;
margin-left: -10px;
- border-top-color: #ffffff;
- border-bottom-width: 0;
content: " ";
+ border-top-color: #fff;
+ border-bottom-width: 0;
}
-
-.popover.right .arrow {
+.popover.right > .arrow {
top: 50%;
left: -11px;
margin-top: -11px;
- border-right-color: #999999;
- border-right-color: rgba(0, 0, 0, 0.25);
+ border-right-color: #999;
+ border-right-color: rgba(0, 0, 0, .25);
border-left-width: 0;
}
-
-.popover.right .arrow:after {
+.popover.right > .arrow:after {
bottom: -10px;
left: 1px;
- border-right-color: #ffffff;
- border-left-width: 0;
content: " ";
+ border-right-color: #fff;
+ border-left-width: 0;
}
-
-.popover.bottom .arrow {
+.popover.bottom > .arrow {
top: -11px;
left: 50%;
margin-left: -11px;
- border-bottom-color: #999999;
- border-bottom-color: rgba(0, 0, 0, 0.25);
border-top-width: 0;
+ border-bottom-color: #999;
+ border-bottom-color: rgba(0, 0, 0, .25);
}
-
-.popover.bottom .arrow:after {
+.popover.bottom > .arrow:after {
top: 1px;
margin-left: -10px;
- border-bottom-color: #ffffff;
- border-top-width: 0;
content: " ";
+ border-top-width: 0;
+ border-bottom-color: #fff;
}
-
-.popover.left .arrow {
+.popover.left > .arrow {
top: 50%;
right: -11px;
margin-top: -11px;
- border-left-color: #999999;
- border-left-color: rgba(0, 0, 0, 0.25);
border-right-width: 0;
+ border-left-color: #999;
+ border-left-color: rgba(0, 0, 0, .25);
}
-
-.popover.left .arrow:after {
+.popover.left > .arrow:after {
right: 1px;
bottom: -10px;
- border-left-color: #ffffff;
- border-right-width: 0;
content: " ";
+ border-right-width: 0;
+ border-left-color: #fff;
}
-
.carousel {
position: relative;
}
-
.carousel-inner {
position: relative;
width: 100%;
overflow: hidden;
}
-
.carousel-inner > .item {
position: relative;
display: none;
- -webkit-transition: 0.6s ease-in-out left;
- transition: 0.6s ease-in-out left;
+ -webkit-transition: .6s ease-in-out left;
+ transition: .6s ease-in-out left;
}
-
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
- display: block;
- height: auto;
- max-width: 100%;
line-height: 1;
}
-
.carousel-inner > .active,
.carousel-inner > .next,
.carousel-inner > .prev {
display: block;
}
-
.carousel-inner > .active {
left: 0;
}
-
.carousel-inner > .next,
.carousel-inner > .prev {
position: absolute;
top: 0;
width: 100%;
}
-
.carousel-inner > .next {
left: 100%;
}
-
.carousel-inner > .prev {
left: -100%;
}
-
.carousel-inner > .next.left,
.carousel-inner > .prev.right {
left: 0;
}
-
.carousel-inner > .active.left {
left: -100%;
}
-
.carousel-inner > .active.right {
left: 100%;
}
-
.carousel-control {
position: absolute;
top: 0;
@@ -6396,38 +5466,34 @@ button.close {
left: 0;
width: 15%;
font-size: 20px;
- color: #ffffff;
+ color: #fff;
text-align: center;
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
- opacity: 0.5;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
filter: alpha(opacity=50);
+ opacity: .5;
}
-
.carousel-control.left {
- background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0), color-stop(rgba(0, 0, 0, 0.0001) 100%));
- background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%);
- background-repeat: repeat-x;
+ background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, .5) 0%), color-stop(rgba(0, 0, 0, .0001) 100%));
+ background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
+ background-repeat: repeat-x;
}
-
.carousel-control.right {
right: 0;
left: auto;
- background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0), color-stop(rgba(0, 0, 0, 0.5) 100%));
- background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%);
- background-repeat: repeat-x;
+ background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, .0001) 0%), color-stop(rgba(0, 0, 0, .5) 100%));
+ background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
+ background-repeat: repeat-x;
}
-
.carousel-control:hover,
.carousel-control:focus {
- color: #ffffff;
+ color: #fff;
text-decoration: none;
- outline: none;
- opacity: 0.9;
filter: alpha(opacity=90);
+ outline: none;
+ opacity: .9;
}
-
.carousel-control .icon-prev,
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-left,
@@ -6437,17 +5503,14 @@ button.close {
z-index: 5;
display: inline-block;
}
-
.carousel-control .icon-prev,
.carousel-control .glyphicon-chevron-left {
left: 50%;
}
-
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-right {
right: 50%;
}
-
.carousel-control .icon-prev,
.carousel-control .icon-next {
width: 20px;
@@ -6456,15 +5519,12 @@ button.close {
margin-left: -10px;
font-family: serif;
}
-
.carousel-control .icon-prev:before {
content: '\2039';
}
-
.carousel-control .icon-next:before {
content: '\203a';
}
-
.carousel-indicators {
position: absolute;
bottom: 10px;
@@ -6476,7 +5536,6 @@ button.close {
text-align: center;
list-style: none;
}
-
.carousel-indicators li {
display: inline-block;
width: 10px;
@@ -6486,17 +5545,15 @@ button.close {
cursor: pointer;
background-color: #000 \9;
background-color: rgba(0, 0, 0, 0);
- border: 1px solid #ffffff;
+ border: 1px solid #fff;
border-radius: 10px;
}
-
.carousel-indicators .active {
width: 12px;
height: 12px;
margin: 0;
- background-color: #ffffff;
+ background-color: #fff;
}
-
.carousel-caption {
position: absolute;
right: 15%;
@@ -6505,18 +5562,16 @@ button.close {
z-index: 10;
padding-top: 20px;
padding-bottom: 20px;
- color: #ffffff;
+ color: #fff;
text-align: center;
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+ text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
}
-
.carousel-caption .btn {
text-shadow: none;
}
-
@media screen and (min-width: 768px) {
- .carousel-control .glyphicons-chevron-left,
- .carousel-control .glyphicons-chevron-right,
+ .carousel-control .glyphicon-chevron-left,
+ .carousel-control .glyphicon-chevron-right,
.carousel-control .icon-prev,
.carousel-control .icon-next {
width: 30px;
@@ -6534,43 +5589,73 @@ button.close {
bottom: 20px;
}
}
-
.clearfix:before,
-.clearfix:after {
+.clearfix:after,
+.container:before,
+.container:after,
+.container-fluid:before,
+.container-fluid:after,
+.row:before,
+.row:after,
+.form-horizontal .form-group:before,
+.form-horizontal .form-group:after,
+.btn-toolbar:before,
+.btn-toolbar:after,
+.btn-group-vertical > .btn-group:before,
+.btn-group-vertical > .btn-group:after,
+.nav:before,
+.nav:after,
+.navbar:before,
+.navbar:after,
+.navbar-header:before,
+.navbar-header:after,
+.navbar-collapse:before,
+.navbar-collapse:after,
+.pager:before,
+.pager:after,
+.panel-body:before,
+.panel-body:after,
+.modal-footer:before,
+.modal-footer:after {
display: table;
content: " ";
}
-
-.clearfix:after {
+.clearfix:after,
+.container:after,
+.container-fluid:after,
+.row:after,
+.form-horizontal .form-group:after,
+.btn-toolbar:after,
+.btn-group-vertical > .btn-group:after,
+.nav:after,
+.navbar:after,
+.navbar-header:after,
+.navbar-collapse:after,
+.pager:after,
+.panel-body:after,
+.modal-footer:after {
clear: both;
}
-
.center-block {
display: block;
margin-right: auto;
margin-left: auto;
}
-
.pull-right {
float: right !important;
}
-
.pull-left {
float: left !important;
}
-
.hide {
display: none !important;
}
-
.show {
display: block !important;
}
-
.invisible {
visibility: hidden;
}
-
.text-hide {
font: 0/0 a;
color: transparent;
@@ -6578,27 +5663,22 @@ button.close {
background-color: transparent;
border: 0;
}
-
.hidden {
display: none !important;
visibility: hidden !important;
}
-
.affix {
position: fixed;
}
-
@-ms-viewport {
width: device-width;
}
-
.visible-xs,
-tr.visible-xs,
-th.visible-xs,
-td.visible-xs {
+.visible-sm,
+.visible-md,
+.visible-lg {
display: none !important;
}
-
@media (max-width: 767px) {
.visible-xs {
display: block !important;
@@ -6614,78 +5694,6 @@ td.visible-xs {
display: table-cell !important;
}
}
-
-@media (min-width: 768px) and (max-width: 991px) {
- .visible-xs.visible-sm {
- display: block !important;
- }
- table.visible-xs.visible-sm {
- display: table;
- }
- tr.visible-xs.visible-sm {
- display: table-row !important;
- }
- th.visible-xs.visible-sm,
- td.visible-xs.visible-sm {
- display: table-cell !important;
- }
-}
-
-@media (min-width: 992px) and (max-width: 1199px) {
- .visible-xs.visible-md {
- display: block !important;
- }
- table.visible-xs.visible-md {
- display: table;
- }
- tr.visible-xs.visible-md {
- display: table-row !important;
- }
- th.visible-xs.visible-md,
- td.visible-xs.visible-md {
- display: table-cell !important;
- }
-}
-
-@media (min-width: 1200px) {
- .visible-xs.visible-lg {
- display: block !important;
- }
- table.visible-xs.visible-lg {
- display: table;
- }
- tr.visible-xs.visible-lg {
- display: table-row !important;
- }
- th.visible-xs.visible-lg,
- td.visible-xs.visible-lg {
- display: table-cell !important;
- }
-}
-
-.visible-sm,
-tr.visible-sm,
-th.visible-sm,
-td.visible-sm {
- display: none !important;
-}
-
-@media (max-width: 767px) {
- .visible-sm.visible-xs {
- display: block !important;
- }
- table.visible-sm.visible-xs {
- display: table;
- }
- tr.visible-sm.visible-xs {
- display: table-row !important;
- }
- th.visible-sm.visible-xs,
- td.visible-sm.visible-xs {
- display: table-cell !important;
- }
-}
-
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm {
display: block !important;
@@ -6701,78 +5709,6 @@ td.visible-sm {
display: table-cell !important;
}
}
-
-@media (min-width: 992px) and (max-width: 1199px) {
- .visible-sm.visible-md {
- display: block !important;
- }
- table.visible-sm.visible-md {
- display: table;
- }
- tr.visible-sm.visible-md {
- display: table-row !important;
- }
- th.visible-sm.visible-md,
- td.visible-sm.visible-md {
- display: table-cell !important;
- }
-}
-
-@media (min-width: 1200px) {
- .visible-sm.visible-lg {
- display: block !important;
- }
- table.visible-sm.visible-lg {
- display: table;
- }
- tr.visible-sm.visible-lg {
- display: table-row !important;
- }
- th.visible-sm.visible-lg,
- td.visible-sm.visible-lg {
- display: table-cell !important;
- }
-}
-
-.visible-md,
-tr.visible-md,
-th.visible-md,
-td.visible-md {
- display: none !important;
-}
-
-@media (max-width: 767px) {
- .visible-md.visible-xs {
- display: block !important;
- }
- table.visible-md.visible-xs {
- display: table;
- }
- tr.visible-md.visible-xs {
- display: table-row !important;
- }
- th.visible-md.visible-xs,
- td.visible-md.visible-xs {
- display: table-cell !important;
- }
-}
-
-@media (min-width: 768px) and (max-width: 991px) {
- .visible-md.visible-sm {
- display: block !important;
- }
- table.visible-md.visible-sm {
- display: table;
- }
- tr.visible-md.visible-sm {
- display: table-row !important;
- }
- th.visible-md.visible-sm,
- td.visible-md.visible-sm {
- display: table-cell !important;
- }
-}
-
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md {
display: block !important;
@@ -6788,78 +5724,6 @@ td.visible-md {
display: table-cell !important;
}
}
-
-@media (min-width: 1200px) {
- .visible-md.visible-lg {
- display: block !important;
- }
- table.visible-md.visible-lg {
- display: table;
- }
- tr.visible-md.visible-lg {
- display: table-row !important;
- }
- th.visible-md.visible-lg,
- td.visible-md.visible-lg {
- display: table-cell !important;
- }
-}
-
-.visible-lg,
-tr.visible-lg,
-th.visible-lg,
-td.visible-lg {
- display: none !important;
-}
-
-@media (max-width: 767px) {
- .visible-lg.visible-xs {
- display: block !important;
- }
- table.visible-lg.visible-xs {
- display: table;
- }
- tr.visible-lg.visible-xs {
- display: table-row !important;
- }
- th.visible-lg.visible-xs,
- td.visible-lg.visible-xs {
- display: table-cell !important;
- }
-}
-
-@media (min-width: 768px) and (max-width: 991px) {
- .visible-lg.visible-sm {
- display: block !important;
- }
- table.visible-lg.visible-sm {
- display: table;
- }
- tr.visible-lg.visible-sm {
- display: table-row !important;
- }
- th.visible-lg.visible-sm,
- td.visible-lg.visible-sm {
- display: table-cell !important;
- }
-}
-
-@media (min-width: 992px) and (max-width: 1199px) {
- .visible-lg.visible-md {
- display: block !important;
- }
- table.visible-lg.visible-md {
- display: table;
- }
- tr.visible-lg.visible-md {
- display: table-row !important;
- }
- th.visible-lg.visible-md,
- td.visible-lg.visible-md {
- display: table-cell !important;
- }
-}
-
@media (min-width: 1200px) {
.visible-lg {
display: block !important;
@@ -6875,226 +5739,29 @@ td.visible-lg {
display: table-cell !important;
}
}
-
-.hidden-xs {
- display: block !important;
-}
-
-table.hidden-xs {
- display: table;
-}
-
-tr.hidden-xs {
- display: table-row !important;
-}
-
-th.hidden-xs,
-td.hidden-xs {
- display: table-cell !important;
-}
-
-@media (max-width: 767px) {
- .hidden-xs,
- tr.hidden-xs,
- th.hidden-xs,
- td.hidden-xs {
- display: none !important;
- }
-}
-
-@media (min-width: 768px) and (max-width: 991px) {
- .hidden-xs.hidden-sm,
- tr.hidden-xs.hidden-sm,
- th.hidden-xs.hidden-sm,
- td.hidden-xs.hidden-sm {
- display: none !important;
- }
-}
-
-@media (min-width: 992px) and (max-width: 1199px) {
- .hidden-xs.hidden-md,
- tr.hidden-xs.hidden-md,
- th.hidden-xs.hidden-md,
- td.hidden-xs.hidden-md {
- display: none !important;
- }
-}
-
-@media (min-width: 1200px) {
- .hidden-xs.hidden-lg,
- tr.hidden-xs.hidden-lg,
- th.hidden-xs.hidden-lg,
- td.hidden-xs.hidden-lg {
- display: none !important;
- }
-}
-
-.hidden-sm {
- display: block !important;
-}
-
-table.hidden-sm {
- display: table;
-}
-
-tr.hidden-sm {
- display: table-row !important;
-}
-
-th.hidden-sm,
-td.hidden-sm {
- display: table-cell !important;
-}
-
-@media (max-width: 767px) {
- .hidden-sm.hidden-xs,
- tr.hidden-sm.hidden-xs,
- th.hidden-sm.hidden-xs,
- td.hidden-sm.hidden-xs {
- display: none !important;
- }
-}
-
-@media (min-width: 768px) and (max-width: 991px) {
- .hidden-sm,
- tr.hidden-sm,
- th.hidden-sm,
- td.hidden-sm {
- display: none !important;
- }
-}
-
-@media (min-width: 992px) and (max-width: 1199px) {
- .hidden-sm.hidden-md,
- tr.hidden-sm.hidden-md,
- th.hidden-sm.hidden-md,
- td.hidden-sm.hidden-md {
- display: none !important;
- }
-}
-
-@media (min-width: 1200px) {
- .hidden-sm.hidden-lg,
- tr.hidden-sm.hidden-lg,
- th.hidden-sm.hidden-lg,
- td.hidden-sm.hidden-lg {
- display: none !important;
- }
-}
-
-.hidden-md {
- display: block !important;
-}
-
-table.hidden-md {
- display: table;
-}
-
-tr.hidden-md {
- display: table-row !important;
-}
-
-th.hidden-md,
-td.hidden-md {
- display: table-cell !important;
-}
-
@media (max-width: 767px) {
- .hidden-md.hidden-xs,
- tr.hidden-md.hidden-xs,
- th.hidden-md.hidden-xs,
- td.hidden-md.hidden-xs {
+ .hidden-xs {
display: none !important;
}
}
-
@media (min-width: 768px) and (max-width: 991px) {
- .hidden-md.hidden-sm,
- tr.hidden-md.hidden-sm,
- th.hidden-md.hidden-sm,
- td.hidden-md.hidden-sm {
+ .hidden-sm {
display: none !important;
}
}
-
@media (min-width: 992px) and (max-width: 1199px) {
- .hidden-md,
- tr.hidden-md,
- th.hidden-md,
- td.hidden-md {
+ .hidden-md {
display: none !important;
}
}
-
@media (min-width: 1200px) {
- .hidden-md.hidden-lg,
- tr.hidden-md.hidden-lg,
- th.hidden-md.hidden-lg,
- td.hidden-md.hidden-lg {
+ .hidden-lg {
display: none !important;
}
}
-
-.hidden-lg {
- display: block !important;
-}
-
-table.hidden-lg {
- display: table;
-}
-
-tr.hidden-lg {
- display: table-row !important;
-}
-
-th.hidden-lg,
-td.hidden-lg {
- display: table-cell !important;
-}
-
-@media (max-width: 767px) {
- .hidden-lg.hidden-xs,
- tr.hidden-lg.hidden-xs,
- th.hidden-lg.hidden-xs,
- td.hidden-lg.hidden-xs {
- display: none !important;
- }
-}
-
-@media (min-width: 768px) and (max-width: 991px) {
- .hidden-lg.hidden-sm,
- tr.hidden-lg.hidden-sm,
- th.hidden-lg.hidden-sm,
- td.hidden-lg.hidden-sm {
- display: none !important;
- }
-}
-
-@media (min-width: 992px) and (max-width: 1199px) {
- .hidden-lg.hidden-md,
- tr.hidden-lg.hidden-md,
- th.hidden-lg.hidden-md,
- td.hidden-lg.hidden-md {
- display: none !important;
- }
-}
-
-@media (min-width: 1200px) {
- .hidden-lg,
- tr.hidden-lg,
- th.hidden-lg,
- td.hidden-lg {
- display: none !important;
- }
-}
-
-.visible-print,
-tr.visible-print,
-th.visible-print,
-td.visible-print {
+.visible-print {
display: none !important;
}
-
@media print {
.visible-print {
display: block !important;
@@ -7109,10 +5776,10 @@ td.visible-print {
td.visible-print {
display: table-cell !important;
}
- .hidden-print,
- tr.hidden-print,
- th.hidden-print,
- td.hidden-print {
+}
+@media print {
+ .hidden-print {
display: none !important;
}
-} \ No newline at end of file
+}
+/*# sourceMappingURL=bootstrap.css.map */
diff --git a/library/bootstrap/css/bootstrap.min.css b/library/bootstrap/css/bootstrap.min.css
index c547283bb..679272d25 100644
--- a/library/bootstrap/css/bootstrap.min.css
+++ b/library/bootstrap/css/bootstrap.min.css
@@ -1,7 +1,7 @@
/*!
- * Bootstrap v3.0.3 (http://getbootstrap.com)
- * Copyright 2013 Twitter, Inc.
- * Licensed under http://www.apache.org/licenses/LICENSE-2.0
+ * Bootstrap v3.1.1 (http://getbootstrap.com)
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
-/*! normalize.css v2.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden],template{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a{background:transparent}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{margin:.67em 0;font-size:2em}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}mark{color:#000;background:#ff0}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid #c0c0c0}legend{padding:0;border:0}button,input,select,textarea{margin:0;font-family:inherit;font-size:100%}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{padding:0;box-sizing:border-box}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:2cm .5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;height:auto;max-width:100%}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{margin-top:20px;margin-bottom:10px}h1 small,h2 small,h3 small,h1 .small,h2 .small,h3 .small{font-size:65%}h4,h5,h6{margin-top:10px;margin-bottom:10px}h4 small,h5 small,h6 small,h4 .small,h5 .small,h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media(min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-primary:hover{color:#3071a9}.text-warning{color:#8a6d3b}.text-warning:hover{color:#66512c}.text-danger{color:#a94442}.text-danger:hover{color:#843534}.text-success{color:#3c763d}.text-success:hover{color:#2b542c}.text-info{color:#31708f}.text-info:hover{color:#245269}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}.list-inline>li:first-child{padding-left:0}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:bold}dd{margin-left:0}@media(min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small,blockquote .small{display:block;line-height:1.428571429;color:#999}blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small,blockquote.pull-right .small{text-align:right}blockquote.pull-right small:before,blockquote.pull-right .small:before{content:''}blockquote.pull-right small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.428571429}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}@media(min-width:768px){.container{width:750px}}@media(min-width:992px){.container{width:970px}}@media(min-width:1200px){.container{width:1170px}}.row{margin-right:-15px;margin-left:-15px}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666666666666%}.col-xs-10{width:83.33333333333334%}.col-xs-9{width:75%}.col-xs-8{width:66.66666666666666%}.col-xs-7{width:58.333333333333336%}.col-xs-6{width:50%}.col-xs-5{width:41.66666666666667%}.col-xs-4{width:33.33333333333333%}.col-xs-3{width:25%}.col-xs-2{width:16.666666666666664%}.col-xs-1{width:8.333333333333332%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666666666666%}.col-xs-pull-10{right:83.33333333333334%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666666666666%}.col-xs-pull-7{right:58.333333333333336%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666666666667%}.col-xs-pull-4{right:33.33333333333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.666666666666664%}.col-xs-pull-1{right:8.333333333333332%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666666666666%}.col-xs-push-10{left:83.33333333333334%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666666666666%}.col-xs-push-7{left:58.333333333333336%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666666666667%}.col-xs-push-4{left:33.33333333333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.666666666666664%}.col-xs-push-1{left:8.333333333333332%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666666666666%}.col-xs-offset-10{margin-left:83.33333333333334%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666666666666%}.col-xs-offset-7{margin-left:58.333333333333336%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666666666667%}.col-xs-offset-4{margin-left:33.33333333333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.666666666666664%}.col-xs-offset-1{margin-left:8.333333333333332%}.col-xs-offset-0{margin-left:0}@media(min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666666666666%}.col-sm-10{width:83.33333333333334%}.col-sm-9{width:75%}.col-sm-8{width:66.66666666666666%}.col-sm-7{width:58.333333333333336%}.col-sm-6{width:50%}.col-sm-5{width:41.66666666666667%}.col-sm-4{width:33.33333333333333%}.col-sm-3{width:25%}.col-sm-2{width:16.666666666666664%}.col-sm-1{width:8.333333333333332%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666666666666%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666666666666%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-0{margin-left:0}}@media(min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666666666666%}.col-md-10{width:83.33333333333334%}.col-md-9{width:75%}.col-md-8{width:66.66666666666666%}.col-md-7{width:58.333333333333336%}.col-md-6{width:50%}.col-md-5{width:41.66666666666667%}.col-md-4{width:33.33333333333333%}.col-md-3{width:25%}.col-md-2{width:16.666666666666664%}.col-md-1{width:8.333333333333332%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666666666666%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666666666666%}.col-md-push-10{left:83.33333333333334%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666666666666%}.col-md-push-7{left:58.333333333333336%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666666666667%}.col-md-push-4{left:33.33333333333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.666666666666664%}.col-md-push-1{left:8.333333333333332%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666666666666%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-0{margin-left:0}}@media(min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666666666666%}.col-lg-10{width:83.33333333333334%}.col-lg-9{width:75%}.col-lg-8{width:66.66666666666666%}.col-lg-7{width:58.333333333333336%}.col-lg-6{width:50%}.col-lg-5{width:41.66666666666667%}.col-lg-4{width:33.33333333333333%}.col-lg-3{width:25%}.col-lg-2{width:16.666666666666664%}.col-lg-1{width:8.333333333333332%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666666666666%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666666666666%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{position:static;display:table-column;float:none}table td[class*="col-"],table th[class*="col-"]{display:table-cell;float:none}.table>thead>tr>.active,.table>tbody>tr>.active,.table>tfoot>tr>.active,.table>thead>.active>td,.table>tbody>.active>td,.table>tfoot>.active>td,.table>thead>.active>th,.table>tbody>.active>th,.table>tfoot>.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>.active:hover,.table-hover>tbody>.active:hover>td,.table-hover>tbody>.active:hover>th{background-color:#e8e8e8}.table>thead>tr>.success,.table>tbody>tr>.success,.table>tfoot>tr>.success,.table>thead>.success>td,.table>tbody>.success>td,.table>tfoot>.success>td,.table>thead>.success>th,.table>tbody>.success>th,.table>tfoot>.success>th{background-color:#dff0d8}.table-hover>tbody>tr>.success:hover,.table-hover>tbody>.success:hover>td,.table-hover>tbody>.success:hover>th{background-color:#d0e9c6}.table>thead>tr>.danger,.table>tbody>tr>.danger,.table>tfoot>tr>.danger,.table>thead>.danger>td,.table>tbody>.danger>td,.table>tfoot>.danger>td,.table>thead>.danger>th,.table>tbody>.danger>th,.table>tfoot>.danger>th{background-color:#f2dede}.table-hover>tbody>tr>.danger:hover,.table-hover>tbody>.danger:hover>td,.table-hover>tbody>.danger:hover>th{background-color:#ebcccc}.table>thead>tr>.warning,.table>tbody>tr>.warning,.table>tfoot>tr>.warning,.table>thead>.warning>td,.table>tbody>.warning>td,.table>tfoot>.warning>td,.table>thead>.warning>th,.table>tbody>.warning>th,.table>tfoot>.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>.warning:hover,.table-hover>tbody>.warning:hover>td,.table-hover>tbody>.warning:hover>th{background-color:#faf2cc}@media(max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:scroll;overflow-y:hidden;border:1px solid #ddd;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control:-moz-placeholder{color:#999}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:normal;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media(min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline select.form-control{width:auto}.form-inline .radio,.form-inline .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-control-static{padding-top:7px}@media(min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#fff}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-link{font-weight:normal;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:normal;line-height:1;-moz-osx-font-smoothing:grayscale}.glyphicon:empty{width:1em}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media(min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-bottom-left-radius:4px;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-right:0;padding-left:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn:first-child>.btn{margin-right:-1px}.input-group-btn:last-child>.btn{margin-left:-1px}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media(min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media(min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media(min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media(min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}@media(min-width:768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}@media(min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media(min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:0;padding-left:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media(min-width:768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media(min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media(min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media(min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media(min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media(max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media(min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media(min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}@media(min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form select.form-control{width:auto}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}}@media(max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media(min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media(min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}@media(max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}@media(max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.428571429;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#eee}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;height:auto;max-width:100%;margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child th,.panel>.table>tbody:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:last-child>th,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:last-child>td,.panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:auto;overflow-y:scroll}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;z-index:1050;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;height:auto;max-width:100%;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);opacity:.5;filter:alpha(opacity=50)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.5) 0),color-stop(rgba(0,0,0,0.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000',endColorstr='#00000000',GradientType=1)}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.0001) 0),color-stop(rgba(0,0,0,0.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000',endColorstr='#80000000',GradientType=1)}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;outline:0;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicons-chevron-left,.carousel-control .glyphicons-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{display:table;content:" "}.clearfix:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,tr.visible-xs,th.visible-xs,td.visible-xs{display:none!important}@media(max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}table.visible-xs.visible-sm{display:table}tr.visible-xs.visible-sm{display:table-row!important}th.visible-xs.visible-sm,td.visible-xs.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}table.visible-xs.visible-md{display:table}tr.visible-xs.visible-md{display:table-row!important}th.visible-xs.visible-md,td.visible-xs.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-xs.visible-lg{display:block!important}table.visible-xs.visible-lg{display:table}tr.visible-xs.visible-lg{display:table-row!important}th.visible-xs.visible-lg,td.visible-xs.visible-lg{display:table-cell!important}}.visible-sm,tr.visible-sm,th.visible-sm,td.visible-sm{display:none!important}@media(max-width:767px){.visible-sm.visible-xs{display:block!important}table.visible-sm.visible-xs{display:table}tr.visible-sm.visible-xs{display:table-row!important}th.visible-sm.visible-xs,td.visible-sm.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}table.visible-sm.visible-md{display:table}tr.visible-sm.visible-md{display:table-row!important}th.visible-sm.visible-md,td.visible-sm.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-sm.visible-lg{display:block!important}table.visible-sm.visible-lg{display:table}tr.visible-sm.visible-lg{display:table-row!important}th.visible-sm.visible-lg,td.visible-sm.visible-lg{display:table-cell!important}}.visible-md,tr.visible-md,th.visible-md,td.visible-md{display:none!important}@media(max-width:767px){.visible-md.visible-xs{display:block!important}table.visible-md.visible-xs{display:table}tr.visible-md.visible-xs{display:table-row!important}th.visible-md.visible-xs,td.visible-md.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}table.visible-md.visible-sm{display:table}tr.visible-md.visible-sm{display:table-row!important}th.visible-md.visible-sm,td.visible-md.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-md.visible-lg{display:block!important}table.visible-md.visible-lg{display:table}tr.visible-md.visible-lg{display:table-row!important}th.visible-md.visible-lg,td.visible-md.visible-lg{display:table-cell!important}}.visible-lg,tr.visible-lg,th.visible-lg,td.visible-lg{display:none!important}@media(max-width:767px){.visible-lg.visible-xs{display:block!important}table.visible-lg.visible-xs{display:table}tr.visible-lg.visible-xs{display:table-row!important}th.visible-lg.visible-xs,td.visible-lg.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}table.visible-lg.visible-sm{display:table}tr.visible-lg.visible-sm{display:table-row!important}th.visible-lg.visible-sm,td.visible-lg.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}table.visible-lg.visible-md{display:table}tr.visible-lg.visible-md{display:table-row!important}th.visible-lg.visible-md,td.visible-lg.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}table.hidden-xs{display:table}tr.hidden-xs{display:table-row!important}th.hidden-xs,td.hidden-xs{display:table-cell!important}@media(max-width:767px){.hidden-xs,tr.hidden-xs,th.hidden-xs,td.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm,tr.hidden-xs.hidden-sm,th.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md,tr.hidden-xs.hidden-md,th.hidden-xs.hidden-md,td.hidden-xs.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-xs.hidden-lg,tr.hidden-xs.hidden-lg,th.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}table.hidden-sm{display:table}tr.hidden-sm{display:table-row!important}th.hidden-sm,td.hidden-sm{display:table-cell!important}@media(max-width:767px){.hidden-sm.hidden-xs,tr.hidden-sm.hidden-xs,th.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-sm,tr.hidden-sm,th.hidden-sm,td.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md,tr.hidden-sm.hidden-md,th.hidden-sm.hidden-md,td.hidden-sm.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-sm.hidden-lg,tr.hidden-sm.hidden-lg,th.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}table.hidden-md{display:table}tr.hidden-md{display:table-row!important}th.hidden-md,td.hidden-md{display:table-cell!important}@media(max-width:767px){.hidden-md.hidden-xs,tr.hidden-md.hidden-xs,th.hidden-md.hidden-xs,td.hidden-md.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-md.hidden-sm,tr.hidden-md.hidden-sm,th.hidden-md.hidden-sm,td.hidden-md.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-md,tr.hidden-md,th.hidden-md,td.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-md.hidden-lg,tr.hidden-md.hidden-lg,th.hidden-md.hidden-lg,td.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}table.hidden-lg{display:table}tr.hidden-lg{display:table-row!important}th.hidden-lg,td.hidden-lg{display:table-cell!important}@media(max-width:767px){.hidden-lg.hidden-xs,tr.hidden-lg.hidden-xs,th.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm,tr.hidden-lg.hidden-sm,th.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md,tr.hidden-lg.hidden-md,th.hidden-lg.hidden-md,td.hidden-lg.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-lg,tr.hidden-lg,th.hidden-lg,td.hidden-lg{display:none!important}}.visible-print,tr.visible-print,th.visible-print,td.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}.hidden-print,tr.hidden-print,th.hidden-print,td.hidden-print{display:none!important}} \ No newline at end of file
+/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date]{line-height:34px}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.has-feedback .form-control-feedback{position:absolute;top:25px;right:0;display:block;width:34px;height:34px;line-height:34px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}@media print{.hidden-print{display:none!important}} \ No newline at end of file
diff --git a/library/bootstrap/fonts/glyphicons-halflings-regular.eot b/library/bootstrap/fonts/glyphicons-halflings-regular.eot
index 423bd5d3a..4a4ca865d 100644
--- a/library/bootstrap/fonts/glyphicons-halflings-regular.eot
+++ b/library/bootstrap/fonts/glyphicons-halflings-regular.eot
Binary files differ
diff --git a/library/bootstrap/fonts/glyphicons-halflings-regular.svg b/library/bootstrap/fonts/glyphicons-halflings-regular.svg
index 446948874..e3e2dc739 100644
--- a/library/bootstrap/fonts/glyphicons-halflings-regular.svg
+++ b/library/bootstrap/fonts/glyphicons-halflings-regular.svg
@@ -28,12 +28,12 @@
<glyph unicode="&#x205f;" horiz-adv-x="326" />
<glyph unicode="&#x20ac;" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" />
<glyph unicode="&#x2212;" d="M200 400h900v300h-900v-300z" />
-<glyph unicode="&#x2601;" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
+<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
+<glyph unicode="&#x2601;" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
<glyph unicode="&#x2709;" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" />
<glyph unicode="&#x270f;" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" />
-<glyph unicode="&#xe000;" horiz-adv-x="500" d="M0 0z" />
<glyph unicode="&#xe001;" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" />
-<glyph unicode="&#xe002;" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q17 -55 85.5 -75.5t147.5 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
+<glyph unicode="&#xe002;" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q18 -55 86 -75.5t147 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
<glyph unicode="&#xe003;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
<glyph unicode="&#xe005;" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" />
<glyph unicode="&#xe006;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1z" />
@@ -46,7 +46,7 @@
<glyph unicode="&#xe013;" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" />
<glyph unicode="&#xe014;" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" />
<glyph unicode="&#xe015;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" />
-<glyph unicode="&#xe016;" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 299q-120 -77 -261 -77q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
+<glyph unicode="&#xe016;" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
<glyph unicode="&#xe017;" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" />
<glyph unicode="&#xe018;" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" />
<glyph unicode="&#xe019;" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" />
@@ -58,7 +58,7 @@
<glyph unicode="&#xe025;" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" />
<glyph unicode="&#xe026;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM188 600q0 -170 121 -291t291 -121t291 121t121 291t-121 291t-291 121 t-291 -121t-121 -291zM350 600h150v300h200v-300h150l-250 -300z" />
<glyph unicode="&#xe027;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM350 600l250 300 l250 -300h-150v-300h-200v300h-150z" />
-<glyph unicode="&#xe028;" d="M0 25v475l200 700h800q199 -700 200 -700v-475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
+<glyph unicode="&#xe028;" d="M0 25v475l200 700h800l199 -700l1 -475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
<glyph unicode="&#xe029;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 397v401 l297 -200z" />
<glyph unicode="&#xe030;" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" />
<glyph unicode="&#xe031;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" />
@@ -71,14 +71,14 @@
<glyph unicode="&#xe038;" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" />
<glyph unicode="&#xe039;" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" />
<glyph unicode="&#xe040;" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" />
-<glyph unicode="&#xe041;" d="M1 700v475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
-<glyph unicode="&#xe042;" d="M2 700v475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
+<glyph unicode="&#xe041;" d="M0 700l1 475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
+<glyph unicode="&#xe042;" d="M1 700l1 475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
<glyph unicode="&#xe043;" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" />
<glyph unicode="&#xe044;" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
<glyph unicode="&#xe045;" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" />
<glyph unicode="&#xe046;" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" />
<glyph unicode="&#xe047;" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140l116 -317h-340 z" />
-<glyph unicode="&#xe048;" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v70h471q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
+<glyph unicode="&#xe048;" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v71l471 -1q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
<glyph unicode="&#xe049;" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" />
<glyph unicode="&#xe050;" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " />
<glyph unicode="&#xe051;" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" />
@@ -93,10 +93,10 @@
<glyph unicode="&#xe060;" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " />
<glyph unicode="&#xe062;" d="M148 745q0 124 60.5 231.5t165 172t226.5 64.5q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262zM342 772q0 -107 75.5 -182.5t181.5 -75.5 q107 0 182.5 75.5t75.5 182.5t-75.5 182t-182.5 75t-182 -75.5t-75 -181.5z" />
<glyph unicode="&#xe063;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM173 600q0 -177 125.5 -302t301.5 -125v854q-176 0 -301.5 -125 t-125.5 -302z" />
-<glyph unicode="&#xe064;" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 138.5t-64 210.5zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
+<glyph unicode="&#xe064;" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 139t-64 210zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
<glyph unicode="&#xe065;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM995 1015l113 -113l113 113l-21 85l-92 28z" />
<glyph unicode="&#xe066;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" />
-<glyph unicode="&#xe067;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l566 567l-136 137l-430 -431l-147 147z" />
+<glyph unicode="&#xe067;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q61 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l567 567l-137 137l-430 -431l-146 147z" />
<glyph unicode="&#xe068;" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" />
<glyph unicode="&#xe069;" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
<glyph unicode="&#xe070;" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
@@ -110,13 +110,13 @@
<glyph unicode="&#xe078;" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" />
<glyph unicode="&#xe079;" d="M185 599l592 -592l240 240l-353 353l353 353l-240 240z" />
<glyph unicode="&#xe080;" d="M272 194l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1l-592 -591z" />
-<glyph unicode="&#xe081;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
-<glyph unicode="&#xe082;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM300 500h600v200h-600v-200z" />
-<glyph unicode="&#xe083;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141z" />
+<glyph unicode="&#xe081;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
+<glyph unicode="&#xe082;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h600v200h-600v-200z" />
+<glyph unicode="&#xe083;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141 z" />
<glyph unicode="&#xe084;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" />
-<glyph unicode="&#xe085;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM363 700h144q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5q19 0 30 -10t11 -26 q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-105 0 -172 -56t-67 -183zM500 300h200v100h-200v-100z" />
-<glyph unicode="&#xe086;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
-<glyph unicode="&#xe087;" d="M0 500v200h194q15 60 36 104.5t55.5 86t88 69t126.5 40.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200 v-206q149 48 201 206h-201v200h200q-25 74 -76 127.5t-124 76.5v-204h-200v203q-75 -24 -130 -77.5t-79 -125.5h209v-200h-210z" />
+<glyph unicode="&#xe085;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM364 700h143q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5 q19 0 30 -10t11 -26q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-50 0 -90.5 -12t-75 -38.5t-53.5 -74.5t-19 -114zM500 300h200v100h-200 v-100z" />
+<glyph unicode="&#xe086;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
+<glyph unicode="&#xe087;" d="M0 500v200h195q31 125 98.5 199.5t206.5 100.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200v-206 q149 48 201 206h-201v200h200q-25 74 -75.5 127t-124.5 77v-204h-200v203q-75 -23 -130 -77t-79 -126h209v-200h-210z" />
<glyph unicode="&#xe088;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM356 465l135 135 l-135 135l109 109l135 -135l135 135l109 -109l-135 -135l135 -135l-109 -109l-135 135l-135 -135z" />
<glyph unicode="&#xe089;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM322 537l141 141 l87 -87l204 205l142 -142l-346 -345z" />
<glyph unicode="&#xe090;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -115 62 -215l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5zM391 245q97 -59 209 -59q171 0 292.5 121.5t121.5 292.5 q0 112 -59 209z" />
@@ -127,14 +127,14 @@
<glyph unicode="&#xe095;" d="M0 200q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453l-600 -448v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5z" />
<glyph unicode="&#xe096;" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" />
<glyph unicode="&#xe097;" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -141l-295 -295l129 -130h-400z" />
-<glyph unicode="&#xe101;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-33 14.5h-207q-20 0 -32 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
-<glyph unicode="&#xe102;" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111v6t-1 15t-3 18l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6h-111v-100z M100 0h400v400h-400v-400zM200 900q-3 0 14 48t35 96l18 47l214 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
+<glyph unicode="&#xe101;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5h-207q-21 0 -33 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
+<glyph unicode="&#xe102;" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111q1 1 1 6.5t-1.5 15t-3.5 17.5l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6 h-111v-100zM100 0h400v400h-400v-400zM200 900q-3 0 14 48t36 96l18 47l213 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
<glyph unicode="&#xe103;" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" />
<glyph unicode="&#xe104;" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5 t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5t8 -43t6 -39.5 t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" />
<glyph unicode="&#xe105;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" />
<glyph unicode="&#xe106;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM120 600q210 -282 393 -336l37 141q-107 18 -178.5 101.5t-71.5 193.5 q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68l-14 26zM780 161l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40 q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" />
-<glyph unicode="&#xe107;" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 33 -48 36t-48 -29l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
-<glyph unicode="&#xe108;" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -21 -13 -29t-32 1l-94 78h-222l-94 -78q-19 -9 -32 -1t-13 29v64 q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
+<glyph unicode="&#xe107;" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 34 -48 36.5t-48 -29.5l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
+<glyph unicode="&#xe108;" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -20 -13 -28.5t-32 0.5l-94 78h-222l-94 -78q-19 -9 -32 -0.5t-13 28.5 v64q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
<glyph unicode="&#xe109;" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" />
<glyph unicode="&#xe110;" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" />
<glyph unicode="&#xe111;" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" />
@@ -148,33 +148,33 @@
<glyph unicode="&#xe119;" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
<glyph unicode="&#xe120;" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" />
<glyph unicode="&#xe121;" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" />
-<glyph unicode="&#xe122;" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM99 500v250v5q0 13 0.5 18.5t2.5 13t8 10.5t15 3h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35q-56 337 -56 351z M1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
-<glyph unicode="&#xe123;" d="M74 350q0 21 13.5 35.5t33.5 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-22 -9 -63 -23t-167.5 -37 t-251.5 -23t-245.5 20.5t-178.5 41.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
+<glyph unicode="&#xe122;" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM100 500v250v8v8v7t0.5 7t1.5 5.5t2 5t3 4t4.5 3.5t6 1.5t7.5 0.5h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35 q-55 337 -55 351zM1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
+<glyph unicode="&#xe123;" d="M74 350q0 21 13.5 35.5t33.5 14.5h18l117 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5q-18 -36 -18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-8 -3 -23 -8.5 t-65 -20t-103 -25t-132.5 -19.5t-158.5 -9q-125 0 -245.5 20.5t-178.5 40.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
<glyph unicode="&#xe124;" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" />
-<glyph unicode="&#xe125;" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q123 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 212l100 213h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
-<glyph unicode="&#xe126;" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q123 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
+<glyph unicode="&#xe125;" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q124 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 213l100 212h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
+<glyph unicode="&#xe126;" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q124 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
<glyph unicode="&#xe127;" d="M8 200v600h200v-600h-200zM308 275v525q0 17 14 35.5t28 28.5l14 9l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341 q-7 0 -90 81t-83 94zM408 289l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83l-339 -236v-503z" />
-<glyph unicode="&#xe128;" d="M-101 651q0 72 54 110t139 37h302l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 16.5 -10.5t26 -26t16.5 -36.5v-526q0 -13 -85.5 -93.5t-93.5 -80.5h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l106 89v502l-342 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM999 201v600h200v-600h-200z" />
-<glyph unicode="&#xe129;" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6v7.5v7v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
-<glyph unicode="&#xe130;" d="M1 585q-15 -31 7 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85l-1 -302q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM76 565l237 339h503l89 -100v-294l-340 -130 q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
-<glyph unicode="&#xe131;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 500h300l-2 -194l402 294l-402 298v-197h-298v-201z" />
-<glyph unicode="&#xe132;" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l400 -294v194h302v201h-300v197z" />
-<glyph unicode="&#xe133;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
-<glyph unicode="&#xe134;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
-<glyph unicode="&#xe135;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -34 5.5 -93t7.5 -87q0 -9 17 -44t16 -60q12 0 23 -5.5 t23 -15t20 -13.5q20 -10 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55.5t-20 -57.5q12 -21 22.5 -34.5t28 -27t36.5 -17.5q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q101 -2 221 111q31 30 47 48t34 49t21 62q-14 9 -37.5 9.5t-35.5 7.5q-14 7 -49 15t-52 19 q-9 0 -39.5 -0.5t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q8 16 22 22q6 -1 26 -1.5t33.5 -4.5t19.5 -13q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5 t5.5 57.5q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 41 1 44q31 -13 58.5 -14.5t39.5 3.5l11 4q6 36 -17 53.5t-64 28.5t-56 23 q-19 -3 -37 0q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -46 0t-45 -3q-20 -6 -51.5 -25.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79zM518 915q3 12 16 30.5t16 25.5q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -18 8 -42.5t16.5 -44 t9.5 -23.5q-6 1 -39 5t-53.5 10t-36.5 16z" />
+<glyph unicode="&#xe128;" d="M-101 651q0 72 54 110t139 38l302 -1l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 17 -10.5t26.5 -26t16.5 -36.5v-526q0 -13 -86 -93.5t-94 -80.5h-341q-16 0 -29.5 20t-19.5 41l-130 339h-107q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l107 89v502l-343 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM1000 201v600h200v-600h-200z" />
+<glyph unicode="&#xe129;" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6.5v7.5v6.5v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
+<glyph unicode="&#xe130;" d="M2 585q-16 -31 6 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85q0 -51 -0.5 -153.5t-0.5 -148.5q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM77 565l236 339h503 l89 -100v-294l-340 -130q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
+<glyph unicode="&#xe131;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM298 701l2 -201h300l-2 -194l402 294l-402 298v-197h-300z" />
+<glyph unicode="&#xe132;" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l402 -294l-2 194h300l2 201h-300v197z" />
+<glyph unicode="&#xe133;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
+<glyph unicode="&#xe134;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
+<glyph unicode="&#xe135;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -33 5.5 -92.5t7.5 -87.5q0 -9 17 -44t16 -60 q12 0 23 -5.5t23 -15t20 -13.5q24 -12 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55t-20 -57q42 -71 87 -80q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q104 -3 221 112q30 29 47 47t34.5 49t20.5 62q-14 9 -37 9.5t-36 7.5q-14 7 -49 15t-52 19q-9 0 -39.5 -0.5 t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5t5.5 57.5 q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 39 2 44q31 -13 58 -14.5t39 3.5l11 4q7 36 -16.5 53.5t-64.5 28.5t-56 23q-19 -3 -37 0 q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -45.5 0.5t-45.5 -2.5q-21 -7 -52 -26.5t-34 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -90.5t-29.5 -79.5zM518 916q3 12 16 30t16 25q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -24 17 -66.5t17 -43.5 q-9 2 -31 5t-36 5t-32 8t-30 14zM692 1003h1h-1z" />
<glyph unicode="&#xe136;" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" />
<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" />
<glyph unicode="&#xe138;" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
<glyph unicode="&#xe139;" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" />
<glyph unicode="&#xe140;" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" />
-<glyph unicode="&#xe141;" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM513 609q0 32 21 56.5t52 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-16 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5q-37 0 -62.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
-<glyph unicode="&#xe142;" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -79.5 -17t-67.5 -51l-388 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23q38 0 53 -36 q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60l517 511 q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
-<glyph unicode="&#xe143;" d="M79 784q0 131 99 229.5t230 98.5q144 0 242 -129q103 129 245 129q130 0 227 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100l-84.5 84.5t-68 74t-60 78t-33.5 70.5t-15 78z M250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-106 48.5q-73 0 -131 -83l-118 -171l-114 174q-51 80 -124 80q-59 0 -108.5 -49.5t-49.5 -118.5z" />
-<glyph unicode="&#xe144;" d="M57 353q0 -94 66 -160l141 -141q66 -66 159 -66q95 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-12 12 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141l19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -18q46 -46 77 -99l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
+<glyph unicode="&#xe141;" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM514 609q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-14 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
+<glyph unicode="&#xe142;" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -78.5 -16.5t-67.5 -51.5l-389 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23 q38 0 53 -36q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60 l517 511q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
+<glyph unicode="&#xe143;" d="M80 784q0 131 98.5 229.5t230.5 98.5q143 0 241 -129q103 129 246 129q129 0 226 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100q-71 70 -104.5 105.5t-77 89.5t-61 99 t-17.5 91zM250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-105 48.5q-74 0 -132 -83l-118 -171l-114 174q-51 80 -123 80q-60 0 -109.5 -49.5t-49.5 -118.5z" />
+<glyph unicode="&#xe144;" d="M57 353q0 -95 66 -159l141 -142q68 -66 159 -66q93 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-8 9 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141q7 -7 19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -17q47 -49 77 -100l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
<glyph unicode="&#xe145;" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" />
<glyph unicode="&#xe146;" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" />
-<glyph unicode="&#xe148;" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335l-27 7q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5v-307l64 -14 q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5zM700 237 q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
-<glyph unicode="&#xe149;" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -11 2.5 -24.5t5.5 -24t9.5 -26.5t10.5 -25t14 -27.5t14 -25.5 t15.5 -27t13.5 -24h242v-100h-197q8 -50 -2.5 -115t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q32 1 102 -16t104 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10 t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5t-30 142.5h-221z" />
+<glyph unicode="&#xe148;" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335q-6 1 -15.5 4t-11.5 3q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5 v-307l64 -14q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5 zM700 237q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
+<glyph unicode="&#xe149;" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -28 16.5 -69.5t28 -62.5t41.5 -72h241v-100h-197q8 -50 -2.5 -115 t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q33 1 103 -16t103 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221z" />
<glyph unicode="&#xe150;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" />
<glyph unicode="&#xe151;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" />
<glyph unicode="&#xe152;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" />
@@ -187,15 +187,15 @@
<glyph unicode="&#xe159;" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" />
<glyph unicode="&#xe160;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" />
<glyph unicode="&#xe161;" d="M0 400v300h300v200l400 -350l-400 -350v200h-300zM500 0v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400z" />
-<glyph unicode="&#xe162;" d="M216 519q10 -19 32 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8l9 -1q13 0 26 16l538 630q15 19 6 36q-8 18 -32 16h-300q1 4 78 219.5t79 227.5q2 17 -6 27l-8 8h-9q-16 0 -25 -15q-4 -5 -98.5 -111.5t-228 -257t-209.5 -238.5q-17 -19 -7 -40z" />
+<glyph unicode="&#xe162;" d="M217 519q8 -19 31 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8h9q14 0 26 15q11 13 274.5 321.5t264.5 308.5q14 19 5 36q-8 17 -31 17l-301 -1q1 4 78 219.5t79 227.5q2 15 -5 27l-9 9h-9q-15 0 -25 -16q-4 -6 -98 -111.5t-228.5 -257t-209.5 -237.5q-16 -19 -6 -41 z" />
<glyph unicode="&#xe163;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300zM600 400v300h300v200l400 -350l-400 -350v200h-300z " />
<glyph unicode="&#xe164;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98l-78 73l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5 v-300zM496 709l353 342l-149 149h500v-500l-149 149l-342 -353z" />
<glyph unicode="&#xe165;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM406 600 q0 80 57 137t137 57t137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137z" />
<glyph unicode="&#xe166;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 800l445 -500l450 500h-295v400h-300v-400h-300zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe167;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 700h300v-300h300v300h295l-445 500zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe168;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 705l305 -305l596 596l-154 155l-442 -442l-150 151zM900 150h100v50h-100v-50z" />
-<glyph unicode="&#xe169;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 401h700v699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
-<glyph unicode="&#xe170;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l248 -237v700h-699zM900 150h100v50h-100v-50z" />
+<glyph unicode="&#xe169;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 400l697 1l3 699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
+<glyph unicode="&#xe170;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l249 -237l-1 697zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe171;" d="M23 415l1177 784v-1079l-475 272l-310 -393v416h-392zM494 210l672 938l-672 -712v-226z" />
<glyph unicode="&#xe172;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200z" />
<glyph unicode="&#xe173;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120l-126 -127h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM581 306l123 123l120 -120l353 352l123 -123l-475 -476zM600 1000h100v200h-100v-200z" />
@@ -204,11 +204,11 @@
<glyph unicode="&#xe176;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200l-298 -298h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300h200v-300h200v300h200l-300 300zM600 1000v200h100v-200h-100z" />
<glyph unicode="&#xe177;" d="M0 250q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200v-550zM0 900h1200v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 300v200h400v-200h-400z" />
<glyph unicode="&#xe178;" d="M0 400l300 298v-198h400v-200h-400v-198zM100 800v200h100v-200h-100zM300 800v200h100v-200h-100zM500 800v200h400v198l300 -298l-300 -298v198h-400zM800 300v200h100v-200h-100zM1000 300h100v200h-100v-200z" />
-<glyph unicode="&#xe179;" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -117q-25 -16 -43.5 -50.5t-18.5 -65.5v-359z" />
+<glyph unicode="&#xe179;" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -116q-25 -17 -43.5 -51.5t-18.5 -65.5v-359z" />
<glyph unicode="&#xe180;" d="M100 0h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5 t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56z" />
<glyph unicode="&#xe181;" d="M0 300q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM100 100h400l200 200h105l295 98v-298h-425l-100 -100h-375zM100 300v200h300v-200h-300zM100 600v200h300v-200h-300z M100 1000h400l200 -200v-98l295 98h105v200h-425l-100 100h-375zM700 402v163l400 133v-163z" />
-<glyph unicode="&#xe182;" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q16 17 13 40.5t-22 37.5l-192 136q-19 14 -45 12t-42 -19l-119 -118q-143 103 -267 227q-126 126 -227 268l118 118q17 17 20 41.5 t-11 44.5l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
-<glyph unicode="&#xe183;" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -15 -35.5t-35 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
+<glyph unicode="&#xe182;" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q17 18 13.5 41t-22.5 37l-192 136q-19 14 -45 12t-42 -19l-118 -118q-142 101 -268 227t-227 268l118 118q17 17 20 41.5t-11 44.5 l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
+<glyph unicode="&#xe183;" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-20 0 -35 14.5t-15 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
<glyph unicode="&#xe184;" d="M100 0v100h1100v-100h-1100zM175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250z" />
<glyph unicode="&#xe185;" d="M100 0h300v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400zM500 0v1000q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300zM900 0v700q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300z" />
<glyph unicode="&#xe186;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
@@ -221,9 +221,9 @@
<glyph unicode="&#xe193;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 700v100h300v-300h-99v-100h-100v100h99v200h-200zM201 300v100h100v-100h-100zM601 300v100h100v-100h-100z M700 700v100h200v-500h-100v400h-100z" />
<glyph unicode="&#xe194;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 500v200 l100 100h300v-100h-300v-200h300v-100h-300z" />
<glyph unicode="&#xe195;" d="M0 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 400v400h300 l100 -100v-100h-100v100h-200v-100h200v-100h-200v-100h-100zM700 400v100h100v-100h-100z" />
-<glyph unicode="&#xe197;" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300 h200l-300 -300z" />
-<glyph unicode="&#xe198;" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104t60.5 178q0 121 -85 207.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
+<glyph unicode="&#xe197;" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300h200 l-300 -300z" />
+<glyph unicode="&#xe198;" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104.5t60.5 178.5q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
<glyph unicode="&#xe199;" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
-<glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -12t1 -11q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
+<glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -11.5t1 -11.5q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
</font>
</defs></svg> \ No newline at end of file
diff --git a/library/bootstrap/fonts/glyphicons-halflings-regular.ttf b/library/bootstrap/fonts/glyphicons-halflings-regular.ttf
index a498ef4e7..67fa00bf8 100644
--- a/library/bootstrap/fonts/glyphicons-halflings-regular.ttf
+++ b/library/bootstrap/fonts/glyphicons-halflings-regular.ttf
Binary files differ
diff --git a/library/bootstrap/fonts/glyphicons-halflings-regular.woff b/library/bootstrap/fonts/glyphicons-halflings-regular.woff
index d83c539b8..8c54182aa 100644
--- a/library/bootstrap/fonts/glyphicons-halflings-regular.woff
+++ b/library/bootstrap/fonts/glyphicons-halflings-regular.woff
Binary files differ
diff --git a/library/bootstrap/js/bootstrap.js b/library/bootstrap/js/bootstrap.js
index 850e6e53b..8ae571b6d 100644
--- a/library/bootstrap/js/bootstrap.js
+++ b/library/bootstrap/js/bootstrap.js
@@ -1,32 +1,22 @@
/*!
- * Bootstrap v3.0.3 (http://getbootstrap.com)
- * Copyright 2013 Twitter, Inc.
- * Licensed under http://www.apache.org/licenses/LICENSE-2.0
+ * Bootstrap v3.1.1 (http://getbootstrap.com)
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
-if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery") }
+if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript requires jQuery') }
/* ========================================================================
- * Bootstrap: transition.js v3.0.3
+ * Bootstrap: transition.js v3.1.1
* http://getbootstrap.com/javascript/#transitions
* ========================================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
-+function ($) { "use strict";
++function ($) {
+ 'use strict';
// CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
// ============================================================
@@ -35,10 +25,10 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
var el = document.createElement('bootstrap')
var transEndEventNames = {
- 'WebkitTransition' : 'webkitTransitionEnd'
- , 'MozTransition' : 'transitionend'
- , 'OTransition' : 'oTransitionEnd otransitionend'
- , 'transition' : 'transitionend'
+ 'WebkitTransition' : 'webkitTransitionEnd',
+ 'MozTransition' : 'transitionend',
+ 'OTransition' : 'oTransitionEnd otransitionend',
+ 'transition' : 'transitionend'
}
for (var name in transEndEventNames) {
@@ -46,6 +36,8 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
return { end: transEndEventNames[name] }
}
}
+
+ return false // explicit for ie8 ( ._.)
}
// http://blog.alexmaccaw.com/css-transitions
@@ -64,26 +56,16 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
}(jQuery);
/* ========================================================================
- * Bootstrap: alert.js v3.0.3
+ * Bootstrap: alert.js v3.1.1
* http://getbootstrap.com/javascript/#alerts
* ========================================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
-+function ($) { "use strict";
++function ($) {
+ 'use strict';
// ALERT CLASS DEFINITION
// ======================
@@ -163,33 +145,24 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
}(jQuery);
/* ========================================================================
- * Bootstrap: button.js v3.0.3
+ * Bootstrap: button.js v3.1.1
* http://getbootstrap.com/javascript/#buttons
* ========================================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
-+function ($) { "use strict";
++function ($) {
+ 'use strict';
// BUTTON PUBLIC CLASS DEFINITION
// ==============================
var Button = function (element, options) {
- this.$element = $(element)
- this.options = $.extend({}, Button.DEFAULTS, options)
+ this.$element = $(element)
+ this.options = $.extend({}, Button.DEFAULTS, options)
+ this.isLoading = false
}
Button.DEFAULTS = {
@@ -209,25 +182,26 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
$el[val](data[state] || this.options[state])
// push to event loop to allow forms to submit
- setTimeout(function () {
- state == 'loadingText' ?
- $el.addClass(d).attr(d, d) :
- $el.removeClass(d).removeAttr(d);
- }, 0)
+ setTimeout($.proxy(function () {
+ if (state == 'loadingText') {
+ this.isLoading = true
+ $el.addClass(d).attr(d, d)
+ } else if (this.isLoading) {
+ this.isLoading = false
+ $el.removeClass(d).removeAttr(d)
+ }
+ }, this), 0)
}
Button.prototype.toggle = function () {
- var $parent = this.$element.closest('[data-toggle="buttons"]')
var changed = true
+ var $parent = this.$element.closest('[data-toggle="buttons"]')
if ($parent.length) {
var $input = this.$element.find('input')
- if ($input.prop('type') === 'radio') {
- // see if clicking on current one
- if ($input.prop('checked') && this.$element.hasClass('active'))
- changed = false
- else
- $parent.find('.active').removeClass('active')
+ if ($input.prop('type') == 'radio') {
+ if ($input.prop('checked') && this.$element.hasClass('active')) changed = false
+ else $parent.find('.active').removeClass('active')
}
if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')
}
@@ -279,26 +253,16 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
}(jQuery);
/* ========================================================================
- * Bootstrap: carousel.js v3.0.3
+ * Bootstrap: carousel.js v3.1.1
* http://getbootstrap.com/javascript/#carousel
* ========================================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
-+function ($) { "use strict";
++function ($) {
+ 'use strict';
// CAROUSEL CLASS DEFINITION
// =========================
@@ -319,9 +283,9 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
}
Carousel.DEFAULTS = {
- interval: 5000
- , pause: 'hover'
- , wrap: true
+ interval: 5000,
+ pause: 'hover',
+ wrap: true
}
Carousel.prototype.cycle = function (e) {
@@ -358,7 +322,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
Carousel.prototype.pause = function (e) {
e || (this.paused = true)
- if (this.$element.find('.next, .prev').length && $.support.transition.end) {
+ if (this.$element.find('.next, .prev').length && $.support.transition) {
this.$element.trigger($.support.transition.end)
this.cycle(true)
}
@@ -391,13 +355,15 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
$next = this.$element.find('.item')[fallback]()
}
- this.sliding = true
-
- isCycling && this.pause()
+ if ($next.hasClass('active')) return this.sliding = false
var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction })
+ this.$element.trigger(e)
+ if (e.isDefaultPrevented()) return
- if ($next.hasClass('active')) return
+ this.sliding = true
+
+ isCycling && this.pause()
if (this.$indicators.length) {
this.$indicators.find('.active').removeClass('active')
@@ -408,8 +374,6 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
}
if ($.support.transition && this.$element.hasClass('slide')) {
- this.$element.trigger(e)
- if (e.isDefaultPrevented()) return
$next.addClass(type)
$next[0].offsetWidth // force reflow
$active.addClass(direction)
@@ -421,10 +385,8 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
that.sliding = false
setTimeout(function () { that.$element.trigger('slid.bs.carousel') }, 0)
})
- .emulateTransitionEnd(600)
+ .emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000)
} else {
- this.$element.trigger(e)
- if (e.isDefaultPrevented()) return
$active.removeClass('active')
$next.addClass('active')
this.sliding = false
@@ -497,26 +459,16 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
}(jQuery);
/* ========================================================================
- * Bootstrap: collapse.js v3.0.3
+ * Bootstrap: collapse.js v3.1.1
* http://getbootstrap.com/javascript/#collapse
* ========================================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
-+function ($) { "use strict";
++function ($) {
+ 'use strict';
// COLLAPSE PUBLIC CLASS DEFINITION
// ================================
@@ -567,7 +519,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
var complete = function () {
this.$element
.removeClass('collapsing')
- .addClass('in')
+ .addClass('collapse in')
[dimension]('auto')
this.transitioning = 0
this.$element.trigger('shown.bs.collapse')
@@ -635,6 +587,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
var data = $this.data('bs.collapse')
var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
+ if (!data && options.toggle && option == 'show') option = !option
if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
if (typeof option == 'string') data[option]()
})
@@ -677,26 +630,16 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
}(jQuery);
/* ========================================================================
- * Bootstrap: dropdown.js v3.0.3
+ * Bootstrap: dropdown.js v3.1.1
* http://getbootstrap.com/javascript/#dropdowns
* ========================================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
-+function ($) { "use strict";
++function ($) {
+ 'use strict';
// DROPDOWN CLASS DEFINITION
// =========================
@@ -723,13 +666,14 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
$('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
}
- $parent.trigger(e = $.Event('show.bs.dropdown'))
+ var relatedTarget = { relatedTarget: this }
+ $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
if (e.isDefaultPrevented()) return
$parent
.toggleClass('open')
- .trigger('shown.bs.dropdown')
+ .trigger('shown.bs.dropdown', relatedTarget)
$this.focus()
}
@@ -755,7 +699,8 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
return $this.click()
}
- var $items = $('[role=menu] li:not(.divider):visible a', $parent)
+ var desc = ' li:not(.divider):visible a'
+ var $items = $parent.find('[role=menu]' + desc + ', [role=listbox]' + desc)
if (!$items.length) return
@@ -763,19 +708,20 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
if (e.keyCode == 38 && index > 0) index-- // up
if (e.keyCode == 40 && index < $items.length - 1) index++ // down
- if (!~index) index=0
+ if (!~index) index = 0
$items.eq(index).focus()
}
- function clearMenus() {
+ function clearMenus(e) {
$(backdrop).remove()
- $(toggle).each(function (e) {
+ $(toggle).each(function () {
var $parent = getParent($(this))
+ var relatedTarget = { relatedTarget: this }
if (!$parent.hasClass('open')) return
- $parent.trigger(e = $.Event('hide.bs.dropdown'))
+ $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
if (e.isDefaultPrevented()) return
- $parent.removeClass('open').trigger('hidden.bs.dropdown')
+ $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
})
}
@@ -784,7 +730,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
if (!selector) {
selector = $this.attr('href')
- selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
+ selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
}
var $parent = selector && $(selector)
@@ -826,32 +772,22 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
$(document)
.on('click.bs.dropdown.data-api', clearMenus)
.on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
- .on('click.bs.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
- .on('keydown.bs.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
+ .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
+ .on('keydown.bs.dropdown.data-api', toggle + ', [role=menu], [role=listbox]', Dropdown.prototype.keydown)
}(jQuery);
/* ========================================================================
- * Bootstrap: modal.js v3.0.3
+ * Bootstrap: modal.js v3.1.1
* http://getbootstrap.com/javascript/#modals
* ========================================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
-+function ($) { "use strict";
++function ($) {
+ 'use strict';
// MODAL CLASS DEFINITION
// ======================
@@ -862,13 +798,19 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
this.$backdrop =
this.isShown = null
- if (this.options.remote) this.$element.load(this.options.remote)
+ if (this.options.remote) {
+ this.$element
+ .find('.modal-content')
+ .load(this.options.remote, $.proxy(function () {
+ this.$element.trigger('loaded.bs.modal')
+ }, this))
+ }
}
Modal.DEFAULTS = {
- backdrop: true
- , keyboard: true
- , show: true
+ backdrop: true,
+ keyboard: true,
+ show: true
}
Modal.prototype.toggle = function (_relatedTarget) {
@@ -887,7 +829,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
this.escape()
- this.$element.on('click.dismiss.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
+ this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
this.backdrop(function () {
var transition = $.support.transition && that.$element.hasClass('fade')
@@ -896,7 +838,9 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
that.$element.appendTo(document.body) // don't move modals dom position
}
- that.$element.show()
+ that.$element
+ .show()
+ .scrollTop(0)
if (transition) {
that.$element[0].offsetWidth // force reflow
@@ -938,7 +882,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
this.$element
.removeClass('in')
.attr('aria-hidden', true)
- .off('click.dismiss.modal')
+ .off('click.dismiss.bs.modal')
$.support.transition && this.$element.hasClass('fade') ?
this.$element
@@ -982,7 +926,6 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
}
Modal.prototype.backdrop = function (callback) {
- var that = this
var animate = this.$element.hasClass('fade') ? 'fade' : ''
if (this.isShown && this.options.backdrop) {
@@ -991,7 +934,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
.appendTo(document.body)
- this.$element.on('click.dismiss.modal', $.proxy(function (e) {
+ this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
if (e.target !== e.currentTarget) return
this.options.backdrop == 'static'
? this.$element[0].focus.call(this.$element[0])
@@ -1013,7 +956,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
} else if (!this.isShown && this.$backdrop) {
this.$backdrop.removeClass('in')
- $.support.transition && this.$element.hasClass('fade')?
+ $.support.transition && this.$element.hasClass('fade') ?
this.$backdrop
.one($.support.transition.end, callback)
.emulateTransitionEnd(150) :
@@ -1061,9 +1004,9 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
var $this = $(this)
var href = $this.attr('href')
var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
- var option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
+ var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
- e.preventDefault()
+ if ($this.is('a')) e.preventDefault()
$target
.modal(option, this)
@@ -1073,33 +1016,23 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
})
$(document)
- .on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
+ .on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
.on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })
}(jQuery);
/* ========================================================================
- * Bootstrap: tooltip.js v3.0.3
+ * Bootstrap: tooltip.js v3.1.1
* http://getbootstrap.com/javascript/#tooltip
* Inspired by the original jQuery.tipsy by Jason Frame
* ========================================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
-+function ($) { "use strict";
++function ($) {
+ 'use strict';
// TOOLTIP PUBLIC CLASS DEFINITION
// ===============================
@@ -1116,15 +1049,15 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
}
Tooltip.DEFAULTS = {
- animation: true
- , placement: 'top'
- , selector: false
- , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
- , trigger: 'hover focus'
- , title: ''
- , delay: 0
- , html: false
- , container: false
+ animation: true,
+ placement: 'top',
+ selector: false,
+ template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
+ trigger: 'hover focus',
+ title: '',
+ delay: 0,
+ html: false,
+ container: false
}
Tooltip.prototype.init = function (type, element, options) {
@@ -1141,8 +1074,8 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
if (trigger == 'click') {
this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
} else if (trigger != 'manual') {
- var eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
- var eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
+ var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'
+ var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
@@ -1163,8 +1096,8 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
if (options.delay && typeof options.delay == 'number') {
options.delay = {
- show: options.delay
- , hide: options.delay
+ show: options.delay,
+ hide: options.delay
}
}
@@ -1213,12 +1146,13 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
}
Tooltip.prototype.show = function () {
- var e = $.Event('show.bs.'+ this.type)
+ var e = $.Event('show.bs.' + this.type)
if (this.hasContent() && this.enabled) {
this.$element.trigger(e)
if (e.isDefaultPrevented()) return
+ var that = this;
var $tip = this.tip()
@@ -1268,11 +1202,21 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
this.applyPlacement(calculatedOffset, placement)
- this.$element.trigger('shown.bs.' + this.type)
+ this.hoverState = null
+
+ var complete = function() {
+ that.$element.trigger('shown.bs.' + that.type)
+ }
+
+ $.support.transition && this.$tip.hasClass('fade') ?
+ $tip
+ .one($.support.transition.end, complete)
+ .emulateTransitionEnd(150) :
+ complete()
}
}
- Tooltip.prototype.applyPlacement = function(offset, placement) {
+ Tooltip.prototype.applyPlacement = function (offset, placement) {
var replace
var $tip = this.tip()
var width = $tip[0].offsetWidth
@@ -1289,9 +1233,18 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
offset.top = offset.top + marginTop
offset.left = offset.left + marginLeft
- $tip
- .offset(offset)
- .addClass('in')
+ // $.fn.offset doesn't round pixel values
+ // so we use setOffset directly with our own function B-0
+ $.offset.setOffset($tip[0], $.extend({
+ using: function (props) {
+ $tip.css({
+ top: Math.round(props.top),
+ left: Math.round(props.left)
+ })
+ }
+ }, offset), 0)
+
+ $tip.addClass('in')
// check to see if placing tip in new offset caused the tip to resize itself
var actualWidth = $tip[0].offsetWidth
@@ -1323,8 +1276,8 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
if (replace) $tip.offset(offset)
}
- Tooltip.prototype.replaceArrow = function(delta, dimension, position) {
- this.arrow().css(position, delta ? (50 * (1 - delta / dimension) + "%") : '')
+ Tooltip.prototype.replaceArrow = function (delta, dimension, position) {
+ this.arrow().css(position, delta ? (50 * (1 - delta / dimension) + '%') : '')
}
Tooltip.prototype.setContent = function () {
@@ -1342,6 +1295,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
function complete() {
if (that.hoverState != 'in') $tip.detach()
+ that.$element.trigger('hidden.bs.' + that.type)
}
this.$element.trigger(e)
@@ -1356,7 +1310,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
.emulateTransitionEnd(150) :
complete()
- this.$element.trigger('hidden.bs.' + this.type)
+ this.hoverState = null
return this
}
@@ -1375,8 +1329,8 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
Tooltip.prototype.getPosition = function () {
var el = this.$element[0]
return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
- width: el.offsetWidth
- , height: el.offsetHeight
+ width: el.offsetWidth,
+ height: el.offsetHeight
}, this.$element.offset())
}
@@ -1432,6 +1386,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
}
Tooltip.prototype.destroy = function () {
+ clearTimeout(this.timeout)
this.hide().$element.off('.' + this.type).removeData('bs.' + this.type)
}
@@ -1447,6 +1402,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
var data = $this.data('bs.tooltip')
var options = typeof option == 'object' && option
+ if (!data && option == 'destroy') return
if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
if (typeof option == 'string') data[option]()
})
@@ -1466,26 +1422,16 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
}(jQuery);
/* ========================================================================
- * Bootstrap: popover.js v3.0.3
+ * Bootstrap: popover.js v3.1.1
* http://getbootstrap.com/javascript/#popovers
* ========================================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
-+function ($) { "use strict";
++function ($) {
+ 'use strict';
// POPOVER PUBLIC CLASS DEFINITION
// ===============================
@@ -1496,11 +1442,11 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
- Popover.DEFAULTS = $.extend({} , $.fn.tooltip.Constructor.DEFAULTS, {
- placement: 'right'
- , trigger: 'click'
- , content: ''
- , template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
+ Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
+ placement: 'right',
+ trigger: 'click',
+ content: '',
+ template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
})
@@ -1521,7 +1467,9 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
var content = this.getContent()
$tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
- $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)
+ $tip.find('.popover-content')[ // we use append for html objects to maintain js events
+ this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
+ ](content)
$tip.removeClass('fade top bottom left right in')
@@ -1565,6 +1513,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
var data = $this.data('bs.popover')
var options = typeof option == 'object' && option
+ if (!data && option == 'destroy') return
if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
if (typeof option == 'string') data[option]()
})
@@ -1584,26 +1533,16 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
}(jQuery);
/* ========================================================================
- * Bootstrap: scrollspy.js v3.0.3
+ * Bootstrap: scrollspy.js v3.1.1
* http://getbootstrap.com/javascript/#scrollspy
* ========================================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
-+function ($) { "use strict";
++function ($) {
+ 'use strict';
// SCROLLSPY CLASS DEFINITION
// ==========================
@@ -1643,10 +1582,11 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
.map(function () {
var $el = $(this)
var href = $el.data('target') || $el.attr('href')
- var $href = /^#\w/.test(href) && $(href)
+ var $href = /^#./.test(href) && $(href)
return ($href
&& $href.length
+ && $href.is(':visible')
&& [[ $href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]]) || null
})
.sort(function (a, b) { return a[0] - b[0] })
@@ -1669,6 +1609,10 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
return activeTarget != (i = targets.last()[0]) && this.activate(i)
}
+ if (activeTarget && scrollTop <= offsets[0]) {
+ return activeTarget != (i = targets[0]) && this.activate(i)
+ }
+
for (i = offsets.length; i--;) {
activeTarget != targets[i]
&& scrollTop >= offsets[i]
@@ -1681,18 +1625,18 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
this.activeTarget = target
$(this.selector)
- .parents('.active')
+ .parentsUntil(this.options.target, '.active')
.removeClass('active')
- var selector = this.selector
- + '[data-target="' + target + '"],'
- + this.selector + '[href="' + target + '"]'
+ var selector = this.selector +
+ '[data-target="' + target + '"],' +
+ this.selector + '[href="' + target + '"]'
var active = $(selector)
.parents('li')
.addClass('active')
- if (active.parent('.dropdown-menu').length) {
+ if (active.parent('.dropdown-menu').length) {
active = active
.closest('li.dropdown')
.addClass('active')
@@ -1743,26 +1687,16 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
}(jQuery);
/* ========================================================================
- * Bootstrap: tab.js v3.0.3
+ * Bootstrap: tab.js v3.1.1
* http://getbootstrap.com/javascript/#tabs
* ========================================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
-+function ($) { "use strict";
++function ($) {
+ 'use strict';
// TAB CLASS DEFINITION
// ====================
@@ -1797,8 +1731,8 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
this.activate($this.parent('li'), $ul)
this.activate($target, $target.parent(), function () {
$this.trigger({
- type: 'shown.bs.tab'
- , relatedTarget: previous
+ type: 'shown.bs.tab',
+ relatedTarget: previous
})
})
}
@@ -1879,26 +1813,16 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
}(jQuery);
/* ========================================================================
- * Bootstrap: affix.js v3.0.3
+ * Bootstrap: affix.js v3.1.1
* http://getbootstrap.com/javascript/#affix
* ========================================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
-+function ($) { "use strict";
++function ($) {
+ 'use strict';
// AFFIX CLASS DEFINITION
// ======================
@@ -1909,9 +1833,10 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
.on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
.on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
- this.$element = $(element)
- this.affixed =
- this.unpin = null
+ this.$element = $(element)
+ this.affixed =
+ this.unpin =
+ this.pinnedOffset = null
this.checkPosition()
}
@@ -1922,6 +1847,14 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
offset: 0
}
+ Affix.prototype.getPinnedOffset = function () {
+ if (this.pinnedOffset) return this.pinnedOffset
+ this.$element.removeClass(Affix.RESET).addClass('affix')
+ var scrollTop = this.$window.scrollTop()
+ var position = this.$element.offset()
+ return (this.pinnedOffset = position.top - scrollTop)
+ }
+
Affix.prototype.checkPositionWithEventLoop = function () {
setTimeout($.proxy(this.checkPosition, this), 1)
}
@@ -1936,9 +1869,11 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
var offsetTop = offset.top
var offsetBottom = offset.bottom
+ if (this.affixed == 'top') position.top += scrollTop
+
if (typeof offset != 'object') offsetBottom = offsetTop = offset
- if (typeof offsetTop == 'function') offsetTop = offset.top()
- if (typeof offsetBottom == 'function') offsetBottom = offset.bottom()
+ if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
+ if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
var affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ? false :
offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ? 'bottom' :
@@ -1947,13 +1882,23 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
if (this.affixed === affix) return
if (this.unpin) this.$element.css('top', '')
+ var affixType = 'affix' + (affix ? '-' + affix : '')
+ var e = $.Event(affixType + '.bs.affix')
+
+ this.$element.trigger(e)
+
+ if (e.isDefaultPrevented()) return
+
this.affixed = affix
- this.unpin = affix == 'bottom' ? position.top - scrollTop : null
+ this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
- this.$element.removeClass(Affix.RESET).addClass('affix' + (affix ? '-' + affix : ''))
+ this.$element
+ .removeClass(Affix.RESET)
+ .addClass(affixType)
+ .trigger($.Event(affixType.replace('affix', 'affixed')))
if (affix == 'bottom') {
- this.$element.offset({ top: document.body.offsetHeight - offsetBottom - this.$element.height() })
+ this.$element.offset({ top: scrollHeight - offsetBottom - this.$element.height() })
}
}
diff --git a/library/bootstrap/js/bootstrap.min.js b/library/bootstrap/js/bootstrap.min.js
index 1a6258efc..b04a0e82f 100644
--- a/library/bootstrap/js/bootstrap.min.js
+++ b/library/bootstrap/js/bootstrap.min.js
@@ -1,7 +1,6 @@
/*!
- * Bootstrap v3.0.3 (http://getbootstrap.com)
- * Copyright 2013 Twitter, Inc.
- * Licensed under http://www.apache.org/licenses/LICENSE-2.0
+ * Bootstrap v3.1.1 (http://getbootstrap.com)
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
-
-if("undefined"==typeof jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]'),b=!0;if(a.length){var c=this.$element.find("input");"radio"===c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?b=!1:a.find(".active").removeClass("active")),b&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}b&&this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown"),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=a("[role=menu] li:not(.divider):visible a",f);if(h.length){var i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i<h.length-1&&i++,~i||(i=0),h.eq(i).focus()}}}};var g=a.fn.dropdown;a.fn.dropdown=function(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new f(this)),"string"==typeof b&&d[b].call(c)})},a.fn.dropdown.Constructor=f,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=g,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",e,f.prototype.toggle).on("keydown.bs.dropdown.data-api",e+", [role=menu]",f.prototype.keydown)}(jQuery),+function(a){"use strict";var b=function(b,c){this.options=c,this.$element=a(b),this.$backdrop=this.isShown=null,this.options.remote&&this.$element.load(this.options.remote)};b.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},b.prototype.toggle=function(a){return this[this.isShown?"hide":"show"](a)},b.prototype.show=function(b){var c=this,d=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.$element.on("click.dismiss.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass("fade");c.$element.parent().length||c.$element.appendTo(document.body),c.$element.show(),d&&c.$element[0].offsetWidth,c.$element.addClass("in").attr("aria-hidden",!1),c.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:b});d?c.$element.find(".modal-dialog").one(a.support.transition.end,function(){c.$element.focus().trigger(e)}).emulateTransitionEnd(300):c.$element.focus().trigger(e)}))},b.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one(a.support.transition.end,a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},b.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.focus()},this))},b.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")},b.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.removeBackdrop(),a.$element.trigger("hidden.bs.modal")})},b.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},b.prototype.backdrop=function(b){var c=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var d=a.support.transition&&c;if(this.$backdrop=a('<div class="modal-backdrop '+c+'" />').appendTo(document.body),this.$element.on("click.dismiss.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),"object"==typeof c&&c);f||e.data("bs.modal",f=new b(this,g)),"string"==typeof c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focus",i="hover"==g?"mouseleave":"blur";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show),void 0):c.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide),void 0):c.hide()},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this.tip();this.setContent(),this.options.animation&&c.addClass("fade");var d="function"==typeof this.options.placement?this.options.placement.call(this,c[0],this.$element[0]):this.options.placement,e=/\s?auto?\s?/i,f=e.test(d);f&&(d=d.replace(e,"")||"top"),c.detach().css({top:0,left:0,display:"block"}).addClass(d),this.options.container?c.appendTo(this.options.container):c.insertAfter(this.$element);var g=this.getPosition(),h=c[0].offsetWidth,i=c[0].offsetHeight;if(f){var j=this.$element.parent(),k=d,l=document.documentElement.scrollTop||document.body.scrollTop,m="body"==this.options.container?window.innerWidth:j.outerWidth(),n="body"==this.options.container?window.innerHeight:j.outerHeight(),o="body"==this.options.container?0:j.offset().left;d="bottom"==d&&g.top+g.height+i-l>n?"top":"top"==d&&g.top-l-i<0?"bottom":"right"==d&&g.right+h>m?"left":"left"==d&&g.left-h<o?"right":d,c.removeClass(k).addClass(d)}var p=this.getCalculatedOffset(d,g,h,i);this.applyPlacement(p,d),this.$element.trigger("shown.bs."+this.type)}},b.prototype.applyPlacement=function(a,b){var c,d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),a.top=a.top+g,a.left=a.left+h,d.offset(a).addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;if("top"==b&&j!=f&&(c=!0,a.top=a.top+f-j),/bottom|top/.test(b)){var k=0;a.left<0&&(k=-2*a.left,a.left=0,d.offset(a),i=d[0].offsetWidth,j=d[0].offsetHeight),this.replaceArrow(k-e+i,i,"left")}else this.replaceArrow(j-f,j,"top");c&&d.offset(a)},b.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},b.prototype.hide=function(){function b(){"in"!=c.hoverState&&d.detach()}var c=this,d=this.tip(),e=a.Event("hide.bs."+this.type);return this.$element.trigger(e),e.isDefaultPrevented()?void 0:(d.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d.one(a.support.transition.end,b).emulateTransitionEnd(150):b(),this.$element.trigger("hidden.bs."+this.type),this)},b.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},b.prototype.hasContent=function(){return this.getTitle()},b.prototype.getPosition=function(){var b=this.$element[0];return a.extend({},"function"==typeof b.getBoundingClientRect?b.getBoundingClientRect():{width:b.offsetWidth,height:b.offsetHeight},this.$element.offset())},b.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},b.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},b.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},b.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},b.prototype.enable=function(){this.enabled=!0},b.prototype.disable=function(){this.enabled=!1},b.prototype.toggleEnabled=function(){this.enabled=!this.enabled},b.prototype.toggle=function(b){var c=b?a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type):this;c.tip().hasClass("in")?c.leave(c):c.enter(c)},b.prototype.destroy=function(){this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var c=a.fn.tooltip;a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof c&&c;e||d.data("bs.tooltip",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=c,this}}(jQuery),+function(a){"use strict";var b=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");b.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery); \ No newline at end of file
+if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.isLoading=!1};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",f.resetText||d.data("resetText",d[e]()),d[e](f[b]||this.options[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},b.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!1;var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});return this.$element.trigger(j),j.isDefaultPrevented()?void 0:(this.sliding=!0,f&&this.pause(),this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")),f&&this.cycle(),this)};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("collapse in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);!e&&f.toggle&&"show"==c&&(c=!c),e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(b){a(d).remove(),a(e).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown",h),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=" li:not(.divider):visible a",i=f.find("[role=menu]"+h+", [role=listbox]"+h);if(i.length){var j=i.index(i.filter(":focus"));38==b.keyCode&&j>0&&j--,40==b.keyCode&&j<i.length-1&&j++,~j||(j=0),i.eq(j).focus()}}}};var g=a.fn.dropdown;a.fn.dropdown=function(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new f(this)),"string"==typeof b&&d[b].call(c)})},a.fn.dropdown.Constructor=f,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=g,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",e,f.prototype.toggle).on("keydown.bs.dropdown.data-api",e+", [role=menu], [role=listbox]",f.prototype.keydown)}(jQuery),+function(a){"use strict";var b=function(b,c){this.options=c,this.$element=a(b),this.$backdrop=this.isShown=null,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};b.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},b.prototype.toggle=function(a){return this[this.isShown?"hide":"show"](a)},b.prototype.show=function(b){var c=this,d=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass("fade");c.$element.parent().length||c.$element.appendTo(document.body),c.$element.show().scrollTop(0),d&&c.$element[0].offsetWidth,c.$element.addClass("in").attr("aria-hidden",!1),c.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:b});d?c.$element.find(".modal-dialog").one(a.support.transition.end,function(){c.$element.focus().trigger(e)}).emulateTransitionEnd(300):c.$element.focus().trigger(e)}))},b.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one(a.support.transition.end,a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},b.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.focus()},this))},b.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")},b.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.removeBackdrop(),a.$element.trigger("hidden.bs.modal")})},b.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},b.prototype.backdrop=function(b){var c=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var d=a.support.transition&&c;if(this.$backdrop=a('<div class="modal-backdrop '+c+'" />').appendTo(document.body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),"object"==typeof c&&c);f||e.data("bs.modal",f=new b(this,g)),"string"==typeof c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());c.is("a")&&b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this,d=this.tip();this.setContent(),this.options.animation&&d.addClass("fade");var e="function"==typeof this.options.placement?this.options.placement.call(this,d[0],this.$element[0]):this.options.placement,f=/\s?auto?\s?/i,g=f.test(e);g&&(e=e.replace(f,"")||"top"),d.detach().css({top:0,left:0,display:"block"}).addClass(e),this.options.container?d.appendTo(this.options.container):d.insertAfter(this.$element);var h=this.getPosition(),i=d[0].offsetWidth,j=d[0].offsetHeight;if(g){var k=this.$element.parent(),l=e,m=document.documentElement.scrollTop||document.body.scrollTop,n="body"==this.options.container?window.innerWidth:k.outerWidth(),o="body"==this.options.container?window.innerHeight:k.outerHeight(),p="body"==this.options.container?0:k.offset().left;e="bottom"==e&&h.top+h.height+j-m>o?"top":"top"==e&&h.top-m-j<0?"bottom":"right"==e&&h.right+i>n?"left":"left"==e&&h.left-i<p?"right":e,d.removeClass(l).addClass(e)}var q=this.getCalculatedOffset(e,h,i,j);this.applyPlacement(q,e),this.hoverState=null;var r=function(){c.$element.trigger("shown.bs."+c.type)};a.support.transition&&this.$tip.hasClass("fade")?d.one(a.support.transition.end,r).emulateTransitionEnd(150):r()}},b.prototype.applyPlacement=function(b,c){var d,e=this.tip(),f=e[0].offsetWidth,g=e[0].offsetHeight,h=parseInt(e.css("margin-top"),10),i=parseInt(e.css("margin-left"),10);isNaN(h)&&(h=0),isNaN(i)&&(i=0),b.top=b.top+h,b.left=b.left+i,a.offset.setOffset(e[0],a.extend({using:function(a){e.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),e.addClass("in");var j=e[0].offsetWidth,k=e[0].offsetHeight;if("top"==c&&k!=g&&(d=!0,b.top=b.top+g-k),/bottom|top/.test(c)){var l=0;b.left<0&&(l=-2*b.left,b.left=0,e.offset(b),j=e[0].offsetWidth,k=e[0].offsetHeight),this.replaceArrow(l-f+j,j,"left")}else this.replaceArrow(k-g,k,"top");d&&e.offset(b)},b.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},b.prototype.hide=function(){function b(){"in"!=c.hoverState&&d.detach(),c.$element.trigger("hidden.bs."+c.type)}var c=this,d=this.tip(),e=a.Event("hide.bs."+this.type);return this.$element.trigger(e),e.isDefaultPrevented()?void 0:(d.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d.one(a.support.transition.end,b).emulateTransitionEnd(150):b(),this.hoverState=null,this)},b.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},b.prototype.hasContent=function(){return this.getTitle()},b.prototype.getPosition=function(){var b=this.$element[0];return a.extend({},"function"==typeof b.getBoundingClientRect?b.getBoundingClientRect():{width:b.offsetWidth,height:b.offsetHeight},this.$element.offset())},b.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},b.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},b.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},b.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},b.prototype.enable=function(){this.enabled=!0},b.prototype.disable=function(){this.enabled=!1},b.prototype.toggleEnabled=function(){this.enabled=!this.enabled},b.prototype.toggle=function(b){var c=b?a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type):this;c.tip().hasClass("in")?c.leave(c):c.enter(c)},b.prototype.destroy=function(){clearTimeout(this.timeout),this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var c=a.fn.tooltip;a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof c&&c;(e||"destroy"!=c)&&(e||d.data("bs.tooltip",e=new b(this,f)),"string"==typeof c&&e[c]())})},a.fn.tooltip.Constructor=b,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=c,this}}(jQuery),+function(a){"use strict";var b=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");b.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;(e||"destroy"!=c)&&(e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]())})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(a(c).is("body")?window:c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);{var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})}},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(b.RESET).addClass("affix");var a=this.$window.scrollTop(),c=this.$element.offset();return this.pinnedOffset=c.top-a},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"top"==this.affixed&&(e.top+=d),"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(b.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:c-h-this.$element.height()}))}}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery); \ No newline at end of file
diff --git a/library/jqupload/.gitignore b/library/jqupload/.gitignore
new file mode 100644
index 000000000..29a41a8c4
--- /dev/null
+++ b/library/jqupload/.gitignore
@@ -0,0 +1,3 @@
+.DS_Store
+*.pyc
+node_modules
diff --git a/library/jqupload/.jshintrc b/library/jqupload/.jshintrc
new file mode 100644
index 000000000..4ad82e664
--- /dev/null
+++ b/library/jqupload/.jshintrc
@@ -0,0 +1,81 @@
+{
+ "bitwise" : true, // true: Prohibit bitwise operators (&, |, ^, etc.)
+ "camelcase" : true, // true: Identifiers must be in camelCase
+ "curly" : true, // true: Require {} for every new block or scope
+ "eqeqeq" : true, // true: Require triple equals (===) for comparison
+ "forin" : true, // true: Require filtering for..in loops with obj.hasOwnProperty()
+ "immed" : true, // true: Require immediate invocations to be wrapped in parens
+ // e.g. `(function () { } ());`
+ "indent" : 4, // {int} Number of spaces to use for indentation
+ "latedef" : true, // true: Require variables/functions to be defined before being used
+ "newcap" : true, // true: Require capitalization of all constructor functions e.g. `new F()`
+ "noarg" : true, // true: Prohibit use of `arguments.caller` and `arguments.callee`
+ "noempty" : true, // true: Prohibit use of empty blocks
+ "nonew" : true, // true: Prohibit use of constructors for side-effects (without assignment)
+ "plusplus" : false, // true: Prohibit use of `++` & `--`
+ "quotmark" : "single", // Quotation mark consistency:
+ // false : do nothing (default)
+ // true : ensure whatever is used is consistent
+ // "single" : require single quotes
+ // "double" : require double quotes
+ "undef" : true, // true: Require all non-global variables to be declared (prevents global leaks)
+ "unused" : true, // true: Require all defined variables be used
+ "strict" : true, // true: Requires all functions run in ES5 Strict Mode
+ "trailing" : true, // true: Prohibit trailing whitespaces
+ "maxparams" : false, // {int} Max number of formal params allowed per function
+ "maxdepth" : false, // {int} Max depth of nested blocks (within functions)
+ "maxstatements" : false, // {int} Max number statements per function
+ "maxcomplexity" : false, // {int} Max cyclomatic complexity per function
+ "maxlen" : false, // {int} Max number of characters per line
+
+ // Relaxing
+ "asi" : false, // true: Tolerate Automatic Semicolon Insertion (no semicolons)
+ "boss" : false, // true: Tolerate assignments where comparisons would be expected
+ "debug" : false, // true: Allow debugger statements e.g. browser breakpoints.
+ "eqnull" : false, // true: Tolerate use of `== null`
+ "es5" : false, // true: Allow ES5 syntax (ex: getters and setters)
+ "esnext" : false, // true: Allow ES.next (ES6) syntax (ex: `const`)
+ "moz" : false, // true: Allow Mozilla specific syntax (extends and overrides esnext features)
+ // (ex: `for each`, multiple try/catch, function expression…)
+ "evil" : false, // true: Tolerate use of `eval` and `new Function()`
+ "expr" : false, // true: Tolerate `ExpressionStatement` as Programs
+ "funcscope" : false, // true: Tolerate defining variables inside control statements"
+ "globalstrict" : false, // true: Allow global "use strict" (also enables 'strict')
+ "iterator" : false, // true: Tolerate using the `__iterator__` property
+ "lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block
+ "laxbreak" : false, // true: Tolerate possibly unsafe line breakings
+ "laxcomma" : false, // true: Tolerate comma-first style coding
+ "loopfunc" : false, // true: Tolerate functions being defined in loops
+ "multistr" : false, // true: Tolerate multi-line strings
+ "proto" : false, // true: Tolerate using the `__proto__` property
+ "scripturl" : false, // true: Tolerate script-targeted URLs
+ "smarttabs" : false, // true: Tolerate mixed tabs/spaces when used for alignment
+ "shadow" : false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;`
+ "sub" : false, // true: Tolerate using `[]` notation when it can still be expressed in dot notation
+ "supernew" : false, // true: Tolerate `new function () { ... };` and `new Object;`
+ "validthis" : false, // true: Tolerate using this in a non-constructor function
+
+ // Environments
+ "browser" : false, // Web Browser (window, document, etc)
+ "couch" : false, // CouchDB
+ "devel" : false, // Development/debugging (alert, confirm, etc)
+ "dojo" : false, // Dojo Toolkit
+ "jquery" : false, // jQuery
+ "mootools" : false, // MooTools
+ "node" : false, // Node.js
+ "nonstandard" : false, // Widely adopted globals (escape, unescape, etc)
+ "prototypejs" : false, // Prototype and Scriptaculous
+ "rhino" : false, // Rhino
+ "worker" : false, // Web Workers
+ "wsh" : false, // Windows Scripting Host
+ "yui" : false, // Yahoo User Interface
+
+ // Legacy
+ "nomen" : true, // true: Prohibit dangling `_` in variables
+ "onevar" : true, // true: Allow only one `var` statement per function
+ "passfail" : false, // true: Stop on first error
+ "white" : true, // true: Check against strict whitespace and indentation rules
+
+ // Custom Globals
+ "globals" : {} // additional predefined global variables
+}
diff --git a/library/jqupload/CONTRIBUTING.md b/library/jqupload/CONTRIBUTING.md
new file mode 100644
index 000000000..2326ad031
--- /dev/null
+++ b/library/jqupload/CONTRIBUTING.md
@@ -0,0 +1,42 @@
+# Issue Guidelines
+
+The issues tracker should only be used for **bugs** or **feature requests**.
+
+Please post **support requests** and **general discussions** about this project to the [support forum](https://groups.google.com/d/forum/jquery-fileupload).
+
+## Bugs
+
+Please follow these guidelines before reporting a bug:
+
+1. **Update to the latest version** &mdash; Check if you can reproduce the issue with the latest version from the `master` branch.
+
+2. **Use the GitHub issue search** &mdash; check if the issue has already been reported. If it has been, please comment on the existing issue.
+
+3. **Isolate the demonstrable problem** &mdash; Try to reproduce the problem with the [Demo](http://blueimp.github.io/jQuery-File-Upload/) or with a reduced test case that includes the least amount of code necessary to reproduce the problem.
+
+4. **Provide a means to reproduce the problem** &mdash; Please provide as much details as possible, e.g. server information, browser and operating system versions, steps to reproduce the problem. If possible, provide a link to your reduced test case, e.g. via [JSFiddle](http://jsfiddle.net/).
+
+
+## Feature requests
+
+Please follow the bug guidelines above for feature requests, i.e. update to the latest version and search for exising issues before posting a new request.
+
+Generally, feature requests might be accepted if the implementation would benefit a broader use case or the project could be considered incomplete without that feature.
+
+If you need help integrating this project into another framework, please post your request to the [support forum](https://groups.google.com/d/forum/jquery-fileupload).
+
+## Pull requests
+
+[Pull requests](https://help.github.com/articles/using-pull-requests) are welcome and the preferred way of accepting code contributions.
+
+However, if you add a server-side upload handler implementation for another framework, please continue to maintain this version in your own fork without sending a pull request. You are welcome to add a link and possibly documentation about your implementation to the [Wiki](https://github.com/blueimp/jQuery-File-Upload/wiki).
+
+Please follow these guidelines before sending a pull request:
+
+1. Update your fork to the latest upstream version.
+
+2. Follow the coding conventions of the original repository. Changes to one of the JavaScript source files are required to pass the [JSLint](http://jslint.com/) validation tool.
+
+3. Keep your commits as atomar as possible, i.e. create a new commit for every single bug fix or feature added.
+
+4. Always add meaningfull commit messages.
diff --git a/library/jqupload/Gruntfile.js b/library/jqupload/Gruntfile.js
new file mode 100644
index 000000000..dcdb5d57a
--- /dev/null
+++ b/library/jqupload/Gruntfile.js
@@ -0,0 +1,37 @@
+/*
+ * jQuery File Upload Gruntfile
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+/*global module */
+
+module.exports = function (grunt) {
+ 'use strict';
+
+ grunt.initConfig({
+ jshint: {
+ options: {
+ jshintrc: '.jshintrc'
+ },
+ all: [
+ 'Gruntfile.js',
+ 'js/cors/*.js',
+ 'js/*.js',
+ 'server/node/server.js',
+ 'test/test.js'
+ ]
+ }
+ });
+
+ grunt.loadNpmTasks('grunt-contrib-jshint');
+ grunt.loadNpmTasks('grunt-bump-build-git');
+ grunt.registerTask('test', ['jshint']);
+ grunt.registerTask('default', ['test']);
+
+};
diff --git a/library/jqupload/README.md b/library/jqupload/README.md
new file mode 100644
index 000000000..726e6b342
--- /dev/null
+++ b/library/jqupload/README.md
@@ -0,0 +1,123 @@
+# jQuery File Upload Plugin
+
+## Demo
+[Demo File Upload](http://blueimp.github.io/jQuery-File-Upload/)
+
+## Description
+File Upload widget with multiple file selection, drag&amp;drop support, progress bars, validation and preview images, audio and video for jQuery.
+Supports cross-domain, chunked and resumable file uploads and client-side image resizing. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.
+
+## Setup
+* [How to setup the plugin on your website](https://github.com/blueimp/jQuery-File-Upload/wiki/Setup)
+* [How to use only the basic plugin (minimal setup guide).](https://github.com/blueimp/jQuery-File-Upload/wiki/Basic-plugin)
+
+## Support
+
+* **[Support Forum](https://groups.google.com/d/forum/jquery-fileupload)**
+**Support requests** and **general discussions** about the File Upload plugin can be posted to the official
+[Support Forum](https://groups.google.com/d/forum/jquery-fileupload).
+If your question is not directly related to the File Upload plugin, you might have a better chance to get a reply by posting to [Stack Overflow](http://stackoverflow.com/questions/tagged/blueimp+jquery+file-upload).
+
+* Bugs and Feature requests
+**Bugs** and **Feature requests** can be reported using the [issues tracker](https://github.com/blueimp/jQuery-File-Upload/issues).
+Please read the [issue guidelines](https://github.com/blueimp/jQuery-File-Upload/blob/master/CONTRIBUTING.md) before posting.
+
+## Features
+* **Multiple file upload:**
+ Allows to select multiple files at once and upload them simultaneously.
+* **Drag & Drop support:**
+ Allows to upload files by dragging them from your desktop or filemanager and dropping them on your browser window.
+* **Upload progress bar:**
+ Shows a progress bar indicating the upload progress for individual files and for all uploads combined.
+* **Cancelable uploads:**
+ Individual file uploads can be canceled to stop the upload progress.
+* **Resumable uploads:**
+ Aborted uploads can be resumed with browsers supporting the Blob API.
+* **Chunked uploads:**
+ Large files can be uploaded in smaller chunks with browsers supporting the Blob API.
+* **Client-side image resizing:**
+ Images can be automatically resized on client-side with browsers supporting the required JS APIs.
+* **Preview images, audio and video:**
+ A preview of image, audio and video files can be displayed before uploading with browsers supporting the required APIs.
+* **No browser plugins (e.g. Adobe Flash) required:**
+ The implementation is based on open standards like HTML5 and JavaScript and requires no additional browser plugins.
+* **Graceful fallback for legacy browsers:**
+ Uploads files via XMLHttpRequests if supported and uses iframes as fallback for legacy browsers.
+* **HTML file upload form fallback:**
+ Allows progressive enhancement by using a standard HTML file upload form as widget element.
+* **Cross-site file uploads:**
+ Supports uploading files to a different domain with cross-site XMLHttpRequests or iframe redirects.
+* **Multiple plugin instances:**
+ Allows to use multiple plugin instances on the same webpage.
+* **Customizable and extensible:**
+ Provides an API to set individual options and define callBack methods for various upload events.
+* **Multipart and file contents stream uploads:**
+ Files can be uploaded as standard "multipart/form-data" or file contents stream (HTTP PUT file upload).
+* **Compatible with any server-side application platform:**
+ Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.
+
+## Requirements
+
+### Mandatory requirements
+* [jQuery](http://jquery.com/) v. 1.6+
+* [jQuery UI widget factory](http://api.jqueryui.com/jQuery.widget/) v. 1.9+ (included)
+* [jQuery Iframe Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js) (included)
+
+The jQuery UI widget factory is a requirement for the basic File Upload plugin, but very lightweight without any other dependencies from the jQuery UI suite.
+
+The jQuery Iframe Transport is required for [browsers without XHR file upload support](https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support).
+
+### Optional requirements
+* [JavaScript Templates engine](https://github.com/blueimp/JavaScript-Templates) v. 2.5.3+
+* [JavaScript Load Image library](https://github.com/blueimp/JavaScript-Load-Image) v. 1.11.0+
+* [JavaScript Canvas to Blob polyfill](https://github.com/blueimp/JavaScript-Canvas-to-Blob) v. 2.1.0+
+* [blueimp Gallery](https://github.com/blueimp/Gallery) v. 2.12.0+
+* [Bootstrap CSS framework](http://getbootstrap.com/) v. 3.0.0+
+* [Glyphicons](http://glyphicons.com/)
+
+The JavaScript Templates engine is used to render the selected and uploaded files for the Basic Plus UI and jQuery UI versions.
+
+The JavaScript Load Image library and JavaScript Canvas to Blob polyfill are required for the image previews and resizing functionality.
+
+The blueimp Gallery is used to display the uploaded images in a lightbox.
+
+The user interface of all versions except the jQuery UI version is built with Twitter's [Bootstrap](http://getbootstrap.com/) framework and icons from [Glyphicons](http://glyphicons.com/).
+
+### Cross-domain requirements
+[Cross-domain File Uploads](https://github.com/blueimp/jQuery-File-Upload/wiki/Cross-domain-uploads) using the [Iframe Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js) require a redirect back to the origin server to retrieve the upload results. The [example implementation](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/main.js) makes use of [result.html](https://github.com/blueimp/jQuery-File-Upload/blob/master/cors/result.html) as a static redirect page for the origin server.
+
+The repository also includes the [jQuery XDomainRequest Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/cors/jquery.xdr-transport.js), which enables limited cross-domain AJAX requests in Microsoft Internet Explorer 8 and 9 (IE 10 supports cross-domain XHR requests).
+The XDomainRequest object allows GET and POST requests only and doesn't support file uploads. It is used on the [Demo](http://blueimp.github.io/jQuery-File-Upload/) to delete uploaded files from the cross-domain demo file upload service.
+
+## Browsers
+
+### Desktop browsers
+The File Upload plugin is regularly tested with the latest browser versions and supports the following minimal versions:
+
+* Google Chrome
+* Apple Safari 4.0+
+* Mozilla Firefox 3.0+
+* Opera 11.0+
+* Microsoft Internet Explorer 6.0+
+
+### Mobile browsers
+The File Upload plugin has been tested with and supports the following mobile browsers:
+
+* Apple Safari on iOS 6.0+
+* Google Chrome on iOS 6.0+
+* Google Chrome on Android 4.0+
+* Default Browser on Android 2.3+
+* Opera Mobile 12.0+
+
+### Supported features
+For a detailed overview of the features supported by each browser version please have a look at the [Extended browser support information](https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support).
+
+## License
+Released under the [MIT license](http://www.opensource.org/licenses/MIT).
+
+## Donations
+jQuery File Upload is free software, but you can donate to support the developer, Sebastian Tschan:
+
+Flattr: [![Flattr](https://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/thing/286433/jQuery-File-Upload-Plugin)
+
+PayPal: [![PayPal](https://www.paypalobjects.com/WEBSCR-640-20110429-1/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=PYWYSYP77KL54)
diff --git a/library/jqupload/angularjs.html b/library/jqupload/angularjs.html
new file mode 100644
index 000000000..d578cfa57
--- /dev/null
+++ b/library/jqupload/angularjs.html
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery File Upload Plugin AngularJS Demo 2.1.2
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+-->
+<html lang="en">
+<head>
+<!-- Force latest IE rendering engine or ChromeFrame if installed -->
+<!--[if IE]>
+<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+<![endif]-->
+<meta charset="utf-8">
+<title>jQuery File Upload Demo - AngularJS version</title>
+<meta name="description" content="File Upload widget with multiple file selection, drag&amp;drop support, progress bars, validation and preview images, audio and video for AngularJS. Supports cross-domain, chunked and resumable file uploads and client-side image resizing. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<!-- Bootstrap styles -->
+<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">
+<!-- Generic page styles -->
+<link rel="stylesheet" href="css/style.css">
+<!-- blueimp Gallery styles -->
+<link rel="stylesheet" href="http://blueimp.github.io/Gallery/css/blueimp-gallery.min.css">
+<!-- CSS to style the file input field as button and adjust the Bootstrap progress bars -->
+<link rel="stylesheet" href="css/jquery.fileupload.css">
+<link rel="stylesheet" href="css/jquery.fileupload-ui.css">
+<!-- CSS adjustments for browsers with JavaScript disabled -->
+<noscript><link rel="stylesheet" href="css/jquery.fileupload-noscript.css"></noscript>
+<noscript><link rel="stylesheet" href="css/jquery.fileupload-ui-noscript.css"></noscript>
+<style>
+/* Hide Angular JS elements before initializing */
+.ng-cloak {
+ display: none;
+}
+</style>
+</head>
+<body>
+<div class="navbar navbar-default navbar-fixed-top">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-fixed-top .navbar-collapse">
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="https://github.com/blueimp/jQuery-File-Upload">jQuery File Upload</a>
+ </div>
+ <div class="navbar-collapse collapse">
+ <ul class="nav navbar-nav">
+ <li><a href="https://github.com/blueimp/jQuery-File-Upload/tags">Download</a></li>
+ <li><a href="https://github.com/blueimp/jQuery-File-Upload">Source Code</a></li>
+ <li><a href="https://github.com/blueimp/jQuery-File-Upload/wiki">Documentation</a></li>
+ <li><a href="https://blueimp.net">&copy; Sebastian Tschan</a></li>
+ </ul>
+ </div>
+ </div>
+</div>
+<div class="container">
+ <h1>jQuery File Upload Demo</h1>
+ <h2 class="lead">AngularJS version</h2>
+ <ul class="nav nav-tabs">
+ <li><a href="basic.html">Basic</a></li>
+ <li><a href="basic-plus.html">Basic Plus</a></li>
+ <li><a href="index.html">Basic Plus UI</a></li>
+ <li class="active"><a href="angularjs.html">AngularJS</a></li>
+ <li><a href="jquery-ui.html">jQuery UI</a></li>
+ </ul>
+ <br>
+ <blockquote>
+ <p>File Upload widget with multiple file selection, drag&amp;drop support, progress bars, validation and preview images, audio and video for AngularJS.<br>
+ Supports cross-domain, chunked and resumable file uploads and client-side image resizing.<br>
+ Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.</p>
+ </blockquote>
+ <br>
+ <!-- The file upload form used as target for the file upload widget -->
+ <form id="fileupload" action="//jquery-file-upload.appspot.com/" method="POST" enctype="multipart/form-data" data-ng-app="demo" data-ng-controller="DemoFileUploadController" data-file-upload="options" data-ng-class="{'fileupload-processing': processing() || loadingFiles}">
+ <!-- Redirect browsers with JavaScript disabled to the origin page -->
+ <noscript><input type="hidden" name="redirect" value="http://blueimp.github.io/jQuery-File-Upload/"></noscript>
+ <!-- The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload -->
+ <div class="row fileupload-buttonbar">
+ <div class="col-lg-7">
+ <!-- The fileinput-button span is used to style the file input field as button -->
+ <span class="btn btn-success fileinput-button" ng-class="{disabled: disabled}">
+ <i class="glyphicon glyphicon-plus"></i>
+ <span>Add files...</span>
+ <input type="file" name="files[]" multiple ng-disabled="disabled">
+ </span>
+ <button type="button" class="btn btn-primary start" data-ng-click="submit()">
+ <i class="glyphicon glyphicon-upload"></i>
+ <span>Start upload</span>
+ </button>
+ <button type="button" class="btn btn-warning cancel" data-ng-click="cancel()">
+ <i class="glyphicon glyphicon-ban-circle"></i>
+ <span>Cancel upload</span>
+ </button>
+ <!-- The global file processing state -->
+ <span class="fileupload-process"></span>
+ </div>
+ <!-- The global progress state -->
+ <div class="col-lg-5 fade" data-ng-class="{in: active()}">
+ <!-- The global progress bar -->
+ <div class="progress progress-striped active" data-file-upload-progress="progress()"><div class="progress-bar progress-bar-success" data-ng-style="{width: num + '%'}"></div></div>
+ <!-- The extended global progress state -->
+ <div class="progress-extended">&nbsp;</div>
+ </div>
+ </div>
+ <!-- The table listing the files available for upload/download -->
+ <table class="table table-striped files ng-cloak">
+ <tr data-ng-repeat="file in queue" data-ng-class="{'processing': file.$processing()}">
+ <td data-ng-switch data-on="!!file.thumbnailUrl">
+ <div class="preview" data-ng-switch-when="true">
+ <a data-ng-href="{{file.url}}" title="{{file.name}}" download="{{file.name}}" data-gallery><img data-ng-src="{{file.thumbnailUrl}}" alt=""></a>
+ </div>
+ <div class="preview" data-ng-switch-default data-file-upload-preview="file"></div>
+ </td>
+ <td>
+ <p class="name" data-ng-switch data-on="!!file.url">
+ <span data-ng-switch-when="true" data-ng-switch data-on="!!file.thumbnailUrl">
+ <a data-ng-switch-when="true" data-ng-href="{{file.url}}" title="{{file.name}}" download="{{file.name}}" data-gallery>{{file.name}}</a>
+ <a data-ng-switch-default data-ng-href="{{file.url}}" title="{{file.name}}" download="{{file.name}}">{{file.name}}</a>
+ </span>
+ <span data-ng-switch-default>{{file.name}}</span>
+ </p>
+ <strong data-ng-show="file.error" class="error text-danger">{{file.error}}</strong>
+ </td>
+ <td>
+ <p class="size">{{file.size | formatFileSize}}</p>
+ <div class="progress progress-striped active fade" data-ng-class="{pending: 'in'}[file.$state()]" data-file-upload-progress="file.$progress()"><div class="progress-bar progress-bar-success" data-ng-style="{width: num + '%'}"></div></div>
+ </td>
+ <td>
+ <button type="button" class="btn btn-primary start" data-ng-click="file.$submit()" data-ng-hide="!file.$submit || options.autoUpload" data-ng-disabled="file.$state() == 'pending' || file.$state() == 'rejected'">
+ <i class="glyphicon glyphicon-upload"></i>
+ <span>Start</span>
+ </button>
+ <button type="button" class="btn btn-warning cancel" data-ng-click="file.$cancel()" data-ng-hide="!file.$cancel">
+ <i class="glyphicon glyphicon-ban-circle"></i>
+ <span>Cancel</span>
+ </button>
+ <button data-ng-controller="FileDestroyController" type="button" class="btn btn-danger destroy" data-ng-click="file.$destroy()" data-ng-hide="!file.$destroy">
+ <i class="glyphicon glyphicon-trash"></i>
+ <span>Delete</span>
+ </button>
+ </td>
+ </tr>
+ </table>
+ </form>
+ <br>
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ <h3 class="panel-title">Demo Notes</h3>
+ </div>
+ <div class="panel-body">
+ <ul>
+ <li>The maximum file size for uploads in this demo is <strong>5 MB</strong> (default file size is unlimited).</li>
+ <li>Only image files (<strong>JPG, GIF, PNG</strong>) are allowed in this demo (by default there is no file type restriction).</li>
+ <li>Uploaded files will be deleted automatically after <strong>5 minutes</strong> (demo setting).</li>
+ <li>You can <strong>drag &amp; drop</strong> files from your desktop on this webpage (see <a href="https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support">Browser support</a>).</li>
+ <li>Please refer to the <a href="https://github.com/blueimp/jQuery-File-Upload">project website</a> and <a href="https://github.com/blueimp/jQuery-File-Upload/wiki">documentation</a> for more information.</li>
+ <li>Built with Twitter's <a href="http://twitter.github.com/bootstrap/">Bootstrap</a> CSS framework and Icons from <a href="http://glyphicons.com/">Glyphicons</a>.</li>
+ </ul>
+ </div>
+ </div>
+</div>
+<!-- The blueimp Gallery widget -->
+<div id="blueimp-gallery" class="blueimp-gallery blueimp-gallery-controls" data-filter=":even">
+ <div class="slides"></div>
+ <h3 class="title"></h3>
+ <a class="prev">‹</a>
+ <a class="next">›</a>
+ <a class="close">×</a>
+ <a class="play-pause"></a>
+ <ol class="indicator"></ol>
+</div>
+<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
+<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.min.js"></script>
+<!-- The jQuery UI widget factory, can be omitted if jQuery UI is already included -->
+<script src="js/vendor/jquery.ui.widget.js"></script>
+<!-- The Load Image plugin is included for the preview images and image resizing functionality -->
+<script src="http://blueimp.github.io/JavaScript-Load-Image/js/load-image.min.js"></script>
+<!-- The Canvas to Blob plugin is included for image resizing functionality -->
+<script src="http://blueimp.github.io/JavaScript-Canvas-to-Blob/js/canvas-to-blob.min.js"></script>
+<!-- Bootstrap JS is not required, but included for the responsive demo navigation -->
+<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
+<!-- blueimp Gallery script -->
+<script src="http://blueimp.github.io/Gallery/js/jquery.blueimp-gallery.min.js"></script>
+<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
+<script src="js/jquery.iframe-transport.js"></script>
+<!-- The basic File Upload plugin -->
+<script src="js/jquery.fileupload.js"></script>
+<!-- The File Upload processing plugin -->
+<script src="js/jquery.fileupload-process.js"></script>
+<!-- The File Upload image preview & resize plugin -->
+<script src="js/jquery.fileupload-image.js"></script>
+<!-- The File Upload audio preview plugin -->
+<script src="js/jquery.fileupload-audio.js"></script>
+<!-- The File Upload video preview plugin -->
+<script src="js/jquery.fileupload-video.js"></script>
+<!-- The File Upload validation plugin -->
+<script src="js/jquery.fileupload-validate.js"></script>
+<!-- The File Upload Angular JS module -->
+<script src="js/jquery.fileupload-angular.js"></script>
+<!-- The main application script -->
+<script src="js/app.js"></script>
+</body>
+</html>
diff --git a/library/jqupload/basic-plus.html b/library/jqupload/basic-plus.html
new file mode 100644
index 000000000..dc90bd768
--- /dev/null
+++ b/library/jqupload/basic-plus.html
@@ -0,0 +1,226 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery File Upload Plugin Basic Plus Demo 1.3.5
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+-->
+<html lang="en">
+<head>
+<!-- Force latest IE rendering engine or ChromeFrame if installed -->
+<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><![endif]-->
+<meta charset="utf-8">
+<title>jQuery File Upload Demo - Basic Plus version</title>
+<meta name="description" content="File Upload widget with multiple file selection, drag&amp;drop support, progress bar, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads. Works with any server-side platform (Google App Engine, PHP, Python, Ruby on Rails, Java, etc.) that supports standard HTML form file uploads.">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<!-- Bootstrap styles -->
+<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">
+<!-- Generic page styles -->
+<link rel="stylesheet" href="css/style.css">
+<!-- CSS to style the file input field as button and adjust the Bootstrap progress bars -->
+<link rel="stylesheet" href="css/jquery.fileupload.css">
+</head>
+<body>
+<div class="navbar navbar-default navbar-fixed-top">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-fixed-top .navbar-collapse">
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="https://github.com/blueimp/jQuery-File-Upload">jQuery File Upload</a>
+ </div>
+ <div class="navbar-collapse collapse">
+ <ul class="nav navbar-nav">
+ <li><a href="https://github.com/blueimp/jQuery-File-Upload/tags">Download</a></li>
+ <li><a href="https://github.com/blueimp/jQuery-File-Upload">Source Code</a></li>
+ <li><a href="https://github.com/blueimp/jQuery-File-Upload/wiki">Documentation</a></li>
+ <li><a href="https://blueimp.net">&copy; Sebastian Tschan</a></li>
+ </ul>
+ </div>
+ </div>
+</div>
+<div class="container">
+ <h1>jQuery File Upload Demo</h1>
+ <h2 class="lead">Basic Plus version</h2>
+ <ul class="nav nav-tabs">
+ <li><a href="basic.html">Basic</a></li>
+ <li class="active"><a href="basic-plus.html">Basic Plus</a></li>
+ <li><a href="index.html">Basic Plus UI</a></li>
+ <li><a href="angularjs.html">AngularJS</a></li>
+ <li><a href="jquery-ui.html">jQuery UI</a></li>
+ </ul>
+ <br>
+ <blockquote>
+ <p>File Upload widget with multiple file selection, drag&amp;drop support, progress bar, validation and preview images, audio and video for jQuery.<br>
+ Supports cross-domain, chunked and resumable file uploads and client-side image resizing.<br>
+ Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.</p>
+ </blockquote>
+ <br>
+ <!-- The fileinput-button span is used to style the file input field as button -->
+ <span class="btn btn-success fileinput-button">
+ <i class="glyphicon glyphicon-plus"></i>
+ <span>Add files...</span>
+ <!-- The file input field used as target for the file upload widget -->
+ <input id="fileupload" type="file" name="files[]" multiple>
+ </span>
+ <br>
+ <br>
+ <!-- The global progress bar -->
+ <div id="progress" class="progress">
+ <div class="progress-bar progress-bar-success"></div>
+ </div>
+ <!-- The container for the uploaded files -->
+ <div id="files" class="files"></div>
+ <br>
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ <h3 class="panel-title">Demo Notes</h3>
+ </div>
+ <div class="panel-body">
+ <ul>
+ <li>The maximum file size for uploads in this demo is <strong>5 MB</strong> (default file size is unlimited).</li>
+ <li>Only image files (<strong>JPG, GIF, PNG</strong>) are allowed in this demo (by default there is no file type restriction).</li>
+ <li>Uploaded files will be deleted automatically after <strong>5 minutes</strong> (demo setting).</li>
+ <li>You can <strong>drag &amp; drop</strong> files from your desktop on this webpage (see <a href="https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support">Browser support</a>).</li>
+ <li>Please refer to the <a href="https://github.com/blueimp/jQuery-File-Upload">project website</a> and <a href="https://github.com/blueimp/jQuery-File-Upload/wiki">documentation</a> for more information.</li>
+ <li>Built with Twitter's <a href="http://twitter.github.com/bootstrap/">Bootstrap</a> CSS framework and Icons from <a href="http://glyphicons.com/">Glyphicons</a>.</li>
+ </ul>
+ </div>
+ </div>
+</div>
+<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
+<!-- The jQuery UI widget factory, can be omitted if jQuery UI is already included -->
+<script src="js/vendor/jquery.ui.widget.js"></script>
+<!-- The Load Image plugin is included for the preview images and image resizing functionality -->
+<script src="http://blueimp.github.io/JavaScript-Load-Image/js/load-image.min.js"></script>
+<!-- The Canvas to Blob plugin is included for image resizing functionality -->
+<script src="http://blueimp.github.io/JavaScript-Canvas-to-Blob/js/canvas-to-blob.min.js"></script>
+<!-- Bootstrap JS is not required, but included for the responsive demo navigation -->
+<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
+<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
+<script src="js/jquery.iframe-transport.js"></script>
+<!-- The basic File Upload plugin -->
+<script src="js/jquery.fileupload.js"></script>
+<!-- The File Upload processing plugin -->
+<script src="js/jquery.fileupload-process.js"></script>
+<!-- The File Upload image preview & resize plugin -->
+<script src="js/jquery.fileupload-image.js"></script>
+<!-- The File Upload audio preview plugin -->
+<script src="js/jquery.fileupload-audio.js"></script>
+<!-- The File Upload video preview plugin -->
+<script src="js/jquery.fileupload-video.js"></script>
+<!-- The File Upload validation plugin -->
+<script src="js/jquery.fileupload-validate.js"></script>
+<script>
+/*jslint unparam: true, regexp: true */
+/*global window, $ */
+$(function () {
+ 'use strict';
+ // Change this to the location of your server-side upload handler:
+ var url = window.location.hostname === 'blueimp.github.io' ?
+ '//jquery-file-upload.appspot.com/' : 'server/php/',
+ uploadButton = $('<button/>')
+ .addClass('btn btn-primary')
+ .prop('disabled', true)
+ .text('Processing...')
+ .on('click', function () {
+ var $this = $(this),
+ data = $this.data();
+ $this
+ .off('click')
+ .text('Abort')
+ .on('click', function () {
+ $this.remove();
+ data.abort();
+ });
+ data.submit().always(function () {
+ $this.remove();
+ });
+ });
+ $('#fileupload').fileupload({
+ url: url,
+ dataType: 'json',
+ autoUpload: false,
+ acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
+ maxFileSize: 5000000, // 5 MB
+ // Enable image resizing, except for Android and Opera,
+ // which actually support image resizing, but fail to
+ // send Blob objects via XHR requests:
+ disableImageResize: /Android(?!.*Chrome)|Opera/
+ .test(window.navigator.userAgent),
+ previewMaxWidth: 100,
+ previewMaxHeight: 100,
+ previewCrop: true
+ }).on('fileuploadadd', function (e, data) {
+ data.context = $('<div/>').appendTo('#files');
+ $.each(data.files, function (index, file) {
+ var node = $('<p/>')
+ .append($('<span/>').text(file.name));
+ if (!index) {
+ node
+ .append('<br>')
+ .append(uploadButton.clone(true).data(data));
+ }
+ node.appendTo(data.context);
+ });
+ }).on('fileuploadprocessalways', function (e, data) {
+ var index = data.index,
+ file = data.files[index],
+ node = $(data.context.children()[index]);
+ if (file.preview) {
+ node
+ .prepend('<br>')
+ .prepend(file.preview);
+ }
+ if (file.error) {
+ node
+ .append('<br>')
+ .append($('<span class="text-danger"/>').text(file.error));
+ }
+ if (index + 1 === data.files.length) {
+ data.context.find('button')
+ .text('Upload')
+ .prop('disabled', !!data.files.error);
+ }
+ }).on('fileuploadprogressall', function (e, data) {
+ var progress = parseInt(data.loaded / data.total * 100, 10);
+ $('#progress .progress-bar').css(
+ 'width',
+ progress + '%'
+ );
+ }).on('fileuploaddone', function (e, data) {
+ $.each(data.result.files, function (index, file) {
+ if (file.url) {
+ var link = $('<a>')
+ .attr('target', '_blank')
+ .prop('href', file.url);
+ $(data.context.children()[index])
+ .wrap(link);
+ } else if (file.error) {
+ var error = $('<span class="text-danger"/>').text(file.error);
+ $(data.context.children()[index])
+ .append('<br>')
+ .append(error);
+ }
+ });
+ }).on('fileuploadfail', function (e, data) {
+ $.each(data.files, function (index, file) {
+ var error = $('<span class="text-danger"/>').text('File upload failed.');
+ $(data.context.children()[index])
+ .append('<br>')
+ .append(error);
+ });
+ }).prop('disabled', !$.support.fileInput)
+ .parent().addClass($.support.fileInput ? undefined : 'disabled');
+});
+</script>
+</body>
+</html>
diff --git a/library/jqupload/basic.html b/library/jqupload/basic.html
new file mode 100644
index 000000000..ea5d0e66f
--- /dev/null
+++ b/library/jqupload/basic.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery File Upload Plugin Basic Demo 1.2.4
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+-->
+<html lang="en">
+<head>
+<!-- Force latest IE rendering engine or ChromeFrame if installed -->
+<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><![endif]-->
+<meta charset="utf-8">
+<title>jQuery File Upload Demo - Basic version</title>
+<meta name="description" content="File Upload widget with multiple file selection, drag&amp;drop support and progress bar for jQuery. Supports cross-domain, chunked and resumable file uploads. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<!-- Bootstrap styles -->
+<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">
+<!-- Generic page styles -->
+<link rel="stylesheet" href="css/style.css">
+<!-- CSS to style the file input field as button and adjust the Bootstrap progress bars -->
+<link rel="stylesheet" href="css/jquery.fileupload.css">
+</head>
+<body>
+<div class="navbar navbar-default navbar-fixed-top">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-fixed-top .navbar-collapse">
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="https://github.com/blueimp/jQuery-File-Upload">jQuery File Upload</a>
+ </div>
+ <div class="navbar-collapse collapse">
+ <ul class="nav navbar-nav">
+ <li><a href="https://github.com/blueimp/jQuery-File-Upload/tags">Download</a></li>
+ <li><a href="https://github.com/blueimp/jQuery-File-Upload">Source Code</a></li>
+ <li><a href="https://github.com/blueimp/jQuery-File-Upload/wiki">Documentation</a></li>
+ <li><a href="https://blueimp.net">&copy; Sebastian Tschan</a></li>
+ </ul>
+ </div>
+ </div>
+</div>
+<div class="container">
+ <h1>jQuery File Upload Demo</h1>
+ <h2 class="lead">Basic version</h2>
+ <ul class="nav nav-tabs">
+ <li class="active"><a href="basic.html">Basic</a></li>
+ <li><a href="basic-plus.html">Basic Plus</a></li>
+ <li><a href="index.html">Basic Plus UI</a></li>
+ <li><a href="angularjs.html">AngularJS</a></li>
+ <li><a href="jquery-ui.html">jQuery UI</a></li>
+ </ul>
+ <br>
+ <blockquote>
+ <p>File Upload widget with multiple file selection, drag&amp;drop support and progress bar for jQuery.<br>
+ Supports cross-domain, chunked and resumable file uploads.<br>
+ Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.</p>
+ </blockquote>
+ <br>
+ <!-- The fileinput-button span is used to style the file input field as button -->
+ <span class="btn btn-success fileinput-button">
+ <i class="glyphicon glyphicon-plus"></i>
+ <span>Select files...</span>
+ <!-- The file input field used as target for the file upload widget -->
+ <input id="fileupload" type="file" name="files[]" multiple>
+ </span>
+ <br>
+ <br>
+ <!-- The global progress bar -->
+ <div id="progress" class="progress">
+ <div class="progress-bar progress-bar-success"></div>
+ </div>
+ <!-- The container for the uploaded files -->
+ <div id="files" class="files"></div>
+ <br>
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ <h3 class="panel-title">Demo Notes</h3>
+ </div>
+ <div class="panel-body">
+ <ul>
+ <li>The maximum file size for uploads in this demo is <strong>5 MB</strong> (default file size is unlimited).</li>
+ <li>Only image files (<strong>JPG, GIF, PNG</strong>) are allowed in this demo (by default there is no file type restriction).</li>
+ <li>Uploaded files will be deleted automatically after <strong>5 minutes</strong> (demo setting).</li>
+ <li>You can <strong>drag &amp; drop</strong> files from your desktop on this webpage (see <a href="https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support">Browser support</a>).</li>
+ <li>Please refer to the <a href="https://github.com/blueimp/jQuery-File-Upload">project website</a> and <a href="https://github.com/blueimp/jQuery-File-Upload/wiki">documentation</a> for more information.</li>
+ <li>Built with Twitter's <a href="http://twitter.github.com/bootstrap/">Bootstrap</a> CSS framework and Icons from <a href="http://glyphicons.com/">Glyphicons</a>.</li>
+ </ul>
+ </div>
+ </div>
+</div>
+<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
+<!-- The jQuery UI widget factory, can be omitted if jQuery UI is already included -->
+<script src="js/vendor/jquery.ui.widget.js"></script>
+<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
+<script src="js/jquery.iframe-transport.js"></script>
+<!-- The basic File Upload plugin -->
+<script src="js/jquery.fileupload.js"></script>
+<!-- Bootstrap JS is not required, but included for the responsive demo navigation -->
+<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
+<script>
+/*jslint unparam: true */
+/*global window, $ */
+$(function () {
+ 'use strict';
+ // Change this to the location of your server-side upload handler:
+ var url = window.location.hostname === 'blueimp.github.io' ?
+ '//jquery-file-upload.appspot.com/' : 'server/php/';
+ $('#fileupload').fileupload({
+ url: url,
+ dataType: 'json',
+ done: function (e, data) {
+ $.each(data.result.files, function (index, file) {
+ $('<p/>').text(file.name).appendTo('#files');
+ });
+ },
+ progressall: function (e, data) {
+ var progress = parseInt(data.loaded / data.total * 100, 10);
+ $('#progress .progress-bar').css(
+ 'width',
+ progress + '%'
+ );
+ }
+ }).prop('disabled', !$.support.fileInput)
+ .parent().addClass($.support.fileInput ? undefined : 'disabled');
+});
+</script>
+</body>
+</html>
diff --git a/library/jqupload/blueimp-file-upload.jquery.json b/library/jqupload/blueimp-file-upload.jquery.json
new file mode 100644
index 000000000..8382fb4b9
--- /dev/null
+++ b/library/jqupload/blueimp-file-upload.jquery.json
@@ -0,0 +1,50 @@
+{
+ "name": "blueimp-file-upload",
+ "version": "9.5.2",
+ "title": "jQuery File Upload",
+ "author": {
+ "name": "Sebastian Tschan",
+ "url": "https://blueimp.net"
+ },
+ "licenses": [
+ {
+ "type": "MIT",
+ "url": "http://www.opensource.org/licenses/MIT"
+ }
+ ],
+ "dependencies": {
+ "jquery": ">=1.6"
+ },
+ "description": "File Upload widget with multiple file selection, drag&amp;drop support, progress bar, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads. Works with any server-side platform (Google App Engine, PHP, Python, Ruby on Rails, Java, etc.) that supports standard HTML form file uploads.",
+ "keywords": [
+ "jquery",
+ "file",
+ "upload",
+ "widget",
+ "multiple",
+ "selection",
+ "drag",
+ "drop",
+ "progress",
+ "preview",
+ "cross-domain",
+ "cross-site",
+ "chunk",
+ "resume",
+ "gae",
+ "go",
+ "python",
+ "php",
+ "bootstrap"
+ ],
+ "homepage": "https://github.com/blueimp/jQuery-File-Upload",
+ "docs": "https://github.com/blueimp/jQuery-File-Upload/wiki",
+ "demo": "http://blueimp.github.io/jQuery-File-Upload/",
+ "bugs": "https://github.com/blueimp/jQuery-File-Upload/issues",
+ "maintainers": [
+ {
+ "name": "Sebastian Tschan",
+ "url": "https://blueimp.net"
+ }
+ ]
+}
diff --git a/library/jqupload/bower.json b/library/jqupload/bower.json
new file mode 100644
index 000000000..54ba68f82
--- /dev/null
+++ b/library/jqupload/bower.json
@@ -0,0 +1,85 @@
+{
+ "name": "blueimp-file-upload",
+ "version": "9.5.2",
+ "title": "jQuery File Upload",
+ "description": "File Upload widget with multiple file selection, drag&amp;drop support, progress bar, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads. Works with any server-side platform (Google App Engine, PHP, Python, Ruby on Rails, Java, etc.) that supports standard HTML form file uploads.",
+ "keywords": [
+ "jquery",
+ "file",
+ "upload",
+ "widget",
+ "multiple",
+ "selection",
+ "drag",
+ "drop",
+ "progress",
+ "preview",
+ "cross-domain",
+ "cross-site",
+ "chunk",
+ "resume",
+ "gae",
+ "go",
+ "python",
+ "php",
+ "bootstrap"
+ ],
+ "homepage": "https://github.com/blueimp/jQuery-File-Upload",
+ "author": {
+ "name": "Sebastian Tschan",
+ "url": "https://blueimp.net"
+ },
+ "maintainers": [
+ {
+ "name": "Sebastian Tschan",
+ "url": "https://blueimp.net"
+ }
+ ],
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/blueimp/jQuery-File-Upload.git"
+ },
+ "bugs": "https://github.com/blueimp/jQuery-File-Upload/issues",
+ "licenses": [
+ {
+ "type": "MIT",
+ "url": "http://www.opensource.org/licenses/MIT"
+ }
+ ],
+ "dependencies": {
+ "jquery": ">=1.6",
+ "blueimp-tmpl": ">=2.5.3",
+ "blueimp-load-image": ">=1.11.0",
+ "blueimp-canvas-to-blob": ">=2.1.0"
+ },
+ "main": [
+ "css/jquery.fileupload.css",
+ "css/jquery.fileupload-ui.css",
+ "css/jquery.fileupload-noscript.css",
+ "css/jquery.fileupload-ui-noscript.css",
+ "js/cors/jquery.postmessage-transport.js",
+ "js/cors/jquery.xdr-transport.js",
+ "js/vendor/jquery.ui.widget.js",
+ "js/jquery.fileupload.js",
+ "js/jquery.fileupload-process.js",
+ "js/jquery.fileupload-validate.js",
+ "js/jquery.fileupload-image.js",
+ "js/jquery.fileupload-audio.js",
+ "js/jquery.fileupload-video.js",
+ "js/jquery.fileupload-ui.js",
+ "js/jquery.fileupload-jquery-ui.js",
+ "js/jquery.fileupload-angular.js",
+ "js/jquery.iframe-transport.js"
+ ],
+ "ignore": [
+ "/*.*",
+ "/cors",
+ "css/demo-ie8.css",
+ "css/demo.css",
+ "css/style.css",
+ "js/app.js",
+ "js/main.js",
+ "server",
+ "test"
+ ]
+}
diff --git a/library/jqupload/cors/postmessage.html b/library/jqupload/cors/postmessage.html
new file mode 100644
index 000000000..3d1448f08
--- /dev/null
+++ b/library/jqupload/cors/postmessage.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery File Upload Plugin postMessage API 1.2.1
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2011, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+-->
+<html lang="en">
+<head>
+<meta charset="utf-8">
+<title>jQuery File Upload Plugin postMessage API</title>
+<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
+</head>
+<body>
+<script>
+/*jslint unparam: true, regexp: true */
+/*global $, Blob, FormData, location */
+'use strict';
+var origin = /^http:\/\/example.org/,
+ target = new RegExp('^(http(s)?:)?\\/\\/' + location.host + '\\/');
+$(window).on('message', function (e) {
+ e = e.originalEvent;
+ var s = e.data,
+ xhr = $.ajaxSettings.xhr(),
+ f;
+ if (!origin.test(e.origin)) {
+ throw new Error('Origin "' + e.origin + '" does not match ' + origin);
+ }
+ if (!target.test(e.data.url)) {
+ throw new Error('Target "' + e.data.url + '" does not match ' + target);
+ }
+ $(xhr.upload).on('progress', function (ev) {
+ ev = ev.originalEvent;
+ e.source.postMessage({
+ id: s.id,
+ type: ev.type,
+ timeStamp: ev.timeStamp,
+ lengthComputable: ev.lengthComputable,
+ loaded: ev.loaded,
+ total: ev.total
+ }, e.origin);
+ });
+ s.xhr = function () {
+ return xhr;
+ };
+ if (!(s.data instanceof Blob)) {
+ f = new FormData();
+ $.each(s.data, function (i, v) {
+ f.append(v.name, v.value);
+ });
+ s.data = f;
+ }
+ $.ajax(s).always(function (result, statusText, jqXHR) {
+ if (!jqXHR.done) {
+ jqXHR = result;
+ result = null;
+ }
+ e.source.postMessage({
+ id: s.id,
+ status: jqXHR.status,
+ statusText: statusText,
+ result: result,
+ headers: jqXHR.getAllResponseHeaders()
+ }, e.origin);
+ });
+});
+</script>
+</body>
+</html> \ No newline at end of file
diff --git a/library/jqupload/cors/result.html b/library/jqupload/cors/result.html
new file mode 100644
index 000000000..225131495
--- /dev/null
+++ b/library/jqupload/cors/result.html
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery Iframe Transport Plugin Redirect Page 2.0.1
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2010, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+-->
+<html lang="en">
+<head>
+<meta charset="utf-8">
+<title>jQuery Iframe Transport Plugin Redirect Page</title>
+</head>
+<body>
+<script>
+document.body.innerText=document.body.textContent=decodeURIComponent(window.location.search.slice(1));
+</script>
+</body>
+</html>
diff --git a/library/jqupload/css/demo-ie8.css b/library/jqupload/css/demo-ie8.css
new file mode 100644
index 000000000..262493d08
--- /dev/null
+++ b/library/jqupload/css/demo-ie8.css
@@ -0,0 +1,21 @@
+@charset "UTF-8";
+/*
+ * jQuery File Upload Demo CSS Fixes for IE<9 1.0.0
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+.navigation {
+ list-style: none;
+ padding: 0;
+ margin: 1em 0;
+}
+.navigation li {
+ display: inline;
+ margin-right: 10px;
+}
diff --git a/library/jqupload/css/demo.css b/library/jqupload/css/demo.css
new file mode 100644
index 000000000..2b4d43934
--- /dev/null
+++ b/library/jqupload/css/demo.css
@@ -0,0 +1,67 @@
+@charset "UTF-8";
+/*
+ * jQuery File Upload Demo CSS 1.1.0
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+body {
+ max-width: 750px;
+ margin: 0 auto;
+ padding: 1em;
+ font-family: "Lucida Grande", "Lucida Sans Unicode", Arial, sans-serif;
+ font-size: 1em;
+ line-height: 1.4em;
+ background: #222;
+ color: #fff;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+}
+a {
+ color: orange;
+ text-decoration: none;
+}
+img {
+ border: 0;
+ vertical-align: middle;
+}
+h1 {
+ line-height: 1em;
+}
+blockquote {
+ padding: 0 0 0 15px;
+ margin: 0 0 20px;
+ border-left: 5px solid #eee;
+}
+table {
+ width: 100%;
+ margin: 10px 0;
+}
+
+.fileupload-progress {
+ margin: 10px 0;
+}
+.fileupload-progress .progress-extended {
+ margin-top: 5px;
+}
+.error {
+ color: red;
+}
+
+@media (min-width: 481px) {
+ .navigation {
+ list-style: none;
+ padding: 0;
+ }
+ .navigation li {
+ display: inline-block;
+ }
+ .navigation li:not(:first-child):before {
+ content: "| ";
+ }
+}
diff --git a/library/jqupload/css/jquery.fileupload-noscript.css b/library/jqupload/css/jquery.fileupload-noscript.css
new file mode 100644
index 000000000..64d728fc3
--- /dev/null
+++ b/library/jqupload/css/jquery.fileupload-noscript.css
@@ -0,0 +1,22 @@
+@charset "UTF-8";
+/*
+ * jQuery File Upload Plugin NoScript CSS 1.2.0
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+.fileinput-button input {
+ position: static;
+ opacity: 1;
+ filter: none;
+ font-size: inherit;
+ direction: inherit;
+}
+.fileinput-button span {
+ display: none;
+}
diff --git a/library/jqupload/css/jquery.fileupload-ui-noscript.css b/library/jqupload/css/jquery.fileupload-ui-noscript.css
new file mode 100644
index 000000000..87f110cdb
--- /dev/null
+++ b/library/jqupload/css/jquery.fileupload-ui-noscript.css
@@ -0,0 +1,17 @@
+@charset "UTF-8";
+/*
+ * jQuery File Upload UI Plugin NoScript CSS 8.8.5
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2012, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+.fileinput-button i,
+.fileupload-buttonbar .delete,
+.fileupload-buttonbar .toggle {
+ display: none;
+}
diff --git a/library/jqupload/css/jquery.fileupload-ui.css b/library/jqupload/css/jquery.fileupload-ui.css
new file mode 100644
index 000000000..76fb376de
--- /dev/null
+++ b/library/jqupload/css/jquery.fileupload-ui.css
@@ -0,0 +1,57 @@
+@charset "UTF-8";
+/*
+ * jQuery File Upload UI Plugin CSS 9.0.0
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2010, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+.fileupload-buttonbar .btn,
+.fileupload-buttonbar .toggle {
+ margin-bottom: 5px;
+}
+.progress-animated .progress-bar,
+.progress-animated .bar {
+ background: url("../img/progressbar.gif") !important;
+ filter: none;
+}
+.fileupload-process {
+ float: right;
+ display: none;
+}
+.fileupload-processing .fileupload-process,
+.files .processing .preview {
+ display: block;
+ width: 32px;
+ height: 32px;
+ background: url("../img/loading.gif") center no-repeat;
+ background-size: contain;
+}
+.files audio,
+.files video {
+ max-width: 300px;
+}
+
+@media (max-width: 767px) {
+ .fileupload-buttonbar .toggle,
+ .files .toggle,
+ .files .btn span {
+ display: none;
+ }
+ .files .name {
+ width: 80px;
+ word-wrap: break-word;
+ }
+ .files audio,
+ .files video {
+ max-width: 80px;
+ }
+ .files img,
+ .files canvas {
+ max-width: 100%;
+ }
+}
diff --git a/library/jqupload/css/jquery.fileupload.css b/library/jqupload/css/jquery.fileupload.css
new file mode 100644
index 000000000..fb6044d34
--- /dev/null
+++ b/library/jqupload/css/jquery.fileupload.css
@@ -0,0 +1,36 @@
+@charset "UTF-8";
+/*
+ * jQuery File Upload Plugin CSS 1.3.0
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+.fileinput-button {
+ position: relative;
+ overflow: hidden;
+}
+.fileinput-button input {
+ position: absolute;
+ top: 0;
+ right: 0;
+ margin: 0;
+ opacity: 0;
+ -ms-filter: 'alpha(opacity=0)';
+ font-size: 200px;
+ direction: ltr;
+ cursor: pointer;
+}
+
+/* Fixes for IE < 8 */
+@media screen\9 {
+ .fileinput-button input {
+ filter: alpha(opacity=0);
+ font-size: 100%;
+ height: 100%;
+ }
+}
diff --git a/library/jqupload/css/style.css b/library/jqupload/css/style.css
new file mode 100644
index 000000000..b2c60a6f1
--- /dev/null
+++ b/library/jqupload/css/style.css
@@ -0,0 +1,15 @@
+@charset "UTF-8";
+/*
+ * jQuery File Upload Plugin CSS Example 8.8.2
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+body {
+ padding-top: 60px;
+}
diff --git a/library/jqupload/img/loading.gif b/library/jqupload/img/loading.gif
new file mode 100644
index 000000000..90f28cbdb
--- /dev/null
+++ b/library/jqupload/img/loading.gif
Binary files differ
diff --git a/library/jqupload/img/progressbar.gif b/library/jqupload/img/progressbar.gif
new file mode 100644
index 000000000..fbcce6bc9
--- /dev/null
+++ b/library/jqupload/img/progressbar.gif
Binary files differ
diff --git a/library/jqupload/index.html b/library/jqupload/index.html
new file mode 100644
index 000000000..a3a06aa9b
--- /dev/null
+++ b/library/jqupload/index.html
@@ -0,0 +1,255 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery File Upload Plugin Demo 9.0.1
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2010, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+-->
+<html lang="en">
+<head>
+<!-- Force latest IE rendering engine or ChromeFrame if installed -->
+<!--[if IE]>
+<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+<![endif]-->
+<meta charset="utf-8">
+<title>jQuery File Upload Demo</title>
+<meta name="description" content="File Upload widget with multiple file selection, drag&amp;drop support, progress bars, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads and client-side image resizing. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<!-- Bootstrap styles -->
+<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">
+<!-- Generic page styles -->
+<link rel="stylesheet" href="css/style.css">
+<!-- blueimp Gallery styles -->
+<link rel="stylesheet" href="http://blueimp.github.io/Gallery/css/blueimp-gallery.min.css">
+<!-- CSS to style the file input field as button and adjust the Bootstrap progress bars -->
+<link rel="stylesheet" href="css/jquery.fileupload.css">
+<link rel="stylesheet" href="css/jquery.fileupload-ui.css">
+<!-- CSS adjustments for browsers with JavaScript disabled -->
+<noscript><link rel="stylesheet" href="css/jquery.fileupload-noscript.css"></noscript>
+<noscript><link rel="stylesheet" href="css/jquery.fileupload-ui-noscript.css"></noscript>
+</head>
+<body>
+<div class="navbar navbar-default navbar-fixed-top">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-fixed-top .navbar-collapse">
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="https://github.com/blueimp/jQuery-File-Upload">jQuery File Upload</a>
+ </div>
+ <div class="navbar-collapse collapse">
+ <ul class="nav navbar-nav">
+ <li><a href="https://github.com/blueimp/jQuery-File-Upload/tags">Download</a></li>
+ <li><a href="https://github.com/blueimp/jQuery-File-Upload">Source Code</a></li>
+ <li><a href="https://github.com/blueimp/jQuery-File-Upload/wiki">Documentation</a></li>
+ <li><a href="https://blueimp.net">&copy; Sebastian Tschan</a></li>
+ </ul>
+ </div>
+ </div>
+</div>
+<div class="container">
+ <h1>jQuery File Upload Demo</h1>
+ <h2 class="lead">Basic Plus UI version</h2>
+ <ul class="nav nav-tabs">
+ <li><a href="basic.html">Basic</a></li>
+ <li><a href="basic-plus.html">Basic Plus</a></li>
+ <li class="active"><a href="index.html">Basic Plus UI</a></li>
+ <li><a href="angularjs.html">AngularJS</a></li>
+ <li><a href="jquery-ui.html">jQuery UI</a></li>
+ </ul>
+ <br>
+ <blockquote>
+ <p>File Upload widget with multiple file selection, drag&amp;drop support, progress bars, validation and preview images, audio and video for jQuery.<br>
+ Supports cross-domain, chunked and resumable file uploads and client-side image resizing.<br>
+ Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.</p>
+ </blockquote>
+ <br>
+ <!-- The file upload form used as target for the file upload widget -->
+ <form id="fileupload" action="//jquery-file-upload.appspot.com/" method="POST" enctype="multipart/form-data">
+ <!-- Redirect browsers with JavaScript disabled to the origin page -->
+ <noscript><input type="hidden" name="redirect" value="http://blueimp.github.io/jQuery-File-Upload/"></noscript>
+ <!-- The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload -->
+ <div class="row fileupload-buttonbar">
+ <div class="col-lg-7">
+ <!-- The fileinput-button span is used to style the file input field as button -->
+ <span class="btn btn-success fileinput-button">
+ <i class="glyphicon glyphicon-plus"></i>
+ <span>Add files...</span>
+ <input type="file" name="files[]" multiple>
+ </span>
+ <button type="submit" class="btn btn-primary start">
+ <i class="glyphicon glyphicon-upload"></i>
+ <span>Start upload</span>
+ </button>
+ <button type="reset" class="btn btn-warning cancel">
+ <i class="glyphicon glyphicon-ban-circle"></i>
+ <span>Cancel upload</span>
+ </button>
+ <button type="button" class="btn btn-danger delete">
+ <i class="glyphicon glyphicon-trash"></i>
+ <span>Delete</span>
+ </button>
+ <input type="checkbox" class="toggle">
+ <!-- The global file processing state -->
+ <span class="fileupload-process"></span>
+ </div>
+ <!-- The global progress state -->
+ <div class="col-lg-5 fileupload-progress fade">
+ <!-- The global progress bar -->
+ <div class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100">
+ <div class="progress-bar progress-bar-success" style="width:0%;"></div>
+ </div>
+ <!-- The extended global progress state -->
+ <div class="progress-extended">&nbsp;</div>
+ </div>
+ </div>
+ <!-- The table listing the files available for upload/download -->
+ <table role="presentation" class="table table-striped"><tbody class="files"></tbody></table>
+ </form>
+ <br>
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ <h3 class="panel-title">Demo Notes</h3>
+ </div>
+ <div class="panel-body">
+ <ul>
+ <li>The maximum file size for uploads in this demo is <strong>5 MB</strong> (default file size is unlimited).</li>
+ <li>Only image files (<strong>JPG, GIF, PNG</strong>) are allowed in this demo (by default there is no file type restriction).</li>
+ <li>Uploaded files will be deleted automatically after <strong>5 minutes</strong> (demo setting).</li>
+ <li>You can <strong>drag &amp; drop</strong> files from your desktop on this webpage (see <a href="https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support">Browser support</a>).</li>
+ <li>Please refer to the <a href="https://github.com/blueimp/jQuery-File-Upload">project website</a> and <a href="https://github.com/blueimp/jQuery-File-Upload/wiki">documentation</a> for more information.</li>
+ <li>Built with Twitter's <a href="http://twitter.github.com/bootstrap/">Bootstrap</a> CSS framework and Icons from <a href="http://glyphicons.com/">Glyphicons</a>.</li>
+ </ul>
+ </div>
+ </div>
+</div>
+<!-- The blueimp Gallery widget -->
+<div id="blueimp-gallery" class="blueimp-gallery blueimp-gallery-controls" data-filter=":even">
+ <div class="slides"></div>
+ <h3 class="title"></h3>
+ <a class="prev">‹</a>
+ <a class="next">›</a>
+ <a class="close">×</a>
+ <a class="play-pause"></a>
+ <ol class="indicator"></ol>
+</div>
+<!-- The template to display files available for upload -->
+<script id="template-upload" type="text/x-tmpl">
+{% for (var i=0, file; file=o.files[i]; i++) { %}
+ <tr class="template-upload fade">
+ <td>
+ <span class="preview"></span>
+ </td>
+ <td>
+ <p class="name">{%=file.name%}</p>
+ <strong class="error text-danger"></strong>
+ </td>
+ <td>
+ <p class="size">Processing...</p>
+ <div class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><div class="progress-bar progress-bar-success" style="width:0%;"></div></div>
+ </td>
+ <td>
+ {% if (!i && !o.options.autoUpload) { %}
+ <button class="btn btn-primary start" disabled>
+ <i class="glyphicon glyphicon-upload"></i>
+ <span>Start</span>
+ </button>
+ {% } %}
+ {% if (!i) { %}
+ <button class="btn btn-warning cancel">
+ <i class="glyphicon glyphicon-ban-circle"></i>
+ <span>Cancel</span>
+ </button>
+ {% } %}
+ </td>
+ </tr>
+{% } %}
+</script>
+<!-- The template to display files available for download -->
+<script id="template-download" type="text/x-tmpl">
+{% for (var i=0, file; file=o.files[i]; i++) { %}
+ <tr class="template-download fade">
+ <td>
+ <span class="preview">
+ {% if (file.thumbnailUrl) { %}
+ <a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" data-gallery><img src="{%=file.thumbnailUrl%}"></a>
+ {% } %}
+ </span>
+ </td>
+ <td>
+ <p class="name">
+ {% if (file.url) { %}
+ <a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" {%=file.thumbnailUrl?'data-gallery':''%}>{%=file.name%}</a>
+ {% } else { %}
+ <span>{%=file.name%}</span>
+ {% } %}
+ </p>
+ {% if (file.error) { %}
+ <div><span class="label label-danger">Error</span> {%=file.error%}</div>
+ {% } %}
+ </td>
+ <td>
+ <span class="size">{%=o.formatFileSize(file.size)%}</span>
+ </td>
+ <td>
+ {% if (file.deleteUrl) { %}
+ <button class="btn btn-danger delete" data-type="{%=file.deleteType%}" data-url="{%=file.deleteUrl%}"{% if (file.deleteWithCredentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>
+ <i class="glyphicon glyphicon-trash"></i>
+ <span>Delete</span>
+ </button>
+ <input type="checkbox" name="delete" value="1" class="toggle">
+ {% } else { %}
+ <button class="btn btn-warning cancel">
+ <i class="glyphicon glyphicon-ban-circle"></i>
+ <span>Cancel</span>
+ </button>
+ {% } %}
+ </td>
+ </tr>
+{% } %}
+</script>
+<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
+<!-- The jQuery UI widget factory, can be omitted if jQuery UI is already included -->
+<script src="js/vendor/jquery.ui.widget.js"></script>
+<!-- The Templates plugin is included to render the upload/download listings -->
+<script src="http://blueimp.github.io/JavaScript-Templates/js/tmpl.min.js"></script>
+<!-- The Load Image plugin is included for the preview images and image resizing functionality -->
+<script src="http://blueimp.github.io/JavaScript-Load-Image/js/load-image.min.js"></script>
+<!-- The Canvas to Blob plugin is included for image resizing functionality -->
+<script src="http://blueimp.github.io/JavaScript-Canvas-to-Blob/js/canvas-to-blob.min.js"></script>
+<!-- Bootstrap JS is not required, but included for the responsive demo navigation -->
+<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
+<!-- blueimp Gallery script -->
+<script src="http://blueimp.github.io/Gallery/js/jquery.blueimp-gallery.min.js"></script>
+<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
+<script src="js/jquery.iframe-transport.js"></script>
+<!-- The basic File Upload plugin -->
+<script src="js/jquery.fileupload.js"></script>
+<!-- The File Upload processing plugin -->
+<script src="js/jquery.fileupload-process.js"></script>
+<!-- The File Upload image preview & resize plugin -->
+<script src="js/jquery.fileupload-image.js"></script>
+<!-- The File Upload audio preview plugin -->
+<script src="js/jquery.fileupload-audio.js"></script>
+<!-- The File Upload video preview plugin -->
+<script src="js/jquery.fileupload-video.js"></script>
+<!-- The File Upload validation plugin -->
+<script src="js/jquery.fileupload-validate.js"></script>
+<!-- The File Upload user interface plugin -->
+<script src="js/jquery.fileupload-ui.js"></script>
+<!-- The main application script -->
+<script src="js/main.js"></script>
+<!-- The XDomainRequest Transport is included for cross-domain file deletion for IE 8 and IE 9 -->
+<!--[if (gte IE 8)&(lt IE 10)]>
+<script src="js/cors/jquery.xdr-transport.js"></script>
+<![endif]-->
+</body>
+</html>
diff --git a/library/jqupload/jquery-ui.html b/library/jqupload/jquery-ui.html
new file mode 100644
index 000000000..993a4c815
--- /dev/null
+++ b/library/jqupload/jquery-ui.html
@@ -0,0 +1,250 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery File Upload Plugin jQuery UI Demo 9.0.0
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+-->
+<html lang="en">
+<head>
+<!-- Force latest IE rendering engine or ChromeFrame if installed -->
+<!--[if IE]>
+<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+<![endif]-->
+<meta charset="utf-8">
+<title>jQuery File Upload Demo - jQuery UI version</title>
+<meta name="description" content="File Upload widget with multiple file selection, drag&amp;drop support, progress bars, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads and client-side image resizing. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<!-- jQuery UI styles -->
+<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/dark-hive/jquery-ui.css" id="theme">
+<!-- Demo styles -->
+<link rel="stylesheet" href="css/demo.css">
+<!--[if lte IE 8]>
+<link rel="stylesheet" href="css/demo-ie8.css">
+<![endif]-->
+<style>
+/* Adjust the jQuery UI widget font-size: */
+.ui-widget {
+ font-size: 0.95em;
+}
+</style>
+<!-- blueimp Gallery styles -->
+<link rel="stylesheet" href="http://blueimp.github.io/Gallery/css/blueimp-gallery.min.css">
+<!-- CSS to style the file input field as button and adjust the Bootstrap progress bars -->
+<link rel="stylesheet" href="css/jquery.fileupload.css">
+<link rel="stylesheet" href="css/jquery.fileupload-ui.css">
+<!-- CSS adjustments for browsers with JavaScript disabled -->
+<noscript><link rel="stylesheet" href="css/jquery.fileupload-noscript.css"></noscript>
+<noscript><link rel="stylesheet" href="css/jquery.fileupload-ui-noscript.css"></noscript>
+</head>
+<body>
+<ul class="navigation">
+ <li><h3><a href="https://github.com/blueimp/jQuery-File-Upload">jQuery File Upload</a></h3></li>
+ <li><a href="https://github.com/blueimp/jQuery-File-Upload/tags">Download</a></li>
+ <li><a href="https://github.com/blueimp/jQuery-File-Upload">Source Code</a></li>
+ <li><a href="https://github.com/blueimp/jQuery-File-Upload/wiki">Documentation</a></li>
+ <li><a href="https://blueimp.net">&copy; blueimp.net</a></li>
+</ul>
+<h1>jQuery File Upload Demo</h1>
+<h2>jQuery UI version</h2>
+<form>
+ <label for="theme-switcher">Theme:</label>
+ <select id="theme-switcher" class="pull-right">
+ <option value="black-tie">Black Tie</option>
+ <option value="blitzer">Blitzer</option>
+ <option value="cupertino">Cupertino</option>
+ <option value="dark-hive" selected>Dark Hive</option>
+ <option value="dot-luv">Dot Luv</option>
+ <option value="eggplant">Eggplant</option>
+ <option value="excite-bike">Excite Bike</option>
+ <option value="flick">Flick</option>
+ <option value="hot-sneaks">Hot sneaks</option>
+ <option value="humanity">Humanity</option>
+ <option value="le-frog">Le Frog</option>
+ <option value="mint-choc">Mint Choc</option>
+ <option value="overcast">Overcast</option>
+ <option value="pepper-grinder">Pepper Grinder</option>
+ <option value="redmond">Redmond</option>
+ <option value="smoothness">Smoothness</option>
+ <option value="south-street">South Street</option>
+ <option value="start">Start</option>
+ <option value="sunny">Sunny</option>
+ <option value="swanky-purse">Swanky Purse</option>
+ <option value="trontastic">Trontastic</option>
+ <option value="ui-darkness">UI Darkness</option>
+ <option value="ui-lightness">UI Lightness</option>
+ <option value="vader">Vader</option>
+ </select>
+</form>
+<ul class="navigation">
+ <li><a href="basic.html">Basic</a></li>
+ <li><a href="basic-plus.html">Basic Plus</a></li>
+ <li><a href="index.html">Basic Plus UI</a></li>
+ <li><a href="angularjs.html">AngularJS</a></li>
+ <li class="active"><a href="jquery-ui.html">jQuery UI</a></li>
+</ul>
+<blockquote>
+ <p>File Upload widget with multiple file selection, drag&amp;drop support, progress bars, validation and preview images, audio and video for jQuery UI.<br>
+ Supports cross-domain, chunked and resumable file uploads and client-side image resizing.<br>
+ Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.</p>
+</blockquote>
+<!-- The file upload form used as target for the file upload widget -->
+<form id="fileupload" action="//jquery-file-upload.appspot.com/" method="POST" enctype="multipart/form-data">
+ <!-- Redirect browsers with JavaScript disabled to the origin page -->
+ <noscript><input type="hidden" name="redirect" value="http://blueimp.github.io/jQuery-File-Upload/"></noscript>
+ <!-- The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload -->
+ <div class="fileupload-buttonbar">
+ <div class="fileupload-buttons">
+ <!-- The fileinput-button span is used to style the file input field as button -->
+ <span class="fileinput-button">
+ <span>Add files...</span>
+ <input type="file" name="files[]" multiple>
+ </span>
+ <button type="submit" class="start">Start upload</button>
+ <button type="reset" class="cancel">Cancel upload</button>
+ <button type="button" class="delete">Delete</button>
+ <input type="checkbox" class="toggle">
+ <!-- The global file processing state -->
+ <span class="fileupload-process"></span>
+ </div>
+ <!-- The global progress state -->
+ <div class="fileupload-progress fade" style="display:none">
+ <!-- The global progress bar -->
+ <div class="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100"></div>
+ <!-- The extended global progress state -->
+ <div class="progress-extended">&nbsp;</div>
+ </div>
+ </div>
+ <!-- The table listing the files available for upload/download -->
+ <table role="presentation"><tbody class="files"></tbody></table>
+</form>
+<br>
+<h3>Demo Notes</h3>
+<ul>
+ <li>The maximum file size for uploads in this demo is <strong>5 MB</strong> (default file size is unlimited).</li>
+ <li>Only image files (<strong>JPG, GIF, PNG</strong>) are allowed in this demo (by default there is no file type restriction).</li>
+ <li>Uploaded files will be deleted automatically after <strong>5 minutes</strong> (demo setting).</li>
+ <li>You can <strong>drag &amp; drop</strong> files from your desktop on this webpage (see <a href="https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support">Browser support</a>).</li>
+ <li>Please refer to the <a href="https://github.com/blueimp/jQuery-File-Upload">project website</a> and <a href="https://github.com/blueimp/jQuery-File-Upload/wiki">documentation</a> for more information.</li>
+ <li>Built with <a href="http://jqueryui.com">jQuery UI</a>.</li>
+</ul>
+<!-- The blueimp Gallery widget -->
+<div id="blueimp-gallery" class="blueimp-gallery blueimp-gallery-controls" data-filter=":even">
+ <div class="slides"></div>
+ <h3 class="title"></h3>
+ <a class="prev">‹</a>
+ <a class="next">›</a>
+ <a class="close">×</a>
+ <a class="play-pause"></a>
+ <ol class="indicator"></ol>
+</div>
+<!-- The template to display files available for upload -->
+<script id="template-upload" type="text/x-tmpl">
+{% for (var i=0, file; file=o.files[i]; i++) { %}
+ <tr class="template-upload fade">
+ <td>
+ <span class="preview"></span>
+ </td>
+ <td>
+ <p class="name">{%=file.name%}</p>
+ <strong class="error"></strong>
+ </td>
+ <td>
+ <p class="size">Processing...</p>
+ <div class="progress"></div>
+ </td>
+ <td>
+ {% if (!i && !o.options.autoUpload) { %}
+ <button class="start">Start</button>
+ {% } %}
+ {% if (!i) { %}
+ <button class="cancel">Cancel</button>
+ {% } %}
+ </td>
+ </tr>
+{% } %}
+</script>
+<!-- The template to display files available for download -->
+<script id="template-download" type="text/x-tmpl">
+{% for (var i=0, file; file=o.files[i]; i++) { %}
+ <tr class="template-download fade">
+ <td>
+ <span class="preview">
+ {% if (file.thumbnailUrl) { %}
+ <a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" data-gallery><img src="{%=file.thumbnailUrl%}"></a>
+ {% } %}
+ </span>
+ </td>
+ <td>
+ <p class="name">
+ <a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" {%=file.thumbnailUrl?'data-gallery':''%}>{%=file.name%}</a>
+ </p>
+ {% if (file.error) { %}
+ <div><span class="error">Error</span> {%=file.error%}</div>
+ {% } %}
+ </td>
+ <td>
+ <span class="size">{%=o.formatFileSize(file.size)%}</span>
+ </td>
+ <td>
+ <button class="delete" data-type="{%=file.deleteType%}" data-url="{%=file.deleteUrl%}"{% if (file.deleteWithCredentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>Delete</button>
+ <input type="checkbox" name="delete" value="1" class="toggle">
+ </td>
+ </tr>
+{% } %}
+</script>
+<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
+<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
+<!-- The Templates plugin is included to render the upload/download listings -->
+<script src="http://blueimp.github.io/JavaScript-Templates/js/tmpl.min.js"></script>
+<!-- The Load Image plugin is included for the preview images and image resizing functionality -->
+<script src="http://blueimp.github.io/JavaScript-Load-Image/js/load-image.min.js"></script>
+<!-- The Canvas to Blob plugin is included for image resizing functionality -->
+<script src="http://blueimp.github.io/JavaScript-Canvas-to-Blob/js/canvas-to-blob.min.js"></script>
+<!-- blueimp Gallery script -->
+<script src="http://blueimp.github.io/Gallery/js/jquery.blueimp-gallery.min.js"></script>
+<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
+<script src="js/jquery.iframe-transport.js"></script>
+<!-- The basic File Upload plugin -->
+<script src="js/jquery.fileupload.js"></script>
+<!-- The File Upload processing plugin -->
+<script src="js/jquery.fileupload-process.js"></script>
+<!-- The File Upload image preview & resize plugin -->
+<script src="js/jquery.fileupload-image.js"></script>
+<!-- The File Upload audio preview plugin -->
+<script src="js/jquery.fileupload-audio.js"></script>
+<!-- The File Upload video preview plugin -->
+<script src="js/jquery.fileupload-video.js"></script>
+<!-- The File Upload validation plugin -->
+<script src="js/jquery.fileupload-validate.js"></script>
+<!-- The File Upload user interface plugin -->
+<script src="js/jquery.fileupload-ui.js"></script>
+<!-- The File Upload jQuery UI plugin -->
+<script src="js/jquery.fileupload-jquery-ui.js"></script>
+<!-- The main application script -->
+<script src="js/main.js"></script>
+<script>
+// Initialize the jQuery UI theme switcher:
+$('#theme-switcher').change(function () {
+ var theme = $('#theme');
+ theme.prop(
+ 'href',
+ theme.prop('href').replace(
+ /[\w\-]+\/jquery-ui.css/,
+ $(this).val() + '/jquery-ui.css'
+ )
+ );
+});
+</script>
+<!-- The XDomainRequest Transport is included for cross-domain file deletion for IE 8 and IE 9 -->
+<!--[if (gte IE 8)&(lt IE 10)]>
+<script src="js/cors/jquery.xdr-transport.js"></script>
+<![endif]-->
+</body>
+</html>
diff --git a/library/jqupload/js/app.js b/library/jqupload/js/app.js
new file mode 100644
index 000000000..47b4f923b
--- /dev/null
+++ b/library/jqupload/js/app.js
@@ -0,0 +1,101 @@
+/*
+ * jQuery File Upload Plugin Angular JS Example 1.2.1
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+/* jshint nomen:false */
+/* global window, angular */
+
+(function () {
+ 'use strict';
+
+ var isOnGitHub = window.location.hostname === 'blueimp.github.io',
+ url = isOnGitHub ? '//jquery-file-upload.appspot.com/' : 'server/php/';
+
+ angular.module('demo', [
+ 'blueimp.fileupload'
+ ])
+ .config([
+ '$httpProvider', 'fileUploadProvider',
+ function ($httpProvider, fileUploadProvider) {
+ delete $httpProvider.defaults.headers.common['X-Requested-With'];
+ fileUploadProvider.defaults.redirect = window.location.href.replace(
+ /\/[^\/]*$/,
+ '/cors/result.html?%s'
+ );
+ if (isOnGitHub) {
+ // Demo settings:
+ angular.extend(fileUploadProvider.defaults, {
+ // Enable image resizing, except for Android and Opera,
+ // which actually support image resizing, but fail to
+ // send Blob objects via XHR requests:
+ disableImageResize: /Android(?!.*Chrome)|Opera/
+ .test(window.navigator.userAgent),
+ maxFileSize: 5000000,
+ acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i
+ });
+ }
+ }
+ ])
+
+ .controller('DemoFileUploadController', [
+ '$scope', '$http', '$filter', '$window',
+ function ($scope, $http) {
+ $scope.options = {
+ url: url
+ };
+ if (!isOnGitHub) {
+ $scope.loadingFiles = true;
+ $http.get(url)
+ .then(
+ function (response) {
+ $scope.loadingFiles = false;
+ $scope.queue = response.data.files || [];
+ },
+ function () {
+ $scope.loadingFiles = false;
+ }
+ );
+ }
+ }
+ ])
+
+ .controller('FileDestroyController', [
+ '$scope', '$http',
+ function ($scope, $http) {
+ var file = $scope.file,
+ state;
+ if (file.url) {
+ file.$state = function () {
+ return state;
+ };
+ file.$destroy = function () {
+ state = 'pending';
+ return $http({
+ url: file.deleteUrl,
+ method: file.deleteType
+ }).then(
+ function () {
+ state = 'resolved';
+ $scope.clear(file);
+ },
+ function () {
+ state = 'rejected';
+ }
+ );
+ };
+ } else if (!file.$cancel && !file._index) {
+ file.$cancel = function () {
+ $scope.clear(file);
+ };
+ }
+ }
+ ]);
+
+}());
diff --git a/library/jqupload/js/cors/jquery.postmessage-transport.js b/library/jqupload/js/cors/jquery.postmessage-transport.js
new file mode 100644
index 000000000..2b4851e67
--- /dev/null
+++ b/library/jqupload/js/cors/jquery.postmessage-transport.js
@@ -0,0 +1,117 @@
+/*
+ * jQuery postMessage Transport Plugin 1.1.1
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2011, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+/* global define, window, document */
+
+(function (factory) {
+ 'use strict';
+ if (typeof define === 'function' && define.amd) {
+ // Register as an anonymous AMD module:
+ define(['jquery'], factory);
+ } else {
+ // Browser globals:
+ factory(window.jQuery);
+ }
+}(function ($) {
+ 'use strict';
+
+ var counter = 0,
+ names = [
+ 'accepts',
+ 'cache',
+ 'contents',
+ 'contentType',
+ 'crossDomain',
+ 'data',
+ 'dataType',
+ 'headers',
+ 'ifModified',
+ 'mimeType',
+ 'password',
+ 'processData',
+ 'timeout',
+ 'traditional',
+ 'type',
+ 'url',
+ 'username'
+ ],
+ convert = function (p) {
+ return p;
+ };
+
+ $.ajaxSetup({
+ converters: {
+ 'postmessage text': convert,
+ 'postmessage json': convert,
+ 'postmessage html': convert
+ }
+ });
+
+ $.ajaxTransport('postmessage', function (options) {
+ if (options.postMessage && window.postMessage) {
+ var iframe,
+ loc = $('<a>').prop('href', options.postMessage)[0],
+ target = loc.protocol + '//' + loc.host,
+ xhrUpload = options.xhr().upload;
+ return {
+ send: function (_, completeCallback) {
+ counter += 1;
+ var message = {
+ id: 'postmessage-transport-' + counter
+ },
+ eventName = 'message.' + message.id;
+ iframe = $(
+ '<iframe style="display:none;" src="' +
+ options.postMessage + '" name="' +
+ message.id + '"></iframe>'
+ ).bind('load', function () {
+ $.each(names, function (i, name) {
+ message[name] = options[name];
+ });
+ message.dataType = message.dataType.replace('postmessage ', '');
+ $(window).bind(eventName, function (e) {
+ e = e.originalEvent;
+ var data = e.data,
+ ev;
+ if (e.origin === target && data.id === message.id) {
+ if (data.type === 'progress') {
+ ev = document.createEvent('Event');
+ ev.initEvent(data.type, false, true);
+ $.extend(ev, data);
+ xhrUpload.dispatchEvent(ev);
+ } else {
+ completeCallback(
+ data.status,
+ data.statusText,
+ {postmessage: data.result},
+ data.headers
+ );
+ iframe.remove();
+ $(window).unbind(eventName);
+ }
+ }
+ });
+ iframe[0].contentWindow.postMessage(
+ message,
+ target
+ );
+ }).appendTo(document.body);
+ },
+ abort: function () {
+ if (iframe) {
+ iframe.remove();
+ }
+ }
+ };
+ }
+ });
+
+}));
diff --git a/library/jqupload/js/cors/jquery.xdr-transport.js b/library/jqupload/js/cors/jquery.xdr-transport.js
new file mode 100644
index 000000000..0044cc2d5
--- /dev/null
+++ b/library/jqupload/js/cors/jquery.xdr-transport.js
@@ -0,0 +1,86 @@
+/*
+ * jQuery XDomainRequest Transport Plugin 1.1.3
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2011, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ *
+ * Based on Julian Aubourg's ajaxHooks xdr.js:
+ * https://github.com/jaubourg/ajaxHooks/
+ */
+
+/* global define, window, XDomainRequest */
+
+(function (factory) {
+ 'use strict';
+ if (typeof define === 'function' && define.amd) {
+ // Register as an anonymous AMD module:
+ define(['jquery'], factory);
+ } else {
+ // Browser globals:
+ factory(window.jQuery);
+ }
+}(function ($) {
+ 'use strict';
+ if (window.XDomainRequest && !$.support.cors) {
+ $.ajaxTransport(function (s) {
+ if (s.crossDomain && s.async) {
+ if (s.timeout) {
+ s.xdrTimeout = s.timeout;
+ delete s.timeout;
+ }
+ var xdr;
+ return {
+ send: function (headers, completeCallback) {
+ var addParamChar = /\?/.test(s.url) ? '&' : '?';
+ function callback(status, statusText, responses, responseHeaders) {
+ xdr.onload = xdr.onerror = xdr.ontimeout = $.noop;
+ xdr = null;
+ completeCallback(status, statusText, responses, responseHeaders);
+ }
+ xdr = new XDomainRequest();
+ // XDomainRequest only supports GET and POST:
+ if (s.type === 'DELETE') {
+ s.url = s.url + addParamChar + '_method=DELETE';
+ s.type = 'POST';
+ } else if (s.type === 'PUT') {
+ s.url = s.url + addParamChar + '_method=PUT';
+ s.type = 'POST';
+ } else if (s.type === 'PATCH') {
+ s.url = s.url + addParamChar + '_method=PATCH';
+ s.type = 'POST';
+ }
+ xdr.open(s.type, s.url);
+ xdr.onload = function () {
+ callback(
+ 200,
+ 'OK',
+ {text: xdr.responseText},
+ 'Content-Type: ' + xdr.contentType
+ );
+ };
+ xdr.onerror = function () {
+ callback(404, 'Not Found');
+ };
+ if (s.xdrTimeout) {
+ xdr.ontimeout = function () {
+ callback(0, 'timeout');
+ };
+ xdr.timeout = s.xdrTimeout;
+ }
+ xdr.send((s.hasContent && s.data) || null);
+ },
+ abort: function () {
+ if (xdr) {
+ xdr.onerror = $.noop();
+ xdr.abort();
+ }
+ }
+ };
+ }
+ });
+ }
+}));
diff --git a/library/jqupload/js/jquery.fileupload-angular.js b/library/jqupload/js/jquery.fileupload-angular.js
new file mode 100644
index 000000000..666f51429
--- /dev/null
+++ b/library/jqupload/js/jquery.fileupload-angular.js
@@ -0,0 +1,428 @@
+/*
+ * jQuery File Upload AngularJS Plugin 2.1.3
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+/* jshint nomen:false */
+/* global define, angular */
+
+(function (factory) {
+ 'use strict';
+ if (typeof define === 'function' && define.amd) {
+ // Register as an anonymous AMD module:
+ define([
+ 'jquery',
+ 'angular',
+ './jquery.fileupload-image',
+ './jquery.fileupload-audio',
+ './jquery.fileupload-video',
+ './jquery.fileupload-validate'
+ ], factory);
+ } else {
+ factory();
+ }
+}(function () {
+ 'use strict';
+
+ angular.module('blueimp.fileupload', [])
+
+ // The fileUpload service provides configuration options
+ // for the fileUpload directive and default handlers for
+ // File Upload events:
+ .provider('fileUpload', function () {
+ var scopeEvalAsync = function (expression) {
+ var scope = angular.element(this)
+ .fileupload('option', 'scope')();
+ // Schedule a new $digest cycle if not already inside of one
+ // and evaluate the given expression:
+ scope.$evalAsync(expression);
+ },
+ addFileMethods = function (scope, data) {
+ var files = data.files,
+ file = files[0];
+ angular.forEach(files, function (file, index) {
+ file._index = index;
+ file.$state = function () {
+ return data.state();
+ };
+ file.$processing = function () {
+ return data.processing();
+ };
+ file.$progress = function () {
+ return data.progress();
+ };
+ file.$response = function () {
+ return data.response();
+ };
+ });
+ file.$submit = function () {
+ if (!file.error) {
+ return data.submit();
+ }
+ };
+ file.$cancel = function () {
+ return data.abort();
+ };
+ },
+ $config;
+ $config = this.defaults = {
+ handleResponse: function (e, data) {
+ var files = data.result && data.result.files;
+ if (files) {
+ data.scope().replace(data.files, files);
+ } else if (data.errorThrown ||
+ data.textStatus === 'error') {
+ data.files[0].error = data.errorThrown ||
+ data.textStatus;
+ }
+ },
+ add: function (e, data) {
+ if (e.isDefaultPrevented()) {
+ return false;
+ }
+ var scope = data.scope(),
+ filesCopy = [];
+ angular.forEach(data.files, function (file) {
+ filesCopy.push(file);
+ });
+ scope.$apply(function () {
+ addFileMethods(scope, data);
+ var method = scope.option('prependFiles') ?
+ 'unshift' : 'push';
+ Array.prototype[method].apply(scope.queue, data.files);
+ });
+ data.process(function () {
+ return scope.process(data);
+ }).always(function () {
+ scope.$apply(function () {
+ addFileMethods(scope, data);
+ scope.replace(filesCopy, data.files);
+ });
+ }).then(function () {
+ if ((scope.option('autoUpload') ||
+ data.autoUpload) &&
+ data.autoUpload !== false) {
+ data.submit();
+ }
+ });
+ },
+ progress: function (e, data) {
+ if (e.isDefaultPrevented()) {
+ return false;
+ }
+ data.scope().$apply();
+ },
+ done: function (e, data) {
+ if (e.isDefaultPrevented()) {
+ return false;
+ }
+ var that = this;
+ data.scope().$apply(function () {
+ data.handleResponse.call(that, e, data);
+ });
+ },
+ fail: function (e, data) {
+ if (e.isDefaultPrevented()) {
+ return false;
+ }
+ var that = this,
+ scope = data.scope();
+ if (data.errorThrown === 'abort') {
+ scope.clear(data.files);
+ return;
+ }
+ scope.$apply(function () {
+ data.handleResponse.call(that, e, data);
+ });
+ },
+ stop: scopeEvalAsync,
+ processstart: scopeEvalAsync,
+ processstop: scopeEvalAsync,
+ getNumberOfFiles: function () {
+ var scope = this.scope();
+ return scope.queue.length - scope.processing();
+ },
+ dataType: 'json',
+ autoUpload: false
+ };
+ this.$get = [
+ function () {
+ return {
+ defaults: $config
+ };
+ }
+ ];
+ })
+
+ // Format byte numbers to readable presentations:
+ .provider('formatFileSizeFilter', function () {
+ var $config = {
+ // Byte units following the IEC format
+ // http://en.wikipedia.org/wiki/Kilobyte
+ units: [
+ {size: 1000000000, suffix: ' GB'},
+ {size: 1000000, suffix: ' MB'},
+ {size: 1000, suffix: ' KB'}
+ ]
+ };
+ this.defaults = $config;
+ this.$get = function () {
+ return function (bytes) {
+ if (!angular.isNumber(bytes)) {
+ return '';
+ }
+ var unit = true,
+ i = 0,
+ prefix,
+ suffix;
+ while (unit) {
+ unit = $config.units[i];
+ prefix = unit.prefix || '';
+ suffix = unit.suffix || '';
+ if (i === $config.units.length - 1 || bytes >= unit.size) {
+ return prefix + (bytes / unit.size).toFixed(2) + suffix;
+ }
+ i += 1;
+ }
+ };
+ };
+ })
+
+ // The FileUploadController initializes the fileupload widget and
+ // provides scope methods to control the File Upload functionality:
+ .controller('FileUploadController', [
+ '$scope', '$element', '$attrs', '$window', 'fileUpload',
+ function ($scope, $element, $attrs, $window, fileUpload) {
+ var uploadMethods = {
+ progress: function () {
+ return $element.fileupload('progress');
+ },
+ active: function () {
+ return $element.fileupload('active');
+ },
+ option: function (option, data) {
+ return $element.fileupload('option', option, data);
+ },
+ add: function (data) {
+ return $element.fileupload('add', data);
+ },
+ send: function (data) {
+ return $element.fileupload('send', data);
+ },
+ process: function (data) {
+ return $element.fileupload('process', data);
+ },
+ processing: function (data) {
+ return $element.fileupload('processing', data);
+ }
+ };
+ $scope.disabled = !$window.jQuery.support.fileInput;
+ $scope.queue = $scope.queue || [];
+ $scope.clear = function (files) {
+ var queue = this.queue,
+ i = queue.length,
+ file = files,
+ length = 1;
+ if (angular.isArray(files)) {
+ file = files[0];
+ length = files.length;
+ }
+ while (i) {
+ i -= 1;
+ if (queue[i] === file) {
+ return queue.splice(i, length);
+ }
+ }
+ };
+ $scope.replace = function (oldFiles, newFiles) {
+ var queue = this.queue,
+ file = oldFiles[0],
+ i,
+ j;
+ for (i = 0; i < queue.length; i += 1) {
+ if (queue[i] === file) {
+ for (j = 0; j < newFiles.length; j += 1) {
+ queue[i + j] = newFiles[j];
+ }
+ return;
+ }
+ }
+ };
+ $scope.applyOnQueue = function (method) {
+ var list = this.queue.slice(0),
+ i,
+ file;
+ for (i = 0; i < list.length; i += 1) {
+ file = list[i];
+ if (file[method]) {
+ file[method]();
+ }
+ }
+ };
+ $scope.submit = function () {
+ this.applyOnQueue('$submit');
+ };
+ $scope.cancel = function () {
+ this.applyOnQueue('$cancel');
+ };
+ // Add upload methods to the scope:
+ angular.extend($scope, uploadMethods);
+ // The fileupload widget will initialize with
+ // the options provided via "data-"-parameters,
+ // as well as those given via options object:
+ $element.fileupload(angular.extend(
+ {scope: function () {
+ return $scope;
+ }},
+ fileUpload.defaults
+ )).on('fileuploadadd', function (e, data) {
+ data.scope = $scope.option('scope');
+ }).on('fileuploadfail', function (e, data) {
+ if (data.errorThrown === 'abort') {
+ return;
+ }
+ if (data.dataType &&
+ data.dataType.indexOf('json') === data.dataType.length - 4) {
+ try {
+ data.result = angular.fromJson(data.jqXHR.responseText);
+ } catch (ignore) {}
+ }
+ }).on([
+ 'fileuploadadd',
+ 'fileuploadsubmit',
+ 'fileuploadsend',
+ 'fileuploaddone',
+ 'fileuploadfail',
+ 'fileuploadalways',
+ 'fileuploadprogress',
+ 'fileuploadprogressall',
+ 'fileuploadstart',
+ 'fileuploadstop',
+ 'fileuploadchange',
+ 'fileuploadpaste',
+ 'fileuploaddrop',
+ 'fileuploaddragover',
+ 'fileuploadchunksend',
+ 'fileuploadchunkdone',
+ 'fileuploadchunkfail',
+ 'fileuploadchunkalways',
+ 'fileuploadprocessstart',
+ 'fileuploadprocess',
+ 'fileuploadprocessdone',
+ 'fileuploadprocessfail',
+ 'fileuploadprocessalways',
+ 'fileuploadprocessstop'
+ ].join(' '), function (e, data) {
+ if ($scope.$emit(e.type, data).defaultPrevented) {
+ e.preventDefault();
+ }
+ }).on('remove', function () {
+ // Remove upload methods from the scope,
+ // when the widget is removed:
+ var method;
+ for (method in uploadMethods) {
+ if (uploadMethods.hasOwnProperty(method)) {
+ delete $scope[method];
+ }
+ }
+ });
+ // Observe option changes:
+ $scope.$watch(
+ $attrs.fileUpload,
+ function (newOptions) {
+ if (newOptions) {
+ $element.fileupload('option', newOptions);
+ }
+ }
+ );
+ }
+ ])
+
+ // Provide File Upload progress feedback:
+ .controller('FileUploadProgressController', [
+ '$scope', '$attrs', '$parse',
+ function ($scope, $attrs, $parse) {
+ var fn = $parse($attrs.fileUploadProgress),
+ update = function () {
+ var progress = fn($scope);
+ if (!progress || !progress.total) {
+ return;
+ }
+ $scope.num = Math.floor(
+ progress.loaded / progress.total * 100
+ );
+ };
+ update();
+ $scope.$watch(
+ $attrs.fileUploadProgress + '.loaded',
+ function (newValue, oldValue) {
+ if (newValue !== oldValue) {
+ update();
+ }
+ }
+ );
+ }
+ ])
+
+ // Display File Upload previews:
+ .controller('FileUploadPreviewController', [
+ '$scope', '$element', '$attrs',
+ function ($scope, $element, $attrs) {
+ $scope.$watch(
+ $attrs.fileUploadPreview + '.preview',
+ function (preview) {
+ $element.empty();
+ if (preview) {
+ $element.append(preview);
+ }
+ }
+ );
+ }
+ ])
+
+ .directive('fileUpload', function () {
+ return {
+ controller: 'FileUploadController',
+ scope: true
+ };
+ })
+
+ .directive('fileUploadProgress', function () {
+ return {
+ controller: 'FileUploadProgressController',
+ scope: true
+ };
+ })
+
+ .directive('fileUploadPreview', function () {
+ return {
+ controller: 'FileUploadPreviewController'
+ };
+ })
+
+ // Enhance the HTML5 download attribute to
+ // allow drag&drop of files to the desktop:
+ .directive('download', function () {
+ return function (scope, elm) {
+ elm.on('dragstart', function (e) {
+ try {
+ e.originalEvent.dataTransfer.setData(
+ 'DownloadURL',
+ [
+ 'application/octet-stream',
+ elm.prop('download'),
+ elm.prop('href')
+ ].join(':')
+ );
+ } catch (ignore) {}
+ });
+ };
+ });
+
+}));
diff --git a/library/jqupload/js/jquery.fileupload-audio.js b/library/jqupload/js/jquery.fileupload-audio.js
new file mode 100644
index 000000000..575800e82
--- /dev/null
+++ b/library/jqupload/js/jquery.fileupload-audio.js
@@ -0,0 +1,106 @@
+/*
+ * jQuery File Upload Audio Preview Plugin 1.0.3
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+/* jshint nomen:false */
+/* global define, window, document */
+
+(function (factory) {
+ 'use strict';
+ if (typeof define === 'function' && define.amd) {
+ // Register as an anonymous AMD module:
+ define([
+ 'jquery',
+ 'load-image',
+ './jquery.fileupload-process'
+ ], factory);
+ } else {
+ // Browser globals:
+ factory(
+ window.jQuery,
+ window.loadImage
+ );
+ }
+}(function ($, loadImage) {
+ 'use strict';
+
+ // Prepend to the default processQueue:
+ $.blueimp.fileupload.prototype.options.processQueue.unshift(
+ {
+ action: 'loadAudio',
+ // Use the action as prefix for the "@" options:
+ prefix: true,
+ fileTypes: '@',
+ maxFileSize: '@',
+ disabled: '@disableAudioPreview'
+ },
+ {
+ action: 'setAudio',
+ name: '@audioPreviewName',
+ disabled: '@disableAudioPreview'
+ }
+ );
+
+ // The File Upload Audio Preview plugin extends the fileupload widget
+ // with audio preview functionality:
+ $.widget('blueimp.fileupload', $.blueimp.fileupload, {
+
+ options: {
+ // The regular expression for the types of audio files to load,
+ // matched against the file type:
+ loadAudioFileTypes: /^audio\/.*$/
+ },
+
+ _audioElement: document.createElement('audio'),
+
+ processActions: {
+
+ // Loads the audio file given via data.files and data.index
+ // as audio element if the browser supports playing it.
+ // Accepts the options fileTypes (regular expression)
+ // and maxFileSize (integer) to limit the files to load:
+ loadAudio: function (data, options) {
+ if (options.disabled) {
+ return data;
+ }
+ var file = data.files[data.index],
+ url,
+ audio;
+ if (this._audioElement.canPlayType &&
+ this._audioElement.canPlayType(file.type) &&
+ ($.type(options.maxFileSize) !== 'number' ||
+ file.size <= options.maxFileSize) &&
+ (!options.fileTypes ||
+ options.fileTypes.test(file.type))) {
+ url = loadImage.createObjectURL(file);
+ if (url) {
+ audio = this._audioElement.cloneNode(false);
+ audio.src = url;
+ audio.controls = true;
+ data.audio = audio;
+ return data;
+ }
+ }
+ return data;
+ },
+
+ // Sets the audio element as a property of the file object:
+ setAudio: function (data, options) {
+ if (data.audio && !options.disabled) {
+ data.files[data.index][options.name || 'preview'] = data.audio;
+ }
+ return data;
+ }
+
+ }
+
+ });
+
+}));
diff --git a/library/jqupload/js/jquery.fileupload-image.js b/library/jqupload/js/jquery.fileupload-image.js
new file mode 100644
index 000000000..8fbf7d42c
--- /dev/null
+++ b/library/jqupload/js/jquery.fileupload-image.js
@@ -0,0 +1,309 @@
+/*
+ * jQuery File Upload Image Preview & Resize Plugin 1.7.0
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+/* jshint nomen:false */
+/* global define, window, Blob */
+
+(function (factory) {
+ 'use strict';
+ if (typeof define === 'function' && define.amd) {
+ // Register as an anonymous AMD module:
+ define([
+ 'jquery',
+ 'load-image',
+ 'load-image-meta',
+ 'load-image-exif',
+ 'load-image-ios',
+ 'canvas-to-blob',
+ './jquery.fileupload-process'
+ ], factory);
+ } else {
+ // Browser globals:
+ factory(
+ window.jQuery,
+ window.loadImage
+ );
+ }
+}(function ($, loadImage) {
+ 'use strict';
+
+ // Prepend to the default processQueue:
+ $.blueimp.fileupload.prototype.options.processQueue.unshift(
+ {
+ action: 'loadImageMetaData',
+ disableImageHead: '@',
+ disableExif: '@',
+ disableExifThumbnail: '@',
+ disableExifSub: '@',
+ disableExifGps: '@',
+ disabled: '@disableImageMetaDataLoad'
+ },
+ {
+ action: 'loadImage',
+ // Use the action as prefix for the "@" options:
+ prefix: true,
+ fileTypes: '@',
+ maxFileSize: '@',
+ noRevoke: '@',
+ disabled: '@disableImageLoad'
+ },
+ {
+ action: 'resizeImage',
+ // Use "image" as prefix for the "@" options:
+ prefix: 'image',
+ maxWidth: '@',
+ maxHeight: '@',
+ minWidth: '@',
+ minHeight: '@',
+ crop: '@',
+ orientation: '@',
+ forceResize: '@',
+ disabled: '@disableImageResize'
+ },
+ {
+ action: 'saveImage',
+ quality: '@imageQuality',
+ type: '@imageType',
+ disabled: '@disableImageResize'
+ },
+ {
+ action: 'saveImageMetaData',
+ disabled: '@disableImageMetaDataSave'
+ },
+ {
+ action: 'resizeImage',
+ // Use "preview" as prefix for the "@" options:
+ prefix: 'preview',
+ maxWidth: '@',
+ maxHeight: '@',
+ minWidth: '@',
+ minHeight: '@',
+ crop: '@',
+ orientation: '@',
+ thumbnail: '@',
+ canvas: '@',
+ disabled: '@disableImagePreview'
+ },
+ {
+ action: 'setImage',
+ name: '@imagePreviewName',
+ disabled: '@disableImagePreview'
+ },
+ {
+ action: 'deleteImageReferences',
+ disabled: '@disableImageReferencesDeletion'
+ }
+ );
+
+ // The File Upload Resize plugin extends the fileupload widget
+ // with image resize functionality:
+ $.widget('blueimp.fileupload', $.blueimp.fileupload, {
+
+ options: {
+ // The regular expression for the types of images to load:
+ // matched against the file type:
+ loadImageFileTypes: /^image\/(gif|jpeg|png)$/,
+ // The maximum file size of images to load:
+ loadImageMaxFileSize: 10000000, // 10MB
+ // The maximum width of resized images:
+ imageMaxWidth: 1920,
+ // The maximum height of resized images:
+ imageMaxHeight: 1080,
+ // Defines the image orientation (1-8) or takes the orientation
+ // value from Exif data if set to true:
+ imageOrientation: false,
+ // Define if resized images should be cropped or only scaled:
+ imageCrop: false,
+ // Disable the resize image functionality by default:
+ disableImageResize: true,
+ // The maximum width of the preview images:
+ previewMaxWidth: 80,
+ // The maximum height of the preview images:
+ previewMaxHeight: 80,
+ // Defines the preview orientation (1-8) or takes the orientation
+ // value from Exif data if set to true:
+ previewOrientation: true,
+ // Create the preview using the Exif data thumbnail:
+ previewThumbnail: true,
+ // Define if preview images should be cropped or only scaled:
+ previewCrop: false,
+ // Define if preview images should be resized as canvas elements:
+ previewCanvas: true
+ },
+
+ processActions: {
+
+ // Loads the image given via data.files and data.index
+ // as img element, if the browser supports the File API.
+ // Accepts the options fileTypes (regular expression)
+ // and maxFileSize (integer) to limit the files to load:
+ loadImage: function (data, options) {
+ if (options.disabled) {
+ return data;
+ }
+ var that = this,
+ file = data.files[data.index],
+ dfd = $.Deferred();
+ if (($.type(options.maxFileSize) === 'number' &&
+ file.size > options.maxFileSize) ||
+ (options.fileTypes &&
+ !options.fileTypes.test(file.type)) ||
+ !loadImage(
+ file,
+ function (img) {
+ if (img.src) {
+ data.img = img;
+ }
+ dfd.resolveWith(that, [data]);
+ },
+ options
+ )) {
+ return data;
+ }
+ return dfd.promise();
+ },
+
+ // Resizes the image given as data.canvas or data.img
+ // and updates data.canvas or data.img with the resized image.
+ // Also stores the resized image as preview property.
+ // Accepts the options maxWidth, maxHeight, minWidth,
+ // minHeight, canvas and crop:
+ resizeImage: function (data, options) {
+ if (options.disabled || !(data.canvas || data.img)) {
+ return data;
+ }
+ options = $.extend({canvas: true}, options);
+ var that = this,
+ dfd = $.Deferred(),
+ img = (options.canvas && data.canvas) || data.img,
+ resolve = function (newImg) {
+ if (newImg && (newImg.width !== img.width ||
+ newImg.height !== img.height ||
+ options.forceResize)) {
+ data[newImg.getContext ? 'canvas' : 'img'] = newImg;
+ }
+ data.preview = newImg;
+ dfd.resolveWith(that, [data]);
+ },
+ thumbnail;
+ if (data.exif) {
+ if (options.orientation === true) {
+ options.orientation = data.exif.get('Orientation');
+ }
+ if (options.thumbnail) {
+ thumbnail = data.exif.get('Thumbnail');
+ if (thumbnail) {
+ loadImage(thumbnail, resolve, options);
+ return dfd.promise();
+ }
+ }
+ }
+ if (img) {
+ resolve(loadImage.scale(img, options));
+ return dfd.promise();
+ }
+ return data;
+ },
+
+ // Saves the processed image given as data.canvas
+ // inplace at data.index of data.files:
+ saveImage: function (data, options) {
+ if (!data.canvas || options.disabled) {
+ return data;
+ }
+ var that = this,
+ file = data.files[data.index],
+ dfd = $.Deferred();
+ if (data.canvas.toBlob) {
+ data.canvas.toBlob(
+ function (blob) {
+ if (!blob.name) {
+ if (file.type === blob.type) {
+ blob.name = file.name;
+ } else if (file.name) {
+ blob.name = file.name.replace(
+ /\..+$/,
+ '.' + blob.type.substr(6)
+ );
+ }
+ }
+ // Don't restore invalid meta data:
+ if (file.type !== blob.type) {
+ delete data.imageHead;
+ }
+ // Store the created blob at the position
+ // of the original file in the files list:
+ data.files[data.index] = blob;
+ dfd.resolveWith(that, [data]);
+ },
+ options.type || file.type,
+ options.quality
+ );
+ } else {
+ return data;
+ }
+ return dfd.promise();
+ },
+
+ loadImageMetaData: function (data, options) {
+ if (options.disabled) {
+ return data;
+ }
+ var that = this,
+ dfd = $.Deferred();
+ loadImage.parseMetaData(data.files[data.index], function (result) {
+ $.extend(data, result);
+ dfd.resolveWith(that, [data]);
+ }, options);
+ return dfd.promise();
+ },
+
+ saveImageMetaData: function (data, options) {
+ if (!(data.imageHead && data.canvas &&
+ data.canvas.toBlob && !options.disabled)) {
+ return data;
+ }
+ var file = data.files[data.index],
+ blob = new Blob([
+ data.imageHead,
+ // Resized images always have a head size of 20 bytes,
+ // including the JPEG marker and a minimal JFIF header:
+ this._blobSlice.call(file, 20)
+ ], {type: file.type});
+ blob.name = file.name;
+ data.files[data.index] = blob;
+ return data;
+ },
+
+ // Sets the resized version of the image as a property of the
+ // file object, must be called after "saveImage":
+ setImage: function (data, options) {
+ if (data.preview && !options.disabled) {
+ data.files[data.index][options.name || 'preview'] = data.preview;
+ }
+ return data;
+ },
+
+ deleteImageReferences: function (data, options) {
+ if (!options.disabled) {
+ delete data.img;
+ delete data.canvas;
+ delete data.preview;
+ delete data.imageHead;
+ }
+ return data;
+ }
+
+ }
+
+ });
+
+}));
diff --git a/library/jqupload/js/jquery.fileupload-jquery-ui.js b/library/jqupload/js/jquery.fileupload-jquery-ui.js
new file mode 100755
index 000000000..7b4ffdf05
--- /dev/null
+++ b/library/jqupload/js/jquery.fileupload-jquery-ui.js
@@ -0,0 +1,144 @@
+/*
+ * jQuery File Upload jQuery UI Plugin 8.7.0
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+/* jshint nomen:false */
+/* global define, window */
+
+(function (factory) {
+ 'use strict';
+ if (typeof define === 'function' && define.amd) {
+ // Register as an anonymous AMD module:
+ define(['jquery', './jquery.fileupload-ui'], factory);
+ } else {
+ // Browser globals:
+ factory(window.jQuery);
+ }
+}(function ($) {
+ 'use strict';
+
+ $.widget('blueimp.fileupload', $.blueimp.fileupload, {
+
+ options: {
+ progress: function (e, data) {
+ if (data.context) {
+ data.context.find('.progress').progressbar(
+ 'option',
+ 'value',
+ parseInt(data.loaded / data.total * 100, 10)
+ );
+ }
+ },
+ progressall: function (e, data) {
+ var $this = $(this);
+ $this.find('.fileupload-progress')
+ .find('.progress').progressbar(
+ 'option',
+ 'value',
+ parseInt(data.loaded / data.total * 100, 10)
+ ).end()
+ .find('.progress-extended').each(function () {
+ $(this).html(
+ ($this.data('blueimp-fileupload') ||
+ $this.data('fileupload'))
+ ._renderExtendedProgress(data)
+ );
+ });
+ }
+ },
+
+ _renderUpload: function (func, files) {
+ var node = this._super(func, files),
+ showIconText = $(window).width() > 480;
+ node.find('.progress').empty().progressbar();
+ node.find('.start').button({
+ icons: {primary: 'ui-icon-circle-arrow-e'},
+ text: showIconText
+ });
+ node.find('.cancel').button({
+ icons: {primary: 'ui-icon-cancel'},
+ text: showIconText
+ });
+ if (node.hasClass('fade')) {
+ node.hide();
+ }
+ return node;
+ },
+
+ _renderDownload: function (func, files) {
+ var node = this._super(func, files),
+ showIconText = $(window).width() > 480;
+ node.find('.delete').button({
+ icons: {primary: 'ui-icon-trash'},
+ text: showIconText
+ });
+ if (node.hasClass('fade')) {
+ node.hide();
+ }
+ return node;
+ },
+
+ _transition: function (node) {
+ var deferred = $.Deferred();
+ if (node.hasClass('fade')) {
+ node.fadeToggle(
+ this.options.transitionDuration,
+ this.options.transitionEasing,
+ function () {
+ deferred.resolveWith(node);
+ }
+ );
+ } else {
+ deferred.resolveWith(node);
+ }
+ return deferred;
+ },
+
+ _create: function () {
+ this._super();
+ this.element
+ .find('.fileupload-buttonbar')
+ .find('.fileinput-button').each(function () {
+ var input = $(this).find('input:file').detach();
+ $(this)
+ .button({icons: {primary: 'ui-icon-plusthick'}})
+ .append(input);
+ })
+ .end().find('.start')
+ .button({icons: {primary: 'ui-icon-circle-arrow-e'}})
+ .end().find('.cancel')
+ .button({icons: {primary: 'ui-icon-cancel'}})
+ .end().find('.delete')
+ .button({icons: {primary: 'ui-icon-trash'}})
+ .end().find('.progress').progressbar();
+ },
+
+ _destroy: function () {
+ this.element
+ .find('.fileupload-buttonbar')
+ .find('.fileinput-button').each(function () {
+ var input = $(this).find('input:file').detach();
+ $(this)
+ .button('destroy')
+ .append(input);
+ })
+ .end().find('.start')
+ .button('destroy')
+ .end().find('.cancel')
+ .button('destroy')
+ .end().find('.delete')
+ .button('destroy')
+ .end().find('.progress').progressbar('destroy');
+ this._super();
+ }
+
+ });
+
+}));
diff --git a/library/jqupload/js/jquery.fileupload-process.js b/library/jqupload/js/jquery.fileupload-process.js
new file mode 100644
index 000000000..8a6b929a6
--- /dev/null
+++ b/library/jqupload/js/jquery.fileupload-process.js
@@ -0,0 +1,172 @@
+/*
+ * jQuery File Upload Processing Plugin 1.3.0
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2012, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+/* jshint nomen:false */
+/* global define, window */
+
+(function (factory) {
+ 'use strict';
+ if (typeof define === 'function' && define.amd) {
+ // Register as an anonymous AMD module:
+ define([
+ 'jquery',
+ './jquery.fileupload'
+ ], factory);
+ } else {
+ // Browser globals:
+ factory(
+ window.jQuery
+ );
+ }
+}(function ($) {
+ 'use strict';
+
+ var originalAdd = $.blueimp.fileupload.prototype.options.add;
+
+ // The File Upload Processing plugin extends the fileupload widget
+ // with file processing functionality:
+ $.widget('blueimp.fileupload', $.blueimp.fileupload, {
+
+ options: {
+ // The list of processing actions:
+ processQueue: [
+ /*
+ {
+ action: 'log',
+ type: 'debug'
+ }
+ */
+ ],
+ add: function (e, data) {
+ var $this = $(this);
+ data.process(function () {
+ return $this.fileupload('process', data);
+ });
+ originalAdd.call(this, e, data);
+ }
+ },
+
+ processActions: {
+ /*
+ log: function (data, options) {
+ console[options.type](
+ 'Processing "' + data.files[data.index].name + '"'
+ );
+ }
+ */
+ },
+
+ _processFile: function (data, originalData) {
+ var that = this,
+ dfd = $.Deferred().resolveWith(that, [data]),
+ chain = dfd.promise();
+ this._trigger('process', null, data);
+ $.each(data.processQueue, function (i, settings) {
+ var func = function (data) {
+ if (originalData.errorThrown) {
+ return $.Deferred()
+ .rejectWith(that, [originalData]).promise();
+ }
+ return that.processActions[settings.action].call(
+ that,
+ data,
+ settings
+ );
+ };
+ chain = chain.pipe(func, settings.always && func);
+ });
+ chain
+ .done(function () {
+ that._trigger('processdone', null, data);
+ that._trigger('processalways', null, data);
+ })
+ .fail(function () {
+ that._trigger('processfail', null, data);
+ that._trigger('processalways', null, data);
+ });
+ return chain;
+ },
+
+ // Replaces the settings of each processQueue item that
+ // are strings starting with an "@", using the remaining
+ // substring as key for the option map,
+ // e.g. "@autoUpload" is replaced with options.autoUpload:
+ _transformProcessQueue: function (options) {
+ var processQueue = [];
+ $.each(options.processQueue, function () {
+ var settings = {},
+ action = this.action,
+ prefix = this.prefix === true ? action : this.prefix;
+ $.each(this, function (key, value) {
+ if ($.type(value) === 'string' &&
+ value.charAt(0) === '@') {
+ settings[key] = options[
+ value.slice(1) || (prefix ? prefix +
+ key.charAt(0).toUpperCase() + key.slice(1) : key)
+ ];
+ } else {
+ settings[key] = value;
+ }
+
+ });
+ processQueue.push(settings);
+ });
+ options.processQueue = processQueue;
+ },
+
+ // Returns the number of files currently in the processsing queue:
+ processing: function () {
+ return this._processing;
+ },
+
+ // Processes the files given as files property of the data parameter,
+ // returns a Promise object that allows to bind callbacks:
+ process: function (data) {
+ var that = this,
+ options = $.extend({}, this.options, data);
+ if (options.processQueue && options.processQueue.length) {
+ this._transformProcessQueue(options);
+ if (this._processing === 0) {
+ this._trigger('processstart');
+ }
+ $.each(data.files, function (index) {
+ var opts = index ? $.extend({}, options) : options,
+ func = function () {
+ if (data.errorThrown) {
+ return $.Deferred()
+ .rejectWith(that, [data]).promise();
+ }
+ return that._processFile(opts, data);
+ };
+ opts.index = index;
+ that._processing += 1;
+ that._processingQueue = that._processingQueue.pipe(func, func)
+ .always(function () {
+ that._processing -= 1;
+ if (that._processing === 0) {
+ that._trigger('processstop');
+ }
+ });
+ });
+ }
+ return this._processingQueue;
+ },
+
+ _create: function () {
+ this._super();
+ this._processing = 0;
+ this._processingQueue = $.Deferred().resolveWith(this)
+ .promise();
+ }
+
+ });
+
+}));
diff --git a/library/jqupload/js/jquery.fileupload-ui.js b/library/jqupload/js/jquery.fileupload-ui.js
new file mode 100644
index 000000000..417edb73f
--- /dev/null
+++ b/library/jqupload/js/jquery.fileupload-ui.js
@@ -0,0 +1,701 @@
+/*
+ * jQuery File Upload User Interface Plugin 9.5.1
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2010, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+/* jshint nomen:false */
+/* global define, window */
+
+(function (factory) {
+ 'use strict';
+ if (typeof define === 'function' && define.amd) {
+ // Register as an anonymous AMD module:
+ define([
+ 'jquery',
+ 'tmpl',
+ './jquery.fileupload-image',
+ './jquery.fileupload-audio',
+ './jquery.fileupload-video',
+ './jquery.fileupload-validate'
+ ], factory);
+ } else {
+ // Browser globals:
+ factory(
+ window.jQuery,
+ window.tmpl
+ );
+ }
+}(function ($, tmpl) {
+ 'use strict';
+
+ $.blueimp.fileupload.prototype._specialOptions.push(
+ 'filesContainer',
+ 'uploadTemplateId',
+ 'downloadTemplateId'
+ );
+
+ // The UI version extends the file upload widget
+ // and adds complete user interface interaction:
+ $.widget('blueimp.fileupload', $.blueimp.fileupload, {
+
+ options: {
+ // By default, files added to the widget are uploaded as soon
+ // as the user clicks on the start buttons. To enable automatic
+ // uploads, set the following option to true:
+ autoUpload: false,
+ // The ID of the upload template:
+ uploadTemplateId: 'template-upload',
+ // The ID of the download template:
+ downloadTemplateId: 'template-download',
+ // The container for the list of files. If undefined, it is set to
+ // an element with class "files" inside of the widget element:
+ filesContainer: undefined,
+ // By default, files are appended to the files container.
+ // Set the following option to true, to prepend files instead:
+ prependFiles: false,
+ // The expected data type of the upload response, sets the dataType
+ // option of the $.ajax upload requests:
+ dataType: 'json',
+
+ // Function returning the current number of files,
+ // used by the maxNumberOfFiles validation:
+ getNumberOfFiles: function () {
+ return this.filesContainer.children()
+ .not('.processing').length;
+ },
+
+ // Callback to retrieve the list of files from the server response:
+ getFilesFromResponse: function (data) {
+ if (data.result && $.isArray(data.result.files)) {
+ return data.result.files;
+ }
+ return [];
+ },
+
+ // The add callback is invoked as soon as files are added to the fileupload
+ // widget (via file input selection, drag & drop or add API call).
+ // See the basic file upload widget for more information:
+ add: function (e, data) {
+ if (e.isDefaultPrevented()) {
+ return false;
+ }
+ var $this = $(this),
+ that = $this.data('blueimp-fileupload') ||
+ $this.data('fileupload'),
+ options = that.options;
+ data.context = that._renderUpload(data.files)
+ .data('data', data)
+ .addClass('processing');
+ options.filesContainer[
+ options.prependFiles ? 'prepend' : 'append'
+ ](data.context);
+ that._forceReflow(data.context);
+ $.when(
+ that._transition(data.context),
+ data.process(function () {
+ return $this.fileupload('process', data);
+ })
+ ).always(function () {
+ data.context.each(function (index) {
+ $(this).find('.size').text(
+ that._formatFileSize(data.files[index].size)
+ );
+ }).removeClass('processing');
+ that._renderPreviews(data);
+ }).done(function () {
+ data.context.find('.start').prop('disabled', false);
+ if ((that._trigger('added', e, data) !== false) &&
+ (options.autoUpload || data.autoUpload) &&
+ data.autoUpload !== false) {
+ data.submit();
+ }
+ }).fail(function () {
+ if (data.files.error) {
+ data.context.each(function (index) {
+ var error = data.files[index].error;
+ if (error) {
+ $(this).find('.error').text(error);
+ }
+ });
+ }
+ });
+ },
+ // Callback for the start of each file upload request:
+ send: function (e, data) {
+ if (e.isDefaultPrevented()) {
+ return false;
+ }
+ var that = $(this).data('blueimp-fileupload') ||
+ $(this).data('fileupload');
+ if (data.context && data.dataType &&
+ data.dataType.substr(0, 6) === 'iframe') {
+ // Iframe Transport does not support progress events.
+ // In lack of an indeterminate progress bar, we set
+ // the progress to 100%, showing the full animated bar:
+ data.context
+ .find('.progress').addClass(
+ !$.support.transition && 'progress-animated'
+ )
+ .attr('aria-valuenow', 100)
+ .children().first().css(
+ 'width',
+ '100%'
+ );
+ }
+ return that._trigger('sent', e, data);
+ },
+ // Callback for successful uploads:
+ done: function (e, data) {
+ if (e.isDefaultPrevented()) {
+ return false;
+ }
+ var that = $(this).data('blueimp-fileupload') ||
+ $(this).data('fileupload'),
+ getFilesFromResponse = data.getFilesFromResponse ||
+ that.options.getFilesFromResponse,
+ files = getFilesFromResponse(data),
+ template,
+ deferred;
+ if (data.context) {
+ data.context.each(function (index) {
+ var file = files[index] ||
+ {error: 'Empty file upload result'};
+ deferred = that._addFinishedDeferreds();
+ that._transition($(this)).done(
+ function () {
+ var node = $(this);
+ template = that._renderDownload([file])
+ .replaceAll(node);
+ that._forceReflow(template);
+ that._transition(template).done(
+ function () {
+ data.context = $(this);
+ that._trigger('completed', e, data);
+ that._trigger('finished', e, data);
+ deferred.resolve();
+ }
+ );
+ }
+ );
+ });
+ } else {
+ template = that._renderDownload(files)[
+ that.options.prependFiles ? 'prependTo' : 'appendTo'
+ ](that.options.filesContainer);
+ that._forceReflow(template);
+ deferred = that._addFinishedDeferreds();
+ that._transition(template).done(
+ function () {
+ data.context = $(this);
+ that._trigger('completed', e, data);
+ that._trigger('finished', e, data);
+ deferred.resolve();
+ }
+ );
+ }
+ },
+ // Callback for failed (abort or error) uploads:
+ fail: function (e, data) {
+ if (e.isDefaultPrevented()) {
+ return false;
+ }
+ var that = $(this).data('blueimp-fileupload') ||
+ $(this).data('fileupload'),
+ template,
+ deferred;
+ if (data.context) {
+ data.context.each(function (index) {
+ if (data.errorThrown !== 'abort') {
+ var file = data.files[index];
+ file.error = file.error || data.errorThrown ||
+ true;
+ deferred = that._addFinishedDeferreds();
+ that._transition($(this)).done(
+ function () {
+ var node = $(this);
+ template = that._renderDownload([file])
+ .replaceAll(node);
+ that._forceReflow(template);
+ that._transition(template).done(
+ function () {
+ data.context = $(this);
+ that._trigger('failed', e, data);
+ that._trigger('finished', e, data);
+ deferred.resolve();
+ }
+ );
+ }
+ );
+ } else {
+ deferred = that._addFinishedDeferreds();
+ that._transition($(this)).done(
+ function () {
+ $(this).remove();
+ that._trigger('failed', e, data);
+ that._trigger('finished', e, data);
+ deferred.resolve();
+ }
+ );
+ }
+ });
+ } else if (data.errorThrown !== 'abort') {
+ data.context = that._renderUpload(data.files)[
+ that.options.prependFiles ? 'prependTo' : 'appendTo'
+ ](that.options.filesContainer)
+ .data('data', data);
+ that._forceReflow(data.context);
+ deferred = that._addFinishedDeferreds();
+ that._transition(data.context).done(
+ function () {
+ data.context = $(this);
+ that._trigger('failed', e, data);
+ that._trigger('finished', e, data);
+ deferred.resolve();
+ }
+ );
+ } else {
+ that._trigger('failed', e, data);
+ that._trigger('finished', e, data);
+ that._addFinishedDeferreds().resolve();
+ }
+ },
+ // Callback for upload progress events:
+ progress: function (e, data) {
+ if (e.isDefaultPrevented()) {
+ return false;
+ }
+ var progress = Math.floor(data.loaded / data.total * 100);
+ if (data.context) {
+ data.context.each(function () {
+ $(this).find('.progress')
+ .attr('aria-valuenow', progress)
+ .children().first().css(
+ 'width',
+ progress + '%'
+ );
+ });
+ }
+ },
+ // Callback for global upload progress events:
+ progressall: function (e, data) {
+ if (e.isDefaultPrevented()) {
+ return false;
+ }
+ var $this = $(this),
+ progress = Math.floor(data.loaded / data.total * 100),
+ globalProgressNode = $this.find('.fileupload-progress'),
+ extendedProgressNode = globalProgressNode
+ .find('.progress-extended');
+ if (extendedProgressNode.length) {
+ extendedProgressNode.html(
+ ($this.data('blueimp-fileupload') || $this.data('fileupload'))
+ ._renderExtendedProgress(data)
+ );
+ }
+ globalProgressNode
+ .find('.progress')
+ .attr('aria-valuenow', progress)
+ .children().first().css(
+ 'width',
+ progress + '%'
+ );
+ },
+ // Callback for uploads start, equivalent to the global ajaxStart event:
+ start: function (e) {
+ if (e.isDefaultPrevented()) {
+ return false;
+ }
+ var that = $(this).data('blueimp-fileupload') ||
+ $(this).data('fileupload');
+ that._resetFinishedDeferreds();
+ that._transition($(this).find('.fileupload-progress')).done(
+ function () {
+ that._trigger('started', e);
+ }
+ );
+ },
+ // Callback for uploads stop, equivalent to the global ajaxStop event:
+ stop: function (e) {
+ if (e.isDefaultPrevented()) {
+ return false;
+ }
+ var that = $(this).data('blueimp-fileupload') ||
+ $(this).data('fileupload'),
+ deferred = that._addFinishedDeferreds();
+ $.when.apply($, that._getFinishedDeferreds())
+ .done(function () {
+ that._trigger('stopped', e);
+ });
+ that._transition($(this).find('.fileupload-progress')).done(
+ function () {
+ $(this).find('.progress')
+ .attr('aria-valuenow', '0')
+ .children().first().css('width', '0%');
+ $(this).find('.progress-extended').html('&nbsp;');
+ deferred.resolve();
+ }
+ );
+ },
+ processstart: function (e) {
+ if (e.isDefaultPrevented()) {
+ return false;
+ }
+ $(this).addClass('fileupload-processing');
+ },
+ processstop: function (e) {
+ if (e.isDefaultPrevented()) {
+ return false;
+ }
+ $(this).removeClass('fileupload-processing');
+ },
+ // Callback for file deletion:
+ destroy: function (e, data) {
+ if (e.isDefaultPrevented()) {
+ return false;
+ }
+ var that = $(this).data('blueimp-fileupload') ||
+ $(this).data('fileupload'),
+ removeNode = function () {
+ that._transition(data.context).done(
+ function () {
+ $(this).remove();
+ that._trigger('destroyed', e, data);
+ }
+ );
+ };
+ if (data.url) {
+ data.dataType = data.dataType || that.options.dataType;
+ $.ajax(data).done(removeNode).fail(function () {
+ that._trigger('destroyfailed', e, data);
+ });
+ } else {
+ removeNode();
+ }
+ }
+ },
+
+ _resetFinishedDeferreds: function () {
+ this._finishedUploads = [];
+ },
+
+ _addFinishedDeferreds: function (deferred) {
+ if (!deferred) {
+ deferred = $.Deferred();
+ }
+ this._finishedUploads.push(deferred);
+ return deferred;
+ },
+
+ _getFinishedDeferreds: function () {
+ return this._finishedUploads;
+ },
+
+ // Link handler, that allows to download files
+ // by drag & drop of the links to the desktop:
+ _enableDragToDesktop: function () {
+ var link = $(this),
+ url = link.prop('href'),
+ name = link.prop('download'),
+ type = 'application/octet-stream';
+ link.bind('dragstart', function (e) {
+ try {
+ e.originalEvent.dataTransfer.setData(
+ 'DownloadURL',
+ [type, name, url].join(':')
+ );
+ } catch (ignore) {}
+ });
+ },
+
+ _formatFileSize: function (bytes) {
+ if (typeof bytes !== 'number') {
+ return '';
+ }
+ if (bytes >= 1000000000) {
+ return (bytes / 1000000000).toFixed(2) + ' GB';
+ }
+ if (bytes >= 1000000) {
+ return (bytes / 1000000).toFixed(2) + ' MB';
+ }
+ return (bytes / 1000).toFixed(2) + ' KB';
+ },
+
+ _formatBitrate: function (bits) {
+ if (typeof bits !== 'number') {
+ return '';
+ }
+ if (bits >= 1000000000) {
+ return (bits / 1000000000).toFixed(2) + ' Gbit/s';
+ }
+ if (bits >= 1000000) {
+ return (bits / 1000000).toFixed(2) + ' Mbit/s';
+ }
+ if (bits >= 1000) {
+ return (bits / 1000).toFixed(2) + ' kbit/s';
+ }
+ return bits.toFixed(2) + ' bit/s';
+ },
+
+ _formatTime: function (seconds) {
+ var date = new Date(seconds * 1000),
+ days = Math.floor(seconds / 86400);
+ days = days ? days + 'd ' : '';
+ return days +
+ ('0' + date.getUTCHours()).slice(-2) + ':' +
+ ('0' + date.getUTCMinutes()).slice(-2) + ':' +
+ ('0' + date.getUTCSeconds()).slice(-2);
+ },
+
+ _formatPercentage: function (floatValue) {
+ return (floatValue * 100).toFixed(2) + ' %';
+ },
+
+ _renderExtendedProgress: function (data) {
+ return this._formatBitrate(data.bitrate) + ' | ' +
+ this._formatTime(
+ (data.total - data.loaded) * 8 / data.bitrate
+ ) + ' | ' +
+ this._formatPercentage(
+ data.loaded / data.total
+ ) + ' | ' +
+ this._formatFileSize(data.loaded) + ' / ' +
+ this._formatFileSize(data.total);
+ },
+
+ _renderTemplate: function (func, files) {
+ if (!func) {
+ return $();
+ }
+ var result = func({
+ files: files,
+ formatFileSize: this._formatFileSize,
+ options: this.options
+ });
+ if (result instanceof $) {
+ return result;
+ }
+ return $(this.options.templatesContainer).html(result).children();
+ },
+
+ _renderPreviews: function (data) {
+ data.context.find('.preview').each(function (index, elm) {
+ $(elm).append(data.files[index].preview);
+ });
+ },
+
+ _renderUpload: function (files) {
+ return this._renderTemplate(
+ this.options.uploadTemplate,
+ files
+ );
+ },
+
+ _renderDownload: function (files) {
+ return this._renderTemplate(
+ this.options.downloadTemplate,
+ files
+ ).find('a[download]').each(this._enableDragToDesktop).end();
+ },
+
+ _startHandler: function (e) {
+ e.preventDefault();
+ var button = $(e.currentTarget),
+ template = button.closest('.template-upload'),
+ data = template.data('data');
+ button.prop('disabled', true);
+ if (data && data.submit) {
+ data.submit();
+ }
+ },
+
+ _cancelHandler: function (e) {
+ e.preventDefault();
+ var template = $(e.currentTarget)
+ .closest('.template-upload,.template-download'),
+ data = template.data('data') || {};
+ data.context = data.context || template;
+ if (data.abort) {
+ data.abort();
+ } else {
+ data.errorThrown = 'abort';
+ this._trigger('fail', e, data);
+ }
+ },
+
+ _deleteHandler: function (e) {
+ e.preventDefault();
+ var button = $(e.currentTarget);
+ this._trigger('destroy', e, $.extend({
+ context: button.closest('.template-download'),
+ type: 'DELETE'
+ }, button.data()));
+ },
+
+ _forceReflow: function (node) {
+ return $.support.transition && node.length &&
+ node[0].offsetWidth;
+ },
+
+ _transition: function (node) {
+ var dfd = $.Deferred();
+ if ($.support.transition && node.hasClass('fade') && node.is(':visible')) {
+ node.bind(
+ $.support.transition.end,
+ function (e) {
+ // Make sure we don't respond to other transitions events
+ // in the container element, e.g. from button elements:
+ if (e.target === node[0]) {
+ node.unbind($.support.transition.end);
+ dfd.resolveWith(node);
+ }
+ }
+ ).toggleClass('in');
+ } else {
+ node.toggleClass('in');
+ dfd.resolveWith(node);
+ }
+ return dfd;
+ },
+
+ _initButtonBarEventHandlers: function () {
+ var fileUploadButtonBar = this.element.find('.fileupload-buttonbar'),
+ filesList = this.options.filesContainer;
+ this._on(fileUploadButtonBar.find('.start'), {
+ click: function (e) {
+ e.preventDefault();
+ filesList.find('.start').click();
+ }
+ });
+ this._on(fileUploadButtonBar.find('.cancel'), {
+ click: function (e) {
+ e.preventDefault();
+ filesList.find('.cancel').click();
+ }
+ });
+ this._on(fileUploadButtonBar.find('.delete'), {
+ click: function (e) {
+ e.preventDefault();
+ filesList.find('.toggle:checked')
+ .closest('.template-download')
+ .find('.delete').click();
+ fileUploadButtonBar.find('.toggle')
+ .prop('checked', false);
+ }
+ });
+ this._on(fileUploadButtonBar.find('.toggle'), {
+ change: function (e) {
+ filesList.find('.toggle').prop(
+ 'checked',
+ $(e.currentTarget).is(':checked')
+ );
+ }
+ });
+ },
+
+ _destroyButtonBarEventHandlers: function () {
+ this._off(
+ this.element.find('.fileupload-buttonbar')
+ .find('.start, .cancel, .delete'),
+ 'click'
+ );
+ this._off(
+ this.element.find('.fileupload-buttonbar .toggle'),
+ 'change.'
+ );
+ },
+
+ _initEventHandlers: function () {
+ this._super();
+ this._on(this.options.filesContainer, {
+ 'click .start': this._startHandler,
+ 'click .cancel': this._cancelHandler,
+ 'click .delete': this._deleteHandler
+ });
+ this._initButtonBarEventHandlers();
+ },
+
+ _destroyEventHandlers: function () {
+ this._destroyButtonBarEventHandlers();
+ this._off(this.options.filesContainer, 'click');
+ this._super();
+ },
+
+ _enableFileInputButton: function () {
+ this.element.find('.fileinput-button input')
+ .prop('disabled', false)
+ .parent().removeClass('disabled');
+ },
+
+ _disableFileInputButton: function () {
+ this.element.find('.fileinput-button input')
+ .prop('disabled', true)
+ .parent().addClass('disabled');
+ },
+
+ _initTemplates: function () {
+ var options = this.options;
+ options.templatesContainer = this.document[0].createElement(
+ options.filesContainer.prop('nodeName')
+ );
+ if (tmpl) {
+ if (options.uploadTemplateId) {
+ options.uploadTemplate = tmpl(options.uploadTemplateId);
+ }
+ if (options.downloadTemplateId) {
+ options.downloadTemplate = tmpl(options.downloadTemplateId);
+ }
+ }
+ },
+
+ _initFilesContainer: function () {
+ var options = this.options;
+ if (options.filesContainer === undefined) {
+ options.filesContainer = this.element.find('.files');
+ } else if (!(options.filesContainer instanceof $)) {
+ options.filesContainer = $(options.filesContainer);
+ }
+ },
+
+ _initSpecialOptions: function () {
+ this._super();
+ this._initFilesContainer();
+ this._initTemplates();
+ },
+
+ _create: function () {
+ this._super();
+ this._resetFinishedDeferreds();
+ if (!$.support.fileInput) {
+ this._disableFileInputButton();
+ }
+ },
+
+ enable: function () {
+ var wasDisabled = false;
+ if (this.options.disabled) {
+ wasDisabled = true;
+ }
+ this._super();
+ if (wasDisabled) {
+ this.element.find('input, button').prop('disabled', false);
+ this._enableFileInputButton();
+ }
+ },
+
+ disable: function () {
+ if (!this.options.disabled) {
+ this.element.find('input, button').prop('disabled', true);
+ this._disableFileInputButton();
+ }
+ this._super();
+ }
+
+ });
+
+}));
diff --git a/library/jqupload/js/jquery.fileupload-validate.js b/library/jqupload/js/jquery.fileupload-validate.js
new file mode 100644
index 000000000..f93a18fa2
--- /dev/null
+++ b/library/jqupload/js/jquery.fileupload-validate.js
@@ -0,0 +1,119 @@
+/*
+ * jQuery File Upload Validation Plugin 1.1.2
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+/* global define, window */
+
+(function (factory) {
+ 'use strict';
+ if (typeof define === 'function' && define.amd) {
+ // Register as an anonymous AMD module:
+ define([
+ 'jquery',
+ './jquery.fileupload-process'
+ ], factory);
+ } else {
+ // Browser globals:
+ factory(
+ window.jQuery
+ );
+ }
+}(function ($) {
+ 'use strict';
+
+ // Append to the default processQueue:
+ $.blueimp.fileupload.prototype.options.processQueue.push(
+ {
+ action: 'validate',
+ // Always trigger this action,
+ // even if the previous action was rejected:
+ always: true,
+ // Options taken from the global options map:
+ acceptFileTypes: '@',
+ maxFileSize: '@',
+ minFileSize: '@',
+ maxNumberOfFiles: '@',
+ disabled: '@disableValidation'
+ }
+ );
+
+ // The File Upload Validation plugin extends the fileupload widget
+ // with file validation functionality:
+ $.widget('blueimp.fileupload', $.blueimp.fileupload, {
+
+ options: {
+ /*
+ // The regular expression for allowed file types, matches
+ // against either file type or file name:
+ acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
+ // The maximum allowed file size in bytes:
+ maxFileSize: 10000000, // 10 MB
+ // The minimum allowed file size in bytes:
+ minFileSize: undefined, // No minimal file size
+ // The limit of files to be uploaded:
+ maxNumberOfFiles: 10,
+ */
+
+ // Function returning the current number of files,
+ // has to be overriden for maxNumberOfFiles validation:
+ getNumberOfFiles: $.noop,
+
+ // Error and info messages:
+ messages: {
+ maxNumberOfFiles: 'Maximum number of files exceeded',
+ acceptFileTypes: 'File type not allowed',
+ maxFileSize: 'File is too large',
+ minFileSize: 'File is too small'
+ }
+ },
+
+ processActions: {
+
+ validate: function (data, options) {
+ if (options.disabled) {
+ return data;
+ }
+ var dfd = $.Deferred(),
+ settings = this.options,
+ file = data.files[data.index],
+ fileSize;
+ if (options.minFileSize || options.maxFileSize) {
+ fileSize = file.size;
+ }
+ if ($.type(options.maxNumberOfFiles) === 'number' &&
+ (settings.getNumberOfFiles() || 0) + data.files.length >
+ options.maxNumberOfFiles) {
+ file.error = settings.i18n('maxNumberOfFiles');
+ } else if (options.acceptFileTypes &&
+ !(options.acceptFileTypes.test(file.type) ||
+ options.acceptFileTypes.test(file.name))) {
+ file.error = settings.i18n('acceptFileTypes');
+ } else if (fileSize > options.maxFileSize) {
+ file.error = settings.i18n('maxFileSize');
+ } else if ($.type(fileSize) === 'number' &&
+ fileSize < options.minFileSize) {
+ file.error = settings.i18n('minFileSize');
+ } else {
+ delete file.error;
+ }
+ if (file.error || data.files.error) {
+ data.files.error = true;
+ dfd.rejectWith(this, [data]);
+ } else {
+ dfd.resolveWith(this, [data]);
+ }
+ return dfd.promise();
+ }
+
+ }
+
+ });
+
+}));
diff --git a/library/jqupload/js/jquery.fileupload-video.js b/library/jqupload/js/jquery.fileupload-video.js
new file mode 100644
index 000000000..3764b27a2
--- /dev/null
+++ b/library/jqupload/js/jquery.fileupload-video.js
@@ -0,0 +1,106 @@
+/*
+ * jQuery File Upload Video Preview Plugin 1.0.3
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+/* jshint nomen:false */
+/* global define, window, document */
+
+(function (factory) {
+ 'use strict';
+ if (typeof define === 'function' && define.amd) {
+ // Register as an anonymous AMD module:
+ define([
+ 'jquery',
+ 'load-image',
+ './jquery.fileupload-process'
+ ], factory);
+ } else {
+ // Browser globals:
+ factory(
+ window.jQuery,
+ window.loadImage
+ );
+ }
+}(function ($, loadImage) {
+ 'use strict';
+
+ // Prepend to the default processQueue:
+ $.blueimp.fileupload.prototype.options.processQueue.unshift(
+ {
+ action: 'loadVideo',
+ // Use the action as prefix for the "@" options:
+ prefix: true,
+ fileTypes: '@',
+ maxFileSize: '@',
+ disabled: '@disableVideoPreview'
+ },
+ {
+ action: 'setVideo',
+ name: '@videoPreviewName',
+ disabled: '@disableVideoPreview'
+ }
+ );
+
+ // The File Upload Video Preview plugin extends the fileupload widget
+ // with video preview functionality:
+ $.widget('blueimp.fileupload', $.blueimp.fileupload, {
+
+ options: {
+ // The regular expression for the types of video files to load,
+ // matched against the file type:
+ loadVideoFileTypes: /^video\/.*$/
+ },
+
+ _videoElement: document.createElement('video'),
+
+ processActions: {
+
+ // Loads the video file given via data.files and data.index
+ // as video element if the browser supports playing it.
+ // Accepts the options fileTypes (regular expression)
+ // and maxFileSize (integer) to limit the files to load:
+ loadVideo: function (data, options) {
+ if (options.disabled) {
+ return data;
+ }
+ var file = data.files[data.index],
+ url,
+ video;
+ if (this._videoElement.canPlayType &&
+ this._videoElement.canPlayType(file.type) &&
+ ($.type(options.maxFileSize) !== 'number' ||
+ file.size <= options.maxFileSize) &&
+ (!options.fileTypes ||
+ options.fileTypes.test(file.type))) {
+ url = loadImage.createObjectURL(file);
+ if (url) {
+ video = this._videoElement.cloneNode(false);
+ video.src = url;
+ video.controls = true;
+ data.video = video;
+ return data;
+ }
+ }
+ return data;
+ },
+
+ // Sets the video element as a property of the file object:
+ setVideo: function (data, options) {
+ if (data.video && !options.disabled) {
+ data.files[data.index][options.name || 'preview'] = data.video;
+ }
+ return data;
+ }
+
+ }
+
+ });
+
+}));
diff --git a/library/jqupload/js/jquery.fileupload.js b/library/jqupload/js/jquery.fileupload.js
new file mode 100644
index 000000000..b52af0654
--- /dev/null
+++ b/library/jqupload/js/jquery.fileupload.js
@@ -0,0 +1,1420 @@
+/*
+ * jQuery File Upload Plugin 5.40.0
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2010, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+/* jshint nomen:false */
+/* global define, window, document, location, Blob, FormData */
+
+(function (factory) {
+ 'use strict';
+ if (typeof define === 'function' && define.amd) {
+ // Register as an anonymous AMD module:
+ define([
+ 'jquery',
+ 'jquery.ui.widget'
+ ], factory);
+ } else {
+ // Browser globals:
+ factory(window.jQuery);
+ }
+}(function ($) {
+ 'use strict';
+
+ // Detect file input support, based on
+ // http://viljamis.com/blog/2012/file-upload-support-on-mobile/
+ $.support.fileInput = !(new RegExp(
+ // Handle devices which give false positives for the feature detection:
+ '(Android (1\\.[0156]|2\\.[01]))' +
+ '|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' +
+ '|(w(eb)?OSBrowser)|(webOS)' +
+ '|(Kindle/(1\\.0|2\\.[05]|3\\.0))'
+ ).test(window.navigator.userAgent) ||
+ // Feature detection for all other devices:
+ $('<input type="file">').prop('disabled'));
+
+ // The FileReader API is not actually used, but works as feature detection,
+ // as some Safari versions (5?) support XHR file uploads via the FormData API,
+ // but not non-multipart XHR file uploads.
+ // window.XMLHttpRequestUpload is not available on IE10, so we check for
+ // window.ProgressEvent instead to detect XHR2 file upload capability:
+ $.support.xhrFileUpload = !!(window.ProgressEvent && window.FileReader);
+ $.support.xhrFormDataFileUpload = !!window.FormData;
+
+ // Detect support for Blob slicing (required for chunked uploads):
+ $.support.blobSlice = window.Blob && (Blob.prototype.slice ||
+ Blob.prototype.webkitSlice || Blob.prototype.mozSlice);
+
+ // The fileupload widget listens for change events on file input fields defined
+ // via fileInput setting and paste or drop events of the given dropZone.
+ // In addition to the default jQuery Widget methods, the fileupload widget
+ // exposes the "add" and "send" methods, to add or directly send files using
+ // the fileupload API.
+ // By default, files added via file input selection, paste, drag & drop or
+ // "add" method are uploaded immediately, but it is possible to override
+ // the "add" callback option to queue file uploads.
+ $.widget('blueimp.fileupload', {
+
+ options: {
+ // The drop target element(s), by the default the complete document.
+ // Set to null to disable drag & drop support:
+ dropZone: $(document),
+ // The paste target element(s), by the default the complete document.
+ // Set to null to disable paste support:
+ pasteZone: $(document),
+ // The file input field(s), that are listened to for change events.
+ // If undefined, it is set to the file input fields inside
+ // of the widget element on plugin initialization.
+ // Set to null to disable the change listener.
+ fileInput: undefined,
+ // By default, the file input field is replaced with a clone after
+ // each input field change event. This is required for iframe transport
+ // queues and allows change events to be fired for the same file
+ // selection, but can be disabled by setting the following option to false:
+ replaceFileInput: true,
+ // The parameter name for the file form data (the request argument name).
+ // If undefined or empty, the name property of the file input field is
+ // used, or "files[]" if the file input name property is also empty,
+ // can be a string or an array of strings:
+ paramName: undefined,
+ // By default, each file of a selection is uploaded using an individual
+ // request for XHR type uploads. Set to false to upload file
+ // selections in one request each:
+ singleFileUploads: true,
+ // To limit the number of files uploaded with one XHR request,
+ // set the following option to an integer greater than 0:
+ limitMultiFileUploads: undefined,
+ // The following option limits the number of files uploaded with one
+ // XHR request to keep the request size under or equal to the defined
+ // limit in bytes:
+ limitMultiFileUploadSize: undefined,
+ // Multipart file uploads add a number of bytes to each uploaded file,
+ // therefore the following option adds an overhead for each file used
+ // in the limitMultiFileUploadSize configuration:
+ limitMultiFileUploadSizeOverhead: 512,
+ // Set the following option to true to issue all file upload requests
+ // in a sequential order:
+ sequentialUploads: false,
+ // To limit the number of concurrent uploads,
+ // set the following option to an integer greater than 0:
+ limitConcurrentUploads: undefined,
+ // Set the following option to true to force iframe transport uploads:
+ forceIframeTransport: false,
+ // Set the following option to the location of a redirect url on the
+ // origin server, for cross-domain iframe transport uploads:
+ redirect: undefined,
+ // The parameter name for the redirect url, sent as part of the form
+ // data and set to 'redirect' if this option is empty:
+ redirectParamName: undefined,
+ // Set the following option to the location of a postMessage window,
+ // to enable postMessage transport uploads:
+ postMessage: undefined,
+ // By default, XHR file uploads are sent as multipart/form-data.
+ // The iframe transport is always using multipart/form-data.
+ // Set to false to enable non-multipart XHR uploads:
+ multipart: true,
+ // To upload large files in smaller chunks, set the following option
+ // to a preferred maximum chunk size. If set to 0, null or undefined,
+ // or the browser does not support the required Blob API, files will
+ // be uploaded as a whole.
+ maxChunkSize: undefined,
+ // When a non-multipart upload or a chunked multipart upload has been
+ // aborted, this option can be used to resume the upload by setting
+ // it to the size of the already uploaded bytes. This option is most
+ // useful when modifying the options object inside of the "add" or
+ // "send" callbacks, as the options are cloned for each file upload.
+ uploadedBytes: undefined,
+ // By default, failed (abort or error) file uploads are removed from the
+ // global progress calculation. Set the following option to false to
+ // prevent recalculating the global progress data:
+ recalculateProgress: true,
+ // Interval in milliseconds to calculate and trigger progress events:
+ progressInterval: 100,
+ // Interval in milliseconds to calculate progress bitrate:
+ bitrateInterval: 500,
+ // By default, uploads are started automatically when adding files:
+ autoUpload: true,
+
+ // Error and info messages:
+ messages: {
+ uploadedBytes: 'Uploaded bytes exceed file size'
+ },
+
+ // Translation function, gets the message key to be translated
+ // and an object with context specific data as arguments:
+ i18n: function (message, context) {
+ message = this.messages[message] || message.toString();
+ if (context) {
+ $.each(context, function (key, value) {
+ message = message.replace('{' + key + '}', value);
+ });
+ }
+ return message;
+ },
+
+ // Additional form data to be sent along with the file uploads can be set
+ // using this option, which accepts an array of objects with name and
+ // value properties, a function returning such an array, a FormData
+ // object (for XHR file uploads), or a simple object.
+ // The form of the first fileInput is given as parameter to the function:
+ formData: function (form) {
+ return form.serializeArray();
+ },
+
+ // The add callback is invoked as soon as files are added to the fileupload
+ // widget (via file input selection, drag & drop, paste or add API call).
+ // If the singleFileUploads option is enabled, this callback will be
+ // called once for each file in the selection for XHR file uploads, else
+ // once for each file selection.
+ //
+ // The upload starts when the submit method is invoked on the data parameter.
+ // The data object contains a files property holding the added files
+ // and allows you to override plugin options as well as define ajax settings.
+ //
+ // Listeners for this callback can also be bound the following way:
+ // .bind('fileuploadadd', func);
+ //
+ // data.submit() returns a Promise object and allows to attach additional
+ // handlers using jQuery's Deferred callbacks:
+ // data.submit().done(func).fail(func).always(func);
+ add: function (e, data) {
+ if (e.isDefaultPrevented()) {
+ return false;
+ }
+ if (data.autoUpload || (data.autoUpload !== false &&
+ $(this).fileupload('option', 'autoUpload'))) {
+ data.process().done(function () {
+ data.submit();
+ });
+ }
+ },
+
+ // Other callbacks:
+
+ // Callback for the submit event of each file upload:
+ // submit: function (e, data) {}, // .bind('fileuploadsubmit', func);
+
+ // Callback for the start of each file upload request:
+ // send: function (e, data) {}, // .bind('fileuploadsend', func);
+
+ // Callback for successful uploads:
+ // done: function (e, data) {}, // .bind('fileuploaddone', func);
+
+ // Callback for failed (abort or error) uploads:
+ // fail: function (e, data) {}, // .bind('fileuploadfail', func);
+
+ // Callback for completed (success, abort or error) requests:
+ // always: function (e, data) {}, // .bind('fileuploadalways', func);
+
+ // Callback for upload progress events:
+ // progress: function (e, data) {}, // .bind('fileuploadprogress', func);
+
+ // Callback for global upload progress events:
+ // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func);
+
+ // Callback for uploads start, equivalent to the global ajaxStart event:
+ // start: function (e) {}, // .bind('fileuploadstart', func);
+
+ // Callback for uploads stop, equivalent to the global ajaxStop event:
+ // stop: function (e) {}, // .bind('fileuploadstop', func);
+
+ // Callback for change events of the fileInput(s):
+ // change: function (e, data) {}, // .bind('fileuploadchange', func);
+
+ // Callback for paste events to the pasteZone(s):
+ // paste: function (e, data) {}, // .bind('fileuploadpaste', func);
+
+ // Callback for drop events of the dropZone(s):
+ // drop: function (e, data) {}, // .bind('fileuploaddrop', func);
+
+ // Callback for dragover events of the dropZone(s):
+ // dragover: function (e) {}, // .bind('fileuploaddragover', func);
+
+ // Callback for the start of each chunk upload request:
+ // chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func);
+
+ // Callback for successful chunk uploads:
+ // chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func);
+
+ // Callback for failed (abort or error) chunk uploads:
+ // chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func);
+
+ // Callback for completed (success, abort or error) chunk upload requests:
+ // chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func);
+
+ // The plugin options are used as settings object for the ajax calls.
+ // The following are jQuery ajax settings required for the file uploads:
+ processData: false,
+ contentType: false,
+ cache: false
+ },
+
+ // A list of options that require reinitializing event listeners and/or
+ // special initialization code:
+ _specialOptions: [
+ 'fileInput',
+ 'dropZone',
+ 'pasteZone',
+ 'multipart',
+ 'forceIframeTransport'
+ ],
+
+ _blobSlice: $.support.blobSlice && function () {
+ var slice = this.slice || this.webkitSlice || this.mozSlice;
+ return slice.apply(this, arguments);
+ },
+
+ _BitrateTimer: function () {
+ this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime());
+ this.loaded = 0;
+ this.bitrate = 0;
+ this.getBitrate = function (now, loaded, interval) {
+ var timeDiff = now - this.timestamp;
+ if (!this.bitrate || !interval || timeDiff > interval) {
+ this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8;
+ this.loaded = loaded;
+ this.timestamp = now;
+ }
+ return this.bitrate;
+ };
+ },
+
+ _isXHRUpload: function (options) {
+ return !options.forceIframeTransport &&
+ ((!options.multipart && $.support.xhrFileUpload) ||
+ $.support.xhrFormDataFileUpload);
+ },
+
+ _getFormData: function (options) {
+ var formData;
+ if ($.type(options.formData) === 'function') {
+ return options.formData(options.form);
+ }
+ if ($.isArray(options.formData)) {
+ return options.formData;
+ }
+ if ($.type(options.formData) === 'object') {
+ formData = [];
+ $.each(options.formData, function (name, value) {
+ formData.push({name: name, value: value});
+ });
+ return formData;
+ }
+ return [];
+ },
+
+ _getTotal: function (files) {
+ var total = 0;
+ $.each(files, function (index, file) {
+ total += file.size || 1;
+ });
+ return total;
+ },
+
+ _initProgressObject: function (obj) {
+ var progress = {
+ loaded: 0,
+ total: 0,
+ bitrate: 0
+ };
+ if (obj._progress) {
+ $.extend(obj._progress, progress);
+ } else {
+ obj._progress = progress;
+ }
+ },
+
+ _initResponseObject: function (obj) {
+ var prop;
+ if (obj._response) {
+ for (prop in obj._response) {
+ if (obj._response.hasOwnProperty(prop)) {
+ delete obj._response[prop];
+ }
+ }
+ } else {
+ obj._response = {};
+ }
+ },
+
+ _onProgress: function (e, data) {
+ if (e.lengthComputable) {
+ var now = ((Date.now) ? Date.now() : (new Date()).getTime()),
+ loaded;
+ if (data._time && data.progressInterval &&
+ (now - data._time < data.progressInterval) &&
+ e.loaded !== e.total) {
+ return;
+ }
+ data._time = now;
+ loaded = Math.floor(
+ e.loaded / e.total * (data.chunkSize || data._progress.total)
+ ) + (data.uploadedBytes || 0);
+ // Add the difference from the previously loaded state
+ // to the global loaded counter:
+ this._progress.loaded += (loaded - data._progress.loaded);
+ this._progress.bitrate = this._bitrateTimer.getBitrate(
+ now,
+ this._progress.loaded,
+ data.bitrateInterval
+ );
+ data._progress.loaded = data.loaded = loaded;
+ data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate(
+ now,
+ loaded,
+ data.bitrateInterval
+ );
+ // Trigger a custom progress event with a total data property set
+ // to the file size(s) of the current upload and a loaded data
+ // property calculated accordingly:
+ this._trigger(
+ 'progress',
+ $.Event('progress', {delegatedEvent: e}),
+ data
+ );
+ // Trigger a global progress event for all current file uploads,
+ // including ajax calls queued for sequential file uploads:
+ this._trigger(
+ 'progressall',
+ $.Event('progressall', {delegatedEvent: e}),
+ this._progress
+ );
+ }
+ },
+
+ _initProgressListener: function (options) {
+ var that = this,
+ xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();
+ // Accesss to the native XHR object is required to add event listeners
+ // for the upload progress event:
+ if (xhr.upload) {
+ $(xhr.upload).bind('progress', function (e) {
+ var oe = e.originalEvent;
+ // Make sure the progress event properties get copied over:
+ e.lengthComputable = oe.lengthComputable;
+ e.loaded = oe.loaded;
+ e.total = oe.total;
+ that._onProgress(e, options);
+ });
+ options.xhr = function () {
+ return xhr;
+ };
+ }
+ },
+
+ _isInstanceOf: function (type, obj) {
+ // Cross-frame instanceof check
+ return Object.prototype.toString.call(obj) === '[object ' + type + ']';
+ },
+
+ _initXHRData: function (options) {
+ var that = this,
+ formData,
+ file = options.files[0],
+ // Ignore non-multipart setting if not supported:
+ multipart = options.multipart || !$.support.xhrFileUpload,
+ paramName = $.type(options.paramName) === 'array' ?
+ options.paramName[0] : options.paramName;
+ options.headers = $.extend({}, options.headers);
+ if (options.contentRange) {
+ options.headers['Content-Range'] = options.contentRange;
+ }
+ if (!multipart || options.blob || !this._isInstanceOf('File', file)) {
+ options.headers['Content-Disposition'] = 'attachment; filename="' +
+ encodeURI(file.name) + '"';
+ }
+ if (!multipart) {
+ options.contentType = file.type || 'application/octet-stream';
+ options.data = options.blob || file;
+ } else if ($.support.xhrFormDataFileUpload) {
+ if (options.postMessage) {
+ // window.postMessage does not allow sending FormData
+ // objects, so we just add the File/Blob objects to
+ // the formData array and let the postMessage window
+ // create the FormData object out of this array:
+ formData = this._getFormData(options);
+ if (options.blob) {
+ formData.push({
+ name: paramName,
+ value: options.blob
+ });
+ } else {
+ $.each(options.files, function (index, file) {
+ formData.push({
+ name: ($.type(options.paramName) === 'array' &&
+ options.paramName[index]) || paramName,
+ value: file
+ });
+ });
+ }
+ } else {
+ if (that._isInstanceOf('FormData', options.formData)) {
+ formData = options.formData;
+ } else {
+ formData = new FormData();
+ $.each(this._getFormData(options), function (index, field) {
+ formData.append(field.name, field.value);
+ });
+ }
+ if (options.blob) {
+ formData.append(paramName, options.blob, file.name);
+ } else {
+ $.each(options.files, function (index, file) {
+ // This check allows the tests to run with
+ // dummy objects:
+ if (that._isInstanceOf('File', file) ||
+ that._isInstanceOf('Blob', file)) {
+ formData.append(
+ ($.type(options.paramName) === 'array' &&
+ options.paramName[index]) || paramName,
+ file,
+ file.uploadName || file.name
+ );
+ }
+ });
+ }
+ }
+ options.data = formData;
+ }
+ // Blob reference is not needed anymore, free memory:
+ options.blob = null;
+ },
+
+ _initIframeSettings: function (options) {
+ var targetHost = $('<a></a>').prop('href', options.url).prop('host');
+ // Setting the dataType to iframe enables the iframe transport:
+ options.dataType = 'iframe ' + (options.dataType || '');
+ // The iframe transport accepts a serialized array as form data:
+ options.formData = this._getFormData(options);
+ // Add redirect url to form data on cross-domain uploads:
+ if (options.redirect && targetHost && targetHost !== location.host) {
+ options.formData.push({
+ name: options.redirectParamName || 'redirect',
+ value: options.redirect
+ });
+ }
+ },
+
+ _initDataSettings: function (options) {
+ if (this._isXHRUpload(options)) {
+ if (!this._chunkedUpload(options, true)) {
+ if (!options.data) {
+ this._initXHRData(options);
+ }
+ this._initProgressListener(options);
+ }
+ if (options.postMessage) {
+ // Setting the dataType to postmessage enables the
+ // postMessage transport:
+ options.dataType = 'postmessage ' + (options.dataType || '');
+ }
+ } else {
+ this._initIframeSettings(options);
+ }
+ },
+
+ _getParamName: function (options) {
+ var fileInput = $(options.fileInput),
+ paramName = options.paramName;
+ if (!paramName) {
+ paramName = [];
+ fileInput.each(function () {
+ var input = $(this),
+ name = input.prop('name') || 'files[]',
+ i = (input.prop('files') || [1]).length;
+ while (i) {
+ paramName.push(name);
+ i -= 1;
+ }
+ });
+ if (!paramName.length) {
+ paramName = [fileInput.prop('name') || 'files[]'];
+ }
+ } else if (!$.isArray(paramName)) {
+ paramName = [paramName];
+ }
+ return paramName;
+ },
+
+ _initFormSettings: function (options) {
+ // Retrieve missing options from the input field and the
+ // associated form, if available:
+ if (!options.form || !options.form.length) {
+ options.form = $(options.fileInput.prop('form'));
+ // If the given file input doesn't have an associated form,
+ // use the default widget file input's form:
+ if (!options.form.length) {
+ options.form = $(this.options.fileInput.prop('form'));
+ }
+ }
+ options.paramName = this._getParamName(options);
+ if (!options.url) {
+ options.url = options.form.prop('action') || location.href;
+ }
+ // The HTTP request method must be "POST" or "PUT":
+ options.type = (options.type ||
+ ($.type(options.form.prop('method')) === 'string' &&
+ options.form.prop('method')) || ''
+ ).toUpperCase();
+ if (options.type !== 'POST' && options.type !== 'PUT' &&
+ options.type !== 'PATCH') {
+ options.type = 'POST';
+ }
+ if (!options.formAcceptCharset) {
+ options.formAcceptCharset = options.form.attr('accept-charset');
+ }
+ },
+
+ _getAJAXSettings: function (data) {
+ var options = $.extend({}, this.options, data);
+ this._initFormSettings(options);
+ this._initDataSettings(options);
+ return options;
+ },
+
+ // jQuery 1.6 doesn't provide .state(),
+ // while jQuery 1.8+ removed .isRejected() and .isResolved():
+ _getDeferredState: function (deferred) {
+ if (deferred.state) {
+ return deferred.state();
+ }
+ if (deferred.isResolved()) {
+ return 'resolved';
+ }
+ if (deferred.isRejected()) {
+ return 'rejected';
+ }
+ return 'pending';
+ },
+
+ // Maps jqXHR callbacks to the equivalent
+ // methods of the given Promise object:
+ _enhancePromise: function (promise) {
+ promise.success = promise.done;
+ promise.error = promise.fail;
+ promise.complete = promise.always;
+ return promise;
+ },
+
+ // Creates and returns a Promise object enhanced with
+ // the jqXHR methods abort, success, error and complete:
+ _getXHRPromise: function (resolveOrReject, context, args) {
+ var dfd = $.Deferred(),
+ promise = dfd.promise();
+ context = context || this.options.context || promise;
+ if (resolveOrReject === true) {
+ dfd.resolveWith(context, args);
+ } else if (resolveOrReject === false) {
+ dfd.rejectWith(context, args);
+ }
+ promise.abort = dfd.promise;
+ return this._enhancePromise(promise);
+ },
+
+ // Adds convenience methods to the data callback argument:
+ _addConvenienceMethods: function (e, data) {
+ var that = this,
+ getPromise = function (args) {
+ return $.Deferred().resolveWith(that, args).promise();
+ };
+ data.process = function (resolveFunc, rejectFunc) {
+ if (resolveFunc || rejectFunc) {
+ data._processQueue = this._processQueue =
+ (this._processQueue || getPromise([this])).pipe(
+ function () {
+ if (data.errorThrown) {
+ return $.Deferred()
+ .rejectWith(that, [data]).promise();
+ }
+ return getPromise(arguments);
+ }
+ ).pipe(resolveFunc, rejectFunc);
+ }
+ return this._processQueue || getPromise([this]);
+ };
+ data.submit = function () {
+ if (this.state() !== 'pending') {
+ data.jqXHR = this.jqXHR =
+ (that._trigger(
+ 'submit',
+ $.Event('submit', {delegatedEvent: e}),
+ this
+ ) !== false) && that._onSend(e, this);
+ }
+ return this.jqXHR || that._getXHRPromise();
+ };
+ data.abort = function () {
+ if (this.jqXHR) {
+ return this.jqXHR.abort();
+ }
+ this.errorThrown = 'abort';
+ that._trigger('fail', null, this);
+ return that._getXHRPromise(false);
+ };
+ data.state = function () {
+ if (this.jqXHR) {
+ return that._getDeferredState(this.jqXHR);
+ }
+ if (this._processQueue) {
+ return that._getDeferredState(this._processQueue);
+ }
+ };
+ data.processing = function () {
+ return !this.jqXHR && this._processQueue && that
+ ._getDeferredState(this._processQueue) === 'pending';
+ };
+ data.progress = function () {
+ return this._progress;
+ };
+ data.response = function () {
+ return this._response;
+ };
+ },
+
+ // Parses the Range header from the server response
+ // and returns the uploaded bytes:
+ _getUploadedBytes: function (jqXHR) {
+ var range = jqXHR.getResponseHeader('Range'),
+ parts = range && range.split('-'),
+ upperBytesPos = parts && parts.length > 1 &&
+ parseInt(parts[1], 10);
+ return upperBytesPos && upperBytesPos + 1;
+ },
+
+ // Uploads a file in multiple, sequential requests
+ // by splitting the file up in multiple blob chunks.
+ // If the second parameter is true, only tests if the file
+ // should be uploaded in chunks, but does not invoke any
+ // upload requests:
+ _chunkedUpload: function (options, testOnly) {
+ options.uploadedBytes = options.uploadedBytes || 0;
+ var that = this,
+ file = options.files[0],
+ fs = file.size,
+ ub = options.uploadedBytes,
+ mcs = options.maxChunkSize || fs,
+ slice = this._blobSlice,
+ dfd = $.Deferred(),
+ promise = dfd.promise(),
+ jqXHR,
+ upload;
+ if (!(this._isXHRUpload(options) && slice && (ub || mcs < fs)) ||
+ options.data) {
+ return false;
+ }
+ if (testOnly) {
+ return true;
+ }
+ if (ub >= fs) {
+ file.error = options.i18n('uploadedBytes');
+ return this._getXHRPromise(
+ false,
+ options.context,
+ [null, 'error', file.error]
+ );
+ }
+ // The chunk upload method:
+ upload = function () {
+ // Clone the options object for each chunk upload:
+ var o = $.extend({}, options),
+ currentLoaded = o._progress.loaded;
+ o.blob = slice.call(
+ file,
+ ub,
+ ub + mcs,
+ file.type
+ );
+ // Store the current chunk size, as the blob itself
+ // will be dereferenced after data processing:
+ o.chunkSize = o.blob.size;
+ // Expose the chunk bytes position range:
+ o.contentRange = 'bytes ' + ub + '-' +
+ (ub + o.chunkSize - 1) + '/' + fs;
+ // Process the upload data (the blob and potential form data):
+ that._initXHRData(o);
+ // Add progress listeners for this chunk upload:
+ that._initProgressListener(o);
+ jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) ||
+ that._getXHRPromise(false, o.context))
+ .done(function (result, textStatus, jqXHR) {
+ ub = that._getUploadedBytes(jqXHR) ||
+ (ub + o.chunkSize);
+ // Create a progress event if no final progress event
+ // with loaded equaling total has been triggered
+ // for this chunk:
+ if (currentLoaded + o.chunkSize - o._progress.loaded) {
+ that._onProgress($.Event('progress', {
+ lengthComputable: true,
+ loaded: ub - o.uploadedBytes,
+ total: ub - o.uploadedBytes
+ }), o);
+ }
+ options.uploadedBytes = o.uploadedBytes = ub;
+ o.result = result;
+ o.textStatus = textStatus;
+ o.jqXHR = jqXHR;
+ that._trigger('chunkdone', null, o);
+ that._trigger('chunkalways', null, o);
+ if (ub < fs) {
+ // File upload not yet complete,
+ // continue with the next chunk:
+ upload();
+ } else {
+ dfd.resolveWith(
+ o.context,
+ [result, textStatus, jqXHR]
+ );
+ }
+ })
+ .fail(function (jqXHR, textStatus, errorThrown) {
+ o.jqXHR = jqXHR;
+ o.textStatus = textStatus;
+ o.errorThrown = errorThrown;
+ that._trigger('chunkfail', null, o);
+ that._trigger('chunkalways', null, o);
+ dfd.rejectWith(
+ o.context,
+ [jqXHR, textStatus, errorThrown]
+ );
+ });
+ };
+ this._enhancePromise(promise);
+ promise.abort = function () {
+ return jqXHR.abort();
+ };
+ upload();
+ return promise;
+ },
+
+ _beforeSend: function (e, data) {
+ if (this._active === 0) {
+ // the start callback is triggered when an upload starts
+ // and no other uploads are currently running,
+ // equivalent to the global ajaxStart event:
+ this._trigger('start');
+ // Set timer for global bitrate progress calculation:
+ this._bitrateTimer = new this._BitrateTimer();
+ // Reset the global progress values:
+ this._progress.loaded = this._progress.total = 0;
+ this._progress.bitrate = 0;
+ }
+ // Make sure the container objects for the .response() and
+ // .progress() methods on the data object are available
+ // and reset to their initial state:
+ this._initResponseObject(data);
+ this._initProgressObject(data);
+ data._progress.loaded = data.loaded = data.uploadedBytes || 0;
+ data._progress.total = data.total = this._getTotal(data.files) || 1;
+ data._progress.bitrate = data.bitrate = 0;
+ this._active += 1;
+ // Initialize the global progress values:
+ this._progress.loaded += data.loaded;
+ this._progress.total += data.total;
+ },
+
+ _onDone: function (result, textStatus, jqXHR, options) {
+ var total = options._progress.total,
+ response = options._response;
+ if (options._progress.loaded < total) {
+ // Create a progress event if no final progress event
+ // with loaded equaling total has been triggered:
+ this._onProgress($.Event('progress', {
+ lengthComputable: true,
+ loaded: total,
+ total: total
+ }), options);
+ }
+ response.result = options.result = result;
+ response.textStatus = options.textStatus = textStatus;
+ response.jqXHR = options.jqXHR = jqXHR;
+ this._trigger('done', null, options);
+ },
+
+ _onFail: function (jqXHR, textStatus, errorThrown, options) {
+ var response = options._response;
+ if (options.recalculateProgress) {
+ // Remove the failed (error or abort) file upload from
+ // the global progress calculation:
+ this._progress.loaded -= options._progress.loaded;
+ this._progress.total -= options._progress.total;
+ }
+ response.jqXHR = options.jqXHR = jqXHR;
+ response.textStatus = options.textStatus = textStatus;
+ response.errorThrown = options.errorThrown = errorThrown;
+ this._trigger('fail', null, options);
+ },
+
+ _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) {
+ // jqXHRorResult, textStatus and jqXHRorError are added to the
+ // options object via done and fail callbacks
+ this._trigger('always', null, options);
+ },
+
+ _onSend: function (e, data) {
+ if (!data.submit) {
+ this._addConvenienceMethods(e, data);
+ }
+ var that = this,
+ jqXHR,
+ aborted,
+ slot,
+ pipe,
+ options = that._getAJAXSettings(data),
+ send = function () {
+ that._sending += 1;
+ // Set timer for bitrate progress calculation:
+ options._bitrateTimer = new that._BitrateTimer();
+ jqXHR = jqXHR || (
+ ((aborted || that._trigger(
+ 'send',
+ $.Event('send', {delegatedEvent: e}),
+ options
+ ) === false) &&
+ that._getXHRPromise(false, options.context, aborted)) ||
+ that._chunkedUpload(options) || $.ajax(options)
+ ).done(function (result, textStatus, jqXHR) {
+ that._onDone(result, textStatus, jqXHR, options);
+ }).fail(function (jqXHR, textStatus, errorThrown) {
+ that._onFail(jqXHR, textStatus, errorThrown, options);
+ }).always(function (jqXHRorResult, textStatus, jqXHRorError) {
+ that._onAlways(
+ jqXHRorResult,
+ textStatus,
+ jqXHRorError,
+ options
+ );
+ that._sending -= 1;
+ that._active -= 1;
+ if (options.limitConcurrentUploads &&
+ options.limitConcurrentUploads > that._sending) {
+ // Start the next queued upload,
+ // that has not been aborted:
+ var nextSlot = that._slots.shift();
+ while (nextSlot) {
+ if (that._getDeferredState(nextSlot) === 'pending') {
+ nextSlot.resolve();
+ break;
+ }
+ nextSlot = that._slots.shift();
+ }
+ }
+ if (that._active === 0) {
+ // The stop callback is triggered when all uploads have
+ // been completed, equivalent to the global ajaxStop event:
+ that._trigger('stop');
+ }
+ });
+ return jqXHR;
+ };
+ this._beforeSend(e, options);
+ if (this.options.sequentialUploads ||
+ (this.options.limitConcurrentUploads &&
+ this.options.limitConcurrentUploads <= this._sending)) {
+ if (this.options.limitConcurrentUploads > 1) {
+ slot = $.Deferred();
+ this._slots.push(slot);
+ pipe = slot.pipe(send);
+ } else {
+ this._sequence = this._sequence.pipe(send, send);
+ pipe = this._sequence;
+ }
+ // Return the piped Promise object, enhanced with an abort method,
+ // which is delegated to the jqXHR object of the current upload,
+ // and jqXHR callbacks mapped to the equivalent Promise methods:
+ pipe.abort = function () {
+ aborted = [undefined, 'abort', 'abort'];
+ if (!jqXHR) {
+ if (slot) {
+ slot.rejectWith(options.context, aborted);
+ }
+ return send();
+ }
+ return jqXHR.abort();
+ };
+ return this._enhancePromise(pipe);
+ }
+ return send();
+ },
+
+ _onAdd: function (e, data) {
+ var that = this,
+ result = true,
+ options = $.extend({}, this.options, data),
+ files = data.files,
+ filesLength = files.length,
+ limit = options.limitMultiFileUploads,
+ limitSize = options.limitMultiFileUploadSize,
+ overhead = options.limitMultiFileUploadSizeOverhead,
+ batchSize = 0,
+ paramName = this._getParamName(options),
+ paramNameSet,
+ paramNameSlice,
+ fileSet,
+ i,
+ j = 0;
+ if (limitSize && (!filesLength || files[0].size === undefined)) {
+ limitSize = undefined;
+ }
+ if (!(options.singleFileUploads || limit || limitSize) ||
+ !this._isXHRUpload(options)) {
+ fileSet = [files];
+ paramNameSet = [paramName];
+ } else if (!(options.singleFileUploads || limitSize) && limit) {
+ fileSet = [];
+ paramNameSet = [];
+ for (i = 0; i < filesLength; i += limit) {
+ fileSet.push(files.slice(i, i + limit));
+ paramNameSlice = paramName.slice(i, i + limit);
+ if (!paramNameSlice.length) {
+ paramNameSlice = paramName;
+ }
+ paramNameSet.push(paramNameSlice);
+ }
+ } else if (!options.singleFileUploads && limitSize) {
+ fileSet = [];
+ paramNameSet = [];
+ for (i = 0; i < filesLength; i = i + 1) {
+ batchSize += files[i].size + overhead;
+ if (i + 1 === filesLength ||
+ ((batchSize + files[i + 1].size + overhead) > limitSize) ||
+ (limit && i + 1 - j >= limit)) {
+ fileSet.push(files.slice(j, i + 1));
+ paramNameSlice = paramName.slice(j, i + 1);
+ if (!paramNameSlice.length) {
+ paramNameSlice = paramName;
+ }
+ paramNameSet.push(paramNameSlice);
+ j = i + 1;
+ batchSize = 0;
+ }
+ }
+ } else {
+ paramNameSet = paramName;
+ }
+ data.originalFiles = files;
+ $.each(fileSet || files, function (index, element) {
+ var newData = $.extend({}, data);
+ newData.files = fileSet ? element : [element];
+ newData.paramName = paramNameSet[index];
+ that._initResponseObject(newData);
+ that._initProgressObject(newData);
+ that._addConvenienceMethods(e, newData);
+ result = that._trigger(
+ 'add',
+ $.Event('add', {delegatedEvent: e}),
+ newData
+ );
+ return result;
+ });
+ return result;
+ },
+
+ _replaceFileInput: function (input) {
+ var inputClone = input.clone(true);
+ $('<form></form>').append(inputClone)[0].reset();
+ // Detaching allows to insert the fileInput on another form
+ // without loosing the file input value:
+ input.after(inputClone).detach();
+ // Avoid memory leaks with the detached file input:
+ $.cleanData(input.unbind('remove'));
+ // Replace the original file input element in the fileInput
+ // elements set with the clone, which has been copied including
+ // event handlers:
+ this.options.fileInput = this.options.fileInput.map(function (i, el) {
+ if (el === input[0]) {
+ return inputClone[0];
+ }
+ return el;
+ });
+ // If the widget has been initialized on the file input itself,
+ // override this.element with the file input clone:
+ if (input[0] === this.element[0]) {
+ this.element = inputClone;
+ }
+ },
+
+ _handleFileTreeEntry: function (entry, path) {
+ var that = this,
+ dfd = $.Deferred(),
+ errorHandler = function (e) {
+ if (e && !e.entry) {
+ e.entry = entry;
+ }
+ // Since $.when returns immediately if one
+ // Deferred is rejected, we use resolve instead.
+ // This allows valid files and invalid items
+ // to be returned together in one set:
+ dfd.resolve([e]);
+ },
+ dirReader;
+ path = path || '';
+ if (entry.isFile) {
+ if (entry._file) {
+ // Workaround for Chrome bug #149735
+ entry._file.relativePath = path;
+ dfd.resolve(entry._file);
+ } else {
+ entry.file(function (file) {
+ file.relativePath = path;
+ dfd.resolve(file);
+ }, errorHandler);
+ }
+ } else if (entry.isDirectory) {
+ dirReader = entry.createReader();
+ dirReader.readEntries(function (entries) {
+ that._handleFileTreeEntries(
+ entries,
+ path + entry.name + '/'
+ ).done(function (files) {
+ dfd.resolve(files);
+ }).fail(errorHandler);
+ }, errorHandler);
+ } else {
+ // Return an empy list for file system items
+ // other than files or directories:
+ dfd.resolve([]);
+ }
+ return dfd.promise();
+ },
+
+ _handleFileTreeEntries: function (entries, path) {
+ var that = this;
+ return $.when.apply(
+ $,
+ $.map(entries, function (entry) {
+ return that._handleFileTreeEntry(entry, path);
+ })
+ ).pipe(function () {
+ return Array.prototype.concat.apply(
+ [],
+ arguments
+ );
+ });
+ },
+
+ _getDroppedFiles: function (dataTransfer) {
+ dataTransfer = dataTransfer || {};
+ var items = dataTransfer.items;
+ if (items && items.length && (items[0].webkitGetAsEntry ||
+ items[0].getAsEntry)) {
+ return this._handleFileTreeEntries(
+ $.map(items, function (item) {
+ var entry;
+ if (item.webkitGetAsEntry) {
+ entry = item.webkitGetAsEntry();
+ if (entry) {
+ // Workaround for Chrome bug #149735:
+ entry._file = item.getAsFile();
+ }
+ return entry;
+ }
+ return item.getAsEntry();
+ })
+ );
+ }
+ return $.Deferred().resolve(
+ $.makeArray(dataTransfer.files)
+ ).promise();
+ },
+
+ _getSingleFileInputFiles: function (fileInput) {
+ fileInput = $(fileInput);
+ var entries = fileInput.prop('webkitEntries') ||
+ fileInput.prop('entries'),
+ files,
+ value;
+ if (entries && entries.length) {
+ return this._handleFileTreeEntries(entries);
+ }
+ files = $.makeArray(fileInput.prop('files'));
+ if (!files.length) {
+ value = fileInput.prop('value');
+ if (!value) {
+ return $.Deferred().resolve([]).promise();
+ }
+ // If the files property is not available, the browser does not
+ // support the File API and we add a pseudo File object with
+ // the input value as name with path information removed:
+ files = [{name: value.replace(/^.*\\/, '')}];
+ } else if (files[0].name === undefined && files[0].fileName) {
+ // File normalization for Safari 4 and Firefox 3:
+ $.each(files, function (index, file) {
+ file.name = file.fileName;
+ file.size = file.fileSize;
+ });
+ }
+ return $.Deferred().resolve(files).promise();
+ },
+
+ _getFileInputFiles: function (fileInput) {
+ if (!(fileInput instanceof $) || fileInput.length === 1) {
+ return this._getSingleFileInputFiles(fileInput);
+ }
+ return $.when.apply(
+ $,
+ $.map(fileInput, this._getSingleFileInputFiles)
+ ).pipe(function () {
+ return Array.prototype.concat.apply(
+ [],
+ arguments
+ );
+ });
+ },
+
+ _onChange: function (e) {
+ var that = this,
+ data = {
+ fileInput: $(e.target),
+ form: $(e.target.form)
+ };
+ this._getFileInputFiles(data.fileInput).always(function (files) {
+ data.files = files;
+ if (that.options.replaceFileInput) {
+ that._replaceFileInput(data.fileInput);
+ }
+ if (that._trigger(
+ 'change',
+ $.Event('change', {delegatedEvent: e}),
+ data
+ ) !== false) {
+ that._onAdd(e, data);
+ }
+ });
+ },
+
+ _onPaste: function (e) {
+ var items = e.originalEvent && e.originalEvent.clipboardData &&
+ e.originalEvent.clipboardData.items,
+ data = {files: []};
+ if (items && items.length) {
+ $.each(items, function (index, item) {
+ var file = item.getAsFile && item.getAsFile();
+ if (file) {
+ data.files.push(file);
+ }
+ });
+ if (this._trigger(
+ 'paste',
+ $.Event('paste', {delegatedEvent: e}),
+ data
+ ) !== false) {
+ this._onAdd(e, data);
+ }
+ }
+ },
+
+ _onDrop: function (e) {
+ e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;
+ var that = this,
+ dataTransfer = e.dataTransfer,
+ data = {};
+ if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {
+ e.preventDefault();
+ this._getDroppedFiles(dataTransfer).always(function (files) {
+ data.files = files;
+ if (that._trigger(
+ 'drop',
+ $.Event('drop', {delegatedEvent: e}),
+ data
+ ) !== false) {
+ that._onAdd(e, data);
+ }
+ });
+ }
+ },
+
+ _onDragOver: function (e) {
+ e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;
+ var dataTransfer = e.dataTransfer;
+ if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1 &&
+ this._trigger(
+ 'dragover',
+ $.Event('dragover', {delegatedEvent: e})
+ ) !== false) {
+ e.preventDefault();
+ dataTransfer.dropEffect = 'copy';
+ }
+ },
+
+ _initEventHandlers: function () {
+ if (this._isXHRUpload(this.options)) {
+ this._on(this.options.dropZone, {
+ dragover: this._onDragOver,
+ drop: this._onDrop
+ });
+ this._on(this.options.pasteZone, {
+ paste: this._onPaste
+ });
+ }
+ if ($.support.fileInput) {
+ this._on(this.options.fileInput, {
+ change: this._onChange
+ });
+ }
+ },
+
+ _destroyEventHandlers: function () {
+ this._off(this.options.dropZone, 'dragover drop');
+ this._off(this.options.pasteZone, 'paste');
+ this._off(this.options.fileInput, 'change');
+ },
+
+ _setOption: function (key, value) {
+ var reinit = $.inArray(key, this._specialOptions) !== -1;
+ if (reinit) {
+ this._destroyEventHandlers();
+ }
+ this._super(key, value);
+ if (reinit) {
+ this._initSpecialOptions();
+ this._initEventHandlers();
+ }
+ },
+
+ _initSpecialOptions: function () {
+ var options = this.options;
+ if (options.fileInput === undefined) {
+ options.fileInput = this.element.is('input[type="file"]') ?
+ this.element : this.element.find('input[type="file"]');
+ } else if (!(options.fileInput instanceof $)) {
+ options.fileInput = $(options.fileInput);
+ }
+ if (!(options.dropZone instanceof $)) {
+ options.dropZone = $(options.dropZone);
+ }
+ if (!(options.pasteZone instanceof $)) {
+ options.pasteZone = $(options.pasteZone);
+ }
+ },
+
+ _getRegExp: function (str) {
+ var parts = str.split('/'),
+ modifiers = parts.pop();
+ parts.shift();
+ return new RegExp(parts.join('/'), modifiers);
+ },
+
+ _isRegExpOption: function (key, value) {
+ return key !== 'url' && $.type(value) === 'string' &&
+ /^\/.*\/[igm]{0,3}$/.test(value);
+ },
+
+ _initDataAttributes: function () {
+ var that = this,
+ options = this.options;
+ // Initialize options set via HTML5 data-attributes:
+ $.each(
+ $(this.element[0].cloneNode(false)).data(),
+ function (key, value) {
+ if (that._isRegExpOption(key, value)) {
+ value = that._getRegExp(value);
+ }
+ options[key] = value;
+ }
+ );
+ },
+
+ _create: function () {
+ this._initDataAttributes();
+ this._initSpecialOptions();
+ this._slots = [];
+ this._sequence = this._getXHRPromise(true);
+ this._sending = this._active = 0;
+ this._initProgressObject(this);
+ this._initEventHandlers();
+ },
+
+ // This method is exposed to the widget API and allows to query
+ // the number of active uploads:
+ active: function () {
+ return this._active;
+ },
+
+ // This method is exposed to the widget API and allows to query
+ // the widget upload progress.
+ // It returns an object with loaded, total and bitrate properties
+ // for the running uploads:
+ progress: function () {
+ return this._progress;
+ },
+
+ // This method is exposed to the widget API and allows adding files
+ // using the fileupload API. The data parameter accepts an object which
+ // must have a files property and can contain additional options:
+ // .fileupload('add', {files: filesList});
+ add: function (data) {
+ var that = this;
+ if (!data || this.options.disabled) {
+ return;
+ }
+ if (data.fileInput && !data.files) {
+ this._getFileInputFiles(data.fileInput).always(function (files) {
+ data.files = files;
+ that._onAdd(null, data);
+ });
+ } else {
+ data.files = $.makeArray(data.files);
+ this._onAdd(null, data);
+ }
+ },
+
+ // This method is exposed to the widget API and allows sending files
+ // using the fileupload API. The data parameter accepts an object which
+ // must have a files or fileInput property and can contain additional options:
+ // .fileupload('send', {files: filesList});
+ // The method returns a Promise object for the file upload call.
+ send: function (data) {
+ if (data && !this.options.disabled) {
+ if (data.fileInput && !data.files) {
+ var that = this,
+ dfd = $.Deferred(),
+ promise = dfd.promise(),
+ jqXHR,
+ aborted;
+ promise.abort = function () {
+ aborted = true;
+ if (jqXHR) {
+ return jqXHR.abort();
+ }
+ dfd.reject(null, 'abort', 'abort');
+ return promise;
+ };
+ this._getFileInputFiles(data.fileInput).always(
+ function (files) {
+ if (aborted) {
+ return;
+ }
+ if (!files.length) {
+ dfd.reject();
+ return;
+ }
+ data.files = files;
+ jqXHR = that._onSend(null, data).then(
+ function (result, textStatus, jqXHR) {
+ dfd.resolve(result, textStatus, jqXHR);
+ },
+ function (jqXHR, textStatus, errorThrown) {
+ dfd.reject(jqXHR, textStatus, errorThrown);
+ }
+ );
+ }
+ );
+ return this._enhancePromise(promise);
+ }
+ data.files = $.makeArray(data.files);
+ if (data.files.length) {
+ return this._onSend(null, data);
+ }
+ }
+ return this._getXHRPromise(false, data && data.context);
+ }
+
+ });
+
+}));
diff --git a/library/jqupload/js/jquery.iframe-transport.js b/library/jqupload/js/jquery.iframe-transport.js
new file mode 100644
index 000000000..8d64b591b
--- /dev/null
+++ b/library/jqupload/js/jquery.iframe-transport.js
@@ -0,0 +1,214 @@
+/*
+ * jQuery Iframe Transport Plugin 1.8.2
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2011, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+/* global define, window, document */
+
+(function (factory) {
+ 'use strict';
+ if (typeof define === 'function' && define.amd) {
+ // Register as an anonymous AMD module:
+ define(['jquery'], factory);
+ } else {
+ // Browser globals:
+ factory(window.jQuery);
+ }
+}(function ($) {
+ 'use strict';
+
+ // Helper variable to create unique names for the transport iframes:
+ var counter = 0;
+
+ // The iframe transport accepts four additional options:
+ // options.fileInput: a jQuery collection of file input fields
+ // options.paramName: the parameter name for the file form data,
+ // overrides the name property of the file input field(s),
+ // can be a string or an array of strings.
+ // options.formData: an array of objects with name and value properties,
+ // equivalent to the return data of .serializeArray(), e.g.:
+ // [{name: 'a', value: 1}, {name: 'b', value: 2}]
+ // options.initialIframeSrc: the URL of the initial iframe src,
+ // by default set to "javascript:false;"
+ $.ajaxTransport('iframe', function (options) {
+ if (options.async) {
+ // javascript:false as initial iframe src
+ // prevents warning popups on HTTPS in IE6:
+ /*jshint scripturl: true */
+ var initialIframeSrc = options.initialIframeSrc || 'javascript:false;',
+ /*jshint scripturl: false */
+ form,
+ iframe,
+ addParamChar;
+ return {
+ send: function (_, completeCallback) {
+ form = $('<form style="display:none;"></form>');
+ form.attr('accept-charset', options.formAcceptCharset);
+ addParamChar = /\?/.test(options.url) ? '&' : '?';
+ // XDomainRequest only supports GET and POST:
+ if (options.type === 'DELETE') {
+ options.url = options.url + addParamChar + '_method=DELETE';
+ options.type = 'POST';
+ } else if (options.type === 'PUT') {
+ options.url = options.url + addParamChar + '_method=PUT';
+ options.type = 'POST';
+ } else if (options.type === 'PATCH') {
+ options.url = options.url + addParamChar + '_method=PATCH';
+ options.type = 'POST';
+ }
+ // IE versions below IE8 cannot set the name property of
+ // elements that have already been added to the DOM,
+ // so we set the name along with the iframe HTML markup:
+ counter += 1;
+ iframe = $(
+ '<iframe src="' + initialIframeSrc +
+ '" name="iframe-transport-' + counter + '"></iframe>'
+ ).bind('load', function () {
+ var fileInputClones,
+ paramNames = $.isArray(options.paramName) ?
+ options.paramName : [options.paramName];
+ iframe
+ .unbind('load')
+ .bind('load', function () {
+ var response;
+ // Wrap in a try/catch block to catch exceptions thrown
+ // when trying to access cross-domain iframe contents:
+ try {
+ response = iframe.contents();
+ // Google Chrome and Firefox do not throw an
+ // exception when calling iframe.contents() on
+ // cross-domain requests, so we unify the response:
+ if (!response.length || !response[0].firstChild) {
+ throw new Error();
+ }
+ } catch (e) {
+ response = undefined;
+ }
+ // The complete callback returns the
+ // iframe content document as response object:
+ completeCallback(
+ 200,
+ 'success',
+ {'iframe': response}
+ );
+ // Fix for IE endless progress bar activity bug
+ // (happens on form submits to iframe targets):
+ $('<iframe src="' + initialIframeSrc + '"></iframe>')
+ .appendTo(form);
+ window.setTimeout(function () {
+ // Removing the form in a setTimeout call
+ // allows Chrome's developer tools to display
+ // the response result
+ form.remove();
+ }, 0);
+ });
+ form
+ .prop('target', iframe.prop('name'))
+ .prop('action', options.url)
+ .prop('method', options.type);
+ if (options.formData) {
+ $.each(options.formData, function (index, field) {
+ $('<input type="hidden"/>')
+ .prop('name', field.name)
+ .val(field.value)
+ .appendTo(form);
+ });
+ }
+ if (options.fileInput && options.fileInput.length &&
+ options.type === 'POST') {
+ fileInputClones = options.fileInput.clone();
+ // Insert a clone for each file input field:
+ options.fileInput.after(function (index) {
+ return fileInputClones[index];
+ });
+ if (options.paramName) {
+ options.fileInput.each(function (index) {
+ $(this).prop(
+ 'name',
+ paramNames[index] || options.paramName
+ );
+ });
+ }
+ // Appending the file input fields to the hidden form
+ // removes them from their original location:
+ form
+ .append(options.fileInput)
+ .prop('enctype', 'multipart/form-data')
+ // enctype must be set as encoding for IE:
+ .prop('encoding', 'multipart/form-data');
+ // Remove the HTML5 form attribute from the input(s):
+ options.fileInput.removeAttr('form');
+ }
+ form.submit();
+ // Insert the file input fields at their original location
+ // by replacing the clones with the originals:
+ if (fileInputClones && fileInputClones.length) {
+ options.fileInput.each(function (index, input) {
+ var clone = $(fileInputClones[index]);
+ // Restore the original name and form properties:
+ $(input)
+ .prop('name', clone.prop('name'))
+ .attr('form', clone.attr('form'));
+ clone.replaceWith(input);
+ });
+ }
+ });
+ form.append(iframe).appendTo(document.body);
+ },
+ abort: function () {
+ if (iframe) {
+ // javascript:false as iframe src aborts the request
+ // and prevents warning popups on HTTPS in IE6.
+ // concat is used to avoid the "Script URL" JSLint error:
+ iframe
+ .unbind('load')
+ .prop('src', initialIframeSrc);
+ }
+ if (form) {
+ form.remove();
+ }
+ }
+ };
+ }
+ });
+
+ // The iframe transport returns the iframe content document as response.
+ // The following adds converters from iframe to text, json, html, xml
+ // and script.
+ // Please note that the Content-Type for JSON responses has to be text/plain
+ // or text/html, if the browser doesn't include application/json in the
+ // Accept header, else IE will show a download dialog.
+ // The Content-Type for XML responses on the other hand has to be always
+ // application/xml or text/xml, so IE properly parses the XML response.
+ // See also
+ // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation
+ $.ajaxSetup({
+ converters: {
+ 'iframe text': function (iframe) {
+ return iframe && $(iframe[0].body).text();
+ },
+ 'iframe json': function (iframe) {
+ return iframe && $.parseJSON($(iframe[0].body).text());
+ },
+ 'iframe html': function (iframe) {
+ return iframe && $(iframe[0].body).html();
+ },
+ 'iframe xml': function (iframe) {
+ var xmlDoc = iframe && iframe[0];
+ return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc :
+ $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) ||
+ $(xmlDoc.body).html());
+ },
+ 'iframe script': function (iframe) {
+ return iframe && $.globalEval($(iframe[0].body).text());
+ }
+ }
+ });
+
+}));
diff --git a/library/jqupload/js/main.js b/library/jqupload/js/main.js
new file mode 100644
index 000000000..8f57967a3
--- /dev/null
+++ b/library/jqupload/js/main.js
@@ -0,0 +1,75 @@
+/*
+ * jQuery File Upload Plugin JS Example 8.9.1
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2010, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+/* global $, window */
+
+$(function () {
+ 'use strict';
+
+ // Initialize the jQuery File Upload widget:
+ $('#fileupload').fileupload({
+ // Uncomment the following to send cross-domain cookies:
+ //xhrFields: {withCredentials: true},
+ url: 'server/php/'
+ });
+
+ // Enable iframe cross-domain access via redirect option:
+ $('#fileupload').fileupload(
+ 'option',
+ 'redirect',
+ window.location.href.replace(
+ /\/[^\/]*$/,
+ '/cors/result.html?%s'
+ )
+ );
+
+ if (window.location.hostname === 'blueimp.github.io') {
+ // Demo settings:
+ $('#fileupload').fileupload('option', {
+ url: '//jquery-file-upload.appspot.com/',
+ // Enable image resizing, except for Android and Opera,
+ // which actually support image resizing, but fail to
+ // send Blob objects via XHR requests:
+ disableImageResize: /Android(?!.*Chrome)|Opera/
+ .test(window.navigator.userAgent),
+ maxFileSize: 5000000,
+ acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i
+ });
+ // Upload server status check for browsers with CORS support:
+ if ($.support.cors) {
+ $.ajax({
+ url: '//jquery-file-upload.appspot.com/',
+ type: 'HEAD'
+ }).fail(function () {
+ $('<div class="alert alert-danger"/>')
+ .text('Upload server currently unavailable - ' +
+ new Date())
+ .appendTo('#fileupload');
+ });
+ }
+ } else {
+ // Load existing files:
+ $('#fileupload').addClass('fileupload-processing');
+ $.ajax({
+ // Uncomment the following to send cross-domain cookies:
+ //xhrFields: {withCredentials: true},
+ url: $('#fileupload').fileupload('option', 'url'),
+ dataType: 'json',
+ context: $('#fileupload')[0]
+ }).always(function () {
+ $(this).removeClass('fileupload-processing');
+ }).done(function (result) {
+ $(this).fileupload('option', 'done')
+ .call(this, $.Event('done'), {result: result});
+ });
+ }
+
+});
diff --git a/library/jqupload/js/vendor/jquery.ui.widget.js b/library/jqupload/js/vendor/jquery.ui.widget.js
new file mode 100644
index 000000000..2d370893a
--- /dev/null
+++ b/library/jqupload/js/vendor/jquery.ui.widget.js
@@ -0,0 +1,530 @@
+/*
+ * jQuery UI Widget 1.10.3+amd
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013 jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/jQuery.widget/
+ */
+
+(function (factory) {
+ if (typeof define === "function" && define.amd) {
+ // Register as an anonymous AMD module:
+ define(["jquery"], factory);
+ } else {
+ // Browser globals:
+ factory(jQuery);
+ }
+}(function( $, undefined ) {
+
+var uuid = 0,
+ slice = Array.prototype.slice,
+ _cleanData = $.cleanData;
+$.cleanData = function( elems ) {
+ for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
+ try {
+ $( elem ).triggerHandler( "remove" );
+ // http://bugs.jquery.com/ticket/8235
+ } catch( e ) {}
+ }
+ _cleanData( elems );
+};
+
+$.widget = function( name, base, prototype ) {
+ var fullName, existingConstructor, constructor, basePrototype,
+ // proxiedPrototype allows the provided prototype to remain unmodified
+ // so that it can be used as a mixin for multiple widgets (#8876)
+ proxiedPrototype = {},
+ namespace = name.split( "." )[ 0 ];
+
+ name = name.split( "." )[ 1 ];
+ fullName = namespace + "-" + name;
+
+ if ( !prototype ) {
+ prototype = base;
+ base = $.Widget;
+ }
+
+ // create selector for plugin
+ $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
+ return !!$.data( elem, fullName );
+ };
+
+ $[ namespace ] = $[ namespace ] || {};
+ existingConstructor = $[ namespace ][ name ];
+ constructor = $[ namespace ][ name ] = function( options, element ) {
+ // allow instantiation without "new" keyword
+ if ( !this._createWidget ) {
+ return new constructor( options, element );
+ }
+
+ // allow instantiation without initializing for simple inheritance
+ // must use "new" keyword (the code above always passes args)
+ if ( arguments.length ) {
+ this._createWidget( options, element );
+ }
+ };
+ // extend with the existing constructor to carry over any static properties
+ $.extend( constructor, existingConstructor, {
+ version: prototype.version,
+ // copy the object used to create the prototype in case we need to
+ // redefine the widget later
+ _proto: $.extend( {}, prototype ),
+ // track widgets that inherit from this widget in case this widget is
+ // redefined after a widget inherits from it
+ _childConstructors: []
+ });
+
+ basePrototype = new base();
+ // we need to make the options hash a property directly on the new instance
+ // otherwise we'll modify the options hash on the prototype that we're
+ // inheriting from
+ basePrototype.options = $.widget.extend( {}, basePrototype.options );
+ $.each( prototype, function( prop, value ) {
+ if ( !$.isFunction( value ) ) {
+ proxiedPrototype[ prop ] = value;
+ return;
+ }
+ proxiedPrototype[ prop ] = (function() {
+ var _super = function() {
+ return base.prototype[ prop ].apply( this, arguments );
+ },
+ _superApply = function( args ) {
+ return base.prototype[ prop ].apply( this, args );
+ };
+ return function() {
+ var __super = this._super,
+ __superApply = this._superApply,
+ returnValue;
+
+ this._super = _super;
+ this._superApply = _superApply;
+
+ returnValue = value.apply( this, arguments );
+
+ this._super = __super;
+ this._superApply = __superApply;
+
+ return returnValue;
+ };
+ })();
+ });
+ constructor.prototype = $.widget.extend( basePrototype, {
+ // TODO: remove support for widgetEventPrefix
+ // always use the name + a colon as the prefix, e.g., draggable:start
+ // don't prefix for widgets that aren't DOM-based
+ widgetEventPrefix: existingConstructor ? basePrototype.widgetEventPrefix : name
+ }, proxiedPrototype, {
+ constructor: constructor,
+ namespace: namespace,
+ widgetName: name,
+ widgetFullName: fullName
+ });
+
+ // If this widget is being redefined then we need to find all widgets that
+ // are inheriting from it and redefine all of them so that they inherit from
+ // the new version of this widget. We're essentially trying to replace one
+ // level in the prototype chain.
+ if ( existingConstructor ) {
+ $.each( existingConstructor._childConstructors, function( i, child ) {
+ var childPrototype = child.prototype;
+
+ // redefine the child widget using the same prototype that was
+ // originally used, but inherit from the new version of the base
+ $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto );
+ });
+ // remove the list of existing child constructors from the old constructor
+ // so the old child constructors can be garbage collected
+ delete existingConstructor._childConstructors;
+ } else {
+ base._childConstructors.push( constructor );
+ }
+
+ $.widget.bridge( name, constructor );
+};
+
+$.widget.extend = function( target ) {
+ var input = slice.call( arguments, 1 ),
+ inputIndex = 0,
+ inputLength = input.length,
+ key,
+ value;
+ for ( ; inputIndex < inputLength; inputIndex++ ) {
+ for ( key in input[ inputIndex ] ) {
+ value = input[ inputIndex ][ key ];
+ if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
+ // Clone objects
+ if ( $.isPlainObject( value ) ) {
+ target[ key ] = $.isPlainObject( target[ key ] ) ?
+ $.widget.extend( {}, target[ key ], value ) :
+ // Don't extend strings, arrays, etc. with objects
+ $.widget.extend( {}, value );
+ // Copy everything else by reference
+ } else {
+ target[ key ] = value;
+ }
+ }
+ }
+ }
+ return target;
+};
+
+$.widget.bridge = function( name, object ) {
+ var fullName = object.prototype.widgetFullName || name;
+ $.fn[ name ] = function( options ) {
+ var isMethodCall = typeof options === "string",
+ args = slice.call( arguments, 1 ),
+ returnValue = this;
+
+ // allow multiple hashes to be passed on init
+ options = !isMethodCall && args.length ?
+ $.widget.extend.apply( null, [ options ].concat(args) ) :
+ options;
+
+ if ( isMethodCall ) {
+ this.each(function() {
+ var methodValue,
+ instance = $.data( this, fullName );
+ if ( !instance ) {
+ return $.error( "cannot call methods on " + name + " prior to initialization; " +
+ "attempted to call method '" + options + "'" );
+ }
+ if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) {
+ return $.error( "no such method '" + options + "' for " + name + " widget instance" );
+ }
+ methodValue = instance[ options ].apply( instance, args );
+ if ( methodValue !== instance && methodValue !== undefined ) {
+ returnValue = methodValue && methodValue.jquery ?
+ returnValue.pushStack( methodValue.get() ) :
+ methodValue;
+ return false;
+ }
+ });
+ } else {
+ this.each(function() {
+ var instance = $.data( this, fullName );
+ if ( instance ) {
+ instance.option( options || {} )._init();
+ } else {
+ $.data( this, fullName, new object( options, this ) );
+ }
+ });
+ }
+
+ return returnValue;
+ };
+};
+
+$.Widget = function( /* options, element */ ) {};
+$.Widget._childConstructors = [];
+
+$.Widget.prototype = {
+ widgetName: "widget",
+ widgetEventPrefix: "",
+ defaultElement: "<div>",
+ options: {
+ disabled: false,
+
+ // callbacks
+ create: null
+ },
+ _createWidget: function( options, element ) {
+ element = $( element || this.defaultElement || this )[ 0 ];
+ this.element = $( element );
+ this.uuid = uuid++;
+ this.eventNamespace = "." + this.widgetName + this.uuid;
+ this.options = $.widget.extend( {},
+ this.options,
+ this._getCreateOptions(),
+ options );
+
+ this.bindings = $();
+ this.hoverable = $();
+ this.focusable = $();
+
+ if ( element !== this ) {
+ $.data( element, this.widgetFullName, this );
+ this._on( true, this.element, {
+ remove: function( event ) {
+ if ( event.target === element ) {
+ this.destroy();
+ }
+ }
+ });
+ this.document = $( element.style ?
+ // element within the document
+ element.ownerDocument :
+ // element is window or document
+ element.document || element );
+ this.window = $( this.document[0].defaultView || this.document[0].parentWindow );
+ }
+
+ this._create();
+ this._trigger( "create", null, this._getCreateEventData() );
+ this._init();
+ },
+ _getCreateOptions: $.noop,
+ _getCreateEventData: $.noop,
+ _create: $.noop,
+ _init: $.noop,
+
+ destroy: function() {
+ this._destroy();
+ // we can probably remove the unbind calls in 2.0
+ // all event bindings should go through this._on()
+ this.element
+ .unbind( this.eventNamespace )
+ // 1.9 BC for #7810
+ // TODO remove dual storage
+ .removeData( this.widgetName )
+ .removeData( this.widgetFullName )
+ // support: jquery <1.6.3
+ // http://bugs.jquery.com/ticket/9413
+ .removeData( $.camelCase( this.widgetFullName ) );
+ this.widget()
+ .unbind( this.eventNamespace )
+ .removeAttr( "aria-disabled" )
+ .removeClass(
+ this.widgetFullName + "-disabled " +
+ "ui-state-disabled" );
+
+ // clean up events and states
+ this.bindings.unbind( this.eventNamespace );
+ this.hoverable.removeClass( "ui-state-hover" );
+ this.focusable.removeClass( "ui-state-focus" );
+ },
+ _destroy: $.noop,
+
+ widget: function() {
+ return this.element;
+ },
+
+ option: function( key, value ) {
+ var options = key,
+ parts,
+ curOption,
+ i;
+
+ if ( arguments.length === 0 ) {
+ // don't return a reference to the internal hash
+ return $.widget.extend( {}, this.options );
+ }
+
+ if ( typeof key === "string" ) {
+ // handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
+ options = {};
+ parts = key.split( "." );
+ key = parts.shift();
+ if ( parts.length ) {
+ curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
+ for ( i = 0; i < parts.length - 1; i++ ) {
+ curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
+ curOption = curOption[ parts[ i ] ];
+ }
+ key = parts.pop();
+ if ( value === undefined ) {
+ return curOption[ key ] === undefined ? null : curOption[ key ];
+ }
+ curOption[ key ] = value;
+ } else {
+ if ( value === undefined ) {
+ return this.options[ key ] === undefined ? null : this.options[ key ];
+ }
+ options[ key ] = value;
+ }
+ }
+
+ this._setOptions( options );
+
+ return this;
+ },
+ _setOptions: function( options ) {
+ var key;
+
+ for ( key in options ) {
+ this._setOption( key, options[ key ] );
+ }
+
+ return this;
+ },
+ _setOption: function( key, value ) {
+ this.options[ key ] = value;
+
+ if ( key === "disabled" ) {
+ this.widget()
+ .toggleClass( this.widgetFullName + "-disabled ui-state-disabled", !!value )
+ .attr( "aria-disabled", value );
+ this.hoverable.removeClass( "ui-state-hover" );
+ this.focusable.removeClass( "ui-state-focus" );
+ }
+
+ return this;
+ },
+
+ enable: function() {
+ return this._setOption( "disabled", false );
+ },
+ disable: function() {
+ return this._setOption( "disabled", true );
+ },
+
+ _on: function( suppressDisabledCheck, element, handlers ) {
+ var delegateElement,
+ instance = this;
+
+ // no suppressDisabledCheck flag, shuffle arguments
+ if ( typeof suppressDisabledCheck !== "boolean" ) {
+ handlers = element;
+ element = suppressDisabledCheck;
+ suppressDisabledCheck = false;
+ }
+
+ // no element argument, shuffle and use this.element
+ if ( !handlers ) {
+ handlers = element;
+ element = this.element;
+ delegateElement = this.widget();
+ } else {
+ // accept selectors, DOM elements
+ element = delegateElement = $( element );
+ this.bindings = this.bindings.add( element );
+ }
+
+ $.each( handlers, function( event, handler ) {
+ function handlerProxy() {
+ // allow widgets to customize the disabled handling
+ // - disabled as an array instead of boolean
+ // - disabled class as method for disabling individual parts
+ if ( !suppressDisabledCheck &&
+ ( instance.options.disabled === true ||
+ $( this ).hasClass( "ui-state-disabled" ) ) ) {
+ return;
+ }
+ return ( typeof handler === "string" ? instance[ handler ] : handler )
+ .apply( instance, arguments );
+ }
+
+ // copy the guid so direct unbinding works
+ if ( typeof handler !== "string" ) {
+ handlerProxy.guid = handler.guid =
+ handler.guid || handlerProxy.guid || $.guid++;
+ }
+
+ var match = event.match( /^(\w+)\s*(.*)$/ ),
+ eventName = match[1] + instance.eventNamespace,
+ selector = match[2];
+ if ( selector ) {
+ delegateElement.delegate( selector, eventName, handlerProxy );
+ } else {
+ element.bind( eventName, handlerProxy );
+ }
+ });
+ },
+
+ _off: function( element, eventName ) {
+ eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + this.eventNamespace;
+ element.unbind( eventName ).undelegate( eventName );
+ },
+
+ _delay: function( handler, delay ) {
+ function handlerProxy() {
+ return ( typeof handler === "string" ? instance[ handler ] : handler )
+ .apply( instance, arguments );
+ }
+ var instance = this;
+ return setTimeout( handlerProxy, delay || 0 );
+ },
+
+ _hoverable: function( element ) {
+ this.hoverable = this.hoverable.add( element );
+ this._on( element, {
+ mouseenter: function( event ) {
+ $( event.currentTarget ).addClass( "ui-state-hover" );
+ },
+ mouseleave: function( event ) {
+ $( event.currentTarget ).removeClass( "ui-state-hover" );
+ }
+ });
+ },
+
+ _focusable: function( element ) {
+ this.focusable = this.focusable.add( element );
+ this._on( element, {
+ focusin: function( event ) {
+ $( event.currentTarget ).addClass( "ui-state-focus" );
+ },
+ focusout: function( event ) {
+ $( event.currentTarget ).removeClass( "ui-state-focus" );
+ }
+ });
+ },
+
+ _trigger: function( type, event, data ) {
+ var prop, orig,
+ callback = this.options[ type ];
+
+ data = data || {};
+ event = $.Event( event );
+ event.type = ( type === this.widgetEventPrefix ?
+ type :
+ this.widgetEventPrefix + type ).toLowerCase();
+ // the original event may come from any element
+ // so we need to reset the target on the new event
+ event.target = this.element[ 0 ];
+
+ // copy original event properties over to the new event
+ orig = event.originalEvent;
+ if ( orig ) {
+ for ( prop in orig ) {
+ if ( !( prop in event ) ) {
+ event[ prop ] = orig[ prop ];
+ }
+ }
+ }
+
+ this.element.trigger( event, data );
+ return !( $.isFunction( callback ) &&
+ callback.apply( this.element[0], [ event ].concat( data ) ) === false ||
+ event.isDefaultPrevented() );
+ }
+};
+
+$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
+ $.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
+ if ( typeof options === "string" ) {
+ options = { effect: options };
+ }
+ var hasOptions,
+ effectName = !options ?
+ method :
+ options === true || typeof options === "number" ?
+ defaultEffect :
+ options.effect || defaultEffect;
+ options = options || {};
+ if ( typeof options === "number" ) {
+ options = { duration: options };
+ }
+ hasOptions = !$.isEmptyObject( options );
+ options.complete = callback;
+ if ( options.delay ) {
+ element.delay( options.delay );
+ }
+ if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
+ element[ method ]( options );
+ } else if ( effectName !== method && element[ effectName ] ) {
+ element[ effectName ]( options.duration, options.easing, callback );
+ } else {
+ element.queue(function( next ) {
+ $( this )[ method ]();
+ if ( callback ) {
+ callback.call( element[ 0 ] );
+ }
+ next();
+ });
+ }
+ };
+});
+
+}));
diff --git a/library/jqupload/package.json b/library/jqupload/package.json
new file mode 100644
index 000000000..85852c35a
--- /dev/null
+++ b/library/jqupload/package.json
@@ -0,0 +1,54 @@
+{
+ "name": "blueimp-file-upload",
+ "version": "9.5.2",
+ "title": "jQuery File Upload",
+ "description": "File Upload widget with multiple file selection, drag&amp;drop support, progress bar, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads. Works with any server-side platform (Google App Engine, PHP, Python, Ruby on Rails, Java, etc.) that supports standard HTML form file uploads.",
+ "keywords": [
+ "jquery",
+ "file",
+ "upload",
+ "widget",
+ "multiple",
+ "selection",
+ "drag",
+ "drop",
+ "progress",
+ "preview",
+ "cross-domain",
+ "cross-site",
+ "chunk",
+ "resume",
+ "gae",
+ "go",
+ "python",
+ "php",
+ "bootstrap"
+ ],
+ "homepage": "https://github.com/blueimp/jQuery-File-Upload",
+ "author": {
+ "name": "Sebastian Tschan",
+ "url": "https://blueimp.net"
+ },
+ "maintainers": [
+ {
+ "name": "Sebastian Tschan",
+ "url": "https://blueimp.net"
+ }
+ ],
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/blueimp/jQuery-File-Upload.git"
+ },
+ "bugs": "https://github.com/blueimp/jQuery-File-Upload/issues",
+ "licenses": [
+ {
+ "type": "MIT",
+ "url": "http://www.opensource.org/licenses/MIT"
+ }
+ ],
+ "devDependencies": {
+ "grunt": "~0.4.2",
+ "grunt-bump-build-git": "~1.1.1",
+ "grunt-contrib-jshint": "~0.8.0"
+ }
+}
diff --git a/library/jqupload/server/gae-go/app.yaml b/library/jqupload/server/gae-go/app.yaml
new file mode 100644
index 000000000..2d09daa56
--- /dev/null
+++ b/library/jqupload/server/gae-go/app.yaml
@@ -0,0 +1,12 @@
+application: jquery-file-upload
+version: 2
+runtime: go
+api_version: go1
+
+handlers:
+- url: /(favicon\.ico|robots\.txt)
+ static_files: static/\1
+ upload: static/(.*)
+ expiration: '1d'
+- url: /.*
+ script: _go_app
diff --git a/library/jqupload/server/gae-go/app/main.go b/library/jqupload/server/gae-go/app/main.go
new file mode 100644
index 000000000..f995f73a8
--- /dev/null
+++ b/library/jqupload/server/gae-go/app/main.go
@@ -0,0 +1,296 @@
+/*
+ * jQuery File Upload Plugin GAE Go Example 3.1.1
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2011, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+package app
+
+import (
+ "appengine"
+ "appengine/blobstore"
+ "appengine/image"
+ "appengine/taskqueue"
+ "bytes"
+ "encoding/json"
+ "fmt"
+ "io"
+ "log"
+ "mime/multipart"
+ "net/http"
+ "net/url"
+ "regexp"
+ "strings"
+ "time"
+)
+
+const (
+ WEBSITE = "http://blueimp.github.io/jQuery-File-Upload/"
+ MIN_FILE_SIZE = 1 // bytes
+ MAX_FILE_SIZE = 5000000 // bytes
+ IMAGE_TYPES = "image/(gif|p?jpeg|(x-)?png)"
+ ACCEPT_FILE_TYPES = IMAGE_TYPES
+ EXPIRATION_TIME = 300 // seconds
+ THUMBNAIL_PARAM = "=s80"
+)
+
+var (
+ imageTypes = regexp.MustCompile(IMAGE_TYPES)
+ acceptFileTypes = regexp.MustCompile(ACCEPT_FILE_TYPES)
+)
+
+type FileInfo struct {
+ Key appengine.BlobKey `json:"-"`
+ Url string `json:"url,omitempty"`
+ ThumbnailUrl string `json:"thumbnailUrl,omitempty"`
+ Name string `json:"name"`
+ Type string `json:"type"`
+ Size int64 `json:"size"`
+ Error string `json:"error,omitempty"`
+ DeleteUrl string `json:"deleteUrl,omitempty"`
+ DeleteType string `json:"deleteType,omitempty"`
+}
+
+func (fi *FileInfo) ValidateType() (valid bool) {
+ if acceptFileTypes.MatchString(fi.Type) {
+ return true
+ }
+ fi.Error = "Filetype not allowed"
+ return false
+}
+
+func (fi *FileInfo) ValidateSize() (valid bool) {
+ if fi.Size < MIN_FILE_SIZE {
+ fi.Error = "File is too small"
+ } else if fi.Size > MAX_FILE_SIZE {
+ fi.Error = "File is too big"
+ } else {
+ return true
+ }
+ return false
+}
+
+func (fi *FileInfo) CreateUrls(r *http.Request, c appengine.Context) {
+ u := &url.URL{
+ Scheme: r.URL.Scheme,
+ Host: appengine.DefaultVersionHostname(c),
+ Path: "/",
+ }
+ uString := u.String()
+ fi.Url = uString + escape(string(fi.Key)) + "/" +
+ escape(string(fi.Name))
+ fi.DeleteUrl = fi.Url + "?delete=true"
+ fi.DeleteType = "DELETE"
+ if imageTypes.MatchString(fi.Type) {
+ servingUrl, err := image.ServingURL(
+ c,
+ fi.Key,
+ &image.ServingURLOptions{
+ Secure: strings.HasSuffix(u.Scheme, "s"),
+ Size: 0,
+ Crop: false,
+ },
+ )
+ check(err)
+ fi.ThumbnailUrl = servingUrl.String() + THUMBNAIL_PARAM
+ }
+}
+
+func check(err error) {
+ if err != nil {
+ panic(err)
+ }
+}
+
+func escape(s string) string {
+ return strings.Replace(url.QueryEscape(s), "+", "%20", -1)
+}
+
+func delayedDelete(c appengine.Context, fi *FileInfo) {
+ if key := string(fi.Key); key != "" {
+ task := &taskqueue.Task{
+ Path: "/" + escape(key) + "/-",
+ Method: "DELETE",
+ Delay: time.Duration(EXPIRATION_TIME) * time.Second,
+ }
+ taskqueue.Add(c, task, "")
+ }
+}
+
+func handleUpload(r *http.Request, p *multipart.Part) (fi *FileInfo) {
+ fi = &FileInfo{
+ Name: p.FileName(),
+ Type: p.Header.Get("Content-Type"),
+ }
+ if !fi.ValidateType() {
+ return
+ }
+ defer func() {
+ if rec := recover(); rec != nil {
+ log.Println(rec)
+ fi.Error = rec.(error).Error()
+ }
+ }()
+ lr := &io.LimitedReader{R: p, N: MAX_FILE_SIZE + 1}
+ context := appengine.NewContext(r)
+ w, err := blobstore.Create(context, fi.Type)
+ defer func() {
+ w.Close()
+ fi.Size = MAX_FILE_SIZE + 1 - lr.N
+ fi.Key, err = w.Key()
+ check(err)
+ if !fi.ValidateSize() {
+ err := blobstore.Delete(context, fi.Key)
+ check(err)
+ return
+ }
+ delayedDelete(context, fi)
+ fi.CreateUrls(r, context)
+ }()
+ check(err)
+ _, err = io.Copy(w, lr)
+ return
+}
+
+func getFormValue(p *multipart.Part) string {
+ var b bytes.Buffer
+ io.CopyN(&b, p, int64(1<<20)) // Copy max: 1 MiB
+ return b.String()
+}
+
+func handleUploads(r *http.Request) (fileInfos []*FileInfo) {
+ fileInfos = make([]*FileInfo, 0)
+ mr, err := r.MultipartReader()
+ check(err)
+ r.Form, err = url.ParseQuery(r.URL.RawQuery)
+ check(err)
+ part, err := mr.NextPart()
+ for err == nil {
+ if name := part.FormName(); name != "" {
+ if part.FileName() != "" {
+ fileInfos = append(fileInfos, handleUpload(r, part))
+ } else {
+ r.Form[name] = append(r.Form[name], getFormValue(part))
+ }
+ }
+ part, err = mr.NextPart()
+ }
+ return
+}
+
+func get(w http.ResponseWriter, r *http.Request) {
+ if r.URL.Path == "/" {
+ http.Redirect(w, r, WEBSITE, http.StatusFound)
+ return
+ }
+ parts := strings.Split(r.URL.Path, "/")
+ if len(parts) == 3 {
+ if key := parts[1]; key != "" {
+ blobKey := appengine.BlobKey(key)
+ bi, err := blobstore.Stat(appengine.NewContext(r), blobKey)
+ if err == nil {
+ w.Header().Add("X-Content-Type-Options", "nosniff")
+ if !imageTypes.MatchString(bi.ContentType) {
+ w.Header().Add("Content-Type", "application/octet-stream")
+ w.Header().Add(
+ "Content-Disposition",
+ fmt.Sprintf("attachment; filename=\"%s\"", parts[2]),
+ )
+ }
+ w.Header().Add(
+ "Cache-Control",
+ fmt.Sprintf("public,max-age=%d", EXPIRATION_TIME),
+ )
+ blobstore.Send(w, blobKey)
+ return
+ }
+ }
+ }
+ http.Error(w, "404 Not Found", http.StatusNotFound)
+}
+
+func post(w http.ResponseWriter, r *http.Request) {
+ result := make(map[string][]*FileInfo, 1)
+ result["files"] = handleUploads(r)
+ b, err := json.Marshal(result)
+ check(err)
+ if redirect := r.FormValue("redirect"); redirect != "" {
+ if strings.Contains(redirect, "%s") {
+ redirect = fmt.Sprintf(
+ redirect,
+ escape(string(b)),
+ )
+ }
+ http.Redirect(w, r, redirect, http.StatusFound)
+ return
+ }
+ w.Header().Set("Cache-Control", "no-cache")
+ jsonType := "application/json"
+ if strings.Index(r.Header.Get("Accept"), jsonType) != -1 {
+ w.Header().Set("Content-Type", jsonType)
+ }
+ fmt.Fprintln(w, string(b))
+}
+
+func delete(w http.ResponseWriter, r *http.Request) {
+ parts := strings.Split(r.URL.Path, "/")
+ if len(parts) != 3 {
+ return
+ }
+ result := make(map[string]bool, 1)
+ if key := parts[1]; key != "" {
+ c := appengine.NewContext(r)
+ blobKey := appengine.BlobKey(key)
+ err := blobstore.Delete(c, blobKey)
+ check(err)
+ err = image.DeleteServingURL(c, blobKey)
+ check(err)
+ result[key] = true
+ }
+ jsonType := "application/json"
+ if strings.Index(r.Header.Get("Accept"), jsonType) != -1 {
+ w.Header().Set("Content-Type", jsonType)
+ }
+ b, err := json.Marshal(result)
+ check(err)
+ fmt.Fprintln(w, string(b))
+}
+
+func handle(w http.ResponseWriter, r *http.Request) {
+ params, err := url.ParseQuery(r.URL.RawQuery)
+ check(err)
+ w.Header().Add("Access-Control-Allow-Origin", "*")
+ w.Header().Add(
+ "Access-Control-Allow-Methods",
+ "OPTIONS, HEAD, GET, POST, PUT, DELETE",
+ )
+ w.Header().Add(
+ "Access-Control-Allow-Headers",
+ "Content-Type, Content-Range, Content-Disposition",
+ )
+ switch r.Method {
+ case "OPTIONS":
+ case "HEAD":
+ case "GET":
+ get(w, r)
+ case "POST":
+ if len(params["_method"]) > 0 && params["_method"][0] == "DELETE" {
+ delete(w, r)
+ } else {
+ post(w, r)
+ }
+ case "DELETE":
+ delete(w, r)
+ default:
+ http.Error(w, "501 Not Implemented", http.StatusNotImplemented)
+ }
+}
+
+func init() {
+ http.HandleFunc("/", handle)
+}
diff --git a/library/jqupload/server/gae-go/static/robots.txt b/library/jqupload/server/gae-go/static/robots.txt
new file mode 100644
index 000000000..eb0536286
--- /dev/null
+++ b/library/jqupload/server/gae-go/static/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow:
diff --git a/library/jqupload/server/gae-python/app.yaml b/library/jqupload/server/gae-python/app.yaml
new file mode 100644
index 000000000..5fe123f59
--- /dev/null
+++ b/library/jqupload/server/gae-python/app.yaml
@@ -0,0 +1,16 @@
+application: jquery-file-upload
+version: 1
+runtime: python27
+api_version: 1
+threadsafe: true
+
+builtins:
+- deferred: on
+
+handlers:
+- url: /(favicon\.ico|robots\.txt)
+ static_files: static/\1
+ upload: static/(.*)
+ expiration: '1d'
+- url: /.*
+ script: main.app
diff --git a/library/jqupload/server/gae-python/main.py b/library/jqupload/server/gae-python/main.py
new file mode 100644
index 000000000..37aa44e38
--- /dev/null
+++ b/library/jqupload/server/gae-python/main.py
@@ -0,0 +1,170 @@
+# -*- coding: utf-8 -*-
+#
+# jQuery File Upload Plugin GAE Python Example 2.1.1
+# https://github.com/blueimp/jQuery-File-Upload
+#
+# Copyright 2011, Sebastian Tschan
+# https://blueimp.net
+#
+# Licensed under the MIT license:
+# http://www.opensource.org/licenses/MIT
+#
+
+from __future__ import with_statement
+from google.appengine.api import files, images
+from google.appengine.ext import blobstore, deferred
+from google.appengine.ext.webapp import blobstore_handlers
+import json
+import re
+import urllib
+import webapp2
+
+WEBSITE = 'http://blueimp.github.io/jQuery-File-Upload/'
+MIN_FILE_SIZE = 1 # bytes
+MAX_FILE_SIZE = 5000000 # bytes
+IMAGE_TYPES = re.compile('image/(gif|p?jpeg|(x-)?png)')
+ACCEPT_FILE_TYPES = IMAGE_TYPES
+THUMBNAIL_MODIFICATOR = '=s80' # max width / height
+EXPIRATION_TIME = 300 # seconds
+
+
+def cleanup(blob_keys):
+ blobstore.delete(blob_keys)
+
+
+class UploadHandler(webapp2.RequestHandler):
+
+ def initialize(self, request, response):
+ super(UploadHandler, self).initialize(request, response)
+ self.response.headers['Access-Control-Allow-Origin'] = '*'
+ self.response.headers[
+ 'Access-Control-Allow-Methods'
+ ] = 'OPTIONS, HEAD, GET, POST, PUT, DELETE'
+ self.response.headers[
+ 'Access-Control-Allow-Headers'
+ ] = 'Content-Type, Content-Range, Content-Disposition'
+
+ def validate(self, file):
+ if file['size'] < MIN_FILE_SIZE:
+ file['error'] = 'File is too small'
+ elif file['size'] > MAX_FILE_SIZE:
+ file['error'] = 'File is too big'
+ elif not ACCEPT_FILE_TYPES.match(file['type']):
+ file['error'] = 'Filetype not allowed'
+ else:
+ return True
+ return False
+
+ def get_file_size(self, file):
+ file.seek(0, 2) # Seek to the end of the file
+ size = file.tell() # Get the position of EOF
+ file.seek(0) # Reset the file position to the beginning
+ return size
+
+ def write_blob(self, data, info):
+ blob = files.blobstore.create(
+ mime_type=info['type'],
+ _blobinfo_uploaded_filename=info['name']
+ )
+ with files.open(blob, 'a') as f:
+ f.write(data)
+ files.finalize(blob)
+ return files.blobstore.get_blob_key(blob)
+
+ def handle_upload(self):
+ results = []
+ blob_keys = []
+ for name, fieldStorage in self.request.POST.items():
+ if type(fieldStorage) is unicode:
+ continue
+ result = {}
+ result['name'] = re.sub(
+ r'^.*\\',
+ '',
+ fieldStorage.filename
+ )
+ result['type'] = fieldStorage.type
+ result['size'] = self.get_file_size(fieldStorage.file)
+ if self.validate(result):
+ blob_key = str(
+ self.write_blob(fieldStorage.value, result)
+ )
+ blob_keys.append(blob_key)
+ result['deleteType'] = 'DELETE'
+ result['deleteUrl'] = self.request.host_url +\
+ '/?key=' + urllib.quote(blob_key, '')
+ if (IMAGE_TYPES.match(result['type'])):
+ try:
+ result['url'] = images.get_serving_url(
+ blob_key,
+ secure_url=self.request.host_url.startswith(
+ 'https'
+ )
+ )
+ result['thumbnailUrl'] = result['url'] +\
+ THUMBNAIL_MODIFICATOR
+ except: # Could not get an image serving url
+ pass
+ if not 'url' in result:
+ result['url'] = self.request.host_url +\
+ '/' + blob_key + '/' + urllib.quote(
+ result['name'].encode('utf-8'), '')
+ results.append(result)
+ deferred.defer(
+ cleanup,
+ blob_keys,
+ _countdown=EXPIRATION_TIME
+ )
+ return results
+
+ def options(self):
+ pass
+
+ def head(self):
+ pass
+
+ def get(self):
+ self.redirect(WEBSITE)
+
+ def post(self):
+ if (self.request.get('_method') == 'DELETE'):
+ return self.delete()
+ result = {'files': self.handle_upload()}
+ s = json.dumps(result, separators=(',', ':'))
+ redirect = self.request.get('redirect')
+ if redirect:
+ return self.redirect(str(
+ redirect.replace('%s', urllib.quote(s, ''), 1)
+ ))
+ if 'application/json' in self.request.headers.get('Accept'):
+ self.response.headers['Content-Type'] = 'application/json'
+ self.response.write(s)
+
+ def delete(self):
+ key = self.request.get('key') or ''
+ blobstore.delete(key)
+ s = json.dumps({key: True}, separators=(',', ':'))
+ if 'application/json' in self.request.headers.get('Accept'):
+ self.response.headers['Content-Type'] = 'application/json'
+ self.response.write(s)
+
+
+class DownloadHandler(blobstore_handlers.BlobstoreDownloadHandler):
+ def get(self, key, filename):
+ if not blobstore.get(key):
+ self.error(404)
+ else:
+ # Prevent browsers from MIME-sniffing the content-type:
+ self.response.headers['X-Content-Type-Options'] = 'nosniff'
+ # Cache for the expiration time:
+ self.response.headers['Cache-Control'] = 'public,max-age=%d' % EXPIRATION_TIME
+ # Send the file forcing a download dialog:
+ self.send_blob(key, save_as=filename, content_type='application/octet-stream')
+
+app = webapp2.WSGIApplication(
+ [
+ ('/', UploadHandler),
+ ('/([^/]+)/([^/]+)', DownloadHandler)
+ ],
+ debug=True
+)
diff --git a/library/jqupload/server/gae-python/static/robots.txt b/library/jqupload/server/gae-python/static/robots.txt
new file mode 100644
index 000000000..eb0536286
--- /dev/null
+++ b/library/jqupload/server/gae-python/static/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow:
diff --git a/library/jqupload/server/node/.gitignore b/library/jqupload/server/node/.gitignore
new file mode 100644
index 000000000..9daa8247d
--- /dev/null
+++ b/library/jqupload/server/node/.gitignore
@@ -0,0 +1,2 @@
+.DS_Store
+node_modules
diff --git a/library/jqupload/server/node/package.json b/library/jqupload/server/node/package.json
new file mode 100644
index 000000000..dd38c50ca
--- /dev/null
+++ b/library/jqupload/server/node/package.json
@@ -0,0 +1,41 @@
+{
+ "name": "blueimp-file-upload-node",
+ "version": "2.1.0",
+ "title": "jQuery File Upload Node.js example",
+ "description": "Node.js implementation example of a file upload handler for jQuery File Upload.",
+ "keywords": [
+ "file",
+ "upload",
+ "cross-domain",
+ "cross-site",
+ "node"
+ ],
+ "homepage": "https://github.com/blueimp/jQuery-File-Upload",
+ "author": {
+ "name": "Sebastian Tschan",
+ "url": "https://blueimp.net"
+ },
+ "maintainers": [
+ {
+ "name": "Sebastian Tschan",
+ "url": "https://blueimp.net"
+ }
+ ],
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/blueimp/jQuery-File-Upload.git"
+ },
+ "bugs": "https://github.com/blueimp/jQuery-File-Upload/issues",
+ "licenses": [
+ {
+ "type": "MIT",
+ "url": "http://www.opensource.org/licenses/MIT"
+ }
+ ],
+ "dependencies": {
+ "formidable": ">=1.0.11",
+ "node-static": ">=0.6.5",
+ "imagemagick": ">=0.1.3"
+ },
+ "main": "server.js"
+}
diff --git a/library/jqupload/server/node/public/files/.gitignore b/library/jqupload/server/node/public/files/.gitignore
new file mode 100644
index 000000000..d6b7ef32c
--- /dev/null
+++ b/library/jqupload/server/node/public/files/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/library/jqupload/server/node/server.js b/library/jqupload/server/node/server.js
new file mode 100755
index 000000000..5eb07a6ed
--- /dev/null
+++ b/library/jqupload/server/node/server.js
@@ -0,0 +1,292 @@
+#!/usr/bin/env node
+/*
+ * jQuery File Upload Plugin Node.js Example 2.1.1
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2012, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+/* jshint nomen:false */
+/* global require, __dirname, unescape, console */
+
+(function (port) {
+ 'use strict';
+ var path = require('path'),
+ fs = require('fs'),
+ // Since Node 0.8, .existsSync() moved from path to fs:
+ _existsSync = fs.existsSync || path.existsSync,
+ formidable = require('formidable'),
+ nodeStatic = require('node-static'),
+ imageMagick = require('imagemagick'),
+ options = {
+ tmpDir: __dirname + '/tmp',
+ publicDir: __dirname + '/public',
+ uploadDir: __dirname + '/public/files',
+ uploadUrl: '/files/',
+ maxPostSize: 11000000000, // 11 GB
+ minFileSize: 1,
+ maxFileSize: 10000000000, // 10 GB
+ acceptFileTypes: /.+/i,
+ // Files not matched by this regular expression force a download dialog,
+ // to prevent executing any scripts in the context of the service domain:
+ inlineFileTypes: /\.(gif|jpe?g|png)$/i,
+ imageTypes: /\.(gif|jpe?g|png)$/i,
+ imageVersions: {
+ 'thumbnail': {
+ width: 80,
+ height: 80
+ }
+ },
+ accessControl: {
+ allowOrigin: '*',
+ allowMethods: 'OPTIONS, HEAD, GET, POST, PUT, DELETE',
+ allowHeaders: 'Content-Type, Content-Range, Content-Disposition'
+ },
+ /* Uncomment and edit this section to provide the service via HTTPS:
+ ssl: {
+ key: fs.readFileSync('/Applications/XAMPP/etc/ssl.key/server.key'),
+ cert: fs.readFileSync('/Applications/XAMPP/etc/ssl.crt/server.crt')
+ },
+ */
+ nodeStatic: {
+ cache: 3600 // seconds to cache served files
+ }
+ },
+ utf8encode = function (str) {
+ return unescape(encodeURIComponent(str));
+ },
+ fileServer = new nodeStatic.Server(options.publicDir, options.nodeStatic),
+ nameCountRegexp = /(?:(?: \(([\d]+)\))?(\.[^.]+))?$/,
+ nameCountFunc = function (s, index, ext) {
+ return ' (' + ((parseInt(index, 10) || 0) + 1) + ')' + (ext || '');
+ },
+ FileInfo = function (file) {
+ this.name = file.name;
+ this.size = file.size;
+ this.type = file.type;
+ this.deleteType = 'DELETE';
+ },
+ UploadHandler = function (req, res, callback) {
+ this.req = req;
+ this.res = res;
+ this.callback = callback;
+ },
+ serve = function (req, res) {
+ res.setHeader(
+ 'Access-Control-Allow-Origin',
+ options.accessControl.allowOrigin
+ );
+ res.setHeader(
+ 'Access-Control-Allow-Methods',
+ options.accessControl.allowMethods
+ );
+ res.setHeader(
+ 'Access-Control-Allow-Headers',
+ options.accessControl.allowHeaders
+ );
+ var handleResult = function (result, redirect) {
+ if (redirect) {
+ res.writeHead(302, {
+ 'Location': redirect.replace(
+ /%s/,
+ encodeURIComponent(JSON.stringify(result))
+ )
+ });
+ res.end();
+ } else {
+ res.writeHead(200, {
+ 'Content-Type': req.headers.accept
+ .indexOf('application/json') !== -1 ?
+ 'application/json' : 'text/plain'
+ });
+ res.end(JSON.stringify(result));
+ }
+ },
+ setNoCacheHeaders = function () {
+ res.setHeader('Pragma', 'no-cache');
+ res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate');
+ res.setHeader('Content-Disposition', 'inline; filename="files.json"');
+ },
+ handler = new UploadHandler(req, res, handleResult);
+ switch (req.method) {
+ case 'OPTIONS':
+ res.end();
+ break;
+ case 'HEAD':
+ case 'GET':
+ if (req.url === '/') {
+ setNoCacheHeaders();
+ if (req.method === 'GET') {
+ handler.get();
+ } else {
+ res.end();
+ }
+ } else {
+ fileServer.serve(req, res);
+ }
+ break;
+ case 'POST':
+ setNoCacheHeaders();
+ handler.post();
+ break;
+ case 'DELETE':
+ handler.destroy();
+ break;
+ default:
+ res.statusCode = 405;
+ res.end();
+ }
+ };
+ fileServer.respond = function (pathname, status, _headers, files, stat, req, res, finish) {
+ // Prevent browsers from MIME-sniffing the content-type:
+ _headers['X-Content-Type-Options'] = 'nosniff';
+ if (!options.inlineFileTypes.test(files[0])) {
+ // Force a download dialog for unsafe file extensions:
+ _headers['Content-Type'] = 'application/octet-stream';
+ _headers['Content-Disposition'] = 'attachment; filename="' +
+ utf8encode(path.basename(files[0])) + '"';
+ }
+ nodeStatic.Server.prototype.respond
+ .call(this, pathname, status, _headers, files, stat, req, res, finish);
+ };
+ FileInfo.prototype.validate = function () {
+ if (options.minFileSize && options.minFileSize > this.size) {
+ this.error = 'File is too small';
+ } else if (options.maxFileSize && options.maxFileSize < this.size) {
+ this.error = 'File is too big';
+ } else if (!options.acceptFileTypes.test(this.name)) {
+ this.error = 'Filetype not allowed';
+ }
+ return !this.error;
+ };
+ FileInfo.prototype.safeName = function () {
+ // Prevent directory traversal and creating hidden system files:
+ this.name = path.basename(this.name).replace(/^\.+/, '');
+ // Prevent overwriting existing files:
+ while (_existsSync(options.uploadDir + '/' + this.name)) {
+ this.name = this.name.replace(nameCountRegexp, nameCountFunc);
+ }
+ };
+ FileInfo.prototype.initUrls = function (req) {
+ if (!this.error) {
+ var that = this,
+ baseUrl = (options.ssl ? 'https:' : 'http:') +
+ '//' + req.headers.host + options.uploadUrl;
+ this.url = this.deleteUrl = baseUrl + encodeURIComponent(this.name);
+ Object.keys(options.imageVersions).forEach(function (version) {
+ if (_existsSync(
+ options.uploadDir + '/' + version + '/' + that.name
+ )) {
+ that[version + 'Url'] = baseUrl + version + '/' +
+ encodeURIComponent(that.name);
+ }
+ });
+ }
+ };
+ UploadHandler.prototype.get = function () {
+ var handler = this,
+ files = [];
+ fs.readdir(options.uploadDir, function (err, list) {
+ list.forEach(function (name) {
+ var stats = fs.statSync(options.uploadDir + '/' + name),
+ fileInfo;
+ if (stats.isFile() && name[0] !== '.') {
+ fileInfo = new FileInfo({
+ name: name,
+ size: stats.size
+ });
+ fileInfo.initUrls(handler.req);
+ files.push(fileInfo);
+ }
+ });
+ handler.callback({files: files});
+ });
+ };
+ UploadHandler.prototype.post = function () {
+ var handler = this,
+ form = new formidable.IncomingForm(),
+ tmpFiles = [],
+ files = [],
+ map = {},
+ counter = 1,
+ redirect,
+ finish = function () {
+ counter -= 1;
+ if (!counter) {
+ files.forEach(function (fileInfo) {
+ fileInfo.initUrls(handler.req);
+ });
+ handler.callback({files: files}, redirect);
+ }
+ };
+ form.uploadDir = options.tmpDir;
+ form.on('fileBegin', function (name, file) {
+ tmpFiles.push(file.path);
+ var fileInfo = new FileInfo(file, handler.req, true);
+ fileInfo.safeName();
+ map[path.basename(file.path)] = fileInfo;
+ files.push(fileInfo);
+ }).on('field', function (name, value) {
+ if (name === 'redirect') {
+ redirect = value;
+ }
+ }).on('file', function (name, file) {
+ var fileInfo = map[path.basename(file.path)];
+ fileInfo.size = file.size;
+ if (!fileInfo.validate()) {
+ fs.unlink(file.path);
+ return;
+ }
+ fs.renameSync(file.path, options.uploadDir + '/' + fileInfo.name);
+ if (options.imageTypes.test(fileInfo.name)) {
+ Object.keys(options.imageVersions).forEach(function (version) {
+ counter += 1;
+ var opts = options.imageVersions[version];
+ imageMagick.resize({
+ width: opts.width,
+ height: opts.height,
+ srcPath: options.uploadDir + '/' + fileInfo.name,
+ dstPath: options.uploadDir + '/' + version + '/' +
+ fileInfo.name
+ }, finish);
+ });
+ }
+ }).on('aborted', function () {
+ tmpFiles.forEach(function (file) {
+ fs.unlink(file);
+ });
+ }).on('error', function (e) {
+ console.log(e);
+ }).on('progress', function (bytesReceived) {
+ if (bytesReceived > options.maxPostSize) {
+ handler.req.connection.destroy();
+ }
+ }).on('end', finish).parse(handler.req);
+ };
+ UploadHandler.prototype.destroy = function () {
+ var handler = this,
+ fileName;
+ if (handler.req.url.slice(0, options.uploadUrl.length) === options.uploadUrl) {
+ fileName = path.basename(decodeURIComponent(handler.req.url));
+ if (fileName[0] !== '.') {
+ fs.unlink(options.uploadDir + '/' + fileName, function (ex) {
+ Object.keys(options.imageVersions).forEach(function (version) {
+ fs.unlink(options.uploadDir + '/' + version + '/' + fileName);
+ });
+ handler.callback({success: !ex});
+ });
+ return;
+ }
+ }
+ handler.callback({success: false});
+ };
+ if (options.ssl) {
+ require('https').createServer(options.ssl, serve).listen(port);
+ } else {
+ require('http').createServer(serve).listen(port);
+ }
+}(8888));
diff --git a/library/jqupload/server/node/tmp/.gitignore b/library/jqupload/server/node/tmp/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/library/jqupload/server/node/tmp/.gitignore
diff --git a/library/jqupload/server/php/UploadHandler.php b/library/jqupload/server/php/UploadHandler.php
new file mode 100644
index 000000000..66545b12a
--- /dev/null
+++ b/library/jqupload/server/php/UploadHandler.php
@@ -0,0 +1,1329 @@
+<?php
+/*
+ * jQuery File Upload Plugin PHP Class 7.1.3
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2010, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+class UploadHandler
+{
+
+ protected $options;
+
+ // PHP File Upload error message codes:
+ // http://php.net/manual/en/features.file-upload.errors.php
+ protected $error_messages = array(
+ 1 => 'The uploaded file exceeds the upload_max_filesize directive in php.ini',
+ 2 => 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form',
+ 3 => 'The uploaded file was only partially uploaded',
+ 4 => 'No file was uploaded',
+ 6 => 'Missing a temporary folder',
+ 7 => 'Failed to write file to disk',
+ 8 => 'A PHP extension stopped the file upload',
+ 'post_max_size' => 'The uploaded file exceeds the post_max_size directive in php.ini',
+ 'max_file_size' => 'File is too big',
+ 'min_file_size' => 'File is too small',
+ 'accept_file_types' => 'Filetype not allowed',
+ 'max_number_of_files' => 'Maximum number of files exceeded',
+ 'max_width' => 'Image exceeds maximum width',
+ 'min_width' => 'Image requires a minimum width',
+ 'max_height' => 'Image exceeds maximum height',
+ 'min_height' => 'Image requires a minimum height',
+ 'abort' => 'File upload aborted',
+ 'image_resize' => 'Failed to resize image'
+ );
+
+ protected $image_objects = array();
+
+ function __construct($options = null, $initialize = true, $error_messages = null) {
+ $this->options = array(
+ 'script_url' => $this->get_full_url().'/',
+ 'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/files/',
+ 'upload_url' => $this->get_full_url().'/files/',
+ 'user_dirs' => false,
+ 'mkdir_mode' => 0755,
+ 'param_name' => 'files',
+ // Set the following option to 'POST', if your server does not support
+ // DELETE requests. This is a parameter sent to the client:
+ 'delete_type' => 'DELETE',
+ 'access_control_allow_origin' => '*',
+ 'access_control_allow_credentials' => false,
+ 'access_control_allow_methods' => array(
+ 'OPTIONS',
+ 'HEAD',
+ 'GET',
+ 'POST',
+ 'PUT',
+ 'PATCH',
+ 'DELETE'
+ ),
+ 'access_control_allow_headers' => array(
+ 'Content-Type',
+ 'Content-Range',
+ 'Content-Disposition'
+ ),
+ // Enable to provide file downloads via GET requests to the PHP script:
+ // 1. Set to 1 to download files via readfile method through PHP
+ // 2. Set to 2 to send a X-Sendfile header for lighttpd/Apache
+ // 3. Set to 3 to send a X-Accel-Redirect header for nginx
+ // If set to 2 or 3, adjust the upload_url option to the base path of
+ // the redirect parameter, e.g. '/files/'.
+ 'download_via_php' => false,
+ // Read files in chunks to avoid memory limits when download_via_php
+ // is enabled, set to 0 to disable chunked reading of files:
+ 'readfile_chunk_size' => 10 * 1024 * 1024, // 10 MiB
+ // Defines which files can be displayed inline when downloaded:
+ 'inline_file_types' => '/\.(gif|jpe?g|png)$/i',
+ // Defines which files (based on their names) are accepted for upload:
+ 'accept_file_types' => '/.+$/i',
+ // The php.ini settings upload_max_filesize and post_max_size
+ // take precedence over the following max_file_size setting:
+ 'max_file_size' => null,
+ 'min_file_size' => 1,
+ // The maximum number of files for the upload directory:
+ 'max_number_of_files' => null,
+ // Defines which files are handled as image files:
+ 'image_file_types' => '/\.(gif|jpe?g|png)$/i',
+ // Image resolution restrictions:
+ 'max_width' => null,
+ 'max_height' => null,
+ 'min_width' => 1,
+ 'min_height' => 1,
+ // Set the following option to false to enable resumable uploads:
+ 'discard_aborted_uploads' => true,
+ // Set to 0 to use the GD library to scale and orient images,
+ // set to 1 to use imagick (if installed, falls back to GD),
+ // set to 2 to use the ImageMagick convert binary directly:
+ 'image_library' => 1,
+ // Uncomment the following to define an array of resource limits
+ // for imagick:
+ /*
+ 'imagick_resource_limits' => array(
+ imagick::RESOURCETYPE_MAP => 32,
+ imagick::RESOURCETYPE_MEMORY => 32
+ ),
+ */
+ // Command or path for to the ImageMagick convert binary:
+ 'convert_bin' => 'convert',
+ // Uncomment the following to add parameters in front of each
+ // ImageMagick convert call (the limit constraints seem only
+ // to have an effect if put in front):
+ /*
+ 'convert_params' => '-limit memory 32MiB -limit map 32MiB',
+ */
+ // Command or path for to the ImageMagick identify binary:
+ 'identify_bin' => 'identify',
+ 'image_versions' => array(
+ // The empty image version key defines options for the original image:
+ '' => array(
+ // Automatically rotate images based on EXIF meta data:
+ 'auto_orient' => true
+ ),
+ // Uncomment the following to create medium sized images:
+ /*
+ 'medium' => array(
+ 'max_width' => 800,
+ 'max_height' => 600
+ ),
+ */
+ 'thumbnail' => array(
+ // Uncomment the following to use a defined directory for the thumbnails
+ // instead of a subdirectory based on the version identifier.
+ // Make sure that this directory doesn't allow execution of files if you
+ // don't pose any restrictions on the type of uploaded files, e.g. by
+ // copying the .htaccess file from the files directory for Apache:
+ //'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/thumb/',
+ //'upload_url' => $this->get_full_url().'/thumb/',
+ // Uncomment the following to force the max
+ // dimensions and e.g. create square thumbnails:
+ //'crop' => true,
+ 'max_width' => 80,
+ 'max_height' => 80
+ )
+ )
+ );
+ if ($options) {
+ $this->options = $options + $this->options;
+ }
+ if ($error_messages) {
+ $this->error_messages = $error_messages + $this->error_messages;
+ }
+ if ($initialize) {
+ $this->initialize();
+ }
+ }
+
+ protected function initialize() {
+ switch ($this->get_server_var('REQUEST_METHOD')) {
+ case 'OPTIONS':
+ case 'HEAD':
+ $this->head();
+ break;
+ case 'GET':
+ $this->get();
+ break;
+ case 'PATCH':
+ case 'PUT':
+ case 'POST':
+ $this->post();
+ break;
+ case 'DELETE':
+ $this->delete();
+ break;
+ default:
+ $this->header('HTTP/1.1 405 Method Not Allowed');
+ }
+ }
+
+ protected function get_full_url() {
+ $https = !empty($_SERVER['HTTPS']) && strcasecmp($_SERVER['HTTPS'], 'on') === 0;
+ return
+ ($https ? 'https://' : 'http://').
+ (!empty($_SERVER['REMOTE_USER']) ? $_SERVER['REMOTE_USER'].'@' : '').
+ (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ($_SERVER['SERVER_NAME'].
+ ($https && $_SERVER['SERVER_PORT'] === 443 ||
+ $_SERVER['SERVER_PORT'] === 80 ? '' : ':'.$_SERVER['SERVER_PORT']))).
+ substr($_SERVER['SCRIPT_NAME'],0, strrpos($_SERVER['SCRIPT_NAME'], '/'));
+ }
+
+ protected function get_user_id() {
+ @session_start();
+ return session_id();
+ }
+
+ protected function get_user_path() {
+ if ($this->options['user_dirs']) {
+ return $this->get_user_id().'/';
+ }
+ return '';
+ }
+
+ protected function get_upload_path($file_name = null, $version = null) {
+ $file_name = $file_name ? $file_name : '';
+ if (empty($version)) {
+ $version_path = '';
+ } else {
+ $version_dir = @$this->options['image_versions'][$version]['upload_dir'];
+ if ($version_dir) {
+ return $version_dir.$this->get_user_path().$file_name;
+ }
+ $version_path = $version.'/';
+ }
+ return $this->options['upload_dir'].$this->get_user_path()
+ .$version_path.$file_name;
+ }
+
+ protected function get_query_separator($url) {
+ return strpos($url, '?') === false ? '?' : '&';
+ }
+
+ protected function get_download_url($file_name, $version = null, $direct = false) {
+ if (!$direct && $this->options['download_via_php']) {
+ $url = $this->options['script_url']
+ .$this->get_query_separator($this->options['script_url'])
+ .$this->get_singular_param_name()
+ .'='.rawurlencode($file_name);
+ if ($version) {
+ $url .= '&version='.rawurlencode($version);
+ }
+ return $url.'&download=1';
+ }
+ if (empty($version)) {
+ $version_path = '';
+ } else {
+ $version_url = @$this->options['image_versions'][$version]['upload_url'];
+ if ($version_url) {
+ return $version_url.$this->get_user_path().rawurlencode($file_name);
+ }
+ $version_path = rawurlencode($version).'/';
+ }
+ return $this->options['upload_url'].$this->get_user_path()
+ .$version_path.rawurlencode($file_name);
+ }
+
+ protected function set_additional_file_properties($file) {
+ $file->deleteUrl = $this->options['script_url']
+ .$this->get_query_separator($this->options['script_url'])
+ .$this->get_singular_param_name()
+ .'='.rawurlencode($file->name);
+ $file->deleteType = $this->options['delete_type'];
+ if ($file->deleteType !== 'DELETE') {
+ $file->deleteUrl .= '&_method=DELETE';
+ }
+ if ($this->options['access_control_allow_credentials']) {
+ $file->deleteWithCredentials = true;
+ }
+ }
+
+ // Fix for overflowing signed 32 bit integers,
+ // works for sizes up to 2^32-1 bytes (4 GiB - 1):
+ protected function fix_integer_overflow($size) {
+ if ($size < 0) {
+ $size += 2.0 * (PHP_INT_MAX + 1);
+ }
+ return $size;
+ }
+
+ protected function get_file_size($file_path, $clear_stat_cache = false) {
+ if ($clear_stat_cache) {
+ if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
+ clearstatcache(true, $file_path);
+ } else {
+ clearstatcache();
+ }
+ }
+ return $this->fix_integer_overflow(filesize($file_path));
+ }
+
+ protected function is_valid_file_object($file_name) {
+ $file_path = $this->get_upload_path($file_name);
+ if (is_file($file_path) && $file_name[0] !== '.') {
+ return true;
+ }
+ return false;
+ }
+
+ protected function get_file_object($file_name) {
+ if ($this->is_valid_file_object($file_name)) {
+ $file = new stdClass();
+ $file->name = $file_name;
+ $file->size = $this->get_file_size(
+ $this->get_upload_path($file_name)
+ );
+ $file->url = $this->get_download_url($file->name);
+ foreach($this->options['image_versions'] as $version => $options) {
+ if (!empty($version)) {
+ if (is_file($this->get_upload_path($file_name, $version))) {
+ $file->{$version.'Url'} = $this->get_download_url(
+ $file->name,
+ $version
+ );
+ }
+ }
+ }
+ $this->set_additional_file_properties($file);
+ return $file;
+ }
+ return null;
+ }
+
+ protected function get_file_objects($iteration_method = 'get_file_object') {
+ $upload_dir = $this->get_upload_path();
+ if (!is_dir($upload_dir)) {
+ return array();
+ }
+ return array_values(array_filter(array_map(
+ array($this, $iteration_method),
+ scandir($upload_dir)
+ )));
+ }
+
+ protected function count_file_objects() {
+ return count($this->get_file_objects('is_valid_file_object'));
+ }
+
+ protected function get_error_message($error) {
+ return array_key_exists($error, $this->error_messages) ?
+ $this->error_messages[$error] : $error;
+ }
+
+ function get_config_bytes($val) {
+ $val = trim($val);
+ $last = strtolower($val[strlen($val)-1]);
+ switch($last) {
+ case 'g':
+ $val *= 1024;
+ case 'm':
+ $val *= 1024;
+ case 'k':
+ $val *= 1024;
+ }
+ return $this->fix_integer_overflow($val);
+ }
+
+ protected function validate($uploaded_file, $file, $error, $index) {
+ if ($error) {
+ $file->error = $this->get_error_message($error);
+ return false;
+ }
+ $content_length = $this->fix_integer_overflow(intval(
+ $this->get_server_var('CONTENT_LENGTH')
+ ));
+ $post_max_size = $this->get_config_bytes(ini_get('post_max_size'));
+ if ($post_max_size && ($content_length > $post_max_size)) {
+ $file->error = $this->get_error_message('post_max_size');
+ return false;
+ }
+ if (!preg_match($this->options['accept_file_types'], $file->name)) {
+ $file->error = $this->get_error_message('accept_file_types');
+ return false;
+ }
+ if ($uploaded_file && is_uploaded_file($uploaded_file)) {
+ $file_size = $this->get_file_size($uploaded_file);
+ } else {
+ $file_size = $content_length;
+ }
+ if ($this->options['max_file_size'] && (
+ $file_size > $this->options['max_file_size'] ||
+ $file->size > $this->options['max_file_size'])
+ ) {
+ $file->error = $this->get_error_message('max_file_size');
+ return false;
+ }
+ if ($this->options['min_file_size'] &&
+ $file_size < $this->options['min_file_size']) {
+ $file->error = $this->get_error_message('min_file_size');
+ return false;
+ }
+ if (is_int($this->options['max_number_of_files']) && (
+ $this->count_file_objects() >= $this->options['max_number_of_files'])
+ ) {
+ $file->error = $this->get_error_message('max_number_of_files');
+ return false;
+ }
+ $max_width = @$this->options['max_width'];
+ $max_height = @$this->options['max_height'];
+ $min_width = @$this->options['min_width'];
+ $min_height = @$this->options['min_height'];
+ if (($max_width || $max_height || $min_width || $min_height)) {
+ list($img_width, $img_height) = $this->get_image_size($uploaded_file);
+ }
+ if (!empty($img_width)) {
+ if ($max_width && $img_width > $max_width) {
+ $file->error = $this->get_error_message('max_width');
+ return false;
+ }
+ if ($max_height && $img_height > $max_height) {
+ $file->error = $this->get_error_message('max_height');
+ return false;
+ }
+ if ($min_width && $img_width < $min_width) {
+ $file->error = $this->get_error_message('min_width');
+ return false;
+ }
+ if ($min_height && $img_height < $min_height) {
+ $file->error = $this->get_error_message('min_height');
+ return false;
+ }
+ }
+ return true;
+ }
+
+ protected function upcount_name_callback($matches) {
+ $index = isset($matches[1]) ? intval($matches[1]) + 1 : 1;
+ $ext = isset($matches[2]) ? $matches[2] : '';
+ return ' ('.$index.')'.$ext;
+ }
+
+ protected function upcount_name($name) {
+ return preg_replace_callback(
+ '/(?:(?: \(([\d]+)\))?(\.[^.]+))?$/',
+ array($this, 'upcount_name_callback'),
+ $name,
+ 1
+ );
+ }
+
+ protected function get_unique_filename($file_path, $name, $size, $type, $error,
+ $index, $content_range) {
+ while(is_dir($this->get_upload_path($name))) {
+ $name = $this->upcount_name($name);
+ }
+ // Keep an existing filename if this is part of a chunked upload:
+ $uploaded_bytes = $this->fix_integer_overflow(intval($content_range[1]));
+ while(is_file($this->get_upload_path($name))) {
+ if ($uploaded_bytes === $this->get_file_size(
+ $this->get_upload_path($name))) {
+ break;
+ }
+ $name = $this->upcount_name($name);
+ }
+ return $name;
+ }
+
+ protected function trim_file_name($file_path, $name, $size, $type, $error,
+ $index, $content_range) {
+ // Remove path information and dots around the filename, to prevent uploading
+ // into different directories or replacing hidden system files.
+ // Also remove control characters and spaces (\x00..\x20) around the filename:
+ $name = trim(basename(stripslashes($name)), ".\x00..\x20");
+ // Use a timestamp for empty filenames:
+ if (!$name) {
+ $name = str_replace('.', '-', microtime(true));
+ }
+ // Add missing file extension for known image types:
+ if (strpos($name, '.') === false &&
+ preg_match('/^image\/(gif|jpe?g|png)/', $type, $matches)) {
+ $name .= '.'.$matches[1];
+ }
+ if (function_exists('exif_imagetype')) {
+ switch(@exif_imagetype($file_path)){
+ case IMAGETYPE_JPEG:
+ $extensions = array('jpg', 'jpeg');
+ break;
+ case IMAGETYPE_PNG:
+ $extensions = array('png');
+ break;
+ case IMAGETYPE_GIF:
+ $extensions = array('gif');
+ break;
+ }
+ // Adjust incorrect image file extensions:
+ if (!empty($extensions)) {
+ $parts = explode('.', $name);
+ $extIndex = count($parts) - 1;
+ $ext = strtolower(@$parts[$extIndex]);
+ if (!in_array($ext, $extensions)) {
+ $parts[$extIndex] = $extensions[0];
+ $name = implode('.', $parts);
+ }
+ }
+ }
+ return $name;
+ }
+
+ protected function get_file_name($file_path, $name, $size, $type, $error,
+ $index, $content_range) {
+ return $this->get_unique_filename(
+ $file_path,
+ $this->trim_file_name($file_path, $name, $size, $type, $error,
+ $index, $content_range),
+ $size,
+ $type,
+ $error,
+ $index,
+ $content_range
+ );
+ }
+
+ protected function handle_form_data($file, $index) {
+ // Handle form data, e.g. $_REQUEST['description'][$index]
+ }
+
+ protected function get_scaled_image_file_paths($file_name, $version) {
+ $file_path = $this->get_upload_path($file_name);
+ if (!empty($version)) {
+ $version_dir = $this->get_upload_path(null, $version);
+ if (!is_dir($version_dir)) {
+ mkdir($version_dir, $this->options['mkdir_mode'], true);
+ }
+ $new_file_path = $version_dir.'/'.$file_name;
+ } else {
+ $new_file_path = $file_path;
+ }
+ return array($file_path, $new_file_path);
+ }
+
+ protected function gd_get_image_object($file_path, $func, $no_cache = false) {
+ if (empty($this->image_objects[$file_path]) || $no_cache) {
+ $this->gd_destroy_image_object($file_path);
+ $this->image_objects[$file_path] = $func($file_path);
+ }
+ return $this->image_objects[$file_path];
+ }
+
+ protected function gd_set_image_object($file_path, $image) {
+ $this->gd_destroy_image_object($file_path);
+ $this->image_objects[$file_path] = $image;
+ }
+
+ protected function gd_destroy_image_object($file_path) {
+ $image = @$this->image_objects[$file_path];
+ return $image && imagedestroy($image);
+ }
+
+ protected function gd_imageflip($image, $mode) {
+ if (function_exists('imageflip')) {
+ return imageflip($image, $mode);
+ }
+ $new_width = $src_width = imagesx($image);
+ $new_height = $src_height = imagesy($image);
+ $new_img = imagecreatetruecolor($new_width, $new_height);
+ $src_x = 0;
+ $src_y = 0;
+ switch ($mode) {
+ case '1': // flip on the horizontal axis
+ $src_y = $new_height - 1;
+ $src_height = -$new_height;
+ break;
+ case '2': // flip on the vertical axis
+ $src_x = $new_width - 1;
+ $src_width = -$new_width;
+ break;
+ case '3': // flip on both axes
+ $src_y = $new_height - 1;
+ $src_height = -$new_height;
+ $src_x = $new_width - 1;
+ $src_width = -$new_width;
+ break;
+ default:
+ return $image;
+ }
+ imagecopyresampled(
+ $new_img,
+ $image,
+ 0,
+ 0,
+ $src_x,
+ $src_y,
+ $new_width,
+ $new_height,
+ $src_width,
+ $src_height
+ );
+ return $new_img;
+ }
+
+ protected function gd_orient_image($file_path, $src_img) {
+ if (!function_exists('exif_read_data')) {
+ return false;
+ }
+ $exif = @exif_read_data($file_path);
+ if ($exif === false) {
+ return false;
+ }
+ $orientation = intval(@$exif['Orientation']);
+ if ($orientation < 2 || $orientation > 8) {
+ return false;
+ }
+ switch ($orientation) {
+ case 2:
+ $new_img = $this->gd_imageflip(
+ $src_img,
+ defined('IMG_FLIP_VERTICAL') ? IMG_FLIP_VERTICAL : 2
+ );
+ break;
+ case 3:
+ $new_img = imagerotate($src_img, 180, 0);
+ break;
+ case 4:
+ $new_img = $this->gd_imageflip(
+ $src_img,
+ defined('IMG_FLIP_HORIZONTAL') ? IMG_FLIP_HORIZONTAL : 1
+ );
+ break;
+ case 5:
+ $tmp_img = $this->gd_imageflip(
+ $src_img,
+ defined('IMG_FLIP_HORIZONTAL') ? IMG_FLIP_HORIZONTAL : 1
+ );
+ $new_img = imagerotate($tmp_img, 270, 0);
+ imagedestroy($tmp_img);
+ break;
+ case 6:
+ $new_img = imagerotate($src_img, 270, 0);
+ break;
+ case 7:
+ $tmp_img = $this->gd_imageflip(
+ $src_img,
+ defined('IMG_FLIP_VERTICAL') ? IMG_FLIP_VERTICAL : 2
+ );
+ $new_img = imagerotate($tmp_img, 270, 0);
+ imagedestroy($tmp_img);
+ break;
+ case 8:
+ $new_img = imagerotate($src_img, 90, 0);
+ break;
+ default:
+ return false;
+ }
+ $this->gd_set_image_object($file_path, $new_img);
+ return true;
+ }
+
+ protected function gd_create_scaled_image($file_name, $version, $options) {
+ if (!function_exists('imagecreatetruecolor')) {
+ error_log('Function not found: imagecreatetruecolor');
+ return false;
+ }
+ list($file_path, $new_file_path) =
+ $this->get_scaled_image_file_paths($file_name, $version);
+ $type = strtolower(substr(strrchr($file_name, '.'), 1));
+ switch ($type) {
+ case 'jpg':
+ case 'jpeg':
+ $src_func = 'imagecreatefromjpeg';
+ $write_func = 'imagejpeg';
+ $image_quality = isset($options['jpeg_quality']) ?
+ $options['jpeg_quality'] : 75;
+ break;
+ case 'gif':
+ $src_func = 'imagecreatefromgif';
+ $write_func = 'imagegif';
+ $image_quality = null;
+ break;
+ case 'png':
+ $src_func = 'imagecreatefrompng';
+ $write_func = 'imagepng';
+ $image_quality = isset($options['png_quality']) ?
+ $options['png_quality'] : 9;
+ break;
+ default:
+ return false;
+ }
+ $src_img = $this->gd_get_image_object(
+ $file_path,
+ $src_func,
+ !empty($options['no_cache'])
+ );
+ $image_oriented = false;
+ if (!empty($options['auto_orient']) && $this->gd_orient_image(
+ $file_path,
+ $src_img
+ )) {
+ $image_oriented = true;
+ $src_img = $this->gd_get_image_object(
+ $file_path,
+ $src_func
+ );
+ }
+ $max_width = $img_width = imagesx($src_img);
+ $max_height = $img_height = imagesy($src_img);
+ if (!empty($options['max_width'])) {
+ $max_width = $options['max_width'];
+ }
+ if (!empty($options['max_height'])) {
+ $max_height = $options['max_height'];
+ }
+ $scale = min(
+ $max_width / $img_width,
+ $max_height / $img_height
+ );
+ if ($scale >= 1) {
+ if ($image_oriented) {
+ return $write_func($src_img, $new_file_path, $image_quality);
+ }
+ if ($file_path !== $new_file_path) {
+ return copy($file_path, $new_file_path);
+ }
+ return true;
+ }
+ if (empty($options['crop'])) {
+ $new_width = $img_width * $scale;
+ $new_height = $img_height * $scale;
+ $dst_x = 0;
+ $dst_y = 0;
+ $new_img = imagecreatetruecolor($new_width, $new_height);
+ } else {
+ if (($img_width / $img_height) >= ($max_width / $max_height)) {
+ $new_width = $img_width / ($img_height / $max_height);
+ $new_height = $max_height;
+ } else {
+ $new_width = $max_width;
+ $new_height = $img_height / ($img_width / $max_width);
+ }
+ $dst_x = 0 - ($new_width - $max_width) / 2;
+ $dst_y = 0 - ($new_height - $max_height) / 2;
+ $new_img = imagecreatetruecolor($max_width, $max_height);
+ }
+ // Handle transparency in GIF and PNG images:
+ switch ($type) {
+ case 'gif':
+ case 'png':
+ imagecolortransparent($new_img, imagecolorallocate($new_img, 0, 0, 0));
+ case 'png':
+ imagealphablending($new_img, false);
+ imagesavealpha($new_img, true);
+ break;
+ }
+ $success = imagecopyresampled(
+ $new_img,
+ $src_img,
+ $dst_x,
+ $dst_y,
+ 0,
+ 0,
+ $new_width,
+ $new_height,
+ $img_width,
+ $img_height
+ ) && $write_func($new_img, $new_file_path, $image_quality);
+ $this->gd_set_image_object($file_path, $new_img);
+ return $success;
+ }
+
+ protected function imagick_get_image_object($file_path, $no_cache = false) {
+ if (empty($this->image_objects[$file_path]) || $no_cache) {
+ $this->imagick_destroy_image_object($file_path);
+ $image = new Imagick();
+ if (!empty($this->options['imagick_resource_limits'])) {
+ foreach ($this->options['imagick_resource_limits'] as $type => $limit) {
+ $image->setResourceLimit($type, $limit);
+ }
+ }
+ $image->readImage($file_path);
+ $this->image_objects[$file_path] = $image;
+ }
+ return $this->image_objects[$file_path];
+ }
+
+ protected function imagick_set_image_object($file_path, $image) {
+ $this->imagick_destroy_image_object($file_path);
+ $this->image_objects[$file_path] = $image;
+ }
+
+ protected function imagick_destroy_image_object($file_path) {
+ $image = @$this->image_objects[$file_path];
+ return $image && $image->destroy();
+ }
+
+ protected function imagick_orient_image($image) {
+ $orientation = $image->getImageOrientation();
+ $background = new ImagickPixel('none');
+ switch ($orientation) {
+ case imagick::ORIENTATION_TOPRIGHT: // 2
+ $image->flopImage(); // horizontal flop around y-axis
+ break;
+ case imagick::ORIENTATION_BOTTOMRIGHT: // 3
+ $image->rotateImage($background, 180);
+ break;
+ case imagick::ORIENTATION_BOTTOMLEFT: // 4
+ $image->flipImage(); // vertical flip around x-axis
+ break;
+ case imagick::ORIENTATION_LEFTTOP: // 5
+ $image->flopImage(); // horizontal flop around y-axis
+ $image->rotateImage($background, 270);
+ break;
+ case imagick::ORIENTATION_RIGHTTOP: // 6
+ $image->rotateImage($background, 90);
+ break;
+ case imagick::ORIENTATION_RIGHTBOTTOM: // 7
+ $image->flipImage(); // vertical flip around x-axis
+ $image->rotateImage($background, 270);
+ break;
+ case imagick::ORIENTATION_LEFTBOTTOM: // 8
+ $image->rotateImage($background, 270);
+ break;
+ default:
+ return false;
+ }
+ $image->setImageOrientation(imagick::ORIENTATION_TOPLEFT); // 1
+ return true;
+ }
+
+ protected function imagick_create_scaled_image($file_name, $version, $options) {
+ list($file_path, $new_file_path) =
+ $this->get_scaled_image_file_paths($file_name, $version);
+ $image = $this->imagick_get_image_object(
+ $file_path,
+ !empty($options['no_cache'])
+ );
+ if ($image->getImageFormat() === 'GIF') {
+ // Handle animated GIFs:
+ $images = $image->coalesceImages();
+ foreach ($images as $frame) {
+ $image = $frame;
+ $this->imagick_set_image_object($file_name, $image);
+ break;
+ }
+ }
+ $image_oriented = false;
+ if (!empty($options['auto_orient'])) {
+ $image_oriented = $this->imagick_orient_image($image);
+ }
+ $new_width = $max_width = $img_width = $image->getImageWidth();
+ $new_height = $max_height = $img_height = $image->getImageHeight();
+ if (!empty($options['max_width'])) {
+ $new_width = $max_width = $options['max_width'];
+ }
+ if (!empty($options['max_height'])) {
+ $new_height = $max_height = $options['max_height'];
+ }
+ if (!($image_oriented || $max_width < $img_width || $max_height < $img_height)) {
+ if ($file_path !== $new_file_path) {
+ return copy($file_path, $new_file_path);
+ }
+ return true;
+ }
+ $crop = !empty($options['crop']);
+ if ($crop) {
+ $x = 0;
+ $y = 0;
+ if (($img_width / $img_height) >= ($max_width / $max_height)) {
+ $new_width = 0; // Enables proportional scaling based on max_height
+ $x = ($img_width / ($img_height / $max_height) - $max_width) / 2;
+ } else {
+ $new_height = 0; // Enables proportional scaling based on max_width
+ $y = ($img_height / ($img_width / $max_width) - $max_height) / 2;
+ }
+ }
+ $success = $image->resizeImage(
+ $new_width,
+ $new_height,
+ isset($options['filter']) ? $options['filter'] : imagick::FILTER_LANCZOS,
+ isset($options['blur']) ? $options['blur'] : 1,
+ $new_width && $new_height // fit image into constraints if not to be cropped
+ );
+ if ($success && $crop) {
+ $success = $image->cropImage(
+ $max_width,
+ $max_height,
+ $x,
+ $y
+ );
+ if ($success) {
+ $success = $image->setImagePage($max_width, $max_height, 0, 0);
+ }
+ }
+ $type = strtolower(substr(strrchr($file_name, '.'), 1));
+ switch ($type) {
+ case 'jpg':
+ case 'jpeg':
+ if (!empty($options['jpeg_quality'])) {
+ $image->setImageCompression(Imagick::COMPRESSION_JPEG);
+ $image->setImageCompressionQuality($options['jpeg_quality']);
+ }
+ break;
+ }
+ if (!empty($options['strip'])) {
+ $image->stripImage();
+ }
+ return $success && $image->writeImage($new_file_path);
+ }
+
+ protected function imagemagick_create_scaled_image($file_name, $version, $options) {
+ list($file_path, $new_file_path) =
+ $this->get_scaled_image_file_paths($file_name, $version);
+ $resize = @$options['max_width']
+ .(empty($options['max_height']) ? '' : 'x'.$options['max_height']);
+ if (!$resize && empty($options['auto_orient'])) {
+ if ($file_path !== $new_file_path) {
+ return copy($file_path, $new_file_path);
+ }
+ return true;
+ }
+ $cmd = $this->options['convert_bin'];
+ if (!empty($this->options['convert_params'])) {
+ $cmd .= ' '.$this->options['convert_params'];
+ }
+ $cmd .= ' '.escapeshellarg($file_path);
+ if (!empty($options['auto_orient'])) {
+ $cmd .= ' -auto-orient';
+ }
+ if ($resize) {
+ // Handle animated GIFs:
+ $cmd .= ' -coalesce';
+ if (empty($options['crop'])) {
+ $cmd .= ' -resize '.escapeshellarg($resize.'>');
+ } else {
+ $cmd .= ' -resize '.escapeshellarg($resize.'^');
+ $cmd .= ' -gravity center';
+ $cmd .= ' -crop '.escapeshellarg($resize.'+0+0');
+ }
+ // Make sure the page dimensions are correct (fixes offsets of animated GIFs):
+ $cmd .= ' +repage';
+ }
+ if (!empty($options['convert_params'])) {
+ $cmd .= ' '.$options['convert_params'];
+ }
+ $cmd .= ' '.escapeshellarg($new_file_path);
+ exec($cmd, $output, $error);
+ if ($error) {
+ error_log(implode('\n', $output));
+ return false;
+ }
+ return true;
+ }
+
+ protected function get_image_size($file_path) {
+ if ($this->options['image_library']) {
+ if (extension_loaded('imagick')) {
+ $image = new Imagick();
+ try {
+ if (@$image->pingImage($file_path)) {
+ $dimensions = array($image->getImageWidth(), $image->getImageHeight());
+ $image->destroy();
+ return $dimensions;
+ }
+ return false;
+ } catch (Exception $e) {
+ error_log($e->getMessage());
+ }
+ }
+ if ($this->options['image_library'] === 2) {
+ $cmd = $this->options['identify_bin'];
+ $cmd .= ' -ping '.escapeshellarg($file_path);
+ exec($cmd, $output, $error);
+ if (!$error && !empty($output)) {
+ // image.jpg JPEG 1920x1080 1920x1080+0+0 8-bit sRGB 465KB 0.000u 0:00.000
+ $infos = preg_split('/\s+/', $output[0]);
+ $dimensions = preg_split('/x/', $infos[2]);
+ return $dimensions;
+ }
+ return false;
+ }
+ }
+ if (!function_exists('getimagesize')) {
+ error_log('Function not found: getimagesize');
+ return false;
+ }
+ return @getimagesize($file_path);
+ }
+
+ protected function create_scaled_image($file_name, $version, $options) {
+ if ($this->options['image_library'] === 2) {
+ return $this->imagemagick_create_scaled_image($file_name, $version, $options);
+ }
+ if ($this->options['image_library'] && extension_loaded('imagick')) {
+ return $this->imagick_create_scaled_image($file_name, $version, $options);
+ }
+ return $this->gd_create_scaled_image($file_name, $version, $options);
+ }
+
+ protected function destroy_image_object($file_path) {
+ if ($this->options['image_library'] && extension_loaded('imagick')) {
+ return $this->imagick_destroy_image_object($file_path);
+ }
+ }
+
+ protected function is_valid_image_file($file_path) {
+ if (!preg_match($this->options['image_file_types'], $file_path)) {
+ return false;
+ }
+ if (function_exists('exif_imagetype')) {
+ return @exif_imagetype($file_path);
+ }
+ $image_info = $this->get_image_size($file_path);
+ return $image_info && $image_info[0] && $image_info[1];
+ }
+
+ protected function handle_image_file($file_path, $file) {
+ $failed_versions = array();
+ foreach($this->options['image_versions'] as $version => $options) {
+ if ($this->create_scaled_image($file->name, $version, $options)) {
+ if (!empty($version)) {
+ $file->{$version.'Url'} = $this->get_download_url(
+ $file->name,
+ $version
+ );
+ } else {
+ $file->size = $this->get_file_size($file_path, true);
+ }
+ } else {
+ $failed_versions[] = $version ? $version : 'original';
+ }
+ }
+ if (count($failed_versions)) {
+ $file->error = $this->get_error_message('image_resize')
+ .' ('.implode($failed_versions,', ').')';
+ }
+ // Free memory:
+ $this->destroy_image_object($file_path);
+ }
+
+ protected function handle_file_upload($uploaded_file, $name, $size, $type, $error,
+ $index = null, $content_range = null) {
+ $file = new stdClass();
+ $file->name = $this->get_file_name($uploaded_file, $name, $size, $type, $error,
+ $index, $content_range);
+ $file->size = $this->fix_integer_overflow(intval($size));
+ $file->type = $type;
+ if ($this->validate($uploaded_file, $file, $error, $index)) {
+ $this->handle_form_data($file, $index);
+ $upload_dir = $this->get_upload_path();
+ if (!is_dir($upload_dir)) {
+ mkdir($upload_dir, $this->options['mkdir_mode'], true);
+ }
+ $file_path = $this->get_upload_path($file->name);
+ $append_file = $content_range && is_file($file_path) &&
+ $file->size > $this->get_file_size($file_path);
+ if ($uploaded_file && is_uploaded_file($uploaded_file)) {
+ // multipart/formdata uploads (POST method uploads)
+ if ($append_file) {
+ file_put_contents(
+ $file_path,
+ fopen($uploaded_file, 'r'),
+ FILE_APPEND
+ );
+ } else {
+ move_uploaded_file($uploaded_file, $file_path);
+ }
+ } else {
+ // Non-multipart uploads (PUT method support)
+ file_put_contents(
+ $file_path,
+ fopen('php://input', 'r'),
+ $append_file ? FILE_APPEND : 0
+ );
+ }
+ $file_size = $this->get_file_size($file_path, $append_file);
+ if ($file_size === $file->size) {
+ $file->url = $this->get_download_url($file->name);
+ if ($this->is_valid_image_file($file_path)) {
+ $this->handle_image_file($file_path, $file);
+ }
+ } else {
+ $file->size = $file_size;
+ if (!$content_range && $this->options['discard_aborted_uploads']) {
+ unlink($file_path);
+ $file->error = $this->get_error_message('abort');
+ }
+ }
+ $this->set_additional_file_properties($file);
+ }
+ return $file;
+ }
+
+ protected function readfile($file_path) {
+ $file_size = $this->get_file_size($file_path);
+ $chunk_size = $this->options['readfile_chunk_size'];
+ if ($chunk_size && $file_size > $chunk_size) {
+ $handle = fopen($file_path, 'rb');
+ while (!feof($handle)) {
+ echo fread($handle, $chunk_size);
+ ob_flush();
+ flush();
+ }
+ fclose($handle);
+ return $file_size;
+ }
+ return readfile($file_path);
+ }
+
+ protected function body($str) {
+ echo $str;
+ }
+
+ protected function header($str) {
+ header($str);
+ }
+
+ protected function get_server_var($id) {
+ return isset($_SERVER[$id]) ? $_SERVER[$id] : '';
+ }
+
+ protected function generate_response($content, $print_response = true) {
+ if ($print_response) {
+ $json = json_encode($content);
+ $redirect = isset($_REQUEST['redirect']) ?
+ stripslashes($_REQUEST['redirect']) : null;
+ if ($redirect) {
+ $this->header('Location: '.sprintf($redirect, rawurlencode($json)));
+ return;
+ }
+ $this->head();
+ if ($this->get_server_var('HTTP_CONTENT_RANGE')) {
+ $files = isset($content[$this->options['param_name']]) ?
+ $content[$this->options['param_name']] : null;
+ if ($files && is_array($files) && is_object($files[0]) && $files[0]->size) {
+ $this->header('Range: 0-'.(
+ $this->fix_integer_overflow(intval($files[0]->size)) - 1
+ ));
+ }
+ }
+ $this->body($json);
+ }
+ return $content;
+ }
+
+ protected function get_version_param() {
+ return isset($_GET['version']) ? basename(stripslashes($_GET['version'])) : null;
+ }
+
+ protected function get_singular_param_name() {
+ return substr($this->options['param_name'], 0, -1);
+ }
+
+ protected function get_file_name_param() {
+ $name = $this->get_singular_param_name();
+ return isset($_GET[$name]) ? basename(stripslashes($_GET[$name])) : null;
+ }
+
+ protected function get_file_names_params() {
+ $params = isset($_GET[$this->options['param_name']]) ?
+ $_GET[$this->options['param_name']] : array();
+ foreach ($params as $key => $value) {
+ $params[$key] = basename(stripslashes($value));
+ }
+ return $params;
+ }
+
+ protected function get_file_type($file_path) {
+ switch (strtolower(pathinfo($file_path, PATHINFO_EXTENSION))) {
+ case 'jpeg':
+ case 'jpg':
+ return 'image/jpeg';
+ case 'png':
+ return 'image/png';
+ case 'gif':
+ return 'image/gif';
+ default:
+ return '';
+ }
+ }
+
+ protected function download() {
+ switch ($this->options['download_via_php']) {
+ case 1:
+ $redirect_header = null;
+ break;
+ case 2:
+ $redirect_header = 'X-Sendfile';
+ break;
+ case 3:
+ $redirect_header = 'X-Accel-Redirect';
+ break;
+ default:
+ return $this->header('HTTP/1.1 403 Forbidden');
+ }
+ $file_name = $this->get_file_name_param();
+ if (!$this->is_valid_file_object($file_name)) {
+ return $this->header('HTTP/1.1 404 Not Found');
+ }
+ if ($redirect_header) {
+ return $this->header(
+ $redirect_header.': '.$this->get_download_url(
+ $file_name,
+ $this->get_version_param(),
+ true
+ )
+ );
+ }
+ $file_path = $this->get_upload_path($file_name, $this->get_version_param());
+ // Prevent browsers from MIME-sniffing the content-type:
+ $this->header('X-Content-Type-Options: nosniff');
+ if (!preg_match($this->options['inline_file_types'], $file_name)) {
+ $this->header('Content-Type: application/octet-stream');
+ $this->header('Content-Disposition: attachment; filename="'.$file_name.'"');
+ } else {
+ $this->header('Content-Type: '.$this->get_file_type($file_path));
+ $this->header('Content-Disposition: inline; filename="'.$file_name.'"');
+ }
+ $this->header('Content-Length: '.$this->get_file_size($file_path));
+ $this->header('Last-Modified: '.gmdate('D, d M Y H:i:s T', filemtime($file_path)));
+ $this->readfile($file_path);
+ }
+
+ protected function send_content_type_header() {
+ $this->header('Vary: Accept');
+ if (strpos($this->get_server_var('HTTP_ACCEPT'), 'application/json') !== false) {
+ $this->header('Content-type: application/json');
+ } else {
+ $this->header('Content-type: text/plain');
+ }
+ }
+
+ protected function send_access_control_headers() {
+ $this->header('Access-Control-Allow-Origin: '.$this->options['access_control_allow_origin']);
+ $this->header('Access-Control-Allow-Credentials: '
+ .($this->options['access_control_allow_credentials'] ? 'true' : 'false'));
+ $this->header('Access-Control-Allow-Methods: '
+ .implode(', ', $this->options['access_control_allow_methods']));
+ $this->header('Access-Control-Allow-Headers: '
+ .implode(', ', $this->options['access_control_allow_headers']));
+ }
+
+ public function head() {
+ $this->header('Pragma: no-cache');
+ $this->header('Cache-Control: no-store, no-cache, must-revalidate');
+ $this->header('Content-Disposition: inline; filename="files.json"');
+ // Prevent Internet Explorer from MIME-sniffing the content-type:
+ $this->header('X-Content-Type-Options: nosniff');
+ if ($this->options['access_control_allow_origin']) {
+ $this->send_access_control_headers();
+ }
+ $this->send_content_type_header();
+ }
+
+ public function get($print_response = true) {
+ if ($print_response && isset($_GET['download'])) {
+ return $this->download();
+ }
+ $file_name = $this->get_file_name_param();
+ if ($file_name) {
+ $response = array(
+ $this->get_singular_param_name() => $this->get_file_object($file_name)
+ );
+ } else {
+ $response = array(
+ $this->options['param_name'] => $this->get_file_objects()
+ );
+ }
+ return $this->generate_response($response, $print_response);
+ }
+
+ public function post($print_response = true) {
+ if (isset($_REQUEST['_method']) && $_REQUEST['_method'] === 'DELETE') {
+ return $this->delete($print_response);
+ }
+ $upload = isset($_FILES[$this->options['param_name']]) ?
+ $_FILES[$this->options['param_name']] : null;
+ // Parse the Content-Disposition header, if available:
+ $file_name = $this->get_server_var('HTTP_CONTENT_DISPOSITION') ?
+ rawurldecode(preg_replace(
+ '/(^[^"]+")|("$)/',
+ '',
+ $this->get_server_var('HTTP_CONTENT_DISPOSITION')
+ )) : null;
+ // Parse the Content-Range header, which has the following form:
+ // Content-Range: bytes 0-524287/2000000
+ $content_range = $this->get_server_var('HTTP_CONTENT_RANGE') ?
+ preg_split('/[^0-9]+/', $this->get_server_var('HTTP_CONTENT_RANGE')) : null;
+ $size = $content_range ? $content_range[3] : null;
+ $files = array();
+ if ($upload && is_array($upload['tmp_name'])) {
+ // param_name is an array identifier like "files[]",
+ // $_FILES is a multi-dimensional array:
+ foreach ($upload['tmp_name'] as $index => $value) {
+ $files[] = $this->handle_file_upload(
+ $upload['tmp_name'][$index],
+ $file_name ? $file_name : $upload['name'][$index],
+ $size ? $size : $upload['size'][$index],
+ $upload['type'][$index],
+ $upload['error'][$index],
+ $index,
+ $content_range
+ );
+ }
+ } else {
+ // param_name is a single object identifier like "file",
+ // $_FILES is a one-dimensional array:
+ $files[] = $this->handle_file_upload(
+ isset($upload['tmp_name']) ? $upload['tmp_name'] : null,
+ $file_name ? $file_name : (isset($upload['name']) ?
+ $upload['name'] : null),
+ $size ? $size : (isset($upload['size']) ?
+ $upload['size'] : $this->get_server_var('CONTENT_LENGTH')),
+ isset($upload['type']) ?
+ $upload['type'] : $this->get_server_var('CONTENT_TYPE'),
+ isset($upload['error']) ? $upload['error'] : null,
+ null,
+ $content_range
+ );
+ }
+ return $this->generate_response(
+ array($this->options['param_name'] => $files),
+ $print_response
+ );
+ }
+
+ public function delete($print_response = true) {
+ $file_names = $this->get_file_names_params();
+ if (empty($file_names)) {
+ $file_names = array($this->get_file_name_param());
+ }
+ $response = array();
+ foreach($file_names as $file_name) {
+ $file_path = $this->get_upload_path($file_name);
+ $success = is_file($file_path) && $file_name[0] !== '.' && unlink($file_path);
+ if ($success) {
+ foreach($this->options['image_versions'] as $version => $options) {
+ if (!empty($version)) {
+ $file = $this->get_upload_path($file_name, $version);
+ if (is_file($file)) {
+ unlink($file);
+ }
+ }
+ }
+ }
+ $response[$file_name] = $success;
+ }
+ return $this->generate_response($response, $print_response);
+ }
+
+}
diff --git a/library/jqupload/server/php/files/.gitignore b/library/jqupload/server/php/files/.gitignore
new file mode 100644
index 000000000..e24a60fae
--- /dev/null
+++ b/library/jqupload/server/php/files/.gitignore
@@ -0,0 +1,3 @@
+*
+!.gitignore
+!.htaccess
diff --git a/library/jqupload/server/php/files/.htaccess b/library/jqupload/server/php/files/.htaccess
new file mode 100644
index 000000000..56689f0bb
--- /dev/null
+++ b/library/jqupload/server/php/files/.htaccess
@@ -0,0 +1,18 @@
+# The following directives force the content-type application/octet-stream
+# and force browsers to display a download dialog for non-image files.
+# This prevents the execution of script files in the context of the website:
+ForceType application/octet-stream
+Header set Content-Disposition attachment
+<FilesMatch "(?i)\.(gif|jpe?g|png)$">
+ ForceType none
+ Header unset Content-Disposition
+</FilesMatch>
+
+# The following directive prevents browsers from MIME-sniffing the content-type.
+# This is an important complement to the ForceType directive above:
+Header set X-Content-Type-Options nosniff
+
+# Uncomment the following lines to prevent unauthorized download of files:
+#AuthName "Authorization required"
+#AuthType Basic
+#require valid-user
diff --git a/library/jqupload/server/php/index.php b/library/jqupload/server/php/index.php
new file mode 100644
index 000000000..be29bf479
--- /dev/null
+++ b/library/jqupload/server/php/index.php
@@ -0,0 +1,19 @@
+<?php
+/*
+ * jQuery File Upload Plugin PHP Example 5.14
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2010, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+// Don't allow files to be stored from the demo server
+
+exit;
+
+error_reporting(E_ALL | E_STRICT);
+require('UploadHandler.php');
+$upload_handler = new UploadHandler();
diff --git a/library/jqupload/test/index.html b/library/jqupload/test/index.html
new file mode 100644
index 000000000..e9c751b14
--- /dev/null
+++ b/library/jqupload/test/index.html
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery File Upload Plugin Test 9.0.0
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2010, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+-->
+<html lang="en">
+<head>
+<!-- Force latest IE rendering engine or ChromeFrame if installed -->
+<!--[if IE]>
+<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+<![endif]-->
+<meta charset="utf-8">
+<title>jQuery File Upload Plugin Test</title>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<link rel="stylesheet" href="http://codeorigin.jquery.com/qunit/qunit-1.12.0.css">
+</head>
+<body>
+<h1 id="qunit-header">jQuery File Upload Plugin Test</h1>
+<h2 id="qunit-banner"></h2>
+<div id="qunit-testrunner-toolbar"></div>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests"></ol>
+<div id="qunit-fixture">
+ <!-- The file upload form used as target for the file upload widget -->
+ <form id="fileupload" action="../server/php/" method="POST" enctype="multipart/form-data">
+ <!-- The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload -->
+ <div class="row fileupload-buttonbar">
+ <div class="col-lg-7">
+ <!-- The fileinput-button span is used to style the file input field as button -->
+ <span class="btn btn-success fileinput-button">
+ <i class="icon-plus icon-white"></i>
+ <span>Add files...</span>
+ <input type="file" name="files[]" multiple>
+ </span>
+ <button type="submit" class="btn btn-primary start">
+ <i class="icon-upload icon-white"></i>
+ <span>Start upload</span>
+ </button>
+ <button type="reset" class="btn btn-warning cancel">
+ <i class="icon-ban-circle icon-white"></i>
+ <span>Cancel upload</span>
+ </button>
+ <button type="button" class="btn btn-danger delete">
+ <i class="icon-trash icon-white"></i>
+ <span>Delete</span>
+ </button>
+ <input type="checkbox" class="toggle">
+ <!-- The global file processing state -->
+ <span class="fileupload-process"></span>
+ </div>
+ <!-- The global progress state -->
+ <div class="col-lg-5 fileupload-progress">
+ <!-- The global progress bar -->
+ <div class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100">
+ <div class="progress-bar progress-bar-success" style="width:0%;"></div>
+ </div>
+ <!-- The extended global progress state -->
+ <div class="progress-extended">&nbsp;</div>
+ </div>
+ </div>
+ <!-- The table listing the files available for upload/download -->
+ <table role="presentation" class="table table-striped"><tbody class="files"></tbody></table>
+ </form>
+</div>
+<!-- The template to display files available for upload -->
+<script id="template-upload" type="text/x-tmpl">
+{% for (var i=0, file; file=o.files[i]; i++) { %}
+ <tr class="template-upload">
+ <td>
+ <span class="preview"></span>
+ </td>
+ <td>
+ <p class="name">{%=file.name%}</p>
+ <strong class="error text-danger"></strong>
+ </td>
+ <td>
+ <p class="size">Processing...</p>
+ <div class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><div class="progress-bar progress-bar-success" style="width:0%;"></div></div>
+ </td>
+ <td>
+ {% if (!i && !o.options.autoUpload) { %}
+ <button class="btn btn-primary start" disabled>
+ <i class="glyphicon glyphicon-upload"></i>
+ <span>Start</span>
+ </button>
+ {% } %}
+ {% if (!i) { %}
+ <button class="btn btn-warning cancel">
+ <i class="glyphicon glyphicon-ban-circle"></i>
+ <span>Cancel</span>
+ </button>
+ {% } %}
+ </td>
+ </tr>
+{% } %}
+</script>
+<!-- The template to display files available for download -->
+<script id="template-download" type="text/x-tmpl">
+{% for (var i=0, file; file=o.files[i]; i++) { %}
+ <tr class="template-download">
+ <td>
+ <span class="preview">
+ {% if (file.thumbnailUrl) { %}
+ <a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" data-gallery><img src="{%=file.thumbnailUrl%}"></a>
+ {% } %}
+ </span>
+ </td>
+ <td>
+ <p class="name">
+ {% if (file.url) { %}
+ <a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" {%=file.thumbnailUrl?'data-gallery':''%}>{%=file.name%}</a>
+ {% } else { %}
+ <span>{%=file.name%}</span>
+ {% } %}
+ </p>
+ {% if (file.error) { %}
+ <div><span class="label label-danger">Error</span> {%=file.error%}</div>
+ {% } %}
+ </td>
+ <td>
+ <span class="size">{%=o.formatFileSize(file.size)%}</span>
+ </td>
+ <td>
+ {% if (file.deleteUrl) { %}
+ <button class="btn btn-danger delete" data-type="{%=file.deleteType%}" data-url="{%=file.deleteUrl%}"{% if (file.deleteWithCredentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>
+ <i class="glyphicon glyphicon-trash"></i>
+ <span>Delete</span>
+ </button>
+ <input type="checkbox" name="delete" value="1" class="toggle">
+ {% } else { %}
+ <button class="btn btn-warning cancel">
+ <i class="glyphicon glyphicon-ban-circle"></i>
+ <span>Cancel</span>
+ </button>
+ {% } %}
+ </td>
+ </tr>
+{% } %}
+</script>
+<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
+<script src="../js/vendor/jquery.ui.widget.js"></script>
+<script src="http://blueimp.github.io/JavaScript-Templates/js/tmpl.min.js"></script>
+<script src="http://blueimp.github.io/JavaScript-Load-Image/js/load-image.min.js"></script>
+<script src="http://blueimp.github.io/JavaScript-Canvas-to-Blob/js/canvas-to-blob.min.js"></script>
+<script src="../js/jquery.iframe-transport.js"></script>
+<script src="../js/jquery.fileupload.js"></script>
+<script>window.testBasicWidget = $.blueimp.fileupload;</script>
+<script src="../js/jquery.fileupload-process.js"></script>
+<script src="../js/jquery.fileupload-image.js"></script>
+<script src="../js/jquery.fileupload-audio.js"></script>
+<script src="../js/jquery.fileupload-video.js"></script>
+<script src="../js/jquery.fileupload-validate.js"></script>
+<script src="../js/jquery.fileupload-ui.js"></script>
+<script>window.testUIWidget = $.blueimp.fileupload;</script>
+<script src="http://codeorigin.jquery.com/qunit/qunit-1.12.0.js"></script>
+<script src="test.js"></script>
+</body>
+</html>
diff --git a/library/jqupload/test/test.js b/library/jqupload/test/test.js
new file mode 100644
index 000000000..72d08d99e
--- /dev/null
+++ b/library/jqupload/test/test.js
@@ -0,0 +1,1288 @@
+/*
+ * jQuery File Upload Plugin Test 9.4.0
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2010, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+/* global $, QUnit, window, document, expect, module, test, asyncTest, start, ok, strictEqual, notStrictEqual */
+
+$(function () {
+ // jshint nomen:false
+ 'use strict';
+
+ QUnit.done = function () {
+ // Delete all uploaded files:
+ var url = $('#fileupload').prop('action');
+ $.getJSON(url, function (result) {
+ $.each(result.files, function (index, file) {
+ $.ajax({
+ url: url + '?file=' + encodeURIComponent(file.name),
+ type: 'DELETE'
+ });
+ });
+ });
+ };
+
+ var lifecycle = {
+ setup: function () {
+ // Set the .fileupload method to the basic widget method:
+ $.widget('blueimp.fileupload', window.testBasicWidget, {});
+ },
+ teardown: function () {
+ // Remove all remaining event listeners:
+ $(document).unbind();
+ }
+ },
+ lifecycleUI = {
+ setup: function () {
+ // Set the .fileupload method to the UI widget method:
+ $.widget('blueimp.fileupload', window.testUIWidget, {});
+ },
+ teardown: function () {
+ // Remove all remaining event listeners:
+ $(document).unbind();
+ }
+ };
+
+ module('Initialization', lifecycle);
+
+ test('Widget initialization', function () {
+ var fu = $('#fileupload').fileupload();
+ ok(fu.data('blueimp-fileupload') || fu.data('fileupload'));
+ });
+
+ test('Data attribute options', function () {
+ $('#fileupload').attr('data-url', 'http://example.org');
+ $('#fileupload').fileupload();
+ strictEqual(
+ $('#fileupload').fileupload('option', 'url'),
+ 'http://example.org'
+ );
+ });
+
+ test('File input initialization', function () {
+ var fu = $('#fileupload').fileupload();
+ ok(
+ fu.fileupload('option', 'fileInput').length,
+ 'File input field inside of the widget'
+ );
+ ok(
+ fu.fileupload('option', 'fileInput').length,
+ 'Widget element as file input field'
+ );
+ });
+
+ test('Drop zone initialization', function () {
+ ok($('#fileupload').fileupload()
+ .fileupload('option', 'dropZone').length);
+ });
+
+ test('Paste zone initialization', function () {
+ ok($('#fileupload').fileupload()
+ .fileupload('option', 'pasteZone').length);
+ });
+
+ test('Event listeners initialization', function () {
+ expect(
+ $.support.xhrFormDataFileUpload ? 4 : 1
+ );
+ var eo = {
+ originalEvent: {
+ dataTransfer: {files: [{}], types: ['Files']},
+ clipboardData: {items: [{}]}
+ }
+ },
+ fu = $('#fileupload').fileupload({
+ dragover: function () {
+ ok(true, 'Triggers dragover callback');
+ return false;
+ },
+ drop: function () {
+ ok(true, 'Triggers drop callback');
+ return false;
+ },
+ paste: function () {
+ ok(true, 'Triggers paste callback');
+ return false;
+ },
+ change: function () {
+ ok(true, 'Triggers change callback');
+ return false;
+ }
+ }),
+ fileInput = fu.fileupload('option', 'fileInput'),
+ dropZone = fu.fileupload('option', 'dropZone'),
+ pasteZone = fu.fileupload('option', 'pasteZone');
+ fileInput.trigger($.Event('change', eo));
+ dropZone.trigger($.Event('dragover', eo));
+ dropZone.trigger($.Event('drop', eo));
+ pasteZone.trigger($.Event('paste', eo));
+ });
+
+ module('API', lifecycle);
+
+ test('destroy', function () {
+ expect(4);
+ var eo = {
+ originalEvent: {
+ dataTransfer: {files: [{}], types: ['Files']},
+ clipboardData: {items: [{}]}
+ }
+ },
+ options = {
+ dragover: function () {
+ ok(true, 'Triggers dragover callback');
+ return false;
+ },
+ drop: function () {
+ ok(true, 'Triggers drop callback');
+ return false;
+ },
+ paste: function () {
+ ok(true, 'Triggers paste callback');
+ return false;
+ },
+ change: function () {
+ ok(true, 'Triggers change callback');
+ return false;
+ }
+ },
+ fu = $('#fileupload').fileupload(options),
+ fileInput = fu.fileupload('option', 'fileInput'),
+ dropZone = fu.fileupload('option', 'dropZone'),
+ pasteZone = fu.fileupload('option', 'pasteZone');
+ dropZone.bind('dragover', options.dragover);
+ dropZone.bind('drop', options.drop);
+ pasteZone.bind('paste', options.paste);
+ fileInput.bind('change', options.change);
+ fu.fileupload('destroy');
+ fileInput.trigger($.Event('change', eo));
+ dropZone.trigger($.Event('dragover', eo));
+ dropZone.trigger($.Event('drop', eo));
+ pasteZone.trigger($.Event('paste', eo));
+ });
+
+ test('disable/enable', function () {
+ expect(
+ $.support.xhrFormDataFileUpload ? 4 : 1
+ );
+ var eo = {
+ originalEvent: {
+ dataTransfer: {files: [{}], types: ['Files']},
+ clipboardData: {items: [{}]}
+ }
+ },
+ fu = $('#fileupload').fileupload({
+ dragover: function () {
+ ok(true, 'Triggers dragover callback');
+ return false;
+ },
+ drop: function () {
+ ok(true, 'Triggers drop callback');
+ return false;
+ },
+ paste: function () {
+ ok(true, 'Triggers paste callback');
+ return false;
+ },
+ change: function () {
+ ok(true, 'Triggers change callback');
+ return false;
+ }
+ }),
+ fileInput = fu.fileupload('option', 'fileInput'),
+ dropZone = fu.fileupload('option', 'dropZone'),
+ pasteZone = fu.fileupload('option', 'pasteZone');
+ fu.fileupload('disable');
+ fileInput.trigger($.Event('change', eo));
+ dropZone.trigger($.Event('dragover', eo));
+ dropZone.trigger($.Event('drop', eo));
+ pasteZone.trigger($.Event('paste', eo));
+ fu.fileupload('enable');
+ fileInput.trigger($.Event('change', eo));
+ dropZone.trigger($.Event('dragover', eo));
+ dropZone.trigger($.Event('drop', eo));
+ pasteZone.trigger($.Event('paste', eo));
+ });
+
+ test('option', function () {
+ expect(
+ $.support.xhrFormDataFileUpload ? 10 : 7
+ );
+ var eo = {
+ originalEvent: {
+ dataTransfer: {files: [{}], types: ['Files']},
+ clipboardData: {items: [{}]}
+ }
+ },
+ fu = $('#fileupload').fileupload({
+ dragover: function () {
+ ok(true, 'Triggers dragover callback');
+ return false;
+ },
+ drop: function () {
+ ok(true, 'Triggers drop callback');
+ return false;
+ },
+ paste: function () {
+ ok(true, 'Triggers paste callback');
+ return false;
+ },
+ change: function () {
+ ok(true, 'Triggers change callback');
+ return false;
+ }
+ }),
+ fileInput = fu.fileupload('option', 'fileInput'),
+ dropZone = fu.fileupload('option', 'dropZone'),
+ pasteZone = fu.fileupload('option', 'pasteZone');
+ fu.fileupload('option', 'fileInput', null);
+ fu.fileupload('option', 'dropZone', null);
+ fu.fileupload('option', 'pasteZone', null);
+ fileInput.trigger($.Event('change', eo));
+ dropZone.trigger($.Event('dragover', eo));
+ dropZone.trigger($.Event('drop', eo));
+ pasteZone.trigger($.Event('paste', eo));
+ fu.fileupload('option', 'dropZone', 'body');
+ strictEqual(
+ fu.fileupload('option', 'dropZone')[0],
+ document.body,
+ 'Allow a query string as parameter for the dropZone option'
+ );
+ fu.fileupload('option', 'dropZone', document);
+ strictEqual(
+ fu.fileupload('option', 'dropZone')[0],
+ document,
+ 'Allow a document element as parameter for the dropZone option'
+ );
+ fu.fileupload('option', 'pasteZone', 'body');
+ strictEqual(
+ fu.fileupload('option', 'pasteZone')[0],
+ document.body,
+ 'Allow a query string as parameter for the pasteZone option'
+ );
+ fu.fileupload('option', 'pasteZone', document);
+ strictEqual(
+ fu.fileupload('option', 'pasteZone')[0],
+ document,
+ 'Allow a document element as parameter for the pasteZone option'
+ );
+ fu.fileupload('option', 'fileInput', ':file');
+ strictEqual(
+ fu.fileupload('option', 'fileInput')[0],
+ $(':file')[0],
+ 'Allow a query string as parameter for the fileInput option'
+ );
+ fu.fileupload('option', 'fileInput', $(':file')[0]);
+ strictEqual(
+ fu.fileupload('option', 'fileInput')[0],
+ $(':file')[0],
+ 'Allow a document element as parameter for the fileInput option'
+ );
+ fu.fileupload('option', 'fileInput', fileInput);
+ fu.fileupload('option', 'dropZone', dropZone);
+ fu.fileupload('option', 'pasteZone', pasteZone);
+ fileInput.trigger($.Event('change', eo));
+ dropZone.trigger($.Event('dragover', eo));
+ dropZone.trigger($.Event('drop', eo));
+ pasteZone.trigger($.Event('paste', eo));
+ });
+
+ asyncTest('add', function () {
+ expect(2);
+ var param = {files: [{name: 'test'}]};
+ $('#fileupload').fileupload({
+ add: function (e, data) {
+ strictEqual(
+ data.files[0].name,
+ param.files[0].name,
+ 'Triggers add callback'
+ );
+ }
+ }).fileupload('add', param).fileupload(
+ 'option',
+ 'add',
+ function (e, data) {
+ data.submit().complete(function () {
+ ok(true, 'data.submit() Returns a jqXHR object');
+ start();
+ });
+ }
+ ).fileupload('add', param);
+ });
+
+ asyncTest('send', function () {
+ expect(3);
+ var param = {files: [{name: 'test'}]};
+ $('#fileupload').fileupload({
+ send: function (e, data) {
+ strictEqual(
+ data.files[0].name,
+ 'test',
+ 'Triggers send callback'
+ );
+ }
+ }).fileupload('send', param).fail(function () {
+ ok(true, 'Allows to abort the request');
+ }).complete(function () {
+ ok(true, 'Returns a jqXHR object');
+ start();
+ }).abort();
+ });
+
+ module('Callbacks', lifecycle);
+
+ asyncTest('add', function () {
+ expect(1);
+ var param = {files: [{name: 'test'}]};
+ $('#fileupload').fileupload({
+ add: function () {
+ ok(true, 'Triggers add callback');
+ start();
+ }
+ }).fileupload('add', param);
+ });
+
+ asyncTest('submit', function () {
+ expect(1);
+ var param = {files: [{name: 'test'}]};
+ $('#fileupload').fileupload({
+ submit: function () {
+ ok(true, 'Triggers submit callback');
+ start();
+ return false;
+ }
+ }).fileupload('add', param);
+ });
+
+ asyncTest('send', function () {
+ expect(1);
+ var param = {files: [{name: 'test'}]};
+ $('#fileupload').fileupload({
+ send: function () {
+ ok(true, 'Triggers send callback');
+ start();
+ return false;
+ }
+ }).fileupload('send', param);
+ });
+
+ asyncTest('done', function () {
+ expect(1);
+ var param = {files: [{name: 'test'}]};
+ $('#fileupload').fileupload({
+ done: function () {
+ ok(true, 'Triggers done callback');
+ start();
+ }
+ }).fileupload('send', param);
+ });
+
+ asyncTest('fail', function () {
+ expect(1);
+ var param = {files: [{name: 'test'}]},
+ fu = $('#fileupload').fileupload({
+ url: '404',
+ fail: function () {
+ ok(true, 'Triggers fail callback');
+ start();
+ }
+ });
+ (fu.data('blueimp-fileupload') || fu.data('fileupload'))
+ ._isXHRUpload = function () {
+ return true;
+ };
+ fu.fileupload('send', param);
+ });
+
+ asyncTest('always', function () {
+ expect(2);
+ var param = {files: [{name: 'test'}]},
+ counter = 0,
+ fu = $('#fileupload').fileupload({
+ always: function () {
+ ok(true, 'Triggers always callback');
+ if (counter === 1) {
+ start();
+ } else {
+ counter += 1;
+ }
+ }
+ });
+ (fu.data('blueimp-fileupload') || fu.data('fileupload'))
+ ._isXHRUpload = function () {
+ return true;
+ };
+ fu.fileupload('add', param).fileupload(
+ 'option',
+ 'url',
+ '404'
+ ).fileupload('add', param);
+ });
+
+ asyncTest('progress', function () {
+ expect(1);
+ var param = {files: [{name: 'test'}]},
+ counter = 0;
+ $('#fileupload').fileupload({
+ forceIframeTransport: true,
+ progress: function () {
+ ok(true, 'Triggers progress callback');
+ if (counter === 0) {
+ start();
+ } else {
+ counter += 1;
+ }
+ }
+ }).fileupload('send', param);
+ });
+
+ asyncTest('progressall', function () {
+ expect(1);
+ var param = {files: [{name: 'test'}]},
+ counter = 0;
+ $('#fileupload').fileupload({
+ forceIframeTransport: true,
+ progressall: function () {
+ ok(true, 'Triggers progressall callback');
+ if (counter === 0) {
+ start();
+ } else {
+ counter += 1;
+ }
+ }
+ }).fileupload('send', param);
+ });
+
+ asyncTest('start', function () {
+ expect(1);
+ var param = {files: [{name: '1'}, {name: '2'}]},
+ active = 0;
+ $('#fileupload').fileupload({
+ send: function () {
+ active += 1;
+ },
+ start: function () {
+ ok(!active, 'Triggers start callback before uploads');
+ start();
+ }
+ }).fileupload('send', param);
+ });
+
+ asyncTest('stop', function () {
+ expect(1);
+ var param = {files: [{name: '1'}, {name: '2'}]},
+ active = 0;
+ $('#fileupload').fileupload({
+ send: function () {
+ active += 1;
+ },
+ always: function () {
+ active -= 1;
+ },
+ stop: function () {
+ ok(!active, 'Triggers stop callback after uploads');
+ start();
+ }
+ }).fileupload('send', param);
+ });
+
+ test('change', function () {
+ var fu = $('#fileupload').fileupload(),
+ fuo = fu.data('blueimp-fileupload') || fu.data('fileupload'),
+ fileInput = fu.fileupload('option', 'fileInput');
+ expect(2);
+ fu.fileupload({
+ change: function (e, data) {
+ ok(true, 'Triggers change callback');
+ strictEqual(
+ data.files.length,
+ 0,
+ 'Returns empty files list'
+ );
+ },
+ add: $.noop
+ });
+ fuo._onChange({
+ data: {fileupload: fuo},
+ target: fileInput[0]
+ });
+ });
+
+ test('paste', function () {
+ var fu = $('#fileupload').fileupload(),
+ fuo = fu.data('blueimp-fileupload') || fu.data('fileupload');
+ expect(1);
+ fu.fileupload({
+ paste: function () {
+ ok(true, 'Triggers paste callback');
+ },
+ add: $.noop
+ });
+ fuo._onPaste({
+ data: {fileupload: fuo},
+ originalEvent: {
+ dataTransfer: {files: [{}]},
+ clipboardData: {items: [{}]}
+ },
+ preventDefault: $.noop
+ });
+ });
+
+ test('drop', function () {
+ var fu = $('#fileupload').fileupload(),
+ fuo = fu.data('blueimp-fileupload') || fu.data('fileupload');
+ expect(1);
+ fu.fileupload({
+ drop: function () {
+ ok(true, 'Triggers drop callback');
+ },
+ add: $.noop
+ });
+ fuo._onDrop({
+ data: {fileupload: fuo},
+ originalEvent: {
+ dataTransfer: {files: [{}]},
+ clipboardData: {items: [{}]}
+ },
+ preventDefault: $.noop
+ });
+ });
+
+ test('dragover', function () {
+ var fu = $('#fileupload').fileupload(),
+ fuo = fu.data('blueimp-fileupload') || fu.data('fileupload');
+ expect(1);
+ fu.fileupload({
+ dragover: function () {
+ ok(true, 'Triggers dragover callback');
+ },
+ add: $.noop
+ });
+ fuo._onDragOver({
+ data: {fileupload: fuo},
+ originalEvent: {dataTransfer: {types: ['Files']}},
+ preventDefault: $.noop
+ });
+ });
+
+ module('Options', lifecycle);
+
+ test('paramName', function () {
+ expect(1);
+ var param = {files: [{name: 'test'}]};
+ $('#fileupload').fileupload({
+ paramName: null,
+ send: function (e, data) {
+ strictEqual(
+ data.paramName[0],
+ data.fileInput.prop('name'),
+ 'Takes paramName from file input field if not set'
+ );
+ return false;
+ }
+ }).fileupload('send', param);
+ });
+
+ test('url', function () {
+ expect(1);
+ var param = {files: [{name: 'test'}]};
+ $('#fileupload').fileupload({
+ url: null,
+ send: function (e, data) {
+ strictEqual(
+ data.url,
+ $(data.fileInput.prop('form')).prop('action'),
+ 'Takes url from form action if not set'
+ );
+ return false;
+ }
+ }).fileupload('send', param);
+ });
+
+ test('type', function () {
+ expect(2);
+ var param = {files: [{name: 'test'}]};
+ $('#fileupload').fileupload({
+ type: null,
+ send: function (e, data) {
+ strictEqual(
+ data.type,
+ 'POST',
+ 'Request type is "POST" if not set to "PUT"'
+ );
+ return false;
+ }
+ }).fileupload('send', param);
+ $('#fileupload').fileupload({
+ type: 'PUT',
+ send: function (e, data) {
+ strictEqual(
+ data.type,
+ 'PUT',
+ 'Request type is "PUT" if set to "PUT"'
+ );
+ return false;
+ }
+ }).fileupload('send', param);
+ });
+
+ test('replaceFileInput', function () {
+ var fu = $('#fileupload').fileupload(),
+ fuo = fu.data('blueimp-fileupload') || fu.data('fileupload'),
+ fileInput = fu.fileupload('option', 'fileInput'),
+ fileInputElement = fileInput[0];
+ expect(2);
+ fu.fileupload({
+ replaceFileInput: false,
+ change: function () {
+ strictEqual(
+ fu.fileupload('option', 'fileInput')[0],
+ fileInputElement,
+ 'Keeps file input with replaceFileInput: false'
+ );
+ },
+ add: $.noop
+ });
+ fuo._onChange({
+ data: {fileupload: fuo},
+ target: fileInput[0]
+ });
+ fu.fileupload({
+ replaceFileInput: true,
+ change: function () {
+ notStrictEqual(
+ fu.fileupload('option', 'fileInput')[0],
+ fileInputElement,
+ 'Replaces file input with replaceFileInput: true'
+ );
+ },
+ add: $.noop
+ });
+ fuo._onChange({
+ data: {fileupload: fuo},
+ target: fileInput[0]
+ });
+ });
+
+ asyncTest('forceIframeTransport', function () {
+ expect(1);
+ var param = {files: [{name: 'test'}]};
+ $('#fileupload').fileupload({
+ forceIframeTransport: true,
+ done: function (e, data) {
+ strictEqual(
+ data.dataType.substr(0, 6),
+ 'iframe',
+ 'Iframe Transport is used'
+ );
+ start();
+ }
+ }).fileupload('send', param);
+ });
+
+ test('singleFileUploads', function () {
+ expect(3);
+ var fu = $('#fileupload').fileupload(),
+ param = {files: [{name: '1'}, {name: '2'}]},
+ index = 1;
+ (fu.data('blueimp-fileupload') || fu.data('fileupload'))
+ ._isXHRUpload = function () {
+ return true;
+ };
+ $('#fileupload').fileupload({
+ singleFileUploads: true,
+ add: function () {
+ ok(true, 'Triggers callback number ' + index.toString());
+ index += 1;
+ }
+ }).fileupload('add', param).fileupload(
+ 'option',
+ 'singleFileUploads',
+ false
+ ).fileupload('add', param);
+ });
+
+ test('limitMultiFileUploads', function () {
+ expect(3);
+ var fu = $('#fileupload').fileupload(),
+ param = {files: [
+ {name: '1'},
+ {name: '2'},
+ {name: '3'},
+ {name: '4'},
+ {name: '5'}
+ ]},
+ index = 1;
+ (fu.data('blueimp-fileupload') || fu.data('fileupload'))
+ ._isXHRUpload = function () {
+ return true;
+ };
+ $('#fileupload').fileupload({
+ singleFileUploads: false,
+ limitMultiFileUploads: 2,
+ add: function () {
+ ok(true, 'Triggers callback number ' + index.toString());
+ index += 1;
+ }
+ }).fileupload('add', param);
+ });
+
+ test('limitMultiFileUploadSize', function () {
+ expect(7);
+ var fu = $('#fileupload').fileupload(),
+ param = {files: [
+ {name: '1-1', size: 100000},
+ {name: '1-2', size: 40000},
+ {name: '2-1', size: 100000},
+ {name: '3-1', size: 50000},
+ {name: '3-2', size: 40000},
+ {name: '4-1', size: 45000} // New request due to limitMultiFileUploads
+ ]},
+ param2 = {files: [
+ {name: '5-1'},
+ {name: '5-2'},
+ {name: '6-1'},
+ {name: '6-2'},
+ {name: '7-1'}
+ ]},
+ index = 1;
+ (fu.data('blueimp-fileupload') || fu.data('fileupload'))
+ ._isXHRUpload = function () {
+ return true;
+ };
+ $('#fileupload').fileupload({
+ singleFileUploads: false,
+ limitMultiFileUploads: 2,
+ limitMultiFileUploadSize: 150000,
+ limitMultiFileUploadSizeOverhead: 5000,
+ add: function () {
+ ok(true, 'Triggers callback number ' + index.toString());
+ index += 1;
+ }
+ }).fileupload('add', param).fileupload('add', param2);
+ });
+
+ asyncTest('sequentialUploads', function () {
+ expect(6);
+ var param = {files: [
+ {name: '1'},
+ {name: '2'},
+ {name: '3'},
+ {name: '4'},
+ {name: '5'},
+ {name: '6'}
+ ]},
+ addIndex = 0,
+ sendIndex = 0,
+ loadIndex = 0,
+ fu = $('#fileupload').fileupload({
+ sequentialUploads: true,
+ add: function (e, data) {
+ addIndex += 1;
+ if (addIndex === 4) {
+ data.submit().abort();
+ } else {
+ data.submit();
+ }
+ },
+ send: function () {
+ sendIndex += 1;
+ },
+ done: function () {
+ loadIndex += 1;
+ strictEqual(sendIndex, loadIndex, 'upload in order');
+ },
+ fail: function (e, data) {
+ strictEqual(data.errorThrown, 'abort', 'upload aborted');
+ },
+ stop: function () {
+ start();
+ }
+ });
+ (fu.data('blueimp-fileupload') || fu.data('fileupload'))
+ ._isXHRUpload = function () {
+ return true;
+ };
+ fu.fileupload('add', param);
+ });
+
+ asyncTest('limitConcurrentUploads', function () {
+ expect(12);
+ var param = {files: [
+ {name: '1'},
+ {name: '2'},
+ {name: '3'},
+ {name: '4'},
+ {name: '5'},
+ {name: '6'},
+ {name: '7'},
+ {name: '8'},
+ {name: '9'},
+ {name: '10'},
+ {name: '11'},
+ {name: '12'}
+ ]},
+ addIndex = 0,
+ sendIndex = 0,
+ loadIndex = 0,
+ fu = $('#fileupload').fileupload({
+ limitConcurrentUploads: 3,
+ add: function (e, data) {
+ addIndex += 1;
+ if (addIndex === 4) {
+ data.submit().abort();
+ } else {
+ data.submit();
+ }
+ },
+ send: function () {
+ sendIndex += 1;
+ },
+ done: function () {
+ loadIndex += 1;
+ ok(sendIndex - loadIndex < 3);
+ },
+ fail: function (e, data) {
+ strictEqual(data.errorThrown, 'abort', 'upload aborted');
+ },
+ stop: function () {
+ start();
+ }
+ });
+ (fu.data('blueimp-fileupload') || fu.data('fileupload'))
+ ._isXHRUpload = function () {
+ return true;
+ };
+ fu.fileupload('add', param);
+ });
+
+ if ($.support.xhrFileUpload) {
+ asyncTest('multipart', function () {
+ expect(2);
+ var param = {files: [{
+ name: 'test.png',
+ size: 123,
+ type: 'image/png'
+ }]},
+ fu = $('#fileupload').fileupload({
+ multipart: false,
+ always: function (e, data) {
+ strictEqual(
+ data.contentType,
+ param.files[0].type,
+ 'non-multipart upload sets file type as contentType'
+ );
+ strictEqual(
+ data.headers['Content-Disposition'],
+ 'attachment; filename="' + param.files[0].name + '"',
+ 'non-multipart upload sets Content-Disposition header'
+ );
+ start();
+ }
+ });
+ fu.fileupload('send', param);
+ });
+ }
+
+ module('UI Initialization', lifecycleUI);
+
+ test('Widget initialization', function () {
+ var fu = $('#fileupload').fileupload();
+ ok(fu.data('blueimp-fileupload') || fu.data('fileupload'));
+ ok(
+ $('#fileupload').fileupload('option', 'uploadTemplate').length,
+ 'Initialized upload template'
+ );
+ ok(
+ $('#fileupload').fileupload('option', 'downloadTemplate').length,
+ 'Initialized download template'
+ );
+ });
+
+ test('Buttonbar event listeners', function () {
+ var buttonbar = $('#fileupload .fileupload-buttonbar'),
+ files = [{name: 'test'}];
+ expect(4);
+ $('#fileupload').fileupload({
+ send: function () {
+ ok(true, 'Started file upload via global start button');
+ },
+ fail: function (e, data) {
+ ok(true, 'Canceled file upload via global cancel button');
+ data.context.remove();
+ },
+ destroy: function () {
+ ok(true, 'Delete action called via global delete button');
+ }
+ });
+ $('#fileupload').fileupload('add', {files: files});
+ buttonbar.find('.cancel').click();
+ $('#fileupload').fileupload('add', {files: files});
+ buttonbar.find('.start').click();
+ buttonbar.find('.cancel').click();
+ files[0].deleteUrl = 'http://example.org/banana.jpg';
+ ($('#fileupload').data('blueimp-fileupload') ||
+ $('#fileupload').data('fileupload'))
+ ._renderDownload(files)
+ .appendTo($('#fileupload .files')).show()
+ .find('.toggle').click();
+ buttonbar.find('.delete').click();
+ });
+
+ module('UI API', lifecycleUI);
+
+ test('destroy', function () {
+ var buttonbar = $('#fileupload .fileupload-buttonbar'),
+ files = [{name: 'test'}];
+ expect(1);
+ $('#fileupload').fileupload({
+ send: function () {
+ ok(true, 'This test should not run');
+ return false;
+ }
+ })
+ .fileupload('add', {files: files})
+ .fileupload('destroy');
+ buttonbar.find('.start').click(function () {
+ ok(true, 'Clicked global start button');
+ return false;
+ }).click();
+ });
+
+ test('disable/enable', function () {
+ var buttonbar = $('#fileupload .fileupload-buttonbar');
+ $('#fileupload').fileupload();
+ $('#fileupload').fileupload('disable');
+ strictEqual(
+ buttonbar.find('input[type=file], button').not(':disabled').length,
+ 0,
+ 'Disables the buttonbar buttons'
+ );
+ $('#fileupload').fileupload('enable');
+ strictEqual(
+ buttonbar.find('input[type=file], button').not(':disabled').length,
+ 4,
+ 'Enables the buttonbar buttons'
+ );
+ });
+
+ module('UI Callbacks', lifecycleUI);
+
+ test('destroy', function () {
+ expect(3);
+ $('#fileupload').fileupload({
+ destroy: function (e, data) {
+ ok(true, 'Triggers destroy callback');
+ strictEqual(
+ data.url,
+ 'test',
+ 'Passes over deletion url parameter'
+ );
+ strictEqual(
+ data.type,
+ 'DELETE',
+ 'Passes over deletion request type parameter'
+ );
+ }
+ });
+ ($('#fileupload').data('blueimp-fileupload') ||
+ $('#fileupload').data('fileupload'))
+ ._renderDownload([{
+ name: 'test',
+ deleteUrl: 'test',
+ deleteType: 'DELETE'
+ }])
+ .appendTo($('#fileupload .files'))
+ .show()
+ .find('.toggle').click();
+ $('#fileupload .fileupload-buttonbar .delete').click();
+ });
+
+ asyncTest('added', function () {
+ expect(1);
+ var param = {files: [{name: 'test'}]};
+ $('#fileupload').fileupload({
+ added: function (e, data) {
+ start();
+ strictEqual(
+ data.files[0].name,
+ param.files[0].name,
+ 'Triggers added callback'
+ );
+ },
+ send: function () {
+ return false;
+ }
+ }).fileupload('add', param);
+ });
+
+ asyncTest('started', function () {
+ expect(1);
+ var param = {files: [{name: 'test'}]};
+ $('#fileupload').fileupload({
+ started: function () {
+ start();
+ ok('Triggers started callback');
+ return false;
+ },
+ sent: function () {
+ return false;
+ }
+ }).fileupload('send', param);
+ });
+
+ asyncTest('sent', function () {
+ expect(1);
+ var param = {files: [{name: 'test'}]};
+ $('#fileupload').fileupload({
+ sent: function (e, data) {
+ start();
+ strictEqual(
+ data.files[0].name,
+ param.files[0].name,
+ 'Triggers sent callback'
+ );
+ return false;
+ }
+ }).fileupload('send', param);
+ });
+
+ asyncTest('completed', function () {
+ expect(1);
+ var param = {files: [{name: 'test'}]};
+ $('#fileupload').fileupload({
+ completed: function () {
+ start();
+ ok('Triggers completed callback');
+ return false;
+ }
+ }).fileupload('send', param);
+ });
+
+ asyncTest('failed', function () {
+ expect(1);
+ var param = {files: [{name: 'test'}]};
+ $('#fileupload').fileupload({
+ failed: function () {
+ start();
+ ok('Triggers failed callback');
+ return false;
+ }
+ }).fileupload('send', param).abort();
+ });
+
+ asyncTest('stopped', function () {
+ expect(1);
+ var param = {files: [{name: 'test'}]};
+ $('#fileupload').fileupload({
+ stopped: function () {
+ start();
+ ok('Triggers stopped callback');
+ return false;
+ }
+ }).fileupload('send', param);
+ });
+
+ asyncTest('destroyed', function () {
+ expect(1);
+ $('#fileupload').fileupload({
+ dataType: 'html',
+ destroyed: function () {
+ start();
+ ok(true, 'Triggers destroyed callback');
+ }
+ });
+ ($('#fileupload').data('blueimp-fileupload') ||
+ $('#fileupload').data('fileupload'))
+ ._renderDownload([{
+ name: 'test',
+ deleteUrl: '.',
+ deleteType: 'GET'
+ }])
+ .appendTo($('#fileupload .files'))
+ .show()
+ .find('.toggle').click();
+ $('#fileupload .fileupload-buttonbar .delete').click();
+ });
+
+ module('UI Options', lifecycleUI);
+
+ test('autoUpload', function () {
+ expect(1);
+ $('#fileupload')
+ .fileupload({
+ autoUpload: true,
+ send: function () {
+ ok(true, 'Started file upload automatically');
+ return false;
+ }
+ })
+ .fileupload('add', {files: [{name: 'test'}]})
+ .fileupload('option', 'autoUpload', false)
+ .fileupload('add', {files: [{name: 'test'}]});
+ });
+
+ test('maxNumberOfFiles', function () {
+ expect(3);
+ var addIndex = 0,
+ sendIndex = 0;
+ $('#fileupload')
+ .fileupload({
+ autoUpload: true,
+ maxNumberOfFiles: 3,
+ singleFileUploads: false,
+ send: function () {
+ strictEqual(
+ sendIndex += 1,
+ addIndex
+ );
+ },
+ progress: $.noop,
+ progressall: $.noop,
+ done: $.noop,
+ stop: $.noop
+ })
+ .fileupload('add', {files: [{name: (addIndex += 1)}]})
+ .fileupload('add', {files: [{name: (addIndex += 1)}]})
+ .fileupload('add', {files: [{name: (addIndex += 1)}]})
+ .fileupload('add', {files: [{name: 'test'}]});
+ });
+
+ test('maxFileSize', function () {
+ expect(2);
+ var addIndex = 0,
+ sendIndex = 0;
+ $('#fileupload')
+ .fileupload({
+ autoUpload: true,
+ maxFileSize: 1000,
+ send: function () {
+ strictEqual(
+ sendIndex += 1,
+ addIndex
+ );
+ return false;
+ }
+ })
+ .fileupload('add', {files: [{
+ name: (addIndex += 1)
+ }]})
+ .fileupload('add', {files: [{
+ name: (addIndex += 1),
+ size: 999
+ }]})
+ .fileupload('add', {files: [{
+ name: 'test',
+ size: 1001
+ }]})
+ .fileupload({
+ send: function (e, data) {
+ ok(
+ !$.blueimp.fileupload.prototype.options
+ .send.call(this, e, data)
+ );
+ return false;
+ }
+ });
+ });
+
+ test('minFileSize', function () {
+ expect(2);
+ var addIndex = 0,
+ sendIndex = 0;
+ $('#fileupload')
+ .fileupload({
+ autoUpload: true,
+ minFileSize: 1000,
+ send: function () {
+ strictEqual(
+ sendIndex += 1,
+ addIndex
+ );
+ return false;
+ }
+ })
+ .fileupload('add', {files: [{
+ name: (addIndex += 1)
+ }]})
+ .fileupload('add', {files: [{
+ name: (addIndex += 1),
+ size: 1001
+ }]})
+ .fileupload('add', {files: [{
+ name: 'test',
+ size: 999
+ }]})
+ .fileupload({
+ send: function (e, data) {
+ ok(
+ !$.blueimp.fileupload.prototype.options
+ .send.call(this, e, data)
+ );
+ return false;
+ }
+ });
+ });
+
+ test('acceptFileTypes', function () {
+ expect(2);
+ var addIndex = 0,
+ sendIndex = 0;
+ $('#fileupload')
+ .fileupload({
+ autoUpload: true,
+ acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
+ disableImageMetaDataLoad: true,
+ send: function () {
+ strictEqual(
+ sendIndex += 1,
+ addIndex
+ );
+ return false;
+ }
+ })
+ .fileupload('add', {files: [{
+ name: (addIndex += 1) + '.jpg'
+ }]})
+ .fileupload('add', {files: [{
+ name: (addIndex += 1),
+ type: 'image/jpeg'
+ }]})
+ .fileupload('add', {files: [{
+ name: 'test.txt',
+ type: 'text/plain'
+ }]})
+ .fileupload({
+ send: function (e, data) {
+ ok(
+ !$.blueimp.fileupload.prototype.options
+ .send.call(this, e, data)
+ );
+ return false;
+ }
+ });
+ });
+
+ test('acceptFileTypes as HTML5 data attribute', function () {
+ expect(2);
+ var regExp = /(\.|\/)(gif|jpe?g|png)$/i;
+ $('#fileupload')
+ .attr('data-accept-file-types', regExp.toString())
+ .fileupload();
+ strictEqual(
+ $.type($('#fileupload').fileupload('option', 'acceptFileTypes')),
+ $.type(regExp)
+ );
+ strictEqual(
+ $('#fileupload').fileupload('option', 'acceptFileTypes').toString(),
+ regExp.toString()
+ );
+ });
+
+});
diff --git a/library/openid/README b/library/openid/README
new file mode 100644
index 000000000..799b452ac
--- /dev/null
+++ b/library/openid/README
@@ -0,0 +1,49 @@
+This class provides a simple interface for OpenID (1.1 and 2.0) authentication.
+Supports Yadis discovery.
+
+The authentication process is stateless/dumb.
+
+Usage:
+Sign-on with OpenID is a two step process:
+Step one is authentication with the provider:
+<code>
+$openid = new LightOpenID('my-host.example.org');
+$openid->identity = 'ID supplied by user';
+header('Location: ' . $openid->authUrl());
+</code>
+
+The provider then sends various parameters via GET, one of them is openid_mode.
+Step two is verification:
+<code>
+if ($this->data['openid_mode']) {
+ $openid = new LightOpenID('my-host.example.org');
+ echo $openid->validate() ? 'Logged in.' : 'Failed';
+}
+</code>
+ *
+Change the 'my-host.example.org' to your domain name. Do NOT use $_SERVER['HTTP_HOST']
+for that, unless you know what you are doing.
+ *
+Optionally, you can set $returnUrl and $realm (or $trustRoot, which is an alias).
+The default values for those are:
+$openid->realm = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'];
+$openid->returnUrl = $openid->realm . $_SERVER['REQUEST_URI'];
+If you don't know their meaning, refer to any openid tutorial, or specification. Or just guess.
+ *
+AX and SREG extensions are supported.
+To use them, specify $openid->required and/or $openid->optional before calling $openid->authUrl().
+These are arrays, with values being AX schema paths (the 'path' part of the URL).
+For example:
+ $openid->required = array('namePerson/friendly', 'contact/email');
+ $openid->optional = array('namePerson/first');
+If the server supports only SREG or OpenID 1.1, these are automaticaly
+mapped to SREG names, so that user doesn't have to know anything about the server.
+ *
+To get the values, use $openid->getAttributes().
+ *
+The library requires PHP >= 5.1.2 with curl or http/https stream wrappers enabled.
+@author Mewp
+@contributors Brice http://github.com/brice/
+@copyright Copyright (c) 2010, Mewp
+@copyright Copyright (c) 2010, Brice
+@license http://www.opensource.org/licenses/mit-license.php MIT \ No newline at end of file
diff --git a/library/openid/example-google.php b/library/openid/example-google.php
new file mode 100644
index 000000000..f23f2cc48
--- /dev/null
+++ b/library/openid/example-google.php
@@ -0,0 +1,24 @@
+<?php
+# Logging in with Google accounts requires setting special identity, so this example shows how to do it.
+require 'openid.php';
+try {
+ # Change 'localhost' to your domain name.
+ $openid = new LightOpenID('localhost');
+ if(!$openid->mode) {
+ if(isset($_GET['login'])) {
+ $openid->identity = 'https://www.google.com/accounts/o8/id';
+ header('Location: ' . $openid->authUrl());
+ }
+?>
+<form action="?login" method="post">
+ <button>Login with Google</button>
+</form>
+<?php
+ } elseif($openid->mode == 'cancel') {
+ echo 'User has canceled authentication!';
+ } else {
+ echo 'User ' . ($openid->validate() ? $openid->identity . ' has ' : 'has not ') . 'logged in.';
+ }
+} catch(ErrorException $e) {
+ echo $e->getMessage();
+}
diff --git a/library/openid/example.php b/library/openid/example.php
new file mode 100644
index 000000000..e4ab107fe
--- /dev/null
+++ b/library/openid/example.php
@@ -0,0 +1,23 @@
+<?php
+require 'openid.php';
+try {
+ # Change 'localhost' to your domain name.
+ $openid = new LightOpenID('localhost');
+ if(!$openid->mode) {
+ if(isset($_POST['openid_identifier'])) {
+ $openid->identity = $_POST['openid_identifier'];
+ header('Location: ' . $openid->authUrl());
+ }
+?>
+<form action="" method="post">
+ OpenID: <input type="text" name="openid_identifier" /> <button>Submit</button>
+</form>
+<?php
+ } elseif($openid->mode == 'cancel') {
+ echo 'User has canceled authentication!';
+ } else {
+ echo 'User ' . ($openid->validate() ? $openid->identity . ' has ' : 'has not ') . 'logged in.';
+ }
+} catch(ErrorException $e) {
+ echo $e->getMessage();
+}
diff --git a/library/openid.php b/library/openid/openid.php
index 3c58beb8a..00250c59d 100644
--- a/library/openid.php
+++ b/library/openid/openid.php
@@ -8,7 +8,7 @@
* Sign-on with OpenID is a two step process:
* Step one is authentication with the provider:
* <code>
- * $openid = new LightOpenID;
+ * $openid = new LightOpenID('my-host.example.org');
* $openid->identity = 'ID supplied by user';
* header('Location: ' . $openid->authUrl());
* </code>
@@ -16,15 +16,18 @@
* Step two is verification:
* <code>
* if ($this->data['openid_mode']) {
- * $openid = new LightOpenID;
+ * $openid = new LightOpenID('my-host.example.org');
* echo $openid->validate() ? 'Logged in.' : 'Failed';
* }
* </code>
*
+ * Change the 'my-host.example.org' to your domain name. Do NOT use $_SERVER['HTTP_HOST']
+ * for that, unless you know what you are doing.
+ *
* Optionally, you can set $returnUrl and $realm (or $trustRoot, which is an alias).
* The default values for those are:
* $openid->realm = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'];
- * $openid->returnUrl = $openid->realm . $_SERVER['REQUEST_URI']; # without the query part, if present
+ * $openid->returnUrl = $openid->realm . $_SERVER['REQUEST_URI'];
* If you don't know their meaning, refer to any openid tutorial, or specification. Or just guess.
*
* AX and SREG extensions are supported.
@@ -39,7 +42,7 @@
* To get the values, use $openid->getAttributes().
*
*
- * The library requires PHP >= 5.1.2 with curl or http/https stream wrappers enabled..
+ * The library requires PHP >= 5.1.2 with curl or http/https stream wrappers enabled.
* @author Mewp
* @copyright Copyright (c) 2010, Mewp
* @license http://www.opensource.org/licenses/mit-license.php MIT
@@ -49,11 +52,13 @@ class LightOpenID
public $returnUrl
, $required = array()
, $optional = array()
- , $verify_perr = null
- , $capath = null;
+ , $verify_peer = null
+ , $capath = null
+ , $cainfo = null
+ , $data;
private $identity, $claimed_id;
protected $server, $version, $trustRoot, $aliases, $identifier_select = false
- , $ax = false, $sreg = false, $data;
+ , $ax = false, $sreg = false, $setup_url = null;
static protected $ax_to_sreg = array(
'namePerson/friendly' => 'nickname',
'contact/email' => 'email',
@@ -66,14 +71,28 @@ class LightOpenID
'pref/timezone' => 'timezone',
);
- function __construct()
+ function __construct($host)
{
- $this->trustRoot = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'];
- $uri = $_SERVER['REQUEST_URI'];
- $uri = strpos($uri, '?') ? substr($uri, 0, strpos($uri, '?')) : $uri;
+ $this->trustRoot = (strpos($host, '://') ? $host : 'http://' . $host);
+ if ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off')
+ || (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])
+ && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
+ ) {
+ $this->trustRoot = (strpos($host, '://') ? $host : 'https://' . $host);
+ }
+
+ if(($host_end = strpos($this->trustRoot, '/', 8)) !== false) {
+ $this->trustRoot = substr($this->trustRoot, 0, $host_end);
+ }
+
+ $uri = rtrim(preg_replace('#((?<=\?)|&)openid\.[^&]+#', '', $_SERVER['REQUEST_URI']), '?');
$this->returnUrl = $this->trustRoot . $uri;
- $this->data = $_POST + $_GET; # OPs may send data as POST or GET.
+ $this->data = ($_SERVER['REQUEST_METHOD'] === 'POST') ? $_POST : $_GET;
+
+ if(!function_exists('curl_init') && !in_array('https', stream_get_wrappers())) {
+ throw new ErrorException('You must have either https wrappers or curl enabled.');
+ }
}
function __set($name, $value)
@@ -109,6 +128,8 @@ class LightOpenID
case 'trustRoot':
case 'realm':
return $this->trustRoot;
+ case 'mode':
+ return empty($this->data['openid_mode']) ? null : $this->data['openid_mode'];
}
}
@@ -143,11 +164,15 @@ class LightOpenID
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/xrds+xml, */*'));
- if($this->verify_perr !== null) {
+ if($this->verify_peer !== null) {
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, $this->verify_peer);
if($this->capath) {
curl_setopt($curl, CURLOPT_CAPATH, $this->capath);
}
+
+ if($this->cainfo) {
+ curl_setopt($curl, CURLOPT_CAINFO, $this->cainfo);
+ }
}
if ($method == 'POST') {
@@ -188,7 +213,7 @@ class LightOpenID
protected function request_streams($url, $method='GET', $params=array())
{
if(!$this->hostExists($url)) {
- throw new ErrorException('Invalid request.');
+ throw new ErrorException("Could not connect to $url.", 404);
}
$params = http_build_query($params, '', '&');
@@ -199,7 +224,9 @@ class LightOpenID
'method' => 'GET',
'header' => 'Accept: application/xrds+xml, */*',
'ignore_errors' => true,
- )
+ ), 'ssl' => array(
+ 'CN_match' => parse_url($url, PHP_URL_HOST),
+ ),
);
$url = $url . ($params ? '?' . $params : '');
break;
@@ -210,7 +237,9 @@ class LightOpenID
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $params,
'ignore_errors' => true,
- )
+ ), 'ssl' => array(
+ 'CN_match' => parse_url($url, PHP_URL_HOST),
+ ),
);
break;
case 'HEAD':
@@ -219,11 +248,15 @@ class LightOpenID
# we have to change the defaults.
$default = stream_context_get_options(stream_context_get_default());
stream_context_get_default(
- array('http' => array(
- 'method' => 'HEAD',
- 'header' => 'Accept: application/xrds+xml, */*',
- 'ignore_errors' => true,
- ))
+ array(
+ 'http' => array(
+ 'method' => 'HEAD',
+ 'header' => 'Accept: application/xrds+xml, */*',
+ 'ignore_errors' => true,
+ ), 'ssl' => array(
+ 'CN_match' => parse_url($url, PHP_URL_HOST),
+ ),
+ )
);
$url = $url . ($params ? '?' . $params : '');
@@ -263,10 +296,11 @@ class LightOpenID
}
if($this->verify_peer) {
- $opts += array('ssl' => array(
+ $opts['ssl'] += array(
'verify_peer' => true,
'capath' => $this->capath,
- ));
+ 'cafile' => $this->cainfo,
+ );
}
$context = stream_context_create ($opts);
@@ -276,7 +310,9 @@ class LightOpenID
protected function request($url, $method='GET', $params=array())
{
- if(function_exists('curl_init') && !ini_get('safe_mode') && (! strlen(ini_get('open_basedir')))) {
+ if (function_exists('curl_init')
+ && (!in_array('https', stream_get_wrappers()) || !ini_get('safe_mode') && !ini_get('open_basedir'))
+ ) {
return $this->request_curl($url, $method, $params);
}
return $this->request_streams($url, $method, $params);
@@ -297,7 +333,7 @@ class LightOpenID
. (empty($url['port'])?'':":{$url['port']}")
. (empty($url['path'])?'':$url['path'])
. (empty($url['query'])?'':"?{$url['query']}")
- . (empty($url['fragment'])?'':":{$url['fragment']}");
+ . (empty($url['fragment'])?'':"#{$url['fragment']}");
return $url;
}
@@ -342,84 +378,90 @@ class LightOpenID
$headers = $this->request($url, 'HEAD');
$next = false;
- if (isset($headers['x-xrds-location'])) {
- $url = $this->build_url(parse_url($url), parse_url(trim($headers['x-xrds-location'])));
- $next = true;
- }
+ if (isset($headers['x-xrds-location'])) {
+ $url = $this->build_url(parse_url($url), parse_url(trim($headers['x-xrds-location'])));
+ $next = true;
+ }
- if (isset($headers['content-type'])
- && ((strpos($headers['content-type'], 'application/xrds+xml') !== false
- ) || (strpos($headers['content-type'], 'text/xml') !== false))) {
- # Found an XRDS document, now let's find the server, and optionally delegate.
- $content = $this->request($url, 'GET');
-
- preg_match_all('#<Service.*?>(.*?)</Service>#s', $content, $m);
- foreach($m[1] as $content) {
- $content = ' ' . $content; # The space is added, so that strpos doesn't return 0.
-
- # OpenID 2
- $ns = preg_quote('http://specs.openid.net/auth/2.0/');
- if(preg_match('#<Type>\s*'.$ns.'(server|signon)\s*</Type>#s', $content, $type)) {
- if ($type[1] == 'server') $this->identifier_select = true;
-
- preg_match('#<URI.*?>(.*)</URI>#', $content, $server);
- preg_match('#<(Local|Canonical)ID>(.*)</\1ID>#', $content, $delegate);
- if (empty($server)) {
- return false;
- }
- # Does the server advertise support for either AX or SREG?
- $this->ax = (bool) strpos($content, '<Type>http://openid.net/srv/ax/1.0</Type>');
- $this->sreg = strpos($content, '<Type>http://openid.net/sreg/1.0</Type>')
- || strpos($content, '<Type>http://openid.net/extensions/sreg/1.1</Type>');
-
- $server = $server[1];
- if (isset($delegate[2])) $this->identity = trim($delegate[2]);
- $this->version = 2;
-logger('Server: ' . $server);
- $this->server = $server;
- return $server;
+ if (isset($headers['content-type'])
+ && (strpos($headers['content-type'], 'application/xrds+xml') !== false
+ || strpos($headers['content-type'], 'text/xml') !== false)
+ ) {
+ # Apparently, some providers return XRDS documents as text/html.
+ # While it is against the spec, allowing this here shouldn't break
+ # compatibility with anything.
+ # ---
+ # Found an XRDS document, now let's find the server, and optionally delegate.
+ $content = $this->request($url, 'GET');
+
+ preg_match_all('#<Service.*?>(.*?)</Service>#s', $content, $m);
+ foreach($m[1] as $content) {
+ $content = ' ' . $content; # The space is added, so that strpos doesn't return 0.
+
+ # OpenID 2
+ $ns = preg_quote('http://specs.openid.net/auth/2.0/');
+ if(preg_match('#<Type>\s*'.$ns.'(server|signon)\s*</Type>#s', $content, $type)) {
+ if ($type[1] == 'server') $this->identifier_select = true;
+
+ preg_match('#<URI.*?>(.*)</URI>#', $content, $server);
+ preg_match('#<(Local|Canonical)ID>(.*)</\1ID>#', $content, $delegate);
+ if (empty($server)) {
+ return false;
}
+ # Does the server advertise support for either AX or SREG?
+ $this->ax = (bool) strpos($content, '<Type>http://openid.net/srv/ax/1.0</Type>');
+ $this->sreg = strpos($content, '<Type>http://openid.net/sreg/1.0</Type>')
+ || strpos($content, '<Type>http://openid.net/extensions/sreg/1.1</Type>');
- # OpenID 1.1
- $ns = preg_quote('http://openid.net/signon/1.1');
- if (preg_match('#<Type>\s*'.$ns.'\s*</Type>#s', $content)) {
-
- preg_match('#<URI.*?>(.*)</URI>#', $content, $server);
- preg_match('#<.*?Delegate>(.*)</.*?Delegate>#', $content, $delegate);
- if (empty($server)) {
- return false;
- }
- # AX can be used only with OpenID 2.0, so checking only SREG
- $this->sreg = strpos($content, '<Type>http://openid.net/sreg/1.0</Type>')
- || strpos($content, '<Type>http://openid.net/extensions/sreg/1.1</Type>');
-
- $server = $server[1];
- if (isset($delegate[1])) $this->identity = $delegate[1];
- $this->version = 1;
-
- $this->server = $server;
- return $server;
- }
+ $server = $server[1];
+ if (isset($delegate[2])) $this->identity = trim($delegate[2]);
+ $this->version = 2;
+
+ $this->server = $server;
+ return $server;
}
- $next = true;
- $yadis = false;
- $url = $originalUrl;
- $content = null;
- break;
+ # OpenID 1.1
+ $ns = preg_quote('http://openid.net/signon/1.1');
+ if (preg_match('#<Type>\s*'.$ns.'\s*</Type>#s', $content)) {
+
+ preg_match('#<URI.*?>(.*)</URI>#', $content, $server);
+ preg_match('#<.*?Delegate>(.*)</.*?Delegate>#', $content, $delegate);
+ if (empty($server)) {
+ return false;
+ }
+ # AX can be used only with OpenID 2.0, so checking only SREG
+ $this->sreg = strpos($content, '<Type>http://openid.net/sreg/1.0</Type>')
+ || strpos($content, '<Type>http://openid.net/extensions/sreg/1.1</Type>');
+
+ $server = $server[1];
+ if (isset($delegate[1])) $this->identity = $delegate[1];
+ $this->version = 1;
+
+ $this->server = $server;
+ return $server;
+ }
}
+
+ $next = true;
+ $yadis = false;
+ $url = $originalUrl;
+ $content = null;
+ break;
+ }
if ($next) continue;
# There are no relevant information in headers, so we search the body.
$content = $this->request($url, 'GET');
- if ($location = $this->htmlTag($content, 'meta', 'http-equiv', 'X-XRDS-Location', 'content')) {
+ $location = $this->htmlTag($content, 'meta', 'http-equiv', 'X-XRDS-Location', 'content');
+ if ($location) {
$url = $this->build_url(parse_url($url), parse_url($location));
continue;
}
}
if (!$content) $content = $this->request($url, 'GET');
-logger('openid' . $content);
+
# At this point, the YADIS Discovery has failed, so we'll switch
# to openid2 HTML discovery, then fallback to openid 1.1 discovery.
$server = $this->htmlTag($content, 'link', 'rel', 'openid2.provider', 'href');
@@ -443,9 +485,9 @@ logger('openid' . $content);
return $server;
}
- throw new ErrorException('No servers found!');
+ throw new ErrorException("No OpenID Server found at $url", 404);
}
- throw new ErrorException('Endless redirection!');
+ throw new ErrorException('Endless redirection!', 500);
}
protected function sregParams()
@@ -514,7 +556,7 @@ logger('openid' . $content);
return $params;
}
- protected function authUrl_v1()
+ protected function authUrl_v1($immediate)
{
$returnUrl = $this->returnUrl;
# If we have an openid.delegate that is different from our claimed id,
@@ -526,7 +568,7 @@ logger('openid' . $content);
$params = array(
'openid.return_to' => $returnUrl,
- 'openid.mode' => 'checkid_setup',
+ 'openid.mode' => $immediate ? 'checkid_immediate' : 'checkid_setup',
'openid.identity' => $this->identity,
'openid.trust_root' => $this->trustRoot,
) + $this->sregParams();
@@ -535,11 +577,11 @@ logger('openid' . $content);
, array('query' => http_build_query($params, '', '&')));
}
- protected function authUrl_v2($identifier_select)
+ protected function authUrl_v2($immediate)
{
$params = array(
'openid.ns' => 'http://specs.openid.net/auth/2.0',
- 'openid.mode' => 'checkid_setup',
+ 'openid.mode' => $immediate ? 'checkid_immediate' : 'checkid_setup',
'openid.return_to' => $this->returnUrl,
'openid.realm' => $this->trustRoot,
);
@@ -555,7 +597,7 @@ logger('openid' . $content);
$params += $this->axParams() + $this->sregParams();
}
- if ($identifier_select) {
+ if ($this->identifier_select) {
$params['openid.identity'] = $params['openid.claimed_id']
= 'http://specs.openid.net/auth/2.0/identifier_select';
} else {
@@ -573,17 +615,15 @@ logger('openid' . $content);
* @param String $select_identifier Whether to request OP to select identity for an user in OpenID 2. Does not affect OpenID 1.
* @throws ErrorException
*/
- function authUrl($identifier_select = null)
+ function authUrl($immediate = false)
{
+ if ($this->setup_url && !$immediate) return $this->setup_url;
if (!$this->server) $this->discover($this->identity);
if ($this->version == 2) {
- if ($identifier_select === null) {
- return $this->authUrl_v2($this->identifier_select);
- }
- return $this->authUrl_v2($identifier_select);
+ return $this->authUrl_v2($immediate);
}
- return $this->authUrl_v1();
+ return $this->authUrl_v1($immediate);
}
/**
@@ -593,6 +633,18 @@ logger('openid' . $content);
*/
function validate()
{
+ # If the request was using immediate mode, a failure may be reported
+ # by presenting user_setup_url (for 1.1) or reporting
+ # mode 'setup_needed' (for 2.0). Also catching all modes other than
+ # id_res, in order to avoid throwing errors.
+ if(isset($this->data['openid_user_setup_url'])) {
+ $this->setup_url = $this->data['openid_user_setup_url'];
+ return false;
+ }
+ if($this->mode != 'id_res') {
+ return false;
+ }
+
$this->claimed_id = isset($this->data['openid_claimed_id'])?$this->data['openid_claimed_id']:$this->data['openid_identity'];
$params = array(
'openid.assoc_handle' => $this->data['openid_assoc_handle'],
@@ -605,7 +657,9 @@ logger('openid' . $content);
# Even though we should know location of the endpoint,
# we still need to verify it by discovery, so $server is not set here
$params['openid.ns'] = 'http://specs.openid.net/auth/2.0';
- } elseif(isset($this->data['openid_claimed_id'])) {
+ } elseif (isset($this->data['openid_claimed_id'])
+ && $this->data['openid_claimed_id'] != $this->data['openid_identity']
+ ) {
# If it's an OpenID 1 provider, and we've got claimed_id,
# we have to append it to the returnUrl, like authUrl_v1 does.
$this->returnUrl .= (strpos($this->returnUrl, '?') ? '&' : '?')
@@ -665,8 +719,8 @@ logger('openid' . $content);
}
$attributes = array();
- foreach ($this->data as $key => $value) {
- $keyMatch = 'openid_' . $alias . '_value_';
+ foreach (explode(',', $this->data['openid_signed']) as $key) {
+ $keyMatch = $alias . '.value.';
if (substr($key, 0, strlen($keyMatch)) != $keyMatch) {
continue;
}
@@ -677,8 +731,10 @@ logger('openid' . $content);
# to check, than cause an E_NOTICE.
continue;
}
+ $value = $this->data['openid_' . $alias . '_value_' . $key];
$key = substr($this->data['openid_' . $alias . '_type_' . $key],
strlen('http://axschema.org/'));
+
$attributes[$key] = $value;
}
return $attributes;
@@ -688,8 +744,8 @@ logger('openid' . $content);
{
$attributes = array();
$sreg_to_ax = array_flip(self::$ax_to_sreg);
- foreach ($this->data as $key => $value) {
- $keyMatch = 'openid_sreg_';
+ foreach (explode(',', $this->data['openid_signed']) as $key) {
+ $keyMatch = 'sreg.';
if (substr($key, 0, strlen($keyMatch)) != $keyMatch) {
continue;
}
@@ -698,7 +754,7 @@ logger('openid' . $content);
# The field name isn't part of the SREG spec, so we ignore it.
continue;
}
- $attributes[$sreg_to_ax[$key]] = $value;
+ $attributes[$sreg_to_ax[$key]] = $this->data['openid_sreg_' . $key];
}
return $attributes;
}
diff --git a/library/openid/provider/example-mysql.php b/library/openid/provider/example-mysql.php
new file mode 100644
index 000000000..574e3c811
--- /dev/null
+++ b/library/openid/provider/example-mysql.php
@@ -0,0 +1,194 @@
+<?php
+/**
+ * This example shows several things:
+ * - How a setup interface should look like.
+ * - How to use a mysql table for authentication
+ * - How to store associations in mysql table, instead of php sessions.
+ * - How to store realm authorizations.
+ * - How to send AX/SREG parameters.
+ * For the example to work, you need to create the necessary tables:
+CREATE TABLE Users (
+ id INT NOT NULL auto_increment PRIMARY KEY,
+ login VARCHAR(32) NOT NULL,
+ password CHAR(40) NOT NULL,
+ firstName VARCHAR(32) NOT NULL,
+ lastName VARCHAR(32) NOT NULL
+);
+
+CREATE TABLE AllowedSites (
+ user INT NOT NULL,
+ realm TEXT NOT NULL,
+ attributes TEXT NOT NULL,
+ INDEX(user)
+);
+
+CREATE TABLE Associations (
+ id INT NOT NULL PRIMARY KEY,
+ data TEXT NOT NULL
+);
+ *
+ * This is only an example. Don't use it in your code as-is.
+ * It has several security flaws, which you shouldn't copy (like storing plaintext login and password in forms).
+ *
+ * This setup could be very easily flooded with many associations,
+ * since non-private ones aren't automatically deleted.
+ * You could prevent this by storing a date of association and removing old ones,
+ * or by setting $this->dh = false;
+ * However, the latter one would disable stateful mode, unless connecting via HTTPS.
+ */
+require 'provider.php';
+
+mysql_connect();
+mysql_select_db('test');
+
+function getUserData($handle=null)
+{
+ if(isset($_POST['login'],$_POST['password'])) {
+ $login = mysql_real_escape_string($_POST['login']);
+ $password = sha1($_POST['password']);
+ $q = mysql_query("SELECT * FROM Users WHERE login = '$login' AND password = '$password'");
+ if($data = mysql_fetch_assoc($q)) {
+ return $data;
+ }
+ if($handle) {
+ echo 'Wrong login/password.';
+ }
+ }
+ if($handle) {
+ ?>
+ <form action="" method="post">
+ <input type="hidden" name="openid.assoc_handle" value="<?php echo $handle?>">
+ Login: <input type="text" name="login"><br>
+ Password: <input type="password" name="password"><br>
+ <button>Submit</button>
+ </form>
+ <?php
+ die();
+ }
+}
+
+class MysqlProvider extends LightOpenIDProvider
+{
+ private $attrMap = array(
+ 'namePerson/first' => 'First name',
+ 'namePerson/last' => 'Last name',
+ 'namePerson/friendly' => 'Nickname (login)'
+ );
+
+ private $attrFieldMap = array(
+ 'namePerson/first' => 'firstName',
+ 'namePerson/last' => 'lastName',
+ 'namePerson/friendly' => 'login'
+ );
+
+ function setup($identity, $realm, $assoc_handle, $attributes)
+ {
+ $data = getUserData($assoc_handle);
+ echo '<form action="" method="post">'
+ . '<input type="hidden" name="openid.assoc_handle" value="' . $assoc_handle . '">'
+ . '<input type="hidden" name="login" value="' . $_POST['login'] .'">'
+ . '<input type="hidden" name="password" value="' . $_POST['password'] .'">'
+ . "<b>$realm</b> wishes to authenticate you.";
+ if($attributes['required'] || $attributes['optional']) {
+ echo " It also requests following information (required fields marked with *):"
+ . '<ul>';
+
+ foreach($attributes['required'] as $attr) {
+ if(isset($this->attrMap[$attr])) {
+ echo '<li>'
+ . '<input type="checkbox" name="attributes[' . $attr . ']"> '
+ . $this->attrMap[$attr] . '(*)</li>';
+ }
+ }
+
+ foreach($attributes['optional'] as $attr) {
+ if(isset($this->attrMap[$attr])) {
+ echo '<li>'
+ . '<input type="checkbox" name="attributes[' . $attr . ']"> '
+ . $this->attrMap[$attr] . '</li>';
+ }
+ }
+ echo '</ul>';
+ }
+ echo '<br>'
+ . '<button name="once">Allow once</button> '
+ . '<button name="always">Always allow</button> '
+ . '<button name="cancel">cancel</button> '
+ . '</form>';
+ }
+
+ function checkid($realm, &$attributes)
+ {
+ if(isset($_POST['cancel'])) {
+ $this->cancel();
+ }
+
+ $data = getUserData();
+ if(!$data) {
+ return false;
+ }
+ $realm = mysql_real_escape_string($realm);
+ $q = mysql_query("SELECT attributes FROM AllowedSites WHERE user = '{$data['id']}' AND realm = '$realm'");
+
+ $attrs = array();
+ if($attrs = mysql_fetch_row($q)) {
+ $attrs = explode(',', $attributes[0]);
+ } elseif(isset($_POST['attributes'])) {
+ $attrs = array_keys($_POST['attributes']);
+ } elseif(!isset($_POST['once']) && !isset($_POST['always'])) {
+ return false;
+ }
+
+ $attributes = array();
+ foreach($attrs as $attr) {
+ if(isset($this->attrFieldMap[$attr])) {
+ $attributes[$attr] = $data[$this->attrFieldMap[$attr]];
+ }
+ }
+
+ if(isset($_POST['always'])) {
+ $attrs = mysql_real_escape_string(implode(',', array_keys($attributes)));
+ mysql_query("REPLACE INTO AllowedSites VALUES('{$data['id']}', '$realm', '$attrs')");
+ }
+
+ return $this->serverLocation . '?' . $data['login'];
+ }
+
+ function assoc_handle()
+ {
+ # We generate an integer assoc handle, because it's just faster to look up an integer later.
+ $q = mysql_query("SELECT MAX(id) FROM Associations");
+ $result = mysql_fetch_row($q);
+ return $q[0]+1;
+ }
+
+ function setAssoc($handle, $data)
+ {
+ $data = mysql_real_escape_string(serialize($data));
+ mysql_query("REPLACE INTO Associations VALUES('$handle', '$data')");
+ }
+
+ function getAssoc($handle)
+ {
+ if(!is_numeric($handle)) {
+ return false;
+ }
+ $q = mysql_query("SELECT data FROM Associations WHERE id = '$handle'");
+ $data = mysql_fetch_row($q);
+ if(!$data) {
+ return false;
+ }
+ return unserialize($data[0]);
+ }
+
+ function delAssoc($handle)
+ {
+ if(!is_numeric($handle)) {
+ return false;
+ }
+ mysql_query("DELETE FROM Associations WHERE id = '$handle'");
+ }
+
+}
+$op = new MysqlProvider;
+$op->server();
diff --git a/library/openid/provider/example.php b/library/openid/provider/example.php
new file mode 100644
index 000000000..b8a4c24a9
--- /dev/null
+++ b/library/openid/provider/example.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * This example shows how to create a basic provider usin HTTP Authentication.
+ * This is only an example. You shouldn't use it as-is in your code.
+ */
+require 'provider.php';
+
+class BasicProvider extends LightOpenIDProvider
+{
+ public $select_id = true;
+ public $login = '';
+ public $password = '';
+
+ function __construct()
+ {
+ parent::__construct();
+
+ # If we use select_id, we must disable it for identity pages,
+ # so that an RP can discover it and get proper data (i.e. without select_id)
+ if(isset($_GET['id'])) {
+ $this->select_id = false;
+ }
+ }
+
+ function setup($identity, $realm, $assoc_handle, $attributes)
+ {
+ header('WWW-Authenticate: Basic realm="' . $this->data['openid_realm'] . '"');
+ header('HTTP/1.0 401 Unauthorized');
+ }
+
+ function checkid($realm, &$attributes)
+ {
+ if(!isset($_SERVER['PHP_AUTH_USER'])) {
+ return false;
+ }
+
+ if ($_SERVER['PHP_AUTH_USER'] == $this->login
+ && $_SERVER['PHP_AUTH_PW'] == $this->password
+ ) {
+ # Returning identity
+ # It can be any url that leads here, or to any other place that hosts
+ # an XRDS document pointing here.
+ return $this->serverLocation . '?id=' . $this->login;
+ }
+
+ return false;
+ }
+
+}
+$op = new BasicProvider;
+$op->login = 'test';
+$op->password = 'test';
+$op->server();
diff --git a/library/openid/provider/provider.php b/library/openid/provider/provider.php
new file mode 100644
index 000000000..03fbe1c81
--- /dev/null
+++ b/library/openid/provider/provider.php
@@ -0,0 +1,845 @@
+<?php
+/**
+ * Using this class, you can easily set up an OpenID Provider.
+ * It's independent of LightOpenID class.
+ * It requires either GMP or BCMath for session encryption,
+ * but will work without them (although either via SSL, or in stateless mode only).
+ * Also, it requires PHP >= 5.1.2
+ *
+ * This is an alpha version, using it in production code is not recommended,
+ * until you are *sure* that it works and is secure.
+ *
+ * Please send me messages about your testing results
+ * (even if successful, so I know that it has been tested).
+ * Also, if you think there's a way to make it easier to use, tell me -- it's an alpha for a reason.
+ * Same thing applies to bugs in code, suggestions,
+ * and everything else you'd like to say about the library.
+ *
+ * There's no usage documentation here, see the examples.
+ *
+ * @author Mewp
+ * @copyright Copyright (c) 2010, Mewp
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ */
+ini_set('error_log','log');
+abstract class LightOpenIDProvider
+{
+ # URL-s to XRDS and server location.
+ public $xrdsLocation, $serverLocation;
+
+ # Should we operate in server, or signon mode?
+ public $select_id = false;
+
+ # Lifetime of an association.
+ protected $assoc_lifetime = 600;
+
+ # Variables below are either set automatically, or are constant.
+ # -----
+ # Can we support DH?
+ protected $dh = true;
+ protected $ns = 'http://specs.openid.net/auth/2.0';
+ protected $data, $assoc;
+
+ # Default DH parameters as defined in the specification.
+ protected $default_modulus;
+ protected $default_gen = 'Ag==';
+
+ # AX <-> SREG transform
+ protected $ax_to_sreg = array(
+ 'namePerson/friendly' => 'nickname',
+ 'contact/email' => 'email',
+ 'namePerson' => 'fullname',
+ 'birthDate' => 'dob',
+ 'person/gender' => 'gender',
+ 'contact/postalCode/home' => 'postcode',
+ 'contact/country/home' => 'country',
+ 'pref/language' => 'language',
+ 'pref/timezone' => 'timezone',
+ );
+
+ # Math
+ private $add, $mul, $pow, $mod, $div, $powmod;
+ # -----
+
+ # ------------------------------------------------------------------------ #
+ # Functions you probably want to implement when extending the class.
+
+ /**
+ * Checks whether an user is authenticated.
+ * The function should determine what fields it wants to send to the RP,
+ * and put them in the $attributes array.
+ * @param Array $attributes
+ * @param String $realm Realm used for authentication.
+ * @return String OP-local identifier of an authenticated user, or an empty value.
+ */
+ abstract function checkid($realm, &$attributes);
+
+ /**
+ * Displays an user interface for inputting user's login and password.
+ * Attributes are always AX field namespaces, with stripped host part.
+ * For example, the $attributes array may be:
+ * array( 'required' => array('namePerson/friendly', 'contact/email'),
+ * 'optional' => array('pref/timezone', 'pref/language')
+ * @param String $identity Discovered identity string. May be used to extract login, unless using $this->select_id
+ * @param String $realm Realm used for authentication.
+ * @param String Association handle. must be sent as openid.assoc_handle in $_GET or $_POST in subsequent requests.
+ * @param Array User attributes requested by the RP.
+ */
+ abstract function setup($identity, $realm, $assoc_handle, $attributes);
+
+ /**
+ * Stores an association.
+ * If you want to use php sessions in your provider code, you have to replace it.
+ * @param String $handle Association handle -- should be used as a key.
+ * @param Array $assoc Association data.
+ */
+ protected function setAssoc($handle, $assoc)
+ {
+ $oldSession = session_id();
+ session_commit();
+ session_id($assoc['handle']);
+ session_start();
+ $_SESSION['assoc'] = $assoc;
+ session_commit();
+ if($oldSession) {
+ session_id($oldSession);
+ session_start();
+ }
+ }
+
+ /**
+ * Retreives association data.
+ * If you want to use php sessions in your provider code, you have to replace it.
+ * @param String $handle Association handle.
+ * @return Array Association data.
+ */
+ protected function getAssoc($handle)
+ {
+ $oldSession = session_id();
+ session_commit();
+ session_id($handle);
+ session_start();
+ if(empty($_SESSION['assoc'])) {
+ return null;
+ }
+ return $_SESSION['assoc'];
+ session_commit();
+ if($oldSession) {
+ session_id($oldSession);
+ session_start();
+ }
+ }
+
+ /**
+ * Deletes an association.
+ * If you want to use php sessions in your provider code, you have to replace it.
+ * @param String $handle Association handle.
+ */
+ protected function delAssoc($handle)
+ {
+ $oldSession = session_id();
+ session_commit();
+ session_id($handle);
+ session_start();
+ session_destroy();
+ if($oldSession) {
+ session_id($oldSession);
+ session_start();
+ }
+ }
+
+ # ------------------------------------------------------------------------ #
+ # Functions that you might want to implement.
+
+ /**
+ * Redirects the user to an url.
+ * @param String $location The url that the user will be redirected to.
+ */
+ protected function redirect($location)
+ {
+ header('Location: ' . $location);
+ die();
+ }
+
+ /**
+ * Generates a new association handle.
+ * @return string
+ */
+ protected function assoc_handle()
+ {
+ return sha1(microtime());
+ }
+
+ /**
+ * Generates a random shared secret.
+ * @return string
+ */
+ protected function shared_secret($hash)
+ {
+ $length = 20;
+ if($hash == 'sha256') {
+ $length = 256;
+ }
+
+ $secret = '';
+ for($i = 0; $i < $length; $i++) {
+ $secret .= mt_rand(0,255);
+ }
+
+ return $secret;
+ }
+
+ /**
+ * Generates a private key.
+ * @param int $length Length of the key.
+ */
+ protected function keygen($length)
+ {
+ $key = '';
+ for($i = 1; $i < $length; $i++) {
+ $key .= mt_rand(0,9);
+ }
+ $key .= mt_rand(1,9);
+
+ return $key;
+ }
+
+ # ------------------------------------------------------------------------ #
+ # Functions that you probably shouldn't touch.
+
+ function __construct()
+ {
+ $this->default_modulus =
+ 'ANz5OguIOXLsDhmYmsWizjEOHTdxfo2Vcbt2I3MYZuYe91ouJ4mLBX+YkcLiemOcPy'
+ . 'm2CBRYHNOyyjmG0mg3BVd9RcLn5S3IHHoXGHblzqdLFEi/368Ygo79JRnxTkXjgmY0'
+ . 'rxlJ5bU1zIKaSDuKdiI+XUkKJX8Fvf8W8vsixYOr';
+
+ $location = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://'
+ . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
+ $location = preg_replace('/\?.*/','',$location);
+ $this->serverLocation = $location;
+ $location .= (strpos($location, '?') ? '&' : '?') . 'xrds';
+ $this->xrdsLocation = $location;
+
+ $this->data = $_GET + $_POST;
+
+ # We choose GMP if avaiable, and bcmath otherwise
+ if(function_exists('gmp_add')) {
+ $this->add = 'gmp_add';
+ $this->mul = 'gmp_mul';
+ $this->pow = 'gmp_pow';
+ $this->mod = 'gmp_mod';
+ $this->div = 'gmp_div';
+ $this->powmod = 'gmp_powm';
+ } elseif(function_exists('bcadd')) {
+ $this->add = 'bcadd';
+ $this->mul = 'bcmul';
+ $this->pow = 'bcpow';
+ $this->mod = 'bcmod';
+ $this->div = 'bcdiv';
+ $this->powmod = 'bcpowmod';
+ } else {
+ # If neither are avaiable, we can't use DH
+ $this->dh = false;
+ }
+
+ # However, we do require the hash functions.
+ # They should be built-in anyway.
+ if(!function_exists('hash_algos')) {
+ $this->dh = false;
+ }
+ }
+
+ /**
+ * Displays an XRDS document, or redirects to it.
+ * By default, it detects whether it should display or redirect automatically.
+ * @param bool|null $force When true, always display the document, when false always redirect.
+ */
+ function xrds($force=null)
+ {
+ if($force) {
+ echo $this->xrdsContent();
+ die();
+ } elseif($force === false) {
+ header('X-XRDS-Location: '. $this->xrdsLocation);
+ return;
+ }
+
+ if (isset($_GET['xrds'])
+ || (isset($_SERVER['HTTP_ACCEPT']) && strpos($_SERVER['HTTP_ACCEPT'], 'application/xrds+xml') !== false)
+ ) {
+ header('Content-Type: application/xrds+xml');
+ echo $this->xrdsContent();
+ die();
+ }
+
+ header('X-XRDS-Location: ' . $this->xrdsLocation);
+ }
+
+ /**
+ * Returns the content of the XRDS document
+ * @return String The XRDS document.
+ */
+ protected function xrdsContent()
+ {
+ $lines = array(
+ '<?xml version="1.0" encoding="UTF-8"?>',
+ '<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)">',
+ '<XRD>',
+ ' <Service>',
+ ' <Type>' . $this->ns . '/' . ($this->select_id ? 'server' : 'signon') .'</Type>',
+ ' <URI>' . $this->serverLocation . '</URI>',
+ ' </Service>',
+ '</XRD>',
+ '</xrds:XRDS>'
+ );
+ return implode("\n", $lines);
+ }
+
+ /**
+ * Does everything that a provider has to -- in one function.
+ */
+ function server()
+ {
+ if(isset($this->data['openid_assoc_handle'])) {
+ $this->assoc = $this->getAssoc($this->data['openid_assoc_handle']);
+ if(isset($this->assoc['data'])) {
+ # We have additional data stored for setup.
+ $this->data += $this->assoc['data'];
+ unset($this->assoc['data']);
+ }
+ }
+
+ if (isset($this->data['openid_ns'])
+ && $this->data['openid_ns'] == $this->ns
+ ) {
+ if(!isset($this->data['openid_mode'])) $this->errorResponse();
+
+ switch($this->data['openid_mode'])
+ {
+ case 'checkid_immediate':
+ case 'checkid_setup':
+ $this->checkRealm();
+ # We support AX xor SREG.
+ $attributes = $this->ax();
+ if(!$attributes) {
+ $attributes = $this->sreg();
+ }
+
+ # Even if some user is authenticated, we need to know if it's
+ # the same one that want's to authenticate.
+ # Of course, if we use select_id, we accept any user.
+ if (($identity = $this->checkid($this->data['openid_realm'], $attrValues))
+ && ($this->select_id || $identity == $this->data['openid_identity'])
+ ) {
+ $this->positiveResponse($identity, $attrValues);
+ } elseif($this->data['openid_mode'] == 'checkid_immediate') {
+ $this->redirect($this->response(array('openid.mode' => 'setup_needed')));
+ } else {
+ if(!$this->assoc) {
+ $this->generateAssociation();
+ $this->assoc['private'] = true;
+ }
+ $this->assoc['data'] = $this->data;
+ $this->setAssoc($this->assoc['handle'], $this->assoc);
+ $this->setup($this->data['openid_identity'],
+ $this->data['openid_realm'],
+ $this->assoc['handle'],
+ $attributes);
+ }
+ break;
+ case 'associate':
+ $this->associate();
+ break;
+ case 'check_authentication':
+ $this->checkRealm();
+ if($this->verify()) {
+ echo "ns:$this->ns\nis_valid:true";
+ if(strpos($this->data['openid_signed'],'invalidate_handle') !== false) {
+ echo "\ninvalidate_handle:" . $this->data['openid_invalidate_handle'];
+ }
+ } else {
+ echo "ns:$this->ns\nis_valid:false";
+ }
+ die();
+ break;
+ default:
+ $this->errorResponse();
+ }
+ } else {
+ $this->xrds();
+ }
+ }
+
+ protected function checkRealm()
+ {
+ if (!isset($this->data['openid_return_to'], $this->data['openid_realm'])) {
+ $this->errorResponse();
+ }
+
+ $realm = str_replace('\*', '[^/]', preg_quote($this->data['openid_realm']));
+ if(!preg_match("#^$realm#", $this->data['openid_return_to'])) {
+ $this->errorResponse();
+ }
+ }
+
+ protected function ax()
+ {
+ # Namespace prefix that the fields must have.
+ $ns = 'http://axschema.org/';
+
+ # First, we must find out what alias is used for AX.
+ # Let's check the most likely one
+ $alias = null;
+ if (isset($this->data['openid_ns_ax'])
+ && $this->data['openid_ns_ax'] == 'http://openid.net/srv/ax/1.0'
+ ) {
+ $alias = 'ax';
+ } else {
+ foreach($this->data as $name => $value) {
+ if ($value == 'http://openid.net/srv/ax/1.0'
+ && preg_match('/openid_ns_(.+)/', $name, $m)
+ ) {
+ $alias = $m[1];
+ break;
+ }
+ }
+ }
+
+ if(!$alias) {
+ return null;
+ }
+
+ $fields = array();
+ # Now, we must search again, this time for field aliases
+ foreach($this->data as $name => $value) {
+ if (strpos($name, 'openid_' . $alias . '_type') === false
+ || strpos($value, $ns) === false) {
+ continue;
+ }
+
+ $name = substr($name, strlen('openid_' . $alias . '_type_'));
+ $value = substr($value, strlen($ns));
+
+ $fields[$name] = $value;
+ }
+
+ # Then, we find out what fields are required and optional
+ $required = array();
+ $if_available = array();
+ foreach(array('required','if_available') as $type) {
+ if(empty($this->data["openid_{$alias}_{$type}"])) {
+ continue;
+ }
+ $attributes = explode(',', $this->data["openid_{$alias}_{$type}"]);
+ foreach($attributes as $attr) {
+ if(empty($fields[$attr])) {
+ # There is an undefined field here, so we ignore it.
+ continue;
+ }
+
+ ${$type}[] = $fields[$attr];
+ }
+ }
+
+ $this->data['ax'] = true;
+ return array('required' => $required, 'optional' => $if_available);
+ }
+
+ protected function sreg()
+ {
+ $sreg_to_ax = array_flip($this->ax_to_sreg);
+
+ $attributes = array('required' => array(), 'optional' => array());
+
+ if (empty($this->data['openid_sreg_required'])
+ && empty($this->data['openid_sreg_optional'])
+ ) {
+ return $attributes;
+ }
+
+ foreach(array('required', 'optional') as $type) {
+ foreach(explode(',',$this->data['openid_sreg_' . $type]) as $attr) {
+ if(empty($sreg_to_ax[$attr])) {
+ # Undefined attribute in SREG request.
+ # Shouldn't happen, but we check anyway.
+ continue;
+ }
+
+ $attributes[$type][] = $sreg_to_ax[$attr];
+ }
+ }
+
+ return $attributes;
+ }
+
+ /**
+ * Aids an RP in assertion verification.
+ * @return bool Information whether the verification suceeded.
+ */
+ protected function verify()
+ {
+ # Firstly, we need to make sure that there's an association.
+ # Otherwise the verification will fail,
+ # because we've signed assoc_handle in the assertion
+ if(empty($this->assoc)) {
+ return false;
+ }
+
+ # Next, we check that it's a private association,
+ # i.e. one made without RP input.
+ # Otherwise, the RP shouldn't ask us to verify.
+ if(empty($this->assoc['private'])) {
+ return false;
+ }
+
+ # Now we have to check if the nonce is correct, to prevent replay attacks.
+ if($this->data['openid_response_nonce'] != $this->assoc['nonce']) {
+ return false;
+ }
+
+ # Getting the signed fields for signature.
+ $sig = array();
+ $signed = explode(',', $this->data['openid_signed']);
+ foreach($signed as $field) {
+ $name = strtr($field, '.', '_');
+ if(!isset($this->data['openid_' . $name])) {
+ return false;
+ }
+
+ $sig[$field] = $this->data['openid_' . $name];
+ }
+
+ # Computing the signature and checking if it matches.
+ $sig = $this->keyValueForm($sig);
+ if ($this->data['openid_sig'] !=
+ base64_encode(hash_hmac($this->assoc['hash'], $sig, $this->assoc['mac'], true))
+ ) {
+ return false;
+ }
+
+ # Clearing the nonce, so that it won't be used again.
+ $this->assoc['nonce'] = null;
+
+ if(empty($this->assoc['private'])) {
+ # Commiting changes to the association.
+ $this->setAssoc($this->assoc['handle'], $this->assoc);
+ } else {
+ # Private associations shouldn't be used again, se we can as well delete them.
+ $this->delAssoc($this->assoc['handle']);
+ }
+
+ # Nothing has failed, so the verification was a success.
+ return true;
+ }
+
+ /**
+ * Performs association with an RP.
+ */
+ protected function associate()
+ {
+ # Rejecting no-encryption without TLS.
+ if(empty($_SERVER['HTTPS']) && $this->data['openid_session_type'] == 'no-encryption') {
+ $this->directErrorResponse();
+ }
+
+ # Checking whether we support DH at all.
+ if (!$this->dh && substr($this->data['openid_session_type'], 0, 2) == 'DH') {
+ $this->redirect($this->response(array(
+ 'openid.error' => 'DH not supported',
+ 'openid.error_code' => 'unsupported-type',
+ 'openid.session_type' => 'no-encryption'
+ )));
+ }
+
+ # Creating the association
+ $this->assoc = array();
+ $this->assoc['hash'] = $this->data['openid_assoc_type'] == 'HMAC-SHA256' ? 'sha256' : 'sha1';
+ $this->assoc['handle'] = $this->assoc_handle();
+
+ # Getting the shared secret
+ if($this->data['openid_session_type'] == 'no-encryption') {
+ $this->assoc['mac'] = base64_encode($this->shared_secret($this->assoc['hash']));
+ } else {
+ $this->dh();
+ }
+
+ # Preparing the direct response...
+ $response = array(
+ 'ns' => $this->ns,
+ 'assoc_handle' => $this->assoc['handle'],
+ 'assoc_type' => $this->data['openid_assoc_type'],
+ 'session_type' => $this->data['openid_session_type'],
+ 'expires_in' => $this->assoc_lifetime
+ );
+
+ if(isset($this->assoc['dh_server_public'])) {
+ $response['dh_server_public'] = $this->assoc['dh_server_public'];
+ $response['enc_mac_key'] = $this->assoc['mac'];
+ } else {
+ $response['mac_key'] = $this->assoc['mac'];
+ }
+
+ # ...and sending it.
+ echo $this->keyValueForm($response);
+ die();
+ }
+
+ /**
+ * Creates a private association.
+ */
+ protected function generateAssociation()
+ {
+ $this->assoc = array();
+ # We use sha1 by default.
+ $this->assoc['hash'] = 'sha1';
+ $this->assoc['mac'] = $this->shared_secret('sha1');
+ $this->assoc['handle'] = $this->assoc_handle();
+ }
+
+ /**
+ * Encrypts the MAC key using DH key exchange.
+ */
+ protected function dh()
+ {
+ if(empty($this->data['openid_dh_modulus'])) {
+ $this->data['openid_dh_modulus'] = $this->default_modulus;
+ }
+
+ if(empty($this->data['openid_dh_gen'])) {
+ $this->data['openid_dh_gen'] = $this->default_gen;
+ }
+
+ if(empty($this->data['openid_dh_consumer_public'])) {
+ $this->directErrorResponse();
+ }
+
+ $modulus = $this->b64dec($this->data['openid_dh_modulus']);
+ $gen = $this->b64dec($this->data['openid_dh_gen']);
+ $consumerKey = $this->b64dec($this->data['openid_dh_consumer_public']);
+
+ $privateKey = $this->keygen(strlen($modulus));
+ $publicKey = $this->powmod($gen, $privateKey, $modulus);
+ $ss = $this->powmod($consumerKey, $privateKey, $modulus);
+
+ $mac = $this->x_or(hash($this->assoc['hash'], $ss, true), $this->shared_secret($this->assoc['hash']));
+ $this->assoc['dh_server_public'] = $this->decb64($publicKey);
+ $this->assoc['mac'] = base64_encode($mac);
+ }
+
+ /**
+ * XORs two strings.
+ * @param String $a
+ * @param String $b
+ * @return String $a ^ $b
+ */
+ protected function x_or($a, $b)
+ {
+ $length = strlen($a);
+ for($i = 0; $i < $length; $i++) {
+ $a[$i] = $a[$i] ^ $b[$i];
+ }
+
+ return $a;
+ }
+
+ /**
+ * Prepares an indirect response url.
+ * @param array $params Parameters to be sent.
+ */
+ protected function response($params)
+ {
+ $params += array('openid.ns' => $this->ns);
+ return $this->data['openid_return_to']
+ . (strpos($this->data['openid_return_to'],'?') ? '&' : '?')
+ . http_build_query($params, '', '&');
+ }
+
+ /**
+ * Outputs a direct error.
+ */
+ protected function errorResponse()
+ {
+ if(!empty($this->data['openid_return_to'])) {
+ $response = array(
+ 'openid.mode' => 'error',
+ 'openid.error' => 'Invalid request'
+ );
+ $this->redirect($this->response($response));
+ } else {
+ header('HTTP/1.1 400 Bad Request');
+ $response = array(
+ 'ns' => $this->ns,
+ 'error' => 'Invalid request'
+ );
+ echo $this->keyValueForm($response);
+ }
+ die();
+ }
+
+ /**
+ * Sends an positive assertion.
+ * @param String $identity the OP-Local Identifier that is being authenticated.
+ * @param Array $attributes User attributes to be sent.
+ */
+ protected function positiveResponse($identity, $attributes)
+ {
+ # We generate a private association if there is none established.
+ if(!$this->assoc) {
+ $this->generateAssociation();
+ $this->assoc['private'] = true;
+ }
+
+ # We set openid.identity (and openid.claimed_id if necessary) to our $identity
+ if($this->data['openid_identity'] == $this->data['openid_claimed_id'] || $this->select_id) {
+ $this->data['openid_claimed_id'] = $identity;
+ }
+ $this->data['openid_identity'] = $identity;
+
+ # Preparing fields to be signed
+ $params = array(
+ 'op_endpoint' => $this->serverLocation,
+ 'claimed_id' => $this->data['openid_claimed_id'],
+ 'identity' => $this->data['openid_identity'],
+ 'return_to' => $this->data['openid_return_to'],
+ 'realm' => $this->data['openid_realm'],
+ 'response_nonce' => gmdate("Y-m-d\TH:i:s\Z"),
+ 'assoc_handle' => $this->assoc['handle'],
+ );
+
+ $params += $this->responseAttributes($attributes);
+
+ # Has the RP used an invalid association handle?
+ if (isset($this->data['openid_assoc_handle'])
+ && $this->data['openid_assoc_handle'] != $this->assoc['handle']
+ ) {
+ $params['invalidate_handle'] = $this->data['openid_assoc_handle'];
+ }
+
+ # Signing the $params
+ $sig = hash_hmac($this->assoc['hash'], $this->keyValueForm($params), $this->assoc['mac'], true);
+ $req = array(
+ 'openid.mode' => 'id_res',
+ 'openid.signed' => implode(',', array_keys($params)),
+ 'openid.sig' => base64_encode($sig),
+ );
+
+ # Saving the nonce and commiting the association.
+ $this->assoc['nonce'] = $params['response_nonce'];
+ $this->setAssoc($this->assoc['handle'], $this->assoc);
+
+ # Preparing and sending the response itself
+ foreach($params as $name => $value) {
+ $req['openid.' . $name] = $value;
+ }
+
+ $this->redirect($this->response($req));
+ }
+
+ /**
+ * Prepares an array of attributes to send
+ */
+ protected function responseAttributes($attributes)
+ {
+ if(!$attributes) return array();
+
+ $ns = 'http://axschema.org/';
+
+ $response = array();
+ if(isset($this->data['ax'])) {
+ $response['ns.ax'] = 'http://openid.net/srv/ax/1.0';
+ foreach($attributes as $name => $value) {
+ $alias = strtr($name, '/', '_');
+ $response['ax.type.' . $alias] = $ns . $name;
+ $response['ax.value.' . $alias] = $value;
+ }
+ return $response;
+ }
+
+ foreach($attributes as $name => $value) {
+ if(!isset($this->ax_to_sreg[$name])) {
+ continue;
+ }
+
+ $response['sreg.' . $this->ax_to_sreg[$name]] = $value;
+ }
+ return $response;
+ }
+
+ /**
+ * Encodes fields in key-value form.
+ * @param Array $params Fields to be encoded.
+ * @return String $params in key-value form.
+ */
+ protected function keyValueForm($params)
+ {
+ $str = '';
+ foreach($params as $name => $value) {
+ $str .= "$name:$value\n";
+ }
+
+ return $str;
+ }
+
+ /**
+ * Responds with an information that the user has canceled authentication.
+ */
+ protected function cancel()
+ {
+ $this->redirect($this->response(array('openid.mode' => 'cancel')));
+ }
+
+ /**
+ * Converts base64 encoded number to it's decimal representation.
+ * @param String $str base64 encoded number.
+ * @return String Decimal representation of that number.
+ */
+ protected function b64dec($str)
+ {
+ $bytes = unpack('C*', base64_decode($str));
+ $n = 0;
+ foreach($bytes as $byte) {
+ $n = $this->add($this->mul($n, 256), $byte);
+ }
+
+ return $n;
+ }
+
+ /**
+ * Complements b64dec.
+ */
+ protected function decb64($num)
+ {
+ $bytes = array();
+ while($num) {
+ array_unshift($bytes, $this->mod($num, 256));
+ $num = $this->div($num, 256);
+ }
+
+ if($bytes && $bytes[0] > 127) {
+ array_unshift($bytes,0);
+ }
+
+ array_unshift($bytes, 'C*');
+
+ return base64_encode(call_user_func_array('pack', $bytes));
+ }
+
+ function __call($name, $args)
+ {
+ switch($name) {
+ case 'add':
+ case 'mul':
+ case 'pow':
+ case 'mod':
+ case 'div':
+ case 'powmod':
+ if(function_exists('gmp_strval')) {
+ return gmp_strval(call_user_func_array($this->$name, $args));
+ }
+ return call_user_func_array($this->$name, $args);
+ default:
+ throw new BadMethodCallException();
+ }
+ }
+}
diff --git a/library/phpqrcode/CHANGELOG b/library/phpqrcode/CHANGELOG
new file mode 100644
index 000000000..1088530c3
--- /dev/null
+++ b/library/phpqrcode/CHANGELOG
@@ -0,0 +1,38 @@
+* 1.0.0 build 2010031920
+
+ - first public release
+ - help in readme, install
+ - cleanup ans separation of QRtools and QRspec
+ - now TCPDF binding requires minimal changes in TCPDF, having most of job
+ done in QRtools tcpdfBarcodeArray
+ - nicer QRtools::timeBenchmark output
+ - license and copyright notices in files
+ - indent cleanup - from tab to 4spc, keep it that way please :)
+ - sf project, repository, wiki
+ - simple code generator in index.php
+
+* 1.1.0 build 2010032113
+
+ - added merge tool wich generate merged version of code
+ located in phpqrcode.php
+ - splited qrconst.php from qrlib.php
+
+* 1.1.1 build 2010032405
+
+ - patch by Rick Seymour allowing saving PNG and displaying it at the same time
+ - added version info in VERSION file
+ - modified merge tool to include version info into generated file
+ - fixed e-mail in almost all head comments
+
+* 1.1.2 build 2010032722
+
+ - full integration with TCPDF thanks to Nicola Asuni, it's author
+ - fixed bug with alphanumeric encoding detection
+
+* 1.1.3 build 2010081807
+
+ - short opening tags replaced with standard ones
+
+* 1.1.4 build 2010100721
+
+ - added missing static keyword QRinput::check (found by Luke Brookhart, Onjax LLC)
diff --git a/library/phpqrcode/INSTALL b/library/phpqrcode/INSTALL
new file mode 100644
index 000000000..eac6b072b
--- /dev/null
+++ b/library/phpqrcode/INSTALL
@@ -0,0 +1,67 @@
+== REQUIREMENTS ==
+
+ * PHP5
+ * PHP GD2 extension with JPEG and PNG support
+
+== INSTALLATION ==
+
+If you want to recreate cache by yourself make sure cache directory is
+writable and you have permisions to write into it. Also make sure you are
+able to read files in it if you have cache option enabled
+
+== CONFIGURATION ==
+
+Feel free to modify config constants in qrconfig.php file. Read about it in
+provided comments and project wiki page (links in README file)
+
+== QUICK START ==
+
+Notice: probably you should'nt use all of this in same script :)
+
+<?phpb
+
+//include only that one, rest required files will be included from it
+include "qrlib.php"
+
+//write code into file, Error corection lecer is lowest, L (one form: L,M,Q,H)
+//each code square will be 4x4 pixels (4x zoom)
+//code will have 2 code squares white boundary around
+
+QRcode::png('PHP QR Code :)', 'test.png', 'L', 4, 2);
+
+//same as above but outputs file directly into browser (with appr. header etc.)
+//all other settings are default
+//WARNING! it should be FIRST and ONLY output generated by script, otherwise
+//rest of output will land inside PNG binary, breaking it for sure
+QRcode::png('PHP QR Code :)');
+
+//show benchmark
+QRtools::timeBenchmark();
+
+//rebuild cache
+QRtools::buildCache();
+
+//code generated in text mode - as a binary table
+//then displayed out as HTML using Unicode block building chars :)
+$tab = $qr->encode('PHP QR Code :)');
+QRspec::debug($tab, true);
+
+== TCPDF INTEGRATION ==
+
+Inside bindings/tcpdf you will find slightly modified 2dbarcodes.php.
+Instal phpqrcode liblaty inside tcpdf folder, then overwrite (or merge)
+2dbarcodes.php
+
+Then use similar as example #50 from TCPDF examples:
+
+<?php
+
+$style = array(
+ 'border' => true,
+ 'padding' => 4,
+ 'fgcolor' => array(0,0,0),
+ 'bgcolor' => false, //array(255,255,255)
+);
+
+//code name: QR, specify error correction level after semicolon (L,M,Q,H)
+$pdf->write2DBarcode('PHP QR Code :)', 'QR,L', '', '', 30, 30, $style, 'N');
diff --git a/library/phpqrcode/LICENSE b/library/phpqrcode/LICENSE
new file mode 100644
index 000000000..188330326
--- /dev/null
+++ b/library/phpqrcode/LICENSE
@@ -0,0 +1,165 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
diff --git a/library/phpqrcode/README b/library/phpqrcode/README
new file mode 100644
index 000000000..a022fb5e7
--- /dev/null
+++ b/library/phpqrcode/README
@@ -0,0 +1,45 @@
+This is PHP implementation of QR Code 2-D barcode generator. It is pure-php
+LGPL-licensed implementation based on C libqrencode by Kentaro Fukuchi.
+
+== LICENSING ==
+
+Copyright (C) 2010 by Dominik Dzienia
+
+This library is free software; you can redistribute it and/or modify it under
+the terms of the GNU Lesser General Public License as published by the Free
+Software Foundation; either version 3 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+PARTICULAR PURPOSE. See the GNU Lesser General Public License (LICENSE file)
+for more details.
+
+You should have received a copy of the GNU Lesser General Public License along
+with this library; if not, write to the Free Software Foundation, Inc., 51
+Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+== INSTALATION AND USAGE ==
+
+ * INSTALL file
+ * http://sourceforge.net/apps/mediawiki/phpqrcode/index.php?title=Main_Page
+
+== CONTACT ==
+
+Fell free to contact me via e-mail (deltalab at poczta dot fm) or using
+folowing project pages:
+
+ * http://sourceforge.net/projects/phpqrcode/
+ * http://phpqrcode.sourceforge.net/
+
+== ACKNOWLEDGMENTS ==
+
+Based on C libqrencode library (ver. 3.1.1)
+Copyright (C) 2006-2010 by Kentaro Fukuchi
+http://megaui.net/fukuchi/works/qrencode/index.en.html
+
+QR Code is registered trademarks of DENSO WAVE INCORPORATED in JAPAN and other
+countries.
+
+Reed-Solomon code encoder is written by Phil Karn, KA9Q.
+Copyright (C) 2002, 2003, 2004, 2006 Phil Karn, KA9Q
+ \ No newline at end of file
diff --git a/library/phpqrcode/VERSION b/library/phpqrcode/VERSION
new file mode 100644
index 000000000..9f99279ea
--- /dev/null
+++ b/library/phpqrcode/VERSION
@@ -0,0 +1,2 @@
+1.1.4
+2010100721 \ No newline at end of file
diff --git a/library/phpqrcode/bindings/tcpdf/qrcode.php b/library/phpqrcode/bindings/tcpdf/qrcode.php
new file mode 100644
index 000000000..7995460b5
--- /dev/null
+++ b/library/phpqrcode/bindings/tcpdf/qrcode.php
@@ -0,0 +1,2875 @@
+<?php
+//============================================================+
+// File name : qrcode.php
+// Begin : 2010-03-22
+// Last Update : 2010-03-29
+// Version : 1.0.002
+// License : GNU LGPL v.3 (http://www.gnu.org/copyleft/lesser.html)
+// ----------------------------------------------------------------------------
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 3 of the License, or any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+// or browse http://www.gnu.org/copyleft/lesser.html
+//
+// ----------------------------------------------------------------------------
+//
+// DESCRIPTION :
+//
+// Class to create QR-code arrays for TCPDF class.
+// QR Code symbol is a 2D barcode that can be scanned by
+// handy terminals such as a mobile phone with CCD.
+// The capacity of QR Code is up to 7000 digits or 4000
+// characters, and has high robustness.
+// This class supports QR Code model 2, described in
+// JIS (Japanese Industrial Standards) X0510:2004
+// or ISO/IEC 18004.
+// Currently the following features are not supported:
+// ECI and FNC1 mode, Micro QR Code, QR Code model 1,
+// Structured mode.
+//
+// This class is derived from the following projects:
+// ---------------------------------------------------------
+// "PHP QR Code encoder"
+// License: GNU-LGPLv3
+// Copyright (C) 2010 by Dominik Dzienia <deltalab at poczta dot fm>
+// http://phpqrcode.sourceforge.net/
+// https://sourceforge.net/projects/phpqrcode/
+//
+// The "PHP QR Code encoder" is based on
+// "C libqrencode library" (ver. 3.1.1)
+// License: GNU-LGPL 2.1
+// Copyright (C) 2006-2010 by Kentaro Fukuchi
+// http://megaui.net/fukuchi/works/qrencode/index.en.html
+//
+// Reed-Solomon code encoder is written by Phil Karn, KA9Q.
+// Copyright (C) 2002-2006 Phil Karn, KA9Q
+//
+// QR Code is registered trademark of DENSO WAVE INCORPORATED
+// http://www.denso-wave.com/qrcode/index-e.html
+// ---------------------------------------------------------
+//
+// Author: Nicola Asuni
+//
+// (c) Copyright 2010:
+// Nicola Asuni
+// Tecnick.com S.r.l.
+// Via della Pace, 11
+// 09044 Quartucciu (CA)
+// ITALY
+// www.tecnick.com
+// info@tecnick.com
+//============================================================+
+
+/**
+ * Class to create QR-code arrays for TCPDF class.
+ * QR Code symbol is a 2D barcode that can be scanned by handy terminals such as a mobile phone with CCD.
+ * The capacity of QR Code is up to 7000 digits or 4000 characters, and has high robustness.
+ * This class supports QR Code model 2, described in JIS (Japanese Industrial Standards) X0510:2004 or ISO/IEC 18004.
+ * Currently the following features are not supported: ECI and FNC1 mode, Micro QR Code, QR Code model 1, Structured mode.
+ *
+ * This class is derived from "PHP QR Code encoder" by Dominik Dzienia (http://phpqrcode.sourceforge.net/) based on "libqrencode C library 3.1.1." by Kentaro Fukuchi (http://megaui.net/fukuchi/works/qrencode/index.en.html), contains Reed-Solomon code written by Phil Karn, KA9Q. QR Code is registered trademark of DENSO WAVE INCORPORATED (http://www.denso-wave.com/qrcode/index-e.html).
+ * Please read comments on this class source file for full copyright and license information.
+ *
+ * @package com.tecnick.tcpdf
+ * @abstract Class for generating QR-code array for TCPDF.
+ * @author Nicola Asuni
+ * @copyright 2010 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
+ * @link http://www.tcpdf.org
+ * @license http://www.gnu.org/copyleft/lesser.html LGPL
+ * @version 1.0.002
+ */
+
+// definitions
+if (!defined('QRCODEDEFS')) {
+
+ /**
+ * Indicate that definitions for this class are set
+ */
+ define('QRCODEDEFS', true);
+
+ // -----------------------------------------------------
+
+ // Encoding modes (characters which can be encoded in QRcode)
+
+ /**
+ * Encoding mode
+ */
+ define('QR_MODE_NL', -1);
+
+ /**
+ * Encoding mode numeric (0-9). 3 characters are encoded to 10bit length. In theory, 7089 characters or less can be stored in a QRcode.
+ */
+ define('QR_MODE_NM', 0);
+
+ /**
+ * Encoding mode alphanumeric (0-9A-Z $%*+-./:) 45characters. 2 characters are encoded to 11bit length. In theory, 4296 characters or less can be stored in a QRcode.
+ */
+ define('QR_MODE_AN', 1);
+
+ /**
+ * Encoding mode 8bit byte data. In theory, 2953 characters or less can be stored in a QRcode.
+ */
+ define('QR_MODE_8B', 2);
+
+ /**
+ * Encoding mode KANJI. A KANJI character (multibyte character) is encoded to 13bit length. In theory, 1817 characters or less can be stored in a QRcode.
+ */
+ define('QR_MODE_KJ', 3);
+
+ /**
+ * Encoding mode STRUCTURED (currently unsupported)
+ */
+ define('QR_MODE_ST', 4);
+
+ // -----------------------------------------------------
+
+ // Levels of error correction.
+ // QRcode has a function of an error correcting for miss reading that white is black.
+ // Error correcting is defined in 4 level as below.
+
+ /**
+ * Error correction level L : About 7% or less errors can be corrected.
+ */
+ define('QR_ECLEVEL_L', 0);
+
+ /**
+ * Error correction level M : About 15% or less errors can be corrected.
+ */
+ define('QR_ECLEVEL_M', 1);
+
+ /**
+ * Error correction level Q : About 25% or less errors can be corrected.
+ */
+ define('QR_ECLEVEL_Q', 2);
+
+ /**
+ * Error correction level H : About 30% or less errors can be corrected.
+ */
+ define('QR_ECLEVEL_H', 3);
+
+ // -----------------------------------------------------
+
+ // Version. Size of QRcode is defined as version.
+ // Version is from 1 to 40.
+ // Version 1 is 21*21 matrix. And 4 modules increases whenever 1 version increases.
+ // So version 40 is 177*177 matrix.
+
+ /**
+ * Maximum QR Code version.
+ */
+ define('QRSPEC_VERSION_MAX', 40);
+
+ /**
+ * Maximum matrix size for maximum version (version 40 is 177*177 matrix).
+ */
+ define('QRSPEC_WIDTH_MAX', 177);
+
+ // -----------------------------------------------------
+
+ /**
+ * Matrix index to get width from $capacity array.
+ */
+ define('QRCAP_WIDTH', 0);
+
+ /**
+ * Matrix index to get number of words from $capacity array.
+ */
+ define('QRCAP_WORDS', 1);
+
+ /**
+ * Matrix index to get remainder from $capacity array.
+ */
+ define('QRCAP_REMINDER', 2);
+
+ /**
+ * Matrix index to get error correction level from $capacity array.
+ */
+ define('QRCAP_EC', 3);
+
+ // -----------------------------------------------------
+
+ // Structure (currently usupported)
+
+ /**
+ * Number of header bits for structured mode
+ */
+ define('STRUCTURE_HEADER_BITS', 20);
+
+ /**
+ * Max number of symbols for structured mode
+ */
+ define('MAX_STRUCTURED_SYMBOLS', 16);
+
+ // -----------------------------------------------------
+
+ // Masks
+
+ /**
+ * Down point base value for case 1 mask pattern (concatenation of same color in a line or a column)
+ */
+ define('N1', 3);
+
+ /**
+ * Down point base value for case 2 mask pattern (module block of same color)
+ */
+ define('N2', 3);
+
+ /**
+ * Down point base value for case 3 mask pattern (1:1:3:1:1(dark:bright:dark:bright:dark)pattern in a line or a column)
+ */
+ define('N3', 40);
+
+ /**
+ * Down point base value for case 4 mask pattern (ration of dark modules in whole)
+ */
+ define('N4', 10);
+
+ // -----------------------------------------------------
+
+ // Optimization settings
+
+ /**
+ * if true, estimates best mask (spec. default, but extremally slow; set to false to significant performance boost but (propably) worst quality code
+ */
+ define('QR_FIND_BEST_MASK', true);
+
+ /**
+ * if false, checks all masks available, otherwise value tells count of masks need to be checked, mask id are got randomly
+ */
+ define('QR_FIND_FROM_RANDOM', 2);
+
+ /**
+ * when QR_FIND_BEST_MASK === false
+ */
+ define('QR_DEFAULT_MASK', 2);
+
+ // -----------------------------------------------------
+
+} // end of definitions
+
+// #*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
+
+if (!class_exists('QRcode', false)) {
+
+ // for compaibility with PHP4
+ if (!function_exists('str_split')) {
+ /**
+ * Convert a string to an array (needed for PHP4 compatibility)
+ * @param string $string The input string.
+ * @param int $split_length Maximum length of the chunk.
+ * @return If the optional split_length parameter is specified, the returned array will be broken down into chunks with each being split_length in length, otherwise each chunk will be one character in length. FALSE is returned if split_length is less than 1. If the split_length length exceeds the length of string , the entire string is returned as the first (and only) array element.
+ */
+ function str_split($string, $split_length=1) {
+ if ((strlen($string) > $split_length) OR (!$split_length)) {
+ do {
+ $c = strlen($string);
+ $parts[] = substr($string, 0, $split_length);
+ $string = substr($string, $split_length);
+ } while ($string !== false);
+ } else {
+ $parts = array($string);
+ }
+ return $parts;
+ }
+ }
+
+ // #####################################################
+
+ /**
+ * Class to create QR-code arrays for TCPDF class.
+ * QR Code symbol is a 2D barcode that can be scanned by handy terminals such as a mobile phone with CCD.
+ * The capacity of QR Code is up to 7000 digits or 4000 characters, and has high robustness.
+ * This class supports QR Code model 2, described in JIS (Japanese Industrial Standards) X0510:2004 or ISO/IEC 18004.
+ * Currently the following features are not supported: ECI and FNC1 mode, Micro QR Code, QR Code model 1, Structured mode.
+ *
+ * This class is derived from "PHP QR Code encoder" by Dominik Dzienia (http://phpqrcode.sourceforge.net/) based on "libqrencode C library 3.1.1." by Kentaro Fukuchi (http://megaui.net/fukuchi/works/qrencode/index.en.html), contains Reed-Solomon code written by Phil Karn, KA9Q. QR Code is registered trademark of DENSO WAVE INCORPORATED (http://www.denso-wave.com/qrcode/index-e.html).
+ * Please read comments on this class source file for full copyright and license information.
+ *
+ * @name QRcode
+ * @package com.tecnick.tcpdf
+ * @abstract Class for generating QR-code array for TCPDF.
+ * @author Nicola Asuni
+ * @copyright 2010 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
+ * @link http://www.tcpdf.org
+ * @license http://www.gnu.org/copyleft/lesser.html LGPL
+ * @version 1.0.002
+ */
+ class QRcode {
+
+ /**
+ * @var barcode array to be returned which is readable by TCPDF
+ * @access protected
+ */
+ protected $barcode_array = array();
+
+ /**
+ * @var QR code version. Size of QRcode is defined as version. Version is from 1 to 40. Version 1 is 21*21 matrix. And 4 modules increases whenever 1 version increases. So version 40 is 177*177 matrix.
+ * @access protected
+ */
+ protected $version = 0;
+
+ /**
+ * @var Levels of error correction. See definitions for possible values.
+ * @access protected
+ */
+ protected $level = QR_ECLEVEL_L;
+
+ /**
+ * @var Encoding mode
+ * @access protected
+ */
+ protected $hint = QR_MODE_8B;
+
+ /**
+ * @var if true the input string will be converted to uppercase
+ * @access protected
+ */
+ protected $casesensitive = true;
+
+ /**
+ * @var structured QR code (not supported yet)
+ * @access protected
+ */
+ protected $structured = 0;
+
+ /**
+ * @var mask data
+ * @access protected
+ */
+ protected $data;
+
+ // FrameFiller
+
+ /**
+ * @var width
+ * @access protected
+ */
+ protected $width;
+
+ /**
+ * @var frame
+ * @access protected
+ */
+ protected $frame;
+
+ /**
+ * @var X position of bit
+ * @access protected
+ */
+ protected $x;
+
+ /**
+ * @var Y position of bit
+ * @access protected
+ */
+ protected $y;
+
+ /**
+ * @var direction
+ * @access protected
+ */
+ protected $dir;
+
+ /**
+ * @var single bit
+ * @access protected
+ */
+ protected $bit;
+
+ // ---- QRrawcode ----
+
+ /**
+ * @var data code
+ * @access protected
+ */
+ protected $datacode = array();
+
+ /**
+ * @var error correction code
+ * @access protected
+ */
+ protected $ecccode = array();
+
+ /**
+ * @var blocks
+ * @access protected
+ */
+ protected $blocks;
+
+ /**
+ * @var Reed-Solomon blocks
+ * @access protected
+ */
+ protected $rsblocks = array(); //of RSblock
+
+ /**
+ * @var counter
+ * @access protected
+ */
+ protected $count;
+
+ /**
+ * @var data length
+ * @access protected
+ */
+ protected $dataLength;
+
+ /**
+ * @var error correction length
+ * @access protected
+ */
+ protected $eccLength;
+
+ /**
+ * @var b1
+ * @access protected
+ */
+ protected $b1;
+
+ // ---- QRmask ----
+
+ /**
+ * @var run length
+ * @access protected
+ */
+ protected $runLength = array();
+
+ // ---- QRsplit ----
+
+ /**
+ * @var input data string
+ * @access protected
+ */
+ protected $dataStr = '';
+
+ /**
+ * @var input items
+ * @access protected
+ */
+ protected $items;
+
+ // Reed-Solomon items
+
+ /**
+ * @var Reed-Solomon items
+ * @access protected
+ */
+ protected $rsitems = array();
+
+ /**
+ * @var array of frames
+ * @access protected
+ */
+ protected $frames = array();
+
+ /**
+ * @var alphabet-numeric convesion table
+ * @access protected
+ */
+ protected $anTable = array(
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, //
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, //
+ 36, -1, -1, -1, 37, 38, -1, -1, -1, -1, 39, 40, -1, 41, 42, 43, //
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 44, -1, -1, -1, -1, -1, //
+ -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, //
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, //
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, //
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 //
+ );
+
+ /**
+ * @var array Table of the capacity of symbols
+ * See Table 1 (pp.13) and Table 12-16 (pp.30-36), JIS X0510:2004.
+ * @access protected
+ */
+ protected $capacity = array(
+ array( 0, 0, 0, array( 0, 0, 0, 0)), //
+ array( 21, 26, 0, array( 7, 10, 13, 17)), // 1
+ array( 25, 44, 7, array( 10, 16, 22, 28)), //
+ array( 29, 70, 7, array( 15, 26, 36, 44)), //
+ array( 33, 100, 7, array( 20, 36, 52, 64)), //
+ array( 37, 134, 7, array( 26, 48, 72, 88)), // 5
+ array( 41, 172, 7, array( 36, 64, 96, 112)), //
+ array( 45, 196, 0, array( 40, 72, 108, 130)), //
+ array( 49, 242, 0, array( 48, 88, 132, 156)), //
+ array( 53, 292, 0, array( 60, 110, 160, 192)), //
+ array( 57, 346, 0, array( 72, 130, 192, 224)), // 10
+ array( 61, 404, 0, array( 80, 150, 224, 264)), //
+ array( 65, 466, 0, array( 96, 176, 260, 308)), //
+ array( 69, 532, 0, array( 104, 198, 288, 352)), //
+ array( 73, 581, 3, array( 120, 216, 320, 384)), //
+ array( 77, 655, 3, array( 132, 240, 360, 432)), // 15
+ array( 81, 733, 3, array( 144, 280, 408, 480)), //
+ array( 85, 815, 3, array( 168, 308, 448, 532)), //
+ array( 89, 901, 3, array( 180, 338, 504, 588)), //
+ array( 93, 991, 3, array( 196, 364, 546, 650)), //
+ array( 97, 1085, 3, array( 224, 416, 600, 700)), // 20
+ array(101, 1156, 4, array( 224, 442, 644, 750)), //
+ array(105, 1258, 4, array( 252, 476, 690, 816)), //
+ array(109, 1364, 4, array( 270, 504, 750, 900)), //
+ array(113, 1474, 4, array( 300, 560, 810, 960)), //
+ array(117, 1588, 4, array( 312, 588, 870, 1050)), // 25
+ array(121, 1706, 4, array( 336, 644, 952, 1110)), //
+ array(125, 1828, 4, array( 360, 700, 1020, 1200)), //
+ array(129, 1921, 3, array( 390, 728, 1050, 1260)), //
+ array(133, 2051, 3, array( 420, 784, 1140, 1350)), //
+ array(137, 2185, 3, array( 450, 812, 1200, 1440)), // 30
+ array(141, 2323, 3, array( 480, 868, 1290, 1530)), //
+ array(145, 2465, 3, array( 510, 924, 1350, 1620)), //
+ array(149, 2611, 3, array( 540, 980, 1440, 1710)), //
+ array(153, 2761, 3, array( 570, 1036, 1530, 1800)), //
+ array(157, 2876, 0, array( 570, 1064, 1590, 1890)), // 35
+ array(161, 3034, 0, array( 600, 1120, 1680, 1980)), //
+ array(165, 3196, 0, array( 630, 1204, 1770, 2100)), //
+ array(169, 3362, 0, array( 660, 1260, 1860, 2220)), //
+ array(173, 3532, 0, array( 720, 1316, 1950, 2310)), //
+ array(177, 3706, 0, array( 750, 1372, 2040, 2430)) // 40
+ );
+
+ /**
+ * @var array Length indicator
+ * @access protected
+ */
+ protected $lengthTableBits = array(
+ array(10, 12, 14),
+ array( 9, 11, 13),
+ array( 8, 16, 16),
+ array( 8, 10, 12)
+ );
+
+ /**
+ * @var array Table of the error correction code (Reed-Solomon block)
+ * See Table 12-16 (pp.30-36), JIS X0510:2004.
+ * @access protected
+ */
+ protected $eccTable = array(
+ array(array( 0, 0), array( 0, 0), array( 0, 0), array( 0, 0)), //
+ array(array( 1, 0), array( 1, 0), array( 1, 0), array( 1, 0)), // 1
+ array(array( 1, 0), array( 1, 0), array( 1, 0), array( 1, 0)), //
+ array(array( 1, 0), array( 1, 0), array( 2, 0), array( 2, 0)), //
+ array(array( 1, 0), array( 2, 0), array( 2, 0), array( 4, 0)), //
+ array(array( 1, 0), array( 2, 0), array( 2, 2), array( 2, 2)), // 5
+ array(array( 2, 0), array( 4, 0), array( 4, 0), array( 4, 0)), //
+ array(array( 2, 0), array( 4, 0), array( 2, 4), array( 4, 1)), //
+ array(array( 2, 0), array( 2, 2), array( 4, 2), array( 4, 2)), //
+ array(array( 2, 0), array( 3, 2), array( 4, 4), array( 4, 4)), //
+ array(array( 2, 2), array( 4, 1), array( 6, 2), array( 6, 2)), // 10
+ array(array( 4, 0), array( 1, 4), array( 4, 4), array( 3, 8)), //
+ array(array( 2, 2), array( 6, 2), array( 4, 6), array( 7, 4)), //
+ array(array( 4, 0), array( 8, 1), array( 8, 4), array(12, 4)), //
+ array(array( 3, 1), array( 4, 5), array(11, 5), array(11, 5)), //
+ array(array( 5, 1), array( 5, 5), array( 5, 7), array(11, 7)), // 15
+ array(array( 5, 1), array( 7, 3), array(15, 2), array( 3, 13)), //
+ array(array( 1, 5), array(10, 1), array( 1, 15), array( 2, 17)), //
+ array(array( 5, 1), array( 9, 4), array(17, 1), array( 2, 19)), //
+ array(array( 3, 4), array( 3, 11), array(17, 4), array( 9, 16)), //
+ array(array( 3, 5), array( 3, 13), array(15, 5), array(15, 10)), // 20
+ array(array( 4, 4), array(17, 0), array(17, 6), array(19, 6)), //
+ array(array( 2, 7), array(17, 0), array( 7, 16), array(34, 0)), //
+ array(array( 4, 5), array( 4, 14), array(11, 14), array(16, 14)), //
+ array(array( 6, 4), array( 6, 14), array(11, 16), array(30, 2)), //
+ array(array( 8, 4), array( 8, 13), array( 7, 22), array(22, 13)), // 25
+ array(array(10, 2), array(19, 4), array(28, 6), array(33, 4)), //
+ array(array( 8, 4), array(22, 3), array( 8, 26), array(12, 28)), //
+ array(array( 3, 10), array( 3, 23), array( 4, 31), array(11, 31)), //
+ array(array( 7, 7), array(21, 7), array( 1, 37), array(19, 26)), //
+ array(array( 5, 10), array(19, 10), array(15, 25), array(23, 25)), // 30
+ array(array(13, 3), array( 2, 29), array(42, 1), array(23, 28)), //
+ array(array(17, 0), array(10, 23), array(10, 35), array(19, 35)), //
+ array(array(17, 1), array(14, 21), array(29, 19), array(11, 46)), //
+ array(array(13, 6), array(14, 23), array(44, 7), array(59, 1)), //
+ array(array(12, 7), array(12, 26), array(39, 14), array(22, 41)), // 35
+ array(array( 6, 14), array( 6, 34), array(46, 10), array( 2, 64)), //
+ array(array(17, 4), array(29, 14), array(49, 10), array(24, 46)), //
+ array(array( 4, 18), array(13, 32), array(48, 14), array(42, 32)), //
+ array(array(20, 4), array(40, 7), array(43, 22), array(10, 67)), //
+ array(array(19, 6), array(18, 31), array(34, 34), array(20, 61)) // 40
+ );
+
+ /**
+ * @var array Positions of alignment patterns.
+ * This array includes only the second and the third position of the alignment patterns. Rest of them can be calculated from the distance between them.
+ * See Table 1 in Appendix E (pp.71) of JIS X0510:2004.
+ * @access protected
+ */
+ protected $alignmentPattern = array(
+ array( 0, 0),
+ array( 0, 0), array(18, 0), array(22, 0), array(26, 0), array(30, 0), // 1- 5
+ array(34, 0), array(22, 38), array(24, 42), array(26, 46), array(28, 50), // 6-10
+ array(30, 54), array(32, 58), array(34, 62), array(26, 46), array(26, 48), // 11-15
+ array(26, 50), array(30, 54), array(30, 56), array(30, 58), array(34, 62), // 16-20
+ array(28, 50), array(26, 50), array(30, 54), array(28, 54), array(32, 58), // 21-25
+ array(30, 58), array(34, 62), array(26, 50), array(30, 54), array(26, 52), // 26-30
+ array(30, 56), array(34, 60), array(30, 58), array(34, 62), array(30, 54), // 31-35
+ array(24, 50), array(28, 54), array(32, 58), array(26, 54), array(30, 58) // 35-40
+ );
+
+ /**
+ * @var array Version information pattern (BCH coded).
+ * See Table 1 in Appendix D (pp.68) of JIS X0510:2004.
+ * size: [QRSPEC_VERSION_MAX - 6]
+ * @access protected
+ */
+ protected $versionPattern = array(
+ 0x07c94, 0x085bc, 0x09a99, 0x0a4d3, 0x0bbf6, 0x0c762, 0x0d847, 0x0e60d, //
+ 0x0f928, 0x10b78, 0x1145d, 0x12a17, 0x13532, 0x149a6, 0x15683, 0x168c9, //
+ 0x177ec, 0x18ec4, 0x191e1, 0x1afab, 0x1b08e, 0x1cc1a, 0x1d33f, 0x1ed75, //
+ 0x1f250, 0x209d5, 0x216f0, 0x228ba, 0x2379f, 0x24b0b, 0x2542e, 0x26a64, //
+ 0x27541, 0x28c69
+ );
+
+ /**
+ * @var array Format information
+ * @access protected
+ */
+ protected $formatInfo = array(
+ array(0x77c4, 0x72f3, 0x7daa, 0x789d, 0x662f, 0x6318, 0x6c41, 0x6976), //
+ array(0x5412, 0x5125, 0x5e7c, 0x5b4b, 0x45f9, 0x40ce, 0x4f97, 0x4aa0), //
+ array(0x355f, 0x3068, 0x3f31, 0x3a06, 0x24b4, 0x2183, 0x2eda, 0x2bed), //
+ array(0x1689, 0x13be, 0x1ce7, 0x19d0, 0x0762, 0x0255, 0x0d0c, 0x083b) //
+ );
+
+
+ // -------------------------------------------------
+ // -------------------------------------------------
+
+
+ /**
+ * This is the class constructor.
+ * Creates a QRcode object
+ * @param string $code code to represent using QRcode
+ * @param string $eclevel error level: <ul><li>L : About 7% or less errors can be corrected.</li><li>M : About 15% or less errors can be corrected.</li><li>Q : About 25% or less errors can be corrected.</li><li>H : About 30% or less errors can be corrected.</li></ul>
+ * @access public
+ * @since 1.0.000
+ */
+ public function __construct($code, $eclevel = 'L') {
+ $barcode_array = array();
+ if ((is_null($code)) OR ($code == '\0') OR ($code == '')) {
+ return false;
+ }
+ // set error correction level
+ $this->level = array_search($eclevel, array('L', 'M', 'Q', 'H'));
+ if ($this->level === false) {
+ $this->level = QR_ECLEVEL_L;
+ }
+ if (($this->hint != QR_MODE_8B) AND ($this->hint != QR_MODE_KJ)) {
+ return false;
+ }
+ if (($this->version < 0) OR ($this->version > QRSPEC_VERSION_MAX)) {
+ return false;
+ }
+ $this->items = array();
+ $this->encodeString($code);
+ $qrTab = $this->binarize($this->data);
+ $size = count($qrTab);
+ $barcode_array['num_rows'] = $size;
+ $barcode_array['num_cols'] = $size;
+ $barcode_array['bcode'] = array();
+ foreach ($qrTab as $line) {
+ $arrAdd = array();
+ foreach (str_split($line) as $char) {
+ $arrAdd[] = ($char=='1')?1:0;
+ }
+ $barcode_array['bcode'][] = $arrAdd;
+ }
+ $this->barcode_array = $barcode_array;
+ }
+
+ /**
+ * Returns a barcode array which is readable by TCPDF
+ * @return array barcode array readable by TCPDF;
+ * @access public
+ */
+ public function getBarcodeArray() {
+ return $this->barcode_array;
+ }
+
+ /**
+ * Convert the frame in binary form
+ * @param array $frame array to binarize
+ * @return array frame in binary form
+ */
+ protected function binarize($frame) {
+ $len = count($frame);
+ // the frame is square (width = height)
+ foreach ($frame as &$frameLine) {
+ for ($i=0; $i<$len; $i++) {
+ $frameLine[$i] = (ord($frameLine[$i])&1)?'1':'0';
+ }
+ }
+ return $frame;
+ }
+
+ /**
+ * Encode the input string to QR code
+ * @param string $string input string to encode
+ */
+ protected function encodeString($string) {
+ $this->dataStr = $string;
+ if (!$this->casesensitive) {
+ $this->toUpper();
+ }
+ $ret = $this->splitString();
+ if ($ret < 0) {
+ return NULL;
+ }
+ $this->encodeMask(-1);
+ }
+
+ /**
+ * Encode mask
+ * @param int $mask masking mode
+ */
+ protected function encodeMask($mask) {
+ $spec = array(0, 0, 0, 0, 0);
+ $this->datacode = $this->getByteStream($this->items);
+ if (is_null($this->datacode)) {
+ return NULL;
+ }
+ $spec = $this->getEccSpec($this->version, $this->level, $spec);
+ $this->b1 = $this->rsBlockNum1($spec);
+ $this->dataLength = $this->rsDataLength($spec);
+ $this->eccLength = $this->rsEccLength($spec);
+ $this->ecccode = array_fill(0, $this->eccLength, 0);
+ $this->blocks = $this->rsBlockNum($spec);
+ $ret = $this->init($spec);
+ if ($ret < 0) {
+ return NULL;
+ }
+ $this->count = 0;
+ $this->width = $this->getWidth($this->version);
+ $this->frame = $this->newFrame($this->version);
+ $this->x = $this->width - 1;
+ $this->y = $this->width - 1;
+ $this->dir = -1;
+ $this->bit = -1;
+ // inteleaved data and ecc codes
+ for ($i=0; $i < ($this->dataLength + $this->eccLength); $i++) {
+ $code = $this->getCode();
+ $bit = 0x80;
+ for ($j=0; $j<8; $j++) {
+ $addr = $this->getNextPosition();
+ $this->setFrameAt($addr, 0x02 | (($bit & $code) != 0));
+ $bit = $bit >> 1;
+ }
+ }
+ // remainder bits
+ $j = $this->getRemainder($this->version);
+ for ($i=0; $i<$j; $i++) {
+ $addr = $this->getNextPosition();
+ $this->setFrameAt($addr, 0x02);
+ }
+ // masking
+ $this->runLength = array_fill(0, QRSPEC_WIDTH_MAX + 1, 0);
+ if ($mask < 0) {
+ if (QR_FIND_BEST_MASK) {
+ $masked = $this->mask($this->width, $this->frame, $this->level);
+ } else {
+ $masked = $this->makeMask($this->width, $this->frame, (intval(QR_DEFAULT_MASK) % 8), $this->level);
+ }
+ } else {
+ $masked = $this->makeMask($this->width, $this->frame, $mask, $this->level);
+ }
+ if ($masked == NULL) {
+ return NULL;
+ }
+ $this->data = $masked;
+ }
+
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
+
+ // FrameFiller
+
+ /**
+ * Set frame value at specified position
+ * @param array $at x,y position
+ * @param int $val value of the character to set
+ */
+ protected function setFrameAt($at, $val) {
+ $this->frame[$at['y']][$at['x']] = chr($val);
+ }
+
+ /**
+ * Get frame value at specified position
+ * @param array $at x,y position
+ * @return value at specified position
+ */
+ protected function getFrameAt($at) {
+ return ord($this->frame[$at['y']][$at['x']]);
+ }
+
+ /**
+ * Return the next frame position
+ * @return array of x,y coordinates
+ */
+ protected function getNextPosition() {
+ do {
+ if ($this->bit == -1) {
+ $this->bit = 0;
+ return array('x'=>$this->x, 'y'=>$this->y);
+ }
+ $x = $this->x;
+ $y = $this->y;
+ $w = $this->width;
+ if ($this->bit == 0) {
+ $x--;
+ $this->bit++;
+ } else {
+ $x++;
+ $y += $this->dir;
+ $this->bit--;
+ }
+ if ($this->dir < 0) {
+ if ($y < 0) {
+ $y = 0;
+ $x -= 2;
+ $this->dir = 1;
+ if ($x == 6) {
+ $x--;
+ $y = 9;
+ }
+ }
+ } else {
+ if ($y == $w) {
+ $y = $w - 1;
+ $x -= 2;
+ $this->dir = -1;
+ if ($x == 6) {
+ $x--;
+ $y -= 8;
+ }
+ }
+ }
+ if (($x < 0) OR ($y < 0)) {
+ return NULL;
+ }
+ $this->x = $x;
+ $this->y = $y;
+ } while(ord($this->frame[$y][$x]) & 0x80);
+ return array('x'=>$x, 'y'=>$y);
+ }
+
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
+
+ // QRrawcode
+
+ /**
+ * Initialize code.
+ * @param array $spec array of ECC specification
+ * @return 0 in case of success, -1 in case of error
+ */
+ protected function init($spec) {
+ $dl = $this->rsDataCodes1($spec);
+ $el = $this->rsEccCodes1($spec);
+ $rs = $this->init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el);
+ $blockNo = 0;
+ $dataPos = 0;
+ $eccPos = 0;
+ $endfor = $this->rsBlockNum1($spec);
+ for ($i=0; $i < $endfor; ++$i) {
+ $ecc = array_slice($this->ecccode, $eccPos);
+ $this->rsblocks[$blockNo] = array();
+ $this->rsblocks[$blockNo]['dataLength'] = $dl;
+ $this->rsblocks[$blockNo]['data'] = array_slice($this->datacode, $dataPos);
+ $this->rsblocks[$blockNo]['eccLength'] = $el;
+ $ecc = $this->encode_rs_char($rs, $this->rsblocks[$blockNo]['data'], $ecc);
+ $this->rsblocks[$blockNo]['ecc'] = $ecc;
+ $this->ecccode = array_merge(array_slice($this->ecccode,0, $eccPos), $ecc);
+ $dataPos += $dl;
+ $eccPos += $el;
+ $blockNo++;
+ }
+ if ($this->rsBlockNum2($spec) == 0) {
+ return 0;
+ }
+ $dl = $this->rsDataCodes2($spec);
+ $el = $this->rsEccCodes2($spec);
+ $rs = $this->init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el);
+ if ($rs == NULL) {
+ return -1;
+ }
+ $endfor = $this->rsBlockNum2($spec);
+ for ($i=0; $i < $endfor; ++$i) {
+ $ecc = array_slice($this->ecccode, $eccPos);
+ $this->rsblocks[$blockNo] = array();
+ $this->rsblocks[$blockNo]['dataLength'] = $dl;
+ $this->rsblocks[$blockNo]['data'] = array_slice($this->datacode, $dataPos);
+ $this->rsblocks[$blockNo]['eccLength'] = $el;
+ $ecc = $this->encode_rs_char($rs, $this->rsblocks[$blockNo]['data'], $ecc);
+ $this->rsblocks[$blockNo]['ecc'] = $ecc;
+ $this->ecccode = array_merge(array_slice($this->ecccode, 0, $eccPos), $ecc);
+ $dataPos += $dl;
+ $eccPos += $el;
+ $blockNo++;
+ }
+ return 0;
+ }
+
+ /**
+ * Return Reed-Solomon block code.
+ * @return array rsblocks
+ */
+ protected function getCode() {
+ if ($this->count < $this->dataLength) {
+ $row = $this->count % $this->blocks;
+ $col = $this->count / $this->blocks;
+ if ($col >= $this->rsblocks[0]['dataLength']) {
+ $row += $this->b1;
+ }
+ $ret = $this->rsblocks[$row]['data'][$col];
+ } elseif ($this->count < $this->dataLength + $this->eccLength) {
+ $row = ($this->count - $this->dataLength) % $this->blocks;
+ $col = ($this->count - $this->dataLength) / $this->blocks;
+ $ret = $this->rsblocks[$row]['ecc'][$col];
+ } else {
+ return 0;
+ }
+ $this->count++;
+ return $ret;
+ }
+
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
+
+ // QRmask
+
+ /**
+ * Write Format Information on frame and returns the number of black bits
+ * @param int $width frame width
+ * @param array $frame frame
+ * @param array $mask masking mode
+ * @param int $level error correction level
+ * @return int blacks
+ */
+ protected function writeFormatInformation($width, &$frame, $mask, $level) {
+ $blacks = 0;
+ $format = $this->getFormatInfo($mask, $level);
+ for ($i=0; $i<8; ++$i) {
+ if ($format & 1) {
+ $blacks += 2;
+ $v = 0x85;
+ } else {
+ $v = 0x84;
+ }
+ $frame[8][$width - 1 - $i] = chr($v);
+ if ($i < 6) {
+ $frame[$i][8] = chr($v);
+ } else {
+ $frame[$i + 1][8] = chr($v);
+ }
+ $format = $format >> 1;
+ }
+ for ($i=0; $i<7; ++$i) {
+ if ($format & 1) {
+ $blacks += 2;
+ $v = 0x85;
+ } else {
+ $v = 0x84;
+ }
+ $frame[$width - 7 + $i][8] = chr($v);
+ if ($i == 0) {
+ $frame[8][7] = chr($v);
+ } else {
+ $frame[8][6 - $i] = chr($v);
+ }
+ $format = $format >> 1;
+ }
+ return $blacks;
+ }
+
+ /**
+ * mask0
+ * @param int $x X position
+ * @param int $y Y position
+ * @return int mask
+ */
+ protected function mask0($x, $y) {
+ return ($x + $y) & 1;
+ }
+
+ /**
+ * mask1
+ * @param int $x X position
+ * @param int $y Y position
+ * @return int mask
+ */
+ protected function mask1($x, $y) {
+ return ($y & 1);
+ }
+
+ /**
+ * mask2
+ * @param int $x X position
+ * @param int $y Y position
+ * @return int mask
+ */
+ protected function mask2($x, $y) {
+ return ($x % 3);
+ }
+
+ /**
+ * mask3
+ * @param int $x X position
+ * @param int $y Y position
+ * @return int mask
+ */
+ protected function mask3($x, $y) {
+ return ($x + $y) % 3;
+ }
+
+ /**
+ * mask4
+ * @param int $x X position
+ * @param int $y Y position
+ * @return int mask
+ */
+ protected function mask4($x, $y) {
+ return (((int)($y / 2)) + ((int)($x / 3))) & 1;
+ }
+
+ /**
+ * mask5
+ * @param int $x X position
+ * @param int $y Y position
+ * @return int mask
+ */
+ protected function mask5($x, $y) {
+ return (($x * $y) & 1) + ($x * $y) % 3;
+ }
+
+ /**
+ * mask6
+ * @param int $x X position
+ * @param int $y Y position
+ * @return int mask
+ */
+ protected function mask6($x, $y) {
+ return ((($x * $y) & 1) + ($x * $y) % 3) & 1;
+ }
+
+ /**
+ * mask7
+ * @param int $x X position
+ * @param int $y Y position
+ * @return int mask
+ */
+ protected function mask7($x, $y) {
+ return ((($x * $y) % 3) + (($x + $y) & 1)) & 1;
+ }
+
+ /**
+ * Return bitmask
+ * @param int $maskNo mask number
+ * @param int $width width
+ * @param array $frame frame
+ * @return array bitmask
+ */
+ protected function generateMaskNo($maskNo, $width, $frame) {
+ $bitMask = array_fill(0, $width, array_fill(0, $width, 0));
+ for ($y=0; $y<$width; ++$y) {
+ for ($x=0; $x<$width; ++$x) {
+ if (ord($frame[$y][$x]) & 0x80) {
+ $bitMask[$y][$x] = 0;
+ } else {
+ $maskFunc = call_user_func(array($this, 'mask'.$maskNo), $x, $y);
+ $bitMask[$y][$x] = ($maskFunc == 0)?1:0;
+ }
+ }
+ }
+ return $bitMask;
+ }
+
+ /**
+ * makeMaskNo
+ * @param int $maskNo
+ * @param int $width
+ * @param int $s
+ * @param int $d
+ * @param boolean $maskGenOnly
+ * @return int b
+ */
+ protected function makeMaskNo($maskNo, $width, $s, &$d, $maskGenOnly=false) {
+ $b = 0;
+ $bitMask = array();
+ $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d);
+ if ($maskGenOnly) {
+ return;
+ }
+ $d = $s;
+ for ($y=0; $y<$width; ++$y) {
+ for ($x=0; $x<$width; ++$x) {
+ if ($bitMask[$y][$x] == 1) {
+ $d[$y][$x] = chr(ord($s[$y][$x]) ^ (int)$bitMask[$y][$x]);
+ }
+ $b += (int)(ord($d[$y][$x]) & 1);
+ }
+ }
+ return $b;
+ }
+
+ /**
+ * makeMask
+ * @param int $width
+ * @param array $frame
+ * @param int $maskNo
+ * @param int $level
+ * @return array mask
+ */
+ protected function makeMask($width, $frame, $maskNo, $level) {
+ $masked = array_fill(0, $width, str_repeat("\0", $width));
+ $this->makeMaskNo($maskNo, $width, $frame, $masked);
+ $this->writeFormatInformation($width, $masked, $maskNo, $level);
+ return $masked;
+ }
+
+ /**
+ * calcN1N3
+ * @param int $length
+ * @return int demerit
+ */
+ protected function calcN1N3($length) {
+ $demerit = 0;
+ for ($i=0; $i<$length; ++$i) {
+ if ($this->runLength[$i] >= 5) {
+ $demerit += (N1 + ($this->runLength[$i] - 5));
+ }
+ if ($i & 1) {
+ if (($i >= 3) AND ($i < ($length-2)) AND ($this->runLength[$i] % 3 == 0)) {
+ $fact = (int)($this->runLength[$i] / 3);
+ if (($this->runLength[$i-2] == $fact)
+ AND ($this->runLength[$i-1] == $fact)
+ AND ($this->runLength[$i+1] == $fact)
+ AND ($this->runLength[$i+2] == $fact)) {
+ if (($this->runLength[$i-3] < 0) OR ($this->runLength[$i-3] >= (4 * $fact))) {
+ $demerit += N3;
+ } elseif ((($i+3) >= $length) OR ($this->runLength[$i+3] >= (4 * $fact))) {
+ $demerit += N3;
+ }
+ }
+ }
+ }
+ }
+ return $demerit;
+ }
+
+ /**
+ * evaluateSymbol
+ * @param int $width
+ * @param array $frame
+ * @return int demerit
+ */
+ protected function evaluateSymbol($width, $frame) {
+ $head = 0;
+ $demerit = 0;
+ for ($y=0; $y<$width; ++$y) {
+ $head = 0;
+ $this->runLength[0] = 1;
+ $frameY = $frame[$y];
+ if ($y > 0) {
+ $frameYM = $frame[$y-1];
+ }
+ for ($x=0; $x<$width; ++$x) {
+ if (($x > 0) AND ($y > 0)) {
+ $b22 = ord($frameY[$x]) & ord($frameY[$x-1]) & ord($frameYM[$x]) & ord($frameYM[$x-1]);
+ $w22 = ord($frameY[$x]) | ord($frameY[$x-1]) | ord($frameYM[$x]) | ord($frameYM[$x-1]);
+ if (($b22 | ($w22 ^ 1)) & 1) {
+ $demerit += N2;
+ }
+ }
+ if (($x == 0) AND (ord($frameY[$x]) & 1)) {
+ $this->runLength[0] = -1;
+ $head = 1;
+ $this->runLength[$head] = 1;
+ } elseif ($x > 0) {
+ if ((ord($frameY[$x]) ^ ord($frameY[$x-1])) & 1) {
+ $head++;
+ $this->runLength[$head] = 1;
+ } else {
+ $this->runLength[$head]++;
+ }
+ }
+ }
+ $demerit += $this->calcN1N3($head+1);
+ }
+ for ($x=0; $x<$width; ++$x) {
+ $head = 0;
+ $this->runLength[0] = 1;
+ for ($y=0; $y<$width; ++$y) {
+ if (($y == 0) AND (ord($frame[$y][$x]) & 1)) {
+ $this->runLength[0] = -1;
+ $head = 1;
+ $this->runLength[$head] = 1;
+ } elseif ($y > 0) {
+ if ((ord($frame[$y][$x]) ^ ord($frame[$y-1][$x])) & 1) {
+ $head++;
+ $this->runLength[$head] = 1;
+ } else {
+ $this->runLength[$head]++;
+ }
+ }
+ }
+ $demerit += $this->calcN1N3($head+1);
+ }
+ return $demerit;
+ }
+
+ /**
+ * mask
+ * @param int $width
+ * @param array $frame
+ * @param int $level
+ * @return array best mask
+ */
+ protected function mask($width, $frame, $level) {
+ $minDemerit = PHP_INT_MAX;
+ $bestMaskNum = 0;
+ $bestMask = array();
+ $checked_masks = array(0, 1, 2, 3, 4, 5, 6, 7);
+ if (QR_FIND_FROM_RANDOM !== false) {
+ $howManuOut = 8 - (QR_FIND_FROM_RANDOM % 9);
+ for ($i = 0; $i < $howManuOut; ++$i) {
+ $remPos = rand (0, count($checked_masks)-1);
+ unset($checked_masks[$remPos]);
+ $checked_masks = array_values($checked_masks);
+ }
+ }
+ $bestMask = $frame;
+ foreach ($checked_masks as $i) {
+ $mask = array_fill(0, $width, str_repeat("\0", $width));
+ $demerit = 0;
+ $blacks = 0;
+ $blacks = $this->makeMaskNo($i, $width, $frame, $mask);
+ $blacks += $this->writeFormatInformation($width, $mask, $i, $level);
+ $blacks = (int)(100 * $blacks / ($width * $width));
+ $demerit = (int)((int)(abs($blacks - 50) / 5) * N4);
+ $demerit += $this->evaluateSymbol($width, $mask);
+ if ($demerit < $minDemerit) {
+ $minDemerit = $demerit;
+ $bestMask = $mask;
+ $bestMaskNum = $i;
+ }
+ }
+ return $bestMask;
+ }
+
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
+
+ // QRsplit
+
+ /**
+ * Return true if the character at specified position is a number
+ * @param string $str string
+ * @param int $pos characted position
+ * @return boolean true of false
+ */
+ protected function isdigitat($str, $pos) {
+ if ($pos >= strlen($str)) {
+ return false;
+ }
+ return ((ord($str[$pos]) >= ord('0'))&&(ord($str[$pos]) <= ord('9')));
+ }
+
+ /**
+ * Return true if the character at specified position is an alphanumeric character
+ * @param string $str string
+ * @param int $pos characted position
+ * @return boolean true of false
+ */
+ protected function isalnumat($str, $pos) {
+ if ($pos >= strlen($str)) {
+ return false;
+ }
+ return ($this->lookAnTable(ord($str[$pos])) >= 0);
+ }
+
+ /**
+ * identifyMode
+ * @param int $pos
+ * @return int mode
+ */
+ protected function identifyMode($pos) {
+ if ($pos >= strlen($this->dataStr)) {
+ return QR_MODE_NL;
+ }
+ $c = $this->dataStr[$pos];
+ if ($this->isdigitat($this->dataStr, $pos)) {
+ return QR_MODE_NM;
+ } elseif ($this->isalnumat($this->dataStr, $pos)) {
+ return QR_MODE_AN;
+ } elseif ($this->hint == QR_MODE_KJ) {
+ if ($pos+1 < strlen($this->dataStr)) {
+ $d = $this->dataStr[$pos+1];
+ $word = (ord($c) << 8) | ord($d);
+ if (($word >= 0x8140 && $word <= 0x9ffc) OR ($word >= 0xe040 && $word <= 0xebbf)) {
+ return QR_MODE_KJ;
+ }
+ }
+ }
+ return QR_MODE_8B;
+ }
+
+ /**
+ * eatNum
+ * @return int run
+ */
+ protected function eatNum() {
+ $ln = $this->lengthIndicator(QR_MODE_NM, $this->version);
+ $p = 0;
+ while($this->isdigitat($this->dataStr, $p)) {
+ $p++;
+ }
+ $run = $p;
+ $mode = $this->identifyMode($p);
+ if ($mode == QR_MODE_8B) {
+ $dif = $this->estimateBitsModeNum($run) + 4 + $ln
+ + $this->estimateBitsMode8(1) // + 4 + l8
+ - $this->estimateBitsMode8($run + 1); // - 4 - l8
+ if ($dif > 0) {
+ return $this->eat8();
+ }
+ }
+ if ($mode == QR_MODE_AN) {
+ $dif = $this->estimateBitsModeNum($run) + 4 + $ln
+ + $this->estimateBitsModeAn(1) // + 4 + la
+ - $this->estimateBitsModeAn($run + 1);// - 4 - la
+ if ($dif > 0) {
+ return $this->eatAn();
+ }
+ }
+ $this->items = $this->appendNewInputItem($this->items, QR_MODE_NM, $run, str_split($this->dataStr));
+ return $run;
+ }
+
+ /**
+ * eatAn
+ * @return int run
+ */
+ protected function eatAn() {
+ $la = $this->lengthIndicator(QR_MODE_AN, $this->version);
+ $ln = $this->lengthIndicator(QR_MODE_NM, $this->version);
+ $p = 0;
+ while($this->isalnumat($this->dataStr, $p)) {
+ if ($this->isdigitat($this->dataStr, $p)) {
+ $q = $p;
+ while($this->isdigitat($this->dataStr, $q)) {
+ $q++;
+ }
+ $dif = $this->estimateBitsModeAn($p) // + 4 + la
+ + $this->estimateBitsModeNum($q - $p) + 4 + $ln
+ - $this->estimateBitsModeAn($q); // - 4 - la
+ if ($dif < 0) {
+ break;
+ } else {
+ $p = $q;
+ }
+ } else {
+ $p++;
+ }
+ }
+ $run = $p;
+ if (!$this->isalnumat($this->dataStr, $p)) {
+ $dif = $this->estimateBitsModeAn($run) + 4 + $la
+ + $this->estimateBitsMode8(1) // + 4 + l8
+ - $this->estimateBitsMode8($run + 1); // - 4 - l8
+ if ($dif > 0) {
+ return $this->eat8();
+ }
+ }
+ $this->items = $this->appendNewInputItem($this->items, QR_MODE_AN, $run, str_split($this->dataStr));
+ return $run;
+ }
+
+ /**
+ * eatKanji
+ * @return int run
+ */
+ protected function eatKanji() {
+ $p = 0;
+ while($this->identifyMode($p) == QR_MODE_KJ) {
+ $p += 2;
+ }
+ $this->items = $this->appendNewInputItem($this->items, QR_MODE_KJ, $p, str_split($this->dataStr));
+ return $run;
+ }
+
+ /**
+ * eat8
+ * @return int run
+ */
+ protected function eat8() {
+ $la = $this->lengthIndicator(QR_MODE_AN, $this->version);
+ $ln = $this->lengthIndicator(QR_MODE_NM, $this->version);
+ $p = 1;
+ $dataStrLen = strlen($this->dataStr);
+ while($p < $dataStrLen) {
+ $mode = $this->identifyMode($p);
+ if ($mode == QR_MODE_KJ) {
+ break;
+ }
+ if ($mode == QR_MODE_NM) {
+ $q = $p;
+ while($this->isdigitat($this->dataStr, $q)) {
+ $q++;
+ }
+ $dif = $this->estimateBitsMode8($p) // + 4 + l8
+ + $this->estimateBitsModeNum($q - $p) + 4 + $ln
+ - $this->estimateBitsMode8($q); // - 4 - l8
+ if ($dif < 0) {
+ break;
+ } else {
+ $p = $q;
+ }
+ } elseif ($mode == QR_MODE_AN) {
+ $q = $p;
+ while($this->isalnumat($this->dataStr, $q)) {
+ $q++;
+ }
+ $dif = $this->estimateBitsMode8($p) // + 4 + l8
+ + $this->estimateBitsModeAn($q - $p) + 4 + $la
+ - $this->estimateBitsMode8($q); // - 4 - l8
+ if ($dif < 0) {
+ break;
+ } else {
+ $p = $q;
+ }
+ } else {
+ $p++;
+ }
+ }
+ $run = $p;
+ $this->items = $this->appendNewInputItem($this->items, QR_MODE_8B, $run, str_split($this->dataStr));
+ return $run;
+ }
+
+ /**
+ * splitString
+ */
+ protected function splitString() {
+ while (strlen($this->dataStr) > 0) {
+ if ($this->dataStr == '') {
+ return 0;
+ }
+ $mode = $this->identifyMode(0);
+ switch ($mode) {
+ case QR_MODE_NM: {
+ $length = $this->eatNum();
+ break;
+ }
+ case QR_MODE_AN: {
+ $length = $this->eatAn();
+ break;
+ }
+ case QR_MODE_KJ: {
+ if ($hint == QR_MODE_KJ) {
+ $length = $this->eatKanji();
+ } else {
+ $length = $this->eat8();
+ }
+ break;
+ }
+ default: {
+ $length = $this->eat8();
+ break;
+ }
+ }
+ if ($length == 0) {
+ return 0;
+ }
+ if ($length < 0) {
+ return -1;
+ }
+ $this->dataStr = substr($this->dataStr, $length);
+ }
+ }
+
+ /**
+ * toUpper
+ */
+ protected function toUpper() {
+ $stringLen = strlen($this->dataStr);
+ $p = 0;
+ while ($p < $stringLen) {
+ $mode = $this->identifyMode(substr($this->dataStr, $p), $this->hint);
+ if ($mode == QR_MODE_KJ) {
+ $p += 2;
+ } else {
+ if ((ord($this->dataStr[$p]) >= ord('a')) AND (ord($this->dataStr[$p]) <= ord('z'))) {
+ $this->dataStr[$p] = chr(ord($this->dataStr[$p]) - 32);
+ }
+ $p++;
+ }
+ }
+ return $this->dataStr;
+ }
+
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
+
+ // QRinputItem
+
+ /**
+ * newInputItem
+ * @param int $mode
+ * @param int $size
+ * @param array $data
+ * @param array $bstream
+ * @return array input item
+ */
+ protected function newInputItem($mode, $size, $data, $bstream=null) {
+ $setData = array_slice($data, 0, $size);
+ if (count($setData) < $size) {
+ $setData = array_merge($setData, array_fill(0, ($size - count($setData)), 0));
+ }
+ if (!$this->check($mode, $size, $setData)) {
+ return NULL;
+ }
+ $inputitem = array();
+ $inputitem['mode'] = $mode;
+ $inputitem['size'] = $size;
+ $inputitem['data'] = $setData;
+ $inputitem['bstream'] = $bstream;
+ return $inputitem;
+ }
+
+ /**
+ * encodeModeNum
+ * @param array $inputitem
+ * @param int $version
+ * @return array input item
+ */
+ protected function encodeModeNum($inputitem, $version) {
+ $words = (int)($inputitem['size'] / 3);
+ $inputitem['bstream'] = array();
+ $val = 0x1;
+ $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, $val);
+ $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], $this->lengthIndicator(QR_MODE_NM, $version), $inputitem['size']);
+ for ($i=0; $i < $words; ++$i) {
+ $val = (ord($inputitem['data'][$i*3 ]) - ord('0')) * 100;
+ $val += (ord($inputitem['data'][$i*3+1]) - ord('0')) * 10;
+ $val += (ord($inputitem['data'][$i*3+2]) - ord('0'));
+ $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 10, $val);
+ }
+ if ($inputitem['size'] - $words * 3 == 1) {
+ $val = ord($inputitem['data'][$words*3]) - ord('0');
+ $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, $val);
+ } elseif (($inputitem['size'] - ($words * 3)) == 2) {
+ $val = (ord($inputitem['data'][$words*3 ]) - ord('0')) * 10;
+ $val += (ord($inputitem['data'][$words*3+1]) - ord('0'));
+ $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 7, $val);
+ }
+ return $inputitem;
+ }
+
+ /**
+ * encodeModeAn
+ * @param array $inputitem
+ * @param int $version
+ * @return array input item
+ */
+ protected function encodeModeAn($inputitem, $version) {
+ $words = (int)($inputitem['size'] / 2);
+ $inputitem['bstream'] = array();
+ $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, 0x02);
+ $inputitem['bstream'] = $this->appendNum(v, $this->lengthIndicator(QR_MODE_AN, $version), $inputitem['size']);
+ for ($i=0; $i < $words; ++$i) {
+ $val = (int)$this->lookAnTable(ord($inputitem['data'][$i*2 ])) * 45;
+ $val += (int)$this->lookAnTable(ord($inputitem['data'][$i*2+1]));
+ $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 11, $val);
+ }
+ if ($inputitem['size'] & 1) {
+ $val = $this->lookAnTable(ord($inputitem['data'][($words * 2)]));
+ $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 6, $val);
+ }
+ return $inputitem;
+ }
+
+ /**
+ * encodeMode8
+ * @param array $inputitem
+ * @param int $version
+ * @return array input item
+ */
+ protected function encodeMode8($inputitem, $version) {
+ $inputitem['bstream'] = array();
+ $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, 0x4);
+ $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], $this->lengthIndicator(QR_MODE_8B, $version), $inputitem['size']);
+ for ($i=0; $i < $inputitem['size']; ++$i) {
+ $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 8, ord($inputitem['data'][$i]));
+ }
+ return $inputitem;
+ }
+
+ /**
+ * encodeModeKanji
+ * @param array $inputitem
+ * @param int $version
+ * @return array input item
+ */
+ protected function encodeModeKanji($inputitem, $version) {
+ $inputitem['bstream'] = array();
+ $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, 0x8);
+ $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], $this->lengthIndicator(QR_MODE_KJ, $version), (int)($inputitem['size'] / 2));
+ for ($i=0; $i<$inputitem['size']; $i+=2) {
+ $val = (ord($inputitem['data'][$i]) << 8) | ord($inputitem['data'][$i+1]);
+ if ($val <= 0x9ffc) {
+ $val -= 0x8140;
+ } else {
+ $val -= 0xc140;
+ }
+ $h = ($val >> 8) * 0xc0;
+ $val = ($val & 0xff) + $h;
+ $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 13, $val);
+ }
+ return $inputitem;
+ }
+
+ /**
+ * encodeModeStructure
+ * @param array $inputitem
+ * @return array input item
+ */
+ protected function encodeModeStructure($inputitem) {
+ $inputitem['bstream'] = array();
+ $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, 0x03);
+ $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, ord($inputitem['data'][1]) - 1);
+ $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 4, ord($inputitem['data'][0]) - 1);
+ $inputitem['bstream'] = $this->appendNum($inputitem['bstream'], 8, ord($inputitem['data'][2]));
+ return $inputitem;
+ }
+
+ /**
+ * encodeBitStream
+ * @param array $inputitem
+ * @param int $version
+ * @return array input item
+ */
+ protected function encodeBitStream($inputitem, $version) {
+ $inputitem['bstream'] = array();
+ $words = $this->maximumWords($inputitem['mode'], $version);
+ if ($inputitem['size'] > $words) {
+ $st1 = $this->newInputItem($inputitem['mode'], $words, $inputitem['data']);
+ $st2 = $this->newInputItem($inputitem['mode'], $inputitem['size'] - $words, array_slice($inputitem['data'], $words));
+ $st1 = $this->encodeBitStream($st1, $version);
+ $st2 = $this->encodeBitStream($st2, $version);
+ $inputitem['bstream'] = array();
+ $inputitem['bstream'] = $this->appendBitstream($inputitem['bstream'], $st1['bstream']);
+ $inputitem['bstream'] = $this->appendBitstream($inputitem['bstream'], $st2['bstream']);
+ } else {
+ switch($inputitem['mode']) {
+ case QR_MODE_NM: {
+ $inputitem = $this->encodeModeNum($inputitem, $version);
+ break;
+ }
+ case QR_MODE_AN: {
+ $inputitem = $this->encodeModeAn($inputitem, $version);
+ break;
+ }
+ case QR_MODE_8B: {
+ $inputitem = $this->encodeMode8($inputitem, $version);
+ break;
+ }
+ case QR_MODE_KJ: {
+ $inputitem = $this->encodeModeKanji($inputitem, $version);
+ break;
+ }
+ case QR_MODE_ST: {
+ $inputitem = $this->encodeModeStructure($inputitem);
+ break;
+ }
+ default: {
+ break;
+ }
+ }
+ }
+ return $inputitem;
+ }
+
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
+
+ // QRinput
+
+ /**
+ * Append data to an input object.
+ * The data is copied and appended to the input object.
+ * @param array items input items
+ * @param int $mode encoding mode.
+ * @param int $size size of data (byte).
+ * @param array $data array of input data.
+ * @return items
+ *
+ */
+ protected function appendNewInputItem($items, $mode, $size, $data) {
+ $items[] = $this->newInputItem($mode, $size, $data);
+ return $items;
+ }
+
+ /**
+ * insertStructuredAppendHeader
+ * @param array $items
+ * @param int $size
+ * @param int $index
+ * @param int $parity
+ * @return array items
+ */
+ protected function insertStructuredAppendHeader($items, $size, $index, $parity) {
+ if ($size > MAX_STRUCTURED_SYMBOLS) {
+ return -1;
+ }
+ if (($index <= 0) OR ($index > MAX_STRUCTURED_SYMBOLS)) {
+ return -1;
+ }
+ $buf = array($size, $index, $parity);
+ $entry = $this->newInputItem(QR_MODE_ST, 3, buf);
+ array_unshift($items, $entry);
+ return $items;
+ }
+
+ /**
+ * calcParity
+ * @param array $items
+ * @return int parity
+ */
+ protected function calcParity($items) {
+ $parity = 0;
+ foreach ($items as $item) {
+ if ($item['mode'] != QR_MODE_ST) {
+ for ($i=$item['size']-1; $i>=0; --$i) {
+ $parity ^= $item['data'][$i];
+ }
+ }
+ }
+ return $parity;
+ }
+
+ /**
+ * checkModeNum
+ * @param int $size
+ * @param array $data
+ * @return boolean true or false
+ */
+ protected function checkModeNum($size, $data) {
+ for ($i=0; $i<$size; ++$i) {
+ if ((ord($data[$i]) < ord('0')) OR (ord($data[$i]) > ord('9'))){
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * estimateBitsModeNum
+ * @param int $size
+ * @return int number of bits
+ */
+ protected function estimateBitsModeNum($size) {
+ $w = (int)$size / 3;
+ $bits = $w * 10;
+ switch($size - $w * 3) {
+ case 1: {
+ $bits += 4;
+ break;
+ }
+ case 2: {
+ $bits += 7;
+ break;
+ }
+ default: {
+ break;
+ }
+ }
+ return $bits;
+ }
+
+ /**
+ * Look up the alphabet-numeric convesion table (see JIS X0510:2004, pp.19).
+ * @param int $c character value
+ * @return value
+ */
+ protected function lookAnTable($c) {
+ return (($c > 127)?-1:$this->anTable[$c]);
+ }
+
+ /**
+ * checkModeAn
+ * @param int $size
+ * @param array $data
+ * @return boolean true or false
+ */
+ protected function checkModeAn($size, $data) {
+ for ($i=0; $i<$size; ++$i) {
+ if ($this->lookAnTable(ord($data[$i])) == -1) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * estimateBitsModeAn
+ * @param int $size
+ * @return int number of bits
+ */
+ protected function estimateBitsModeAn($size) {
+ $w = (int)($size / 2);
+ $bits = $w * 11;
+ if ($size & 1) {
+ $bits += 6;
+ }
+ return $bits;
+ }
+
+ /**
+ * estimateBitsMode8
+ * @param int $size
+ * @return int number of bits
+ */
+ protected function estimateBitsMode8($size) {
+ return $size * 8;
+ }
+
+ /**
+ * estimateBitsModeKanji
+ * @param int $size
+ * @return int number of bits
+ */
+ protected function estimateBitsModeKanji($size) {
+ return (int)(($size / 2) * 13);
+ }
+
+ /**
+ * checkModeKanji
+ * @param int $size
+ * @param array $data
+ * @return boolean true or false
+ */
+ protected function checkModeKanji($size, $data) {
+ if ($size & 1) {
+ return false;
+ }
+ for ($i=0; $i<$size; $i+=2) {
+ $val = (ord($data[$i]) << 8) | ord($data[$i+1]);
+ if (($val < 0x8140) OR (($val > 0x9ffc) AND ($val < 0xe040)) OR ($val > 0xebbf)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Validate the input data.
+ * @param int $mode encoding mode.
+ * @param int $size size of data (byte).
+ * @param array data data to validate
+ * @return boolean true in case of valid data, false otherwise
+ */
+ protected function check($mode, $size, $data) {
+ if ($size <= 0) {
+ return false;
+ }
+ switch($mode) {
+ case QR_MODE_NM: {
+ return $this->checkModeNum($size, $data);
+ }
+ case QR_MODE_AN: {
+ return $this->checkModeAn($size, $data);
+ }
+ case QR_MODE_KJ: {
+ return $this->checkModeKanji($size, $data);
+ }
+ case QR_MODE_8B: {
+ return true;
+ }
+ case QR_MODE_ST: {
+ return true;
+ }
+ default: {
+ break;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * estimateBitStreamSize
+ * @param array $items
+ * @param int $version
+ * @return int bits
+ */
+ protected function estimateBitStreamSize($items, $version) {
+ $bits = 0;
+ if ($version == 0) {
+ $version = 1;
+ }
+ foreach ($items as $item) {
+ switch($item['mode']) {
+ case QR_MODE_NM: {
+ $bits = $this->estimateBitsModeNum($item['size']);
+ break;
+ }
+ case QR_MODE_AN: {
+ $bits = $this->estimateBitsModeAn($item['size']);
+ break;
+ }
+ case QR_MODE_8B: {
+ $bits = $this->estimateBitsMode8($item['size']);
+ break;
+ }
+ case QR_MODE_KJ: {
+ $bits = $this->estimateBitsModeKanji($item['size']);
+ break;
+ }
+ case QR_MODE_ST: {
+ return STRUCTURE_HEADER_BITS;
+ }
+ default: {
+ return 0;
+ }
+ }
+ $l = $this->lengthIndicator($item['mode'], $version);
+ $m = 1 << $l;
+ $num = (int)(($item['size'] + $m - 1) / $m);
+ $bits += $num * (4 + $l);
+ }
+ return $bits;
+ }
+
+ /**
+ * estimateVersion
+ * @param array $items
+ * @return int version
+ */
+ protected function estimateVersion($items) {
+ $version = 0;
+ $prev = 0;
+ do {
+ $prev = $version;
+ $bits = $this->estimateBitStreamSize($items, $prev);
+ $version = $this->getMinimumVersion((int)(($bits + 7) / 8), $this->level);
+ if ($version < 0) {
+ return -1;
+ }
+ } while ($version > $prev);
+ return $version;
+ }
+
+ /**
+ * lengthOfCode
+ * @param int $mode
+ * @param int $version
+ * @param int $bits
+ * @return int size
+ */
+ protected function lengthOfCode($mode, $version, $bits) {
+ $payload = $bits - 4 - $this->lengthIndicator($mode, $version);
+ switch($mode) {
+ case QR_MODE_NM: {
+ $chunks = (int)($payload / 10);
+ $remain = $payload - $chunks * 10;
+ $size = $chunks * 3;
+ if ($remain >= 7) {
+ $size += 2;
+ } elseif ($remain >= 4) {
+ $size += 1;
+ }
+ break;
+ }
+ case QR_MODE_AN: {
+ $chunks = (int)($payload / 11);
+ $remain = $payload - $chunks * 11;
+ $size = $chunks * 2;
+ if ($remain >= 6) {
+ ++$size;
+ }
+ break;
+ }
+ case QR_MODE_8B: {
+ $size = (int)($payload / 8);
+ break;
+ }
+ case QR_MODE_KJ: {
+ $size = (int)(($payload / 13) * 2);
+ break;
+ }
+ case QR_MODE_ST: {
+ $size = (int)($payload / 8);
+ break;
+ }
+ default: {
+ $size = 0;
+ break;
+ }
+ }
+ $maxsize = $this->maximumWords($mode, $version);
+ if ($size < 0) {
+ $size = 0;
+ }
+ if ($size > $maxsize) {
+ $size = $maxsize;
+ }
+ return $size;
+ }
+
+ /**
+ * createBitStream
+ * @param array $items
+ * @return array of items and total bits
+ */
+ protected function createBitStream($items) {
+ $total = 0;
+ foreach ($items as $key => $item) {
+ $items[$key] = $this->encodeBitStream($item, $this->version);
+ $bits = count($items[$key]['bstream']);
+ $total += $bits;
+ }
+ return array($items, $total);
+ }
+
+ /**
+ * convertData
+ * @param array $items
+ * @return array items
+ */
+ protected function convertData($items) {
+ $ver = $this->estimateVersion($items);
+ if ($ver > $this->version) {
+ $this->version = $ver;
+ }
+ for (;;) {
+ $cbs = $this->createBitStream($items);
+ $items = $cbs[0];
+ $bits = $cbs[1];
+ if ($bits < 0) {
+ return -1;
+ }
+ $ver = $this->getMinimumVersion((int)(($bits + 7) / 8), $this->level);
+ if ($ver < 0) {
+ return -1;
+ } elseif ($ver > $this->version) {
+ $this->version = $ver;
+ } else {
+ break;
+ }
+ }
+ return $items;
+ }
+
+ /**
+ * Append Padding Bit to bitstream
+ * @param array $bstream
+ * @return array bitstream
+ */
+ protected function appendPaddingBit($bstream) {
+ $bits = count($bstream);
+ $maxwords = $this->getDataLength($this->version, $this->level);
+ $maxbits = $maxwords * 8;
+ if ($maxbits == $bits) {
+ return 0;
+ }
+ if ($maxbits - $bits < 5) {
+ return $this->appendNum($bstream, $maxbits - $bits, 0);
+ }
+ $bits += 4;
+ $words = (int)(($bits + 7) / 8);
+ $padding = array();
+ $padding = $this->appendNum($padding, $words * 8 - $bits + 4, 0);
+ $padlen = $maxwords - $words;
+ if ($padlen > 0) {
+ $padbuf = array();
+ for ($i=0; $i<$padlen; ++$i) {
+ $padbuf[$i] = ($i&1)?0x11:0xec;
+ }
+ $padding = $this->appendBytes($padding, $padlen, $padbuf);
+ }
+ return $this->appendBitstream($bstream, $padding);
+ }
+
+ /**
+ * mergeBitStream
+ * @param array $bstream
+ * @return array bitstream
+ */
+ protected function mergeBitStream($items) {
+ $items = $this->convertData($items);
+ $bstream = array();
+ foreach ($items as $item) {
+ $bstream = $this->appendBitstream($bstream, $item['bstream']);
+ }
+ return $bstream;
+ }
+
+ /**
+ * Returns a stream of bits.
+ * @param int $items
+ * @return array padded merged byte stream
+ */
+ protected function getBitStream($items) {
+ $bstream = $this->mergeBitStream($items);
+ return $this->appendPaddingBit($bstream);
+ }
+
+ /**
+ * Pack all bit streams padding bits into a byte array.
+ * @param int $items
+ * @return array padded merged byte stream
+ */
+ protected function getByteStream($items) {
+ $bstream = $this->getBitStream($items);
+ return $this->bitstreamToByte($bstream);
+ }
+
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
+
+ // QRbitstream
+
+ /**
+ * Return an array with zeros
+ * @param int $setLength array size
+ * @return array
+ */
+ protected function allocate($setLength) {
+ return array_fill(0, $setLength, 0);
+ }
+
+ /**
+ * Return new bitstream from number
+ * @param int $bits number of bits
+ * @param int $num number
+ * @return array bitstream
+ */
+ protected function newFromNum($bits, $num) {
+ $bstream = $this->allocate($bits);
+ $mask = 1 << ($bits - 1);
+ for ($i=0; $i<$bits; ++$i) {
+ if ($num & $mask) {
+ $bstream[$i] = 1;
+ } else {
+ $bstream[$i] = 0;
+ }
+ $mask = $mask >> 1;
+ }
+ return $bstream;
+ }
+
+ /**
+ * Return new bitstream from bytes
+ * @param int $size size
+ * @param array $data bytes
+ * @return array bitstream
+ */
+ protected function newFromBytes($size, $data) {
+ $bstream = $this->allocate($size * 8);
+ $p=0;
+ for ($i=0; $i<$size; ++$i) {
+ $mask = 0x80;
+ for ($j=0; $j<8; ++$j) {
+ if ($data[$i] & $mask) {
+ $bstream[$p] = 1;
+ } else {
+ $bstream[$p] = 0;
+ }
+ $p++;
+ $mask = $mask >> 1;
+ }
+ }
+ return $bstream;
+ }
+
+ /**
+ * Append one bitstream to another
+ * @param array $bitstream original bitstream
+ * @param array $append bitstream to append
+ * @return array bitstream
+ */
+ protected function appendBitstream($bitstream, $append) {
+ if ((!is_array($append)) OR (count($append) == 0)) {
+ return $bitstream;
+ }
+ if (count($bitstream) == 0) {
+ return $append;
+ }
+ return array_values(array_merge($bitstream, $append));
+ }
+
+ /**
+ * Append one bitstream created from number to another
+ * @param array $bitstream original bitstream
+ * @param int $bits number of bits
+ * @param int $num number
+ * @return array bitstream
+ */
+ protected function appendNum($bitstream, $bits, $num) {
+ if ($bits == 0) {
+ return 0;
+ }
+ $b = $this->newFromNum($bits, $num);
+ return $this->appendBitstream($bitstream, $b);
+ }
+
+ /**
+ * Append one bitstream created from bytes to another
+ * @param array $bitstream original bitstream
+ * @param int $size size
+ * @param array $data bytes
+ * @return array bitstream
+ */
+ protected function appendBytes($bitstream, $size, $data) {
+ if ($size == 0) {
+ return 0;
+ }
+ $b = $this->newFromBytes($size, $data);
+ return $this->appendBitstream($bitstream, $b);
+ }
+
+ /**
+ * Convert bitstream to bytes
+ * @param array $bitstream original bitstream
+ * @return array of bytes
+ */
+ protected function bitstreamToByte($bstream) {
+ $size = count($bstream);
+ if ($size == 0) {
+ return array();
+ }
+ $data = array_fill(0, (int)(($size + 7) / 8), 0);
+ $bytes = (int)($size / 8);
+ $p = 0;
+ for ($i=0; $i<$bytes; $i++) {
+ $v = 0;
+ for ($j=0; $j<8; $j++) {
+ $v = $v << 1;
+ $v |= $bstream[$p];
+ $p++;
+ }
+ $data[$i] = $v;
+ }
+ if ($size & 7) {
+ $v = 0;
+ for ($j=0; $j<($size & 7); $j++) {
+ $v = $v << 1;
+ $v |= $bstream[$p];
+ $p++;
+ }
+ $data[$bytes] = $v;
+ }
+ return $data;
+ }
+
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
+
+ // QRspec
+
+ /**
+ * Replace a value on the array at the specified position
+ * @param array $srctab
+ * @param int $x X position
+ * @param int $y Y position
+ * @param string $repl value to replace
+ * @param int $replLen length of the repl string
+ * @return array srctab
+ */
+ protected function qrstrset($srctab, $x, $y, $repl, $replLen=false) {
+ $srctab[$y] = substr_replace($srctab[$y], ($replLen !== false)?substr($repl,0,$replLen):$repl, $x, ($replLen !== false)?$replLen:strlen($repl));
+ return $srctab;
+ }
+
+ /**
+ * Return maximum data code length (bytes) for the version.
+ * @param int $version version
+ * @param int $level error correction level
+ * @return int maximum size (bytes)
+ */
+ protected function getDataLength($version, $level) {
+ return $this->capacity[$version][QRCAP_WORDS] - $this->capacity[$version][QRCAP_EC][$level];
+ }
+
+ /**
+ * Return maximum error correction code length (bytes) for the version.
+ * @param int $version version
+ * @param int $level error correction level
+ * @return int ECC size (bytes)
+ */
+ protected function getECCLength($version, $level){
+ return $this->capacity[$version][QRCAP_EC][$level];
+ }
+
+ /**
+ * Return the width of the symbol for the version.
+ * @param int $version version
+ * @return int width
+ */
+ protected function getWidth($version) {
+ return $this->capacity[$version][QRCAP_WIDTH];
+ }
+
+ /**
+ * Return the numer of remainder bits.
+ * @param int $version version
+ * @return int number of remainder bits
+ */
+ protected function getRemainder($version) {
+ return $this->capacity[$version][QRCAP_REMINDER];
+ }
+
+ /**
+ * Return a version number that satisfies the input code length.
+ * @param int $size input code length (byte)
+ * @param int $level error correction level
+ * @return int version number
+ */
+ protected function getMinimumVersion($size, $level) {
+ for ($i=1; $i <= QRSPEC_VERSION_MAX; ++$i) {
+ $words = $this->capacity[$i][QRCAP_WORDS] - $this->capacity[$i][QRCAP_EC][$level];
+ if ($words >= $size) {
+ return $i;
+ }
+ }
+ return -1;
+ }
+
+ /**
+ * Return the size of length indicator for the mode and version.
+ * @param int $mode encoding mode
+ * @param int $version version
+ * @return int the size of the appropriate length indicator (bits).
+ */
+ protected function lengthIndicator($mode, $version) {
+ if ($mode == QR_MODE_ST) {
+ return 0;
+ }
+ if ($version <= 9) {
+ $l = 0;
+ } elseif ($version <= 26) {
+ $l = 1;
+ } else {
+ $l = 2;
+ }
+ return $this->lengthTableBits[$mode][$l];
+ }
+
+ /**
+ * Return the maximum length for the mode and version.
+ * @param int $mode encoding mode
+ * @param int $version version
+ * @return int the maximum length (bytes)
+ */
+ protected function maximumWords($mode, $version) {
+ if ($mode == QR_MODE_ST) {
+ return 3;
+ }
+ if ($version <= 9) {
+ $l = 0;
+ } else if ($version <= 26) {
+ $l = 1;
+ } else {
+ $l = 2;
+ }
+ $bits = $this->lengthTableBits[$mode][$l];
+ $words = (1 << $bits) - 1;
+ if ($mode == QR_MODE_KJ) {
+ $words *= 2; // the number of bytes is required
+ }
+ return $words;
+ }
+
+ /**
+ * Return an array of ECC specification.
+ * @param int $version version
+ * @param int $level error correction level
+ * @param array $spec an array of ECC specification contains as following: {# of type1 blocks, # of data code, # of ecc code, # of type2 blocks, # of data code}
+ * @return array spec
+ */
+ protected function getEccSpec($version, $level, $spec) {
+ if (count($spec) < 5) {
+ $spec = array(0, 0, 0, 0, 0);
+ }
+ $b1 = $this->eccTable[$version][$level][0];
+ $b2 = $this->eccTable[$version][$level][1];
+ $data = $this->getDataLength($version, $level);
+ $ecc = $this->getECCLength($version, $level);
+ if ($b2 == 0) {
+ $spec[0] = $b1;
+ $spec[1] = (int)($data / $b1);
+ $spec[2] = (int)($ecc / $b1);
+ $spec[3] = 0;
+ $spec[4] = 0;
+ } else {
+ $spec[0] = $b1;
+ $spec[1] = (int)($data / ($b1 + $b2));
+ $spec[2] = (int)($ecc / ($b1 + $b2));
+ $spec[3] = $b2;
+ $spec[4] = $spec[1] + 1;
+ }
+ return $spec;
+ }
+
+ /**
+ * Put an alignment marker.
+ * @param array $frame frame
+ * @param int $width width
+ * @param int $ox X center coordinate of the pattern
+ * @param int $oy Y center coordinate of the pattern
+ * @return array frame
+ */
+ protected function putAlignmentMarker($frame, $ox, $oy) {
+ $finder = array(
+ "\xa1\xa1\xa1\xa1\xa1",
+ "\xa1\xa0\xa0\xa0\xa1",
+ "\xa1\xa0\xa1\xa0\xa1",
+ "\xa1\xa0\xa0\xa0\xa1",
+ "\xa1\xa1\xa1\xa1\xa1"
+ );
+ $yStart = $oy - 2;
+ $xStart = $ox - 2;
+ for ($y=0; $y < 5; $y++) {
+ $frame = $this->qrstrset($frame, $xStart, $yStart+$y, $finder[$y]);
+ }
+ return $frame;
+ }
+
+ /**
+ * Put an alignment pattern.
+ * @param int $version version
+ * @param array $fram frame
+ * @param int $width width
+ * @return array frame
+ */
+ protected function putAlignmentPattern($version, $frame, $width) {
+ if ($version < 2) {
+ return $frame;
+ }
+ $d = $this->alignmentPattern[$version][1] - $this->alignmentPattern[$version][0];
+ if ($d < 0) {
+ $w = 2;
+ } else {
+ $w = (int)(($width - $this->alignmentPattern[$version][0]) / $d + 2);
+ }
+ if ($w * $w - 3 == 1) {
+ $x = $this->alignmentPattern[$version][0];
+ $y = $this->alignmentPattern[$version][0];
+ $frame = $this->putAlignmentMarker($frame, $x, $y);
+ return $frame;
+ }
+ $cx = $this->alignmentPattern[$version][0];
+ $wo = $w - 1;
+ for ($x=1; $x < $wo; ++$x) {
+ $frame = $this->putAlignmentMarker($frame, 6, $cx);
+ $frame = $this->putAlignmentMarker($frame, $cx, 6);
+ $cx += $d;
+ }
+ $cy = $this->alignmentPattern[$version][0];
+ for ($y=0; $y < $wo; ++$y) {
+ $cx = $this->alignmentPattern[$version][0];
+ for ($x=0; $x < $wo; ++$x) {
+ $frame = $this->putAlignmentMarker($frame, $cx, $cy);
+ $cx += $d;
+ }
+ $cy += $d;
+ }
+ return $frame;
+ }
+
+ /**
+ * Return BCH encoded version information pattern that is used for the symbol of version 7 or greater. Use lower 18 bits.
+ * @param int $version version
+ * @return BCH encoded version information pattern
+ */
+ protected function getVersionPattern($version) {
+ if (($version < 7) OR ($version > QRSPEC_VERSION_MAX)) {
+ return 0;
+ }
+ return $this->versionPattern[($version - 7)];
+ }
+
+ /**
+ * Return BCH encoded format information pattern.
+ * @param array $mask
+ * @param int $level error correction level
+ * @return BCH encoded format information pattern
+ */
+ protected function getFormatInfo($mask, $level) {
+ if (($mask < 0) OR ($mask > 7)) {
+ return 0;
+ }
+ if (($level < 0) OR ($level > 3)) {
+ return 0;
+ }
+ return $this->formatInfo[$level][$mask];
+ }
+
+ /**
+ * Put a finder pattern.
+ * @param array $frame frame
+ * @param int $width width
+ * @param int $ox X center coordinate of the pattern
+ * @param int $oy Y center coordinate of the pattern
+ * @return array frame
+ */
+ protected function putFinderPattern($frame, $ox, $oy) {
+ $finder = array(
+ "\xc1\xc1\xc1\xc1\xc1\xc1\xc1",
+ "\xc1\xc0\xc0\xc0\xc0\xc0\xc1",
+ "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
+ "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
+ "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
+ "\xc1\xc0\xc0\xc0\xc0\xc0\xc1",
+ "\xc1\xc1\xc1\xc1\xc1\xc1\xc1"
+ );
+ for ($y=0; $y < 7; $y++) {
+ $frame = $this->qrstrset($frame, $ox, ($oy + $y), $finder[$y]);
+ }
+ return $frame;
+ }
+
+ /**
+ * Return a copy of initialized frame.
+ * @param int $version version
+ * @return Array of unsigned char.
+ */
+ protected function createFrame($version) {
+ $width = $this->capacity[$version][QRCAP_WIDTH];
+ $frameLine = str_repeat ("\0", $width);
+ $frame = array_fill(0, $width, $frameLine);
+ // Finder pattern
+ $frame = $this->putFinderPattern($frame, 0, 0);
+ $frame = $this->putFinderPattern($frame, $width - 7, 0);
+ $frame = $this->putFinderPattern($frame, 0, $width - 7);
+ // Separator
+ $yOffset = $width - 7;
+ for ($y=0; $y < 7; ++$y) {
+ $frame[$y][7] = "\xc0";
+ $frame[$y][$width - 8] = "\xc0";
+ $frame[$yOffset][7] = "\xc0";
+ ++$yOffset;
+ }
+ $setPattern = str_repeat("\xc0", 8);
+ $frame = $this->qrstrset($frame, 0, 7, $setPattern);
+ $frame = $this->qrstrset($frame, $width-8, 7, $setPattern);
+ $frame = $this->qrstrset($frame, 0, $width - 8, $setPattern);
+ // Format info
+ $setPattern = str_repeat("\x84", 9);
+ $frame = $this->qrstrset($frame, 0, 8, $setPattern);
+ $frame = $this->qrstrset($frame, $width - 8, 8, $setPattern, 8);
+ $yOffset = $width - 8;
+ for ($y=0; $y < 8; ++$y,++$yOffset) {
+ $frame[$y][8] = "\x84";
+ $frame[$yOffset][8] = "\x84";
+ }
+ // Timing pattern
+ $wo = $width - 15;
+ for ($i=1; $i < $wo; ++$i) {
+ $frame[6][7+$i] = chr(0x90 | ($i & 1));
+ $frame[7+$i][6] = chr(0x90 | ($i & 1));
+ }
+ // Alignment pattern
+ $frame = $this->putAlignmentPattern($version, $frame, $width);
+ // Version information
+ if ($version >= 7) {
+ $vinf = $this->getVersionPattern($version);
+ $v = $vinf;
+ for ($x=0; $x<6; ++$x) {
+ for ($y=0; $y<3; ++$y) {
+ $frame[($width - 11)+$y][$x] = chr(0x88 | ($v & 1));
+ $v = $v >> 1;
+ }
+ }
+ $v = $vinf;
+ for ($y=0; $y<6; ++$y) {
+ for ($x=0; $x<3; ++$x) {
+ $frame[$y][$x+($width - 11)] = chr(0x88 | ($v & 1));
+ $v = $v >> 1;
+ }
+ }
+ }
+ // and a little bit...
+ $frame[$width - 8][8] = "\x81";
+ return $frame;
+ }
+
+ /**
+ * Set new frame for the specified version.
+ * @param int $version version
+ * @return Array of unsigned char.
+ */
+ protected function newFrame($version) {
+ if (($version < 1) OR ($version > QRSPEC_VERSION_MAX)) {
+ return NULL;
+ }
+ if (!isset($this->frames[$version])) {
+ $this->frames[$version] = $this->createFrame($version);
+ }
+ if (is_null($this->frames[$version])) {
+ return NULL;
+ }
+ return $this->frames[$version];
+ }
+
+ /**
+ * Return block number 0
+ * @param array $spec
+ * @return int value
+ */
+ protected function rsBlockNum($spec) {
+ return ($spec[0] + $spec[3]);
+ }
+
+ /**
+ * Return block number 1
+ * @param array $spec
+ * @return int value
+ */
+ protected function rsBlockNum1($spec) {
+ return $spec[0];
+ }
+
+ /**
+ * Return data codes 1
+ * @param array $spec
+ * @return int value
+ */
+ protected function rsDataCodes1($spec) {
+ return $spec[1];
+ }
+
+ /**
+ * Return ecc codes 1
+ * @param array $spec
+ * @return int value
+ */
+ protected function rsEccCodes1($spec) {
+ return $spec[2];
+ }
+
+ /**
+ * Return block number 2
+ * @param array $spec
+ * @return int value
+ */
+ protected function rsBlockNum2($spec) {
+ return $spec[3];
+ }
+
+ /**
+ * Return data codes 2
+ * @param array $spec
+ * @return int value
+ */
+ protected function rsDataCodes2($spec) {
+ return $spec[4];
+ }
+
+ /**
+ * Return ecc codes 2
+ * @param array $spec
+ * @return int value
+ */
+ protected function rsEccCodes2($spec) {
+ return $spec[2];
+ }
+
+ /**
+ * Return data length
+ * @param array $spec
+ * @return int value
+ */
+ protected function rsDataLength($spec) {
+ return ($spec[0] * $spec[1]) + ($spec[3] * $spec[4]);
+ }
+
+ /**
+ * Return ecc length
+ * @param array $spec
+ * @return int value
+ */
+ protected function rsEccLength($spec) {
+ return ($spec[0] + $spec[3]) * $spec[2];
+ }
+
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
+
+ // QRrs
+
+ /**
+ * Initialize a Reed-Solomon codec and add it to existing rsitems
+ * @param int $symsize symbol size, bits
+ * @param int $gfpoly Field generator polynomial coefficients
+ * @param int $fcr first root of RS code generator polynomial, index form
+ * @param int $prim primitive element to generate polynomial roots
+ * @param int $nroots RS code generator polynomial degree (number of roots)
+ * @param int $pad padding bytes at front of shortened block
+ * @return array Array of RS values:<ul><li>mm = Bits per symbol;</li><li>nn = Symbols per block;</li><li>alpha_to = log lookup table array;</li><li>index_of = Antilog lookup table array;</li><li>genpoly = Generator polynomial array;</li><li>nroots = Number of generator;</li><li>roots = number of parity symbols;</li><li>fcr = First consecutive root, index form;</li><li>prim = Primitive element, index form;</li><li>iprim = prim-th root of 1, index form;</li><li>pad = Padding bytes in shortened block;</li><li>gfpoly</ul>.
+ */
+ protected function init_rs($symsize, $gfpoly, $fcr, $prim, $nroots, $pad) {
+ foreach ($this->rsitems as $rs) {
+ if (($rs['pad'] != $pad) OR ($rs['nroots'] != $nroots) OR ($rs['mm'] != $symsize)
+ OR ($rs['gfpoly'] != $gfpoly) OR ($rs['fcr'] != $fcr) OR ($rs['prim'] != $prim)) {
+ continue;
+ }
+ return $rs;
+ }
+ $rs = $this->init_rs_char($symsize, $gfpoly, $fcr, $prim, $nroots, $pad);
+ array_unshift($this->rsitems, $rs);
+ return $rs;
+ }
+
+ // - - - - - - - - - - - - - - - - - - - - - - - - -
+
+ // QRrsItem
+
+ /**
+ * modnn
+ * @param array RS values
+ * @param int $x X position
+ * @return int X osition
+ */
+ protected function modnn($rs, $x) {
+ while ($x >= $rs['nn']) {
+ $x -= $rs['nn'];
+ $x = ($x >> $rs['mm']) + ($x & $rs['nn']);
+ }
+ return $x;
+ }
+
+ /**
+ * Initialize a Reed-Solomon codec and returns an array of values.
+ * @param int $symsize symbol size, bits
+ * @param int $gfpoly Field generator polynomial coefficients
+ * @param int $fcr first root of RS code generator polynomial, index form
+ * @param int $prim primitive element to generate polynomial roots
+ * @param int $nroots RS code generator polynomial degree (number of roots)
+ * @param int $pad padding bytes at front of shortened block
+ * @return array Array of RS values:<ul><li>mm = Bits per symbol;</li><li>nn = Symbols per block;</li><li>alpha_to = log lookup table array;</li><li>index_of = Antilog lookup table array;</li><li>genpoly = Generator polynomial array;</li><li>nroots = Number of generator;</li><li>roots = number of parity symbols;</li><li>fcr = First consecutive root, index form;</li><li>prim = Primitive element, index form;</li><li>iprim = prim-th root of 1, index form;</li><li>pad = Padding bytes in shortened block;</li><li>gfpoly</ul>.
+ */
+ protected function init_rs_char($symsize, $gfpoly, $fcr, $prim, $nroots, $pad) {
+ // Based on Reed solomon encoder by Phil Karn, KA9Q (GNU-LGPLv2)
+ $rs = null;
+ // Check parameter ranges
+ if (($symsize < 0) OR ($symsize > 8)) {
+ return $rs;
+ }
+ if (($fcr < 0) OR ($fcr >= (1<<$symsize))) {
+ return $rs;
+ }
+ if (($prim <= 0) OR ($prim >= (1<<$symsize))) {
+ return $rs;
+ }
+ if (($nroots < 0) OR ($nroots >= (1<<$symsize))) {
+ return $rs;
+ }
+ if (($pad < 0) OR ($pad >= ((1<<$symsize) -1 - $nroots))) {
+ return $rs;
+ }
+ $rs = array();
+ $rs['mm'] = $symsize;
+ $rs['nn'] = (1 << $symsize) - 1;
+ $rs['pad'] = $pad;
+ $rs['alpha_to'] = array_fill(0, ($rs['nn'] + 1), 0);
+ $rs['index_of'] = array_fill(0, ($rs['nn'] + 1), 0);
+ // PHP style macro replacement ;)
+ $NN =& $rs['nn'];
+ $A0 =& $NN;
+ // Generate Galois field lookup tables
+ $rs['index_of'][0] = $A0; // log(zero) = -inf
+ $rs['alpha_to'][$A0] = 0; // alpha**-inf = 0
+ $sr = 1;
+ for ($i=0; $i<$rs['nn']; ++$i) {
+ $rs['index_of'][$sr] = $i;
+ $rs['alpha_to'][$i] = $sr;
+ $sr <<= 1;
+ if ($sr & (1 << $symsize)) {
+ $sr ^= $gfpoly;
+ }
+ $sr &= $rs['nn'];
+ }
+ if ($sr != 1) {
+ // field generator polynomial is not primitive!
+ return NULL;
+ }
+ // Form RS code generator polynomial from its roots
+ $rs['genpoly'] = array_fill(0, ($nroots + 1), 0);
+ $rs['fcr'] = $fcr;
+ $rs['prim'] = $prim;
+ $rs['nroots'] = $nroots;
+ $rs['gfpoly'] = $gfpoly;
+ // Find prim-th root of 1, used in decoding
+ for ($iprim=1; ($iprim % $prim) != 0; $iprim += $rs['nn']) {
+ ; // intentional empty-body loop!
+ }
+ $rs['iprim'] = (int)($iprim / $prim);
+ $rs['genpoly'][0] = 1;
+
+
+ for ($i = 0,$root=$fcr*$prim; $i < $nroots; $i++, $root += $prim) {
+ $rs['genpoly'][$i+1] = 1;
+ // Multiply rs->genpoly[] by @**(root + x)
+ for ($j = $i; $j > 0; --$j) {
+ if ($rs['genpoly'][$j] != 0) {
+ $rs['genpoly'][$j] = $rs['genpoly'][$j-1] ^ $rs['alpha_to'][$this->modnn($rs, $rs['index_of'][$rs['genpoly'][$j]] + $root)];
+ } else {
+ $rs['genpoly'][$j] = $rs['genpoly'][$j-1];
+ }
+ }
+ // rs->genpoly[0] can never be zero
+ $rs['genpoly'][0] = $rs['alpha_to'][$this->modnn($rs, $rs['index_of'][$rs['genpoly'][0]] + $root)];
+ }
+ // convert rs->genpoly[] to index form for quicker encoding
+ for ($i = 0; $i <= $nroots; ++$i) {
+ $rs['genpoly'][$i] = $rs['index_of'][$rs['genpoly'][$i]];
+ }
+ return $rs;
+ }
+
+ /**
+ * Encode a Reed-Solomon codec and returns the parity array
+ * @param array $rs RS values
+ * @param array $data data
+ * @param array $parity parity
+ * @return parity array
+ */
+ protected function encode_rs_char($rs, $data, $parity) {
+ $MM =& $rs['mm']; // bits per symbol
+ $NN =& $rs['nn']; // the total number of symbols in a RS block
+ $ALPHA_TO =& $rs['alpha_to']; // the address of an array of NN elements to convert Galois field elements in index (log) form to polynomial form
+ $INDEX_OF =& $rs['index_of']; // the address of an array of NN elements to convert Galois field elements in polynomial form to index (log) form
+ $GENPOLY =& $rs['genpoly']; // an array of NROOTS+1 elements containing the generator polynomial in index form
+ $NROOTS =& $rs['nroots']; // the number of roots in the RS code generator polynomial, which is the same as the number of parity symbols in a block
+ $FCR =& $rs['fcr']; // first consecutive root, index form
+ $PRIM =& $rs['prim']; // primitive element, index form
+ $IPRIM =& $rs['iprim']; // prim-th root of 1, index form
+ $PAD =& $rs['pad']; // the number of pad symbols in a block
+ $A0 =& $NN;
+ $parity = array_fill(0, $NROOTS, 0);
+ for ($i=0; $i < ($NN - $NROOTS - $PAD); $i++) {
+ $feedback = $INDEX_OF[$data[$i] ^ $parity[0]];
+ if ($feedback != $A0) {
+ // feedback term is non-zero
+ // This line is unnecessary when GENPOLY[NROOTS] is unity, as it must
+ // always be for the polynomials constructed by init_rs()
+ $feedback = $this->modnn($rs, $NN - $GENPOLY[$NROOTS] + $feedback);
+ for ($j=1; $j < $NROOTS; ++$j) {
+ $parity[$j] ^= $ALPHA_TO[$this->modnn($rs, $feedback + $GENPOLY[($NROOTS - $j)])];
+ }
+ }
+ // Shift
+ array_shift($parity);
+ if ($feedback != $A0) {
+ array_push($parity, $ALPHA_TO[$this->modnn($rs, $feedback + $GENPOLY[0])]);
+ } else {
+ array_push($parity, 0);
+ }
+ }
+ return $parity;
+ }
+
+ } // end QRcode class
+
+} // END OF "class_exists QRcode"
+?>
diff --git a/library/phpqrcode/cache/frame_1.dat b/library/phpqrcode/cache/frame_1.dat
new file mode 100644
index 000000000..be28feac4
--- /dev/null
+++ b/library/phpqrcode/cache/frame_1.dat
@@ -0,0 +1,2 @@
+xÚÁ À E9³u`³"PÅ„CÛ牗T!0$
+E•É²Q™Ém½úhÛ¾9{kI"› 9Ln)Ap¤åÖ¾Ë>ß^‡Õz³mënÅ–;ü´mßn†ú¦Ë \ No newline at end of file
diff --git a/library/phpqrcode/cache/frame_1.png b/library/phpqrcode/cache/frame_1.png
new file mode 100644
index 000000000..86ce6e98d
--- /dev/null
+++ b/library/phpqrcode/cache/frame_1.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_10.dat b/library/phpqrcode/cache/frame_10.dat
new file mode 100644
index 000000000..aff163f68
--- /dev/null
+++ b/library/phpqrcode/cache/frame_10.dat
Binary files differ
diff --git a/library/phpqrcode/cache/frame_10.png b/library/phpqrcode/cache/frame_10.png
new file mode 100644
index 000000000..dbfcd70b5
--- /dev/null
+++ b/library/phpqrcode/cache/frame_10.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_11.dat b/library/phpqrcode/cache/frame_11.dat
new file mode 100644
index 000000000..95af68a47
--- /dev/null
+++ b/library/phpqrcode/cache/frame_11.dat
Binary files differ
diff --git a/library/phpqrcode/cache/frame_11.png b/library/phpqrcode/cache/frame_11.png
new file mode 100644
index 000000000..c07c761f1
--- /dev/null
+++ b/library/phpqrcode/cache/frame_11.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_12.dat b/library/phpqrcode/cache/frame_12.dat
new file mode 100644
index 000000000..73228b362
--- /dev/null
+++ b/library/phpqrcode/cache/frame_12.dat
Binary files differ
diff --git a/library/phpqrcode/cache/frame_12.png b/library/phpqrcode/cache/frame_12.png
new file mode 100644
index 000000000..8ba67822c
--- /dev/null
+++ b/library/phpqrcode/cache/frame_12.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_13.dat b/library/phpqrcode/cache/frame_13.dat
new file mode 100644
index 000000000..2256f0e34
--- /dev/null
+++ b/library/phpqrcode/cache/frame_13.dat
Binary files differ
diff --git a/library/phpqrcode/cache/frame_13.png b/library/phpqrcode/cache/frame_13.png
new file mode 100644
index 000000000..6e49d35a0
--- /dev/null
+++ b/library/phpqrcode/cache/frame_13.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_14.dat b/library/phpqrcode/cache/frame_14.dat
new file mode 100644
index 000000000..e9ae09329
--- /dev/null
+++ b/library/phpqrcode/cache/frame_14.dat
Binary files differ
diff --git a/library/phpqrcode/cache/frame_14.png b/library/phpqrcode/cache/frame_14.png
new file mode 100644
index 000000000..efc36c034
--- /dev/null
+++ b/library/phpqrcode/cache/frame_14.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_15.dat b/library/phpqrcode/cache/frame_15.dat
new file mode 100644
index 000000000..18727818d
--- /dev/null
+++ b/library/phpqrcode/cache/frame_15.dat
Binary files differ
diff --git a/library/phpqrcode/cache/frame_15.png b/library/phpqrcode/cache/frame_15.png
new file mode 100644
index 000000000..a9f416c7c
--- /dev/null
+++ b/library/phpqrcode/cache/frame_15.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_16.dat b/library/phpqrcode/cache/frame_16.dat
new file mode 100644
index 000000000..60af67845
--- /dev/null
+++ b/library/phpqrcode/cache/frame_16.dat
@@ -0,0 +1 @@
+xÚí™A„ E]sëIX´;¸Ün6€È`‚q”êêW6ñ奚`Œ%A/3!¢°‚¢Š!g–ÈÌ¡’1N) éE¢Ï|;®—>6â¸Þ97$ëÄôëc]kköwé1Öü[·m­CÍœcÊRºÄê¹>¦èµ¾šE,•hʼnp„#áxFyWÏÇVWGçòÕ3¼Õ+шþàË“úSŽâ}Äž#áG8b^c^cÏÀŽp„c&3YQ"ñŽ÷çÌvµù›…ñàÎþþ¼–¹kÞ9ŠÜ‡÷}”¹³ï×ú ¢Ä¿QäÿL—/ÝÔÀÏ \ No newline at end of file
diff --git a/library/phpqrcode/cache/frame_16.png b/library/phpqrcode/cache/frame_16.png
new file mode 100644
index 000000000..6ac8fe890
--- /dev/null
+++ b/library/phpqrcode/cache/frame_16.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_17.dat b/library/phpqrcode/cache/frame_17.dat
new file mode 100644
index 000000000..87f0cf593
--- /dev/null
+++ b/library/phpqrcode/cache/frame_17.dat
Binary files differ
diff --git a/library/phpqrcode/cache/frame_17.png b/library/phpqrcode/cache/frame_17.png
new file mode 100644
index 000000000..5b929ac73
--- /dev/null
+++ b/library/phpqrcode/cache/frame_17.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_18.dat b/library/phpqrcode/cache/frame_18.dat
new file mode 100644
index 000000000..bb7138c1d
--- /dev/null
+++ b/library/phpqrcode/cache/frame_18.dat
@@ -0,0 +1,2 @@
+xÚí™A
+ƒ0E]çÖ…,2;sƒä&ÉÍšh¥ÛêO¡ôÝÈàã1&09OIv@DDÒ Ì&§Ù‰KXÈÕFv•<Ádqò9Ö<%h•¹ Yïs !(d¥²ës;~||b(ÏøYůg#µ`œK ±S¼Åô¹Ä¶˜ùsàidßLg:Ó™Îtþ/gmª™ƒkÅMâ3³{­4rTÈQýÿe¥·s·>ó<Ó™Ît¦3éÌ;ïH¼#Ñ™Ît¦3ÍYœ+og©hù¶óµÙ½¬lnðûF>Øi^»#awm;gè~pÛgìNs{6z’‘»ãºïÞäp¾Ê' \ No newline at end of file
diff --git a/library/phpqrcode/cache/frame_18.png b/library/phpqrcode/cache/frame_18.png
new file mode 100644
index 000000000..ee0d6a35e
--- /dev/null
+++ b/library/phpqrcode/cache/frame_18.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_19.dat b/library/phpqrcode/cache/frame_19.dat
new file mode 100644
index 000000000..95e26adc1
--- /dev/null
+++ b/library/phpqrcode/cache/frame_19.dat
@@ -0,0 +1,3 @@
+xÚíšA
+Ä E»öÖ.ÌNo 7Ñ›¶iiRÚN2‹áW%ðxÁ@ÚÚœê'­
+u6×êˆ.*S;}˜«ÒàÏT úèÌzrt¹ï%ç,ÒÅÚâÎ}ç;“âç)¹Ÿ˜âÝZÚîLåè¹÷¬Pçç$¯×÷ÏqËgœLÂôdJ‡;Üáw¸Ãý.]z#Ÿ¾«[ͽïOg‚­Æô"ÐË áBíî¦}Ç}‡;Üáw¸Ãî˜#1GbŽ„;Üáw¸Ãý_ÝC+w¢@Dfî÷ïç™uø2™ÅÚÉNþû9R7|pWßkïû®¿“ßßkºö¿ºú»¼ÎÓ \ No newline at end of file
diff --git a/library/phpqrcode/cache/frame_19.png b/library/phpqrcode/cache/frame_19.png
new file mode 100644
index 000000000..20fddd84c
--- /dev/null
+++ b/library/phpqrcode/cache/frame_19.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_2.dat b/library/phpqrcode/cache/frame_2.dat
new file mode 100644
index 000000000..7e42f31ca
--- /dev/null
+++ b/library/phpqrcode/cache/frame_2.dat
@@ -0,0 +1 @@
+xÚÍ’Í À F{vë&  à&°Y+?Z1öÐSŸ'y!¢ŸÌÁa815&£•Û´ŽÙHå£Ùžc³•l«ÏFÆè1º#é6 fÊÖü©§6Äø•O7ˆ¨†C¦«›ðÖžÏ8gI®ÏöfB¦ÃÄÿæ\DÔ»( \ No newline at end of file
diff --git a/library/phpqrcode/cache/frame_2.png b/library/phpqrcode/cache/frame_2.png
new file mode 100644
index 000000000..9c150ebe3
--- /dev/null
+++ b/library/phpqrcode/cache/frame_2.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_20.dat b/library/phpqrcode/cache/frame_20.dat
new file mode 100644
index 000000000..d5ecc1d8a
--- /dev/null
+++ b/library/phpqrcode/cache/frame_20.dat
Binary files differ
diff --git a/library/phpqrcode/cache/frame_20.png b/library/phpqrcode/cache/frame_20.png
new file mode 100644
index 000000000..23a061d54
--- /dev/null
+++ b/library/phpqrcode/cache/frame_20.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_21.dat b/library/phpqrcode/cache/frame_21.dat
new file mode 100644
index 000000000..1974dd9d4
--- /dev/null
+++ b/library/phpqrcode/cache/frame_21.dat
@@ -0,0 +1 @@
+xÚíšA„ E]sëIX´;¹Ün6Up‚“в™ÿ]Ù˜þ< i-eWö‹¶˜)×äÅ•¼ÉÂ…H\jvqÙHL\6–šÝÐ…rI›¢LܹÜÕ%ÅÓ@´þ±V—vÆÂúý¤(ÏP4|ÎXnÒgÉß¼~]D¾ÉÕ×u1Us S\À°€,ÿÅ2Þ¢N§Ã?D›KºüF-:“eJ]p_À°€,˜a0Ã`†ÁÝ XÀ°`†Á ƒw,` X´]˜ˆ™‚¹‹˜°5 ‰®Y4{å±æñ2íûåvçJs†±Ûí9±˜í)õu±Û¹êÏØ,«]¸“‹Ù^_§7$ƒ_Í \ No newline at end of file
diff --git a/library/phpqrcode/cache/frame_21.png b/library/phpqrcode/cache/frame_21.png
new file mode 100644
index 000000000..291598c72
--- /dev/null
+++ b/library/phpqrcode/cache/frame_21.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_22.dat b/library/phpqrcode/cache/frame_22.dat
new file mode 100644
index 000000000..0f01802d2
--- /dev/null
+++ b/library/phpqrcode/cache/frame_22.dat
@@ -0,0 +1,3 @@
+xÚíšA
+„0 E]{ë.’]{{{³©Z¥BepÆÞwe@V›ERZ3»Á"*2o€4¦y‰)i#dÒbdFÒ…´ŒI"ú‘—4ž½W­IíuŠÓ45ßx«.Z­SÙ{ÁŸ¯8åËÿk={o.±qÊÙ£[œÍ:帒q»õƒy
+)t#á„N8ádCj-OOG}¼:/Ÿ:sz!Å)^<ùe½·S·uâ{ 'œp 'ú=ú=ú=¾'œp 'œp¢ß£ß£ßãN8á„Óÿ9©ªˆôpQQõ]HÔpz¾ØGœ^æ½Qº˜I|¾ß³u;9™ÎïÕëd;“X~$ËÙÑÉt¶ÊÛédy \ No newline at end of file
diff --git a/library/phpqrcode/cache/frame_22.png b/library/phpqrcode/cache/frame_22.png
new file mode 100644
index 000000000..bc97bd01b
--- /dev/null
+++ b/library/phpqrcode/cache/frame_22.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_23.dat b/library/phpqrcode/cache/frame_23.dat
new file mode 100644
index 000000000..ee3b37073
--- /dev/null
+++ b/library/phpqrcode/cache/frame_23.dat
@@ -0,0 +1,3 @@
+xÚíšA
+à E³öÖfo 7Ñ›U) %M!ΔÂûYu(<šð“sK²“Tœ›Ó
+É&§IÚ\i+¥Ðª™(m®´FQ¡¹¯h±æöüèv~n1„oÏ]sëçÖï¤_ÞŸÊ3`î_w2õȹ•lc[¼•;·Ûc֟ˤ’Nóª4Üpà 7ÜpÃímTÿ¸œ›‘ÝêrÞiñä_ƒç¿pS=7Þ7Üpà 7ÜpÃ>IŸ¤Oò-Á 7Üpà 7ú$}’>É·7Üpà ·tss‰Órs §åVÍÎÜÆ÷’mýï¡Ò¹ò‡Þñ}R~7ôà&¾÷º?7ùÞýÔ¦Iïbhâ{æ»<ÀMi- \ No newline at end of file
diff --git a/library/phpqrcode/cache/frame_23.png b/library/phpqrcode/cache/frame_23.png
new file mode 100644
index 000000000..b8f16ae23
--- /dev/null
+++ b/library/phpqrcode/cache/frame_23.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_24.dat b/library/phpqrcode/cache/frame_24.dat
new file mode 100644
index 000000000..7b92e29c4
--- /dev/null
+++ b/library/phpqrcode/cache/frame_24.dat
@@ -0,0 +1 @@
+xÚí›Aƒ E»öÖMX0;¸ÜnVP4ÚHSS»xßU3±/O´ý LiJ4ž±Vâ JCŠ%ý‰6VR&ÃÞD‘BœHjDù‚JÏ??™¯êBl­cDZñ½§'óU­ëXïUïÞ0æÃywÍį÷j¬é똳€3Å›¾ë˜cj†ù£{¨¥½:GqÄGÿÝñøŸûÚ°N†v;¹¶ç¬“J ‡ÄÐ<û‡É]ŽêëÈóˆ#Ž8âˆ#Ž8âH'§“ÓÉùÍÁGqÄGéätr:9Ï#Ž8âˆ#Ž8âØ“h­ˆ¯NÔt”Œ´Ö_ÝØ>t¹eëìS­¯¦æžù^\g¯õÎQe?ùvuöÌoïÕ;ˆï>ìˆ*ïwlò×mÑ \ No newline at end of file
diff --git a/library/phpqrcode/cache/frame_24.png b/library/phpqrcode/cache/frame_24.png
new file mode 100644
index 000000000..397c64f85
--- /dev/null
+++ b/library/phpqrcode/cache/frame_24.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_25.dat b/library/phpqrcode/cache/frame_25.dat
new file mode 100644
index 000000000..ba125182e
--- /dev/null
+++ b/library/phpqrcode/cache/frame_25.dat
@@ -0,0 +1,3 @@
+xÚíÛA
+à …á¬së‚‹™]rƒx½Y51mMÈBG
+ÿ¸*Sx|Ua5Ƶ‚Z—Š„-,Ž1ä²HÑPÒRj–šX5§®i†©’áG©>W¥ŽžRïöÕ/Ëâ+uT廯å Ïӯ嗴ªuæÏ¥Ú[Sía£[kví÷5•+5n§Á´JêÜ%+V¬X±bÅŠõ߬u'Á±þÔû SRýå÷štzZ»ì+÷+V¬X±bÅŠ•ÙŸÙŸÙŸûŠ+V¬X±bÅÊìÏìÏìÏ}ÅŠ+V¬X±ö±ª¤¥ÖVI©¢ÖÖ‘+k«qÿ[úËtŽ·oVZÍþvoNV³wÇ}µ{³r<ýR­Þ"RÍÞ]ê W«r} \ No newline at end of file
diff --git a/library/phpqrcode/cache/frame_25.png b/library/phpqrcode/cache/frame_25.png
new file mode 100644
index 000000000..25bc4454a
--- /dev/null
+++ b/library/phpqrcode/cache/frame_25.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_26.dat b/library/phpqrcode/cache/frame_26.dat
new file mode 100644
index 000000000..d34a73f15
--- /dev/null
+++ b/library/phpqrcode/cache/frame_26.dat
@@ -0,0 +1,2 @@
+xÚí›A
+à E³öÖ…,t§7ˆ7Ñ›U E)i7ï»*~cÃüÅÄXÖEBÆè°FC–˜³6¡:&çL,å¬Mv.ŽÂÎæKgŸÕ¸ãYMç>ŸÎí>ûmÛš·?ª•vô¹¾mg?ßÒ±Îþ³æηªd˜“Cµ¹U¦ÏIk•ÚÚE\ÕÙMs†f˜a†f˜a>œ[sÓˆ9쬩ެ8bö<kÕÙ7œ}ç†k³™§õ™ÿ3Ì0à 3Ì0à 3Ìä*r¹Š\Å7 f˜a†f˜a†fr¹Š\Å7 f˜a†f˜a†YÆÙÎ æd›4ƒ9kíÆÌÔÝyûX y‰gŒØÙ)›«dwnÌ¢ûU×>Ëî”]ßöLgÉÝÁ›³è¾äEo‚ w1 \ No newline at end of file
diff --git a/library/phpqrcode/cache/frame_26.png b/library/phpqrcode/cache/frame_26.png
new file mode 100644
index 000000000..f4a6b3938
--- /dev/null
+++ b/library/phpqrcode/cache/frame_26.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_27.dat b/library/phpqrcode/cache/frame_27.dat
new file mode 100644
index 000000000..b4d9ffd4f
--- /dev/null
+++ b/library/phpqrcode/cache/frame_27.dat
Binary files differ
diff --git a/library/phpqrcode/cache/frame_27.png b/library/phpqrcode/cache/frame_27.png
new file mode 100644
index 000000000..8419ec230
--- /dev/null
+++ b/library/phpqrcode/cache/frame_27.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_28.dat b/library/phpqrcode/cache/frame_28.dat
new file mode 100644
index 000000000..8cbaa1961
--- /dev/null
+++ b/library/phpqrcode/cache/frame_28.dat
Binary files differ
diff --git a/library/phpqrcode/cache/frame_28.png b/library/phpqrcode/cache/frame_28.png
new file mode 100644
index 000000000..7609d8e1f
--- /dev/null
+++ b/library/phpqrcode/cache/frame_28.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_29.dat b/library/phpqrcode/cache/frame_29.dat
new file mode 100644
index 000000000..5e4a71103
--- /dev/null
+++ b/library/phpqrcode/cache/frame_29.dat
@@ -0,0 +1,2 @@
+xÚíÜAƒ …a×Þº ‹™Ü@n7+*¶šÖÚ4‘!Í?®Jšðò ³”抮«]ª—ÉSŸâTf)–ÙsŠIÂ"…È”bžÝ0…Š|•"LuÙ¸î,Ž×EÇ1\6®*ÏuQÞ?¼>aÌÏ…ãþñŽÄRõ-r­“÷n.ïꯋ\®T¿ü:Ó*)|)°À ,°À ,þÑâêóåéx_ã¬}:^R„ƒUoÉ¢‰uÁ~ÁÞ‰X`XÐÐÐа_`X`XÐÐа_`X`XÐÐÐаwbX`¿¥PUõö)DÔÞ"cÈ{‹zçÎõ3ê›é<}¸ó¡^?b÷mÿÎÂìžƒíº°»óaûŽ´’Âê.]
+³{Q6uáT,9 \ No newline at end of file
diff --git a/library/phpqrcode/cache/frame_29.png b/library/phpqrcode/cache/frame_29.png
new file mode 100644
index 000000000..ffe072c86
--- /dev/null
+++ b/library/phpqrcode/cache/frame_29.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_3.dat b/library/phpqrcode/cache/frame_3.dat
new file mode 100644
index 000000000..188d531c2
--- /dev/null
+++ b/library/phpqrcode/cache/frame_3.dat
@@ -0,0 +1 @@
+xÚí“Á À E{vë&  à&°Y+¢b¤öÐkŸ'yù‘¤¿ÌÁa :äÀTXlÞ¶$W+Óvû®îœ¢9}gRæ¬@H0YPB½ÆÃEmÚÚ?ûœÍ±ísœÖ"bµìt2cnÖé†É:½ﺭë;¿Y§“ÃzÿQã«7¿Ô \ No newline at end of file
diff --git a/library/phpqrcode/cache/frame_3.png b/library/phpqrcode/cache/frame_3.png
new file mode 100644
index 000000000..945ee7cb9
--- /dev/null
+++ b/library/phpqrcode/cache/frame_3.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_30.dat b/library/phpqrcode/cache/frame_30.dat
new file mode 100644
index 000000000..44cf3d317
--- /dev/null
+++ b/library/phpqrcode/cache/frame_30.dat
Binary files differ
diff --git a/library/phpqrcode/cache/frame_30.png b/library/phpqrcode/cache/frame_30.png
new file mode 100644
index 000000000..75dbddd24
--- /dev/null
+++ b/library/phpqrcode/cache/frame_30.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_31.dat b/library/phpqrcode/cache/frame_31.dat
new file mode 100644
index 000000000..ce429d0a6
--- /dev/null
+++ b/library/phpqrcode/cache/frame_31.dat
@@ -0,0 +1 @@
+xÚíÜAƒ …a×Þº ØÉ à&r³‚ Á´¸ªÎ4ù§«†´yù‚Ä·!¥mV3Iµv­!ÒœÖ2¢i\NSSä4EF2+65Å¥‰e¾þÃ/Wœs]šñ¾‰!„Á?ÿpÅõû¦=S~ùüÄ?Ëý+þx¦Ö6r6yö³Ùƹ}“Ç´™ë×eR1-W•l°Ál°Á›ûÒŒÞXŸz/>Væ«·ù§:ñÒÒÄAš8üý-+mTíÎÎbl°Ál°ÁlèštMº&]“³l°Ál°Áº&]“®I×ä¼Ál°Ál°Áº&]“®Éyƒ 6Ø`ƒ 6Ø`ƒÍÝi¬uy´ØXWòè±Éi¬²\t†ýz•—Š>•.î”z¾kÊß t²¿7©ß7òwJõÏ”¶4Òw‘ÒˆßÓÖÍ85‰ \ No newline at end of file
diff --git a/library/phpqrcode/cache/frame_31.png b/library/phpqrcode/cache/frame_31.png
new file mode 100644
index 000000000..b14d1fa26
--- /dev/null
+++ b/library/phpqrcode/cache/frame_31.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_32.dat b/library/phpqrcode/cache/frame_32.dat
new file mode 100644
index 000000000..aaa0808e2
--- /dev/null
+++ b/library/phpqrcode/cache/frame_32.dat
@@ -0,0 +1,2 @@
+xÚíÜÁ
+„ …áÖ¾õ€‹ë.ß ßDßl¬, ¦šMz‰ÿ6›†Ã‡ gcJËD;ô'.®A’IqžÞ‰ÄI,Ir¢Y¨»‘ËFk%‰DþOæy|EDªD×û(LÓ_YÊ>*ßš?aÊOƒ¿k±L_£<[c—ñ¶ï>Êc˘õuÔLIäÕ%Â#Œ0Â#Œ0Â#ŒÞotÑ¢šõµ}ÅÜ4Ífv_)‰ÂE¢pú¬h5R·88³1Â#Œ0Â#Œ0¢ÓÒié´tZÎ#Œ0Â#Œ0Â#Œ0¢ÓÒié´tZÎ#Œ0Â#Œ0Â#Œ0¢ÓÒié´tZÎlŒ0Â#Œ0£÷9q"¢ÉHÜœH™Qþµï"ÛÕL5}-ÝÜY×¾Óê¸kì`¤â>¶z鸳®þÖ4&Òp÷á!‘Šû!«ù`¿:5 \ No newline at end of file
diff --git a/library/phpqrcode/cache/frame_32.png b/library/phpqrcode/cache/frame_32.png
new file mode 100644
index 000000000..58d42db3c
--- /dev/null
+++ b/library/phpqrcode/cache/frame_32.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_33.dat b/library/phpqrcode/cache/frame_33.dat
new file mode 100644
index 000000000..a2613755a
--- /dev/null
+++ b/library/phpqrcode/cache/frame_33.dat
@@ -0,0 +1,14 @@
+xÚíÜAƒ …a×Þº‰‹™Ü@n7+*L++Ó柮óò‰ÌbbÜ*LCï‘°‡‰c k™H¥rš”j•²J5Yíi~0•_«òŒû×TÊTõ}å—e©>ýö5‘b_åwÐÍŸ?¿¤ßìæ§ÖÜù†\ý­RaÆi+7õßW©¦\ãþwLUNåL¦Â
++¬°Â
++¬°Âêÿ­jßÒO·ŸkcëÞñôç\Ë©|%•o<á‹k–­Lî+Î+Îv¬°Â
++¬°Â
++¬°ÂŠ>}ú ô8¯°Â
++¬°Â
++¬°Â
++ú ôè3Ðgà¼Â
++¬°Â
++¬°Â
++¬è3Ðg Ï@Ÿó
++¬°Â
++¬°Â
++¬°:R‰¨ªX³ÚB‰9«”IÔ=çkÞ±o/Swçؘ™Ù¯Ï`g¶áÅÊÌÈr_Ù™™Y¾ƒVSY™ÅzIefnmQoz >á \ No newline at end of file
diff --git a/library/phpqrcode/cache/frame_33.png b/library/phpqrcode/cache/frame_33.png
new file mode 100644
index 000000000..924c728e0
--- /dev/null
+++ b/library/phpqrcode/cache/frame_33.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_34.dat b/library/phpqrcode/cache/frame_34.dat
new file mode 100644
index 000000000..7ceb0259d
--- /dev/null
+++ b/library/phpqrcode/cache/frame_34.dat
Binary files differ
diff --git a/library/phpqrcode/cache/frame_34.png b/library/phpqrcode/cache/frame_34.png
new file mode 100644
index 000000000..a477042d8
--- /dev/null
+++ b/library/phpqrcode/cache/frame_34.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_35.dat b/library/phpqrcode/cache/frame_35.dat
new file mode 100644
index 000000000..56bc3e28e
--- /dev/null
+++ b/library/phpqrcode/cache/frame_35.dat
Binary files differ
diff --git a/library/phpqrcode/cache/frame_35.png b/library/phpqrcode/cache/frame_35.png
new file mode 100644
index 000000000..d29806c60
--- /dev/null
+++ b/library/phpqrcode/cache/frame_35.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_36.dat b/library/phpqrcode/cache/frame_36.dat
new file mode 100644
index 000000000..282c60d23
--- /dev/null
+++ b/library/phpqrcode/cache/frame_36.dat
Binary files differ
diff --git a/library/phpqrcode/cache/frame_36.png b/library/phpqrcode/cache/frame_36.png
new file mode 100644
index 000000000..96ecb4213
--- /dev/null
+++ b/library/phpqrcode/cache/frame_36.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_37.dat b/library/phpqrcode/cache/frame_37.dat
new file mode 100644
index 000000000..015c0f24b
--- /dev/null
+++ b/library/phpqrcode/cache/frame_37.dat
Binary files differ
diff --git a/library/phpqrcode/cache/frame_37.png b/library/phpqrcode/cache/frame_37.png
new file mode 100644
index 000000000..fcc51627d
--- /dev/null
+++ b/library/phpqrcode/cache/frame_37.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_38.dat b/library/phpqrcode/cache/frame_38.dat
new file mode 100644
index 000000000..71cf53eb5
--- /dev/null
+++ b/library/phpqrcode/cache/frame_38.dat
@@ -0,0 +1 @@
+xÚíÝAªƒ0ÐŽÝuÁA2«;ÐèÎkü(üg¾Ày•tp9Äï$Ëò™¹Dœ”ò¼\ºe^'tÒ-aIºŠFMšSškÂðIóŤÓ:7®¤|LúkŸNã8N7®œöi}ö‡×Ÿi,Ÿ[W†¿g®Ó´Ì°ë?3ô1÷i™¾N·}}=ÂOM:4“”)S¦L™2eÊ”)S¦L#$½ÿ ôÂJã­þÂJM:}ý]˜•ÖL›Ù§ÎSÿQL™2eÊ”)S¦L™2Õ¡èPt(:Šó”)S¦L™2eÊ”)S¦:ŠE‡¢Cqž2eÊ”)S¦L™2eÊ”©E‡¢CÑ¡8O™2eÊ”)S¦L™2eÊT‡¢CÑ¡èPœ§L™2eÊ”)S¦L™2Ý“¦”sJCIKÖÔ‚iÍ93ônº_Ñò ÿ¾¿ü¼“+R‡û®£“ièû£Žû4ö\Çg¿¥¤‘ïŽ;% }ßaÞnŽ£ \ No newline at end of file
diff --git a/library/phpqrcode/cache/frame_38.png b/library/phpqrcode/cache/frame_38.png
new file mode 100644
index 000000000..89238f3c5
--- /dev/null
+++ b/library/phpqrcode/cache/frame_38.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_39.dat b/library/phpqrcode/cache/frame_39.dat
new file mode 100644
index 000000000..53511f736
--- /dev/null
+++ b/library/phpqrcode/cache/frame_39.dat
Binary files differ
diff --git a/library/phpqrcode/cache/frame_39.png b/library/phpqrcode/cache/frame_39.png
new file mode 100644
index 000000000..1dc9cd1bc
--- /dev/null
+++ b/library/phpqrcode/cache/frame_39.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_4.dat b/library/phpqrcode/cache/frame_4.dat
new file mode 100644
index 000000000..67b30e82a
--- /dev/null
+++ b/library/phpqrcode/cache/frame_4.dat
@@ -0,0 +1 @@
+xÚí”Á À E=»uÐ pجQ•ØCOMŸ'ÃË$ ³@à¨Ø3e–F©\FNXRyÉؾC{‰a8­Ræ Ńa2@ñ圉qküßÉH1ê(£ˆÅ`cç¦j³~Ë0ö¥¿ÃܨÖËÃعnXÿGåÿÄ€ \ No newline at end of file
diff --git a/library/phpqrcode/cache/frame_4.png b/library/phpqrcode/cache/frame_4.png
new file mode 100644
index 000000000..b72f9e70d
--- /dev/null
+++ b/library/phpqrcode/cache/frame_4.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_40.dat b/library/phpqrcode/cache/frame_40.dat
new file mode 100644
index 000000000..90d36dd13
--- /dev/null
+++ b/library/phpqrcode/cache/frame_40.dat
@@ -0,0 +1,2 @@
+xÚíÝAŠƒ@Ь½õ€‹îÞ@o¢7“˜`“Qfeºä•«PA>¦ÀÚô<?jjo5WNiz›yºWý‰ó´&]ß…C?“IœrþWâñ^;ï8·—
+ãýs<ðûöS{Å9^gEß}>ã°<]ßÕÐëß³bZ«nã¥^A›öQ}[÷9^ª]«yþìnajM܇K̘1cÆŒ3f̘1ã¸Æ{ßW5}ç½{ÍÑ7lMßÒïÞšxÜI<¼áK½¨Æáαyl3f̘1cÆŒ3f̘1ã«Û»Ù»={·“αyl3f̘1cÆŒ3f̘1ã«Û»Ù»={·“αyl3f̘1cÆŒ3f̘1ã«Û»Ù»={·“αyl3f̘1cÆŒ3f̘1ã«Û»Ù»={·“αyl3f̘1cÆŒ3f̘ñ÷çœSÊ‘ŒÓ’7¥HÆKÞ¼g\ç¾âuõßÏ_ÿªr'4Ü[çÞ-Æ]›…qˆûL·ç8ƱÛY1q„»‹Ä!î—ÞÔ/(%û \ No newline at end of file
diff --git a/library/phpqrcode/cache/frame_40.png b/library/phpqrcode/cache/frame_40.png
new file mode 100644
index 000000000..8034d862d
--- /dev/null
+++ b/library/phpqrcode/cache/frame_40.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_5.dat b/library/phpqrcode/cache/frame_5.dat
new file mode 100644
index 000000000..d5dafe186
--- /dev/null
+++ b/library/phpqrcode/cache/frame_5.dat
@@ -0,0 +1 @@
+xÚí”1À E½u 7ЛÀÍZµ‡|N†—üD B0@R$l,-™>VKZ[<ýØÚz—qÆŽ¨ØYJ&ƒiåš‚‹ZyË:Y'ë¯YµÁVÿ&—e•RÄ"§sj©Ýrþö+Ëé‰ù.·MÆŽ»–Ó9ÓòzµsŽ”É, \ No newline at end of file
diff --git a/library/phpqrcode/cache/frame_5.png b/library/phpqrcode/cache/frame_5.png
new file mode 100644
index 000000000..96b6494f3
--- /dev/null
+++ b/library/phpqrcode/cache/frame_5.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_6.dat b/library/phpqrcode/cache/frame_6.dat
new file mode 100644
index 000000000..0fc3d039e
--- /dev/null
+++ b/library/phpqrcode/cache/frame_6.dat
Binary files differ
diff --git a/library/phpqrcode/cache/frame_6.png b/library/phpqrcode/cache/frame_6.png
new file mode 100644
index 000000000..05ca358b0
--- /dev/null
+++ b/library/phpqrcode/cache/frame_6.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_7.dat b/library/phpqrcode/cache/frame_7.dat
new file mode 100644
index 000000000..43375960f
--- /dev/null
+++ b/library/phpqrcode/cache/frame_7.dat
Binary files differ
diff --git a/library/phpqrcode/cache/frame_7.png b/library/phpqrcode/cache/frame_7.png
new file mode 100644
index 000000000..7d2ff4f3e
--- /dev/null
+++ b/library/phpqrcode/cache/frame_7.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_8.dat b/library/phpqrcode/cache/frame_8.dat
new file mode 100644
index 000000000..669b325f3
--- /dev/null
+++ b/library/phpqrcode/cache/frame_8.dat
Binary files differ
diff --git a/library/phpqrcode/cache/frame_8.png b/library/phpqrcode/cache/frame_8.png
new file mode 100644
index 000000000..db1f1877a
--- /dev/null
+++ b/library/phpqrcode/cache/frame_8.png
Binary files differ
diff --git a/library/phpqrcode/cache/frame_9.dat b/library/phpqrcode/cache/frame_9.dat
new file mode 100644
index 000000000..d79295ee0
--- /dev/null
+++ b/library/phpqrcode/cache/frame_9.dat
Binary files differ
diff --git a/library/phpqrcode/cache/frame_9.png b/library/phpqrcode/cache/frame_9.png
new file mode 100644
index 000000000..74ddf08da
--- /dev/null
+++ b/library/phpqrcode/cache/frame_9.png
Binary files differ
diff --git a/library/phpqrcode/cache/mask_0/mask_101_0.dat b/library/phpqrcode/cache/mask_0/mask_101_0.dat
new file mode 100644
index 000000000..51deabaef
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_101_0.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_0/mask_105_0.dat b/library/phpqrcode/cache/mask_0/mask_105_0.dat
new file mode 100644
index 000000000..97e9e5dff
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_105_0.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_0/mask_109_0.dat b/library/phpqrcode/cache/mask_0/mask_109_0.dat
new file mode 100644
index 000000000..eadf83a2c
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_109_0.dat
@@ -0,0 +1,2 @@
+xÚíÚ=
+€0 н§iï9'Åb‡$ ¾tËýáÚû^#iª¥Ëi?³ÅôÛbúK[AUØFå¾ÆµÄ³x]mŸ]2Ž-Ä–KŽ~ ÏVw}¶X›ûÆÆÆÆÆÆÆ&O²É“Þ666666yRž”'½%lllll/´åhœl…Ãîm ¹¤êádël™¶´3Ù+ïÛmÍ« \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_113_0.dat b/library/phpqrcode/cache/mask_0/mask_113_0.dat
new file mode 100644
index 000000000..5eb7f5de2
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_113_0.dat
@@ -0,0 +1,2 @@
+xÚíÚ;
+…0Ð>«Iö¿9+Eñƒ‚sá=ϤL1Ì„[¤÷¹FáZU‹4‡?i<ÿç;7çòç;‡ÆP¥Œ#ýW-[ñݯ6÷µddddddüc",;í"¼Ÿskæ‘‘‘‘‘‘‘‘Q&—Éerw######£L.¯Êäæ‘‘‘‘‘‘‘±Ð˜y¼1†^˲\òîÆØ3Æâ³ÚÓóøÏÆ ‘Ñv \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_117_0.dat b/library/phpqrcode/cache/mask_0/mask_117_0.dat
new file mode 100644
index 000000000..781c7f875
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_117_0.dat
@@ -0,0 +1,2 @@
+xÚíÚA
+„0 Ð}OÓÞÿr³R,#3öñ¥Ë,âÃþ¢½o5ŸCµØÐq:õõÖ;;¬wvN­ÁJZGÅ=Œm»û}Úö ѱ¬¬¬¬¬¬¬¬µ¦2âÞi‹RïïkÆj_YYYYYYYYeÙ_ö·¯¬¬¬¬¬¬¬¬²¿ì/ûÛWVVVVVVÖkîáýd-úϺ,#¦ßÀOÖÎZc]|‡{ž¾Áúˆ­$™ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_121_0.dat b/library/phpqrcode/cache/mask_0/mask_121_0.dat
new file mode 100644
index 000000000..68810c347
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_121_0.dat
@@ -0,0 +1 @@
+xÚíÛ1„ ОÓÀý/·•w YMüSø Ä8>2SÐûÖF O­EÓÈÌÓc«W\ûÛ¼š‹{c§æpK›GÕžB·ÐšþímûŽxhfffffffæ/s2ÛÇÚ2W|*÷d®1ÛÏÌÌÌÌÌÌÌÌÌê*5³ºÊÆÌÌÌÌÌÌÌ̬®RW©«œaÌÌÌÌÌÌÌÌsöòËÁ\xm~8ß®¸ƒr0wæjsdm÷ªýü&óâyÙ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_125_0.dat b/library/phpqrcode/cache/mask_0/mask_125_0.dat
new file mode 100644
index 000000000..2c73ef1a8
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_125_0.dat
@@ -0,0 +1,2 @@
+xÚíÛA
+€ н§Ñû_®•‘TH`3AO—L4ü kí£ÍÃ(áÍÛewö›GWÖÙ××.í #ÃÞ2¿û¡} \ëçYú»¤´gggggggggg_d>Ïïµòj^™ÕØsíö;;;;;;;;;;»'ÇÉqö;;;;;;;;;»'Ë°ËqþuììììììììµÇ_Pì‰Íçö—ÏóYwÄ{eÿš=dÍ×ÌýþGû/ý“¸ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_129_0.dat b/library/phpqrcode/cache/mask_0/mask_129_0.dat
new file mode 100644
index 000000000..812ee8a66
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_129_0.dat
@@ -0,0 +1,2 @@
+xÚíÛ1
+Å ÀÞÓèý/—*Ÿ„DøEØ'ÉhgõtÙ-ì}_£pV‹· \"Ìb=sþ—ÁÌå™ó[ƒÐJŒô=8DhÅoàºÛž' 0XÐ ÑüÎÛ´©è‘¬e 0`À€ ˜ôÊ Ì j" 0`ÀÀ¼ Wf`^P0`À€æ½2ó‚šÈ€ ¼Ò óÉôd07(ì“<OÁŠåo¡§ëÁ— 6 ÎSÞ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_133_0.dat b/library/phpqrcode/cache/mask_0/mask_133_0.dat
new file mode 100644
index 000000000..03b41d36d
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_133_0.dat
@@ -0,0 +1,2 @@
+xÚíÛ1
+€0 н§Iï9§Š¢ÚTyí–)<4äh§N¾‡SÒš¨·]°èZŒ­?¶[¿µH<™u…ïâÐFIø7®·´žRÛ`Á‚ ,X°ø±EÖÞ¹×Ë´]»Wg±¦…yÁ‚ ,X°`!ØÁYÈ#æ ,X°`Á‚…<"È#æ ,X°`Á‚…<bg!˜,X°`Á‚‹WyÉO 4Ñ·˜¸wf¿á>Y‹/XLÿGb…yÁ"êpT \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_137_0.dat b/library/phpqrcode/cache/mask_0/mask_137_0.dat
new file mode 100644
index 000000000..f6d993b03
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_137_0.dat
@@ -0,0 +1 @@
+xÚíÜ1„ ОÓÀý/·•+FÉZ?®JšÉ Læ7Ôº¬ØÝ*ÑBÚa%L~šŒË»òä”ÉØéÊ“C“ðJ›´YîIWJ ½™ý.K]ñR˜0a„ “›$ç“ïINTwÎlLža¢Ÿè±L˜0a„ &Ld@PÔO˜0a„ &L˜0‘e@P?a„ &L˜0aÂD”e@ý„ &L˜0aÂäÏM²ŸIlL&)dl˜ígøÃacR™<É$övê,ý„ɺ?U2ç] \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_141_0.dat b/library/phpqrcode/cache/mask_0/mask_141_0.dat
new file mode 100644
index 000000000..8c685c8ea
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_141_0.dat
@@ -0,0 +1,2 @@
+xÚíÜ=
+€0 н§iï9'EÑúÖDx͘%<lð[Zë|ZP­N ¦NÃæ‘MÌ7;·múfovmœ 6-Ów³§Þ¥}•y¶ã°aÆ 6lØ°ný_¼tÊeÒivØüËƾ±‹Ù°aÆ 6lØÈšòYÓ.fÆ 6lØ°a#kÊSldMû† 6lØ°aÆ YSÖ”5í6lØ°aÆ 6ƒmâœÙØ$æÜ& 3dyãecSÙüÙ&ìNÕLû†Í¾&ëîº< \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_145_0.dat b/library/phpqrcode/cache/mask_0/mask_145_0.dat
new file mode 100644
index 000000000..9c9c1ae19
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_145_0.dat
@@ -0,0 +1,2 @@
+xÚíÜ;
+…0Ð>«Iö¿9+EñÇ{ˆõ$åm†ƒ^˜&µŽ§u¼³S"µÍDŒþ6ÚŸ]9ùÉè8ìU“M£“bÔÒ¾£Y¤Òù[ß2拉Ĉ#FŒ1bĈ£Ï%ôµiRNšæ½–ѳì#;›#FŒ1bĈ‘N«¯1Òií#FŒ1bĈ#FŒtZ}‘Nk1bĈ#FŒ1b¤ÓêkŒtZ;›#FŒ1bÄèõFV-ŒÂuè"IoD-Œ*£7uû×jÚ>b´MV“+ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_149_0.dat b/library/phpqrcode/cache/mask_0/mask_149_0.dat
new file mode 100644
index 000000000..d25835029
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_149_0.dat
@@ -0,0 +1,3 @@
+xÚíÜA
+€ н§Ñû_®MEQXP৞.Ý|94³°ÖeµÁ{³JL¨všŠÕ#«^Ü÷Ïn[õ ß?;µ
+ZIV-ñ»ÚÄ*wï¸Ë’1*+V¬X±bÅŠ«ßX¥ü·¯g¥ÛwŒèqX}ÇJ½RÛY±bÅŠ+V¬X±beΠwfeΠ^±bÅŠ+V¬X±bÅÊœAïÌÊœA½bÅŠ+V¬X±bÅŠ•9ƒÞÙœÁœA½bÅŠ+V¬X±bÅŠÕl•ó0ÞÎ*0Tßj`?˜öÝΪ²ú¢Õð;Xë«ë=zZr* \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_153_0.dat b/library/phpqrcode/cache/mask_0/mask_153_0.dat
new file mode 100644
index 000000000..fc79e9ede
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_153_0.dat
@@ -0,0 +1 @@
+xÚíÜ1€ ÐÓÀý/礑h¢&F¾ú`ìÒ¼@I;Pë¼ZÀ^­•XÛÍŒÙmfÏÆ.™=Û5 [if-õœ­R+!wr»Ëœg\j̘1cÆŒ3f̘1cf–Ôo.±2¬?Š1ûž™zæ `ÆŒ3f̘1cÆŒ™¹†™¹†zÆŒ3f̘1cÆŒ3fæztfæê3f̘1cÆŒ3f̘™k˜k03×ð0cÆŒ3f̘1cö³¬Ï9;³ÐÄŽÍö›‰`vf•Ù̆ßÍšZϘ߶W9 \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_157_0.dat b/library/phpqrcode/cache/mask_0/mask_157_0.dat
new file mode 100644
index 000000000..ad749f305
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_157_0.dat
@@ -0,0 +1,2 @@
+xÚíÜA
+€ н§Ñû_®•QRù©§»Y ùkí«…ìÍ*q͵ÓîØ=j7§~ÙnNýÔ.p%Úµäs·i¯ÝÕã.½×ÈöرcÇŽ;vìر{Ù.-W¬õ2={êì¾mgÞy+رcÇŽ;vìØɳ2;yÖ¼cÇŽ;vìرcÇNž•ÉØɳæ;vìرcÇŽ;v2™<ËNžõV°cÇŽ;vìر“ge2vò¬yÇŽ;vìرcÇî¦]ÞÂ;»àæÆv¹"õÞ]e÷'»˜;[“ç»û{¾|Aµ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_161_0.dat b/library/phpqrcode/cache/mask_0/mask_161_0.dat
new file mode 100644
index 000000000..4bdc5fdd3
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_161_0.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_0/mask_165_0.dat b/library/phpqrcode/cache/mask_0/mask_165_0.dat
new file mode 100644
index 000000000..3a17a0510
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_165_0.dat
@@ -0,0 +1,2 @@
+xÚíÝ;
+€0À>§Iî9+ÅàDyÁIÊ4Ë ÷5Ö:¯¶W«ÄÙv«dù¢åqñߜܴ<þæd×2x%[¶žËU™%ðÝÞî2×]&K–,Y²dÉ’%Ë¡,S¿Õ—“r2ydÌ=,ÿk©_º{X²dÉ’%K–,Y²d)Û0³”mè—,Y²dÉ’%K–,Y²d)Û0³”mè—,Y²dÉ’%K–,Y²”m˜Çe,eú%K–,Y²dÉ’%K–,eæq–² ýÒÝÃ’%K–,Y²dÉ’å…eî:ËŠ<³Œš!Óÿ¡ÐYV–,ßñ:B¿dù|O¨$*# \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_169_0.dat b/library/phpqrcode/cache/mask_0/mask_169_0.dat
new file mode 100644
index 000000000..c4787d9db
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_169_0.dat
@@ -0,0 +1,2 @@
+xÚíÝ1
+€0À>¯Iþÿ9EQÑ=˜¤Ls æä¶IïË{³Zt¡ã´R¦™þ}òÀôï“SÓð•n:ª|§›R[è?î¶Ô_*S¦L™2eÊ”)S¦L™™&ϦëI šê¯O˜2ÕOý£˜2eÊ”)S¦L™2e*C1ïËP˜ÊPôS¦L™2eÊ”)S¦L™ÊPÌû2¦2ý”)S¦L™2eÊ”)S¦Le(æ}¦2ý”)S¦L™2eÊ”)S¦Le(æ}¦2ý”)S¦L™2eÊ”)S¦³iöc7;Ó"…Þ™FͦÞÙ™v¦L Üý^¥Ÿ2}oOäß'r \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_173_0.dat b/library/phpqrcode/cache/mask_0/mask_173_0.dat
new file mode 100644
index 000000000..5ef85e7ad
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_173_0.dat
@@ -0,0 +1 @@
+xÚíÝ1ƒ0ÀÞ¯±ÿÿ¹T ¥ˆ¬[4véæ2ŠØƽok݇ÕÊ;¦Ó²]fûôÖžýdûä½ölj°lGÒÿö0n+œß»m³GŒË–-[¶lÙ²eû"Ûêï·ûY»}o¯öíÀ–íÕVÞÊ[¶lÙ²eË–-[¶lÙ²e«ÓÕ°ÕƒÉ[Ï2¶lÙ²eË–-[¶lÙ²e«ÓÕ°ÕƒÉ[Ï2¶lÙ²eË–-[¶lÙ²e«ÓÕ°ÕƒÉ[¶lÙ²eË–-[¶lÙ²eËV¦«a«“·lÙ²eË–-[¶lÙ²ef[ÿB°“mа÷¶Eû„”;¶N¶-ÛœT¸/r’·lÿ¿?ØÔ*Ñ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_177_0.dat b/library/phpqrcode/cache/mask_0/mask_177_0.dat
new file mode 100644
index 000000000..78a26a77b
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_177_0.dat
@@ -0,0 +1,2 @@
+xÚíÝ1
+…0Ð>§Iî9+?Š²Øèß—”iÖ‡ dšÌ¹¯ÕxÖˆxÝNÌø/ÆÕ§|{öظ²ÿöìÖ8d¥¯´ÿø0òhž×=öùcFf̘1cÆŒ3f̘q¼qÂ=ïw6Ê;l·»4cÆ•±<–ÇŒ3f̘1cÆŒ3fÌXï¦Ò»1Ö»ÉcÆŒ3f̘1cÆŒ3fÌXï¦b¬w“ÇŒ3f̘1cÆŒ3f̘±ÞM'ÄXï&å1cÆŒ3f̘1cÆŒ3Ö»é„ônŒõnò˜1cÆŒ3f̘1cÆŒÃ3U<‡ \7í+’Þ(<OÆŒŸ·ÎŠ™–ÇŒßÛÕä4@ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_21_0.dat b/library/phpqrcode/cache/mask_0/mask_21_0.dat
new file mode 100644
index 000000000..368c9941f
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_21_0.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_0/mask_25_0.dat b/library/phpqrcode/cache/mask_0/mask_25_0.dat
new file mode 100644
index 000000000..e4a5b6d8a
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_25_0.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_0/mask_29_0.dat b/library/phpqrcode/cache/mask_0/mask_29_0.dat
new file mode 100644
index 000000000..74a216b4f
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_29_0.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_0/mask_33_0.dat b/library/phpqrcode/cache/mask_0/mask_33_0.dat
new file mode 100644
index 000000000..2ec712a7a
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_33_0.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_0/mask_37_0.dat b/library/phpqrcode/cache/mask_0/mask_37_0.dat
new file mode 100644
index 000000000..1588cfce1
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_37_0.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_0/mask_41_0.dat b/library/phpqrcode/cache/mask_0/mask_41_0.dat
new file mode 100644
index 000000000..e369027e3
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_41_0.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_0/mask_45_0.dat b/library/phpqrcode/cache/mask_0/mask_45_0.dat
new file mode 100644
index 000000000..452f126c8
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_45_0.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_0/mask_49_0.dat b/library/phpqrcode/cache/mask_0/mask_49_0.dat
new file mode 100644
index 000000000..fdd2aac15
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_49_0.dat
@@ -0,0 +1,2 @@
+xÚíÕKÀ EÑ9«ýo®#?H/›6g$Ï-ª­,X]
+˜›xݘ;Àð·˜ XÔ°ì9ºˆ<ÜѺ¤åq¤Œ2 Af÷îHð7ø/5We„{Ô#ØáìfÞ¨ÁÐ?à®4û=N >Çæ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_53_0.dat b/library/phpqrcode/cache/mask_0/mask_53_0.dat
new file mode 100644
index 000000000..572d279ef
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_53_0.dat
@@ -0,0 +1,2 @@
+xÚíÖK
+@!й«Ñýo®QÑϺ:(m&ܯžs-¹¬®É6õÑZ{¥m4Y†²Xâù®.FÀÙ­‹ê¦XZi·Ðùj=:έ֋bå¿‘VH 8 –#¤[—ù²¾‹ãYвç¾^XÔ÷e \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_57_0.dat b/library/phpqrcode/cache/mask_0/mask_57_0.dat
new file mode 100644
index 000000000..ea81e6dc6
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_57_0.dat
@@ -0,0 +1,4 @@
+xÚíÖA
+À À{^“üÿs=YLÕš (
+ou¨– j) ¬ª
+Z7y„ÙëÍñv,Ô´ìwVQ ži»¤ìGiÒ¤¹ÅDfÂÛ•ÉÄwo4ùѤ¹ÐÄoÎLÿÌéLȼÁœ©·›Á³Õì}î4 hå \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_61_0.dat b/library/phpqrcode/cache/mask_0/mask_61_0.dat
new file mode 100644
index 000000000..93d2444d8
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_61_0.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_0/mask_65_0.dat b/library/phpqrcode/cache/mask_0/mask_65_0.dat
new file mode 100644
index 000000000..df29d7bfb
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_65_0.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_0/mask_69_0.dat b/library/phpqrcode/cache/mask_0/mask_69_0.dat
new file mode 100644
index 000000000..8a2cfbd7c
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_69_0.dat
@@ -0,0 +1 @@
+xÚí×KÀ Ð=§û_®+­mÏBìà’d|Q"s+1®®È"¯),ß=“EÛàa TÄ"çÒÅãnæE-3 ,°ÀKY‹wÝ=ZšZïT Þ.,°ÀK1‹ÿ#<XBtËâ<Šþa ÿÇbº#Îx/;X.®‡Ô \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_73_0.dat b/library/phpqrcode/cache/mask_0/mask_73_0.dat
new file mode 100644
index 000000000..3de460662
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_73_0.dat
@@ -0,0 +1 @@
+xÚíØ1À …áÓÀý/×ÉFSM(´Æ7†—/JTmeÓ•¤‚lš´É×s™|½©)YY“UÝS%Á7{i¹é(L˜0moÊ짻'¯÷ãªw‚‰Ç„ {œ=ÎŒcÂô)÷2˜Š‚Ö¦À~ªøÃLz–)üvZ5O2]=Œó? \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_77_0.dat b/library/phpqrcode/cache/mask_0/mask_77_0.dat
new file mode 100644
index 000000000..2717fd86b
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_77_0.dat
@@ -0,0 +1,2 @@
+xÚíØA€ DÑ}OÓÞÿr®0  ÎBÃ/;b†Hp/‹­*K‡E7íG¶þã/_l}ïxˆ‹MP
+[(ç­Š³ÄZÞ›•lI6lض´eÏ·³×Oû˜ìÝÍÆ^À† 6î,î,ö6lØ&lù³Æ& ÛÏ^ÕWcó}m©5uåÿöEÛ;âe \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_81_0.dat b/library/phpqrcode/cache/mask_0/mask_81_0.dat
new file mode 100644
index 000000000..2d9a052fc
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_81_0.dat
@@ -0,0 +1,2 @@
+xÚíØ1€ …ὧiï9'•Bß ñ‡áñE¤Mpo#
+³& ŒaâÙ6ãõ)cæ~Úèb •1Ôß±‹´âߧµ|Y$FŒ1Nõq_·´.¯Ôð¿¹31bĈ‘~M¿æÎ`Ĉco{B£807úŒòôdtŒ’³võÿøfãßØÜþ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_85_0.dat b/library/phpqrcode/cache/mask_0/mask_85_0.dat
new file mode 100644
index 000000000..eb8197b20
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_85_0.dat
@@ -0,0 +1,2 @@
+xÚíØ1
+À …á=§Iî¹NE‘Z_†À· ¯m E÷Vqyº2Yh,S‹[ÏúŸ­gý¥UXJkd¼×.Öß~>Öž!ÅŠ+V¬å¬ª½õöí÷.Ýõ±2¯X±bÅŠ•ÿ¬Ì+V¬X±–²ê.ökBèÞz±·ÔwðƒÕ±¦Ì€gÌkë¡YZý \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_89_0.dat b/library/phpqrcode/cache/mask_0/mask_89_0.dat
new file mode 100644
index 000000000..aaa4c5267
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_89_0.dat
@@ -0,0 +1 @@
+xÚíÙ1€ …ὧiï9'Œˆ€Ñ×ýËHl?Lšà^"ë&M—™?bî—qÃÜ?˸äÉ,µ9²þó!µ‰z¢]VêÈScÆŒ3æ_š•÷à¾cÓé!î`nÍô3f̘1cÆÌŒ„™ 3f̘1/fÖ>.Uæ¤ÄcóË»;ã ¨2;æ™YÒžÕÏ+™7Þý \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_93_0.dat b/library/phpqrcode/cache/mask_0/mask_93_0.dat
new file mode 100644
index 000000000..e218fa0ef
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_93_0.dat
@@ -0,0 +1,3 @@
+xÚíÙK
+À EÑyV÷¿¹Ž,ÚO¬mÞ rãPHŽ0 {’´š°ôäå2ûbö¨ìýÞc{t¦Qáƒ]
+{QÞ{“Þ{弬֒¤ÇŽ;vìØ_Ú³ßÕ}ÏÂ÷ýËL€}l§ß±cÇŽ;vì̑̑̑رcÇŽû¢öüÐÎ.LÛæÕegwì3ö´žqe¿ÿѾ@i \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_0/mask_97_0.dat b/library/phpqrcode/cache/mask_0/mask_97_0.dat
new file mode 100644
index 000000000..74ac719d0
--- /dev/null
+++ b/library/phpqrcode/cache/mask_0/mask_97_0.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_1/mask_101_1.dat b/library/phpqrcode/cache/mask_1/mask_101_1.dat
new file mode 100644
index 000000000..ec939b521
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_101_1.dat
@@ -0,0 +1,2 @@
+xÚíÖ1
+À н§‰÷¿\Q÷ªEóþ¢d  1¢¦ÌNô<±#½ËÕ–¯Õ-7u™þ.ÃÓl²Ô¦eiXXXXXRZVíÊVeIo1û,,,,,v%‹?ŒÙgaaaa±÷YÌ K&K=/·œ·+Ûå˱ó²Öò¼ÞŽã \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_105_1.dat b/library/phpqrcode/cache/mask_1/mask_105_1.dat
new file mode 100644
index 000000000..e1f5c99b4
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_105_1.dat
@@ -0,0 +1 @@
+xÚíÖ1€ ÐÝÓ”û_Î¥‡b€÷ KóB¬?"Ó*#WÌʘt€éÍùíügÓŽ“JîéqUM9¸•‡‰‰‰‰©ÔTùêçLLv“¾Ç¤ïÙLLLLLLz“¾gG01111šòy„iåÑߘ–4mð=Õ›n§¥+2 \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_109_1.dat b/library/phpqrcode/cache/mask_1/mask_109_1.dat
new file mode 100644
index 000000000..7e0d6d164
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_109_1.dat
@@ -0,0 +1 @@
+xÚíÖ± À À>Ó˜ý—Kƒ€°•À}“ˆÆ:!£èiY‰™'*3§]fÛsþÛÉÓÒîm¹ºb[ÞJÂÆÆÆÆÆƶŖÝKÆ9›}ccccccÓ'u.6ûÆÆÆÆÆÆƦs±é“Þ6666¶R[ÿ^gû{/lÇØÙ·Û Þ7Í‚ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_113_1.dat b/library/phpqrcode/cache/mask_1/mask_113_1.dat
new file mode 100644
index 000000000..1dd666d9b
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_113_1.dat
@@ -0,0 +1 @@
+xÚíÖ1€ ÀÞ×ÿÿœ -8fL(pBŽlDM™è9";ýÄ-÷ò÷;?1îpâÐ{¼\åÆú%-ŒŒŒŒŒŒ“3:@Ûad4ŒŒŒŒŒŒŒŒú*£NîÍaddddddÔÉÍ#######ã#c]75®ÓåÚã¢Æåæ1ÏxYuñ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_117_1.dat b/library/phpqrcode/cache/mask_1/mask_117_1.dat
new file mode 100644
index 000000000..8921f6437
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_117_1.dat
@@ -0,0 +1,2 @@
+xÚíÖ» À À>Ó˜ý—Kƒ€ø$ø^’ 8Y–QSV'zž8‘þjzëÌʇ¬™^]Þסµ‡¬õekXYYYYYYYjݵ#¶
++«yeeeeeeeeµ#²²šWVVVVVVVV;"+«yeeeeeeel­'ëe;b»±&²^9¯{­/ÊJ$p \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_121_1.dat b/library/phpqrcode/cache/mask_1/mask_121_1.dat
new file mode 100644
index 000000000..64bd8ba04
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_121_1.dat
@@ -0,0 +1,2 @@
+xÚí×1
+À н§‰÷¿\— ¥C¡PbÑ—EÁÁ<DñGdµŠŠQG̪±3óèð©û×k?3ï¸sÉ9_Žz¢9iåÅÌÌÌÌÌÌÌ|3WþÃú3³ûÌÌÌÌÌÌÌÌÌ,WÉÌr•7Œ™™™™™™™™YÆ`–«¼aÌÌÌÌÌÌÌÌ›sd^ü¿ÝgÌÛš¿Ïõæ4Øð \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_125_1.dat b/library/phpqrcode/cache/mask_1/mask_125_1.dat
new file mode 100644
index 000000000..d5881dd5d
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_125_1.dat
@@ -0,0 +1,2 @@
+xÚí×1
+À н§‰÷¿\— :ŠòþÒ‚ƒ>$’DdÆ©ÄÊ•Y»³ÿŸtëÚ…öλ»÷ÏÕÛó0£$ìììììììììì›ì§ûù¹ÆήÞÙÙÙÙÙÙÙÙÙÙõóììêÝg–a7ÇyëØÙÙÙÙÙÙÙ¯³ç—½Y??ÿØÙ{Õ{ý¾D“ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_129_1.dat b/library/phpqrcode/cache/mask_1/mask_129_1.dat
new file mode 100644
index 000000000..62cd1c9a1
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_129_1.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_1/mask_133_1.dat b/library/phpqrcode/cache/mask_1/mask_133_1.dat
new file mode 100644
index 000000000..18d68dce8
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_133_1.dat
@@ -0,0 +1 @@
+xÚí×1€ ÐÝÓ”û_Î…€“ºh«¼¿h˜šÒ|"zÚÛ‰™-*dNÁâÔâÙó¦H¼‡«QÄ¢ÕR ,X°`ñc‹¬Þ9ÎY°(na_°`Á‚ ,Xè,XØ,X°`Á‚ Þ#:8 ﻓ ,X°`ÁBïdÁ¾`Á‚ ,X|Ï¢Y\X¬Ö;Ç 7-ݹ; ` \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_137_1.dat b/library/phpqrcode/cache/mask_1/mask_137_1.dat
new file mode 100644
index 000000000..284d7beab
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_137_1.dat
@@ -0,0 +1,3 @@
+xÚí×1
+€0 ÐÝÓ¤÷¿œKh]D¥‘¾,-t ò#²ÚŒŠQ[T©Ñ “K“s§7_Š›è¤È?9|•B&ÙX›^L˜0a„ÉÂ&3÷“þ„ÉMÌ&L˜0a„ &2 ¼ÃD4c™0a„ &L˜È€òÐŒe„ &L˜0ab·—w˜È€f,&L˜0a„É7&y2¹a²ònßoL˜<01O
+˜ì¾ç \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_141_1.dat b/library/phpqrcode/cache/mask_1/mask_141_1.dat
new file mode 100644
index 000000000..83220ddb4
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_141_1.dat
@@ -0,0 +1,2 @@
+xÚí×1
+À À>¯9ÿÿ¹4¢6)ƒ3×$`s ²¸uÊ®‰>Wdš¾ ›)›g³•'°±MÂ{3\d6u¹’bØ°aÆ 6lؼn³û]ÜNØ°9ÄFÞ°aÆ 6lØ°a£3°a#oØ°aÆ 6lØ°ÑØ°Ñ5e16lØ°aÆ ]SŸb£kÊ6lØ°aÆ ›mê—ͤÍß;CûcÃf‘¼IdsG¹ÿ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_145_1.dat b/library/phpqrcode/cache/mask_1/mask_145_1.dat
new file mode 100644
index 000000000..6a9950f7a
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_145_1.dat
@@ -0,0 +1 @@
+xÚíÜ!€0@Ïk®ÿÿ¦¡ 4a)³qæ2i.YCUO{35²UZÆFŒn]ÏfN>bd£ðwtzJF}ÁFŒ1bĈ#FŒýÆ(¡¯FŒ6r1bĈ#FŒ1ÒE1ÒiÝlFŒ1bĈ#FŒtFŒÜ#FŒ1bĈ#FŒtZ}#÷ˆ#FŒ1bĈÑl£þeôÀHÉùG£µÜ£@£Ù’î \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_149_1.dat b/library/phpqrcode/cache/mask_1/mask_149_1.dat
new file mode 100644
index 000000000..02a3cdc6e
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_149_1.dat
@@ -0,0 +1 @@
+xÚíØ1€ ÐÝÓ”û_Î…ˆƒqÁHÞ_Xšòc‰èi«#Gd̘ŠÕ”Õ›á÷g…¬LUè^Ý®VR«>dKV¬X±bÅŠ+VÛXeùo¿ÎX±ÚÌJ_±bÅŠ+V¬X±bÅÊ;ƒÝ™+}ÅŠ+V¬X±bÅŠ+VöAV¬ô•ngÅŠ+V¬X±bÅŠ•}+ï úŠ+V¬X±bÅŠ«VýËjÒÊ>øhewfõ›•¾*`uTqí \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_153_1.dat b/library/phpqrcode/cache/mask_1/mask_153_1.dat
new file mode 100644
index 000000000..2abfca20b
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_153_1.dat
@@ -0,0 +1,2 @@
+xÚíØ1
+€0ÀÞ×\þÿ9›Ãbt³Ešc'›ªÎHHÍ•š9³efßžmff²MïÙíª›õ #.̘1cÆŒ3f̘1cf–Ô7¯3f̘Ùg̘1cÆŒ3f̘1c¦o2cæ]Ã?€3f̘1cÆŒ3fÞ5ôMfÌì3f̘1cÆŒ3f̘1Ó7utfÌì3f̘1cÆŒ3f̘=ÌúËl¡™¾ùj¦£3ûÕÌ>ÛÈì¤ÐVü \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_157_1.dat b/library/phpqrcode/cache/mask_1/mask_157_1.dat
new file mode 100644
index 000000000..17344b891
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_157_1.dat
@@ -0,0 +1,2 @@
+xÚí×1
+À À>¯9ÿÿ¹4S¦d/Ì5‚Õ1ÈÊVÍ)SkŽJžµ»­vßÜ7´³ÝÞÝíé…ÛÍeGä°cÇŽ;vìرc÷²]Z¯¸îÙ±c'ïرcÇŽ;vìرÓ+رÓgå;vìرcÇŽ;}V¯`ÇNÞù+رcÇŽ;vìØé:;vòŽ;vìرcÇŽ;½‚;}VÞ±cÇŽ;vìص±›'»ÍvzÅ#;Œ]Œ¼klw¯oA` \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_161_1.dat b/library/phpqrcode/cache/mask_1/mask_161_1.dat
new file mode 100644
index 000000000..669ade1b8
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_161_1.dat
@@ -0,0 +1 @@
+xÚíØ1€0ÐÝÓÐû_Î…XӨš yi~…ˆ¬Q©bÖÕkvÈp±á³ê7'M u¸Ù=¼]ņÙð([ 2dÈáÏ +þÛ\' 2”‡ 2dÈ!C† 2´s0/3d(½) 2dÈ!C† 24ë1dhç 2dÈ!C† 2dhÖcÈ¡<dÈ!C† 2dÈ¡ƒy™!CyèMaÈ!C† 2dØÞ0¿ —šõ^š—4”‡[ž‹E2 \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_165_1.dat b/library/phpqrcode/cache/mask_1/mask_165_1.dat
new file mode 100644
index 000000000..abb48f0b1
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_165_1.dat
@@ -0,0 +1 @@
+xÚíØ1€ ÐÝÓ”û_Î¥LK^–æ…#²FµŠYWt¨Ù%Ë–ïÂÿœ4¶ÔåÁ÷r¹šM,³éQºX²dÉ’%K–,Y¶²¬ú¯þœ°dÉÒ¼dÉ’%K–,Y²dÉ’%K’%K» ó’%K–,Y²dÉ’%K–v2$K–vÞ–,Y²dÉ’%K–,YÊò8K–楷‡%K–,Y²dÉ’%K–2$K–,ÍK–,Y²dÉ’%K–,ÛZæ—åVKò£¥<≥yy¤å ™ó)Î \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_169_1.dat b/library/phpqrcode/cache/mask_1/mask_169_1.dat
new file mode 100644
index 000000000..ba21b710b
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_169_1.dat
@@ -0,0 +1 @@
+xÚíØ1À н§Áû_® ÑîM,ØÇâàB^ æ‘5*V¬º¢K­N™n2ýú¦¹©NòNOµ‘i6>ÊS¦L™2eÊ”)S¦L™2­œMç S¦LÍS¦L™2eÊ”)S¦L™2•Må}¦LÍSS¦L™2eÊ”)S¦LeSyŸ)SóÔÅ”)S¦L™2eÊ”)S;Ù”)S;ó”)S¦L™2eÊ”)S¦v(²)S¦v(æ)S¦L™2eÊ”)S¦íLódºÍT6}a*ï3mljžmzC' \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_173_1.dat b/library/phpqrcode/cache/mask_1/mask_173_1.dat
new file mode 100644
index 000000000..436918c0b
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_173_1.dat
@@ -0,0 +1 @@
+xÚíØ1€ ÐÝÓ”û_Î¥''Ó@y]Xšò1?"g¬:1çŠfn˶ÌöË»ö¬­m¼·¯«»™m.?¶¶lÙ²eË–-ÛF¶«ÿß>glÙ²•·Þ2¶lÙ²eË–-[¶lÙ²e«O`Ë–­¼eË–-[¶lÙ²eË–-[¶lõ lÙ²•·lÙ²eË–-[¶lÙ²eËV¦O`Ë–­¼eË–-[¶lÙ²eË–-[¶z0}[¶z0yË–-[¶lÙ²eË–-[¶E¶ùe[h«OøÍVWö…­¼=Ìötÿ*| \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_177_1.dat b/library/phpqrcode/cache/mask_1/mask_177_1.dat
new file mode 100644
index 000000000..12e2e522f
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_177_1.dat
@@ -0,0 +1 @@
+xÚíØ1€ ÀÞ×ÿÿœÍE¨¬Œp0×XÐà„,a#rÚÊ}®¨6}ÇŒ§¿Ùÿ»¶‰±~Ž‡£\Ð8 •ÆŒ3f̘1cÆŒ—7®ðÎ{Ö3f,ÝyŒ3f̘1cÆŒ3fÌX_¡¯`ÌXï&3f̘1cÆŒ3f̘±ÞM_Á˜1cy̘1cÆŒ3f̘1cÆŒë+3f,ÝyŒ3f̘1cÆŒ3fÌX_¡bÌXï&3f̘1cÆŒ3fÌxãü2žd¬¯øÔX'Äx[cy|¨ñ ¸•3ë \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_21_1.dat b/library/phpqrcode/cache/mask_1/mask_21_1.dat
new file mode 100644
index 000000000..f87e0a112
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_21_1.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_1/mask_25_1.dat b/library/phpqrcode/cache/mask_1/mask_25_1.dat
new file mode 100644
index 000000000..3a225e30f
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_25_1.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_1/mask_29_1.dat b/library/phpqrcode/cache/mask_1/mask_29_1.dat
new file mode 100644
index 000000000..0a1cb3b5d
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_29_1.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_1/mask_33_1.dat b/library/phpqrcode/cache/mask_1/mask_33_1.dat
new file mode 100644
index 000000000..318949df0
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_33_1.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_1/mask_37_1.dat b/library/phpqrcode/cache/mask_1/mask_37_1.dat
new file mode 100644
index 000000000..5bd9e3aa0
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_37_1.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_1/mask_41_1.dat b/library/phpqrcode/cache/mask_1/mask_41_1.dat
new file mode 100644
index 000000000..52e9e58f4
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_41_1.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_1/mask_45_1.dat b/library/phpqrcode/cache/mask_1/mask_45_1.dat
new file mode 100644
index 000000000..b35c567dc
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_45_1.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_1/mask_49_1.dat b/library/phpqrcode/cache/mask_1/mask_49_1.dat
new file mode 100644
index 000000000..d20d71710
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_49_1.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_1/mask_53_1.dat b/library/phpqrcode/cache/mask_1/mask_53_1.dat
new file mode 100644
index 000000000..a676d7dfa
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_53_1.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_1/mask_57_1.dat b/library/phpqrcode/cache/mask_1/mask_57_1.dat
new file mode 100644
index 000000000..896ed4357
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_57_1.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_1/mask_61_1.dat b/library/phpqrcode/cache/mask_1/mask_61_1.dat
new file mode 100644
index 000000000..4165a4bd2
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_61_1.dat
@@ -0,0 +1 @@
+xÚ30€CbpPº™ÝØÅi`÷@ê&ÚßH^§Ðn¨a†dQ»Gíµ{Ôn<v“Z®ÁÅGíMk£vÚ=j7¶¶â ³›Öå9mäán7â›<»ª³Âh \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_65_1.dat b/library/phpqrcode/cache/mask_1/mask_65_1.dat
new file mode 100644
index 000000000..db8db88a8
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_65_1.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_1/mask_69_1.dat b/library/phpqrcode/cache/mask_1/mask_69_1.dat
new file mode 100644
index 000000000..03bba657f
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_69_1.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_1/mask_73_1.dat b/library/phpqrcode/cache/mask_1/mask_73_1.dat
new file mode 100644
index 000000000..a729fdf04
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_73_1.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_1/mask_77_1.dat b/library/phpqrcode/cache/mask_1/mask_77_1.dat
new file mode 100644
index 000000000..0fe0b03e8
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_77_1.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_1/mask_81_1.dat b/library/phpqrcode/cache/mask_1/mask_81_1.dat
new file mode 100644
index 000000000..eacbdb1a2
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_81_1.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_1/mask_85_1.dat b/library/phpqrcode/cache/mask_1/mask_85_1.dat
new file mode 100644
index 000000000..b8a20c754
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_85_1.dat
@@ -0,0 +1,2 @@
+xÚíÙ1
+À н§‰÷¿\©]‹‰4ðþ˜AA hÄÌØM¬\Q‘µjsë·úAk§U·ûújm‘un2RÃÊÊÊÊÚΚ5·ž:k;«»ÅÊÊÊÊjƲº[¬¬¬¬eoÅí­›[™oð¬ÿ[ÇÎk®õ¨ðZä \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_89_1.dat b/library/phpqrcode/cache/mask_1/mask_89_1.dat
new file mode 100644
index 000000000..e9d226f35
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_89_1.dat
@@ -0,0 +1 @@
+xÚíÙ1€ ÐÝÓ”û_Î…‹N…h}%Àƒ@ iDOËHŒ±*cä"æûµ<öØgþâÈ)û<mõBsŸ¨¥‡™™™™ù—æÌwðja.av™™™™™ý‘ü7˜ÝAffff極‰2æ·¾ÝÙ5 æuØ­ç9ß|²Þä \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_93_1.dat b/library/phpqrcode/cache/mask_1/mask_93_1.dat
new file mode 100644
index 000000000..f37836c61
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_93_1.dat
@@ -0,0 +1,2 @@
+xÚíÙ;
+À À>§Ñû_.Ä4I‘ìâ‡yí‚Ž¢¸`)-5*¥ç(™é£of[Ósm€}åÑÃöý¶õÉö6YM ;;;;;ûG{ô»zÕØ·µ»«ìììììììz1vw•}œ=úwuûìýLÆ%û?û"ç=Ç~e—i \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_1/mask_97_1.dat b/library/phpqrcode/cache/mask_1/mask_97_1.dat
new file mode 100644
index 000000000..24fa60fc3
--- /dev/null
+++ b/library/phpqrcode/cache/mask_1/mask_97_1.dat
@@ -0,0 +1,2 @@
+xÚíÙ1
+À0н§1÷¿\—ÐtncKÌû«ƒ<DŒèi3#Gdgt(lxVûÉP¡ÃÔ9ÜFñ¡7lia``````ØÞq/]5†­ všÁ½Äàne``````xùÛ-mXá^Êú±3Ì5,´y†-†ù# \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_101_2.dat b/library/phpqrcode/cache/mask_2/mask_101_2.dat
new file mode 100644
index 000000000..e39fd2cf1
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_101_2.dat
@@ -0,0 +1,3 @@
+xÚíÚ1
+À н§‰÷¿œ‹C‡â ‰Ux!“’?1ªe÷«ž ä)Ÿç“ás”Ê*¼KÛ®LfòšB¡P(”ÝJÖ®¤Ü¨x/
+…B‘a(2 …B¡P(2 E†¡P(ʲR÷Så(%qWR®S¼—ÿ”iY‰ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_105_2.dat b/library/phpqrcode/cache/mask_2/mask_105_2.dat
new file mode 100644
index 000000000..7b63e31ba
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_105_2.dat
@@ -0,0 +1 @@
+xÚíÚ!À @ß×ÿÿ\Mƒ«iØp4sÁ€™ 6¬ ê™‘Ys®"¤7þÛù&)=ñ; ÒÜŒð"‘H$Ò¥µ¯;é|IžH$‰DÒ÷t#}OžH$‰DÒ÷Húžä’H$©·”þ­ÕIZß#HgKòÔJºt”$• \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_109_2.dat b/library/phpqrcode/cache/mask_2/mask_109_2.dat
new file mode 100644
index 000000000..252f6d807
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_109_2.dat
@@ -0,0 +1,2 @@
+xÚíÚ1
+À0н§1÷¿\—@¶NÖˆ<q’À#ƒð#v­ßúÔ´-e~_«¨Š¿­[Ú÷«ä¦Ñh46JKžÓFjöF£Ñh4šÌE“'i4F£É“4y’F£Ñh´¾ZÁEcS-;—Ð&jö­©öŒ³Æñ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_113_2.dat b/library/phpqrcode/cache/mask_2/mask_113_2.dat
new file mode 100644
index 000000000..26b5d7eab
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_113_2.dat
@@ -0,0 +1 @@
+xÚíÚ1€0ÐÝÓÐû_ÎÅ¡‰‰Ðª0óÚäD\5*{ª#ˆ½bò’H'o+vUÓÇR1ŸPÐD"‘H$øÑ>‰D"‘H$ÊäD™œH$‰D"Q&—WerûH$‰D"ñ±ç*x[±(Ë?/ÚÇ÷ˆ'ŸŠnd \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_117_2.dat b/library/phpqrcode/cache/mask_2/mask_117_2.dat
new file mode 100644
index 000000000..b4dcce46f
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_117_2.dat
@@ -0,0 +1,2 @@
+xÚíÚ1
+À À>¯9ÿÿ¹4!m dOƒs\§0X,laÕ5#¿÷Eª¾>Z[íœÖ·ŽÉêã½ÄR©T*•J¥R?Q-œº«*¯T*•J¥R©º?U÷—W*•J¥R©TÝŸªûË+•J¥R©Ô¤Úùó~m5Õ©;ªòúSõ&+ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_121_2.dat b/library/phpqrcode/cache/mask_2/mask_121_2.dat
new file mode 100644
index 000000000..a2a0097b1
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_121_2.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_2/mask_125_2.dat b/library/phpqrcode/cache/mask_2/mask_125_2.dat
new file mode 100644
index 000000000..0ea40fdae
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_125_2.dat
@@ -0,0 +1 @@
+xÚíÛ!À P¿Ó”û_ƒ@ U(Ûkp@^Mú£Ú®5ÕôªúËîòâ-ú‰:ðöVF_žÌ\t:N§Óétú÷õ¼yžN×qt:N§ÓétºG—ãô;N§Óét:.ËÐå8:N§ÓétzA}ÿµ‹ôÔyžN×q¿Ñ;+nŠ& \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_129_2.dat b/library/phpqrcode/cache/mask_2/mask_129_2.dat
new file mode 100644
index 000000000..bf048394b
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_129_2.dat
@@ -0,0 +1,2 @@
+xÚíÛ1
+À0н§Ñû_®KÈVÚ¡¨'.Éôþ!«²¶w]A0XðÄú÷~˜ «ÚÞ  ö!›š€€€€€€à£ fK# x˜Fy€À4È vey€€€€€€€@^°+È ç º~™ž ¨Û L#ÁêveI \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_133_2.dat b/library/phpqrcode/cache/mask_2/mask_133_2.dat
new file mode 100644
index 000000000..9e78b6de5
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_133_2.dat
@@ -0,0 +1,10 @@
+xÚíÛ1
+À н§‰÷¿œ‹à&´`¢ô…Lâð”üÁˆQ-½g=Aq•bëú¹ŠÊª<‹všb½+©)((((((((ÊIën*…<b§G(((((((((ä
+yÄ{AAAAAAAA!˜Á)ä
+
+
+
+
+
+
+Š•¢ð'ùeŠ¬¹“‚â½ÂMý©¢fv{ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_137_2.dat b/library/phpqrcode/cache/mask_2/mask_137_2.dat
new file mode 100644
index 000000000..95c3c48cd
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_137_2.dat
@@ -0,0 +1,2 @@
+xÚíÜ1
+À н§‰÷¿\—N‚I,/d+Ê£`ð/F|5*zª'H.”,xëO[KšKª«øŸŒ–’õ‰MBBBBBBÒT’|?!!9”8Å$$$$$$$$$$2 ‰ hžÈ€$2 yBBBBBBBBBB"eÈ€æ ÉŸ$µ¯IÜ%É¿Û“œHœb’©_xêÛë \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_141_2.dat b/library/phpqrcode/cache/mask_2/mask_141_2.dat
new file mode 100644
index 000000000..da07da2e8
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_141_2.dat
@@ -0,0 +1,2 @@
+xÚíÜ=
+À н§‰÷¿œ‹t*-ˆ?±¼M…‡á[ŒhUöõ]WÐüB¯ç;–ÎÔd¨wS’j>÷­lš ††fŽÆ„ÓÐÐÐÐÐÐÐÐÐÈš44²& ¬)OÑÈšÞY“FÖ4á444444444c4~œ9S³:3ÐЌטpšÇ®>® \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_145_2.dat b/library/phpqrcode/cache/mask_2/mask_145_2.dat
new file mode 100644
index 000000000..9ff2bbf3f
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_145_2.dat
@@ -0,0 +1,4 @@
+xÚíÜ1
+À н§ùÞÿr]
+Ý,tˆQ^È&ÊCˆð“§ÆÒ~ë
+щ¢Éj~mɾ¢.ÕåŽFgÑüìMDDDDDDDDDDDÔST™×ˆˆêD¦ŸˆˆˆˆˆˆˆˆˆH¦•ŽˆdZï‘L+¯É´DDDDDDDDDDD2-‘é'"""""""":BÔäת½EåY„ˆ¨Ddú‰¾û† †Š \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_149_2.dat b/library/phpqrcode/cache/mask_2/mask_149_2.dat
new file mode 100644
index 000000000..d52e0484b
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_149_2.dat
@@ -0,0 +1 @@
+xÚíÜ;€@ÀÞÓÀý/gcaGÖBXBç'“-ˆ¼Âˆ«²»ouÕ§UQ½dõRVOm¡šTƒÎ*Ç«Ê;;šŠŠŠŠŠŠŠŠŠj¨ªå»ŠªEe2PQQQQQQQQQQQɨ¨ä TTTTTTTTTTTTr»3•œÁ¼¢¢¢¢¢¢¢¢¢¢¢’3ØR©ä &ÕßTsþŒ·»ªk¤¢z_e2P=ê ïd™ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_153_2.dat b/library/phpqrcode/cache/mask_2/mask_153_2.dat
new file mode 100644
index 000000000..3b0604101
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_153_2.dat
@@ -0,0 +1,2 @@
+xÚíÜ1
+€0 ÐÝÓ¤÷¿œ‹8ZP!¿úB¶ÒòèèZuÔÈ賶"û“ìbuºñö™‹ÈÒ*îÎƲé)]MFFFFFFFFFFFFö†¬%= #‹‘™ddddddddddddr ot2¹†yFFFFFFFFFFFF&× #“k‘‘‘‘‘‘‘‘‘‘‘‘É5ÈÈL 2222222222²(YÚµ½7ÉÈ"d¦ÙóÞ@H— \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_157_2.dat b/library/phpqrcode/cache/mask_2/mask_157_2.dat
new file mode 100644
index 000000000..2baf535e2
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_157_2.dat
@@ -0,0 +1,3 @@
+xÚíÜ1
+€0À>¯¹üÿs6‚M¹ÎqUH1¤XØ&Uç̘½fÝ/u-çûé'ñíæ.ºû[ÍKGGGGGGGGGG÷H×|NG¨“(ttttttttttú¬NF§ÏÊ;::::::::::}–ŽNŸ¥££££££££££Ózèè$
+>«“Ñé³…ŽŽŽŽŽŽŽŽn­ üAø#ºî^AG—§“(t¯ì =3{ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_161_2.dat b/library/phpqrcode/cache/mask_2/mask_161_2.dat
new file mode 100644
index 000000000..d2df7594e
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_161_2.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_2/mask_165_2.dat b/library/phpqrcode/cache/mask_2/mask_165_2.dat
new file mode 100644
index 000000000..2e6cd7c6f
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_165_2.dat
@@ -0,0 +1,2 @@
+xÚíÝ1
+€0 ÐÝÓ¤÷¿œ‹Šè ?òBÆVü¥UG¼žµ%åùÐêþ¸åÙ×*“+ú_ŽfÊËs MIIIIIIIIIù–2d;£¤l¨4‰()))))))))))eöqJÙ†IDIIIIIIIIIII)Û ¤”mPRRRRRRRRRRRÊ6lº””² JJJJJJJJJJJJÙ†}œR¶aQRRRRRRRRRRNeòK?R픔͔&åW½3U \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_169_2.dat b/library/phpqrcode/cache/mask_2/mask_169_2.dat
new file mode 100644
index 000000000..4052062b8
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_169_2.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_2/mask_173_2.dat b/library/phpqrcode/cache/mask_2/mask_173_2.dat
new file mode 100644
index 000000000..0a30ba530
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_173_2.dat
@@ -0,0 +1 @@
+xÚíÝ+€@ PÏiº÷¿ÚfÝtóš:>y &d U߬ÔýÍS´´[íþª»ùé¡Õ]5Z;a¼Û5VÛž™´´´´´´´´´´AÚÀï[ZÚË´Œ–––––––––––––V¦«¡ÕƒI0ZZZZZZZZZZZZZZ=-­L‚ÑÒÒÒÒÒÒÒÒÒÒÒÒÒêÁhiõ`Œ–––––––––––––VFK«“·´´´´´´´´´´´´ÉÚü?‚ݧÍìhioÒJ0Úà}³¢o \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_177_2.dat b/library/phpqrcode/cache/mask_2/mask_177_2.dat
new file mode 100644
index 000000000..d2c52f990
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_177_2.dat
@@ -0,0 +1,2 @@
+xÚíÝ1
+À EÁ>§Yï¹4’V$Í~± ,CŠ…¼&UóŒÞ÷;OoŠk5b÷ÑÏ™áâ”óŽG°x9¥Û%&&&&&&&&&&&n$îöõOL|‡Øv#&&&&&&&&&&&&&ÖÝbbݘ˜˜˜˜˜˜˜˜˜˜˜˜˜Xw#&ÖÝl7bbbbbbbbbbbbbbÝM"ÖÝl7bbbbbbbbbbbbbbÝMa!&Ö݈‰‰‰‰‰‰‰‰‰‰‰‰3Ä)U<WܱWŸ/¶Ýˆ#î n  \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_21_2.dat b/library/phpqrcode/cache/mask_2/mask_21_2.dat
new file mode 100644
index 000000000..7466be4bb
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_21_2.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_2/mask_25_2.dat b/library/phpqrcode/cache/mask_2/mask_25_2.dat
new file mode 100644
index 000000000..0bc44c034
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_25_2.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_2/mask_29_2.dat b/library/phpqrcode/cache/mask_2/mask_29_2.dat
new file mode 100644
index 000000000..5112d11ef
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_29_2.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_2/mask_33_2.dat b/library/phpqrcode/cache/mask_2/mask_33_2.dat
new file mode 100644
index 000000000..5bac0c80d
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_33_2.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_2/mask_37_2.dat b/library/phpqrcode/cache/mask_2/mask_37_2.dat
new file mode 100644
index 000000000..bdfc0bd43
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_37_2.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_2/mask_41_2.dat b/library/phpqrcode/cache/mask_2/mask_41_2.dat
new file mode 100644
index 000000000..c55c63e8c
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_41_2.dat
@@ -0,0 +1 @@
+xÚ30€C¸ †¯JB€&¶Ã¹†ШÊQ•£*‡ªJXi@lÉ0øUÂý> *F™>– \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_45_2.dat b/library/phpqrcode/cache/mask_2/mask_45_2.dat
new file mode 100644
index 000000000..ad44ff188
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_45_2.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_2/mask_49_2.dat b/library/phpqrcode/cache/mask_2/mask_49_2.dat
new file mode 100644
index 000000000..6e8edff24
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_49_2.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_2/mask_53_2.dat b/library/phpqrcode/cache/mask_2/mask_53_2.dat
new file mode 100644
index 000000000..682cae2aa
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_53_2.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_2/mask_57_2.dat b/library/phpqrcode/cache/mask_2/mask_57_2.dat
new file mode 100644
index 000000000..66a5c056b
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_57_2.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_2/mask_61_2.dat b/library/phpqrcode/cache/mask_2/mask_61_2.dat
new file mode 100644
index 000000000..77d3815eb
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_61_2.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_2/mask_65_2.dat b/library/phpqrcode/cache/mask_2/mask_65_2.dat
new file mode 100644
index 000000000..caf184ada
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_65_2.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_2/mask_69_2.dat b/library/phpqrcode/cache/mask_2/mask_69_2.dat
new file mode 100644
index 000000000..6a3801bf5
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_69_2.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_2/mask_73_2.dat b/library/phpqrcode/cache/mask_2/mask_73_2.dat
new file mode 100644
index 000000000..74945b718
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_73_2.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_2/mask_77_2.dat b/library/phpqrcode/cache/mask_2/mask_77_2.dat
new file mode 100644
index 000000000..903cba4a0
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_77_2.dat
@@ -0,0 +1 @@
+xÚíØ1À н§Áû_®‹CMŠØ>òGót Ñ«eó¨+Ž×FWÄZE¼­mÓ&gÞ‡F£Ñ¶h‰ùF+×t/F£ÙYvF£´õ³ïµÜì¥Õjçô[*7òÕa¶ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_81_2.dat b/library/phpqrcode/cache/mask_2/mask_81_2.dat
new file mode 100644
index 000000000..17a9ac2a1
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_81_2.dat
@@ -0,0 +1,2 @@
+xÚíØ1
+À0н§Ñû_®KÉÒ©Vi!O\"á‘Aøˆ«ò]¯:‚x»‘çÃbWµ½1ÅuȦ&‰Ä_‰µT ΋6œH$‰ÒU^‰Dâ~bׯëb=gˆ³âžûXî­ÛÙ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_85_2.dat b/library/phpqrcode/cache/mask_2/mask_85_2.dat
new file mode 100644
index 000000000..72c74ff9a
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_85_2.dat
@@ -0,0 +1,2 @@
+xÚíØ1
+À0Ð=§1÷¿\—B7¡ÖÖOþ$á‘A0$â¬ý8W­ ¦ê­þwjguÞu¿­æ§Š¡R©T*u•÷SÖ§Ž¨æ•J¥R©ÞTóJ¥R©ÿRö‡ÕêÞ¢N¨æµ˜çVû \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_89_2.dat b/library/phpqrcode/cache/mask_2/mask_89_2.dat
new file mode 100644
index 000000000..06c9a4fe3
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_89_2.dat
@@ -0,0 +1 @@
+xÚíÙ± À0 À>ÓÈû/—&E*câÇQqâëÃŃ ªzf$òš«ÈËrM…ßåô„ß<ŽÈsa#d2™L&’?ïArYŸÉd2™LöG"ë3™L&“{ÊÙëRygw“;ÈúÊ ƒñÚI \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_2/mask_93_2.dat b/library/phpqrcode/cache/mask_2/mask_93_2.dat
new file mode 100644
index 000000000..f5202963d
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_93_2.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_2/mask_97_2.dat b/library/phpqrcode/cache/mask_2/mask_97_2.dat
new file mode 100644
index 000000000..38842b989
--- /dev/null
+++ b/library/phpqrcode/cache/mask_2/mask_97_2.dat
@@ -0,0 +1,2 @@
+xÚíÙ1
+À0н§Ñû_®Ki·vH4 <q  Â#®Ê©ýÔ„ÂËôsÔ-TUÕ²S¸_YÔ@ k…‘¼DØI°@ äV‚ÜJ a©PtÅÿ—0œ—›ö¡C8%ó¬ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_101_3.dat b/library/phpqrcode/cache/mask_3/mask_101_3.dat
new file mode 100644
index 000000000..fa9925121
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_101_3.dat
@@ -0,0 +1 @@
+xÚíÚK€ EÑyWSö¿9'D1ñŸ¾ªp ã /9±Ðîu•èÝ,kžu9–Ò¤¼$¶îû%‰Ý­wAL¹¤b%ClA³ƒzqÛ´å붌‚bˆ!†ØÇĤwå™XÜ4`Áõ¶_ö'FWrŽ!†bˆõ&Æt1Ä<FWrŽ!†bˆýXŒé‚yŒ®äC 1ĆÓý©²Ó‡Ì)E{WúÙ¯AÓ…gLž1]¼-&øƼ§®”æLqn‰ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_105_3.dat b/library/phpqrcode/cache/mask_3/mask_105_3.dat
new file mode 100644
index 000000000..d8a28ce98
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_105_3.dat
@@ -0,0 +1 @@
+xÚíÚ1€ DÑ~O3Üÿr6„Ð@(œ1ê'†„¬ûâÂJ}4Ï£¦gk 9’7ÐéA=­÷ž¯Ÿèi»÷p}‘“w¸õZJo¬ýûÜ8Ë¢ÏJB=ôÐCÏs= =÷;ô”Hê³zT.çz衇zô{ô{ô{T.çz衇zô{ô{ô{T.z衇zoÔS$P«T õhŽŽE©Ž%•Ô¿ôbßž¯r•ª\RåL$Ý \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_109_3.dat b/library/phpqrcode/cache/mask_3/mask_109_3.dat
new file mode 100644
index 000000000..48d94040e
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_109_3.dat
@@ -0,0 +1 @@
+xÚíÚ1€ DÑ~O3Üÿr6Ñ‹Ý ÁO(‹Í¾™©V6ïÓsy±¹š¡¹Ð>’)ë_%s×_½Õƒd3KŽO1^ša†§LŸá,†$’H"‰$’KzRP—t[I&¯ÿX’ÝÍ9‰$’H"‰$’äIò$y’sI$‘DI$É“äIò$»I$‘DÉ%eëÌsò!¹¼=—™‚äLAZ5—œ'åÌ“IVý“rîn¸»/2oÆ… \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_113_3.dat b/library/phpqrcode/cache/mask_3/mask_113_3.dat
new file mode 100644
index 000000000..023b27304
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_113_3.dat
@@ -0,0 +1,2 @@
+xÚíÚA
+€0 DÑ}N“ÞÿrnDëÂFj2úK‚ÂÈCÂt?W«ÜݲîZ“iêÀ.qÕÁ‹ŒoýP ô¯ªª%SmjÕÖÂ7ËÞ¦‹:·©ª¨¢Š*ª¨N©Ê:@¤:݇·ìýÁŠ¾º•*€¹Š*ª¨¢Š*ª¨f©ÒW9dª2˜«¨¢Š*ª¨¢Šj–*}•S@ Ê`®¢Š*ª¨¢Šj½ªæ¯à§ª6ðJlº¾êÑ¿Ã}ÕÕ}ÕÕ§€•T‹¿UßaÈ24hnt \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_117_3.dat b/library/phpqrcode/cache/mask_3/mask_117_3.dat
new file mode 100644
index 000000000..79cc04d14
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_117_3.dat
@@ -0,0 +1,4 @@
+xÚíÛ1
+Ã0 Ð]§Qî¹.¡xIÚB$úŒ‡€Á?~!É<ÇQ?ß#–ç¶Ð5µ/tIÝJ8owøié{áßçâ¬}£Sø˜^ã~‡¢½q猉P„ &L˜0áJá¢î1ÊúϻݢðD×K'¬J¨Ã„ &L˜0á…õÃn
+«ê0a„ &Lxgaý°Gƒ°*¡&L˜0aÂ{
+g{è¡Ÿþ2¨ë‡s¢Ή~˜ðì7\]%r¢Jôö9nZ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_121_3.dat b/library/phpqrcode/cache/mask_3/mask_121_3.dat
new file mode 100644
index 000000000..aff5a7be5
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_121_3.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_3/mask_125_3.dat b/library/phpqrcode/cache/mask_3/mask_125_3.dat
new file mode 100644
index 000000000..e2febdbdd
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_125_3.dat
@@ -0,0 +1,2 @@
+xÚíÛ1
+Ä Ð~N3ÞÿrÛ„]·‰BБÝ'?<Âà/̼VÛµ»Ýóþü¨ ïÒ”¿ÿ´…<–’0-_±Jä[¥ü?† +wÔÄ^;*ÃyòäÉ“'Ož<ù’/9ÏÏɯì9±<áîyÓÆœ'Ož<yòäÉ“'¿J^“Òa—È›6¦ yòäÉ“'Ož<ùGòš”{–¼icΓ'Ož<yòäÉå÷ßPû–¯ §·šó|Î]¨ZÖ¤²²Iee“:[~Ë?Ÿÿ<mJò_¶NŠ: \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_129_3.dat b/library/phpqrcode/cache/mask_3/mask_129_3.dat
new file mode 100644
index 000000000..b1ce63b74
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_129_3.dat
@@ -0,0 +1,8 @@
+xÚíÛA
+€ н§ï¹6!n” ðG<q‚4øhð/ªºG?;ÇhÓs¤€¹‚LST¨õÞ÷ëOj»÷åúâ 2#¥ÐÓ
+DÛ×y`¶Ü«ïÙÒP @
+ÏÎ\†BêŽ4*yt$‰
+(P  /È ò‚¼ #Q @
+äyA^t$
+(P @‚¼ /È ò‚ŽD
+(ü\¡¢ô–.`ý§íÉ›j¥oªéC °Sˆ ç;R¥;Rî.€Iõ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_133_3.dat b/library/phpqrcode/cache/mask_3/mask_133_3.dat
new file mode 100644
index 000000000..f4181507a
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_133_3.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_3/mask_137_3.dat b/library/phpqrcode/cache/mask_3/mask_137_3.dat
new file mode 100644
index 000000000..e24ac5b51
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_137_3.dat
@@ -0,0 +1,2 @@
+xÚíÜA
+Â0Ð}N“ÞÿrnªFÔHSš™à YQ|øé‡ÒZ÷µEìf•æuì,%Ë Í$‰uj÷ÓG£:Ãßzèèóo»Âu¶,:O òsâY»Ä°ï’e:tèÐI¡sÅÕj÷¨|ãÌ+ê»Nø5ŽŽd“ltèСC‡:tÎèè;Úèb:’M²Ñ¡C‡:tèÐ9££ïh£ËëH6ÉF‡:tèСCǽ Ú¨{A%›d£C‡:tèü³NìÓ$^ur ò˜dV—èô±'\Ówj–¾S³´Ñt‚þ;U²½'[ø,7ÃÜ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_141_3.dat b/library/phpqrcode/cache/mask_3/mask_141_3.dat
new file mode 100644
index 000000000..a3f6a2480
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_141_3.dat
@@ -0,0 +1,2 @@
+xÚíÜA
+Â0Ð}Nó{ÿ˹)%]ØjÀf /d!ˆuÈÃOŠUûÚæícµîõô0}šùaº4ùR9ëòÊ_½õ¡T~é`˜ÓÙÌ_ R[’T‡Õ®¯ððn1öÝ’Â"EŠ)R¤H-*•p—~H…Ü¥ßJýäÞ„Ô°”égú‘"EŠ)R¤H‘J“Ò§4ß‘2ýL?R¤H‘"EŠ)RiRú”滀”égú‘"EŠ)R¤H‘ò ­>¥ùz†Öô#EŠ)R¤H‘Z@ªbÂl-)ÌÝ¿ñ<ߧ*©OURŸ"5&•ö›š5ý*iúeÎ J]®+ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_145_3.dat b/library/phpqrcode/cache/mask_3/mask_145_3.dat
new file mode 100644
index 000000000..338b7e7a8
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_145_3.dat
@@ -0,0 +1,3 @@
+xÚíÜÁ
+‚@Ðý|Íóÿ®”•:Œ^ñ ³JyÌ¡¤ªyM§î×j‹×-'
+9¤V—SÛýÖ¦K¶©9ëÇe¬µ)PíyUûû¹£wËeÞ-m jÔ¨Q£F5jÔ¨RËiÙ«ÔF4×_wk}·0+µµjRBR£F5jÔ¨Q»ƒš¾¦eßOMBJHjÔ¨Q£F5jwPÓ×´ì˪IH I5jÔ¨Q£FͳÇúš–íÙc éw5jÔ¨Q£FíµŠ:¡œÿÑzS«Ž*2¤¯UZ_«¾CÒ×*­e_Oí´ïZ¥%dIȯûâ†b \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_149_3.dat b/library/phpqrcode/cache/mask_3/mask_149_3.dat
new file mode 100644
index 000000000..30bc5fabc
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_149_3.dat
@@ -0,0 +1 @@
+xÚíÜA‚0Ð}Oó¹ÿåÜ â¦Hé ¯éÂô“'¬Z×2{oVÛ|Ι«%µ™ê>‚yû·R{‡!8îäÂI+JpI|#¶Ýfì–5κ[âP A‚ $H Á‚Q}ð)Õ&<¹÷E‚§ JQ)J A‚ $H Ás5zþ¥¨%H A‚ $Hà4A^£ÿ5A)*E $H A‚ $è½ Þ3ïMHQ‚ $H A‚ç æü3Þ§`ÞP¯©®o¢Ý>X{טÔè+±ÑWb£¿¡àìß`IÑã)5׈%dš \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_153_3.dat b/library/phpqrcode/cache/mask_3/mask_153_3.dat
new file mode 100644
index 000000000..89cdec031
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_153_3.dat
@@ -0,0 +1,2 @@
+xÚíÜA
+Â0Ð}Nósÿ˹)7mJ¦õ…,Å}8µêX=c¿W^G“e’ÝNó<v]]bí­Iͯ_½Ïû¸gY+M³§j íò“»vË‹tì–Œ&Mš4iÒ¤I“&MšÿªxÞœÑÜu~o[¯~ö4W55­¦¥I“&Mš4iÒ¤I“æS5ML¯©i5-Mš4iÒ¤I“&Mš4o­iz`z@SÓjZš4iÒ¤I“&Mš4izÅôÀôÀs(šVÓÒ¤I“&Mš4iÒ¤¹¬Y‘ÁzK 6ñ¦Ï›•:=¨ÔéÍ_hÆþ6·7m¥6mÞM{üHã \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_157_3.dat b/library/phpqrcode/cache/mask_3/mask_157_3.dat
new file mode 100644
index 000000000..167e6f844
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_157_3.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_3/mask_161_3.dat b/library/phpqrcode/cache/mask_3/mask_161_3.dat
new file mode 100644
index 000000000..72a26a4fc
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_161_3.dat
@@ -0,0 +1,3 @@
+xÚíÜA
+Â0Ð}N“ÜÿrnªF±ÑTká…,„€NûðÛ ÄZ—Ñ’f7J÷:³Æ’^`WáÙ”U×á»nXÚ¤¼Ç§M-½¾‡™#V¹¥+ß¡ËÛ+9z–ÜÒ–YÒ l”)S¦L™òo•cŸ±¯Ê±O_Cå?ß©õ%Ê;*Kl‰M™2eÊ”)S¦L™2åYeý²]ÊÏÊ[bS¦L™2eÊ”)S¦LyVY¿lW„òGÊ[bS¦L™2eÊ”)S¦LÙÙ
+ý²]g+$¶ßeÊ”)S¦L™2eÊ”­Ð/Ûq¶BbKlÊ”)S¦L™2eÊqÊ™ÿ‚þ¨œ]à­Â£{ÎA¿¼¦œÔ/×ô~¹¦ïŠœV9ï»\%ö÷‰[ãP¯#' \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_165_3.dat b/library/phpqrcode/cache/mask_3/mask_165_3.dat
new file mode 100644
index 000000000..870af8f4f
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_165_3.dat
@@ -0,0 +1,2 @@
+xÚíÝA
+Â0Ð}N3¹ÿåÜT‰ #ØZþÀ Y¥uÈí:ÆÌ›¯1–ϱE®Uæ¹TÙT|SüþÒ·Ô ñ ¿qž)òm-sG²øì ¾ ýBæÈ.C‘ĉ'Nœ8qâÄŸâáÿÕ÷âwv7û[Æç'„tgÄÿ!.Õ¥:qâĉ'Nœ8qâÄÄõãv`ˆ_+.Õ¥:qâĉ'Nœ8qâÄÄõãv`ˆ—êR8qâĉ'Nœ8qâΤèÇíÀ8“"Õ¥:qâĉ'Nœ8qâÄIÑÛq&EªKuâĉ'Nœ8qâ½Ä+¾È9:¹}kFT?^úñêпG¼Åo<0Õ«Cªg/æ_ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_169_3.dat b/library/phpqrcode/cache/mask_3/mask_169_3.dat
new file mode 100644
index 000000000..943109526
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_169_3.dat
@@ -0,0 +1 @@
+xÚíÝA‚0Ð}O3Üÿrnˆ¢‰ñ·¾¦ ¨)}á'3ªæ1EÎÇh‹ßÑ]î4üP[ £_«ñÁ¥]Kvè‡<ÃË™fpý©#ýûª¶y_Êlù[œgëe£ôéÓ§OŸ>}úôéÓÿoý ªµ%uJV/µ°“{¿„þ—ô%¿ä§OŸ>}úôéÓ§OŸþ¨úê}Ýú§êK~ÉOŸ>}úôéÓ§OŸ>ýQõÕûº=ô/Ñ—ü’Ÿ>}úôéÓ§OŸ>}ú£ê«÷u{èï×—ü’Ÿ>}úôéÓ§OŸ>}ú£ê«÷u{蟪/ù%?}úôéÓ§OŸ>}ú¿×¯.N4ÿ»<Oúµõ±‘”z¿z©÷lôêz¿zéö ¢ŸøîW/É_’ÿ´yp \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_173_3.dat b/library/phpqrcode/cache/mask_3/mask_173_3.dat
new file mode 100644
index 000000000..746698627
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_173_3.dat
@@ -0,0 +1 @@
+xÚíÝA‚0Ð}O3ÜÿrnPkŒTTèŒyM$&e/|ù"ÖµdÝÝjÝuþy[¥a»i‹KˆÑ{úòÌM S&z[B…UBÂRIÂCÞ!Ón5Æ\w«4ìB $@ $°[”ÿ°£3Ûëc²½E^%”xw á ÒA:@ $@ $@ $B‚fI³D ÒA:@ $@ $@ $p¶Í’f‰„Ã%Hé@ $@ $@ $@BR š%Í ¿” ¤ $@ $@ $@ )$h–4K$L ¤ $@ $@ $@³„ü_{”PgØÛ´yŽÍ>áƒVMm–¢R³•š¥‘ø™Òá¸t(1ï…¢| \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_177_3.dat b/library/phpqrcode/cache/mask_3/mask_177_3.dat
new file mode 100644
index 000000000..9586979a1
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_177_3.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_3/mask_21_3.dat b/library/phpqrcode/cache/mask_3/mask_21_3.dat
new file mode 100644
index 000000000..bcb4eec49
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_21_3.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_3/mask_25_3.dat b/library/phpqrcode/cache/mask_3/mask_25_3.dat
new file mode 100644
index 000000000..0ffc375fc
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_25_3.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_3/mask_29_3.dat b/library/phpqrcode/cache/mask_3/mask_29_3.dat
new file mode 100644
index 000000000..6150ac128
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_29_3.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_3/mask_33_3.dat b/library/phpqrcode/cache/mask_3/mask_33_3.dat
new file mode 100644
index 000000000..6053b5e39
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_33_3.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_3/mask_37_3.dat b/library/phpqrcode/cache/mask_3/mask_37_3.dat
new file mode 100644
index 000000000..5dea5b9cb
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_37_3.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_3/mask_41_3.dat b/library/phpqrcode/cache/mask_3/mask_41_3.dat
new file mode 100644
index 000000000..ca9ddc2aa
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_41_3.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_3/mask_45_3.dat b/library/phpqrcode/cache/mask_3/mask_45_3.dat
new file mode 100644
index 000000000..3daad97f8
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_45_3.dat
@@ -0,0 +1,2 @@
+xÚí”K
+À D÷sšñþ—ëFJ(&™)ô³0d¡øЇ’³FÞg!Œ[8Ò=èÛ&ËiaÂÎD)Åd8&AËÕ¬¡a³áÀÛä 1'™I–I”«×³ž7Ù9ù­ exÀ“ß¾È ÄÒIìû&Ö´¯Cçu´ÍJy‚ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_49_3.dat b/library/phpqrcode/cache/mask_3/mask_49_3.dat
new file mode 100644
index 000000000..7f6508ddd
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_49_3.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_3/mask_53_3.dat b/library/phpqrcode/cache/mask_3/mask_53_3.dat
new file mode 100644
index 000000000..8800beab1
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_53_3.dat
@@ -0,0 +1,2 @@
+xÚí–K
+À0D÷s½ÿåº ­¥‰Ñ! -(.Bp&|ˆ"-t–&`Æq‘Q-"†ð9Ù_+)Be/H8¾ãD®¼%‘a~šÐ}spKFN˜úöœ¶Ö=,ÂÆ;‡;a^tª4÷–‰Ï\™ÞF™ÎáÂÀÊÎSNé§éâ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_57_3.dat b/library/phpqrcode/cache/mask_3/mask_57_3.dat
new file mode 100644
index 000000000..4e1e5da38
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_57_3.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_3/mask_61_3.dat b/library/phpqrcode/cache/mask_3/mask_61_3.dat
new file mode 100644
index 000000000..bf1a3cc7f
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_61_3.dat
@@ -0,0 +1,2 @@
+xÚí–A
+À0ï¾fýÿçz‘4-%š•Ò*Ãâd°Ðpž!ÝyZÜ«‰æ‚uäõ(ù¸~ë=¹&ÉÛ“´‹)œÌR2â"/ò"ÿ<9çŠFΊ=r§þbòšó"/ò“ƒîÌíçrw¹"2®¯¹ãçÈøùBòèŸ#3-Ø0-KÀW \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_65_3.dat b/library/phpqrcode/cache/mask_3/mask_65_3.dat
new file mode 100644
index 000000000..85892089b
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_65_3.dat
@@ -0,0 +1,2 @@
+xÚí—Q
+€ Dÿç4»÷¿\?R•Û …Å,û!¨OŠ²-òNv®Í1 :Âc¡Zœuï Ú"U‹MÕF ~jK¨€´…-la‹[^q^³Q\éœ=…o”-la‹ÿZpUÒÞB¬„äÿ ±@IµÖKµJzÉ¢|1â ÷¹ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_69_3.dat b/library/phpqrcode/cache/mask_3/mask_69_3.dat
new file mode 100644
index 000000000..55318a87b
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_69_3.dat
@@ -0,0 +1,2 @@
+xÚí×Á
+€0 Ð{¿&ûÿŸó2¤'—®dô l†=,¹F½îéy;$§ì‡¤”WEË-R„Š¨³:¢¡%T,O2½×g…"Ä"‹,²È¢/DÍyĈ˜¹ôɧ{þO䮳È"‹,:N„vÈEñWNÎ#(&,ö,‘䕺Š®ë]æxØ… \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_73_3.dat b/library/phpqrcode/cache/mask_3/mask_73_3.dat
new file mode 100644
index 000000000..15be77f64
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_73_3.dat
@@ -0,0 +1,2 @@
+xÚí˜Q
+€0 Cÿ{šìþ—ógè;è¥JJ?dÔ¬K„=ÚRaÃsJhTJ6exÎkaºú¥§\$é‘n¯´IE,-/ÑÓXB¢è*Ñ…=ËâžíÚÒýweeé4™¢è¸tÿöÌ’tšLщî«t t”ß«œèà¯bž –gF…fž ÖáqºõoÖd¢Ðdn-ð? \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_77_3.dat b/library/phpqrcode/cache/mask_3/mask_77_3.dat
new file mode 100644
index 000000000..ec7828044
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_77_3.dat
@@ -0,0 +1,2 @@
+xÚíØA
+€0 Àû¾&ùÿç¼­BŠiÖRaK"té`I@³¶|¶º…fX—ö±Ôâ­yiöåólõE‘:Sza18G¾À‰if˜K*©¤?–:YÜC1쌞졘(ቷ—êöJ*©¤’¾’jÊl*Õí•TRI×KëÌîR^Ø™æœÞksûÂ)cÌ)cÌ)³JZø¦¶óí¥äãa· \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_81_3.dat b/library/phpqrcode/cache/mask_3/mask_81_3.dat
new file mode 100644
index 000000000..47bc0f793
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_81_3.dat
@@ -0,0 +1,2 @@
+xÚíØ1
+À Fá=§‰÷¿\‘,JÑGAúÄ¡‹ýhjÀÌ>ÚÙ#Ê3X™À’ø:çk÷Ô¹\ûFM JÝhuÇú½3¸¨>ƒT­ZõŸÔ{ÇãPSgøP'¹ÉkÔV¸jÕªU«¶_Û¯ý¯U«V­º•»=P Îo†O:WÒ‹ÞäÝjü[ŸWxÒÎmò Ù5 \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_85_3.dat b/library/phpqrcode/cache/mask_3/mask_85_3.dat
new file mode 100644
index 000000000..02c4f8cdb
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_85_3.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_3/mask_89_3.dat b/library/phpqrcode/cache/mask_3/mask_89_3.dat
new file mode 100644
index 000000000..2b4cb59fc
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_89_3.dat
@@ -0,0 +1,2 @@
+xÚíÙ1€ …ὧ)÷¿œ *.@àUÁü ƒÓÓ|±¶‰î¹’âeŵ6Û¢‚‹äw5*÷ô) oôi¨K®‘¢4nk>Áè1}d>œÐ@ 4ÐXYC¾oœò Û¡1<º©A§ h F„ûÆt
+ß 4Ð@µ5´—ž1ÁWrÒï>7û«û†Gíµ}}¤¡x7|ÇN‘gÆîÚN \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_93_3.dat b/library/phpqrcode/cache/mask_3/mask_93_3.dat
new file mode 100644
index 000000000..b4cc8a971
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_93_3.dat
@@ -0,0 +1,2 @@
+xÚíÙA
+€0 DÑ}N“ÞÿrnJɪQš~éB¨Œú06 û£n®aá¸<<¦×‡‡ôÿe6×M—R™ýCùÅPÈ ¥LÀ±ôÌ“išØ9MŽ 2È ƒLkÅ®½dD»v*ó"a·ÔX†jBdAdªdèôZöÀTßdAd®qYø0exö÷ö¼Ÿqe§çÊN¯«Œú©ª&WV“ææQvcô \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_3/mask_97_3.dat b/library/phpqrcode/cache/mask_3/mask_97_3.dat
new file mode 100644
index 000000000..7adc9ebaa
--- /dev/null
+++ b/library/phpqrcode/cache/mask_3/mask_97_3.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_101_4.dat b/library/phpqrcode/cache/mask_4/mask_101_4.dat
new file mode 100644
index 000000000..1c97dc048
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_101_4.dat
@@ -0,0 +1,2 @@
+xÚíšA€ Füÿs^1 b¤‹ÆáИª]ÃØÖ4šm+Æ8Ð+˜Ve¬Ä^H­R]–\Íc‡®ŠÛ
+·oõWN#¸îXáéØá+lð ž­HE³cp \à—^.Î9qñW9ø¼ïç"ò…:¸À.ŸæBßÿó÷ùBƒ \àæ0Ìa˜ÃPǨcp \ÞÍÅïO•’‹N¥qjpGÖô}“ô}¥Ê$.äË…Š§ÐŠ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_4/mask_105_4.dat b/library/phpqrcode/cache/mask_4/mask_105_4.dat
new file mode 100644
index 000000000..0211cdb3a
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_105_4.dat
@@ -0,0 +1,2 @@
+xÚíšK
+€0 D÷=Mrÿ˹‘øA …ÎTáe‘EFóL2 #ŽÈÌé¹¢…_I!“‹•ßú­£ç딤Ѻ““Î-Õ«km¿Oñá]sS T6*ùª'8Á NŸâ$Þî'N¥Z‹Êí^œ<JvNôsNp‚œà„ßÃïá÷è'æœà'8Á ¿‡ßÃï1÷˜{p‚œàô?N¿µnœ¼JóüBÏ…ùü^Øüž[i'úiHI-¶¢m+W \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_4/mask_109_4.dat b/library/phpqrcode/cache/mask_4/mask_109_4.dat
new file mode 100644
index 000000000..2cc0c815d
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_109_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_113_4.dat b/library/phpqrcode/cache/mask_4/mask_113_4.dat
new file mode 100644
index 000000000..99bd73f69
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_113_4.dat
@@ -0,0 +1,2 @@
+xÚíÚA
+à н§Ñû_®‹Jb)t&„çBBÒøK_•‰¤Ö³µÖ6õC+5/q_Üghfâ×Çú©Éíÿž¿CbH+¾p›º¿¯§;WK?ÞüGútô ‰ñ¿*GŽ9r|‚c`ÕÑc¾¶Î9FKHÌq4­«9räÈ‘#Ç…ŽêUÏ×ÍGë*GŽ9räÈÑ>¹}rûäÖUë*GŽ9r|ºcÌ[Á£cNâ¬Þ[_=Æ׫5¼^ÍJ¼£ù¸ 1*ôq›v \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_4/mask_117_4.dat b/library/phpqrcode/cache/mask_4/mask_117_4.dat
new file mode 100644
index 000000000..386725918
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_117_4.dat
@@ -0,0 +1,2 @@
+xÚíÚË
+à н_£ÿÿs]4Ø¥©Dg¤nò¸à‰2Jj}´ÖÚÒ¾·RsSWG¶R¿ŒÉ§†žÚ)5¬»ÞE†áämá#ܯ•ã¾Õðk_"ÃzŸ”š3Â\¹råÊ•+×r ­L»k|ê/{„¹;Ž'×àÔ<WóÕ:Ì•+W®\¹rÝÜU=lŸ3ÏÕ|µsåÊ•+W®\û;÷wîo¾Z‡¹råÊ•+×ý\ƒþ¼sÍKýÃûzešS×”z83u#Wóubjdð àÝ$Ÿ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_4/mask_121_4.dat b/library/phpqrcode/cache/mask_4/mask_121_4.dat
new file mode 100644
index 000000000..84957eb7b
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_121_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_125_4.dat b/library/phpqrcode/cache/mask_4/mask_125_4.dat
new file mode 100644
index 000000000..b98dc813a
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_125_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_129_4.dat b/library/phpqrcode/cache/mask_4/mask_129_4.dat
new file mode 100644
index 000000000..8ecfa2508
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_129_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_133_4.dat b/library/phpqrcode/cache/mask_4/mask_133_4.dat
new file mode 100644
index 000000000..69f83acbd
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_133_4.dat
@@ -0,0 +1,3 @@
+xÚíÛA
+à н§Ñû_®›Òš…BþÂËB¨2à‹f™ó{­µ
+ÇíÆcf¥¨°gÈKqøã=óÙ)Ú®£‹»çWÀŠlK2Þ¿ÊË8:oþCRd¬\pÁ\pñ@­ï+$EÅÿÏùQ.ìÎç\pÁ\è#úˆ>¢Ø/œ#\pÁ\pÁ…>¢è#ö ç\pÁ\p¡è#úˆ>âqŽpÁ\pÁÅ.º¾$¿ºÈIqü𽤠dô‘ÑG’R»°_4¦è ò€˜ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_4/mask_137_4.dat b/library/phpqrcode/cache/mask_4/mask_137_4.dat
new file mode 100644
index 000000000..0c09c487c
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_137_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_141_4.dat b/library/phpqrcode/cache/mask_4/mask_141_4.dat
new file mode 100644
index 000000000..62b03f243
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_141_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_145_4.dat b/library/phpqrcode/cache/mask_4/mask_145_4.dat
new file mode 100644
index 000000000..33fb21124
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_145_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_149_4.dat b/library/phpqrcode/cache/mask_4/mask_149_4.dat
new file mode 100644
index 000000000..de99310f3
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_149_4.dat
@@ -0,0 +1,2 @@
+xÚíÜÁ
+!н_£ÿÿsmœÉ Œ„Á+XÓ‹9=ó.ªõ=Zkça”š]ÕÞ’> K¯jò´oé ¾ªý|¯SªŠSWKùZmË׌ºƒÃjé¾€Ã\’Š¹çЪ2ï W\qÅW\qÅÕñ®"~·ß× ­jvÚtòê®òªŠv¥_Ùíƒ\qÅW\qÅW\q%g3Èä ú•}+®¸âŠ+®¸âŠ+®ä r9ƒœA¿²rÅW\qÅW\qÅ•œAÎ g3èWöAû W\qÅW\qÅW—«œÆ]åVµ~v{êDŸ™3ÔÈœ!¹ªƒ\éWÇô«¬Â^<ír/ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_4/mask_153_4.dat b/library/phpqrcode/cache/mask_4/mask_153_4.dat
new file mode 100644
index 000000000..e827dd16f
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_153_4.dat
@@ -0,0 +1,2 @@
+xÚíØ1ƒ0ÀÞ¯ñýÿsi,')p!äµ4.ÜГ;±½¿WUmßçj=¿²„²ê°Ê.NO¾þ>úûšçTµÚ[÷¾S7vÜÛœg¶q•„?æ÷ÞÒ
+š{pe¹o“3Î8ãŒ3Î8ãŒ3Î8{ØYXzðá,°²Û_úO¤ÓYfeñÎô3sÓÜäŒ3Î8ãŒ3Î8ãŒ3¹†\C®!×ÐÏÌMs“3Î8ãŒ3Î8ãŒ3Îär ¹†\C?379ãŒ3Î8ãŒ3Î8ãŒ3¹†\C®!×07ÍMÎ8ãŒ3Î8ãŒ3ÎÎq¶þÚé,»²ËmMrs›k¤Wvœ3ýìÀ~–WÜ €WB \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_4/mask_157_4.dat b/library/phpqrcode/cache/mask_4/mask_157_4.dat
new file mode 100644
index 000000000..ad5fcf69d
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_157_4.dat
@@ -0,0 +1 @@
+xÚíÜ1Â0ÀÞ¯ñýÿs4˜"FPà=iRX¢XÉÛ0ç멪€u 4ftÑÖl}Òm¾øßýžéâž­»Sû|²ËÑŽëSÌ û¶ŽÄPÏ5<]öÉrÇwÜqÇwÜq÷£»È^QáéN6ÃûáéZ¸sß™³æ,wÜqÇwÜqÇ>«Ïê³ú¬ûÎœ5g¹ãŽ;î¸ãŽ;îôY}VŸÕgÝwæ,wÜqÇwÜqÇwú¬>«Ïê³æ¬9ËwÜqÇwÜq§Ïê³ú¬>ë¾3gÍYî¸ãŽ;î¸ãî[ww?P3Üå§ÛþòÑƘÝggtŸí®¡;÷]ûû.3àw4A¯ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_4/mask_161_4.dat b/library/phpqrcode/cache/mask_4/mask_161_4.dat
new file mode 100644
index 000000000..7604c4540
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_161_4.dat
@@ -0,0 +1 @@
+xÚíÚA‚@ Ðýœfæþ—s!AL€Ä_|,ˆ™4òl)iï¯mŒ²ßl­×‰0'¼÷ +E¸û…£ ÷–]N\ºêüxÅ#·‡§2Ÿç/ü¼_¬{—7gÛò9ì¼Ù·ÔÀÖ}óï2‡rÈ!‡•?}-³#<Zü×χëj"¬áP>T—Õe9äC9äC9üÀ¡~ùöý²÷6Sʇ겺Ì!‡rÈ!‡rÈ!‡æôËÞÛ˜sÕe9äC9äC94ç _öÞÆœƒ|¨.«ËrÈ!‡rÈ!‡šsÐ/›s0ç ªËê2‡rÈ!‡rÈá8ì§}D‚ÃÎìçw£ùýrï—«DXΡ|xÃ|˜ä!à2ð \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_4/mask_165_4.dat b/library/phpqrcode/cache/mask_4/mask_165_4.dat
new file mode 100644
index 000000000..d83d63165
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_165_4.dat
@@ -0,0 +1,3 @@
+xÚíÚA
+1 Ð}OÓÞÿr.ª"Ñ*?úfÑÅÌP‚óLHIï—kŒµÎ«õZQ¦…8
+Gy÷êqkñ-ž¿ÿÎn5£Œ½Ú+?ÌÒñùù¾Ýâ¿ø|ÖŽ÷Òþà·kKn®E¢¬ñŹä’K.¹ä’K.?ï2º£˜.ó£|¼EJ§{å2<Ê:.åKu\ç’K.¹ä’K.¹ä’Ë—úñ¿êÇmu)_ªãê8—\rÉ%—\rÉ%—\šÛÐ;'2·!_ªãê8—\rÉ%—\rÉ%—\šÛÐ;'2·!_ªã\rÉ%—\rÉ%—\rinC?nnÃ9‘¹ ùRç’K.¹ä’K.¹äò;.û²óHqY'ÊݽéþN·F?ÞKôã•¢,êR¾üé|™è My*3 \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_4/mask_169_4.dat b/library/phpqrcode/cache/mask_4/mask_169_4.dat
new file mode 100644
index 000000000..4aac95c1e
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_169_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_173_4.dat b/library/phpqrcode/cache/mask_4/mask_173_4.dat
new file mode 100644
index 000000000..9df4d865d
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_173_4.dat
@@ -0,0 +1,2 @@
+xÚíØK
+1À}N“ÜÿrnÂa øÃ~ZY!ÎÐJÑt^ï×5Æ(¸/«õÌjk–z[pjµ§_Ø?~v:|jwúÕ–_mû£îXzòoõ–Ó6?nËÞŠ<ö°j³$pË-·ÜrË-·_p[z¾=ÞVíæ–Qí¦3ÝæTéV¿ÕoÍ ÜrË-·ÜrË-·ÜrË-·r09˜L¦ßšÌ ÜrË-·ÜrË-·ÜrË-·r09˜L¦ßšÌ ÜrË-·ÜrË-·ÜrË-·r09˜L¦ßšÌ ÜrË-·ÜrË-·ÜrË-·r09˜L¦ßšÌ ÜrË-·ÜrË-·Ür›æv­æ6¯Ú÷ßý?•,eå`=*K¬6Ú­~û§ý6£à ´*× \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_4/mask_177_4.dat b/library/phpqrcode/cache/mask_4/mask_177_4.dat
new file mode 100644
index 000000000..6437d2511
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_177_4.dat
@@ -0,0 +1,2 @@
+xÚíØA
+!À»¯Ñÿ.1B„éMyð”![ c÷þ\cŒ²ûZ­çV\¹Üq“Š7ßâÝEó‡Oýzg~ÅkëøË¿jž;pg”Šu²Í[*7Š×½¥ºöÀŠóTpÌ1ÇsÌ1ÇsÌñqÇ!¯ÿ‹ã Šw/òr¯ÿå8«âXÇú±~l®à˜cŽ9æ˜cŽ9æ˜cŽ9–»ÉÝänr7¹›~l®0WpÌ1ÇsÌ1ÇsÌ1ÇËÝänr7¹›~l®0WpÌ1ÇsÌ1ÇsÌ1ÇËÝänr7¹›~¬›+8æ˜cŽ9æ˜cŽ9æ˜cŽånr7¹›ÜM+8æ˜cŽ9æ˜cŽ9æ˜ãtÇû§oEÇ™ŸÉN¥Xy¹[ËÝR+¾‰cýø¯ûqNÑ\,4J \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_4/mask_21_4.dat b/library/phpqrcode/cache/mask_4/mask_21_4.dat
new file mode 100644
index 000000000..e006b67e4
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_21_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_25_4.dat b/library/phpqrcode/cache/mask_4/mask_25_4.dat
new file mode 100644
index 000000000..0c7c44bbb
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_25_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_29_4.dat b/library/phpqrcode/cache/mask_4/mask_29_4.dat
new file mode 100644
index 000000000..c28dc20e8
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_29_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_33_4.dat b/library/phpqrcode/cache/mask_4/mask_33_4.dat
new file mode 100644
index 000000000..5834b6fb5
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_33_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_37_4.dat b/library/phpqrcode/cache/mask_4/mask_37_4.dat
new file mode 100644
index 000000000..4bf2e26ed
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_37_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_41_4.dat b/library/phpqrcode/cache/mask_4/mask_41_4.dat
new file mode 100644
index 000000000..b75b7d052
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_41_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_45_4.dat b/library/phpqrcode/cache/mask_4/mask_45_4.dat
new file mode 100644
index 000000000..1b921f300
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_45_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_49_4.dat b/library/phpqrcode/cache/mask_4/mask_49_4.dat
new file mode 100644
index 000000000..e417f9476
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_49_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_53_4.dat b/library/phpqrcode/cache/mask_4/mask_53_4.dat
new file mode 100644
index 000000000..7e88826dd
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_53_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_57_4.dat b/library/phpqrcode/cache/mask_4/mask_57_4.dat
new file mode 100644
index 000000000..84669c7d6
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_57_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_61_4.dat b/library/phpqrcode/cache/mask_4/mask_61_4.dat
new file mode 100644
index 000000000..d127c3be2
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_61_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_65_4.dat b/library/phpqrcode/cache/mask_4/mask_65_4.dat
new file mode 100644
index 000000000..c24343d94
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_65_4.dat
@@ -0,0 +1,2 @@
+xÚí—K€ D÷œ¦½ÿåtX£Ð™.4ÓE1^ÂãÓhv†»OæÍx„ùéW“ð0 ñ°JHÅ»‡½­ðz[ÿ^܈[vâȾ
+yy‡ZÀkß=`„™êv·cíǃî…<ȃ<üÚCî/)zàÜ‘×¯× ¡ÈÃÇÎC²Œš"" \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_4/mask_69_4.dat b/library/phpqrcode/cache/mask_4/mask_69_4.dat
new file mode 100644
index 000000000..a73b1144d
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_69_4.dat
@@ -0,0 +1 @@
+xÚí—;À0CwN÷¿\—ˆ~¤¨;C$3°$<)/m­ºß¥žeÎ¥T±‘2  —:¥]ÿ^VV¡%ƲzAïnÈpv…s"y‘y‘y)zöá¤dÄu6½àª½Gú¾È‹¼ÈËi^šÂ/<ÊtÓrÂrrÚ)9ͤlõrìó‚.¶‡Ö \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_4/mask_73_4.dat b/library/phpqrcode/cache/mask_4/mask_73_4.dat
new file mode 100644
index 000000000..72f89227e
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_73_4.dat
@@ -0,0 +1,3 @@
+xÚí˜A
+€0 ïyMòÿÏé¡´)1Ý-‚lE3š=Ô}¬ˆ(Öô°9ŸTÇdÎÒò–E/eO ZOžîãÛÅ»KíY;ÛúpS5Ð+‘ÄëNžäIžŠžà|
+"©eìvúö+DÝ“æNs'Oò¤WŽkîäIž¾ð„ì†Ìž¸¤FúòrÜi9Î&óô«ÿ ‡]?ÃóA \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_4/mask_77_4.dat b/library/phpqrcode/cache/mask_4/mask_77_4.dat
new file mode 100644
index 000000000..993c48608
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_77_4.dat
@@ -0,0 +1,2 @@
+xÚí˜Ñ
+€0Eßý÷ÿ?×ËjFe8¯0êú uØN©0Õ­µ‰lB´†6‡:«h·<½õ–§¥CÜe\,¹ †ìÔÜ—~ø & rd0 »Sz£7z+ô–êoº»ÓÜþëäÝŽVâuÊ:¥7z£·Wo¿š ËÎSÖ)ë”Þèmoù3ë O‹y;:*h¥Þ>û¿a€ïCe \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_4/mask_81_4.dat b/library/phpqrcode/cache/mask_4/mask_81_4.dat
new file mode 100644
index 000000000..dd6521613
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_81_4.dat
@@ -0,0 +1,3 @@
+xÚí˜A
+€0 ïyMòÿÏy‘XE m7"89ä 2’Ѹ ûQ1ݳÌëˆ+¸x‰x;ÅÓt35DIY÷¶1x\:už³ýº•}î¦e/ ê§Æ#ñø¢Th<
+‰ùùU¤BzÔË<²×ì5ñˆG<’×ä5{G<⢿®5Äñ<饫>¯]ž×UÄr¿xuÐ ” Üû \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_4/mask_85_4.dat b/library/phpqrcode/cache/mask_4/mask_85_4.dat
new file mode 100644
index 000000000..c8d5123e2
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_85_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_4/mask_89_4.dat b/library/phpqrcode/cache/mask_4/mask_89_4.dat
new file mode 100644
index 000000000..5b9bd7ec3
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_89_4.dat
@@ -0,0 +1,2 @@
+xÚíÙ1
+€0 …ὧIî9«Æ% Í Š‡ VÞðÚ€f×r÷ÅÖ0}òzì=¼#9ùìéûÎäÒ•:§þû~›sØó¹¨1BÕg&ë4pÆgœq.p.»í°&g·ÿÂT05Érgú™sgœqÆçrgæ¯Ïuô3çÎ8ãŒóëkÿ.Egm²»b*ÐÍ&›7ÔÉÍÎ?íçúð ¯:Þü \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_4/mask_93_4.dat b/library/phpqrcode/cache/mask_4/mask_93_4.dat
new file mode 100644
index 000000000..be7f5e525
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_93_4.dat
@@ -0,0 +1,2 @@
+xÚíÙK
+À „ὧIî¹n$}P‚ÅŒBù]¸‘Né§È@ÍÎáî%sŒfkÒ«¢}CzòoA}aʽ2½|¤îé~ØÀªD&žl=¥êÀÜç¦Yœ®•ÁwÜqÇ}³» q\ÜEéY³˜já®K_âÎyçžÁwÜqÇwz$=’É=ƒ;î¸ãŽû_Ý‹ÿ€>ÜõéŸ+ÑpÓÓöH“öÈéÜ9ï¢DÞi \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_4/mask_97_4.dat b/library/phpqrcode/cache/mask_4/mask_97_4.dat
new file mode 100644
index 000000000..5d848caad
--- /dev/null
+++ b/library/phpqrcode/cache/mask_4/mask_97_4.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_5/mask_101_5.dat b/library/phpqrcode/cache/mask_5/mask_101_5.dat
new file mode 100644
index 000000000..c21869e83
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_101_5.dat
@@ -0,0 +1,2 @@
+xÚíšÑ
+€ Eßýšíÿ®+£%=ÜM¢3Cbvó¸ Ѭ›«ÍNkû¹´gqõkqq{©%ôO¿ÒòüoçžùÈû,i–¨ÅKÖeœeçÁ3[›|‰îiž¶÷‡¾õ˜ã©V¥¥h]` Æ` Æ0¦Ê•±¸zË´TÔ0Gu×ì/qŒ8F®„1ƒ±3¶:WÊò>õ˜´#ŽÇÈ•0c0öQÆ8»øE=F#Ž‘+a ÆþÄXÖÍž+cV©%9W>ßíQž]Tk©¹“Y-gL¸÷óîq¬DËè‰‹Ï \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_105_5.dat b/library/phpqrcode/cache/mask_5/mask_105_5.dat
new file mode 100644
index 000000000..bc8798c64
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_105_5.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_5/mask_109_5.dat b/library/phpqrcode/cache/mask_5/mask_109_5.dat
new file mode 100644
index 000000000..25a394402
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_109_5.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_5/mask_113_5.dat b/library/phpqrcode/cache/mask_5/mask_113_5.dat
new file mode 100644
index 000000000..25f42b8b2
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_113_5.dat
@@ -0,0 +1,9 @@
+xÚí›Á
+ƒ0DïùšÝÿÿ¹^Ò6¥I63[è[EDqÌc˜ÅÑ+•ÏjÃy¤ì81•û\c
+·‹7Úc«åªÆõû?uý}DK™4¦}Çï,¥kkûgì--ž3[÷½´U…Æ‚y„UX…UXýSV ³:Ï«ëûÕî,÷è|æýкSúô¾Š¯â«°
+«°
+«°
+«VÉ«¢¼*ÑXÒ[á«ø*¾
+«°
+«°
+«°zŠUò*ßN÷Vø*¾J€UX…UX…ÕSóèXiýÊjTi4f¹õZkU^­Ôè_‡ìê­~ŠU‘çxþ }Õ®ñZ/r \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_117_5.dat b/library/phpqrcode/cache/mask_5/mask_117_5.dat
new file mode 100644
index 000000000..f236940de
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_117_5.dat
@@ -0,0 +1 @@
+xÚí›Á„ Dï|Mçÿn/*{ÁM¦ÕÍ+„˜pÐI_&mˆ-äŽèѾžCæõä­òÏ3­2u­?o-kgB7wc=¯™‘ªU%yíoÝùRæhÓ¯șDo:Ö¶y¤R£JkQ^a†a†a†ÿáqOgÚiJ¯ýç ;úœáqOgÚ)ÓŠãÃø0 Ã0 Ã0 Ãð[¦v×ö>ç=>ŒãÃ0 Ã0 Ã0 ÃOf˜z˜3Ž»=>ŒãÃ0 Ã0 Ã0ü.†3ÿ÷ïZ£$¯×·8\õp”ÔÃùw4½Çá:ã¨ÖZÀp¤:q¹ÖÄù§X 7 \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_121_5.dat b/library/phpqrcode/cache/mask_5/mask_121_5.dat
new file mode 100644
index 000000000..9bb5c4158
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_121_5.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_5/mask_125_5.dat b/library/phpqrcode/cache/mask_5/mask_125_5.dat
new file mode 100644
index 000000000..2161c50a4
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_125_5.dat
@@ -0,0 +1,2 @@
+xÚí›A
+Ä E÷ž&¹ÿåfc;S´¶$?‹‹”ŠØQ4ëáYaßhûyJ}9ºg=×Ú=©liŸ´.;nh_ÍÔýïwzýží.÷qôƒCW”¶üÏȧyº× uëÞë’PkÏ;ÌÃ<ÌÃ<ÌÃ<ÌÃ|*óqëùÎü,‡ m“kWæqçNÊl—%ª ŸÇçñy˜‡y˜‡y˜‡y˜‡ù×Ì×^Ïæ2ä°…sX|ŸÇçaæaæaæaæ3Ï™9lH‹Ïãóø<ÌÃ<ÌÃ<ÌÃ<Ì¿›÷웿Ì[í¢õüên`ì™TíÚûqŠ¶8ó¡^—vôy©öŽ« \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_129_5.dat b/library/phpqrcode/cache/mask_5/mask_129_5.dat
new file mode 100644
index 000000000..f0c1d6502
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_129_5.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_5/mask_133_5.dat b/library/phpqrcode/cache/mask_5/mask_133_5.dat
new file mode 100644
index 000000000..46be8b094
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_133_5.dat
@@ -0,0 +1,2 @@
+xÚíÜA
+Ã0 DѽOcÝÿr]4%1mCTåÉƯ„Ð÷xÎœ[DvÌ=Æá{Fúú–E¤Ïµˆäq½?Ý¿Ü9ûkeÑ­ù}±'2^ý•cœçš4G”žÛ:¶3=J£K-šôF0‚Œ`#ÿÍHÒþˆwð'#ß<{Ú~—Z4é :BG舻F0‚Œ`„áGø~„ŽÐ:‚Œ`#Á?Âð#t„ŽÐw-Œ`#Á?Âð#ü¡#t#ÁF0r·…ïÙ}Qõš}e¤üÝòR‹Ú;ø<ùçCžéV‹}Ñ—‘ìó¢ËÙY-Hž \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_137_5.dat b/library/phpqrcode/cache/mask_5/mask_137_5.dat
new file mode 100644
index 000000000..064e7f2f3
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_137_5.dat
@@ -0,0 +1,3 @@
+x򒆄
+ƒ0 …áû>Móþ/·ÇkÅ1mÂøªÈXº³ü=‰–ö¾µÈhýÕÚîså×áH"ãk ÇM„:îúê–3qÒOü¿W}ÿ9’Ô–¬I”‰“ýHž1ÙG;þ- Ï©sìîÚ¶ù?Ò[%M
+Å v°ƒìü#;£zg^ÝÔ3Õd}Î6‹“Å9ÛÆΨޙ×@7õ”Ò„ïð¾#gÃv°ƒì`;׳£Þ©\ï$ÔÅåŸð¾ÃwälØÁv°ƒì`çvÔ;ÞÖ}7Êwøß‘³a;ØÁv°ƒkA­µ”ïð¾#gÃv°ƒì`ç=N2wúxg§WÓ¤@n?Ûëc}½SQ“:ûZd?+¨ÏÎú9vÆÎzß)£ÉæÝáP \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_141_5.dat b/library/phpqrcode/cache/mask_5/mask_141_5.dat
new file mode 100644
index 000000000..60c1a8e81
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_141_5.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_5/mask_145_5.dat b/library/phpqrcode/cache/mask_5/mask_145_5.dat
new file mode 100644
index 000000000..9303c07f9
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_145_5.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_5/mask_149_5.dat b/library/phpqrcode/cache/mask_5/mask_149_5.dat
new file mode 100644
index 000000000..4256cefd0
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_149_5.dat
@@ -0,0 +1,3 @@
+xÚíÜ[
+Â0Ðÿ®&³ÿÍùcµ }-s+'Š‡œ^;AÇxŽêã=¦ÅëQ­Ï_gUÝﵪæãx­ÆÞGûõTí½ëȺV¹ïúœU̪UE®«å¬æõ_IÇ´;ÿŽÇT1×öÅóôÌ Š©µ
+]W 2È ƒ 2Èà ¶|oß5ØuóꆬuI¶:(WK­U躒ƒrPÊAdAdA; vÞ®íÑoíÝ_zNOæÏ{2rPÊA9È ƒ 2È ƒ 2Èà9íÑß}^O挞Œ”ƒrÐwQdAdAýn½žŒßMÈA9(dAdA¯^Wó„² ŽäZ…Ý.+•³GŸ^«ÌÿëKêÉÜÑ`×µ}Ë`_FÖê÷k \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_153_5.dat b/library/phpqrcode/cache/mask_5/mask_153_5.dat
new file mode 100644
index 000000000..deea09d77
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_153_5.dat
@@ -0,0 +1,2 @@
+x򒆄
+‚@Ðw¿fæÿ®—¬¨Ð¬`ïÖÙD"I¶ÁÃe­ê<:aÔu,7ï«öOfÖÛ³šuÀëPÍ6Žî~ñís¾zÕÁÏûãsÞÏ,jÄÕ¬c¯³ëÌVöZvߨmé° ¸ì—s^uÜH®YðuÆ&›l²É&›l²É&›_±9¤¯±ÚÜê ;]³Ä^Ðjs«O;ì˜Ü”›rSn²É&›l²É&›l²9½Íy×›ƒÖèzAÖ ’›rSnÊM6Ùd“M6Ùd“M6§µéÞƒ»÷@/è±$7å¦Ü”›l²É&›l²É&›lzŽzAžC‘›rSnÊM6Ùd“M6Ùd“ÍOlîþ7á°šUìu¶NªãÖ›»F¯Úcú·óÌêÍP³P›—œSÔ,l;HûO§ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_157_5.dat b/library/phpqrcode/cache/mask_5/mask_157_5.dat
new file mode 100644
index 000000000..176e2a69f
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_157_5.dat
@@ -0,0 +1 @@
+xÚíØ1ƒ0DÑÞ§ñÞÿriœ˜( r*¥· „\™Õ~>Cï£*¥ú¬v¹ïsýØ]Åœ_{W!Çzﶬ/ÏÝÞõ÷ÝÅÕ)½Ë™»¹Áöä¤vÿ ›ÏV‘®×6ÜV‘•Þ»ð¹Ã,f1‹YÌb³˜Ê Ìn^o¯¿>¿þí\Oï]øÜñ,Ïò,Ïb³˜Å,f1‹YyVž•gåYžåYžåYÌb³˜Å,f1+Ïʳò¬<˳<˳¾1‹YÌb³˜Å¬<+Ïʳò,Ïò,Ïb³˜Å,f1‹YyVž•gåYžåYžåYÌb³˜Å,fÿïÝukys77—Èì}ïvçŠÉæmbž=¥wÙsw³)ï»tWÖ†Ó:® \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_161_5.dat b/library/phpqrcode/cache/mask_5/mask_161_5.dat
new file mode 100644
index 000000000..70d5fb008
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_161_5.dat
@@ -0,0 +1,2 @@
+xÚíÜI
+ƒ@н§éºÿå²ÑDp@ èo|m ˜¢ßrHk㨤Ñ~c˜½o³^ÝÃJz­×°‚–#5l»¿î¦S_92Ûî ©“[¯}¾ÜÃÈZÊŸ‡ó=œìTê2ìÿÆ€×P‘™2[cVì衆ÌC–Yf™å'-‡ÛìXÎ9>üv§Ë~u»“½sK5ì`Êe¹,—å2Ë,³Ì2Ë,³Ì2Ëç-ë—ßÐ//¯/o_q¾}KÇç¾ä²\–Ër™e–Yf™e–Yf™å³–õËoè—Ý+òÿ¹/¹,—å²\f™e–Yf™e–YfÙ³úe÷Šx¶B.Ëe¹Ì2Ë,³Ì2Ë,³Ì²g+ôËîñl…\–ËrÙ16Ë,³Ì2Ë,³üì<œv.×r륆Á½Þ¼‚™ýrO5ÌÿŸöÔs_ýZÎÉ”uËI¹_ÃìÞ*Ÿ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_165_5.dat b/library/phpqrcode/cache/mask_5/mask_165_5.dat
new file mode 100644
index 000000000..94af813d9
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_165_5.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_5/mask_169_5.dat b/library/phpqrcode/cache/mask_5/mask_169_5.dat
new file mode 100644
index 000000000..921a77076
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_169_5.dat
@@ -0,0 +1 @@
+xÚíÛÑj„0Ð÷|Íäÿ®/¶niµ¢K¹£'ŠÈÊ.rö:ÁT-m&¶ZÛx9¯yüq§3rÿµOgàv¼OO_zׯ§u`]ÿüÈ·¾ßitëا™ãt½Ùñil¦oc¿‚ö1ã3j9Ž%_g|ëÔ§Æ)ûì³Ï>ûì³Ï>ûÏ°¿=×teÌ&õþ_ã4¤Þÿ²¿=×t¥UŸÊ}¹/÷å>ûì³Ï>ûì³Ï>ûO´¯Þr½5/u“¹>¹/÷å¾ÜgŸ}öÙgŸ}öÙgÿ®öÕûO®÷½Ûsv®OîË}¹/÷ÙgŸ}öÙgŸ}öÙ·–G½o-w{¬å‘ûr_î{ægŸ}öÙgŸ}öÙg_½¯Þ÷nµ<r_îË}Ïüì³Ï>ûì³Ïþ=ì×n]˜4Nk§Öβ_Êðÿ­÷«M½¿ž¦×ûû´Ï8ím?ñÿ´SF…·<· \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_173_5.dat b/library/phpqrcode/cache/mask_5/mask_173_5.dat
new file mode 100644
index 000000000..f9a674136
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_173_5.dat
@@ -0,0 +1,4 @@
+xÚíÛ[
+ƒ0Ðÿ¬&³ÿÍõG1Ðø¢gäD)[°Cz¼±÷eDÖѷц÷=R¾NÏ6²îóÚFÒíJm ÞÏJq÷Pœ}ëxÞö séîÑ_¾õ}¶éGÚF©y;žíú¿‹
+[;ý]™öé¯eÃk[®ÅQbT«m±yË&0 L`ÂÌ„Y?á¨ÇðرÝÚæ¼wØ›· ïfý„£ÃcÇÊÕVNä9Á½˜À&0 L`˜×„Zý„¤}0=F=F9ANä÷L`˜À&0 L`Bz¬Y²fIñß=F9ANä&0 L`˜À&0 ž‹´fIÑs‘r‚œ 'È L`˜À&0 L`<iÍ’£ç"å9AN˜À&0 L`˜ðVÖ­aB¯XÛ"ý„±²ù×,U­m…>Øö±
+=Æw˜óZ¶gBÎœPª¶” !8 \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_177_5.dat b/library/phpqrcode/cache/mask_5/mask_177_5.dat
new file mode 100644
index 000000000..b07c636b6
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_177_5.dat
@@ -0,0 +1,11 @@
+xÚíÝÑŠÂ0Ð÷~ÍÌÿÿܾحˆšŠ ÎuO,"% ñô:$Xui=¹ÕѶ«×ÕƒŸïô¸g÷Ƹ?Îq­.úÕSo~æz׉¹õWï:ó™·=Žh1cÜqóøèñþ]ì”Ƕ¼îiÇÖ!÷¼ßçírß8Æó˜¬`+XÁ
+V°‚ õŠµÓê»j›Ïjž;—8ÆóX®+ä
+¹ÂoV°‚¬`+XÁ
+V°â?[1µ^ñh-Ö³5Z;§¶©¶ùrmS®+ä
+¹ÂoV°‚¬`+XÁ
+V°â;¬°ËZ,µÍYµM¹B®+ä
+V°‚¬`+XÁ
+V°‚ö™Z‹eŸ©Ú¦}¦r…\!WȬ`+XÁ
+V°‚¬`+ì3µKmÓ>S¹B®+ä
+V°‚¬`+XÁ
+V°¢cþò㊛Ç{g;¦^Qq5¡ZU»ÆÕÝ®ûŸQÛLã0+*&YDqÈñéô*6 \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_21_5.dat b/library/phpqrcode/cache/mask_5/mask_21_5.dat
new file mode 100644
index 000000000..04f97ea69
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_21_5.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_5/mask_25_5.dat b/library/phpqrcode/cache/mask_5/mask_25_5.dat
new file mode 100644
index 000000000..c20b59b1f
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_25_5.dat
@@ -0,0 +1,2 @@
+xÚ‘a
+@!ƒÿï4îþ— ޳ʢš™ ?,"ÅÔÌ"j½¦¡Ž?n<¶OÕÛäa ¬w, l}rG‹M;ϦÏ9[ží ¤¢_ú±x|ŸÊÖ=´l4lK¨ýv½ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_29_5.dat b/library/phpqrcode/cache/mask_5/mask_29_5.dat
new file mode 100644
index 000000000..217ec1b8a
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_29_5.dat
@@ -0,0 +1,2 @@
+xÚÕ’]
+À ƒß=M¿û_n0W .«Ž=-ÁŸ4¡mÄy×B€ìÓ+² ‰·ÜR×á“çôˆ‹†$¼­Æƒ.=s/,+îB÷7žó³q®zÄ~§q>=GéÙêŽZùyÎ:—ÜDRŸ« \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_33_5.dat b/library/phpqrcode/cache/mask_5/mask_33_5.dat
new file mode 100644
index 000000000..726d7fd75
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_33_5.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_5/mask_37_5.dat b/library/phpqrcode/cache/mask_5/mask_37_5.dat
new file mode 100644
index 000000000..6d32ca6fa
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_37_5.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_5/mask_41_5.dat b/library/phpqrcode/cache/mask_5/mask_41_5.dat
new file mode 100644
index 000000000..e07c6172a
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_41_5.dat
@@ -0,0 +1,2 @@
+xÚíTA
+À »÷5Íÿ?7˜«ÈXMtxÒ´x©¤ …¸?@‚˜›7@ò¾~"éN$õ‡SÖÉ°Ä{ø+C³¨ÛA'Êör\PŒpè<Þ÷-¼ ͺ:S3s¹Ô‰ùÛ»ËÞ©Îz#žóqw™ó› >þ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_45_5.dat b/library/phpqrcode/cache/mask_5/mask_45_5.dat
new file mode 100644
index 000000000..5168a17f9
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_45_5.dat
@@ -0,0 +1 @@
+xÚíUA€ »ï5íÿ?ç„U:N&Z"†”:;4P1=ƒbNvSGÆM1¶ÜË›½n<ëv`q³¤{ìîßMg§ã¶4þå=Gó-T¹‹º?›“Ôß='kíÈu™Û­ž“õ>‘ëß'¯®çþÜ(éκŽö Jô{EßѵsÊ]È ,§sqð \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_49_5.dat b/library/phpqrcode/cache/mask_5/mask_49_5.dat
new file mode 100644
index 000000000..9f3f3cd7d
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_49_5.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_5/mask_53_5.dat b/library/phpqrcode/cache/mask_5/mask_53_5.dat
new file mode 100644
index 000000000..449807bae
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_53_5.dat
@@ -0,0 +1 @@
+xÚíVAÀ »óúÿÏíâ"Ë zYf5ƘJC ª ˜A;ÄÜáé¾Âlû\˜,†ëdòR.¯ \(åe_Ýú ³æôеaNi5†ª\żŽ†ÿÐÐë‡aLPòò(¯ÐàÒ;×ý±2שÃãå¯jÈN6O u…+é¯Ñl{y•«6odúá^ ãÚàçC[‡%® „ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_57_5.dat b/library/phpqrcode/cache/mask_5/mask_57_5.dat
new file mode 100644
index 000000000..c7dd81f39
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_57_5.dat
@@ -0,0 +1,2 @@
+xÚíVA
+À »÷5Éÿ?·‹NÝlªƒZ‹HAbB‰Z0aÓ ìÎMÆÒÃd`1Ýz”'"<Õ1™æ9nvͨ.ãô )bÝ»µ~¤;˜<KÛÒö‡Ú¾x_×Ö÷ÛEu 3ã·][ÿ/[T«oËJÛϵU羉4Ïçévå HûPnÖäë|»òÛ˜Im!wîL1/8,gã \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_61_5.dat b/library/phpqrcode/cache/mask_5/mask_61_5.dat
new file mode 100644
index 000000000..dee749fbf
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_61_5.dat
@@ -0,0 +1 @@
+xÚí—Q€ Cÿwšíþ—óC ÁÕ–ÏB ‰¾´.Ý›•wÙpí¯¯»žKv€g;ÌÞû|3:ÅÆ}÷Ø“c0þÉ´ j­­Öj7(©lÑwe^™WæJæɾ…ÐSïÌwßÐt_e‹¾«Î«·Tæ•ùŠMœÏßOçsæô9ubs=Õ?þ‰ò~~Š­ù>Ÿ9ú¾ÕZ#tõBÁ~ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_65_5.dat b/library/phpqrcode/cache/mask_5/mask_65_5.dat
new file mode 100644
index 000000000..ecd938068
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_65_5.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_5/mask_69_5.dat b/library/phpqrcode/cache/mask_5/mask_69_5.dat
new file mode 100644
index 000000000..ead4edc1f
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_69_5.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_5/mask_73_5.dat b/library/phpqrcode/cache/mask_5/mask_73_5.dat
new file mode 100644
index 000000000..00001176d
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_73_5.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_5/mask_77_5.dat b/library/phpqrcode/cache/mask_5/mask_77_5.dat
new file mode 100644
index 000000000..1652cdc2d
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_77_5.dat
@@ -0,0 +1 @@
+xÚí˜Q€ Cÿwšõþ—ó#&C`T£±ÃÃ6¼”ƹ—B¶ü(«Þ©9Ü Ù'Ö†äÑÖìƒÚ¢ÓÀÀzk·å"hõÜêÝv.` »øâücXöB5[ñ(ÅÖF>71Ó/3ò4ÎØΪz÷^'ÑÔÝ[˜Fyglg•®M>•OÅTLÅ4Ï”{÷&3ëWy*ŸÊ§b*¦ï`ºÚ<3õ;´‘îÞVo0÷/s—6nÿ‘§Ï0Íya½ß[û”ªmácE \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_81_5.dat b/library/phpqrcode/cache/mask_5/mask_81_5.dat
new file mode 100644
index 000000000..71215e952
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_81_5.dat
@@ -0,0 +1,3 @@
+xÚí˜Á
+À Cï~Móÿ?·Ãtz°U4½ŒÔ"£ }tšÕÀMX2|.îÉ‹¸Ë™F\œžð¸õÑÂ~mõ‘4 ÷±¿ØXu
+Ù”, ÍÌw—:— E†Æ„>ŠµXÿõ̯=_Ö]g>±>óÂÆzæמ‡/ë)5ךk±k±kùµüZs­¸X‹µX¿¬Y{Ü®Ñè}ô¶áç~mt¿æîšìÃÏý:S#™µÑ&;U#)ñÚä \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_85_5.dat b/library/phpqrcode/cache/mask_5/mask_85_5.dat
new file mode 100644
index 000000000..09cf0e281
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_85_5.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_5/mask_89_5.dat b/library/phpqrcode/cache/mask_5/mask_89_5.dat
new file mode 100644
index 000000000..5fff53069
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_89_5.dat
@@ -0,0 +1,2 @@
+x򒪇
+à „ÿû4Éû¿Üþ¸5eÆÙå®npQ¤´ Gú™cÖÍf‡µðl^^‡;;bŽ5;`¬k¶©¶U͹߮¾ßj`ÍNósÜùùO=Ú\[a6‡žÁ°¶~ÞnLÍD?‹ ±!6ÄÆ°ñuüÈF%w¿*Ȭ²ÌkÎù¦f¢Ÿ77”SĆØbƒÃ†êXodw_ùØ—mµ¨â†â†ØbClüÈNÛ™ ck&äîY¯­VoÜ¡™×·B×¢»Ø¨œAl6Æ šæJjÜx \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_93_5.dat b/library/phpqrcode/cache/mask_5/mask_93_5.dat
new file mode 100644
index 000000000..ec4240bd3
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_93_5.dat
@@ -0,0 +1,2 @@
+xÚí™K
+Ã0 D÷>æþ—ë&©»ð¯µ& áÉÆ fP^”ÁŠ8BY5ÊÇs(imœ®¼ÙÒ®¤±®=f—µ÷3¨/wÛ§§‡E»¬y¯§ŸïYŽQ¦wf‘á[}¯å¨ ²„[»9ï0303ÏefÇÏÌ™Ùñ3'3=<òÆK{níæ¼Sg¨3ü›`f`f`æ¿Ìdø™ÞÞè®oiü£¦ÎPgø7Á ÌÀ Ì܇GµjkÞG]í}?V/æë kÒ×Þ÷ÀWi72–Js™vÃ|*"f^ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_5/mask_97_5.dat b/library/phpqrcode/cache/mask_5/mask_97_5.dat
new file mode 100644
index 000000000..509d1174f
--- /dev/null
+++ b/library/phpqrcode/cache/mask_5/mask_97_5.dat
@@ -0,0 +1 @@
+xÚíšA„ E÷œ¦½ÿåf!3bf5í¯Æ¼Bˆ‘ùé£|#f=<3l6<›§Ž_+xjÿ©ÁÛ) “ÙÝ©Ãy°“ïÿ¯ ‰J ¹yXiïÜ»ª5¤IzsÙžîcëuÄeQ¡¡ °K°K°K·d)â—>,ͼwx®DƒÖ·.,;ãÂsÔ%êg,Á,Á,=€¥ëýRÐóὓ¼7u‰ºÄK°K°ôT–D÷†<(n lY’þŸÞhÐùVÛ¹s÷Þ•ôy¸Œ¥´ýP±§Eñ<¸öq \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_101_6.dat b/library/phpqrcode/cache/mask_6/mask_101_6.dat
new file mode 100644
index 000000000..13f97a0fd
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_101_6.dat
@@ -0,0 +1,2 @@
+xÚíšk
+„0 „ÿç4Éý/·Ën_.‰Ê2#ˆS‹H”6±_“PâÞZ ›Ïf˳_¡îé,ï7ØžÛà+·%×åWÇÂîd„–âÏnå}–“_&«Ok;Œ×úP¾Çfµ>³t‚yY×¾]Öns °;s·æs‚Ú,º!Lk¬ÁÔ…cbLŒ‰12cÔX9Ëó1 ÔÀZç#XÐò±En#;ÏsvŒT~L~L±RŒ‰11vsÆ.‹•”³‹1‚ò±¿ò1ù1ù1ÅJ1&ÆÄØÓÙŃó1ù1ù1ÅJ1&ƞī²gËØ KLƪjl¬¬k{g¼Úž5óKò1/ëÇù¯~,aŒ»ù‰õc««ö$“Þ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_105_6.dat b/library/phpqrcode/cache/mask_6/mask_105_6.dat
new file mode 100644
index 000000000..a58fec749
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_105_6.dat
@@ -0,0 +1,3 @@
+xÚíšQ
+ƒ@ Dÿsšäþ—k¡®ÙBÒZ»#o)Sd}ÌGÜ·Šå¹lú쯯Ö^‹žúú³®)G]Sñ4ÝS×ëšÞÞñ¸ó?½#BºZö:Õã+{þñÅ×s§ÁH¨KþNóiIŽÂ!¦«mþòe1
+RWe9!ÿ¡`ö`ï¶ìUy¯Ë€§uë:檞»ëÖåšU=w×-ûo•ÔºwB·}cMÞKßÃ÷è¹°{°{ä=òyßÃ÷è¹°{°{ä=òyßÃ÷è¹°{°wSö¤caoìi'Ýföºé½õyO=C•yO=C•y¯›ß[Ÿ÷Äó{SÞ»œ=—;Ÿ|v4}ϯ2‰¨¸0§ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_109_6.dat b/library/phpqrcode/cache/mask_6/mask_109_6.dat
new file mode 100644
index 000000000..be7b4749e
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_109_6.dat
@@ -0,0 +1 @@
+xÚíšAÂ0 ï~ýÿÏDBHÓC½HãV2‡Æ0Ùn¥uoªò£lø쯯²¯Ë»=Û¢s9[ˆŽõl'«ºÝ?™íë7ÏíR"¯ &“§Û2™ÕßÏ:7QqX_•n» §û]£$ÓÕš–EIYôÁ*¦³ÆL”üq0 “0 “0ù{LJýäз(s\ɳwœô¾‰¦X÷-Ó7^öÑIt„I˜„I˜„Iü$~?‰N¢“0 “0 “0‰ŸÄOâ'ÑIt’g7LÂ$Lþ-“›„¡€Iuzrfr M÷“^ê'}“éÍ÷“•ùÉ(ÉO~RŸé]1Y²ãLÄžuÒå9ó¡QÍÓ• \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_113_6.dat b/library/phpqrcode/cache/mask_6/mask_113_6.dat
new file mode 100644
index 000000000..397f52741
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_113_6.dat
@@ -0,0 +1,3 @@
+xÚí›Ñ Eßû5ôÿN£°¤Õ‰ëõÁÃÈbF6¨on´¶¯,m›>·gSÅ9ìñÞRWã½ðˆcŒÇ•9Œ&»%‰1ùöÏ_÷Þcx= GR^°šw-z?Ãêdzõvî=î,¹ê°}Ô¥?ǹژ³:Å9œmÓ=—ó=@U”¶ä²‰„UX…UXýVe ³ûÕÜÅ~Õby4WúÕéiæ¿:Ýe=ó‰ó¡<SZmAWÑUtVaVaVaõZVñ«5~µüÿÕþ´åVè*ºŠ®Â*¬Â*¬Â*¬^Å*~•wk¹ºŠ®¢«°
+«°
+«°ZϪb¥õ‘ÕayT¬f«ëüj¾ÖºÊ¯jÖZÏ~µÉß´t_@Un¥Ù°ªѾ€YWsV‹ê ¶[|H \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_117_6.dat b/library/phpqrcode/cache/mask_6/mask_117_6.dat
new file mode 100644
index 000000000..99108bef7
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_117_6.dat
@@ -0,0 +1 @@
+xÚí›a Fÿ÷4íý/§‰#EœŒv3¾nŸŒŽ·/m ª›Y´©›T¿õÑwm<õ~?ölûjÁGÛ×îøšC×qSÿ/¯¾6f£tÝŸ¥oï¿Ó”f^ûl'ó7`ÁŸZø²ÌCÊ Â?×úŸ¥heª®²i¤¥šXq4Ó[Ù€´Ô‰…a†a†aþ†û9]P‹ÌÅñ³YžÍìéM<6îçaË[äð¸gÞ:Œ£Ã0 Ã0 Ã0 ×g˜x8:ÎYã¨z;7§C‡Ñat†a†a†aøº ³Æ±,§C‡Ñat†a†a†‹á´íþO çU6Ô «8¢âáÌ=ðgî÷xx\ǵƑXÇQåt§2¬©JœZ‹ä:¬gˆÓ C+\ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_121_6.dat b/library/phpqrcode/cache/mask_6/mask_121_6.dat
new file mode 100644
index 000000000..f3c329945
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_121_6.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_6/mask_125_6.dat b/library/phpqrcode/cache/mask_6/mask_125_6.dat
new file mode 100644
index 000000000..ff64d44fc
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_125_6.dat
@@ -0,0 +1 @@
+xÚí›A„0E÷œ¦Üÿr3™±¶&H °yØb+öùSlhí0Ͳ6L¦ëöwEŸÍÑ¿žœfÇ®I‡»÷¤vî;»íó&vwž,oýÅ]ué¶dþ]|½k棘øÞ9ÔŠCú“¦}îs“1»9Jw9Ë¡½Zb¢=ðŠèå€PK&æaæaæaæa>€ù’õüɼ—Æú$<>¯OÑôvòÊù'ÅûËåCçÑytæaæaæaæa~›ùòõ|êžÔÙ'9li‹Î£óè<ÌÃ<ÌÃ<ÌÃ<ÌÃüóìI‘æç°è<:ÎÃ<ÌÃ<ÌÃ<ÌÃüóÙ•WæDz¸‚y¿:.z=¿ª ŒÝ“ʯ œsØVšÃ¶E=ll›_k0_#võ°³Î¯˜mÝ÷›j \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_129_6.dat b/library/phpqrcode/cache/mask_6/mask_129_6.dat
new file mode 100644
index 000000000..b4695c3ff
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_129_6.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_6/mask_133_6.dat b/library/phpqrcode/cache/mask_6/mask_133_6.dat
new file mode 100644
index 000000000..40911dc57
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_133_6.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_6/mask_137_6.dat b/library/phpqrcode/cache/mask_6/mask_137_6.dat
new file mode 100644
index 000000000..43ccb68c6
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_137_6.dat
@@ -0,0 +1,2 @@
+xÚíœÑƒ Eßû5ðÿ?·e…¥ÕÍÍ^²4fHåp[1-e)UQÊV¬û]žU™W÷Nî5ù§o“*8|›Œ÷Û©ìW¹£š6žbk?Ý÷ÿ{‹f¬´„ì|>¾sÖª‡ìür6öö¸“6‡«ú°6ÉrÒŸ¶=ûüv¸Ú²þWy±Ú ¢¶Š-¸Ê'
+ìÀìÀΟ²ãÅ;q tQE>U–϶öf‘¯•ê³­ìxñN]TcÑ(sâ®7tÝAwðÙ`v`v`v`çkvˆwfŽwtû;]«ùÞ ;躃Ï;°;°;°;çÙ!Þ™;Þaoôå]ºƒî ;øl°;°;°;°Ã· | Ê· èºƒîà³ÁìÀìÀìŒì(3}Œìl.­š?«…"Þ‰r}äÇ;Ú\}¼S¦Ù-AžœüwÚ<9;úEVœ'§×ˆôó¡ð \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_141_6.dat b/library/phpqrcode/cache/mask_6/mask_141_6.dat
new file mode 100644
index 000000000..0340409a4
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_141_6.dat
@@ -0,0 +1,10 @@
+xÚíœa Fÿ÷4íý/§‰c Òêâ¤]òزÈ…¥ª[²¬¤=Éð[E럓ÖÜósî¹m,éšÛfÒn/ß|kj\ä¿òj§?g½ÝþòÈ[qþû(NO˜Zc5ûŠ©SGGP[oM×Vá’Ö¸´éf¼¥÷vÖL<<eÓ
++‘Äša*XG6¬ÄÀ)˜‚)˜‚)˜‚©cLåúS½6±tj¨Mö]o÷ÀßW8¿D~ñO·šD£`•?µ×†N¡Sèk?˜‚)˜‚)˜‚)˜*ÉþÔUü)ïÌ×? þSIÁ=
+t
+B§XûÁLÁLÁLÁT5¦ð§®âOqæîQ Sè:ÅÚ¦`
+¦`
+¦`
+¦ø†Š3_¾¡E§Ð)t
+¦`
+¦`
+¦`êâL¥‡¿yb*?2ÐÈT5i½?U!ÆK÷§*ÄxéþT7iý™o¸IÃEI¦´„R•ˆEÖuJ+MÆ7 ºÄ' \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_145_6.dat b/library/phpqrcode/cache/mask_6/mask_145_6.dat
new file mode 100644
index 000000000..6c1421513
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_145_6.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_6/mask_149_6.dat b/library/phpqrcode/cache/mask_6/mask_149_6.dat
new file mode 100644
index 000000000..69e988350
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_149_6.dat
@@ -0,0 +1,2 @@
+xÚíœÑ
+ƒ0 Eßó5ÍÿÿÜÆfµƒ47ÍÝ8UD“6Ëñ’ÓÚ2¼z´mØpßž¦ªk8«»¥öŒ}åÅGì«ÉôÓ•ÅëN}?}æÄW“:ƒÈÚguàWA´ËŒ7 ~Û;­)ƒÇâãØ{̪ǿ+ÖWPþºOÛ¢¤öÍþrµEƒ\j˜wG)yË–àw©À‚A„A„A„AM%òÁá™æ2ùà`µµ2«’d”³l–¯àÚ|p}¦eqP’¢ƒè :ˆ    Âàe j想=úlïþT5™©É ƒè :ˆ    Âà© ²Gÿë{ôÔdö×dÐAtDaaaaaï&Ø£§&Ãwè :ˆ    Ö1¨ÒÙð•Á-MRb0éÖW˜f½ ëöèuzŽ5™&Y“iIѺšŒNÑ€A­—»PÑQS«ÎþL}4 \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_153_6.dat b/library/phpqrcode/cache/mask_6/mask_153_6.dat
new file mode 100644
index 000000000..3ab6130ed
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_153_6.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_6/mask_157_6.dat b/library/phpqrcode/cache/mask_6/mask_157_6.dat
new file mode 100644
index 000000000..b45c0ceec
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_157_6.dat
@@ -0,0 +1 @@
+xÚíÝA‚@DÑ}Ÿfæþ—ÓDÐN%¾Ón Ã§ü,ÚÖ–ÕSVÛVí>·ÇW³Ã³»—CöaïzÈ6îÝÉUü¼~Ò»·{`ný•Š¸õÙÉÝ»dvVýy~µrÒ·Z¯"çq·Ûk{>g$ÅáXK¶õÈU}m\b÷ja¤GÞx˜Å,f1‹YÌbö¿™òÙ]½z¬‘­Ìž½ƒš^¯.ë5Ó[?Ö嬜•³r³˜Å,f1‹YÌòY>Ëgù¬œ•³rVÎb³˜Å,f1‹Y>Ëgù,Ÿ•³rVÎúmŒYÌb³˜Å,fù,Ÿå³|VÎÊY9‹YÌb³˜Å,fù,Ÿå³|VÎÊY9+g1‹YÌb³˜ýŠÙ‹ ½̦M7>2{9zºÏ¶hŸm3Éçûlò|ã9ßxóÙ¼™ä#f#Ÿx•6 ÿ˜³-îvë%…N' \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_161_6.dat b/library/phpqrcode/cache/mask_6/mask_161_6.dat
new file mode 100644
index 000000000..ecec68b1a
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_161_6.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_6/mask_165_6.dat b/library/phpqrcode/cache/mask_6/mask_165_6.dat
new file mode 100644
index 000000000..d641dfa3d
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_165_6.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_6/mask_169_6.dat b/library/phpqrcode/cache/mask_6/mask_169_6.dat
new file mode 100644
index 000000000..ae689723d
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_169_6.dat
@@ -0,0 +1 @@
+xÚíÝáJÃ0Ðÿ÷i’÷9[ÛJÓɘók{²1Äb˜!gßnhHkS뉭-­V?·¯KI¯»ïôó×ÏÝ1íý1Ýû§Æ£ÝŽ/½¨·Á˜ŽæÉ`þê/zû)*º=°Ÿ3Úì¿g6õöý^k6ÖÓ5CæÇéêYË<ÉK¨ÍkMùÚã[õy@ÓGµ&_=~¢²Ï>ûì³Ï>ûì³ûãµ¾ +õþõ'{«„Õ§_õVËŠÚx­-âJýËø<ӛܗûr_î³Ï>ûì³Ï>ûì³iûêý;×ûù÷öœr­OîË}¹/÷ÙgŸ}öÙgŸ}öÙ¿¦}õþ½ë}÷ö¼x­OîË}¹/÷ÙgŸ}öÙgŸ}öÙ·—G½o/{{ìå‘ûr_îûÎÏ>ûì³Ï>ûì³o/zß^÷öØË#÷å¾Ü÷Ÿ}öÙgŸ}öÙ¿†ý£d²ì'ŸÊ³µ|ÔQR½ßNSï·Ã3¹’êý³œËÓãÏåYÖú²ÏäÚ³ÿ‰ZÉ'Çms¿EŸÇ·j›5ø \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_173_6.dat b/library/phpqrcode/cache/mask_6/mask_173_6.dat
new file mode 100644
index 000000000..95fa97c7b
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_173_6.dat
@@ -0,0 +1 @@
+xÚíÝaŠÂ0Ðÿ9MrÿËí¢­M SÜ*:a_-²5hh_¿)©uÛZÖ­[éþ®÷¦lïÓoûÛ’sŸmKúšíø›NÇ{òÿãHÌ?x­Ï`l‡#fï9>’ÚŸ[¯õeé·Ð„ÏŽß“­¡ ï?þ^ìóöm÷ó®­ð*û/KËm¿—ãhËy%ÞËv-nKl¥í»Âè–í¤kK¸L`˜À&&Ìê g5†¯µ•(·gºwxôY¢ÜžîÞáa¬žpVcøZ[‰Æ#O=¡ëSNä9Á½˜À&0 L`˜Ç„¥ê ¹ç't­jŒjŒ]QNä9Á½˜À&0 L`˜Ás–ÌYRcü@QNä9 L`˜À&0 L`‚ç"ÍYRcô\¤œ 'È r˜À&0 L`˜ÀÏEš³¤Æè¹H9ANä&0 L`˜À&ü²¯ 7špÜ6¯`Â|õ²¬õ„hm¸œs–ò¯ ××ëR5Ƭ™³Æ˜½È‰ k\ÌX/²Ï ‘ )÷g9È \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_177_6.dat b/library/phpqrcode/cache/mask_6/mask_177_6.dat
new file mode 100644
index 000000000..e9f0476f0
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_177_6.dat
@@ -0,0 +1,14 @@
+xÚíÝÑn„ …á{žÞÿåÚ¤*4vÛ´u¦û¡1‰£²ø{<L­Gi‘Kí¥ ¿ëGUÌíäŠß÷Ç]çmÜ/ó6žÜÛjÿõ?mZ¤müzÌy/úξgÍjÏÿ\ÌÕ“—¢<`Å_¶ã>f{Š¿Ð¿³_ñù,¶,K9o 4ŽÇµôù7lËñÞniJiggiår<¤-MGÆ
+¬À
+¬À
+¬À
+¬xuVÄ÷+zÌÒRøCÌr9‡+Gqç6ÞQWžñb"ø×Qe×ï"ùWLº‚® +è
+ß XXXXX/ÁŠ|~Åj,ÖnŒÖmu¼MÞæÚÛ¤+è
+º‚®ð ‚XXXXXñ¯Ya,–±X¼Í;¼Mº‚® +è
+ß XXXXX晋ež)oÓ<Sº‚® +è
+¬À
+¬À
+¬À
+¬À
+¬À
+¬0ÏÔX,Þ¦y¦t]AWÐXXXXX;V¤Hù‰92mŽ¬Øe3éWdÉQØÇbeÉQؽÍ]>Ó˜Þf’|¦ƒ·™–5²H“û¸ëŠší¥÷7/D \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_21_6.dat b/library/phpqrcode/cache/mask_6/mask_21_6.dat
new file mode 100644
index 000000000..6bd505b4a
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_21_6.dat
@@ -0,0 +1 @@
+xÚQÀ Cÿ9M{ÿËi]èÒýX‰1¤À Å-½ C!»É³Dìû7 W ìÙœ§Ø&rDñ)~Î]<MÎ ·3(>{ƒïA ¡«ÿíŽa²¼Sý \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_25_6.dat b/library/phpqrcode/cache/mask_6/mask_25_6.dat
new file mode 100644
index 000000000..d45083aab
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_25_6.dat
@@ -0,0 +1 @@
+xÚQAÀ »÷5öÿŸÛ2)êe+Ä(XmÊZtÆ*(õÚ¹«;ÃçtJã<峂†_Ú¤‡3°oŠÜ½Ú´"Ì¢a²zh}Ñ&qv€µSGÊÖ™,ó-÷‡™J›Í4}³™¦oS[âü}w \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_29_6.dat b/library/phpqrcode/cache/mask_6/mask_29_6.dat
new file mode 100644
index 000000000..0408e2240
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_29_6.dat
@@ -0,0 +1,3 @@
+xÚÕRA
+À0 ºûšäÿŸÛXcÔõ²ÓL(4E”ÔˆB
+8CÖܾ޳nÃM©+lǪÃÕ†Ožé1]&•Ú¥4UëD-6-$:6ÊdZá?yæÛlôÝf£?í˜ åŽ8?žß²±<Ûlôž}ž¹g›göí * \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_33_6.dat b/library/phpqrcode/cache/mask_6/mask_33_6.dat
new file mode 100644
index 000000000..8de4ba5c9
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_33_6.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_6/mask_37_6.dat b/library/phpqrcode/cache/mask_6/mask_37_6.dat
new file mode 100644
index 000000000..b37ff0ab6
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_37_6.dat
@@ -0,0 +1 @@
+xÚí”AÀ &ýÿçÚT `½ôèj<PÜ0¡¢jB#ÿ&š´âù,Yo´îê…fU¯Ùjó*UõÕú•ÑYÀ–¬[ƒ•oY5 Œ~Š5 T7bnb, …]Æ˘ûñü‚³¦‘ƒ-‹¹Ñ÷ñÃÌqF:s¢tæDcèØhÙ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_41_6.dat b/library/phpqrcode/cache/mask_6/mask_41_6.dat
new file mode 100644
index 000000000..c1535f785
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_41_6.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_6/mask_45_6.dat b/library/phpqrcode/cache/mask_6/mask_45_6.dat
new file mode 100644
index 000000000..a7da7ee02
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_45_6.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_6/mask_49_6.dat b/library/phpqrcode/cache/mask_6/mask_49_6.dat
new file mode 100644
index 000000000..64ded7093
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_49_6.dat
@@ -0,0 +1,2 @@
+xÚíVQÅ ûïiàþ—{K&·ÂêÇûYX¤³ØÙ0ï̦!=ÛýŠ­tÇån&ÅðfpŒWL
+±`¤/¯<Ï“KVrU¢\1öbGpáê@ÄìÓ‘&fNëŒ/+ƽqÙà ¢`ðàòAWÿçêSƒÉßRGpõþ_5|Æ|zÀ×xν:¸¢ªåJ©‚+WE©m4hÛ4Ú3tÜ­ƒ.×Á©A­g`\ÉÒù¬÷ʤþ*ÙÅFÈô \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_53_6.dat b/library/phpqrcode/cache/mask_6/mask_53_6.dat
new file mode 100644
index 000000000..9139e3259
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_53_6.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_6/mask_57_6.dat b/library/phpqrcode/cache/mask_6/mask_57_6.dat
new file mode 100644
index 000000000..61e7e2428
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_57_6.dat
@@ -0,0 +1,2 @@
+xÚíWÑà |çkàÿ®K¦ÂÜQ¹-Ë^@cª"Wr^U‡YÅÔM³>_Ý`åÃî8¦Ž¹€GÁ1“œ`–B”Ý`;»ù+ØÂì}åÄÌØ&s£ÒçŒ]<§J…QF=mb3 UŒF'ÚØ6¶Æ–á„E âü€¹5õJa÷wZØÖù60¢¬
+ß[¹·ë¶9¡±ý9¶”ì{Á–SšÛ\Ýž8Õ`k&­Áœos}{â[Rß¾ý[¥+—þwðºÕO‹èd^jW \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_61_6.dat b/library/phpqrcode/cache/mask_6/mask_61_6.dat
new file mode 100644
index 000000000..f2d3f10df
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_61_6.dat
@@ -0,0 +1,2 @@
+xÚí—KÀ D÷s¸ÿåÚ¤µE~Ý‚ihÌÄ'™
+ÑŽÍÀòNÏ'oVWßéà£jspèÚCzÓþìÑο©¥ÃaÌÏg!«…#WD%~Ü˃Y?±JÛfŒÚåR€E¸¢ŽÁKoæͼ™Ç˜§ü|Ƀˎ*ÌOÿP7 Šž‡åÛn¾ë¼½¥™7ósã†`ž½ïÌÍÖÀõsúåçdôD¾Ÿÿ¹Ÿsé~>ý<ßiÌK'Žl'¸×9¥ûÐ%.ÆîÄ7 \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_65_6.dat b/library/phpqrcode/cache/mask_6/mask_65_6.dat
new file mode 100644
index 000000000..550fc8fe7
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_65_6.dat
@@ -0,0 +1 @@
+xÚíWQÅ ûïiäþ—{KžNLk?˜e$ŒQ´ikÝìÆÚ4¸çö1{˜á‰ð×`+®!úÚ®ºM Á? áû “’°È1b°8†ž £·¦.ŒÞ^ƒwÌÞò¹ìèsn²ÁFjè5¹…EaQX|‹=wä¼@°2v<òÅ‹Åž»‰–|4w»êê\ÔUXÇBQz+óÊT±ÈTǹÖcøBÓzž/4­ç8Õë,‘»5Ý`¡¥¨»ý¹È± üOV$ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_69_6.dat b/library/phpqrcode/cache/mask_6/mask_69_6.dat
new file mode 100644
index 000000000..a3e4fa0f2
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_69_6.dat
@@ -0,0 +1 @@
+xÚí˜KÄ @÷œî¹™dThÃðí¦ hLSSEžq eY@<ã¯+Þ*£|ß窮 %‹®‹>¥¡¨®‹¹zÃ*7ë–Åe´¤öÆ6ãQ¶½©S`šÞ.²¯>»sE Ë'¨%@[‘Ž6°@PË0Ãh £aôFÕxtpl²2§Âóý ‡Q-g1N†feo^ßøÑüë†Ñ0F¯dT>N_ÕOö’‘wË‹G3ìùªu†åœÁ»gˆå {‘3<Ê[žÔº b?Â'6ï^ºŠ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_73_6.dat b/library/phpqrcode/cache/mask_6/mask_73_6.dat
new file mode 100644
index 000000000..ab71b70ae
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_73_6.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_6/mask_77_6.dat b/library/phpqrcode/cache/mask_6/mask_77_6.dat
new file mode 100644
index 000000000..ad5a660e3
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_77_6.dat
@@ -0,0 +1 @@
+xÚí˜Ñà EßùøÿŸÛ²i‹ÙÅVäaË.š¦±F©§pST›YÖô4q÷ú~´z…«=Ÿä:öÍ’ û6îøÍüôm8‘¾:#0PضiDy:2Å '§ùZ­s±Š&}Ïôç滜\r‘0\¥Åš•˜Xw¬Â;iP¬äàÈ”Lœ)ÒS¬±£eÔ•Ü{hˆDu9÷L‘žb½•©JÞÒS÷ŒSÆ)™’)™ÞgZš{÷þeÜøŸé)ã”qJ¦dúLw+ƒ#Ó3-V0ÅÕ·lîjƒ¹™ýÚ ×S-ÕS ê½9=ݯ÷¦5ÁPPïõq1Mõ?ågÓ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_81_6.dat b/library/phpqrcode/cache/mask_6/mask_81_6.dat
new file mode 100644
index 000000000..28a6d0752
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_81_6.dat
@@ -0,0 +1,3 @@
+xÚí™Q„0Dÿ9 Üÿr»ÉÚR³LÕvök‡šÆ`´¤¯0 º;æi6ÜûçÑÚ\|ñí_¿êccÔ1«¢h¾ýuŒ§½ioÞó#2ƒ¬}x*.YûtÃ&¸­±
+Ö°¶ÀÖq/K‚;3ÌväeÐ̢Ȋ҂AÛH±ë?`]é5ÒðK¿¡Êü´†w¿!}{Zû߲žW
+Œ”yâ·¾Àž^§_y­¼k±k±–^K¯•×ªáb-ÖbÝYSÚ¸'ÖœNóÈuÃ×õšÕ#M½fõHS¯Q?|]¯IýðA¯ÆÚi™Mû÷‘yíì¤yuWà \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_6/mask_85_6.dat b/library/phpqrcode/cache/mask_6/mask_85_6.dat
new file mode 100644
index 000000000..d5403e49a
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_85_6.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_6/mask_89_6.dat b/library/phpqrcode/cache/mask_6/mask_89_6.dat
new file mode 100644
index 000000000..eeeb5d197
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_89_6.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_6/mask_93_6.dat b/library/phpqrcode/cache/mask_6/mask_93_6.dat
new file mode 100644
index 000000000..6ff38db68
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_93_6.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_6/mask_97_6.dat b/library/phpqrcode/cache/mask_6/mask_97_6.dat
new file mode 100644
index 000000000..3a2072efd
--- /dev/null
+++ b/library/phpqrcode/cache/mask_6/mask_97_6.dat
@@ -0,0 +1,2 @@
+xÚíšaƒ0…ÿs¸ÿå¶dÅêÒÒFx[²=4ÆH–ùŠoŠj3«4í&§s}¹*ŽÃž— ÷a V¸cˆ&3žêÜ5‰arWç^aþ«÷LClÉÒzžqì,ÝÌÑ1†xî µ‰SQ»N»ô»]·¢/GiuÄ`&æ ¢–wƒ%‚,‘%²D–ÈYú"K½t¸¤+åHE'|R2Ï(v1¨öv–¢ÿqiëëŸqd‰,‘%²D–~€¥è%Ø»Jjï}íͺĺÄgY"Kd‰,ý+Kñö
+–]W–të+sF/)ü]¥.zNòÚÝ'`°>®½1='#–`+bƒ¥l]Z±”¶­¬ýð \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_101_7.dat b/library/phpqrcode/cache/mask_7/mask_101_7.dat
new file mode 100644
index 000000000..1f6bc5129
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_101_7.dat
@@ -0,0 +1 @@
+xÚíšQà Cÿ}rÿËm“Ê`éÚÊfªjòTé#±¥ÔäÞ54'tûí…îf¼aÈЇo°–$±c<ÙËêãÝÓÕñHÝ Ìh8„lÕÛûþÁëo=½Ä„ŽÅ§àHvº©;‹z€¤!ƒ|/‹FŽÐ3cfÌŒ‰S×Ê…±±ゼêñ 8©KŽ)4©9 ”Qç1ç1×J3fÆÌØÅ›S+ÅwÖcçõ˜ó˜ó˜k¥3cf캌ùîâ¾zÌyÌy̵Ҍ™±1¦{¨²bL÷¶çÍX™S+óï.to{>ô˜îmO§ÇJ2²û3cÄ<6ãXn0F´ ) \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_105_7.dat b/library/phpqrcode/cache/mask_7/mask_105_7.dat
new file mode 100644
index 000000000..6b0cacfe9
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_105_7.dat
@@ -0,0 +1,2 @@
+xÚíšA
+Ä0E÷žFï¹a MÒ™˜N¾Px)¸pQ£¼è_è~ž|ñ(b¿F’„šç$.Ÿa¿o“ÝòWÿGNÚPæUÇ–·‰Mþ%{‡ëoôHQôÙUñl¯Ö´¿¬L^>+Éçm­“#{°{eo&Y2sÛoM•)gncO9s›ßZŠ³´3wÇo™„Ú+Âè{ô=f.ìÁìÁz½‡Þ£ïÑ÷˜¹°{°{è=ôz¾GßcæÂìÁÞsÙkCQÏžpÓíÊ^¶€&Ñ{^£÷¼Nï­Ê·UïÕìï ìe5°ç}¯æE‰wGûßn+o \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_109_7.dat b/library/phpqrcode/cache/mask_7/mask_109_7.dat
new file mode 100644
index 000000000..9875cbe8c
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_109_7.dat
@@ -0,0 +1,2 @@
+xÚíšA
+…0 D÷9MrÿË}µÚ*˜ _x-d˜ú:Î"îÇŠ¢Ý-kÅ"Šâ¨š¢œ•dŒ{›¿Õ»ü¤·ñã¯ó³ÞÊגɬ|<b2+ßU á¶ý­ÊîÚ%Z}‰.Úq%Gi²¾¶h QA9˜„I˜„I˜üG&‹Éž·<ßø oÍ:Ï,ubÞ2}ãmÞ„_ D'ÑI˜„I˜„I˜ÄOâ'ñ“è$: “0 “0 “øIü$~D'ùwÃ$LÂ䇙TÌOvLVOO^˜<ÓøÉòùÉÞOúbµÄOºÎOºÖOºÊ›™Þt\3™¬“®<ÊG¼Í« \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_113_7.dat b/library/phpqrcode/cache/mask_7/mask_113_7.dat
new file mode 100644
index 000000000..b6e215982
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_113_7.dat
@@ -0,0 +1,11 @@
+xÚíšQƒ Dÿ÷4pÿ˵M´PeQ‘6éÃd?Ô¸°>'ƒÒÚràQ5+ sûŒ¡)Ûc•Õê7úÕ-ÑÕó»1nní–ºqÿÉ”–ÔÍJtgô¬^îʉwÿ̘Ň-ùƒ?ÿ*š&Mmý@ee5éø^Ñ
+c¢”°
+«°
+«ÀªÒ,¬¶ýªïbï\1¿×3ýjõ4óØT¿ZžfÅ¢·»o鯠«è*º
+«°
+«°
+«°:›Uüêt¿*ü¿ú½¹ºŠ®¢«°
+«°
+«°
+«“Xů²0<·BWÑUtVaVaVƒYÕl
+Þ°ªÙkýf5éýª_Ö ¿ªÙkýáW5{­«µ€ä–5pnõC¬éªZ:¬Å bv \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_117_7.dat b/library/phpqrcode/cache/mask_7/mask_117_7.dat
new file mode 100644
index 000000000..cde78c10d
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_117_7.dat
@@ -0,0 +1,2 @@
+xÚí›Yà Dÿç4pÿËU•²ÈêIª>"ù%6æed ‘Ò8rðS ÍNsŽµU¯ánëk5¦Xe­øjѻު®u—Ûî¦ô¿ö±VÛXgøê,l`øøîuÝÊÀî÷£!‚h‰XZù\VãlM±ìë|[ͬÝÂ0 Ã0 Ã0 ÿÃí–#hF'ëøc]²±ž¾¦iéí>ìúŽûHÐat†a†a†a~<ÃÔÆzØyÆqkO‡£Ãè0 Ã0 Ã0 ÃðææŒãªžF‡Ña†a†aþ)†§2ÇË°éfÃ’áþ%ƒÀz8ùëátO=¼žâ€3ÿ=Ž‚áÖî3œÜ:ìÿcw‘
+ûV$¢ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_121_7.dat b/library/phpqrcode/cache/mask_7/mask_121_7.dat
new file mode 100644
index 000000000..d5d577f7e
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_121_7.dat
@@ -0,0 +1,2 @@
+xÚí›[
+Ä Eÿ³šdÿ›ú°ŒÆi;^az,ø#6Æž^rÝׂ§h¶ŽôµÈêÐ&Ýì¨çÜ^amýËÀ•YŸ9×_Òغô5C·r–6ë®ðt^ù^ÅWlûÅÐEä˜ôز~É¿|èM®èmýÁåÛmSò}÷¶Ó( Û° Û° Û°}ŽmQ½]ŒZ§Vüq½]¼ÓvËѲ"™M¹1fÙúGÔÛÛ, q½½ÍB·Ñmt¶a¶a¶a¶ÂöÄz»eF²3»cxI¹—D·Ñmt¶a¶a¶a¶ÿŸmÎnð’ý$ºn£Û° Û° Û° Ûa[}ï¦`[yëæÀö–°¾Þ–Þ»)Ïn<¹æ4ÜKú/éó¼¤O¢»s§l¨nçlÔmŸµÝ/GëÙ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_125_7.dat b/library/phpqrcode/cache/mask_7/mask_125_7.dat
new file mode 100644
index 000000000..f9ec0887b
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_125_7.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_7/mask_129_7.dat b/library/phpqrcode/cache/mask_7/mask_129_7.dat
new file mode 100644
index 000000000..9bf51d529
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_129_7.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_7/mask_133_7.dat b/library/phpqrcode/cache/mask_7/mask_133_7.dat
new file mode 100644
index 000000000..b643ffeda
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_133_7.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_7/mask_137_7.dat b/library/phpqrcode/cache/mask_7/mask_137_7.dat
new file mode 100644
index 000000000..11d212bf4
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_137_7.dat
@@ -0,0 +1,5 @@
+xÚíœÝ
+à Fïó4úþ/· úc§‹«_Ç‚+¸{üSÚK<E±Óœ%um‰Ä”¶OÄÃcåPÕNsûÑuõÝß+Ÿ šÒʺQS,E)Öµ÷^ÿf¼Õaç—_ÃHkoKrÇ6»DÓZQ›öï‹Úö F><ŸÚÎo[l
+ìÀìÀΟ²Ó
+©ý0û¡7Ö‰µVÆl;b¶–ëüè™7æõfM¾S´†î ;è1ìÀìÀìÀìL³C¾<ßQí[+@wÐt‡˜ v`v`v`v&Ù!ß ›ï°7ÚX+@wÐt‡˜ v`v`v`v8 ÊYP΂¢;èºCÌ;°;°;°saG{™Ä;Ú»>vRœ|ÇžåùŽö®K¾£½ë£ØMÎðHÖ
+‚³#Ð(S›ËÎòúqÌçd \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_141_7.dat b/library/phpqrcode/cache/mask_7/mask_141_7.dat
new file mode 100644
index 000000000..98dffab00
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_141_7.dat
@@ -0,0 +1 @@
+xÚíœA„ E÷= Üÿr“IëŒTY@¿ÉÄÅ0!µøø|1”²—št¹bG0µæԗѤ…s¡2Z/îç¿oa‚ìøÜ\ÿq¬ãzÜÛOnÒ‹MºÏñÞn™šñt„áX"Kÿ—m‘eM}çÚòCpµíÄP™L^¾µŒ„S0S0S0S£L ø)Ç”‚ŸÚ˜êYß¾%žÔbÑý,õS©l?ÕzC§Ð)tŠµLÁLÁLÁLI2…ŸzŸŠRX¶h¾£@§Ð)tŠµLÁLÁLÁLI1…Ÿz‘ŸbÏ·óŽB§Ð)Ö~0S0S0S0Å7´ø)ö|ù†B§Ð)˜‚)˜‚)˜‚©÷3Õ–«L%Ÿ tfª¬wM±Ÿ*:~ªhù©»¡Zºç«sn’cª÷$1UTtJgÆ8‹ÌÕOYºE \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_145_7.dat b/library/phpqrcode/cache/mask_7/mask_145_7.dat
new file mode 100644
index 000000000..4aa2bac11
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_145_7.dat
@@ -0,0 +1,2 @@
+xÚíœÑ
+à Eßó5úÿ?W6Zµ ¦-›^é±àƒ2‰q§×ÄbG‰Ÿ¢X6(ƉuÍ"“LbÑbÝGuû÷ŽÎ¼®··Gkø¨:HwA[¿jšÔm¯øH¢ø¬Ýžï3ïŬýîßâOðkQ{l·|ê»èT›†EmÇ JfÙLÊ?ŸÚ2"&Á¬Á¬Á¬Á¬ÁÚ¬)Äk©ÝRf¢—µÙcï“Ñ̉ÓåFŠÑ,§“z©¦=躆®±‡„5Xƒ5Xƒ5Xƒµ7±F¼¶\¼¦p–ÚUs#躆®±‡„5Xƒ5Xƒ5Xƒµ°F¼¶d¼ÆYö•Üº†®¡kì!a Ö` Ö` Ö`o‰×8ËæÛct ]C×ØC¬Á¬Á¬ gMå­‚5…[´N¬%éÄk÷h•ñZp®?›¯IÜ£•Ï²ƒ^n$ˆÑæÞY7A×ÖÆëZP[¶ fÈ“0 \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_149_7.dat b/library/phpqrcode/cache/mask_7/mask_149_7.dat
new file mode 100644
index 000000000..809f00554
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_149_7.dat
@@ -0,0 +1 @@
+xÚíÜÑnà …á{? ¼ÿËu“Ú†­…´2»ÕG$nˆˆcççÈF¡µKëÉ×Ðb3ª÷ôþÖªt³îûªPc çÌ¥Ó7[¢?9:ñÕý['éÁë9'¾*Ó– àGæÜa°½hÖ_¿¹/«zÁ+Î6XB‡>ê˜2ôqYÀJ…0Êù黚BfaƒÄ 1ˆÁª ȇ9c7Gë ùOl©ô,Å^¥ßÅ꽓òÁ3ƒÕòA:Hé Ä 1ˆA bƒÄàÿ0X4œ%Ù«½û#ÇÔd>¢&Cé ¤ƒÄ 1ˆA bƒ<šA{ôo¿G¯&óLM†ÒA:H1ˆA bƒÄ 1è¿ {ôj2þ› ƒtbƒÄ 1ˆA &1Xç`¼_ Ö9ÛðÊ`«™®B˜¶G_çlÃ5™:g5™¶ajMæÍLÔÁŠËèƒIý <|r. \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_153_7.dat b/library/phpqrcode/cache/mask_7/mask_153_7.dat
new file mode 100644
index 000000000..c1ab27664
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_153_7.dat
@@ -0,0 +1,2 @@
+xÚíÜQ‚0„á÷= ½ÿ匉B5ˆ
+ю惤/ͲåïØIÙiº^-àî®Zkm|»YDhë9 ›ÎêÃ\{’KÇƶ·{Ÿy—³Ç3ßv†¶Ì»œE]u`RÚÇrý"›ß}ÛY ½ëeÂ2{ÛVV8][×.n:+2_ç¶ÊÂBÃ&6±‰Mlb›ØÄ&6ß`3i¿9Y³³åΌ諡yÙúU}ÔŸ82f-vÚ–Õ6 nÒMºI7±‰Mlb›ØÄ&6±ùólæî7ãÎð‚þÕ ¢›t“nÒMlb›ØÄ&6±‰Mlþ2›ÎüÍÙ^Ð/ˆnÒMºI7±‰Mlb›ØÄ&6±é;gxA¾C¡›t“núO‹Mlb›ØÄ&6±y€Íy•ÇfP¥Õ[6Ÿ4ºßÌ«Ùk`v^Ð+Ó9Ä Ê¬OÛ±ùð}Ï攨›™+ZXíè®=:iWE \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_157_7.dat b/library/phpqrcode/cache/mask_7/mask_157_7.dat
new file mode 100644
index 000000000..2db27f685
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_157_7.dat
@@ -0,0 +1,2 @@
+xÚíÜM
+ƒ0Eáù[M²ÿÍ•‚­ü£s¡_„ ž‰ÇÛã ­}F¹†Qks½‡Ì{Ý%¶WqÛ÷×îø.ž­¬Ýþϯ­]Ü8evV½ßbvV}è®_µÜEÌ»n3W^KÃ\Ÿ`äÖV캽çZl³˜Å,f1‹YÌþ;³af±Ôkž·Þ¨×úiàè“ÁÄzÍôÖËz?urVÎÊY9‹YÌb³˜Å,fù,Ÿå³|VÎÊY9+g1‹YÌb³˜Å,Ÿå³|–ÏÊY9+gý7Æ,f1‹YÌb³|–ÏòY>+g嬜Å,f1‹YÌb³|–ÏòY>+g嬜•³˜Å,f1‹YÌþÈlâùƳi§o˜ý.\¦ÏÆo<úl;9º:Âg[®Ï¶lŸmÁÔ^œI>=gÏ™œ³-yk_TAµ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_161_7.dat b/library/phpqrcode/cache/mask_7/mask_161_7.dat
new file mode 100644
index 000000000..35ba8ff48
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_161_7.dat
@@ -0,0 +1 @@
+xÚíÜÑŽÂ …áûyšòþ/皨E)Æ®›î1~4áÂœý93,˵´ «+µØZT=Zeâ¶C»¹ú.<sþô¹ŸvÙÞÏ>~ißµ§¯ÊÞÖ&>Œ,–ÿÔï´6eù˜·í•Ö~,láW]ì ®»º2Íê꺱Ý\Ñþ;×µ2j"–±Œe,ËrXŒÝµVÓ(ícìµµZÓ–1‘™§8Þ©í§‰±/,'ÇØt™.ÓeºŒe,cËXÆ2–±Œåß±,_þŠ|ytõüç£ï|ÎÜ]¦Ët™.cËXÆ2–±Œe,cyËòå/É—­ysî‹.ÓeºL—±Œe,cËXÆ2–±lo…|ÙZ{+è2]¦Ëbl,cËXÆ2–±Œe{+äËÖŠØ[A—é2]¦ËXÆ2–±Œe,c9åÌCÐXÎ<ëþÆò’Ÿ/owsP¾œyÖý]¾œyÖ}·VdÙìæ°¹¯d9J—Ó‡ì)Ë1õ jI2ë \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_165_7.dat b/library/phpqrcode/cache/mask_7/mask_165_7.dat
new file mode 100644
index 000000000..e27fb8edf
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_165_7.dat
@@ -0,0 +1 @@
+xÚíÝQŽ‚0Ðÿ·š²ÿÍM&A,NĘ̈!—x0é‡&XZׇZ»-KØ«[êÞÉeÉj‡½Œëæx,ƒ§¼ú.ï·g}ë`;ÿþþ+k{ËÑ~1ŸŽÿ}á+k{ËØ¥ž™¾SGùWãgî}‡Ý¬@Û?_µö8í¾o+·k][·hô”Wü8~·u·ÜMÆgœqÆg|j<õ·ú¶¶Ú*ßq=<¯”Ïü¤æÛ“RwÆ“ëñÕøøÌüÄÌéŸÈq9.Çå8ãŒ3Î8ãŒ3Î8ãIÆÕãUGÿ?~µsnr\ŽËq9Î8ãŒ3Î8ãŒ3Îx€qõøÇÕã®yç979.Çå¸gœqÆgœqÆgÜ=)êq×À¸'EŽËq9.ÇgœqÆgœqÆwOŠzÜ50îI‘ãr\Žû­Î8ãŒ3Î8ãŒ_ÆøVvd}²ÇÞøü¡aõx˯ÇÛ5êñã)¹&ÿ9)ñÙÞf¼¥çxþ3øYH]ûS^*/ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_169_7.dat b/library/phpqrcode/cache/mask_7/mask_169_7.dat
new file mode 100644
index 000000000..ef1a181f2
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_169_7.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_7/mask_173_7.dat b/library/phpqrcode/cache/mask_7/mask_173_7.dat
new file mode 100644
index 000000000..3b5137125
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_173_7.dat
@@ -0,0 +1 @@
+xÚíÝÝjÃ0 Ð{=Mòþ/· RbÖH¬û«´rj\Ç=ý,ºm·coúZŽ8;»ïmÏ÷½mÛÝë±0b÷ƒ_ßšt$~Wu5ÛÇšNnÜ'?dÕf2¶í(oÁïßGÚ,Løþù÷õ6_{»zÅÑ÷Æ? Ë9úwq9Ç àS!ÆŒëÛ9Îoë€î2 L`˜˜pµŒ¬––O»Enï¶v8L˜²v8L¸º UáY×"ûd}ê K›r‚œ 'È ÖL`˜À&0 L`B'fÕ:ïO8ÛTcTc\kŒr‚œ 'È ÖL`˜À&0 L`BìY²gIñ§kŒr‚œ 'È ÖL`˜À&0 L`‚ç"íYRcô\¤œ 'È r˜À&0 L`˜ÀÏEÚ³¤Æè¹H9ANä&0 L`˜À&ü'úÿ!Ø;êÅq+¶Yõ„l*´Ü³´þ=Ø€ã9¶jŒ[2ÚÖÿ€ Ms¤Ÿ‡Ô„–ç­ë*Ø \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_177_7.dat b/library/phpqrcode/cache/mask_7/mask_177_7.dat
new file mode 100644
index 000000000..068477c92
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_177_7.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_7/mask_21_7.dat b/library/phpqrcode/cache/mask_7/mask_21_7.dat
new file mode 100644
index 000000000..4f9f1386d
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_21_7.dat
@@ -0,0 +1,4 @@
+xÚQ
+À0 Bÿ=Þÿr]š˜-?]Rl‡ä݃2•¦¹nc
+ð[Ž¹öÝnùAÃ".–j+êi
+~‹x3<úaXÚ{H†ÖC1xÉÀ)â„á¤üSå \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_25_7.dat b/library/phpqrcode/cache/mask_7/mask_25_7.dat
new file mode 100644
index 000000000..cefe1b972
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_25_7.dat
@@ -0,0 +1 @@
+xÚQAÀ »÷5ôÿŸ[F@©àaƒ„ÄÔÖZ̲… >;’ÐÀQ±ÊIÖÀQH8Rÿ¼ñÒˆGÉ"èz,ù½&‡ñþ;±­Ð'oñ»97”%P8%÷6oǽ;]ÞúNWnÝ[äf7¹ÌÕvÔ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_29_7.dat b/library/phpqrcode/cache/mask_7/mask_29_7.dat
new file mode 100644
index 000000000..e3d7391b7
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_29_7.dat
@@ -0,0 +1,2 @@
+xÚÕR9À ÛýšøÿŸ«ŠÈQpX˜$læŲf!I2pgSãªêªMZj·ºóÌÃÂ<K.êØ·
+ÂÇ—­Ñê^DŽ/è_yž/ßgcxVÙ0ŸBf#ŽÖÿ]BÇϽʳhí9Þ¹ËóÀ›^Ÿä \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_33_7.dat b/library/phpqrcode/cache/mask_7/mask_33_7.dat
new file mode 100644
index 000000000..1763f4286
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_33_7.dat
@@ -0,0 +1 @@
+xÚíSAÀ@¼Ïkøÿçš6¨¨á²Ç’8Èì0 7-n† ZbE0¶"™£°t]…£µ3Ztqúó>"útŠðï¡e0¾¿#Ô›`_Ë1-±ÞóŽé´câÝÍ÷òha÷~/¡Eh™4¦Åæ"ä˜~Ï \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_37_7.dat b/library/phpqrcode/cache/mask_7/mask_37_7.dat
new file mode 100644
index 000000000..87d9a1a9d
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_37_7.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_7/mask_41_7.dat b/library/phpqrcode/cache/mask_7/mask_41_7.dat
new file mode 100644
index 000000000..8acec04f0
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_41_7.dat
@@ -0,0 +1 @@
+xÚíTAÀ »÷5ôÿŸ[fDYæ(O’^¬ÅbR3/~t/L"¹Ä7SQQ5…jÔ\S—šiíñÎb£ß#Õ†ÈÂ×+Ç£¤w#æzõx?Þ㽧A-ëšw•u曑Y7$b.%AËÇ;•w«Rµ÷ñï•œoxG}?ƒ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_45_7.dat b/library/phpqrcode/cache/mask_7/mask_45_7.dat
new file mode 100644
index 000000000..dbba31d0b
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_45_7.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_7/mask_49_7.dat b/library/phpqrcode/cache/mask_7/mask_49_7.dat
new file mode 100644
index 000000000..be5dce8b7
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_49_7.dat
@@ -0,0 +1 @@
+xÚíVË€0»÷kàÿÎhœC-X.žÆ<ì¨h6Ì‹ 3À½ð,B Ô”ó,ç@’Ï€d5$K¸"T|p•%9"¼ypæ,ïâæ¡=<ÆÉm¡•÷˜Ô‰!‹«?¸¦÷DÀW"˜²(®¸Aó-Ö\- J\©{0p¥lÁWW]ƒÒŒ4ºž?4h= Z_ƒÖd+ýg(æ*ã*+붵(ÏÇæ \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_53_7.dat b/library/phpqrcode/cache/mask_7/mask_53_7.dat
new file mode 100644
index 000000000..7028ef6d7
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_53_7.dat
@@ -0,0 +1 @@
+xÚí–KÀ D÷s¼ÿåš&´Råkºiª&,H)øtD×jÁ =¨µÐÎQa˜ž«P"d¹s1ZyC®|hey ­üCvéaH°›7ø‰+ùO…Åu¥QÎsZtb…°Íð7 µvãúÀŠ­h™VµÌ µ~èùà·1#ÿ~‡[Ëf˜†ùÙæfHkZ¶JtµœŸmZÎÏ6½—ÉsÕúá‹ ƒw¸rÍ&C×߶f \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_57_7.dat b/library/phpqrcode/cache/mask_7/mask_57_7.dat
new file mode 100644
index 000000000..ee3107a3c
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_57_7.dat
@@ -0,0 +1 @@
+xÚí—A€0ïûšöÿŸ3&•ÒH)Kb¼Ð&ˆqÅÖžÕ[-ÌÀÞÏÖŒ …Ú9Ér¡Ys ×.«ÎiÝÓ¾`´ìòØú~—­ëGé{cœiƒÕ‚»\Y<˜.©|·Åì2´ØÛŸÙ2š ŠQQ[[÷^N·ë€88½líÏÃÁ[}[šPl?g+o*Ï–˜4W¶û1  ü Õ33˜Ò[¿\Gosó­bkèm”mËômÿÊ^¬¢hë \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_61_7.dat b/library/phpqrcode/cache/mask_7/mask_61_7.dat
new file mode 100644
index 000000000..76f8d7271
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_61_7.dat
@@ -0,0 +1,2 @@
+xÚí—K
+À D÷sšäþ—+-µ*5ÿm²¤cŸaT¢1Ø9—YÌ쌧êL9 糶¬²çísù//i‡‡Ê\„éb®ö©æÂÄ«âÞë-"^²DŒH-iÝ;bnA¢¼™7ófîet¶7Ù·yÌ£E:r”<4ß6ó(üu÷y{K3oæ"óÌý|a½oÌ?ᜟ‡ïç«Ÿ“ò´pù9åýœj~NêÆ›Èìs¹ÑçTYú¡ Âu \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_65_7.dat b/library/phpqrcode/cache/mask_7/mask_65_7.dat
new file mode 100644
index 000000000..d8b920626
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_65_7.dat
@@ -0,0 +1 @@
+xÚí—A€ ïûøÿçŒI‘*í6^L!é…°¶ ¸i)mTÇT] VW\ï9e@—4Ku^Â#N%:ö,ÖÙmYÈÂJNã„è9¯“Šà¶©ˆvAè2úþÑÏœ”HÉ"YüšÅÜö +?`ýBXDüBX̽{¿‹Á.³Ëw‘ÿ¨d‘,~΂k’,¸^ïbQâ~±.Ãà\¯wó ®×ë^«Ï÷îOY˜ÞEôJmXâÑÏ"% \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_69_7.dat b/library/phpqrcode/cache/mask_7/mask_69_7.dat
new file mode 100644
index 000000000..c2db0204a
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_69_7.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_7/mask_73_7.dat b/library/phpqrcode/cache/mask_7/mask_73_7.dat
new file mode 100644
index 000000000..f414e4a58
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_73_7.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_7/mask_77_7.dat b/library/phpqrcode/cache/mask_7/mask_77_7.dat
new file mode 100644
index 000000000..3e52bfd3f
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_77_7.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_7/mask_81_7.dat b/library/phpqrcode/cache/mask_7/mask_81_7.dat
new file mode 100644
index 000000000..78e08dfc6
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_81_7.dat
@@ -0,0 +1 @@
+xÚí™ÁÄ Dïó5ðÿ?×lÒ"ÍŠÝ•¹u4áÀa„>ukv oÌ40Ý÷ãT±%9¯‘Ô6²ü÷ªU5‹*sI{`¹ªÿ™_²>S?ç}(:yâTïlï{G&E\”Ö6¨õ}"A’¤X‹õ XϬ«²³Ç<Âmwx°fÜá‘G”<k£ræU•eεεX‹µX‹µüZ~­s­;\¬ÅZ¬3ë¸|y¬ /ÍwÖÕÃp˯ë×Æ÷ëUÛ[~Í}O¬«oÓ`mÌsÍÝ‘¤)~,Ý \ No newline at end of file
diff --git a/library/phpqrcode/cache/mask_7/mask_85_7.dat b/library/phpqrcode/cache/mask_7/mask_85_7.dat
new file mode 100644
index 000000000..a53824aee
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_85_7.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_7/mask_89_7.dat b/library/phpqrcode/cache/mask_7/mask_89_7.dat
new file mode 100644
index 000000000..32934a441
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_89_7.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_7/mask_93_7.dat b/library/phpqrcode/cache/mask_7/mask_93_7.dat
new file mode 100644
index 000000000..1955f6b7d
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_93_7.dat
Binary files differ
diff --git a/library/phpqrcode/cache/mask_7/mask_97_7.dat b/library/phpqrcode/cache/mask_7/mask_97_7.dat
new file mode 100644
index 000000000..b277368bd
--- /dev/null
+++ b/library/phpqrcode/cache/mask_7/mask_97_7.dat
@@ -0,0 +1,2 @@
+xÚíšáƒ0„ÿßÓÀû¿Ü²D[ÌÚâV.K¶«Iÿ`…â'ž³sxáº÷Âyäå”$ùxãxÃ"Îéª×= O^&pêb¶ÊÈYʬž$êKŸÝ£àÁÉŽ8KŸ…Ë ÎeÃŒó¡¥ ÔøŸ3:$bI,‰%±$–ÄÒYb襶
+M)¯TôŽ %q®¬Èô綦EÿœX}jlØT—T—ôŽKbI,‰%±ô,ñõã_e[%íýŽöV]R]Ò;N,‰%±$–þ’%VŸ@`‰Ñ%pa©m€§—(}ñ_¥%í%ÚÛ¸ÚÛøÚÛÈ4¥='u)ai¿.;M¾ù> \ No newline at end of file
diff --git a/library/phpqrcode/index.php b/library/phpqrcode/index.php
new file mode 100644
index 000000000..9e14b7eaa
--- /dev/null
+++ b/library/phpqrcode/index.php
@@ -0,0 +1,94 @@
+<?php
+/*
+ * PHP QR Code encoder
+ *
+ * Exemplatory usage
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ echo "<h1>PHP QR Code</h1><hr/>";
+
+ //set it to writable location, a place for temp generated PNG files
+ $PNG_TEMP_DIR = dirname(__FILE__).DIRECTORY_SEPARATOR.'temp'.DIRECTORY_SEPARATOR;
+
+ //html PNG location prefix
+ $PNG_WEB_DIR = 'temp/';
+
+ include "qrlib.php";
+
+ //ofcourse we need rights to create temp dir
+ if (!file_exists($PNG_TEMP_DIR))
+ mkdir($PNG_TEMP_DIR);
+
+
+ $filename = $PNG_TEMP_DIR.'test.png';
+
+ //processing form input
+ //remember to sanitize user input in real-life solution !!!
+ $errorCorrectionLevel = 'L';
+ if (isset($_REQUEST['level']) && in_array($_REQUEST['level'], array('L','M','Q','H')))
+ $errorCorrectionLevel = $_REQUEST['level'];
+
+ $matrixPointSize = 4;
+ if (isset($_REQUEST['size']))
+ $matrixPointSize = min(max((int)$_REQUEST['size'], 1), 10);
+
+
+ if (isset($_REQUEST['data'])) {
+
+ //it's very important!
+ if (trim($_REQUEST['data']) == '')
+ die('data cannot be empty! <a href="?">back</a>');
+
+ // user data
+ $filename = $PNG_TEMP_DIR.'test'.md5($_REQUEST['data'].'|'.$errorCorrectionLevel.'|'.$matrixPointSize).'.png';
+ QRcode::png($_REQUEST['data'], $filename, $errorCorrectionLevel, $matrixPointSize, 2);
+
+ } else {
+
+ //default data
+ echo 'You can provide data in GET parameter: <a href="?data=like_that">like that</a><hr/>';
+ QRcode::png('PHP QR Code :)', $filename, $errorCorrectionLevel, $matrixPointSize, 2);
+
+ }
+
+ //display generated file
+ echo '<img src="'.$PNG_WEB_DIR.basename($filename).'" /><hr/>';
+
+ //config form
+ echo '<form action="index.php" method="post">
+ Data:&nbsp;<input name="data" value="'.(isset($_REQUEST['data'])?htmlspecialchars($_REQUEST['data']):'PHP QR Code :)').'" />&nbsp;
+ ECC:&nbsp;<select name="level">
+ <option value="L"'.(($errorCorrectionLevel=='L')?' selected':'').'>L - smallest</option>
+ <option value="M"'.(($errorCorrectionLevel=='M')?' selected':'').'>M</option>
+ <option value="Q"'.(($errorCorrectionLevel=='Q')?' selected':'').'>Q</option>
+ <option value="H"'.(($errorCorrectionLevel=='H')?' selected':'').'>H - best</option>
+ </select>&nbsp;
+ Size:&nbsp;<select name="size">';
+
+ for($i=1;$i<=10;$i++)
+ echo '<option value="'.$i.'"'.(($matrixPointSize==$i)?' selected':'').'>'.$i.'</option>';
+
+ echo '</select>&nbsp;
+ <input type="submit" value="GENERATE"></form><hr/>';
+
+ // benchmark
+ QRtools::timeBenchmark();
+
+ \ No newline at end of file
diff --git a/library/phpqrcode/phpqrcode.php b/library/phpqrcode/phpqrcode.php
new file mode 100644
index 000000000..80adb9df2
--- /dev/null
+++ b/library/phpqrcode/phpqrcode.php
@@ -0,0 +1,3312 @@
+<?php
+
+/*
+ * PHP QR Code encoder
+ *
+ * This file contains MERGED version of PHP QR Code library.
+ * It was auto-generated from full version for your convenience.
+ *
+ * This merged version was configured to not requre any external files,
+ * with disabled cache, error loging and weker but faster mask matching.
+ * If you need tune it up please use non-merged version.
+ *
+ * For full version, documentation, examples of use please visit:
+ *
+ * http://phpqrcode.sourceforge.net/
+ * https://sourceforge.net/projects/phpqrcode/
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+
+
+/*
+ * Version: 1.1.4
+ * Build: 2010100721
+ */
+
+
+
+//---- qrconst.php -----------------------------
+
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * Common constants
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ // Encoding modes
+
+ define('QR_MODE_NUL', -1);
+ define('QR_MODE_NUM', 0);
+ define('QR_MODE_AN', 1);
+ define('QR_MODE_8', 2);
+ define('QR_MODE_KANJI', 3);
+ define('QR_MODE_STRUCTURE', 4);
+
+ // Levels of error correction.
+
+ define('QR_ECLEVEL_L', 0);
+ define('QR_ECLEVEL_M', 1);
+ define('QR_ECLEVEL_Q', 2);
+ define('QR_ECLEVEL_H', 3);
+
+ // Supported output formats
+
+ define('QR_FORMAT_TEXT', 0);
+ define('QR_FORMAT_PNG', 1);
+
+ class qrstr {
+ public static function set(&$srctab, $x, $y, $repl, $replLen = false) {
+ $srctab[$y] = substr_replace($srctab[$y], ($replLen !== false)?substr($repl,0,$replLen):$repl, $x, ($replLen !== false)?$replLen:strlen($repl));
+ }
+ }
+
+
+
+//---- merged_config.php -----------------------------
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * Config file, tuned-up for merged verion
+ */
+
+ define('QR_CACHEABLE', false); // use cache - more disk reads but less CPU power, masks and format templates are stored there
+ define('QR_CACHE_DIR', false); // used when QR_CACHEABLE === true
+ define('QR_LOG_DIR', false); // default error logs dir
+
+ define('QR_FIND_BEST_MASK', true); // if true, estimates best mask (spec. default, but extremally slow; set to false to significant performance boost but (propably) worst quality code
+ define('QR_FIND_FROM_RANDOM', 2); // if false, checks all masks available, otherwise value tells count of masks need to be checked, mask id are got randomly
+ define('QR_DEFAULT_MASK', 2); // when QR_FIND_BEST_MASK === false
+
+ define('QR_PNG_MAXIMUM_SIZE', 1024); // maximum allowed png image width (in pixels), tune to make sure GD and PHP can handle such big images
+
+
+
+
+//---- qrtools.php -----------------------------
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * Toolset, handy and debug utilites.
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ class QRtools {
+
+ //----------------------------------------------------------------------
+ public static function binarize($frame)
+ {
+ $len = count($frame);
+ foreach ($frame as &$frameLine) {
+
+ for($i=0; $i<$len; $i++) {
+ $frameLine[$i] = (ord($frameLine[$i])&1)?'1':'0';
+ }
+ }
+
+ return $frame;
+ }
+
+ //----------------------------------------------------------------------
+ public static function tcpdfBarcodeArray($code, $mode = 'QR,L', $tcPdfVersion = '4.5.037')
+ {
+ $barcode_array = array();
+
+ if (!is_array($mode))
+ $mode = explode(',', $mode);
+
+ $eccLevel = 'L';
+
+ if (count($mode) > 1) {
+ $eccLevel = $mode[1];
+ }
+
+ $qrTab = QRcode::text($code, false, $eccLevel);
+ $size = count($qrTab);
+
+ $barcode_array['num_rows'] = $size;
+ $barcode_array['num_cols'] = $size;
+ $barcode_array['bcode'] = array();
+
+ foreach ($qrTab as $line) {
+ $arrAdd = array();
+ foreach(str_split($line) as $char)
+ $arrAdd[] = ($char=='1')?1:0;
+ $barcode_array['bcode'][] = $arrAdd;
+ }
+
+ return $barcode_array;
+ }
+
+ //----------------------------------------------------------------------
+ public static function clearCache()
+ {
+ self::$frames = array();
+ }
+
+ //----------------------------------------------------------------------
+ public static function buildCache()
+ {
+ QRtools::markTime('before_build_cache');
+
+ $mask = new QRmask();
+ for ($a=1; $a <= QRSPEC_VERSION_MAX; $a++) {
+ $frame = QRspec::newFrame($a);
+ if (QR_IMAGE) {
+ $fileName = QR_CACHE_DIR.'frame_'.$a.'.png';
+ QRimage::png(self::binarize($frame), $fileName, 1, 0);
+ }
+
+ $width = count($frame);
+ $bitMask = array_fill(0, $width, array_fill(0, $width, 0));
+ for ($maskNo=0; $maskNo<8; $maskNo++)
+ $mask->makeMaskNo($maskNo, $width, $frame, $bitMask, true);
+ }
+
+ QRtools::markTime('after_build_cache');
+ }
+
+ //----------------------------------------------------------------------
+ public static function log($outfile, $err)
+ {
+ if (QR_LOG_DIR !== false) {
+ if ($err != '') {
+ if ($outfile !== false) {
+ file_put_contents(QR_LOG_DIR.basename($outfile).'-errors.txt', date('Y-m-d H:i:s').': '.$err, FILE_APPEND);
+ } else {
+ file_put_contents(QR_LOG_DIR.'errors.txt', date('Y-m-d H:i:s').': '.$err, FILE_APPEND);
+ }
+ }
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public static function dumpMask($frame)
+ {
+ $width = count($frame);
+ for($y=0;$y<$width;$y++) {
+ for($x=0;$x<$width;$x++) {
+ echo ord($frame[$y][$x]).',';
+ }
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public static function markTime($markerId)
+ {
+ list($usec, $sec) = explode(" ", microtime());
+ $time = ((float)$usec + (float)$sec);
+
+ if (!isset($GLOBALS['qr_time_bench']))
+ $GLOBALS['qr_time_bench'] = array();
+
+ $GLOBALS['qr_time_bench'][$markerId] = $time;
+ }
+
+ //----------------------------------------------------------------------
+ public static function timeBenchmark()
+ {
+ self::markTime('finish');
+
+ $lastTime = 0;
+ $startTime = 0;
+ $p = 0;
+
+ echo '<table cellpadding="3" cellspacing="1">
+ <thead><tr style="border-bottom:1px solid silver"><td colspan="2" style="text-align:center">BENCHMARK</td></tr></thead>
+ <tbody>';
+
+ foreach($GLOBALS['qr_time_bench'] as $markerId=>$thisTime) {
+ if ($p > 0) {
+ echo '<tr><th style="text-align:right">till '.$markerId.': </th><td>'.number_format($thisTime-$lastTime, 6).'s</td></tr>';
+ } else {
+ $startTime = $thisTime;
+ }
+
+ $p++;
+ $lastTime = $thisTime;
+ }
+
+ echo '</tbody><tfoot>
+ <tr style="border-top:2px solid black"><th style="text-align:right">TOTAL: </th><td>'.number_format($lastTime-$startTime, 6).'s</td></tr>
+ </tfoot>
+ </table>';
+ }
+
+ }
+
+ //##########################################################################
+
+ QRtools::markTime('start');
+
+
+
+
+//---- qrspec.php -----------------------------
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * QR Code specifications
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * The following data / specifications are taken from
+ * "Two dimensional symbol -- QR-code -- Basic Specification" (JIS X0510:2004)
+ * or
+ * "Automatic identification and data capture techniques --
+ * QR Code 2005 bar code symbology specification" (ISO/IEC 18004:2006)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ define('QRSPEC_VERSION_MAX', 40);
+ define('QRSPEC_WIDTH_MAX', 177);
+
+ define('QRCAP_WIDTH', 0);
+ define('QRCAP_WORDS', 1);
+ define('QRCAP_REMINDER', 2);
+ define('QRCAP_EC', 3);
+
+ class QRspec {
+
+ public static $capacity = array(
+ array( 0, 0, 0, array( 0, 0, 0, 0)),
+ array( 21, 26, 0, array( 7, 10, 13, 17)), // 1
+ array( 25, 44, 7, array( 10, 16, 22, 28)),
+ array( 29, 70, 7, array( 15, 26, 36, 44)),
+ array( 33, 100, 7, array( 20, 36, 52, 64)),
+ array( 37, 134, 7, array( 26, 48, 72, 88)), // 5
+ array( 41, 172, 7, array( 36, 64, 96, 112)),
+ array( 45, 196, 0, array( 40, 72, 108, 130)),
+ array( 49, 242, 0, array( 48, 88, 132, 156)),
+ array( 53, 292, 0, array( 60, 110, 160, 192)),
+ array( 57, 346, 0, array( 72, 130, 192, 224)), //10
+ array( 61, 404, 0, array( 80, 150, 224, 264)),
+ array( 65, 466, 0, array( 96, 176, 260, 308)),
+ array( 69, 532, 0, array( 104, 198, 288, 352)),
+ array( 73, 581, 3, array( 120, 216, 320, 384)),
+ array( 77, 655, 3, array( 132, 240, 360, 432)), //15
+ array( 81, 733, 3, array( 144, 280, 408, 480)),
+ array( 85, 815, 3, array( 168, 308, 448, 532)),
+ array( 89, 901, 3, array( 180, 338, 504, 588)),
+ array( 93, 991, 3, array( 196, 364, 546, 650)),
+ array( 97, 1085, 3, array( 224, 416, 600, 700)), //20
+ array(101, 1156, 4, array( 224, 442, 644, 750)),
+ array(105, 1258, 4, array( 252, 476, 690, 816)),
+ array(109, 1364, 4, array( 270, 504, 750, 900)),
+ array(113, 1474, 4, array( 300, 560, 810, 960)),
+ array(117, 1588, 4, array( 312, 588, 870, 1050)), //25
+ array(121, 1706, 4, array( 336, 644, 952, 1110)),
+ array(125, 1828, 4, array( 360, 700, 1020, 1200)),
+ array(129, 1921, 3, array( 390, 728, 1050, 1260)),
+ array(133, 2051, 3, array( 420, 784, 1140, 1350)),
+ array(137, 2185, 3, array( 450, 812, 1200, 1440)), //30
+ array(141, 2323, 3, array( 480, 868, 1290, 1530)),
+ array(145, 2465, 3, array( 510, 924, 1350, 1620)),
+ array(149, 2611, 3, array( 540, 980, 1440, 1710)),
+ array(153, 2761, 3, array( 570, 1036, 1530, 1800)),
+ array(157, 2876, 0, array( 570, 1064, 1590, 1890)), //35
+ array(161, 3034, 0, array( 600, 1120, 1680, 1980)),
+ array(165, 3196, 0, array( 630, 1204, 1770, 2100)),
+ array(169, 3362, 0, array( 660, 1260, 1860, 2220)),
+ array(173, 3532, 0, array( 720, 1316, 1950, 2310)),
+ array(177, 3706, 0, array( 750, 1372, 2040, 2430)) //40
+ );
+
+ //----------------------------------------------------------------------
+ public static function getDataLength($version, $level)
+ {
+ return self::$capacity[$version][QRCAP_WORDS] - self::$capacity[$version][QRCAP_EC][$level];
+ }
+
+ //----------------------------------------------------------------------
+ public static function getECCLength($version, $level)
+ {
+ return self::$capacity[$version][QRCAP_EC][$level];
+ }
+
+ //----------------------------------------------------------------------
+ public static function getWidth($version)
+ {
+ return self::$capacity[$version][QRCAP_WIDTH];
+ }
+
+ //----------------------------------------------------------------------
+ public static function getRemainder($version)
+ {
+ return self::$capacity[$version][QRCAP_REMINDER];
+ }
+
+ //----------------------------------------------------------------------
+ public static function getMinimumVersion($size, $level)
+ {
+
+ for($i=1; $i<= QRSPEC_VERSION_MAX; $i++) {
+ $words = self::$capacity[$i][QRCAP_WORDS] - self::$capacity[$i][QRCAP_EC][$level];
+ if($words >= $size)
+ return $i;
+ }
+
+ return -1;
+ }
+
+ //######################################################################
+
+ public static $lengthTableBits = array(
+ array(10, 12, 14),
+ array( 9, 11, 13),
+ array( 8, 16, 16),
+ array( 8, 10, 12)
+ );
+
+ //----------------------------------------------------------------------
+ public static function lengthIndicator($mode, $version)
+ {
+ if ($mode == QR_MODE_STRUCTURE)
+ return 0;
+
+ if ($version <= 9) {
+ $l = 0;
+ } else if ($version <= 26) {
+ $l = 1;
+ } else {
+ $l = 2;
+ }
+
+ return self::$lengthTableBits[$mode][$l];
+ }
+
+ //----------------------------------------------------------------------
+ public static function maximumWords($mode, $version)
+ {
+ if($mode == QR_MODE_STRUCTURE)
+ return 3;
+
+ if($version <= 9) {
+ $l = 0;
+ } else if($version <= 26) {
+ $l = 1;
+ } else {
+ $l = 2;
+ }
+
+ $bits = self::$lengthTableBits[$mode][$l];
+ $words = (1 << $bits) - 1;
+
+ if($mode == QR_MODE_KANJI) {
+ $words *= 2; // the number of bytes is required
+ }
+
+ return $words;
+ }
+
+ // Error correction code -----------------------------------------------
+ // Table of the error correction code (Reed-Solomon block)
+ // See Table 12-16 (pp.30-36), JIS X0510:2004.
+
+ public static $eccTable = array(
+ array(array( 0, 0), array( 0, 0), array( 0, 0), array( 0, 0)),
+ array(array( 1, 0), array( 1, 0), array( 1, 0), array( 1, 0)), // 1
+ array(array( 1, 0), array( 1, 0), array( 1, 0), array( 1, 0)),
+ array(array( 1, 0), array( 1, 0), array( 2, 0), array( 2, 0)),
+ array(array( 1, 0), array( 2, 0), array( 2, 0), array( 4, 0)),
+ array(array( 1, 0), array( 2, 0), array( 2, 2), array( 2, 2)), // 5
+ array(array( 2, 0), array( 4, 0), array( 4, 0), array( 4, 0)),
+ array(array( 2, 0), array( 4, 0), array( 2, 4), array( 4, 1)),
+ array(array( 2, 0), array( 2, 2), array( 4, 2), array( 4, 2)),
+ array(array( 2, 0), array( 3, 2), array( 4, 4), array( 4, 4)),
+ array(array( 2, 2), array( 4, 1), array( 6, 2), array( 6, 2)), //10
+ array(array( 4, 0), array( 1, 4), array( 4, 4), array( 3, 8)),
+ array(array( 2, 2), array( 6, 2), array( 4, 6), array( 7, 4)),
+ array(array( 4, 0), array( 8, 1), array( 8, 4), array(12, 4)),
+ array(array( 3, 1), array( 4, 5), array(11, 5), array(11, 5)),
+ array(array( 5, 1), array( 5, 5), array( 5, 7), array(11, 7)), //15
+ array(array( 5, 1), array( 7, 3), array(15, 2), array( 3, 13)),
+ array(array( 1, 5), array(10, 1), array( 1, 15), array( 2, 17)),
+ array(array( 5, 1), array( 9, 4), array(17, 1), array( 2, 19)),
+ array(array( 3, 4), array( 3, 11), array(17, 4), array( 9, 16)),
+ array(array( 3, 5), array( 3, 13), array(15, 5), array(15, 10)), //20
+ array(array( 4, 4), array(17, 0), array(17, 6), array(19, 6)),
+ array(array( 2, 7), array(17, 0), array( 7, 16), array(34, 0)),
+ array(array( 4, 5), array( 4, 14), array(11, 14), array(16, 14)),
+ array(array( 6, 4), array( 6, 14), array(11, 16), array(30, 2)),
+ array(array( 8, 4), array( 8, 13), array( 7, 22), array(22, 13)), //25
+ array(array(10, 2), array(19, 4), array(28, 6), array(33, 4)),
+ array(array( 8, 4), array(22, 3), array( 8, 26), array(12, 28)),
+ array(array( 3, 10), array( 3, 23), array( 4, 31), array(11, 31)),
+ array(array( 7, 7), array(21, 7), array( 1, 37), array(19, 26)),
+ array(array( 5, 10), array(19, 10), array(15, 25), array(23, 25)), //30
+ array(array(13, 3), array( 2, 29), array(42, 1), array(23, 28)),
+ array(array(17, 0), array(10, 23), array(10, 35), array(19, 35)),
+ array(array(17, 1), array(14, 21), array(29, 19), array(11, 46)),
+ array(array(13, 6), array(14, 23), array(44, 7), array(59, 1)),
+ array(array(12, 7), array(12, 26), array(39, 14), array(22, 41)), //35
+ array(array( 6, 14), array( 6, 34), array(46, 10), array( 2, 64)),
+ array(array(17, 4), array(29, 14), array(49, 10), array(24, 46)),
+ array(array( 4, 18), array(13, 32), array(48, 14), array(42, 32)),
+ array(array(20, 4), array(40, 7), array(43, 22), array(10, 67)),
+ array(array(19, 6), array(18, 31), array(34, 34), array(20, 61)),//40
+ );
+
+ //----------------------------------------------------------------------
+ // CACHEABLE!!!
+
+ public static function getEccSpec($version, $level, array &$spec)
+ {
+ if (count($spec) < 5) {
+ $spec = array(0,0,0,0,0);
+ }
+
+ $b1 = self::$eccTable[$version][$level][0];
+ $b2 = self::$eccTable[$version][$level][1];
+ $data = self::getDataLength($version, $level);
+ $ecc = self::getECCLength($version, $level);
+
+ if($b2 == 0) {
+ $spec[0] = $b1;
+ $spec[1] = (int)($data / $b1);
+ $spec[2] = (int)($ecc / $b1);
+ $spec[3] = 0;
+ $spec[4] = 0;
+ } else {
+ $spec[0] = $b1;
+ $spec[1] = (int)($data / ($b1 + $b2));
+ $spec[2] = (int)($ecc / ($b1 + $b2));
+ $spec[3] = $b2;
+ $spec[4] = $spec[1] + 1;
+ }
+ }
+
+ // Alignment pattern ---------------------------------------------------
+
+ // Positions of alignment patterns.
+ // This array includes only the second and the third position of the
+ // alignment patterns. Rest of them can be calculated from the distance
+ // between them.
+
+ // See Table 1 in Appendix E (pp.71) of JIS X0510:2004.
+
+ public static $alignmentPattern = array(
+ array( 0, 0),
+ array( 0, 0), array(18, 0), array(22, 0), array(26, 0), array(30, 0), // 1- 5
+ array(34, 0), array(22, 38), array(24, 42), array(26, 46), array(28, 50), // 6-10
+ array(30, 54), array(32, 58), array(34, 62), array(26, 46), array(26, 48), //11-15
+ array(26, 50), array(30, 54), array(30, 56), array(30, 58), array(34, 62), //16-20
+ array(28, 50), array(26, 50), array(30, 54), array(28, 54), array(32, 58), //21-25
+ array(30, 58), array(34, 62), array(26, 50), array(30, 54), array(26, 52), //26-30
+ array(30, 56), array(34, 60), array(30, 58), array(34, 62), array(30, 54), //31-35
+ array(24, 50), array(28, 54), array(32, 58), array(26, 54), array(30, 58), //35-40
+ );
+
+
+ /** --------------------------------------------------------------------
+ * Put an alignment marker.
+ * @param frame
+ * @param width
+ * @param ox,oy center coordinate of the pattern
+ */
+ public static function putAlignmentMarker(array &$frame, $ox, $oy)
+ {
+ $finder = array(
+ "\xa1\xa1\xa1\xa1\xa1",
+ "\xa1\xa0\xa0\xa0\xa1",
+ "\xa1\xa0\xa1\xa0\xa1",
+ "\xa1\xa0\xa0\xa0\xa1",
+ "\xa1\xa1\xa1\xa1\xa1"
+ );
+
+ $yStart = $oy-2;
+ $xStart = $ox-2;
+
+ for($y=0; $y<5; $y++) {
+ QRstr::set($frame, $xStart, $yStart+$y, $finder[$y]);
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public static function putAlignmentPattern($version, &$frame, $width)
+ {
+ if($version < 2)
+ return;
+
+ $d = self::$alignmentPattern[$version][1] - self::$alignmentPattern[$version][0];
+ if($d < 0) {
+ $w = 2;
+ } else {
+ $w = (int)(($width - self::$alignmentPattern[$version][0]) / $d + 2);
+ }
+
+ if($w * $w - 3 == 1) {
+ $x = self::$alignmentPattern[$version][0];
+ $y = self::$alignmentPattern[$version][0];
+ self::putAlignmentMarker($frame, $x, $y);
+ return;
+ }
+
+ $cx = self::$alignmentPattern[$version][0];
+ for($x=1; $x<$w - 1; $x++) {
+ self::putAlignmentMarker($frame, 6, $cx);
+ self::putAlignmentMarker($frame, $cx, 6);
+ $cx += $d;
+ }
+
+ $cy = self::$alignmentPattern[$version][0];
+ for($y=0; $y<$w-1; $y++) {
+ $cx = self::$alignmentPattern[$version][0];
+ for($x=0; $x<$w-1; $x++) {
+ self::putAlignmentMarker($frame, $cx, $cy);
+ $cx += $d;
+ }
+ $cy += $d;
+ }
+ }
+
+ // Version information pattern -----------------------------------------
+
+ // Version information pattern (BCH coded).
+ // See Table 1 in Appendix D (pp.68) of JIS X0510:2004.
+
+ // size: [QRSPEC_VERSION_MAX - 6]
+
+ public static $versionPattern = array(
+ 0x07c94, 0x085bc, 0x09a99, 0x0a4d3, 0x0bbf6, 0x0c762, 0x0d847, 0x0e60d,
+ 0x0f928, 0x10b78, 0x1145d, 0x12a17, 0x13532, 0x149a6, 0x15683, 0x168c9,
+ 0x177ec, 0x18ec4, 0x191e1, 0x1afab, 0x1b08e, 0x1cc1a, 0x1d33f, 0x1ed75,
+ 0x1f250, 0x209d5, 0x216f0, 0x228ba, 0x2379f, 0x24b0b, 0x2542e, 0x26a64,
+ 0x27541, 0x28c69
+ );
+
+ //----------------------------------------------------------------------
+ public static function getVersionPattern($version)
+ {
+ if($version < 7 || $version > QRSPEC_VERSION_MAX)
+ return 0;
+
+ return self::$versionPattern[$version -7];
+ }
+
+ // Format information --------------------------------------------------
+ // See calcFormatInfo in tests/test_qrspec.c (orginal qrencode c lib)
+
+ public static $formatInfo = array(
+ array(0x77c4, 0x72f3, 0x7daa, 0x789d, 0x662f, 0x6318, 0x6c41, 0x6976),
+ array(0x5412, 0x5125, 0x5e7c, 0x5b4b, 0x45f9, 0x40ce, 0x4f97, 0x4aa0),
+ array(0x355f, 0x3068, 0x3f31, 0x3a06, 0x24b4, 0x2183, 0x2eda, 0x2bed),
+ array(0x1689, 0x13be, 0x1ce7, 0x19d0, 0x0762, 0x0255, 0x0d0c, 0x083b)
+ );
+
+ public static function getFormatInfo($mask, $level)
+ {
+ if($mask < 0 || $mask > 7)
+ return 0;
+
+ if($level < 0 || $level > 3)
+ return 0;
+
+ return self::$formatInfo[$level][$mask];
+ }
+
+ // Frame ---------------------------------------------------------------
+ // Cache of initial frames.
+
+ public static $frames = array();
+
+ /** --------------------------------------------------------------------
+ * Put a finder pattern.
+ * @param frame
+ * @param width
+ * @param ox,oy upper-left coordinate of the pattern
+ */
+ public static function putFinderPattern(&$frame, $ox, $oy)
+ {
+ $finder = array(
+ "\xc1\xc1\xc1\xc1\xc1\xc1\xc1",
+ "\xc1\xc0\xc0\xc0\xc0\xc0\xc1",
+ "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
+ "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
+ "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
+ "\xc1\xc0\xc0\xc0\xc0\xc0\xc1",
+ "\xc1\xc1\xc1\xc1\xc1\xc1\xc1"
+ );
+
+ for($y=0; $y<7; $y++) {
+ QRstr::set($frame, $ox, $oy+$y, $finder[$y]);
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public static function createFrame($version)
+ {
+ $width = self::$capacity[$version][QRCAP_WIDTH];
+ $frameLine = str_repeat ("\0", $width);
+ $frame = array_fill(0, $width, $frameLine);
+
+ // Finder pattern
+ self::putFinderPattern($frame, 0, 0);
+ self::putFinderPattern($frame, $width - 7, 0);
+ self::putFinderPattern($frame, 0, $width - 7);
+
+ // Separator
+ $yOffset = $width - 7;
+
+ for($y=0; $y<7; $y++) {
+ $frame[$y][7] = "\xc0";
+ $frame[$y][$width - 8] = "\xc0";
+ $frame[$yOffset][7] = "\xc0";
+ $yOffset++;
+ }
+
+ $setPattern = str_repeat("\xc0", 8);
+
+ QRstr::set($frame, 0, 7, $setPattern);
+ QRstr::set($frame, $width-8, 7, $setPattern);
+ QRstr::set($frame, 0, $width - 8, $setPattern);
+
+ // Format info
+ $setPattern = str_repeat("\x84", 9);
+ QRstr::set($frame, 0, 8, $setPattern);
+ QRstr::set($frame, $width - 8, 8, $setPattern, 8);
+
+ $yOffset = $width - 8;
+
+ for($y=0; $y<8; $y++,$yOffset++) {
+ $frame[$y][8] = "\x84";
+ $frame[$yOffset][8] = "\x84";
+ }
+
+ // Timing pattern
+
+ for($i=1; $i<$width-15; $i++) {
+ $frame[6][7+$i] = chr(0x90 | ($i & 1));
+ $frame[7+$i][6] = chr(0x90 | ($i & 1));
+ }
+
+ // Alignment pattern
+ self::putAlignmentPattern($version, $frame, $width);
+
+ // Version information
+ if($version >= 7) {
+ $vinf = self::getVersionPattern($version);
+
+ $v = $vinf;
+
+ for($x=0; $x<6; $x++) {
+ for($y=0; $y<3; $y++) {
+ $frame[($width - 11)+$y][$x] = chr(0x88 | ($v & 1));
+ $v = $v >> 1;
+ }
+ }
+
+ $v = $vinf;
+ for($y=0; $y<6; $y++) {
+ for($x=0; $x<3; $x++) {
+ $frame[$y][$x+($width - 11)] = chr(0x88 | ($v & 1));
+ $v = $v >> 1;
+ }
+ }
+ }
+
+ // and a little bit...
+ $frame[$width - 8][8] = "\x81";
+
+ return $frame;
+ }
+
+ //----------------------------------------------------------------------
+ public static function debug($frame, $binary_mode = false)
+ {
+ if ($binary_mode) {
+
+ foreach ($frame as &$frameLine) {
+ $frameLine = join('<span class="m">&nbsp;&nbsp;</span>', explode('0', $frameLine));
+ $frameLine = join('&#9608;&#9608;', explode('1', $frameLine));
+ }
+
+ ?>
+ <style>
+ .m { background-color: white; }
+ </style>
+ <?php
+ echo '<pre><tt><br/ ><br/ ><br/ >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
+ echo join("<br/ >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", $frame);
+ echo '</tt></pre><br/ ><br/ ><br/ ><br/ ><br/ ><br/ >';
+
+ } else {
+
+ foreach ($frame as &$frameLine) {
+ $frameLine = join('<span class="m">&nbsp;</span>', explode("\xc0", $frameLine));
+ $frameLine = join('<span class="m">&#9618;</span>', explode("\xc1", $frameLine));
+ $frameLine = join('<span class="p">&nbsp;</span>', explode("\xa0", $frameLine));
+ $frameLine = join('<span class="p">&#9618;</span>', explode("\xa1", $frameLine));
+ $frameLine = join('<span class="s">&#9671;</span>', explode("\x84", $frameLine)); //format 0
+ $frameLine = join('<span class="s">&#9670;</span>', explode("\x85", $frameLine)); //format 1
+ $frameLine = join('<span class="x">&#9762;</span>', explode("\x81", $frameLine)); //special bit
+ $frameLine = join('<span class="c">&nbsp;</span>', explode("\x90", $frameLine)); //clock 0
+ $frameLine = join('<span class="c">&#9719;</span>', explode("\x91", $frameLine)); //clock 1
+ $frameLine = join('<span class="f">&nbsp;</span>', explode("\x88", $frameLine)); //version
+ $frameLine = join('<span class="f">&#9618;</span>', explode("\x89", $frameLine)); //version
+ $frameLine = join('&#9830;', explode("\x01", $frameLine));
+ $frameLine = join('&#8901;', explode("\0", $frameLine));
+ }
+
+ ?>
+ <style>
+ .p { background-color: yellow; }
+ .m { background-color: #00FF00; }
+ .s { background-color: #FF0000; }
+ .c { background-color: aqua; }
+ .x { background-color: pink; }
+ .f { background-color: gold; }
+ </style>
+ <?php
+ echo "<pre><tt>";
+ echo join("<br/ >", $frame);
+ echo "</tt></pre>";
+
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public static function serial($frame)
+ {
+ return gzcompress(join("\n", $frame), 9);
+ }
+
+ //----------------------------------------------------------------------
+ public static function unserial($code)
+ {
+ return explode("\n", gzuncompress($code));
+ }
+
+ //----------------------------------------------------------------------
+ public static function newFrame($version)
+ {
+ if($version < 1 || $version > QRSPEC_VERSION_MAX)
+ return null;
+
+ if(!isset(self::$frames[$version])) {
+
+ $fileName = QR_CACHE_DIR.'frame_'.$version.'.dat';
+
+ if (QR_CACHEABLE) {
+ if (file_exists($fileName)) {
+ self::$frames[$version] = self::unserial(file_get_contents($fileName));
+ } else {
+ self::$frames[$version] = self::createFrame($version);
+ file_put_contents($fileName, self::serial(self::$frames[$version]));
+ }
+ } else {
+ self::$frames[$version] = self::createFrame($version);
+ }
+ }
+
+ if(is_null(self::$frames[$version]))
+ return null;
+
+ return self::$frames[$version];
+ }
+
+ //----------------------------------------------------------------------
+ public static function rsBlockNum($spec) { return $spec[0] + $spec[3]; }
+ public static function rsBlockNum1($spec) { return $spec[0]; }
+ public static function rsDataCodes1($spec) { return $spec[1]; }
+ public static function rsEccCodes1($spec) { return $spec[2]; }
+ public static function rsBlockNum2($spec) { return $spec[3]; }
+ public static function rsDataCodes2($spec) { return $spec[4]; }
+ public static function rsEccCodes2($spec) { return $spec[2]; }
+ public static function rsDataLength($spec) { return ($spec[0] * $spec[1]) + ($spec[3] * $spec[4]); }
+ public static function rsEccLength($spec) { return ($spec[0] + $spec[3]) * $spec[2]; }
+
+ }
+
+
+
+//---- qrimage.php -----------------------------
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * Image output of code using GD2
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ define('QR_IMAGE', true);
+
+ class QRimage {
+
+ //----------------------------------------------------------------------
+ public static function png($frame, $filename = false, $pixelPerPoint = 4, $outerFrame = 4,$saveandprint=FALSE)
+ {
+ $image = self::image($frame, $pixelPerPoint, $outerFrame);
+
+ if ($filename === false) {
+ Header("Content-type: image/png");
+ ImagePng($image);
+ } else {
+ if($saveandprint===TRUE){
+ ImagePng($image, $filename);
+ header("Content-type: image/png");
+ ImagePng($image);
+ }else{
+ ImagePng($image, $filename);
+ }
+ }
+
+ ImageDestroy($image);
+ }
+
+ //----------------------------------------------------------------------
+ public static function jpg($frame, $filename = false, $pixelPerPoint = 8, $outerFrame = 4, $q = 85)
+ {
+ $image = self::image($frame, $pixelPerPoint, $outerFrame);
+
+ if ($filename === false) {
+ Header("Content-type: image/jpeg");
+ ImageJpeg($image, null, $q);
+ } else {
+ ImageJpeg($image, $filename, $q);
+ }
+
+ ImageDestroy($image);
+ }
+
+ //----------------------------------------------------------------------
+ private static function image($frame, $pixelPerPoint = 4, $outerFrame = 4)
+ {
+ $h = count($frame);
+ $w = strlen($frame[0]);
+
+ $imgW = $w + 2*$outerFrame;
+ $imgH = $h + 2*$outerFrame;
+
+ $base_image =ImageCreate($imgW, $imgH);
+
+ $col[0] = ImageColorAllocate($base_image,255,255,255);
+ $col[1] = ImageColorAllocate($base_image,0,0,0);
+
+ imagefill($base_image, 0, 0, $col[0]);
+
+ for($y=0; $y<$h; $y++) {
+ for($x=0; $x<$w; $x++) {
+ if ($frame[$y][$x] == '1') {
+ ImageSetPixel($base_image,$x+$outerFrame,$y+$outerFrame,$col[1]);
+ }
+ }
+ }
+
+ $target_image =ImageCreate($imgW * $pixelPerPoint, $imgH * $pixelPerPoint);
+ ImageCopyResized($target_image, $base_image, 0, 0, 0, 0, $imgW * $pixelPerPoint, $imgH * $pixelPerPoint, $imgW, $imgH);
+ ImageDestroy($base_image);
+
+ return $target_image;
+ }
+ }
+
+
+
+//---- qrinput.php -----------------------------
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * Input encoding class
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ define('STRUCTURE_HEADER_BITS', 20);
+ define('MAX_STRUCTURED_SYMBOLS', 16);
+
+ class QRinputItem {
+
+ public $mode;
+ public $size;
+ public $data;
+ public $bstream;
+
+ public function __construct($mode, $size, $data, $bstream = null)
+ {
+ $setData = array_slice($data, 0, $size);
+
+ if (count($setData) < $size) {
+ $setData = array_merge($setData, array_fill(0,$size-count($setData),0));
+ }
+
+ if(!QRinput::check($mode, $size, $setData)) {
+ throw new Exception('Error m:'.$mode.',s:'.$size.',d:'.join(',',$setData));
+ return null;
+ }
+
+ $this->mode = $mode;
+ $this->size = $size;
+ $this->data = $setData;
+ $this->bstream = $bstream;
+ }
+
+ //----------------------------------------------------------------------
+ public function encodeModeNum($version)
+ {
+ try {
+
+ $words = (int)($this->size / 3);
+ $bs = new QRbitstream();
+
+ $val = 0x1;
+ $bs->appendNum(4, $val);
+ $bs->appendNum(QRspec::lengthIndicator(QR_MODE_NUM, $version), $this->size);
+
+ for($i=0; $i<$words; $i++) {
+ $val = (ord($this->data[$i*3 ]) - ord('0')) * 100;
+ $val += (ord($this->data[$i*3+1]) - ord('0')) * 10;
+ $val += (ord($this->data[$i*3+2]) - ord('0'));
+ $bs->appendNum(10, $val);
+ }
+
+ if($this->size - $words * 3 == 1) {
+ $val = ord($this->data[$words*3]) - ord('0');
+ $bs->appendNum(4, $val);
+ } else if($this->size - $words * 3 == 2) {
+ $val = (ord($this->data[$words*3 ]) - ord('0')) * 10;
+ $val += (ord($this->data[$words*3+1]) - ord('0'));
+ $bs->appendNum(7, $val);
+ }
+
+ $this->bstream = $bs;
+ return 0;
+
+ } catch (Exception $e) {
+ return -1;
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public function encodeModeAn($version)
+ {
+ try {
+ $words = (int)($this->size / 2);
+ $bs = new QRbitstream();
+
+ $bs->appendNum(4, 0x02);
+ $bs->appendNum(QRspec::lengthIndicator(QR_MODE_AN, $version), $this->size);
+
+ for($i=0; $i<$words; $i++) {
+ $val = (int)QRinput::lookAnTable(ord($this->data[$i*2 ])) * 45;
+ $val += (int)QRinput::lookAnTable(ord($this->data[$i*2+1]));
+
+ $bs->appendNum(11, $val);
+ }
+
+ if($this->size & 1) {
+ $val = QRinput::lookAnTable(ord($this->data[$words * 2]));
+ $bs->appendNum(6, $val);
+ }
+
+ $this->bstream = $bs;
+ return 0;
+
+ } catch (Exception $e) {
+ return -1;
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public function encodeMode8($version)
+ {
+ try {
+ $bs = new QRbitstream();
+
+ $bs->appendNum(4, 0x4);
+ $bs->appendNum(QRspec::lengthIndicator(QR_MODE_8, $version), $this->size);
+
+ for($i=0; $i<$this->size; $i++) {
+ $bs->appendNum(8, ord($this->data[$i]));
+ }
+
+ $this->bstream = $bs;
+ return 0;
+
+ } catch (Exception $e) {
+ return -1;
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public function encodeModeKanji($version)
+ {
+ try {
+
+ $bs = new QRbitrtream();
+
+ $bs->appendNum(4, 0x8);
+ $bs->appendNum(QRspec::lengthIndicator(QR_MODE_KANJI, $version), (int)($this->size / 2));
+
+ for($i=0; $i<$this->size; $i+=2) {
+ $val = (ord($this->data[$i]) << 8) | ord($this->data[$i+1]);
+ if($val <= 0x9ffc) {
+ $val -= 0x8140;
+ } else {
+ $val -= 0xc140;
+ }
+
+ $h = ($val >> 8) * 0xc0;
+ $val = ($val & 0xff) + $h;
+
+ $bs->appendNum(13, $val);
+ }
+
+ $this->bstream = $bs;
+ return 0;
+
+ } catch (Exception $e) {
+ return -1;
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public function encodeModeStructure()
+ {
+ try {
+ $bs = new QRbitstream();
+
+ $bs->appendNum(4, 0x03);
+ $bs->appendNum(4, ord($this->data[1]) - 1);
+ $bs->appendNum(4, ord($this->data[0]) - 1);
+ $bs->appendNum(8, ord($this->data[2]));
+
+ $this->bstream = $bs;
+ return 0;
+
+ } catch (Exception $e) {
+ return -1;
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public function estimateBitStreamSizeOfEntry($version)
+ {
+ $bits = 0;
+
+ if($version == 0)
+ $version = 1;
+
+ switch($this->mode) {
+ case QR_MODE_NUM: $bits = QRinput::estimateBitsModeNum($this->size); break;
+ case QR_MODE_AN: $bits = QRinput::estimateBitsModeAn($this->size); break;
+ case QR_MODE_8: $bits = QRinput::estimateBitsMode8($this->size); break;
+ case QR_MODE_KANJI: $bits = QRinput::estimateBitsModeKanji($this->size);break;
+ case QR_MODE_STRUCTURE: return STRUCTURE_HEADER_BITS;
+ default:
+ return 0;
+ }
+
+ $l = QRspec::lengthIndicator($this->mode, $version);
+ $m = 1 << $l;
+ $num = (int)(($this->size + $m - 1) / $m);
+
+ $bits += $num * (4 + $l);
+
+ return $bits;
+ }
+
+ //----------------------------------------------------------------------
+ public function encodeBitStream($version)
+ {
+ try {
+
+ unset($this->bstream);
+ $words = QRspec::maximumWords($this->mode, $version);
+
+ if($this->size > $words) {
+
+ $st1 = new QRinputItem($this->mode, $words, $this->data);
+ $st2 = new QRinputItem($this->mode, $this->size - $words, array_slice($this->data, $words));
+
+ $st1->encodeBitStream($version);
+ $st2->encodeBitStream($version);
+
+ $this->bstream = new QRbitstream();
+ $this->bstream->append($st1->bstream);
+ $this->bstream->append($st2->bstream);
+
+ unset($st1);
+ unset($st2);
+
+ } else {
+
+ $ret = 0;
+
+ switch($this->mode) {
+ case QR_MODE_NUM: $ret = $this->encodeModeNum($version); break;
+ case QR_MODE_AN: $ret = $this->encodeModeAn($version); break;
+ case QR_MODE_8: $ret = $this->encodeMode8($version); break;
+ case QR_MODE_KANJI: $ret = $this->encodeModeKanji($version);break;
+ case QR_MODE_STRUCTURE: $ret = $this->encodeModeStructure(); break;
+
+ default:
+ break;
+ }
+
+ if($ret < 0)
+ return -1;
+ }
+
+ return $this->bstream->size();
+
+ } catch (Exception $e) {
+ return -1;
+ }
+ }
+ };
+
+ //##########################################################################
+
+ class QRinput {
+
+ public $items;
+
+ private $version;
+ private $level;
+
+ //----------------------------------------------------------------------
+ public function __construct($version = 0, $level = QR_ECLEVEL_L)
+ {
+ if ($version < 0 || $version > QRSPEC_VERSION_MAX || $level > QR_ECLEVEL_H) {
+ throw new Exception('Invalid version no');
+ return NULL;
+ }
+
+ $this->version = $version;
+ $this->level = $level;
+ }
+
+ //----------------------------------------------------------------------
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ //----------------------------------------------------------------------
+ public function setVersion($version)
+ {
+ if($version < 0 || $version > QRSPEC_VERSION_MAX) {
+ throw new Exception('Invalid version no');
+ return -1;
+ }
+
+ $this->version = $version;
+
+ return 0;
+ }
+
+ //----------------------------------------------------------------------
+ public function getErrorCorrectionLevel()
+ {
+ return $this->level;
+ }
+
+ //----------------------------------------------------------------------
+ public function setErrorCorrectionLevel($level)
+ {
+ if($level > QR_ECLEVEL_H) {
+ throw new Exception('Invalid ECLEVEL');
+ return -1;
+ }
+
+ $this->level = $level;
+
+ return 0;
+ }
+
+ //----------------------------------------------------------------------
+ public function appendEntry(QRinputItem $entry)
+ {
+ $this->items[] = $entry;
+ }
+
+ //----------------------------------------------------------------------
+ public function append($mode, $size, $data)
+ {
+ try {
+ $entry = new QRinputItem($mode, $size, $data);
+ $this->items[] = $entry;
+ return 0;
+ } catch (Exception $e) {
+ return -1;
+ }
+ }
+
+ //----------------------------------------------------------------------
+
+ public function insertStructuredAppendHeader($size, $index, $parity)
+ {
+ if( $size > MAX_STRUCTURED_SYMBOLS ) {
+ throw new Exception('insertStructuredAppendHeader wrong size');
+ }
+
+ if( $index <= 0 || $index > MAX_STRUCTURED_SYMBOLS ) {
+ throw new Exception('insertStructuredAppendHeader wrong index');
+ }
+
+ $buf = array($size, $index, $parity);
+
+ try {
+ $entry = new QRinputItem(QR_MODE_STRUCTURE, 3, buf);
+ array_unshift($this->items, $entry);
+ return 0;
+ } catch (Exception $e) {
+ return -1;
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public function calcParity()
+ {
+ $parity = 0;
+
+ foreach($this->items as $item) {
+ if($item->mode != QR_MODE_STRUCTURE) {
+ for($i=$item->size-1; $i>=0; $i--) {
+ $parity ^= $item->data[$i];
+ }
+ }
+ }
+
+ return $parity;
+ }
+
+ //----------------------------------------------------------------------
+ public static function checkModeNum($size, $data)
+ {
+ for($i=0; $i<$size; $i++) {
+ if((ord($data[$i]) < ord('0')) || (ord($data[$i]) > ord('9'))){
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ //----------------------------------------------------------------------
+ public static function estimateBitsModeNum($size)
+ {
+ $w = (int)$size / 3;
+ $bits = $w * 10;
+
+ switch($size - $w * 3) {
+ case 1:
+ $bits += 4;
+ break;
+ case 2:
+ $bits += 7;
+ break;
+ default:
+ break;
+ }
+
+ return $bits;
+ }
+
+ //----------------------------------------------------------------------
+ public static $anTable = array(
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 36, -1, -1, -1, 37, 38, -1, -1, -1, -1, 39, 40, -1, 41, 42, 43,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 44, -1, -1, -1, -1, -1,
+ -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
+ );
+
+ //----------------------------------------------------------------------
+ public static function lookAnTable($c)
+ {
+ return (($c > 127)?-1:self::$anTable[$c]);
+ }
+
+ //----------------------------------------------------------------------
+ public static function checkModeAn($size, $data)
+ {
+ for($i=0; $i<$size; $i++) {
+ if (self::lookAnTable(ord($data[$i])) == -1) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ //----------------------------------------------------------------------
+ public static function estimateBitsModeAn($size)
+ {
+ $w = (int)($size / 2);
+ $bits = $w * 11;
+
+ if($size & 1) {
+ $bits += 6;
+ }
+
+ return $bits;
+ }
+
+ //----------------------------------------------------------------------
+ public static function estimateBitsMode8($size)
+ {
+ return $size * 8;
+ }
+
+ //----------------------------------------------------------------------
+ public function estimateBitsModeKanji($size)
+ {
+ return (int)(($size / 2) * 13);
+ }
+
+ //----------------------------------------------------------------------
+ public static function checkModeKanji($size, $data)
+ {
+ if($size & 1)
+ return false;
+
+ for($i=0; $i<$size; $i+=2) {
+ $val = (ord($data[$i]) << 8) | ord($data[$i+1]);
+ if( $val < 0x8140
+ || ($val > 0x9ffc && $val < 0xe040)
+ || $val > 0xebbf) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /***********************************************************************
+ * Validation
+ **********************************************************************/
+
+ public static function check($mode, $size, $data)
+ {
+ if($size <= 0)
+ return false;
+
+ switch($mode) {
+ case QR_MODE_NUM: return self::checkModeNum($size, $data); break;
+ case QR_MODE_AN: return self::checkModeAn($size, $data); break;
+ case QR_MODE_KANJI: return self::checkModeKanji($size, $data); break;
+ case QR_MODE_8: return true; break;
+ case QR_MODE_STRUCTURE: return true; break;
+
+ default:
+ break;
+ }
+
+ return false;
+ }
+
+
+ //----------------------------------------------------------------------
+ public function estimateBitStreamSize($version)
+ {
+ $bits = 0;
+
+ foreach($this->items as $item) {
+ $bits += $item->estimateBitStreamSizeOfEntry($version);
+ }
+
+ return $bits;
+ }
+
+ //----------------------------------------------------------------------
+ public function estimateVersion()
+ {
+ $version = 0;
+ $prev = 0;
+ do {
+ $prev = $version;
+ $bits = $this->estimateBitStreamSize($prev);
+ $version = QRspec::getMinimumVersion((int)(($bits + 7) / 8), $this->level);
+ if ($version < 0) {
+ return -1;
+ }
+ } while ($version > $prev);
+
+ return $version;
+ }
+
+ //----------------------------------------------------------------------
+ public static function lengthOfCode($mode, $version, $bits)
+ {
+ $payload = $bits - 4 - QRspec::lengthIndicator($mode, $version);
+ switch($mode) {
+ case QR_MODE_NUM:
+ $chunks = (int)($payload / 10);
+ $remain = $payload - $chunks * 10;
+ $size = $chunks * 3;
+ if($remain >= 7) {
+ $size += 2;
+ } else if($remain >= 4) {
+ $size += 1;
+ }
+ break;
+ case QR_MODE_AN:
+ $chunks = (int)($payload / 11);
+ $remain = $payload - $chunks * 11;
+ $size = $chunks * 2;
+ if($remain >= 6)
+ $size++;
+ break;
+ case QR_MODE_8:
+ $size = (int)($payload / 8);
+ break;
+ case QR_MODE_KANJI:
+ $size = (int)(($payload / 13) * 2);
+ break;
+ case QR_MODE_STRUCTURE:
+ $size = (int)($payload / 8);
+ break;
+ default:
+ $size = 0;
+ break;
+ }
+
+ $maxsize = QRspec::maximumWords($mode, $version);
+ if($size < 0) $size = 0;
+ if($size > $maxsize) $size = $maxsize;
+
+ return $size;
+ }
+
+ //----------------------------------------------------------------------
+ public function createBitStream()
+ {
+ $total = 0;
+
+ foreach($this->items as $item) {
+ $bits = $item->encodeBitStream($this->version);
+
+ if($bits < 0)
+ return -1;
+
+ $total += $bits;
+ }
+
+ return $total;
+ }
+
+ //----------------------------------------------------------------------
+ public function convertData()
+ {
+ $ver = $this->estimateVersion();
+ if($ver > $this->getVersion()) {
+ $this->setVersion($ver);
+ }
+
+ for(;;) {
+ $bits = $this->createBitStream();
+
+ if($bits < 0)
+ return -1;
+
+ $ver = QRspec::getMinimumVersion((int)(($bits + 7) / 8), $this->level);
+ if($ver < 0) {
+ throw new Exception('WRONG VERSION');
+ return -1;
+ } else if($ver > $this->getVersion()) {
+ $this->setVersion($ver);
+ } else {
+ break;
+ }
+ }
+
+ return 0;
+ }
+
+ //----------------------------------------------------------------------
+ public function appendPaddingBit(&$bstream)
+ {
+ $bits = $bstream->size();
+ $maxwords = QRspec::getDataLength($this->version, $this->level);
+ $maxbits = $maxwords * 8;
+
+ if ($maxbits == $bits) {
+ return 0;
+ }
+
+ if ($maxbits - $bits < 5) {
+ return $bstream->appendNum($maxbits - $bits, 0);
+ }
+
+ $bits += 4;
+ $words = (int)(($bits + 7) / 8);
+
+ $padding = new QRbitstream();
+ $ret = $padding->appendNum($words * 8 - $bits + 4, 0);
+
+ if($ret < 0)
+ return $ret;
+
+ $padlen = $maxwords - $words;
+
+ if($padlen > 0) {
+
+ $padbuf = array();
+ for($i=0; $i<$padlen; $i++) {
+ $padbuf[$i] = ($i&1)?0x11:0xec;
+ }
+
+ $ret = $padding->appendBytes($padlen, $padbuf);
+
+ if($ret < 0)
+ return $ret;
+
+ }
+
+ $ret = $bstream->append($padding);
+
+ return $ret;
+ }
+
+ //----------------------------------------------------------------------
+ public function mergeBitStream()
+ {
+ if($this->convertData() < 0) {
+ return null;
+ }
+
+ $bstream = new QRbitstream();
+
+ foreach($this->items as $item) {
+ $ret = $bstream->append($item->bstream);
+ if($ret < 0) {
+ return null;
+ }
+ }
+
+ return $bstream;
+ }
+
+ //----------------------------------------------------------------------
+ public function getBitStream()
+ {
+
+ $bstream = $this->mergeBitStream();
+
+ if($bstream == null) {
+ return null;
+ }
+
+ $ret = $this->appendPaddingBit($bstream);
+ if($ret < 0) {
+ return null;
+ }
+
+ return $bstream;
+ }
+
+ //----------------------------------------------------------------------
+ public function getByteStream()
+ {
+ $bstream = $this->getBitStream();
+ if($bstream == null) {
+ return null;
+ }
+
+ return $bstream->toByte();
+ }
+ }
+
+
+
+
+
+
+//---- qrbitstream.php -----------------------------
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * Bitstream class
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ class QRbitstream {
+
+ public $data = array();
+
+ //----------------------------------------------------------------------
+ public function size()
+ {
+ return count($this->data);
+ }
+
+ //----------------------------------------------------------------------
+ public function allocate($setLength)
+ {
+ $this->data = array_fill(0, $setLength, 0);
+ return 0;
+ }
+
+ //----------------------------------------------------------------------
+ public static function newFromNum($bits, $num)
+ {
+ $bstream = new QRbitstream();
+ $bstream->allocate($bits);
+
+ $mask = 1 << ($bits - 1);
+ for($i=0; $i<$bits; $i++) {
+ if($num & $mask) {
+ $bstream->data[$i] = 1;
+ } else {
+ $bstream->data[$i] = 0;
+ }
+ $mask = $mask >> 1;
+ }
+
+ return $bstream;
+ }
+
+ //----------------------------------------------------------------------
+ public static function newFromBytes($size, $data)
+ {
+ $bstream = new QRbitstream();
+ $bstream->allocate($size * 8);
+ $p=0;
+
+ for($i=0; $i<$size; $i++) {
+ $mask = 0x80;
+ for($j=0; $j<8; $j++) {
+ if($data[$i] & $mask) {
+ $bstream->data[$p] = 1;
+ } else {
+ $bstream->data[$p] = 0;
+ }
+ $p++;
+ $mask = $mask >> 1;
+ }
+ }
+
+ return $bstream;
+ }
+
+ //----------------------------------------------------------------------
+ public function append(QRbitstream $arg)
+ {
+ if (is_null($arg)) {
+ return -1;
+ }
+
+ if($arg->size() == 0) {
+ return 0;
+ }
+
+ if($this->size() == 0) {
+ $this->data = $arg->data;
+ return 0;
+ }
+
+ $this->data = array_values(array_merge($this->data, $arg->data));
+
+ return 0;
+ }
+
+ //----------------------------------------------------------------------
+ public function appendNum($bits, $num)
+ {
+ if ($bits == 0)
+ return 0;
+
+ $b = QRbitstream::newFromNum($bits, $num);
+
+ if(is_null($b))
+ return -1;
+
+ $ret = $this->append($b);
+ unset($b);
+
+ return $ret;
+ }
+
+ //----------------------------------------------------------------------
+ public function appendBytes($size, $data)
+ {
+ if ($size == 0)
+ return 0;
+
+ $b = QRbitstream::newFromBytes($size, $data);
+
+ if(is_null($b))
+ return -1;
+
+ $ret = $this->append($b);
+ unset($b);
+
+ return $ret;
+ }
+
+ //----------------------------------------------------------------------
+ public function toByte()
+ {
+
+ $size = $this->size();
+
+ if($size == 0) {
+ return array();
+ }
+
+ $data = array_fill(0, (int)(($size + 7) / 8), 0);
+ $bytes = (int)($size / 8);
+
+ $p = 0;
+
+ for($i=0; $i<$bytes; $i++) {
+ $v = 0;
+ for($j=0; $j<8; $j++) {
+ $v = $v << 1;
+ $v |= $this->data[$p];
+ $p++;
+ }
+ $data[$i] = $v;
+ }
+
+ if($size & 7) {
+ $v = 0;
+ for($j=0; $j<($size & 7); $j++) {
+ $v = $v << 1;
+ $v |= $this->data[$p];
+ $p++;
+ }
+ $data[$bytes] = $v;
+ }
+
+ return $data;
+ }
+
+ }
+
+
+
+
+//---- qrsplit.php -----------------------------
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * Input splitting classes
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * The following data / specifications are taken from
+ * "Two dimensional symbol -- QR-code -- Basic Specification" (JIS X0510:2004)
+ * or
+ * "Automatic identification and data capture techniques --
+ * QR Code 2005 bar code symbology specification" (ISO/IEC 18004:2006)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+ class QRsplit {
+
+ public $dataStr = '';
+ public $input;
+ public $modeHint;
+
+ //----------------------------------------------------------------------
+ public function __construct($dataStr, $input, $modeHint)
+ {
+ $this->dataStr = $dataStr;
+ $this->input = $input;
+ $this->modeHint = $modeHint;
+ }
+
+ //----------------------------------------------------------------------
+ public static function isdigitat($str, $pos)
+ {
+ if ($pos >= strlen($str))
+ return false;
+
+ return ((ord($str[$pos]) >= ord('0'))&&(ord($str[$pos]) <= ord('9')));
+ }
+
+ //----------------------------------------------------------------------
+ public static function isalnumat($str, $pos)
+ {
+ if ($pos >= strlen($str))
+ return false;
+
+ return (QRinput::lookAnTable(ord($str[$pos])) >= 0);
+ }
+
+ //----------------------------------------------------------------------
+ public function identifyMode($pos)
+ {
+ if ($pos >= strlen($this->dataStr))
+ return QR_MODE_NUL;
+
+ $c = $this->dataStr[$pos];
+
+ if(self::isdigitat($this->dataStr, $pos)) {
+ return QR_MODE_NUM;
+ } else if(self::isalnumat($this->dataStr, $pos)) {
+ return QR_MODE_AN;
+ } else if($this->modeHint == QR_MODE_KANJI) {
+
+ if ($pos+1 < strlen($this->dataStr))
+ {
+ $d = $this->dataStr[$pos+1];
+ $word = (ord($c) << 8) | ord($d);
+ if(($word >= 0x8140 && $word <= 0x9ffc) || ($word >= 0xe040 && $word <= 0xebbf)) {
+ return QR_MODE_KANJI;
+ }
+ }
+ }
+
+ return QR_MODE_8;
+ }
+
+ //----------------------------------------------------------------------
+ public function eatNum()
+ {
+ $ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
+
+ $p = 0;
+ while(self::isdigitat($this->dataStr, $p)) {
+ $p++;
+ }
+
+ $run = $p;
+ $mode = $this->identifyMode($p);
+
+ if($mode == QR_MODE_8) {
+ $dif = QRinput::estimateBitsModeNum($run) + 4 + $ln
+ + QRinput::estimateBitsMode8(1) // + 4 + l8
+ - QRinput::estimateBitsMode8($run + 1); // - 4 - l8
+ if($dif > 0) {
+ return $this->eat8();
+ }
+ }
+ if($mode == QR_MODE_AN) {
+ $dif = QRinput::estimateBitsModeNum($run) + 4 + $ln
+ + QRinput::estimateBitsModeAn(1) // + 4 + la
+ - QRinput::estimateBitsModeAn($run + 1);// - 4 - la
+ if($dif > 0) {
+ return $this->eatAn();
+ }
+ }
+
+ $ret = $this->input->append(QR_MODE_NUM, $run, str_split($this->dataStr));
+ if($ret < 0)
+ return -1;
+
+ return $run;
+ }
+
+ //----------------------------------------------------------------------
+ public function eatAn()
+ {
+ $la = QRspec::lengthIndicator(QR_MODE_AN, $this->input->getVersion());
+ $ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
+
+ $p = 0;
+
+ while(self::isalnumat($this->dataStr, $p)) {
+ if(self::isdigitat($this->dataStr, $p)) {
+ $q = $p;
+ while(self::isdigitat($this->dataStr, $q)) {
+ $q++;
+ }
+
+ $dif = QRinput::estimateBitsModeAn($p) // + 4 + la
+ + QRinput::estimateBitsModeNum($q - $p) + 4 + $ln
+ - QRinput::estimateBitsModeAn($q); // - 4 - la
+
+ if($dif < 0) {
+ break;
+ } else {
+ $p = $q;
+ }
+ } else {
+ $p++;
+ }
+ }
+
+ $run = $p;
+
+ if(!self::isalnumat($this->dataStr, $p)) {
+ $dif = QRinput::estimateBitsModeAn($run) + 4 + $la
+ + QRinput::estimateBitsMode8(1) // + 4 + l8
+ - QRinput::estimateBitsMode8($run + 1); // - 4 - l8
+ if($dif > 0) {
+ return $this->eat8();
+ }
+ }
+
+ $ret = $this->input->append(QR_MODE_AN, $run, str_split($this->dataStr));
+ if($ret < 0)
+ return -1;
+
+ return $run;
+ }
+
+ //----------------------------------------------------------------------
+ public function eatKanji()
+ {
+ $p = 0;
+
+ while($this->identifyMode($p) == QR_MODE_KANJI) {
+ $p += 2;
+ }
+
+ $ret = $this->input->append(QR_MODE_KANJI, $p, str_split($this->dataStr));
+ if($ret < 0)
+ return -1;
+
+ return $run;
+ }
+
+ //----------------------------------------------------------------------
+ public function eat8()
+ {
+ $la = QRspec::lengthIndicator(QR_MODE_AN, $this->input->getVersion());
+ $ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
+
+ $p = 1;
+ $dataStrLen = strlen($this->dataStr);
+
+ while($p < $dataStrLen) {
+
+ $mode = $this->identifyMode($p);
+ if($mode == QR_MODE_KANJI) {
+ break;
+ }
+ if($mode == QR_MODE_NUM) {
+ $q = $p;
+ while(self::isdigitat($this->dataStr, $q)) {
+ $q++;
+ }
+ $dif = QRinput::estimateBitsMode8($p) // + 4 + l8
+ + QRinput::estimateBitsModeNum($q - $p) + 4 + $ln
+ - QRinput::estimateBitsMode8($q); // - 4 - l8
+ if($dif < 0) {
+ break;
+ } else {
+ $p = $q;
+ }
+ } else if($mode == QR_MODE_AN) {
+ $q = $p;
+ while(self::isalnumat($this->dataStr, $q)) {
+ $q++;
+ }
+ $dif = QRinput::estimateBitsMode8($p) // + 4 + l8
+ + QRinput::estimateBitsModeAn($q - $p) + 4 + $la
+ - QRinput::estimateBitsMode8($q); // - 4 - l8
+ if($dif < 0) {
+ break;
+ } else {
+ $p = $q;
+ }
+ } else {
+ $p++;
+ }
+ }
+
+ $run = $p;
+ $ret = $this->input->append(QR_MODE_8, $run, str_split($this->dataStr));
+
+ if($ret < 0)
+ return -1;
+
+ return $run;
+ }
+
+ //----------------------------------------------------------------------
+ public function splitString()
+ {
+ while (strlen($this->dataStr) > 0)
+ {
+ if($this->dataStr == '')
+ return 0;
+
+ $mode = $this->identifyMode(0);
+
+ switch ($mode) {
+ case QR_MODE_NUM: $length = $this->eatNum(); break;
+ case QR_MODE_AN: $length = $this->eatAn(); break;
+ case QR_MODE_KANJI:
+ if ($hint == QR_MODE_KANJI)
+ $length = $this->eatKanji();
+ else $length = $this->eat8();
+ break;
+ default: $length = $this->eat8(); break;
+
+ }
+
+ if($length == 0) return 0;
+ if($length < 0) return -1;
+
+ $this->dataStr = substr($this->dataStr, $length);
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public function toUpper()
+ {
+ $stringLen = strlen($this->dataStr);
+ $p = 0;
+
+ while ($p<$stringLen) {
+ $mode = self::identifyMode(substr($this->dataStr, $p), $this->modeHint);
+ if($mode == QR_MODE_KANJI) {
+ $p += 2;
+ } else {
+ if (ord($this->dataStr[$p]) >= ord('a') && ord($this->dataStr[$p]) <= ord('z')) {
+ $this->dataStr[$p] = chr(ord($this->dataStr[$p]) - 32);
+ }
+ $p++;
+ }
+ }
+
+ return $this->dataStr;
+ }
+
+ //----------------------------------------------------------------------
+ public static function splitStringToQRinput($string, QRinput $input, $modeHint, $casesensitive = true)
+ {
+ if(is_null($string) || $string == '\0' || $string == '') {
+ throw new Exception('empty string!!!');
+ }
+
+ $split = new QRsplit($string, $input, $modeHint);
+
+ if(!$casesensitive)
+ $split->toUpper();
+
+ return $split->splitString();
+ }
+ }
+
+
+
+//---- qrrscode.php -----------------------------
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * Reed-Solomon error correction support
+ *
+ * Copyright (C) 2002, 2003, 2004, 2006 Phil Karn, KA9Q
+ * (libfec is released under the GNU Lesser General Public License.)
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ class QRrsItem {
+
+ public $mm; // Bits per symbol
+ public $nn; // Symbols per block (= (1<<mm)-1)
+ public $alpha_to = array(); // log lookup table
+ public $index_of = array(); // Antilog lookup table
+ public $genpoly = array(); // Generator polynomial
+ public $nroots; // Number of generator roots = number of parity symbols
+ public $fcr; // First consecutive root, index form
+ public $prim; // Primitive element, index form
+ public $iprim; // prim-th root of 1, index form
+ public $pad; // Padding bytes in shortened block
+ public $gfpoly;
+
+ //----------------------------------------------------------------------
+ public function modnn($x)
+ {
+ while ($x >= $this->nn) {
+ $x -= $this->nn;
+ $x = ($x >> $this->mm) + ($x & $this->nn);
+ }
+
+ return $x;
+ }
+
+ //----------------------------------------------------------------------
+ public static function init_rs_char($symsize, $gfpoly, $fcr, $prim, $nroots, $pad)
+ {
+ // Common code for intializing a Reed-Solomon control block (char or int symbols)
+ // Copyright 2004 Phil Karn, KA9Q
+ // May be used under the terms of the GNU Lesser General Public License (LGPL)
+
+ $rs = null;
+
+ // Check parameter ranges
+ if($symsize < 0 || $symsize > 8) return $rs;
+ if($fcr < 0 || $fcr >= (1<<$symsize)) return $rs;
+ if($prim <= 0 || $prim >= (1<<$symsize)) return $rs;
+ if($nroots < 0 || $nroots >= (1<<$symsize)) return $rs; // Can't have more roots than symbol values!
+ if($pad < 0 || $pad >= ((1<<$symsize) -1 - $nroots)) return $rs; // Too much padding
+
+ $rs = new QRrsItem();
+ $rs->mm = $symsize;
+ $rs->nn = (1<<$symsize)-1;
+ $rs->pad = $pad;
+
+ $rs->alpha_to = array_fill(0, $rs->nn+1, 0);
+ $rs->index_of = array_fill(0, $rs->nn+1, 0);
+
+ // PHP style macro replacement ;)
+ $NN =& $rs->nn;
+ $A0 =& $NN;
+
+ // Generate Galois field lookup tables
+ $rs->index_of[0] = $A0; // log(zero) = -inf
+ $rs->alpha_to[$A0] = 0; // alpha**-inf = 0
+ $sr = 1;
+
+ for($i=0; $i<$rs->nn; $i++) {
+ $rs->index_of[$sr] = $i;
+ $rs->alpha_to[$i] = $sr;
+ $sr <<= 1;
+ if($sr & (1<<$symsize)) {
+ $sr ^= $gfpoly;
+ }
+ $sr &= $rs->nn;
+ }
+
+ if($sr != 1){
+ // field generator polynomial is not primitive!
+ $rs = NULL;
+ return $rs;
+ }
+
+ /* Form RS code generator polynomial from its roots */
+ $rs->genpoly = array_fill(0, $nroots+1, 0);
+
+ $rs->fcr = $fcr;
+ $rs->prim = $prim;
+ $rs->nroots = $nroots;
+ $rs->gfpoly = $gfpoly;
+
+ /* Find prim-th root of 1, used in decoding */
+ for($iprim=1;($iprim % $prim) != 0;$iprim += $rs->nn)
+ ; // intentional empty-body loop!
+
+ $rs->iprim = (int)($iprim / $prim);
+ $rs->genpoly[0] = 1;
+
+ for ($i = 0,$root=$fcr*$prim; $i < $nroots; $i++, $root += $prim) {
+ $rs->genpoly[$i+1] = 1;
+
+ // Multiply rs->genpoly[] by @**(root + x)
+ for ($j = $i; $j > 0; $j--) {
+ if ($rs->genpoly[$j] != 0) {
+ $rs->genpoly[$j] = $rs->genpoly[$j-1] ^ $rs->alpha_to[$rs->modnn($rs->index_of[$rs->genpoly[$j]] + $root)];
+ } else {
+ $rs->genpoly[$j] = $rs->genpoly[$j-1];
+ }
+ }
+ // rs->genpoly[0] can never be zero
+ $rs->genpoly[0] = $rs->alpha_to[$rs->modnn($rs->index_of[$rs->genpoly[0]] + $root)];
+ }
+
+ // convert rs->genpoly[] to index form for quicker encoding
+ for ($i = 0; $i <= $nroots; $i++)
+ $rs->genpoly[$i] = $rs->index_of[$rs->genpoly[$i]];
+
+ return $rs;
+ }
+
+ //----------------------------------------------------------------------
+ public function encode_rs_char($data, &$parity)
+ {
+ $MM =& $this->mm;
+ $NN =& $this->nn;
+ $ALPHA_TO =& $this->alpha_to;
+ $INDEX_OF =& $this->index_of;
+ $GENPOLY =& $this->genpoly;
+ $NROOTS =& $this->nroots;
+ $FCR =& $this->fcr;
+ $PRIM =& $this->prim;
+ $IPRIM =& $this->iprim;
+ $PAD =& $this->pad;
+ $A0 =& $NN;
+
+ $parity = array_fill(0, $NROOTS, 0);
+
+ for($i=0; $i< ($NN-$NROOTS-$PAD); $i++) {
+
+ $feedback = $INDEX_OF[$data[$i] ^ $parity[0]];
+ if($feedback != $A0) {
+ // feedback term is non-zero
+
+ // This line is unnecessary when GENPOLY[NROOTS] is unity, as it must
+ // always be for the polynomials constructed by init_rs()
+ $feedback = $this->modnn($NN - $GENPOLY[$NROOTS] + $feedback);
+
+ for($j=1;$j<$NROOTS;$j++) {
+ $parity[$j] ^= $ALPHA_TO[$this->modnn($feedback + $GENPOLY[$NROOTS-$j])];
+ }
+ }
+
+ // Shift
+ array_shift($parity);
+ if($feedback != $A0) {
+ array_push($parity, $ALPHA_TO[$this->modnn($feedback + $GENPOLY[0])]);
+ } else {
+ array_push($parity, 0);
+ }
+ }
+ }
+ }
+
+ //##########################################################################
+
+ class QRrs {
+
+ public static $items = array();
+
+ //----------------------------------------------------------------------
+ public static function init_rs($symsize, $gfpoly, $fcr, $prim, $nroots, $pad)
+ {
+ foreach(self::$items as $rs) {
+ if($rs->pad != $pad) continue;
+ if($rs->nroots != $nroots) continue;
+ if($rs->mm != $symsize) continue;
+ if($rs->gfpoly != $gfpoly) continue;
+ if($rs->fcr != $fcr) continue;
+ if($rs->prim != $prim) continue;
+
+ return $rs;
+ }
+
+ $rs = QRrsItem::init_rs_char($symsize, $gfpoly, $fcr, $prim, $nroots, $pad);
+ array_unshift(self::$items, $rs);
+
+ return $rs;
+ }
+ }
+
+
+
+//---- qrmask.php -----------------------------
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * Masking
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ define('N1', 3);
+ define('N2', 3);
+ define('N3', 40);
+ define('N4', 10);
+
+ class QRmask {
+
+ public $runLength = array();
+
+ //----------------------------------------------------------------------
+ public function __construct()
+ {
+ $this->runLength = array_fill(0, QRSPEC_WIDTH_MAX + 1, 0);
+ }
+
+ //----------------------------------------------------------------------
+ public function writeFormatInformation($width, &$frame, $mask, $level)
+ {
+ $blacks = 0;
+ $format = QRspec::getFormatInfo($mask, $level);
+
+ for($i=0; $i<8; $i++) {
+ if($format & 1) {
+ $blacks += 2;
+ $v = 0x85;
+ } else {
+ $v = 0x84;
+ }
+
+ $frame[8][$width - 1 - $i] = chr($v);
+ if($i < 6) {
+ $frame[$i][8] = chr($v);
+ } else {
+ $frame[$i + 1][8] = chr($v);
+ }
+ $format = $format >> 1;
+ }
+
+ for($i=0; $i<7; $i++) {
+ if($format & 1) {
+ $blacks += 2;
+ $v = 0x85;
+ } else {
+ $v = 0x84;
+ }
+
+ $frame[$width - 7 + $i][8] = chr($v);
+ if($i == 0) {
+ $frame[8][7] = chr($v);
+ } else {
+ $frame[8][6 - $i] = chr($v);
+ }
+
+ $format = $format >> 1;
+ }
+
+ return $blacks;
+ }
+
+ //----------------------------------------------------------------------
+ public function mask0($x, $y) { return ($x+$y)&1; }
+ public function mask1($x, $y) { return ($y&1); }
+ public function mask2($x, $y) { return ($x%3); }
+ public function mask3($x, $y) { return ($x+$y)%3; }
+ public function mask4($x, $y) { return (((int)($y/2))+((int)($x/3)))&1; }
+ public function mask5($x, $y) { return (($x*$y)&1)+($x*$y)%3; }
+ public function mask6($x, $y) { return ((($x*$y)&1)+($x*$y)%3)&1; }
+ public function mask7($x, $y) { return ((($x*$y)%3)+(($x+$y)&1))&1; }
+
+ //----------------------------------------------------------------------
+ private function generateMaskNo($maskNo, $width, $frame)
+ {
+ $bitMask = array_fill(0, $width, array_fill(0, $width, 0));
+
+ for($y=0; $y<$width; $y++) {
+ for($x=0; $x<$width; $x++) {
+ if(ord($frame[$y][$x]) & 0x80) {
+ $bitMask[$y][$x] = 0;
+ } else {
+ $maskFunc = call_user_func(array($this, 'mask'.$maskNo), $x, $y);
+ $bitMask[$y][$x] = ($maskFunc == 0)?1:0;
+ }
+
+ }
+ }
+
+ return $bitMask;
+ }
+
+ //----------------------------------------------------------------------
+ public static function serial($bitFrame)
+ {
+ $codeArr = array();
+
+ foreach ($bitFrame as $line)
+ $codeArr[] = join('', $line);
+
+ return gzcompress(join("\n", $codeArr), 9);
+ }
+
+ //----------------------------------------------------------------------
+ public static function unserial($code)
+ {
+ $codeArr = array();
+
+ $codeLines = explode("\n", gzuncompress($code));
+ foreach ($codeLines as $line)
+ $codeArr[] = str_split($line);
+
+ return $codeArr;
+ }
+
+ //----------------------------------------------------------------------
+ public function makeMaskNo($maskNo, $width, $s, &$d, $maskGenOnly = false)
+ {
+ $b = 0;
+ $bitMask = array();
+
+ $fileName = QR_CACHE_DIR.'mask_'.$maskNo.DIRECTORY_SEPARATOR.'mask_'.$width.'_'.$maskNo.'.dat';
+
+ if (QR_CACHEABLE) {
+ if (file_exists($fileName)) {
+ $bitMask = self::unserial(file_get_contents($fileName));
+ } else {
+ $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d);
+ if (!file_exists(QR_CACHE_DIR.'mask_'.$maskNo))
+ mkdir(QR_CACHE_DIR.'mask_'.$maskNo);
+ file_put_contents($fileName, self::serial($bitMask));
+ }
+ } else {
+ $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d);
+ }
+
+ if ($maskGenOnly)
+ return;
+
+ $d = $s;
+
+ for($y=0; $y<$width; $y++) {
+ for($x=0; $x<$width; $x++) {
+ if($bitMask[$y][$x] == 1) {
+ $d[$y][$x] = chr(ord($s[$y][$x]) ^ (int)$bitMask[$y][$x]);
+ }
+ $b += (int)(ord($d[$y][$x]) & 1);
+ }
+ }
+
+ return $b;
+ }
+
+ //----------------------------------------------------------------------
+ public function makeMask($width, $frame, $maskNo, $level)
+ {
+ $masked = array_fill(0, $width, str_repeat("\0", $width));
+ $this->makeMaskNo($maskNo, $width, $frame, $masked);
+ $this->writeFormatInformation($width, $masked, $maskNo, $level);
+
+ return $masked;
+ }
+
+ //----------------------------------------------------------------------
+ public function calcN1N3($length)
+ {
+ $demerit = 0;
+
+ for($i=0; $i<$length; $i++) {
+
+ if($this->runLength[$i] >= 5) {
+ $demerit += (N1 + ($this->runLength[$i] - 5));
+ }
+ if($i & 1) {
+ if(($i >= 3) && ($i < ($length-2)) && ($this->runLength[$i] % 3 == 0)) {
+ $fact = (int)($this->runLength[$i] / 3);
+ if(($this->runLength[$i-2] == $fact) &&
+ ($this->runLength[$i-1] == $fact) &&
+ ($this->runLength[$i+1] == $fact) &&
+ ($this->runLength[$i+2] == $fact)) {
+ if(($this->runLength[$i-3] < 0) || ($this->runLength[$i-3] >= (4 * $fact))) {
+ $demerit += N3;
+ } else if((($i+3) >= $length) || ($this->runLength[$i+3] >= (4 * $fact))) {
+ $demerit += N3;
+ }
+ }
+ }
+ }
+ }
+ return $demerit;
+ }
+
+ //----------------------------------------------------------------------
+ public function evaluateSymbol($width, $frame)
+ {
+ $head = 0;
+ $demerit = 0;
+
+ for($y=0; $y<$width; $y++) {
+ $head = 0;
+ $this->runLength[0] = 1;
+
+ $frameY = $frame[$y];
+
+ if ($y>0)
+ $frameYM = $frame[$y-1];
+
+ for($x=0; $x<$width; $x++) {
+ if(($x > 0) && ($y > 0)) {
+ $b22 = ord($frameY[$x]) & ord($frameY[$x-1]) & ord($frameYM[$x]) & ord($frameYM[$x-1]);
+ $w22 = ord($frameY[$x]) | ord($frameY[$x-1]) | ord($frameYM[$x]) | ord($frameYM[$x-1]);
+
+ if(($b22 | ($w22 ^ 1))&1) {
+ $demerit += N2;
+ }
+ }
+ if(($x == 0) && (ord($frameY[$x]) & 1)) {
+ $this->runLength[0] = -1;
+ $head = 1;
+ $this->runLength[$head] = 1;
+ } else if($x > 0) {
+ if((ord($frameY[$x]) ^ ord($frameY[$x-1])) & 1) {
+ $head++;
+ $this->runLength[$head] = 1;
+ } else {
+ $this->runLength[$head]++;
+ }
+ }
+ }
+
+ $demerit += $this->calcN1N3($head+1);
+ }
+
+ for($x=0; $x<$width; $x++) {
+ $head = 0;
+ $this->runLength[0] = 1;
+
+ for($y=0; $y<$width; $y++) {
+ if($y == 0 && (ord($frame[$y][$x]) & 1)) {
+ $this->runLength[0] = -1;
+ $head = 1;
+ $this->runLength[$head] = 1;
+ } else if($y > 0) {
+ if((ord($frame[$y][$x]) ^ ord($frame[$y-1][$x])) & 1) {
+ $head++;
+ $this->runLength[$head] = 1;
+ } else {
+ $this->runLength[$head]++;
+ }
+ }
+ }
+
+ $demerit += $this->calcN1N3($head+1);
+ }
+
+ return $demerit;
+ }
+
+
+ //----------------------------------------------------------------------
+ public function mask($width, $frame, $level)
+ {
+ $minDemerit = PHP_INT_MAX;
+ $bestMaskNum = 0;
+ $bestMask = array();
+
+ $checked_masks = array(0,1,2,3,4,5,6,7);
+
+ if (QR_FIND_FROM_RANDOM !== false) {
+
+ $howManuOut = 8-(QR_FIND_FROM_RANDOM % 9);
+ for ($i = 0; $i < $howManuOut; $i++) {
+ $remPos = rand (0, count($checked_masks)-1);
+ unset($checked_masks[$remPos]);
+ $checked_masks = array_values($checked_masks);
+ }
+
+ }
+
+ $bestMask = $frame;
+
+ foreach($checked_masks as $i) {
+ $mask = array_fill(0, $width, str_repeat("\0", $width));
+
+ $demerit = 0;
+ $blacks = 0;
+ $blacks = $this->makeMaskNo($i, $width, $frame, $mask);
+ $blacks += $this->writeFormatInformation($width, $mask, $i, $level);
+ $blacks = (int)(100 * $blacks / ($width * $width));
+ $demerit = (int)((int)(abs($blacks - 50) / 5) * N4);
+ $demerit += $this->evaluateSymbol($width, $mask);
+
+ if($demerit < $minDemerit) {
+ $minDemerit = $demerit;
+ $bestMask = $mask;
+ $bestMaskNum = $i;
+ }
+ }
+
+ return $bestMask;
+ }
+
+ //----------------------------------------------------------------------
+ }
+
+
+
+
+//---- qrencode.php -----------------------------
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * Main encoder classes.
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ class QRrsblock {
+ public $dataLength;
+ public $data = array();
+ public $eccLength;
+ public $ecc = array();
+
+ public function __construct($dl, $data, $el, &$ecc, QRrsItem $rs)
+ {
+ $rs->encode_rs_char($data, $ecc);
+
+ $this->dataLength = $dl;
+ $this->data = $data;
+ $this->eccLength = $el;
+ $this->ecc = $ecc;
+ }
+ };
+
+ //##########################################################################
+
+ class QRrawcode {
+ public $version;
+ public $datacode = array();
+ public $ecccode = array();
+ public $blocks;
+ public $rsblocks = array(); //of RSblock
+ public $count;
+ public $dataLength;
+ public $eccLength;
+ public $b1;
+
+ //----------------------------------------------------------------------
+ public function __construct(QRinput $input)
+ {
+ $spec = array(0,0,0,0,0);
+
+ $this->datacode = $input->getByteStream();
+ if(is_null($this->datacode)) {
+ throw new Exception('null imput string');
+ }
+
+ QRspec::getEccSpec($input->getVersion(), $input->getErrorCorrectionLevel(), $spec);
+
+ $this->version = $input->getVersion();
+ $this->b1 = QRspec::rsBlockNum1($spec);
+ $this->dataLength = QRspec::rsDataLength($spec);
+ $this->eccLength = QRspec::rsEccLength($spec);
+ $this->ecccode = array_fill(0, $this->eccLength, 0);
+ $this->blocks = QRspec::rsBlockNum($spec);
+
+ $ret = $this->init($spec);
+ if($ret < 0) {
+ throw new Exception('block alloc error');
+ return null;
+ }
+
+ $this->count = 0;
+ }
+
+ //----------------------------------------------------------------------
+ public function init(array $spec)
+ {
+ $dl = QRspec::rsDataCodes1($spec);
+ $el = QRspec::rsEccCodes1($spec);
+ $rs = QRrs::init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el);
+
+
+ $blockNo = 0;
+ $dataPos = 0;
+ $eccPos = 0;
+ for($i=0; $i<QRspec::rsBlockNum1($spec); $i++) {
+ $ecc = array_slice($this->ecccode,$eccPos);
+ $this->rsblocks[$blockNo] = new QRrsblock($dl, array_slice($this->datacode, $dataPos), $el, $ecc, $rs);
+ $this->ecccode = array_merge(array_slice($this->ecccode,0, $eccPos), $ecc);
+
+ $dataPos += $dl;
+ $eccPos += $el;
+ $blockNo++;
+ }
+
+ if(QRspec::rsBlockNum2($spec) == 0)
+ return 0;
+
+ $dl = QRspec::rsDataCodes2($spec);
+ $el = QRspec::rsEccCodes2($spec);
+ $rs = QRrs::init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el);
+
+ if($rs == NULL) return -1;
+
+ for($i=0; $i<QRspec::rsBlockNum2($spec); $i++) {
+ $ecc = array_slice($this->ecccode,$eccPos);
+ $this->rsblocks[$blockNo] = new QRrsblock($dl, array_slice($this->datacode, $dataPos), $el, $ecc, $rs);
+ $this->ecccode = array_merge(array_slice($this->ecccode,0, $eccPos), $ecc);
+
+ $dataPos += $dl;
+ $eccPos += $el;
+ $blockNo++;
+ }
+
+ return 0;
+ }
+
+ //----------------------------------------------------------------------
+ public function getCode()
+ {
+ $ret;
+
+ if($this->count < $this->dataLength) {
+ $row = $this->count % $this->blocks;
+ $col = $this->count / $this->blocks;
+ if($col >= $this->rsblocks[0]->dataLength) {
+ $row += $this->b1;
+ }
+ $ret = $this->rsblocks[$row]->data[$col];
+ } else if($this->count < $this->dataLength + $this->eccLength) {
+ $row = ($this->count - $this->dataLength) % $this->blocks;
+ $col = ($this->count - $this->dataLength) / $this->blocks;
+ $ret = $this->rsblocks[$row]->ecc[$col];
+ } else {
+ return 0;
+ }
+ $this->count++;
+
+ return $ret;
+ }
+ }
+
+ //##########################################################################
+
+ class QRcode {
+
+ public $version;
+ public $width;
+ public $data;
+
+ //----------------------------------------------------------------------
+ public function encodeMask(QRinput $input, $mask)
+ {
+ if($input->getVersion() < 0 || $input->getVersion() > QRSPEC_VERSION_MAX) {
+ throw new Exception('wrong version');
+ }
+ if($input->getErrorCorrectionLevel() > QR_ECLEVEL_H) {
+ throw new Exception('wrong level');
+ }
+
+ $raw = new QRrawcode($input);
+
+ QRtools::markTime('after_raw');
+
+ $version = $raw->version;
+ $width = QRspec::getWidth($version);
+ $frame = QRspec::newFrame($version);
+
+ $filler = new FrameFiller($width, $frame);
+ if(is_null($filler)) {
+ return NULL;
+ }
+
+ // inteleaved data and ecc codes
+ for($i=0; $i<$raw->dataLength + $raw->eccLength; $i++) {
+ $code = $raw->getCode();
+ $bit = 0x80;
+ for($j=0; $j<8; $j++) {
+ $addr = $filler->next();
+ $filler->setFrameAt($addr, 0x02 | (($bit & $code) != 0));
+ $bit = $bit >> 1;
+ }
+ }
+
+ QRtools::markTime('after_filler');
+
+ unset($raw);
+
+ // remainder bits
+ $j = QRspec::getRemainder($version);
+ for($i=0; $i<$j; $i++) {
+ $addr = $filler->next();
+ $filler->setFrameAt($addr, 0x02);
+ }
+
+ $frame = $filler->frame;
+ unset($filler);
+
+
+ // masking
+ $maskObj = new QRmask();
+ if($mask < 0) {
+
+ if (QR_FIND_BEST_MASK) {
+ $masked = $maskObj->mask($width, $frame, $input->getErrorCorrectionLevel());
+ } else {
+ $masked = $maskObj->makeMask($width, $frame, (intval(QR_DEFAULT_MASK) % 8), $input->getErrorCorrectionLevel());
+ }
+ } else {
+ $masked = $maskObj->makeMask($width, $frame, $mask, $input->getErrorCorrectionLevel());
+ }
+
+ if($masked == NULL) {
+ return NULL;
+ }
+
+ QRtools::markTime('after_mask');
+
+ $this->version = $version;
+ $this->width = $width;
+ $this->data = $masked;
+
+ return $this;
+ }
+
+ //----------------------------------------------------------------------
+ public function encodeInput(QRinput $input)
+ {
+ return $this->encodeMask($input, -1);
+ }
+
+ //----------------------------------------------------------------------
+ public function encodeString8bit($string, $version, $level)
+ {
+ if(string == NULL) {
+ throw new Exception('empty string!');
+ return NULL;
+ }
+
+ $input = new QRinput($version, $level);
+ if($input == NULL) return NULL;
+
+ $ret = $input->append($input, QR_MODE_8, strlen($string), str_split($string));
+ if($ret < 0) {
+ unset($input);
+ return NULL;
+ }
+ return $this->encodeInput($input);
+ }
+
+ //----------------------------------------------------------------------
+ public function encodeString($string, $version, $level, $hint, $casesensitive)
+ {
+
+ if($hint != QR_MODE_8 && $hint != QR_MODE_KANJI) {
+ throw new Exception('bad hint');
+ return NULL;
+ }
+
+ $input = new QRinput($version, $level);
+ if($input == NULL) return NULL;
+
+ $ret = QRsplit::splitStringToQRinput($string, $input, $hint, $casesensitive);
+ if($ret < 0) {
+ return NULL;
+ }
+
+ return $this->encodeInput($input);
+ }
+
+ //----------------------------------------------------------------------
+ public static function png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false)
+ {
+ $enc = QRencode::factory($level, $size, $margin);
+ return $enc->encodePNG($text, $outfile, $saveandprint=false);
+ }
+
+ //----------------------------------------------------------------------
+ public static function text($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4)
+ {
+ $enc = QRencode::factory($level, $size, $margin);
+ return $enc->encode($text, $outfile);
+ }
+
+ //----------------------------------------------------------------------
+ public static function raw($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4)
+ {
+ $enc = QRencode::factory($level, $size, $margin);
+ return $enc->encodeRAW($text, $outfile);
+ }
+ }
+
+ //##########################################################################
+
+ class FrameFiller {
+
+ public $width;
+ public $frame;
+ public $x;
+ public $y;
+ public $dir;
+ public $bit;
+
+ //----------------------------------------------------------------------
+ public function __construct($width, &$frame)
+ {
+ $this->width = $width;
+ $this->frame = $frame;
+ $this->x = $width - 1;
+ $this->y = $width - 1;
+ $this->dir = -1;
+ $this->bit = -1;
+ }
+
+ //----------------------------------------------------------------------
+ public function setFrameAt($at, $val)
+ {
+ $this->frame[$at['y']][$at['x']] = chr($val);
+ }
+
+ //----------------------------------------------------------------------
+ public function getFrameAt($at)
+ {
+ return ord($this->frame[$at['y']][$at['x']]);
+ }
+
+ //----------------------------------------------------------------------
+ public function next()
+ {
+ do {
+
+ if($this->bit == -1) {
+ $this->bit = 0;
+ return array('x'=>$this->x, 'y'=>$this->y);
+ }
+
+ $x = $this->x;
+ $y = $this->y;
+ $w = $this->width;
+
+ if($this->bit == 0) {
+ $x--;
+ $this->bit++;
+ } else {
+ $x++;
+ $y += $this->dir;
+ $this->bit--;
+ }
+
+ if($this->dir < 0) {
+ if($y < 0) {
+ $y = 0;
+ $x -= 2;
+ $this->dir = 1;
+ if($x == 6) {
+ $x--;
+ $y = 9;
+ }
+ }
+ } else {
+ if($y == $w) {
+ $y = $w - 1;
+ $x -= 2;
+ $this->dir = -1;
+ if($x == 6) {
+ $x--;
+ $y -= 8;
+ }
+ }
+ }
+ if($x < 0 || $y < 0) return null;
+
+ $this->x = $x;
+ $this->y = $y;
+
+ } while(ord($this->frame[$y][$x]) & 0x80);
+
+ return array('x'=>$x, 'y'=>$y);
+ }
+
+ } ;
+
+ //##########################################################################
+
+ class QRencode {
+
+ public $casesensitive = true;
+ public $eightbit = false;
+
+ public $version = 0;
+ public $size = 3;
+ public $margin = 4;
+
+ public $structured = 0; // not supported yet
+
+ public $level = QR_ECLEVEL_L;
+ public $hint = QR_MODE_8;
+
+ //----------------------------------------------------------------------
+ public static function factory($level = QR_ECLEVEL_L, $size = 3, $margin = 4)
+ {
+ $enc = new QRencode();
+ $enc->size = $size;
+ $enc->margin = $margin;
+
+ switch ($level.'') {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ $enc->level = $level;
+ break;
+ case 'l':
+ case 'L':
+ $enc->level = QR_ECLEVEL_L;
+ break;
+ case 'm':
+ case 'M':
+ $enc->level = QR_ECLEVEL_M;
+ break;
+ case 'q':
+ case 'Q':
+ $enc->level = QR_ECLEVEL_Q;
+ break;
+ case 'h':
+ case 'H':
+ $enc->level = QR_ECLEVEL_H;
+ break;
+ }
+
+ return $enc;
+ }
+
+ //----------------------------------------------------------------------
+ public function encodeRAW($intext, $outfile = false)
+ {
+ $code = new QRcode();
+
+ if($this->eightbit) {
+ $code->encodeString8bit($intext, $this->version, $this->level);
+ } else {
+ $code->encodeString($intext, $this->version, $this->level, $this->hint, $this->casesensitive);
+ }
+
+ return $code->data;
+ }
+
+ //----------------------------------------------------------------------
+ public function encode($intext, $outfile = false)
+ {
+ $code = new QRcode();
+
+ if($this->eightbit) {
+ $code->encodeString8bit($intext, $this->version, $this->level);
+ } else {
+ $code->encodeString($intext, $this->version, $this->level, $this->hint, $this->casesensitive);
+ }
+
+ QRtools::markTime('after_encode');
+
+ if ($outfile!== false) {
+ file_put_contents($outfile, join("\n", QRtools::binarize($code->data)));
+ } else {
+ return QRtools::binarize($code->data);
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public function encodePNG($intext, $outfile = false,$saveandprint=false)
+ {
+ try {
+
+ ob_start();
+ $tab = $this->encode($intext);
+ $err = ob_get_contents();
+ ob_end_clean();
+
+ if ($err != '')
+ QRtools::log($outfile, $err);
+
+ $maxSize = (int)(QR_PNG_MAXIMUM_SIZE / (count($tab)+2*$this->margin));
+
+ QRimage::png($tab, $outfile, min(max(1, $this->size), $maxSize), $this->margin,$saveandprint);
+
+ } catch (Exception $e) {
+
+ QRtools::log($outfile, $e->getMessage());
+
+ }
+ }
+ }
+
+
diff --git a/library/phpqrcode/qrbitstream.php b/library/phpqrcode/qrbitstream.php
new file mode 100644
index 000000000..7d4ec4a6c
--- /dev/null
+++ b/library/phpqrcode/qrbitstream.php
@@ -0,0 +1,180 @@
+<?php
+/*
+ * PHP QR Code encoder
+ *
+ * Bitstream class
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ class QRbitstream {
+
+ public $data = array();
+
+ //----------------------------------------------------------------------
+ public function size()
+ {
+ return count($this->data);
+ }
+
+ //----------------------------------------------------------------------
+ public function allocate($setLength)
+ {
+ $this->data = array_fill(0, $setLength, 0);
+ return 0;
+ }
+
+ //----------------------------------------------------------------------
+ public static function newFromNum($bits, $num)
+ {
+ $bstream = new QRbitstream();
+ $bstream->allocate($bits);
+
+ $mask = 1 << ($bits - 1);
+ for($i=0; $i<$bits; $i++) {
+ if($num & $mask) {
+ $bstream->data[$i] = 1;
+ } else {
+ $bstream->data[$i] = 0;
+ }
+ $mask = $mask >> 1;
+ }
+
+ return $bstream;
+ }
+
+ //----------------------------------------------------------------------
+ public static function newFromBytes($size, $data)
+ {
+ $bstream = new QRbitstream();
+ $bstream->allocate($size * 8);
+ $p=0;
+
+ for($i=0; $i<$size; $i++) {
+ $mask = 0x80;
+ for($j=0; $j<8; $j++) {
+ if($data[$i] & $mask) {
+ $bstream->data[$p] = 1;
+ } else {
+ $bstream->data[$p] = 0;
+ }
+ $p++;
+ $mask = $mask >> 1;
+ }
+ }
+
+ return $bstream;
+ }
+
+ //----------------------------------------------------------------------
+ public function append(QRbitstream $arg)
+ {
+ if (is_null($arg)) {
+ return -1;
+ }
+
+ if($arg->size() == 0) {
+ return 0;
+ }
+
+ if($this->size() == 0) {
+ $this->data = $arg->data;
+ return 0;
+ }
+
+ $this->data = array_values(array_merge($this->data, $arg->data));
+
+ return 0;
+ }
+
+ //----------------------------------------------------------------------
+ public function appendNum($bits, $num)
+ {
+ if ($bits == 0)
+ return 0;
+
+ $b = QRbitstream::newFromNum($bits, $num);
+
+ if(is_null($b))
+ return -1;
+
+ $ret = $this->append($b);
+ unset($b);
+
+ return $ret;
+ }
+
+ //----------------------------------------------------------------------
+ public function appendBytes($size, $data)
+ {
+ if ($size == 0)
+ return 0;
+
+ $b = QRbitstream::newFromBytes($size, $data);
+
+ if(is_null($b))
+ return -1;
+
+ $ret = $this->append($b);
+ unset($b);
+
+ return $ret;
+ }
+
+ //----------------------------------------------------------------------
+ public function toByte()
+ {
+
+ $size = $this->size();
+
+ if($size == 0) {
+ return array();
+ }
+
+ $data = array_fill(0, (int)(($size + 7) / 8), 0);
+ $bytes = (int)($size / 8);
+
+ $p = 0;
+
+ for($i=0; $i<$bytes; $i++) {
+ $v = 0;
+ for($j=0; $j<8; $j++) {
+ $v = $v << 1;
+ $v |= $this->data[$p];
+ $p++;
+ }
+ $data[$i] = $v;
+ }
+
+ if($size & 7) {
+ $v = 0;
+ for($j=0; $j<($size & 7); $j++) {
+ $v = $v << 1;
+ $v |= $this->data[$p];
+ $p++;
+ }
+ $data[$bytes] = $v;
+ }
+
+ return $data;
+ }
+
+ }
diff --git a/library/phpqrcode/qrconfig.php b/library/phpqrcode/qrconfig.php
new file mode 100644
index 000000000..e53dff8c2
--- /dev/null
+++ b/library/phpqrcode/qrconfig.php
@@ -0,0 +1,17 @@
+<?php
+/*
+ * PHP QR Code encoder
+ *
+ * Config file, feel free to modify
+ */
+
+ define('QR_CACHEABLE', true); // use cache - more disk reads but less CPU power, masks and format templates are stored there
+ define('QR_CACHE_DIR', dirname(__FILE__).DIRECTORY_SEPARATOR.'cache'.DIRECTORY_SEPARATOR); // used when QR_CACHEABLE === true
+ define('QR_LOG_DIR', dirname(__FILE__).DIRECTORY_SEPARATOR); // default error logs dir
+
+ define('QR_FIND_BEST_MASK', true); // if true, estimates best mask (spec. default, but extremally slow; set to false to significant performance boost but (propably) worst quality code
+ define('QR_FIND_FROM_RANDOM', false); // if false, checks all masks available, otherwise value tells count of masks need to be checked, mask id are got randomly
+ define('QR_DEFAULT_MASK', 2); // when QR_FIND_BEST_MASK === false
+
+ define('QR_PNG_MAXIMUM_SIZE', 1024); // maximum allowed png image width (in pixels), tune to make sure GD and PHP can handle such big images
+ \ No newline at end of file
diff --git a/library/phpqrcode/qrconst.php b/library/phpqrcode/qrconst.php
new file mode 100644
index 000000000..9fac9fdc1
--- /dev/null
+++ b/library/phpqrcode/qrconst.php
@@ -0,0 +1,54 @@
+<?php
+
+/*
+ * PHP QR Code encoder
+ *
+ * Common constants
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ // Encoding modes
+
+ define('QR_MODE_NUL', -1);
+ define('QR_MODE_NUM', 0);
+ define('QR_MODE_AN', 1);
+ define('QR_MODE_8', 2);
+ define('QR_MODE_KANJI', 3);
+ define('QR_MODE_STRUCTURE', 4);
+
+ // Levels of error correction.
+
+ define('QR_ECLEVEL_L', 0);
+ define('QR_ECLEVEL_M', 1);
+ define('QR_ECLEVEL_Q', 2);
+ define('QR_ECLEVEL_H', 3);
+
+ // Supported output formats
+
+ define('QR_FORMAT_TEXT', 0);
+ define('QR_FORMAT_PNG', 1);
+
+ class qrstr {
+ public static function set(&$srctab, $x, $y, $repl, $replLen = false) {
+ $srctab[$y] = substr_replace($srctab[$y], ($replLen !== false)?substr($repl,0,$replLen):$repl, $x, ($replLen !== false)?$replLen:strlen($repl));
+ }
+ } \ No newline at end of file
diff --git a/library/phpqrcode/qrencode.php b/library/phpqrcode/qrencode.php
new file mode 100644
index 000000000..4b77a5bdd
--- /dev/null
+++ b/library/phpqrcode/qrencode.php
@@ -0,0 +1,502 @@
+<?php
+/*
+ * PHP QR Code encoder
+ *
+ * Main encoder classes.
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ class QRrsblock {
+ public $dataLength;
+ public $data = array();
+ public $eccLength;
+ public $ecc = array();
+
+ public function __construct($dl, $data, $el, &$ecc, QRrsItem $rs)
+ {
+ $rs->encode_rs_char($data, $ecc);
+
+ $this->dataLength = $dl;
+ $this->data = $data;
+ $this->eccLength = $el;
+ $this->ecc = $ecc;
+ }
+ };
+
+ //##########################################################################
+
+ class QRrawcode {
+ public $version;
+ public $datacode = array();
+ public $ecccode = array();
+ public $blocks;
+ public $rsblocks = array(); //of RSblock
+ public $count;
+ public $dataLength;
+ public $eccLength;
+ public $b1;
+
+ //----------------------------------------------------------------------
+ public function __construct(QRinput $input)
+ {
+ $spec = array(0,0,0,0,0);
+
+ $this->datacode = $input->getByteStream();
+ if(is_null($this->datacode)) {
+ throw new Exception('null imput string');
+ }
+
+ QRspec::getEccSpec($input->getVersion(), $input->getErrorCorrectionLevel(), $spec);
+
+ $this->version = $input->getVersion();
+ $this->b1 = QRspec::rsBlockNum1($spec);
+ $this->dataLength = QRspec::rsDataLength($spec);
+ $this->eccLength = QRspec::rsEccLength($spec);
+ $this->ecccode = array_fill(0, $this->eccLength, 0);
+ $this->blocks = QRspec::rsBlockNum($spec);
+
+ $ret = $this->init($spec);
+ if($ret < 0) {
+ throw new Exception('block alloc error');
+ return null;
+ }
+
+ $this->count = 0;
+ }
+
+ //----------------------------------------------------------------------
+ public function init(array $spec)
+ {
+ $dl = QRspec::rsDataCodes1($spec);
+ $el = QRspec::rsEccCodes1($spec);
+ $rs = QRrs::init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el);
+
+
+ $blockNo = 0;
+ $dataPos = 0;
+ $eccPos = 0;
+ for($i=0; $i<QRspec::rsBlockNum1($spec); $i++) {
+ $ecc = array_slice($this->ecccode,$eccPos);
+ $this->rsblocks[$blockNo] = new QRrsblock($dl, array_slice($this->datacode, $dataPos), $el, $ecc, $rs);
+ $this->ecccode = array_merge(array_slice($this->ecccode,0, $eccPos), $ecc);
+
+ $dataPos += $dl;
+ $eccPos += $el;
+ $blockNo++;
+ }
+
+ if(QRspec::rsBlockNum2($spec) == 0)
+ return 0;
+
+ $dl = QRspec::rsDataCodes2($spec);
+ $el = QRspec::rsEccCodes2($spec);
+ $rs = QRrs::init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el);
+
+ if($rs == NULL) return -1;
+
+ for($i=0; $i<QRspec::rsBlockNum2($spec); $i++) {
+ $ecc = array_slice($this->ecccode,$eccPos);
+ $this->rsblocks[$blockNo] = new QRrsblock($dl, array_slice($this->datacode, $dataPos), $el, $ecc, $rs);
+ $this->ecccode = array_merge(array_slice($this->ecccode,0, $eccPos), $ecc);
+
+ $dataPos += $dl;
+ $eccPos += $el;
+ $blockNo++;
+ }
+
+ return 0;
+ }
+
+ //----------------------------------------------------------------------
+ public function getCode()
+ {
+ $ret;
+
+ if($this->count < $this->dataLength) {
+ $row = $this->count % $this->blocks;
+ $col = $this->count / $this->blocks;
+ if($col >= $this->rsblocks[0]->dataLength) {
+ $row += $this->b1;
+ }
+ $ret = $this->rsblocks[$row]->data[$col];
+ } else if($this->count < $this->dataLength + $this->eccLength) {
+ $row = ($this->count - $this->dataLength) % $this->blocks;
+ $col = ($this->count - $this->dataLength) / $this->blocks;
+ $ret = $this->rsblocks[$row]->ecc[$col];
+ } else {
+ return 0;
+ }
+ $this->count++;
+
+ return $ret;
+ }
+ }
+
+ //##########################################################################
+
+ class QRcode {
+
+ public $version;
+ public $width;
+ public $data;
+
+ //----------------------------------------------------------------------
+ public function encodeMask(QRinput $input, $mask)
+ {
+ if($input->getVersion() < 0 || $input->getVersion() > QRSPEC_VERSION_MAX) {
+ throw new Exception('wrong version');
+ }
+ if($input->getErrorCorrectionLevel() > QR_ECLEVEL_H) {
+ throw new Exception('wrong level');
+ }
+
+ $raw = new QRrawcode($input);
+
+ QRtools::markTime('after_raw');
+
+ $version = $raw->version;
+ $width = QRspec::getWidth($version);
+ $frame = QRspec::newFrame($version);
+
+ $filler = new FrameFiller($width, $frame);
+ if(is_null($filler)) {
+ return NULL;
+ }
+
+ // inteleaved data and ecc codes
+ for($i=0; $i<$raw->dataLength + $raw->eccLength; $i++) {
+ $code = $raw->getCode();
+ $bit = 0x80;
+ for($j=0; $j<8; $j++) {
+ $addr = $filler->next();
+ $filler->setFrameAt($addr, 0x02 | (($bit & $code) != 0));
+ $bit = $bit >> 1;
+ }
+ }
+
+ QRtools::markTime('after_filler');
+
+ unset($raw);
+
+ // remainder bits
+ $j = QRspec::getRemainder($version);
+ for($i=0; $i<$j; $i++) {
+ $addr = $filler->next();
+ $filler->setFrameAt($addr, 0x02);
+ }
+
+ $frame = $filler->frame;
+ unset($filler);
+
+
+ // masking
+ $maskObj = new QRmask();
+ if($mask < 0) {
+
+ if (QR_FIND_BEST_MASK) {
+ $masked = $maskObj->mask($width, $frame, $input->getErrorCorrectionLevel());
+ } else {
+ $masked = $maskObj->makeMask($width, $frame, (intval(QR_DEFAULT_MASK) % 8), $input->getErrorCorrectionLevel());
+ }
+ } else {
+ $masked = $maskObj->makeMask($width, $frame, $mask, $input->getErrorCorrectionLevel());
+ }
+
+ if($masked == NULL) {
+ return NULL;
+ }
+
+ QRtools::markTime('after_mask');
+
+ $this->version = $version;
+ $this->width = $width;
+ $this->data = $masked;
+
+ return $this;
+ }
+
+ //----------------------------------------------------------------------
+ public function encodeInput(QRinput $input)
+ {
+ return $this->encodeMask($input, -1);
+ }
+
+ //----------------------------------------------------------------------
+ public function encodeString8bit($string, $version, $level)
+ {
+ if(string == NULL) {
+ throw new Exception('empty string!');
+ return NULL;
+ }
+
+ $input = new QRinput($version, $level);
+ if($input == NULL) return NULL;
+
+ $ret = $input->append($input, QR_MODE_8, strlen($string), str_split($string));
+ if($ret < 0) {
+ unset($input);
+ return NULL;
+ }
+ return $this->encodeInput($input);
+ }
+
+ //----------------------------------------------------------------------
+ public function encodeString($string, $version, $level, $hint, $casesensitive)
+ {
+
+ if($hint != QR_MODE_8 && $hint != QR_MODE_KANJI) {
+ throw new Exception('bad hint');
+ return NULL;
+ }
+
+ $input = new QRinput($version, $level);
+ if($input == NULL) return NULL;
+
+ $ret = QRsplit::splitStringToQRinput($string, $input, $hint, $casesensitive);
+ if($ret < 0) {
+ return NULL;
+ }
+
+ return $this->encodeInput($input);
+ }
+
+ //----------------------------------------------------------------------
+ public static function png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false)
+ {
+ $enc = QRencode::factory($level, $size, $margin);
+ return $enc->encodePNG($text, $outfile, $saveandprint=false);
+ }
+
+ //----------------------------------------------------------------------
+ public static function text($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4)
+ {
+ $enc = QRencode::factory($level, $size, $margin);
+ return $enc->encode($text, $outfile);
+ }
+
+ //----------------------------------------------------------------------
+ public static function raw($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4)
+ {
+ $enc = QRencode::factory($level, $size, $margin);
+ return $enc->encodeRAW($text, $outfile);
+ }
+ }
+
+ //##########################################################################
+
+ class FrameFiller {
+
+ public $width;
+ public $frame;
+ public $x;
+ public $y;
+ public $dir;
+ public $bit;
+
+ //----------------------------------------------------------------------
+ public function __construct($width, &$frame)
+ {
+ $this->width = $width;
+ $this->frame = $frame;
+ $this->x = $width - 1;
+ $this->y = $width - 1;
+ $this->dir = -1;
+ $this->bit = -1;
+ }
+
+ //----------------------------------------------------------------------
+ public function setFrameAt($at, $val)
+ {
+ $this->frame[$at['y']][$at['x']] = chr($val);
+ }
+
+ //----------------------------------------------------------------------
+ public function getFrameAt($at)
+ {
+ return ord($this->frame[$at['y']][$at['x']]);
+ }
+
+ //----------------------------------------------------------------------
+ public function next()
+ {
+ do {
+
+ if($this->bit == -1) {
+ $this->bit = 0;
+ return array('x'=>$this->x, 'y'=>$this->y);
+ }
+
+ $x = $this->x;
+ $y = $this->y;
+ $w = $this->width;
+
+ if($this->bit == 0) {
+ $x--;
+ $this->bit++;
+ } else {
+ $x++;
+ $y += $this->dir;
+ $this->bit--;
+ }
+
+ if($this->dir < 0) {
+ if($y < 0) {
+ $y = 0;
+ $x -= 2;
+ $this->dir = 1;
+ if($x == 6) {
+ $x--;
+ $y = 9;
+ }
+ }
+ } else {
+ if($y == $w) {
+ $y = $w - 1;
+ $x -= 2;
+ $this->dir = -1;
+ if($x == 6) {
+ $x--;
+ $y -= 8;
+ }
+ }
+ }
+ if($x < 0 || $y < 0) return null;
+
+ $this->x = $x;
+ $this->y = $y;
+
+ } while(ord($this->frame[$y][$x]) & 0x80);
+
+ return array('x'=>$x, 'y'=>$y);
+ }
+
+ } ;
+
+ //##########################################################################
+
+ class QRencode {
+
+ public $casesensitive = true;
+ public $eightbit = false;
+
+ public $version = 0;
+ public $size = 3;
+ public $margin = 4;
+
+ public $structured = 0; // not supported yet
+
+ public $level = QR_ECLEVEL_L;
+ public $hint = QR_MODE_8;
+
+ //----------------------------------------------------------------------
+ public static function factory($level = QR_ECLEVEL_L, $size = 3, $margin = 4)
+ {
+ $enc = new QRencode();
+ $enc->size = $size;
+ $enc->margin = $margin;
+
+ switch ($level.'') {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ $enc->level = $level;
+ break;
+ case 'l':
+ case 'L':
+ $enc->level = QR_ECLEVEL_L;
+ break;
+ case 'm':
+ case 'M':
+ $enc->level = QR_ECLEVEL_M;
+ break;
+ case 'q':
+ case 'Q':
+ $enc->level = QR_ECLEVEL_Q;
+ break;
+ case 'h':
+ case 'H':
+ $enc->level = QR_ECLEVEL_H;
+ break;
+ }
+
+ return $enc;
+ }
+
+ //----------------------------------------------------------------------
+ public function encodeRAW($intext, $outfile = false)
+ {
+ $code = new QRcode();
+
+ if($this->eightbit) {
+ $code->encodeString8bit($intext, $this->version, $this->level);
+ } else {
+ $code->encodeString($intext, $this->version, $this->level, $this->hint, $this->casesensitive);
+ }
+
+ return $code->data;
+ }
+
+ //----------------------------------------------------------------------
+ public function encode($intext, $outfile = false)
+ {
+ $code = new QRcode();
+
+ if($this->eightbit) {
+ $code->encodeString8bit($intext, $this->version, $this->level);
+ } else {
+ $code->encodeString($intext, $this->version, $this->level, $this->hint, $this->casesensitive);
+ }
+
+ QRtools::markTime('after_encode');
+
+ if ($outfile!== false) {
+ file_put_contents($outfile, join("\n", QRtools::binarize($code->data)));
+ } else {
+ return QRtools::binarize($code->data);
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public function encodePNG($intext, $outfile = false,$saveandprint=false)
+ {
+ try {
+
+ ob_start();
+ $tab = $this->encode($intext);
+ $err = ob_get_contents();
+ ob_end_clean();
+
+ if ($err != '')
+ QRtools::log($outfile, $err);
+
+ $maxSize = (int)(QR_PNG_MAXIMUM_SIZE / (count($tab)+2*$this->margin));
+
+ QRimage::png($tab, $outfile, min(max(1, $this->size), $maxSize), $this->margin,$saveandprint);
+
+ } catch (Exception $e) {
+
+ QRtools::log($outfile, $e->getMessage());
+
+ }
+ }
+ }
diff --git a/library/phpqrcode/qrimage.php b/library/phpqrcode/qrimage.php
new file mode 100644
index 000000000..10b0a6e1b
--- /dev/null
+++ b/library/phpqrcode/qrimage.php
@@ -0,0 +1,95 @@
+<?php
+/*
+ * PHP QR Code encoder
+ *
+ * Image output of code using GD2
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ define('QR_IMAGE', true);
+
+ class QRimage {
+
+ //----------------------------------------------------------------------
+ public static function png($frame, $filename = false, $pixelPerPoint = 4, $outerFrame = 4,$saveandprint=FALSE)
+ {
+ $image = self::image($frame, $pixelPerPoint, $outerFrame);
+
+ if ($filename === false) {
+ Header("Content-type: image/png");
+ ImagePng($image);
+ } else {
+ if($saveandprint===TRUE){
+ ImagePng($image, $filename);
+ header("Content-type: image/png");
+ ImagePng($image);
+ }else{
+ ImagePng($image, $filename);
+ }
+ }
+
+ ImageDestroy($image);
+ }
+
+ //----------------------------------------------------------------------
+ public static function jpg($frame, $filename = false, $pixelPerPoint = 8, $outerFrame = 4, $q = 85)
+ {
+ $image = self::image($frame, $pixelPerPoint, $outerFrame);
+
+ if ($filename === false) {
+ Header("Content-type: image/jpeg");
+ ImageJpeg($image, null, $q);
+ } else {
+ ImageJpeg($image, $filename, $q);
+ }
+
+ ImageDestroy($image);
+ }
+
+ //----------------------------------------------------------------------
+ private static function image($frame, $pixelPerPoint = 4, $outerFrame = 4)
+ {
+ $h = count($frame);
+ $w = strlen($frame[0]);
+
+ $imgW = $w + 2*$outerFrame;
+ $imgH = $h + 2*$outerFrame;
+
+ $base_image =ImageCreate($imgW, $imgH);
+
+ $col[0] = ImageColorAllocate($base_image,255,255,255);
+ $col[1] = ImageColorAllocate($base_image,0,0,0);
+
+ imagefill($base_image, 0, 0, $col[0]);
+
+ for($y=0; $y<$h; $y++) {
+ for($x=0; $x<$w; $x++) {
+ if ($frame[$y][$x] == '1') {
+ ImageSetPixel($base_image,$x+$outerFrame,$y+$outerFrame,$col[1]);
+ }
+ }
+ }
+
+ $target_image =ImageCreate($imgW * $pixelPerPoint, $imgH * $pixelPerPoint);
+ ImageCopyResized($target_image, $base_image, 0, 0, 0, 0, $imgW * $pixelPerPoint, $imgH * $pixelPerPoint, $imgW, $imgH);
+ ImageDestroy($base_image);
+
+ return $target_image;
+ }
+ } \ No newline at end of file
diff --git a/library/phpqrcode/qrinput.php b/library/phpqrcode/qrinput.php
new file mode 100644
index 000000000..0f6d7f944
--- /dev/null
+++ b/library/phpqrcode/qrinput.php
@@ -0,0 +1,729 @@
+<?php
+/*
+ * PHP QR Code encoder
+ *
+ * Input encoding class
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ define('STRUCTURE_HEADER_BITS', 20);
+ define('MAX_STRUCTURED_SYMBOLS', 16);
+
+ class QRinputItem {
+
+ public $mode;
+ public $size;
+ public $data;
+ public $bstream;
+
+ public function __construct($mode, $size, $data, $bstream = null)
+ {
+ $setData = array_slice($data, 0, $size);
+
+ if (count($setData) < $size) {
+ $setData = array_merge($setData, array_fill(0,$size-count($setData),0));
+ }
+
+ if(!QRinput::check($mode, $size, $setData)) {
+ throw new Exception('Error m:'.$mode.',s:'.$size.',d:'.join(',',$setData));
+ return null;
+ }
+
+ $this->mode = $mode;
+ $this->size = $size;
+ $this->data = $setData;
+ $this->bstream = $bstream;
+ }
+
+ //----------------------------------------------------------------------
+ public function encodeModeNum($version)
+ {
+ try {
+
+ $words = (int)($this->size / 3);
+ $bs = new QRbitstream();
+
+ $val = 0x1;
+ $bs->appendNum(4, $val);
+ $bs->appendNum(QRspec::lengthIndicator(QR_MODE_NUM, $version), $this->size);
+
+ for($i=0; $i<$words; $i++) {
+ $val = (ord($this->data[$i*3 ]) - ord('0')) * 100;
+ $val += (ord($this->data[$i*3+1]) - ord('0')) * 10;
+ $val += (ord($this->data[$i*3+2]) - ord('0'));
+ $bs->appendNum(10, $val);
+ }
+
+ if($this->size - $words * 3 == 1) {
+ $val = ord($this->data[$words*3]) - ord('0');
+ $bs->appendNum(4, $val);
+ } else if($this->size - $words * 3 == 2) {
+ $val = (ord($this->data[$words*3 ]) - ord('0')) * 10;
+ $val += (ord($this->data[$words*3+1]) - ord('0'));
+ $bs->appendNum(7, $val);
+ }
+
+ $this->bstream = $bs;
+ return 0;
+
+ } catch (Exception $e) {
+ return -1;
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public function encodeModeAn($version)
+ {
+ try {
+ $words = (int)($this->size / 2);
+ $bs = new QRbitstream();
+
+ $bs->appendNum(4, 0x02);
+ $bs->appendNum(QRspec::lengthIndicator(QR_MODE_AN, $version), $this->size);
+
+ for($i=0; $i<$words; $i++) {
+ $val = (int)QRinput::lookAnTable(ord($this->data[$i*2 ])) * 45;
+ $val += (int)QRinput::lookAnTable(ord($this->data[$i*2+1]));
+
+ $bs->appendNum(11, $val);
+ }
+
+ if($this->size & 1) {
+ $val = QRinput::lookAnTable(ord($this->data[$words * 2]));
+ $bs->appendNum(6, $val);
+ }
+
+ $this->bstream = $bs;
+ return 0;
+
+ } catch (Exception $e) {
+ return -1;
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public function encodeMode8($version)
+ {
+ try {
+ $bs = new QRbitstream();
+
+ $bs->appendNum(4, 0x4);
+ $bs->appendNum(QRspec::lengthIndicator(QR_MODE_8, $version), $this->size);
+
+ for($i=0; $i<$this->size; $i++) {
+ $bs->appendNum(8, ord($this->data[$i]));
+ }
+
+ $this->bstream = $bs;
+ return 0;
+
+ } catch (Exception $e) {
+ return -1;
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public function encodeModeKanji($version)
+ {
+ try {
+
+ $bs = new QRbitrtream();
+
+ $bs->appendNum(4, 0x8);
+ $bs->appendNum(QRspec::lengthIndicator(QR_MODE_KANJI, $version), (int)($this->size / 2));
+
+ for($i=0; $i<$this->size; $i+=2) {
+ $val = (ord($this->data[$i]) << 8) | ord($this->data[$i+1]);
+ if($val <= 0x9ffc) {
+ $val -= 0x8140;
+ } else {
+ $val -= 0xc140;
+ }
+
+ $h = ($val >> 8) * 0xc0;
+ $val = ($val & 0xff) + $h;
+
+ $bs->appendNum(13, $val);
+ }
+
+ $this->bstream = $bs;
+ return 0;
+
+ } catch (Exception $e) {
+ return -1;
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public function encodeModeStructure()
+ {
+ try {
+ $bs = new QRbitstream();
+
+ $bs->appendNum(4, 0x03);
+ $bs->appendNum(4, ord($this->data[1]) - 1);
+ $bs->appendNum(4, ord($this->data[0]) - 1);
+ $bs->appendNum(8, ord($this->data[2]));
+
+ $this->bstream = $bs;
+ return 0;
+
+ } catch (Exception $e) {
+ return -1;
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public function estimateBitStreamSizeOfEntry($version)
+ {
+ $bits = 0;
+
+ if($version == 0)
+ $version = 1;
+
+ switch($this->mode) {
+ case QR_MODE_NUM: $bits = QRinput::estimateBitsModeNum($this->size); break;
+ case QR_MODE_AN: $bits = QRinput::estimateBitsModeAn($this->size); break;
+ case QR_MODE_8: $bits = QRinput::estimateBitsMode8($this->size); break;
+ case QR_MODE_KANJI: $bits = QRinput::estimateBitsModeKanji($this->size);break;
+ case QR_MODE_STRUCTURE: return STRUCTURE_HEADER_BITS;
+ default:
+ return 0;
+ }
+
+ $l = QRspec::lengthIndicator($this->mode, $version);
+ $m = 1 << $l;
+ $num = (int)(($this->size + $m - 1) / $m);
+
+ $bits += $num * (4 + $l);
+
+ return $bits;
+ }
+
+ //----------------------------------------------------------------------
+ public function encodeBitStream($version)
+ {
+ try {
+
+ unset($this->bstream);
+ $words = QRspec::maximumWords($this->mode, $version);
+
+ if($this->size > $words) {
+
+ $st1 = new QRinputItem($this->mode, $words, $this->data);
+ $st2 = new QRinputItem($this->mode, $this->size - $words, array_slice($this->data, $words));
+
+ $st1->encodeBitStream($version);
+ $st2->encodeBitStream($version);
+
+ $this->bstream = new QRbitstream();
+ $this->bstream->append($st1->bstream);
+ $this->bstream->append($st2->bstream);
+
+ unset($st1);
+ unset($st2);
+
+ } else {
+
+ $ret = 0;
+
+ switch($this->mode) {
+ case QR_MODE_NUM: $ret = $this->encodeModeNum($version); break;
+ case QR_MODE_AN: $ret = $this->encodeModeAn($version); break;
+ case QR_MODE_8: $ret = $this->encodeMode8($version); break;
+ case QR_MODE_KANJI: $ret = $this->encodeModeKanji($version);break;
+ case QR_MODE_STRUCTURE: $ret = $this->encodeModeStructure(); break;
+
+ default:
+ break;
+ }
+
+ if($ret < 0)
+ return -1;
+ }
+
+ return $this->bstream->size();
+
+ } catch (Exception $e) {
+ return -1;
+ }
+ }
+ };
+
+ //##########################################################################
+
+ class QRinput {
+
+ public $items;
+
+ private $version;
+ private $level;
+
+ //----------------------------------------------------------------------
+ public function __construct($version = 0, $level = QR_ECLEVEL_L)
+ {
+ if ($version < 0 || $version > QRSPEC_VERSION_MAX || $level > QR_ECLEVEL_H) {
+ throw new Exception('Invalid version no');
+ return NULL;
+ }
+
+ $this->version = $version;
+ $this->level = $level;
+ }
+
+ //----------------------------------------------------------------------
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ //----------------------------------------------------------------------
+ public function setVersion($version)
+ {
+ if($version < 0 || $version > QRSPEC_VERSION_MAX) {
+ throw new Exception('Invalid version no');
+ return -1;
+ }
+
+ $this->version = $version;
+
+ return 0;
+ }
+
+ //----------------------------------------------------------------------
+ public function getErrorCorrectionLevel()
+ {
+ return $this->level;
+ }
+
+ //----------------------------------------------------------------------
+ public function setErrorCorrectionLevel($level)
+ {
+ if($level > QR_ECLEVEL_H) {
+ throw new Exception('Invalid ECLEVEL');
+ return -1;
+ }
+
+ $this->level = $level;
+
+ return 0;
+ }
+
+ //----------------------------------------------------------------------
+ public function appendEntry(QRinputItem $entry)
+ {
+ $this->items[] = $entry;
+ }
+
+ //----------------------------------------------------------------------
+ public function append($mode, $size, $data)
+ {
+ try {
+ $entry = new QRinputItem($mode, $size, $data);
+ $this->items[] = $entry;
+ return 0;
+ } catch (Exception $e) {
+ return -1;
+ }
+ }
+
+ //----------------------------------------------------------------------
+
+ public function insertStructuredAppendHeader($size, $index, $parity)
+ {
+ if( $size > MAX_STRUCTURED_SYMBOLS ) {
+ throw new Exception('insertStructuredAppendHeader wrong size');
+ }
+
+ if( $index <= 0 || $index > MAX_STRUCTURED_SYMBOLS ) {
+ throw new Exception('insertStructuredAppendHeader wrong index');
+ }
+
+ $buf = array($size, $index, $parity);
+
+ try {
+ $entry = new QRinputItem(QR_MODE_STRUCTURE, 3, buf);
+ array_unshift($this->items, $entry);
+ return 0;
+ } catch (Exception $e) {
+ return -1;
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public function calcParity()
+ {
+ $parity = 0;
+
+ foreach($this->items as $item) {
+ if($item->mode != QR_MODE_STRUCTURE) {
+ for($i=$item->size-1; $i>=0; $i--) {
+ $parity ^= $item->data[$i];
+ }
+ }
+ }
+
+ return $parity;
+ }
+
+ //----------------------------------------------------------------------
+ public static function checkModeNum($size, $data)
+ {
+ for($i=0; $i<$size; $i++) {
+ if((ord($data[$i]) < ord('0')) || (ord($data[$i]) > ord('9'))){
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ //----------------------------------------------------------------------
+ public static function estimateBitsModeNum($size)
+ {
+ $w = (int)$size / 3;
+ $bits = $w * 10;
+
+ switch($size - $w * 3) {
+ case 1:
+ $bits += 4;
+ break;
+ case 2:
+ $bits += 7;
+ break;
+ default:
+ break;
+ }
+
+ return $bits;
+ }
+
+ //----------------------------------------------------------------------
+ public static $anTable = array(
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 36, -1, -1, -1, 37, 38, -1, -1, -1, -1, 39, 40, -1, 41, 42, 43,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 44, -1, -1, -1, -1, -1,
+ -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
+ );
+
+ //----------------------------------------------------------------------
+ public static function lookAnTable($c)
+ {
+ return (($c > 127)?-1:self::$anTable[$c]);
+ }
+
+ //----------------------------------------------------------------------
+ public static function checkModeAn($size, $data)
+ {
+ for($i=0; $i<$size; $i++) {
+ if (self::lookAnTable(ord($data[$i])) == -1) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ //----------------------------------------------------------------------
+ public static function estimateBitsModeAn($size)
+ {
+ $w = (int)($size / 2);
+ $bits = $w * 11;
+
+ if($size & 1) {
+ $bits += 6;
+ }
+
+ return $bits;
+ }
+
+ //----------------------------------------------------------------------
+ public static function estimateBitsMode8($size)
+ {
+ return $size * 8;
+ }
+
+ //----------------------------------------------------------------------
+ public function estimateBitsModeKanji($size)
+ {
+ return (int)(($size / 2) * 13);
+ }
+
+ //----------------------------------------------------------------------
+ public static function checkModeKanji($size, $data)
+ {
+ if($size & 1)
+ return false;
+
+ for($i=0; $i<$size; $i+=2) {
+ $val = (ord($data[$i]) << 8) | ord($data[$i+1]);
+ if( $val < 0x8140
+ || ($val > 0x9ffc && $val < 0xe040)
+ || $val > 0xebbf) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /***********************************************************************
+ * Validation
+ **********************************************************************/
+
+ public static function check($mode, $size, $data)
+ {
+ if($size <= 0)
+ return false;
+
+ switch($mode) {
+ case QR_MODE_NUM: return self::checkModeNum($size, $data); break;
+ case QR_MODE_AN: return self::checkModeAn($size, $data); break;
+ case QR_MODE_KANJI: return self::checkModeKanji($size, $data); break;
+ case QR_MODE_8: return true; break;
+ case QR_MODE_STRUCTURE: return true; break;
+
+ default:
+ break;
+ }
+
+ return false;
+ }
+
+
+ //----------------------------------------------------------------------
+ public function estimateBitStreamSize($version)
+ {
+ $bits = 0;
+
+ foreach($this->items as $item) {
+ $bits += $item->estimateBitStreamSizeOfEntry($version);
+ }
+
+ return $bits;
+ }
+
+ //----------------------------------------------------------------------
+ public function estimateVersion()
+ {
+ $version = 0;
+ $prev = 0;
+ do {
+ $prev = $version;
+ $bits = $this->estimateBitStreamSize($prev);
+ $version = QRspec::getMinimumVersion((int)(($bits + 7) / 8), $this->level);
+ if ($version < 0) {
+ return -1;
+ }
+ } while ($version > $prev);
+
+ return $version;
+ }
+
+ //----------------------------------------------------------------------
+ public static function lengthOfCode($mode, $version, $bits)
+ {
+ $payload = $bits - 4 - QRspec::lengthIndicator($mode, $version);
+ switch($mode) {
+ case QR_MODE_NUM:
+ $chunks = (int)($payload / 10);
+ $remain = $payload - $chunks * 10;
+ $size = $chunks * 3;
+ if($remain >= 7) {
+ $size += 2;
+ } else if($remain >= 4) {
+ $size += 1;
+ }
+ break;
+ case QR_MODE_AN:
+ $chunks = (int)($payload / 11);
+ $remain = $payload - $chunks * 11;
+ $size = $chunks * 2;
+ if($remain >= 6)
+ $size++;
+ break;
+ case QR_MODE_8:
+ $size = (int)($payload / 8);
+ break;
+ case QR_MODE_KANJI:
+ $size = (int)(($payload / 13) * 2);
+ break;
+ case QR_MODE_STRUCTURE:
+ $size = (int)($payload / 8);
+ break;
+ default:
+ $size = 0;
+ break;
+ }
+
+ $maxsize = QRspec::maximumWords($mode, $version);
+ if($size < 0) $size = 0;
+ if($size > $maxsize) $size = $maxsize;
+
+ return $size;
+ }
+
+ //----------------------------------------------------------------------
+ public function createBitStream()
+ {
+ $total = 0;
+
+ foreach($this->items as $item) {
+ $bits = $item->encodeBitStream($this->version);
+
+ if($bits < 0)
+ return -1;
+
+ $total += $bits;
+ }
+
+ return $total;
+ }
+
+ //----------------------------------------------------------------------
+ public function convertData()
+ {
+ $ver = $this->estimateVersion();
+ if($ver > $this->getVersion()) {
+ $this->setVersion($ver);
+ }
+
+ for(;;) {
+ $bits = $this->createBitStream();
+
+ if($bits < 0)
+ return -1;
+
+ $ver = QRspec::getMinimumVersion((int)(($bits + 7) / 8), $this->level);
+ if($ver < 0) {
+ throw new Exception('WRONG VERSION');
+ return -1;
+ } else if($ver > $this->getVersion()) {
+ $this->setVersion($ver);
+ } else {
+ break;
+ }
+ }
+
+ return 0;
+ }
+
+ //----------------------------------------------------------------------
+ public function appendPaddingBit(&$bstream)
+ {
+ $bits = $bstream->size();
+ $maxwords = QRspec::getDataLength($this->version, $this->level);
+ $maxbits = $maxwords * 8;
+
+ if ($maxbits == $bits) {
+ return 0;
+ }
+
+ if ($maxbits - $bits < 5) {
+ return $bstream->appendNum($maxbits - $bits, 0);
+ }
+
+ $bits += 4;
+ $words = (int)(($bits + 7) / 8);
+
+ $padding = new QRbitstream();
+ $ret = $padding->appendNum($words * 8 - $bits + 4, 0);
+
+ if($ret < 0)
+ return $ret;
+
+ $padlen = $maxwords - $words;
+
+ if($padlen > 0) {
+
+ $padbuf = array();
+ for($i=0; $i<$padlen; $i++) {
+ $padbuf[$i] = ($i&1)?0x11:0xec;
+ }
+
+ $ret = $padding->appendBytes($padlen, $padbuf);
+
+ if($ret < 0)
+ return $ret;
+
+ }
+
+ $ret = $bstream->append($padding);
+
+ return $ret;
+ }
+
+ //----------------------------------------------------------------------
+ public function mergeBitStream()
+ {
+ if($this->convertData() < 0) {
+ return null;
+ }
+
+ $bstream = new QRbitstream();
+
+ foreach($this->items as $item) {
+ $ret = $bstream->append($item->bstream);
+ if($ret < 0) {
+ return null;
+ }
+ }
+
+ return $bstream;
+ }
+
+ //----------------------------------------------------------------------
+ public function getBitStream()
+ {
+
+ $bstream = $this->mergeBitStream();
+
+ if($bstream == null) {
+ return null;
+ }
+
+ $ret = $this->appendPaddingBit($bstream);
+ if($ret < 0) {
+ return null;
+ }
+
+ return $bstream;
+ }
+
+ //----------------------------------------------------------------------
+ public function getByteStream()
+ {
+ $bstream = $this->getBitStream();
+ if($bstream == null) {
+ return null;
+ }
+
+ return $bstream->toByte();
+ }
+ }
+
+
+ \ No newline at end of file
diff --git a/library/phpqrcode/qrlib.php b/library/phpqrcode/qrlib.php
new file mode 100644
index 000000000..d55c4af29
--- /dev/null
+++ b/library/phpqrcode/qrlib.php
@@ -0,0 +1,43 @@
+<?php
+/*
+ * PHP QR Code encoder
+ *
+ * Root library file, prepares environment and includes dependencies
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ $QR_BASEDIR = dirname(__FILE__).DIRECTORY_SEPARATOR;
+
+ // Required libs
+
+ include $QR_BASEDIR."qrconst.php";
+ include $QR_BASEDIR."qrconfig.php";
+ include $QR_BASEDIR."qrtools.php";
+ include $QR_BASEDIR."qrspec.php";
+ include $QR_BASEDIR."qrimage.php";
+ include $QR_BASEDIR."qrinput.php";
+ include $QR_BASEDIR."qrbitstream.php";
+ include $QR_BASEDIR."qrsplit.php";
+ include $QR_BASEDIR."qrrscode.php";
+ include $QR_BASEDIR."qrmask.php";
+ include $QR_BASEDIR."qrencode.php";
+
diff --git a/library/phpqrcode/qrmask.php b/library/phpqrcode/qrmask.php
new file mode 100644
index 000000000..b14d7ae16
--- /dev/null
+++ b/library/phpqrcode/qrmask.php
@@ -0,0 +1,328 @@
+<?php
+/*
+ * PHP QR Code encoder
+ *
+ * Masking
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ define('N1', 3);
+ define('N2', 3);
+ define('N3', 40);
+ define('N4', 10);
+
+ class QRmask {
+
+ public $runLength = array();
+
+ //----------------------------------------------------------------------
+ public function __construct()
+ {
+ $this->runLength = array_fill(0, QRSPEC_WIDTH_MAX + 1, 0);
+ }
+
+ //----------------------------------------------------------------------
+ public function writeFormatInformation($width, &$frame, $mask, $level)
+ {
+ $blacks = 0;
+ $format = QRspec::getFormatInfo($mask, $level);
+
+ for($i=0; $i<8; $i++) {
+ if($format & 1) {
+ $blacks += 2;
+ $v = 0x85;
+ } else {
+ $v = 0x84;
+ }
+
+ $frame[8][$width - 1 - $i] = chr($v);
+ if($i < 6) {
+ $frame[$i][8] = chr($v);
+ } else {
+ $frame[$i + 1][8] = chr($v);
+ }
+ $format = $format >> 1;
+ }
+
+ for($i=0; $i<7; $i++) {
+ if($format & 1) {
+ $blacks += 2;
+ $v = 0x85;
+ } else {
+ $v = 0x84;
+ }
+
+ $frame[$width - 7 + $i][8] = chr($v);
+ if($i == 0) {
+ $frame[8][7] = chr($v);
+ } else {
+ $frame[8][6 - $i] = chr($v);
+ }
+
+ $format = $format >> 1;
+ }
+
+ return $blacks;
+ }
+
+ //----------------------------------------------------------------------
+ public function mask0($x, $y) { return ($x+$y)&1; }
+ public function mask1($x, $y) { return ($y&1); }
+ public function mask2($x, $y) { return ($x%3); }
+ public function mask3($x, $y) { return ($x+$y)%3; }
+ public function mask4($x, $y) { return (((int)($y/2))+((int)($x/3)))&1; }
+ public function mask5($x, $y) { return (($x*$y)&1)+($x*$y)%3; }
+ public function mask6($x, $y) { return ((($x*$y)&1)+($x*$y)%3)&1; }
+ public function mask7($x, $y) { return ((($x*$y)%3)+(($x+$y)&1))&1; }
+
+ //----------------------------------------------------------------------
+ private function generateMaskNo($maskNo, $width, $frame)
+ {
+ $bitMask = array_fill(0, $width, array_fill(0, $width, 0));
+
+ for($y=0; $y<$width; $y++) {
+ for($x=0; $x<$width; $x++) {
+ if(ord($frame[$y][$x]) & 0x80) {
+ $bitMask[$y][$x] = 0;
+ } else {
+ $maskFunc = call_user_func(array($this, 'mask'.$maskNo), $x, $y);
+ $bitMask[$y][$x] = ($maskFunc == 0)?1:0;
+ }
+
+ }
+ }
+
+ return $bitMask;
+ }
+
+ //----------------------------------------------------------------------
+ public static function serial($bitFrame)
+ {
+ $codeArr = array();
+
+ foreach ($bitFrame as $line)
+ $codeArr[] = join('', $line);
+
+ return gzcompress(join("\n", $codeArr), 9);
+ }
+
+ //----------------------------------------------------------------------
+ public static function unserial($code)
+ {
+ $codeArr = array();
+
+ $codeLines = explode("\n", gzuncompress($code));
+ foreach ($codeLines as $line)
+ $codeArr[] = str_split($line);
+
+ return $codeArr;
+ }
+
+ //----------------------------------------------------------------------
+ public function makeMaskNo($maskNo, $width, $s, &$d, $maskGenOnly = false)
+ {
+ $b = 0;
+ $bitMask = array();
+
+ $fileName = QR_CACHE_DIR.'mask_'.$maskNo.DIRECTORY_SEPARATOR.'mask_'.$width.'_'.$maskNo.'.dat';
+
+ if (QR_CACHEABLE) {
+ if (file_exists($fileName)) {
+ $bitMask = self::unserial(file_get_contents($fileName));
+ } else {
+ $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d);
+ if (!file_exists(QR_CACHE_DIR.'mask_'.$maskNo))
+ mkdir(QR_CACHE_DIR.'mask_'.$maskNo);
+ file_put_contents($fileName, self::serial($bitMask));
+ }
+ } else {
+ $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d);
+ }
+
+ if ($maskGenOnly)
+ return;
+
+ $d = $s;
+
+ for($y=0; $y<$width; $y++) {
+ for($x=0; $x<$width; $x++) {
+ if($bitMask[$y][$x] == 1) {
+ $d[$y][$x] = chr(ord($s[$y][$x]) ^ (int)$bitMask[$y][$x]);
+ }
+ $b += (int)(ord($d[$y][$x]) & 1);
+ }
+ }
+
+ return $b;
+ }
+
+ //----------------------------------------------------------------------
+ public function makeMask($width, $frame, $maskNo, $level)
+ {
+ $masked = array_fill(0, $width, str_repeat("\0", $width));
+ $this->makeMaskNo($maskNo, $width, $frame, $masked);
+ $this->writeFormatInformation($width, $masked, $maskNo, $level);
+
+ return $masked;
+ }
+
+ //----------------------------------------------------------------------
+ public function calcN1N3($length)
+ {
+ $demerit = 0;
+
+ for($i=0; $i<$length; $i++) {
+
+ if($this->runLength[$i] >= 5) {
+ $demerit += (N1 + ($this->runLength[$i] - 5));
+ }
+ if($i & 1) {
+ if(($i >= 3) && ($i < ($length-2)) && ($this->runLength[$i] % 3 == 0)) {
+ $fact = (int)($this->runLength[$i] / 3);
+ if(($this->runLength[$i-2] == $fact) &&
+ ($this->runLength[$i-1] == $fact) &&
+ ($this->runLength[$i+1] == $fact) &&
+ ($this->runLength[$i+2] == $fact)) {
+ if(($this->runLength[$i-3] < 0) || ($this->runLength[$i-3] >= (4 * $fact))) {
+ $demerit += N3;
+ } else if((($i+3) >= $length) || ($this->runLength[$i+3] >= (4 * $fact))) {
+ $demerit += N3;
+ }
+ }
+ }
+ }
+ }
+ return $demerit;
+ }
+
+ //----------------------------------------------------------------------
+ public function evaluateSymbol($width, $frame)
+ {
+ $head = 0;
+ $demerit = 0;
+
+ for($y=0; $y<$width; $y++) {
+ $head = 0;
+ $this->runLength[0] = 1;
+
+ $frameY = $frame[$y];
+
+ if ($y>0)
+ $frameYM = $frame[$y-1];
+
+ for($x=0; $x<$width; $x++) {
+ if(($x > 0) && ($y > 0)) {
+ $b22 = ord($frameY[$x]) & ord($frameY[$x-1]) & ord($frameYM[$x]) & ord($frameYM[$x-1]);
+ $w22 = ord($frameY[$x]) | ord($frameY[$x-1]) | ord($frameYM[$x]) | ord($frameYM[$x-1]);
+
+ if(($b22 | ($w22 ^ 1))&1) {
+ $demerit += N2;
+ }
+ }
+ if(($x == 0) && (ord($frameY[$x]) & 1)) {
+ $this->runLength[0] = -1;
+ $head = 1;
+ $this->runLength[$head] = 1;
+ } else if($x > 0) {
+ if((ord($frameY[$x]) ^ ord($frameY[$x-1])) & 1) {
+ $head++;
+ $this->runLength[$head] = 1;
+ } else {
+ $this->runLength[$head]++;
+ }
+ }
+ }
+
+ $demerit += $this->calcN1N3($head+1);
+ }
+
+ for($x=0; $x<$width; $x++) {
+ $head = 0;
+ $this->runLength[0] = 1;
+
+ for($y=0; $y<$width; $y++) {
+ if($y == 0 && (ord($frame[$y][$x]) & 1)) {
+ $this->runLength[0] = -1;
+ $head = 1;
+ $this->runLength[$head] = 1;
+ } else if($y > 0) {
+ if((ord($frame[$y][$x]) ^ ord($frame[$y-1][$x])) & 1) {
+ $head++;
+ $this->runLength[$head] = 1;
+ } else {
+ $this->runLength[$head]++;
+ }
+ }
+ }
+
+ $demerit += $this->calcN1N3($head+1);
+ }
+
+ return $demerit;
+ }
+
+
+ //----------------------------------------------------------------------
+ public function mask($width, $frame, $level)
+ {
+ $minDemerit = PHP_INT_MAX;
+ $bestMaskNum = 0;
+ $bestMask = array();
+
+ $checked_masks = array(0,1,2,3,4,5,6,7);
+
+ if (QR_FIND_FROM_RANDOM !== false) {
+
+ $howManuOut = 8-(QR_FIND_FROM_RANDOM % 9);
+ for ($i = 0; $i < $howManuOut; $i++) {
+ $remPos = rand (0, count($checked_masks)-1);
+ unset($checked_masks[$remPos]);
+ $checked_masks = array_values($checked_masks);
+ }
+
+ }
+
+ $bestMask = $frame;
+
+ foreach($checked_masks as $i) {
+ $mask = array_fill(0, $width, str_repeat("\0", $width));
+
+ $demerit = 0;
+ $blacks = 0;
+ $blacks = $this->makeMaskNo($i, $width, $frame, $mask);
+ $blacks += $this->writeFormatInformation($width, $mask, $i, $level);
+ $blacks = (int)(100 * $blacks / ($width * $width));
+ $demerit = (int)((int)(abs($blacks - 50) / 5) * N4);
+ $demerit += $this->evaluateSymbol($width, $mask);
+
+ if($demerit < $minDemerit) {
+ $minDemerit = $demerit;
+ $bestMask = $mask;
+ $bestMaskNum = $i;
+ }
+ }
+
+ return $bestMask;
+ }
+
+ //----------------------------------------------------------------------
+ }
diff --git a/library/phpqrcode/qrrscode.php b/library/phpqrcode/qrrscode.php
new file mode 100644
index 000000000..591129a32
--- /dev/null
+++ b/library/phpqrcode/qrrscode.php
@@ -0,0 +1,210 @@
+<?php
+/*
+ * PHP QR Code encoder
+ *
+ * Reed-Solomon error correction support
+ *
+ * Copyright (C) 2002, 2003, 2004, 2006 Phil Karn, KA9Q
+ * (libfec is released under the GNU Lesser General Public License.)
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ class QRrsItem {
+
+ public $mm; // Bits per symbol
+ public $nn; // Symbols per block (= (1<<mm)-1)
+ public $alpha_to = array(); // log lookup table
+ public $index_of = array(); // Antilog lookup table
+ public $genpoly = array(); // Generator polynomial
+ public $nroots; // Number of generator roots = number of parity symbols
+ public $fcr; // First consecutive root, index form
+ public $prim; // Primitive element, index form
+ public $iprim; // prim-th root of 1, index form
+ public $pad; // Padding bytes in shortened block
+ public $gfpoly;
+
+ //----------------------------------------------------------------------
+ public function modnn($x)
+ {
+ while ($x >= $this->nn) {
+ $x -= $this->nn;
+ $x = ($x >> $this->mm) + ($x & $this->nn);
+ }
+
+ return $x;
+ }
+
+ //----------------------------------------------------------------------
+ public static function init_rs_char($symsize, $gfpoly, $fcr, $prim, $nroots, $pad)
+ {
+ // Common code for intializing a Reed-Solomon control block (char or int symbols)
+ // Copyright 2004 Phil Karn, KA9Q
+ // May be used under the terms of the GNU Lesser General Public License (LGPL)
+
+ $rs = null;
+
+ // Check parameter ranges
+ if($symsize < 0 || $symsize > 8) return $rs;
+ if($fcr < 0 || $fcr >= (1<<$symsize)) return $rs;
+ if($prim <= 0 || $prim >= (1<<$symsize)) return $rs;
+ if($nroots < 0 || $nroots >= (1<<$symsize)) return $rs; // Can't have more roots than symbol values!
+ if($pad < 0 || $pad >= ((1<<$symsize) -1 - $nroots)) return $rs; // Too much padding
+
+ $rs = new QRrsItem();
+ $rs->mm = $symsize;
+ $rs->nn = (1<<$symsize)-1;
+ $rs->pad = $pad;
+
+ $rs->alpha_to = array_fill(0, $rs->nn+1, 0);
+ $rs->index_of = array_fill(0, $rs->nn+1, 0);
+
+ // PHP style macro replacement ;)
+ $NN =& $rs->nn;
+ $A0 =& $NN;
+
+ // Generate Galois field lookup tables
+ $rs->index_of[0] = $A0; // log(zero) = -inf
+ $rs->alpha_to[$A0] = 0; // alpha**-inf = 0
+ $sr = 1;
+
+ for($i=0; $i<$rs->nn; $i++) {
+ $rs->index_of[$sr] = $i;
+ $rs->alpha_to[$i] = $sr;
+ $sr <<= 1;
+ if($sr & (1<<$symsize)) {
+ $sr ^= $gfpoly;
+ }
+ $sr &= $rs->nn;
+ }
+
+ if($sr != 1){
+ // field generator polynomial is not primitive!
+ $rs = NULL;
+ return $rs;
+ }
+
+ /* Form RS code generator polynomial from its roots */
+ $rs->genpoly = array_fill(0, $nroots+1, 0);
+
+ $rs->fcr = $fcr;
+ $rs->prim = $prim;
+ $rs->nroots = $nroots;
+ $rs->gfpoly = $gfpoly;
+
+ /* Find prim-th root of 1, used in decoding */
+ for($iprim=1;($iprim % $prim) != 0;$iprim += $rs->nn)
+ ; // intentional empty-body loop!
+
+ $rs->iprim = (int)($iprim / $prim);
+ $rs->genpoly[0] = 1;
+
+ for ($i = 0,$root=$fcr*$prim; $i < $nroots; $i++, $root += $prim) {
+ $rs->genpoly[$i+1] = 1;
+
+ // Multiply rs->genpoly[] by @**(root + x)
+ for ($j = $i; $j > 0; $j--) {
+ if ($rs->genpoly[$j] != 0) {
+ $rs->genpoly[$j] = $rs->genpoly[$j-1] ^ $rs->alpha_to[$rs->modnn($rs->index_of[$rs->genpoly[$j]] + $root)];
+ } else {
+ $rs->genpoly[$j] = $rs->genpoly[$j-1];
+ }
+ }
+ // rs->genpoly[0] can never be zero
+ $rs->genpoly[0] = $rs->alpha_to[$rs->modnn($rs->index_of[$rs->genpoly[0]] + $root)];
+ }
+
+ // convert rs->genpoly[] to index form for quicker encoding
+ for ($i = 0; $i <= $nroots; $i++)
+ $rs->genpoly[$i] = $rs->index_of[$rs->genpoly[$i]];
+
+ return $rs;
+ }
+
+ //----------------------------------------------------------------------
+ public function encode_rs_char($data, &$parity)
+ {
+ $MM =& $this->mm;
+ $NN =& $this->nn;
+ $ALPHA_TO =& $this->alpha_to;
+ $INDEX_OF =& $this->index_of;
+ $GENPOLY =& $this->genpoly;
+ $NROOTS =& $this->nroots;
+ $FCR =& $this->fcr;
+ $PRIM =& $this->prim;
+ $IPRIM =& $this->iprim;
+ $PAD =& $this->pad;
+ $A0 =& $NN;
+
+ $parity = array_fill(0, $NROOTS, 0);
+
+ for($i=0; $i< ($NN-$NROOTS-$PAD); $i++) {
+
+ $feedback = $INDEX_OF[$data[$i] ^ $parity[0]];
+ if($feedback != $A0) {
+ // feedback term is non-zero
+
+ // This line is unnecessary when GENPOLY[NROOTS] is unity, as it must
+ // always be for the polynomials constructed by init_rs()
+ $feedback = $this->modnn($NN - $GENPOLY[$NROOTS] + $feedback);
+
+ for($j=1;$j<$NROOTS;$j++) {
+ $parity[$j] ^= $ALPHA_TO[$this->modnn($feedback + $GENPOLY[$NROOTS-$j])];
+ }
+ }
+
+ // Shift
+ array_shift($parity);
+ if($feedback != $A0) {
+ array_push($parity, $ALPHA_TO[$this->modnn($feedback + $GENPOLY[0])]);
+ } else {
+ array_push($parity, 0);
+ }
+ }
+ }
+ }
+
+ //##########################################################################
+
+ class QRrs {
+
+ public static $items = array();
+
+ //----------------------------------------------------------------------
+ public static function init_rs($symsize, $gfpoly, $fcr, $prim, $nroots, $pad)
+ {
+ foreach(self::$items as $rs) {
+ if($rs->pad != $pad) continue;
+ if($rs->nroots != $nroots) continue;
+ if($rs->mm != $symsize) continue;
+ if($rs->gfpoly != $gfpoly) continue;
+ if($rs->fcr != $fcr) continue;
+ if($rs->prim != $prim) continue;
+
+ return $rs;
+ }
+
+ $rs = QRrsItem::init_rs_char($symsize, $gfpoly, $fcr, $prim, $nroots, $pad);
+ array_unshift(self::$items, $rs);
+
+ return $rs;
+ }
+ } \ No newline at end of file
diff --git a/library/phpqrcode/qrspec.php b/library/phpqrcode/qrspec.php
new file mode 100644
index 000000000..92aea0c78
--- /dev/null
+++ b/library/phpqrcode/qrspec.php
@@ -0,0 +1,592 @@
+<?php
+/*
+ * PHP QR Code encoder
+ *
+ * QR Code specifications
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * The following data / specifications are taken from
+ * "Two dimensional symbol -- QR-code -- Basic Specification" (JIS X0510:2004)
+ * or
+ * "Automatic identification and data capture techniques --
+ * QR Code 2005 bar code symbology specification" (ISO/IEC 18004:2006)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ define('QRSPEC_VERSION_MAX', 40);
+ define('QRSPEC_WIDTH_MAX', 177);
+
+ define('QRCAP_WIDTH', 0);
+ define('QRCAP_WORDS', 1);
+ define('QRCAP_REMINDER', 2);
+ define('QRCAP_EC', 3);
+
+ class QRspec {
+
+ public static $capacity = array(
+ array( 0, 0, 0, array( 0, 0, 0, 0)),
+ array( 21, 26, 0, array( 7, 10, 13, 17)), // 1
+ array( 25, 44, 7, array( 10, 16, 22, 28)),
+ array( 29, 70, 7, array( 15, 26, 36, 44)),
+ array( 33, 100, 7, array( 20, 36, 52, 64)),
+ array( 37, 134, 7, array( 26, 48, 72, 88)), // 5
+ array( 41, 172, 7, array( 36, 64, 96, 112)),
+ array( 45, 196, 0, array( 40, 72, 108, 130)),
+ array( 49, 242, 0, array( 48, 88, 132, 156)),
+ array( 53, 292, 0, array( 60, 110, 160, 192)),
+ array( 57, 346, 0, array( 72, 130, 192, 224)), //10
+ array( 61, 404, 0, array( 80, 150, 224, 264)),
+ array( 65, 466, 0, array( 96, 176, 260, 308)),
+ array( 69, 532, 0, array( 104, 198, 288, 352)),
+ array( 73, 581, 3, array( 120, 216, 320, 384)),
+ array( 77, 655, 3, array( 132, 240, 360, 432)), //15
+ array( 81, 733, 3, array( 144, 280, 408, 480)),
+ array( 85, 815, 3, array( 168, 308, 448, 532)),
+ array( 89, 901, 3, array( 180, 338, 504, 588)),
+ array( 93, 991, 3, array( 196, 364, 546, 650)),
+ array( 97, 1085, 3, array( 224, 416, 600, 700)), //20
+ array(101, 1156, 4, array( 224, 442, 644, 750)),
+ array(105, 1258, 4, array( 252, 476, 690, 816)),
+ array(109, 1364, 4, array( 270, 504, 750, 900)),
+ array(113, 1474, 4, array( 300, 560, 810, 960)),
+ array(117, 1588, 4, array( 312, 588, 870, 1050)), //25
+ array(121, 1706, 4, array( 336, 644, 952, 1110)),
+ array(125, 1828, 4, array( 360, 700, 1020, 1200)),
+ array(129, 1921, 3, array( 390, 728, 1050, 1260)),
+ array(133, 2051, 3, array( 420, 784, 1140, 1350)),
+ array(137, 2185, 3, array( 450, 812, 1200, 1440)), //30
+ array(141, 2323, 3, array( 480, 868, 1290, 1530)),
+ array(145, 2465, 3, array( 510, 924, 1350, 1620)),
+ array(149, 2611, 3, array( 540, 980, 1440, 1710)),
+ array(153, 2761, 3, array( 570, 1036, 1530, 1800)),
+ array(157, 2876, 0, array( 570, 1064, 1590, 1890)), //35
+ array(161, 3034, 0, array( 600, 1120, 1680, 1980)),
+ array(165, 3196, 0, array( 630, 1204, 1770, 2100)),
+ array(169, 3362, 0, array( 660, 1260, 1860, 2220)),
+ array(173, 3532, 0, array( 720, 1316, 1950, 2310)),
+ array(177, 3706, 0, array( 750, 1372, 2040, 2430)) //40
+ );
+
+ //----------------------------------------------------------------------
+ public static function getDataLength($version, $level)
+ {
+ return self::$capacity[$version][QRCAP_WORDS] - self::$capacity[$version][QRCAP_EC][$level];
+ }
+
+ //----------------------------------------------------------------------
+ public static function getECCLength($version, $level)
+ {
+ return self::$capacity[$version][QRCAP_EC][$level];
+ }
+
+ //----------------------------------------------------------------------
+ public static function getWidth($version)
+ {
+ return self::$capacity[$version][QRCAP_WIDTH];
+ }
+
+ //----------------------------------------------------------------------
+ public static function getRemainder($version)
+ {
+ return self::$capacity[$version][QRCAP_REMINDER];
+ }
+
+ //----------------------------------------------------------------------
+ public static function getMinimumVersion($size, $level)
+ {
+
+ for($i=1; $i<= QRSPEC_VERSION_MAX; $i++) {
+ $words = self::$capacity[$i][QRCAP_WORDS] - self::$capacity[$i][QRCAP_EC][$level];
+ if($words >= $size)
+ return $i;
+ }
+
+ return -1;
+ }
+
+ //######################################################################
+
+ public static $lengthTableBits = array(
+ array(10, 12, 14),
+ array( 9, 11, 13),
+ array( 8, 16, 16),
+ array( 8, 10, 12)
+ );
+
+ //----------------------------------------------------------------------
+ public static function lengthIndicator($mode, $version)
+ {
+ if ($mode == QR_MODE_STRUCTURE)
+ return 0;
+
+ if ($version <= 9) {
+ $l = 0;
+ } else if ($version <= 26) {
+ $l = 1;
+ } else {
+ $l = 2;
+ }
+
+ return self::$lengthTableBits[$mode][$l];
+ }
+
+ //----------------------------------------------------------------------
+ public static function maximumWords($mode, $version)
+ {
+ if($mode == QR_MODE_STRUCTURE)
+ return 3;
+
+ if($version <= 9) {
+ $l = 0;
+ } else if($version <= 26) {
+ $l = 1;
+ } else {
+ $l = 2;
+ }
+
+ $bits = self::$lengthTableBits[$mode][$l];
+ $words = (1 << $bits) - 1;
+
+ if($mode == QR_MODE_KANJI) {
+ $words *= 2; // the number of bytes is required
+ }
+
+ return $words;
+ }
+
+ // Error correction code -----------------------------------------------
+ // Table of the error correction code (Reed-Solomon block)
+ // See Table 12-16 (pp.30-36), JIS X0510:2004.
+
+ public static $eccTable = array(
+ array(array( 0, 0), array( 0, 0), array( 0, 0), array( 0, 0)),
+ array(array( 1, 0), array( 1, 0), array( 1, 0), array( 1, 0)), // 1
+ array(array( 1, 0), array( 1, 0), array( 1, 0), array( 1, 0)),
+ array(array( 1, 0), array( 1, 0), array( 2, 0), array( 2, 0)),
+ array(array( 1, 0), array( 2, 0), array( 2, 0), array( 4, 0)),
+ array(array( 1, 0), array( 2, 0), array( 2, 2), array( 2, 2)), // 5
+ array(array( 2, 0), array( 4, 0), array( 4, 0), array( 4, 0)),
+ array(array( 2, 0), array( 4, 0), array( 2, 4), array( 4, 1)),
+ array(array( 2, 0), array( 2, 2), array( 4, 2), array( 4, 2)),
+ array(array( 2, 0), array( 3, 2), array( 4, 4), array( 4, 4)),
+ array(array( 2, 2), array( 4, 1), array( 6, 2), array( 6, 2)), //10
+ array(array( 4, 0), array( 1, 4), array( 4, 4), array( 3, 8)),
+ array(array( 2, 2), array( 6, 2), array( 4, 6), array( 7, 4)),
+ array(array( 4, 0), array( 8, 1), array( 8, 4), array(12, 4)),
+ array(array( 3, 1), array( 4, 5), array(11, 5), array(11, 5)),
+ array(array( 5, 1), array( 5, 5), array( 5, 7), array(11, 7)), //15
+ array(array( 5, 1), array( 7, 3), array(15, 2), array( 3, 13)),
+ array(array( 1, 5), array(10, 1), array( 1, 15), array( 2, 17)),
+ array(array( 5, 1), array( 9, 4), array(17, 1), array( 2, 19)),
+ array(array( 3, 4), array( 3, 11), array(17, 4), array( 9, 16)),
+ array(array( 3, 5), array( 3, 13), array(15, 5), array(15, 10)), //20
+ array(array( 4, 4), array(17, 0), array(17, 6), array(19, 6)),
+ array(array( 2, 7), array(17, 0), array( 7, 16), array(34, 0)),
+ array(array( 4, 5), array( 4, 14), array(11, 14), array(16, 14)),
+ array(array( 6, 4), array( 6, 14), array(11, 16), array(30, 2)),
+ array(array( 8, 4), array( 8, 13), array( 7, 22), array(22, 13)), //25
+ array(array(10, 2), array(19, 4), array(28, 6), array(33, 4)),
+ array(array( 8, 4), array(22, 3), array( 8, 26), array(12, 28)),
+ array(array( 3, 10), array( 3, 23), array( 4, 31), array(11, 31)),
+ array(array( 7, 7), array(21, 7), array( 1, 37), array(19, 26)),
+ array(array( 5, 10), array(19, 10), array(15, 25), array(23, 25)), //30
+ array(array(13, 3), array( 2, 29), array(42, 1), array(23, 28)),
+ array(array(17, 0), array(10, 23), array(10, 35), array(19, 35)),
+ array(array(17, 1), array(14, 21), array(29, 19), array(11, 46)),
+ array(array(13, 6), array(14, 23), array(44, 7), array(59, 1)),
+ array(array(12, 7), array(12, 26), array(39, 14), array(22, 41)), //35
+ array(array( 6, 14), array( 6, 34), array(46, 10), array( 2, 64)),
+ array(array(17, 4), array(29, 14), array(49, 10), array(24, 46)),
+ array(array( 4, 18), array(13, 32), array(48, 14), array(42, 32)),
+ array(array(20, 4), array(40, 7), array(43, 22), array(10, 67)),
+ array(array(19, 6), array(18, 31), array(34, 34), array(20, 61)),//40
+ );
+
+ //----------------------------------------------------------------------
+ // CACHEABLE!!!
+
+ public static function getEccSpec($version, $level, array &$spec)
+ {
+ if (count($spec) < 5) {
+ $spec = array(0,0,0,0,0);
+ }
+
+ $b1 = self::$eccTable[$version][$level][0];
+ $b2 = self::$eccTable[$version][$level][1];
+ $data = self::getDataLength($version, $level);
+ $ecc = self::getECCLength($version, $level);
+
+ if($b2 == 0) {
+ $spec[0] = $b1;
+ $spec[1] = (int)($data / $b1);
+ $spec[2] = (int)($ecc / $b1);
+ $spec[3] = 0;
+ $spec[4] = 0;
+ } else {
+ $spec[0] = $b1;
+ $spec[1] = (int)($data / ($b1 + $b2));
+ $spec[2] = (int)($ecc / ($b1 + $b2));
+ $spec[3] = $b2;
+ $spec[4] = $spec[1] + 1;
+ }
+ }
+
+ // Alignment pattern ---------------------------------------------------
+
+ // Positions of alignment patterns.
+ // This array includes only the second and the third position of the
+ // alignment patterns. Rest of them can be calculated from the distance
+ // between them.
+
+ // See Table 1 in Appendix E (pp.71) of JIS X0510:2004.
+
+ public static $alignmentPattern = array(
+ array( 0, 0),
+ array( 0, 0), array(18, 0), array(22, 0), array(26, 0), array(30, 0), // 1- 5
+ array(34, 0), array(22, 38), array(24, 42), array(26, 46), array(28, 50), // 6-10
+ array(30, 54), array(32, 58), array(34, 62), array(26, 46), array(26, 48), //11-15
+ array(26, 50), array(30, 54), array(30, 56), array(30, 58), array(34, 62), //16-20
+ array(28, 50), array(26, 50), array(30, 54), array(28, 54), array(32, 58), //21-25
+ array(30, 58), array(34, 62), array(26, 50), array(30, 54), array(26, 52), //26-30
+ array(30, 56), array(34, 60), array(30, 58), array(34, 62), array(30, 54), //31-35
+ array(24, 50), array(28, 54), array(32, 58), array(26, 54), array(30, 58), //35-40
+ );
+
+
+ /** --------------------------------------------------------------------
+ * Put an alignment marker.
+ * @param frame
+ * @param width
+ * @param ox,oy center coordinate of the pattern
+ */
+ public static function putAlignmentMarker(array &$frame, $ox, $oy)
+ {
+ $finder = array(
+ "\xa1\xa1\xa1\xa1\xa1",
+ "\xa1\xa0\xa0\xa0\xa1",
+ "\xa1\xa0\xa1\xa0\xa1",
+ "\xa1\xa0\xa0\xa0\xa1",
+ "\xa1\xa1\xa1\xa1\xa1"
+ );
+
+ $yStart = $oy-2;
+ $xStart = $ox-2;
+
+ for($y=0; $y<5; $y++) {
+ QRstr::set($frame, $xStart, $yStart+$y, $finder[$y]);
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public static function putAlignmentPattern($version, &$frame, $width)
+ {
+ if($version < 2)
+ return;
+
+ $d = self::$alignmentPattern[$version][1] - self::$alignmentPattern[$version][0];
+ if($d < 0) {
+ $w = 2;
+ } else {
+ $w = (int)(($width - self::$alignmentPattern[$version][0]) / $d + 2);
+ }
+
+ if($w * $w - 3 == 1) {
+ $x = self::$alignmentPattern[$version][0];
+ $y = self::$alignmentPattern[$version][0];
+ self::putAlignmentMarker($frame, $x, $y);
+ return;
+ }
+
+ $cx = self::$alignmentPattern[$version][0];
+ for($x=1; $x<$w - 1; $x++) {
+ self::putAlignmentMarker($frame, 6, $cx);
+ self::putAlignmentMarker($frame, $cx, 6);
+ $cx += $d;
+ }
+
+ $cy = self::$alignmentPattern[$version][0];
+ for($y=0; $y<$w-1; $y++) {
+ $cx = self::$alignmentPattern[$version][0];
+ for($x=0; $x<$w-1; $x++) {
+ self::putAlignmentMarker($frame, $cx, $cy);
+ $cx += $d;
+ }
+ $cy += $d;
+ }
+ }
+
+ // Version information pattern -----------------------------------------
+
+ // Version information pattern (BCH coded).
+ // See Table 1 in Appendix D (pp.68) of JIS X0510:2004.
+
+ // size: [QRSPEC_VERSION_MAX - 6]
+
+ public static $versionPattern = array(
+ 0x07c94, 0x085bc, 0x09a99, 0x0a4d3, 0x0bbf6, 0x0c762, 0x0d847, 0x0e60d,
+ 0x0f928, 0x10b78, 0x1145d, 0x12a17, 0x13532, 0x149a6, 0x15683, 0x168c9,
+ 0x177ec, 0x18ec4, 0x191e1, 0x1afab, 0x1b08e, 0x1cc1a, 0x1d33f, 0x1ed75,
+ 0x1f250, 0x209d5, 0x216f0, 0x228ba, 0x2379f, 0x24b0b, 0x2542e, 0x26a64,
+ 0x27541, 0x28c69
+ );
+
+ //----------------------------------------------------------------------
+ public static function getVersionPattern($version)
+ {
+ if($version < 7 || $version > QRSPEC_VERSION_MAX)
+ return 0;
+
+ return self::$versionPattern[$version -7];
+ }
+
+ // Format information --------------------------------------------------
+ // See calcFormatInfo in tests/test_qrspec.c (orginal qrencode c lib)
+
+ public static $formatInfo = array(
+ array(0x77c4, 0x72f3, 0x7daa, 0x789d, 0x662f, 0x6318, 0x6c41, 0x6976),
+ array(0x5412, 0x5125, 0x5e7c, 0x5b4b, 0x45f9, 0x40ce, 0x4f97, 0x4aa0),
+ array(0x355f, 0x3068, 0x3f31, 0x3a06, 0x24b4, 0x2183, 0x2eda, 0x2bed),
+ array(0x1689, 0x13be, 0x1ce7, 0x19d0, 0x0762, 0x0255, 0x0d0c, 0x083b)
+ );
+
+ public static function getFormatInfo($mask, $level)
+ {
+ if($mask < 0 || $mask > 7)
+ return 0;
+
+ if($level < 0 || $level > 3)
+ return 0;
+
+ return self::$formatInfo[$level][$mask];
+ }
+
+ // Frame ---------------------------------------------------------------
+ // Cache of initial frames.
+
+ public static $frames = array();
+
+ /** --------------------------------------------------------------------
+ * Put a finder pattern.
+ * @param frame
+ * @param width
+ * @param ox,oy upper-left coordinate of the pattern
+ */
+ public static function putFinderPattern(&$frame, $ox, $oy)
+ {
+ $finder = array(
+ "\xc1\xc1\xc1\xc1\xc1\xc1\xc1",
+ "\xc1\xc0\xc0\xc0\xc0\xc0\xc1",
+ "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
+ "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
+ "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
+ "\xc1\xc0\xc0\xc0\xc0\xc0\xc1",
+ "\xc1\xc1\xc1\xc1\xc1\xc1\xc1"
+ );
+
+ for($y=0; $y<7; $y++) {
+ QRstr::set($frame, $ox, $oy+$y, $finder[$y]);
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public static function createFrame($version)
+ {
+ $width = self::$capacity[$version][QRCAP_WIDTH];
+ $frameLine = str_repeat ("\0", $width);
+ $frame = array_fill(0, $width, $frameLine);
+
+ // Finder pattern
+ self::putFinderPattern($frame, 0, 0);
+ self::putFinderPattern($frame, $width - 7, 0);
+ self::putFinderPattern($frame, 0, $width - 7);
+
+ // Separator
+ $yOffset = $width - 7;
+
+ for($y=0; $y<7; $y++) {
+ $frame[$y][7] = "\xc0";
+ $frame[$y][$width - 8] = "\xc0";
+ $frame[$yOffset][7] = "\xc0";
+ $yOffset++;
+ }
+
+ $setPattern = str_repeat("\xc0", 8);
+
+ QRstr::set($frame, 0, 7, $setPattern);
+ QRstr::set($frame, $width-8, 7, $setPattern);
+ QRstr::set($frame, 0, $width - 8, $setPattern);
+
+ // Format info
+ $setPattern = str_repeat("\x84", 9);
+ QRstr::set($frame, 0, 8, $setPattern);
+ QRstr::set($frame, $width - 8, 8, $setPattern, 8);
+
+ $yOffset = $width - 8;
+
+ for($y=0; $y<8; $y++,$yOffset++) {
+ $frame[$y][8] = "\x84";
+ $frame[$yOffset][8] = "\x84";
+ }
+
+ // Timing pattern
+
+ for($i=1; $i<$width-15; $i++) {
+ $frame[6][7+$i] = chr(0x90 | ($i & 1));
+ $frame[7+$i][6] = chr(0x90 | ($i & 1));
+ }
+
+ // Alignment pattern
+ self::putAlignmentPattern($version, $frame, $width);
+
+ // Version information
+ if($version >= 7) {
+ $vinf = self::getVersionPattern($version);
+
+ $v = $vinf;
+
+ for($x=0; $x<6; $x++) {
+ for($y=0; $y<3; $y++) {
+ $frame[($width - 11)+$y][$x] = chr(0x88 | ($v & 1));
+ $v = $v >> 1;
+ }
+ }
+
+ $v = $vinf;
+ for($y=0; $y<6; $y++) {
+ for($x=0; $x<3; $x++) {
+ $frame[$y][$x+($width - 11)] = chr(0x88 | ($v & 1));
+ $v = $v >> 1;
+ }
+ }
+ }
+
+ // and a little bit...
+ $frame[$width - 8][8] = "\x81";
+
+ return $frame;
+ }
+
+ //----------------------------------------------------------------------
+ public static function debug($frame, $binary_mode = false)
+ {
+ if ($binary_mode) {
+
+ foreach ($frame as &$frameLine) {
+ $frameLine = join('<span class="m">&nbsp;&nbsp;</span>', explode('0', $frameLine));
+ $frameLine = join('&#9608;&#9608;', explode('1', $frameLine));
+ }
+
+ ?>
+ <style>
+ .m { background-color: white; }
+ </style>
+ <?php
+ echo '<pre><tt><br/ ><br/ ><br/ >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
+ echo join("<br/ >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", $frame);
+ echo '</tt></pre><br/ ><br/ ><br/ ><br/ ><br/ ><br/ >';
+
+ } else {
+
+ foreach ($frame as &$frameLine) {
+ $frameLine = join('<span class="m">&nbsp;</span>', explode("\xc0", $frameLine));
+ $frameLine = join('<span class="m">&#9618;</span>', explode("\xc1", $frameLine));
+ $frameLine = join('<span class="p">&nbsp;</span>', explode("\xa0", $frameLine));
+ $frameLine = join('<span class="p">&#9618;</span>', explode("\xa1", $frameLine));
+ $frameLine = join('<span class="s">&#9671;</span>', explode("\x84", $frameLine)); //format 0
+ $frameLine = join('<span class="s">&#9670;</span>', explode("\x85", $frameLine)); //format 1
+ $frameLine = join('<span class="x">&#9762;</span>', explode("\x81", $frameLine)); //special bit
+ $frameLine = join('<span class="c">&nbsp;</span>', explode("\x90", $frameLine)); //clock 0
+ $frameLine = join('<span class="c">&#9719;</span>', explode("\x91", $frameLine)); //clock 1
+ $frameLine = join('<span class="f">&nbsp;</span>', explode("\x88", $frameLine)); //version
+ $frameLine = join('<span class="f">&#9618;</span>', explode("\x89", $frameLine)); //version
+ $frameLine = join('&#9830;', explode("\x01", $frameLine));
+ $frameLine = join('&#8901;', explode("\0", $frameLine));
+ }
+
+ ?>
+ <style>
+ .p { background-color: yellow; }
+ .m { background-color: #00FF00; }
+ .s { background-color: #FF0000; }
+ .c { background-color: aqua; }
+ .x { background-color: pink; }
+ .f { background-color: gold; }
+ </style>
+ <?php
+ echo "<pre><tt>";
+ echo join("<br/ >", $frame);
+ echo "</tt></pre>";
+
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public static function serial($frame)
+ {
+ return gzcompress(join("\n", $frame), 9);
+ }
+
+ //----------------------------------------------------------------------
+ public static function unserial($code)
+ {
+ return explode("\n", gzuncompress($code));
+ }
+
+ //----------------------------------------------------------------------
+ public static function newFrame($version)
+ {
+ if($version < 1 || $version > QRSPEC_VERSION_MAX)
+ return null;
+
+ if(!isset(self::$frames[$version])) {
+
+ $fileName = QR_CACHE_DIR.'frame_'.$version.'.dat';
+
+ if (QR_CACHEABLE) {
+ if (file_exists($fileName)) {
+ self::$frames[$version] = self::unserial(file_get_contents($fileName));
+ } else {
+ self::$frames[$version] = self::createFrame($version);
+ file_put_contents($fileName, self::serial(self::$frames[$version]));
+ }
+ } else {
+ self::$frames[$version] = self::createFrame($version);
+ }
+ }
+
+ if(is_null(self::$frames[$version]))
+ return null;
+
+ return self::$frames[$version];
+ }
+
+ //----------------------------------------------------------------------
+ public static function rsBlockNum($spec) { return $spec[0] + $spec[3]; }
+ public static function rsBlockNum1($spec) { return $spec[0]; }
+ public static function rsDataCodes1($spec) { return $spec[1]; }
+ public static function rsEccCodes1($spec) { return $spec[2]; }
+ public static function rsBlockNum2($spec) { return $spec[3]; }
+ public static function rsDataCodes2($spec) { return $spec[4]; }
+ public static function rsEccCodes2($spec) { return $spec[2]; }
+ public static function rsDataLength($spec) { return ($spec[0] * $spec[1]) + ($spec[3] * $spec[4]); }
+ public static function rsEccLength($spec) { return ($spec[0] + $spec[3]) * $spec[2]; }
+
+ } \ No newline at end of file
diff --git a/library/phpqrcode/qrsplit.php b/library/phpqrcode/qrsplit.php
new file mode 100644
index 000000000..d75b82737
--- /dev/null
+++ b/library/phpqrcode/qrsplit.php
@@ -0,0 +1,311 @@
+<?php
+/*
+ * PHP QR Code encoder
+ *
+ * Input splitting classes
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * The following data / specifications are taken from
+ * "Two dimensional symbol -- QR-code -- Basic Specification" (JIS X0510:2004)
+ * or
+ * "Automatic identification and data capture techniques --
+ * QR Code 2005 bar code symbology specification" (ISO/IEC 18004:2006)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+ class QRsplit {
+
+ public $dataStr = '';
+ public $input;
+ public $modeHint;
+
+ //----------------------------------------------------------------------
+ public function __construct($dataStr, $input, $modeHint)
+ {
+ $this->dataStr = $dataStr;
+ $this->input = $input;
+ $this->modeHint = $modeHint;
+ }
+
+ //----------------------------------------------------------------------
+ public static function isdigitat($str, $pos)
+ {
+ if ($pos >= strlen($str))
+ return false;
+
+ return ((ord($str[$pos]) >= ord('0'))&&(ord($str[$pos]) <= ord('9')));
+ }
+
+ //----------------------------------------------------------------------
+ public static function isalnumat($str, $pos)
+ {
+ if ($pos >= strlen($str))
+ return false;
+
+ return (QRinput::lookAnTable(ord($str[$pos])) >= 0);
+ }
+
+ //----------------------------------------------------------------------
+ public function identifyMode($pos)
+ {
+ if ($pos >= strlen($this->dataStr))
+ return QR_MODE_NUL;
+
+ $c = $this->dataStr[$pos];
+
+ if(self::isdigitat($this->dataStr, $pos)) {
+ return QR_MODE_NUM;
+ } else if(self::isalnumat($this->dataStr, $pos)) {
+ return QR_MODE_AN;
+ } else if($this->modeHint == QR_MODE_KANJI) {
+
+ if ($pos+1 < strlen($this->dataStr))
+ {
+ $d = $this->dataStr[$pos+1];
+ $word = (ord($c) << 8) | ord($d);
+ if(($word >= 0x8140 && $word <= 0x9ffc) || ($word >= 0xe040 && $word <= 0xebbf)) {
+ return QR_MODE_KANJI;
+ }
+ }
+ }
+
+ return QR_MODE_8;
+ }
+
+ //----------------------------------------------------------------------
+ public function eatNum()
+ {
+ $ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
+
+ $p = 0;
+ while(self::isdigitat($this->dataStr, $p)) {
+ $p++;
+ }
+
+ $run = $p;
+ $mode = $this->identifyMode($p);
+
+ if($mode == QR_MODE_8) {
+ $dif = QRinput::estimateBitsModeNum($run) + 4 + $ln
+ + QRinput::estimateBitsMode8(1) // + 4 + l8
+ - QRinput::estimateBitsMode8($run + 1); // - 4 - l8
+ if($dif > 0) {
+ return $this->eat8();
+ }
+ }
+ if($mode == QR_MODE_AN) {
+ $dif = QRinput::estimateBitsModeNum($run) + 4 + $ln
+ + QRinput::estimateBitsModeAn(1) // + 4 + la
+ - QRinput::estimateBitsModeAn($run + 1);// - 4 - la
+ if($dif > 0) {
+ return $this->eatAn();
+ }
+ }
+
+ $ret = $this->input->append(QR_MODE_NUM, $run, str_split($this->dataStr));
+ if($ret < 0)
+ return -1;
+
+ return $run;
+ }
+
+ //----------------------------------------------------------------------
+ public function eatAn()
+ {
+ $la = QRspec::lengthIndicator(QR_MODE_AN, $this->input->getVersion());
+ $ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
+
+ $p = 0;
+
+ while(self::isalnumat($this->dataStr, $p)) {
+ if(self::isdigitat($this->dataStr, $p)) {
+ $q = $p;
+ while(self::isdigitat($this->dataStr, $q)) {
+ $q++;
+ }
+
+ $dif = QRinput::estimateBitsModeAn($p) // + 4 + la
+ + QRinput::estimateBitsModeNum($q - $p) + 4 + $ln
+ - QRinput::estimateBitsModeAn($q); // - 4 - la
+
+ if($dif < 0) {
+ break;
+ } else {
+ $p = $q;
+ }
+ } else {
+ $p++;
+ }
+ }
+
+ $run = $p;
+
+ if(!self::isalnumat($this->dataStr, $p)) {
+ $dif = QRinput::estimateBitsModeAn($run) + 4 + $la
+ + QRinput::estimateBitsMode8(1) // + 4 + l8
+ - QRinput::estimateBitsMode8($run + 1); // - 4 - l8
+ if($dif > 0) {
+ return $this->eat8();
+ }
+ }
+
+ $ret = $this->input->append(QR_MODE_AN, $run, str_split($this->dataStr));
+ if($ret < 0)
+ return -1;
+
+ return $run;
+ }
+
+ //----------------------------------------------------------------------
+ public function eatKanji()
+ {
+ $p = 0;
+
+ while($this->identifyMode($p) == QR_MODE_KANJI) {
+ $p += 2;
+ }
+
+ $ret = $this->input->append(QR_MODE_KANJI, $p, str_split($this->dataStr));
+ if($ret < 0)
+ return -1;
+
+ return $run;
+ }
+
+ //----------------------------------------------------------------------
+ public function eat8()
+ {
+ $la = QRspec::lengthIndicator(QR_MODE_AN, $this->input->getVersion());
+ $ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
+
+ $p = 1;
+ $dataStrLen = strlen($this->dataStr);
+
+ while($p < $dataStrLen) {
+
+ $mode = $this->identifyMode($p);
+ if($mode == QR_MODE_KANJI) {
+ break;
+ }
+ if($mode == QR_MODE_NUM) {
+ $q = $p;
+ while(self::isdigitat($this->dataStr, $q)) {
+ $q++;
+ }
+ $dif = QRinput::estimateBitsMode8($p) // + 4 + l8
+ + QRinput::estimateBitsModeNum($q - $p) + 4 + $ln
+ - QRinput::estimateBitsMode8($q); // - 4 - l8
+ if($dif < 0) {
+ break;
+ } else {
+ $p = $q;
+ }
+ } else if($mode == QR_MODE_AN) {
+ $q = $p;
+ while(self::isalnumat($this->dataStr, $q)) {
+ $q++;
+ }
+ $dif = QRinput::estimateBitsMode8($p) // + 4 + l8
+ + QRinput::estimateBitsModeAn($q - $p) + 4 + $la
+ - QRinput::estimateBitsMode8($q); // - 4 - l8
+ if($dif < 0) {
+ break;
+ } else {
+ $p = $q;
+ }
+ } else {
+ $p++;
+ }
+ }
+
+ $run = $p;
+ $ret = $this->input->append(QR_MODE_8, $run, str_split($this->dataStr));
+
+ if($ret < 0)
+ return -1;
+
+ return $run;
+ }
+
+ //----------------------------------------------------------------------
+ public function splitString()
+ {
+ while (strlen($this->dataStr) > 0)
+ {
+ if($this->dataStr == '')
+ return 0;
+
+ $mode = $this->identifyMode(0);
+
+ switch ($mode) {
+ case QR_MODE_NUM: $length = $this->eatNum(); break;
+ case QR_MODE_AN: $length = $this->eatAn(); break;
+ case QR_MODE_KANJI:
+ if ($hint == QR_MODE_KANJI)
+ $length = $this->eatKanji();
+ else $length = $this->eat8();
+ break;
+ default: $length = $this->eat8(); break;
+
+ }
+
+ if($length == 0) return 0;
+ if($length < 0) return -1;
+
+ $this->dataStr = substr($this->dataStr, $length);
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public function toUpper()
+ {
+ $stringLen = strlen($this->dataStr);
+ $p = 0;
+
+ while ($p<$stringLen) {
+ $mode = self::identifyMode(substr($this->dataStr, $p), $this->modeHint);
+ if($mode == QR_MODE_KANJI) {
+ $p += 2;
+ } else {
+ if (ord($this->dataStr[$p]) >= ord('a') && ord($this->dataStr[$p]) <= ord('z')) {
+ $this->dataStr[$p] = chr(ord($this->dataStr[$p]) - 32);
+ }
+ $p++;
+ }
+ }
+
+ return $this->dataStr;
+ }
+
+ //----------------------------------------------------------------------
+ public static function splitStringToQRinput($string, QRinput $input, $modeHint, $casesensitive = true)
+ {
+ if(is_null($string) || $string == '\0' || $string == '') {
+ throw new Exception('empty string!!!');
+ }
+
+ $split = new QRsplit($string, $input, $modeHint);
+
+ if(!$casesensitive)
+ $split->toUpper();
+
+ return $split->splitString();
+ }
+ } \ No newline at end of file
diff --git a/library/phpqrcode/qrtools.php b/library/phpqrcode/qrtools.php
new file mode 100644
index 000000000..3012db493
--- /dev/null
+++ b/library/phpqrcode/qrtools.php
@@ -0,0 +1,172 @@
+<?php
+/*
+ * PHP QR Code encoder
+ *
+ * Toolset, handy and debug utilites.
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ class QRtools {
+
+ //----------------------------------------------------------------------
+ public static function binarize($frame)
+ {
+ $len = count($frame);
+ foreach ($frame as &$frameLine) {
+
+ for($i=0; $i<$len; $i++) {
+ $frameLine[$i] = (ord($frameLine[$i])&1)?'1':'0';
+ }
+ }
+
+ return $frame;
+ }
+
+ //----------------------------------------------------------------------
+ public static function tcpdfBarcodeArray($code, $mode = 'QR,L', $tcPdfVersion = '4.5.037')
+ {
+ $barcode_array = array();
+
+ if (!is_array($mode))
+ $mode = explode(',', $mode);
+
+ $eccLevel = 'L';
+
+ if (count($mode) > 1) {
+ $eccLevel = $mode[1];
+ }
+
+ $qrTab = QRcode::text($code, false, $eccLevel);
+ $size = count($qrTab);
+
+ $barcode_array['num_rows'] = $size;
+ $barcode_array['num_cols'] = $size;
+ $barcode_array['bcode'] = array();
+
+ foreach ($qrTab as $line) {
+ $arrAdd = array();
+ foreach(str_split($line) as $char)
+ $arrAdd[] = ($char=='1')?1:0;
+ $barcode_array['bcode'][] = $arrAdd;
+ }
+
+ return $barcode_array;
+ }
+
+ //----------------------------------------------------------------------
+ public static function clearCache()
+ {
+ self::$frames = array();
+ }
+
+ //----------------------------------------------------------------------
+ public static function buildCache()
+ {
+ QRtools::markTime('before_build_cache');
+
+ $mask = new QRmask();
+ for ($a=1; $a <= QRSPEC_VERSION_MAX; $a++) {
+ $frame = QRspec::newFrame($a);
+ if (QR_IMAGE) {
+ $fileName = QR_CACHE_DIR.'frame_'.$a.'.png';
+ QRimage::png(self::binarize($frame), $fileName, 1, 0);
+ }
+
+ $width = count($frame);
+ $bitMask = array_fill(0, $width, array_fill(0, $width, 0));
+ for ($maskNo=0; $maskNo<8; $maskNo++)
+ $mask->makeMaskNo($maskNo, $width, $frame, $bitMask, true);
+ }
+
+ QRtools::markTime('after_build_cache');
+ }
+
+ //----------------------------------------------------------------------
+ public static function log($outfile, $err)
+ {
+ if (QR_LOG_DIR !== false) {
+ if ($err != '') {
+ if ($outfile !== false) {
+ file_put_contents(QR_LOG_DIR.basename($outfile).'-errors.txt', date('Y-m-d H:i:s').': '.$err, FILE_APPEND);
+ } else {
+ file_put_contents(QR_LOG_DIR.'errors.txt', date('Y-m-d H:i:s').': '.$err, FILE_APPEND);
+ }
+ }
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public static function dumpMask($frame)
+ {
+ $width = count($frame);
+ for($y=0;$y<$width;$y++) {
+ for($x=0;$x<$width;$x++) {
+ echo ord($frame[$y][$x]).',';
+ }
+ }
+ }
+
+ //----------------------------------------------------------------------
+ public static function markTime($markerId)
+ {
+ list($usec, $sec) = explode(" ", microtime());
+ $time = ((float)$usec + (float)$sec);
+
+ if (!isset($GLOBALS['qr_time_bench']))
+ $GLOBALS['qr_time_bench'] = array();
+
+ $GLOBALS['qr_time_bench'][$markerId] = $time;
+ }
+
+ //----------------------------------------------------------------------
+ public static function timeBenchmark()
+ {
+ self::markTime('finish');
+
+ $lastTime = 0;
+ $startTime = 0;
+ $p = 0;
+
+ echo '<table cellpadding="3" cellspacing="1">
+ <thead><tr style="border-bottom:1px solid silver"><td colspan="2" style="text-align:center">BENCHMARK</td></tr></thead>
+ <tbody>';
+
+ foreach($GLOBALS['qr_time_bench'] as $markerId=>$thisTime) {
+ if ($p > 0) {
+ echo '<tr><th style="text-align:right">till '.$markerId.': </th><td>'.number_format($thisTime-$lastTime, 6).'s</td></tr>';
+ } else {
+ $startTime = $thisTime;
+ }
+
+ $p++;
+ $lastTime = $thisTime;
+ }
+
+ echo '</tbody><tfoot>
+ <tr style="border-top:2px solid black"><th style="text-align:right">TOTAL: </th><td>'.number_format($lastTime-$startTime, 6).'s</td></tr>
+ </tfoot>
+ </table>';
+ }
+
+ }
+
+ //##########################################################################
+
+ QRtools::markTime('start');
+ \ No newline at end of file
diff --git a/library/phpqrcode/tools/merge.bat b/library/phpqrcode/tools/merge.bat
new file mode 100644
index 000000000..b60a4853c
--- /dev/null
+++ b/library/phpqrcode/tools/merge.bat
@@ -0,0 +1,2 @@
+php ./merge.php
+pause \ No newline at end of file
diff --git a/library/phpqrcode/tools/merge.php b/library/phpqrcode/tools/merge.php
new file mode 100644
index 000000000..19d338b34
--- /dev/null
+++ b/library/phpqrcode/tools/merge.php
@@ -0,0 +1,70 @@
+<?php
+
+/*
+ * PHP QR Code encoder
+ *
+ * Tool for merging all library files into one, simpler to incorporate.
+ *
+ * MAKE SURE THAT RESULTING PHPQRCode.php (and its dir) ARE WRITABLE!
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ $QR_BASEDIR = dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR;
+ $QR_TOOLSDIR = dirname(__FILE__).DIRECTORY_SEPARATOR;
+
+ $outputFile = $QR_BASEDIR.'phpqrcode.php';
+
+ // Required libs
+
+ $fileList = array(
+ $QR_BASEDIR.'qrconst.php',
+ $QR_TOOLSDIR.'merged_config.php',
+ $QR_BASEDIR.'qrtools.php',
+ $QR_BASEDIR.'qrspec.php',
+ $QR_BASEDIR.'qrimage.php',
+ $QR_BASEDIR.'qrinput.php',
+ $QR_BASEDIR.'qrbitstream.php',
+ $QR_BASEDIR.'qrsplit.php',
+ $QR_BASEDIR.'qrrscode.php',
+ $QR_BASEDIR.'qrmask.php',
+ $QR_BASEDIR.'qrencode.php'
+ );
+
+ $headerFile = $QR_TOOLSDIR.'merged_header.php';
+ $versionFile = $QR_BASEDIR.'VERSION';
+
+ $outputCode = '';
+
+ foreach($fileList as $fileName) {
+ $outputCode .= "\n\n".'//---- '.basename($fileName).' -----------------------------'."\n\n";
+ $anotherCode = file_get_contents($fileName);
+ $anotherCode = preg_replace ('/^<\?php/', '', $anotherCode);
+ $anotherCode = preg_replace ('/\?>\*$/', '', $anotherCode);
+ $outputCode .= "\n\n".$anotherCode."\n\n";
+ }
+
+ $versionDataEx = explode("\n", file_get_contents($versionFile));
+
+ $outputContents = file_get_contents($headerFile);
+ $outputContents .= "\n\n/*\n * Version: ".trim($versionDataEx[0])."\n * Build: ".trim($versionDataEx[1])."\n */\n\n";
+ $outputContents .= $outputCode;
+
+ file_put_contents($outputFile, $outputContents);
+
+ \ No newline at end of file
diff --git a/library/phpqrcode/tools/merge.sh b/library/phpqrcode/tools/merge.sh
new file mode 100644
index 000000000..e4c2fbcb8
--- /dev/null
+++ b/library/phpqrcode/tools/merge.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+php ./merge.php \ No newline at end of file
diff --git a/library/phpqrcode/tools/merged_config.php b/library/phpqrcode/tools/merged_config.php
new file mode 100644
index 000000000..55ddb4506
--- /dev/null
+++ b/library/phpqrcode/tools/merged_config.php
@@ -0,0 +1,17 @@
+<?php
+/*
+ * PHP QR Code encoder
+ *
+ * Config file, tuned-up for merged verion
+ */
+
+ define('QR_CACHEABLE', false); // use cache - more disk reads but less CPU power, masks and format templates are stored there
+ define('QR_CACHE_DIR', false); // used when QR_CACHEABLE === true
+ define('QR_LOG_DIR', false); // default error logs dir
+
+ define('QR_FIND_BEST_MASK', true); // if true, estimates best mask (spec. default, but extremally slow; set to false to significant performance boost but (propably) worst quality code
+ define('QR_FIND_FROM_RANDOM', 2); // if false, checks all masks available, otherwise value tells count of masks need to be checked, mask id are got randomly
+ define('QR_DEFAULT_MASK', 2); // when QR_FIND_BEST_MASK === false
+
+ define('QR_PNG_MAXIMUM_SIZE', 1024); // maximum allowed png image width (in pixels), tune to make sure GD and PHP can handle such big images
+ \ No newline at end of file
diff --git a/library/phpqrcode/tools/merged_header.php b/library/phpqrcode/tools/merged_header.php
new file mode 100644
index 000000000..25805e564
--- /dev/null
+++ b/library/phpqrcode/tools/merged_header.php
@@ -0,0 +1,36 @@
+<?php
+
+/*
+ * PHP QR Code encoder
+ *
+ * This file contains MERGED version of PHP QR Code library.
+ * It was auto-generated from full version for your convenience.
+ *
+ * This merged version was configured to not requre any external files,
+ * with disabled cache, error loging and weker but faster mask matching.
+ * If you need tune it up please use non-merged version.
+ *
+ * For full version, documentation, examples of use please visit:
+ *
+ * http://phpqrcode.sourceforge.net/
+ * https://sourceforge.net/projects/phpqrcode/
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ \ No newline at end of file
diff --git a/library/prettyphoto/README b/library/prettyphoto/README
deleted file mode 100755
index 1e5684253..000000000
--- a/library/prettyphoto/README
+++ /dev/null
@@ -1,30 +0,0 @@
-prettyPhoto v3.1.4
-© Copyright, Stephane Caron
-http://www.no-margin-for-errors.com
-
-
-============================= Released under =============================
-
-Creative Commons 2.5
-http://creativecommons.org/licenses/by/2.5/
-
-OR
-
-GPLV2 license
-http://www.gnu.org/licenses/gpl-2.0.html
-
-You are free to use prettyPhoto in commercial projects as long as the
-copyright header is left intact.
-
-============================ More information ============================
-http://www.no-margin-for-errors.com/projects/prettyPhoto/
-
-
-============================== Description ===============================
-
-prettyPhoto is a jQuery based lightbox clone. Not only does it support images,
-it also add support for videos, flash, YouTube, iFrame. It's a full blown
-media modal box.
-
-Please refer to http://www.no-margin-for-errors.com/projects/prettyPhoto/
-for all the details on how to use.
diff --git a/library/prettyphoto/css/prettyPhoto.css b/library/prettyphoto/css/prettyPhoto.css
deleted file mode 100644
index 8a2a2fd14..000000000
--- a/library/prettyphoto/css/prettyPhoto.css
+++ /dev/null
@@ -1,170 +0,0 @@
-div.pp_default .pp_top,div.pp_default .pp_top .pp_middle,div.pp_default .pp_top .pp_left,div.pp_default .pp_top .pp_right,div.pp_default .pp_bottom,div.pp_default .pp_bottom .pp_left,div.pp_default .pp_bottom .pp_middle,div.pp_default .pp_bottom .pp_right{height:13px}
-div.pp_default .pp_top .pp_left{background:url(../images/prettyPhoto/default/sprite.png) -78px -93px no-repeat}
-div.pp_default .pp_top .pp_middle{background:url(../images/prettyPhoto/default/sprite_x.png) top left repeat-x}
-div.pp_default .pp_top .pp_right{background:url(../images/prettyPhoto/default/sprite.png) -112px -93px no-repeat}
-div.pp_default .pp_content .ppt{color:#f8f8f8}
-div.pp_default .pp_content_container .pp_left{background:url(../images/prettyPhoto/default/sprite_y.png) -7px 0 repeat-y;padding-left:13px}
-div.pp_default .pp_content_container .pp_right{background:url(../images/prettyPhoto/default/sprite_y.png) top right repeat-y;padding-right:13px}
-div.pp_default .pp_next:hover{background:url(../images/prettyPhoto/default/sprite_next.png) center right no-repeat;cursor:pointer}
-div.pp_default .pp_previous:hover{background:url(../images/prettyPhoto/default/sprite_prev.png) center left no-repeat;cursor:pointer}
-div.pp_default .pp_expand{background:url(../images/prettyPhoto/default/sprite.png) 0 -29px no-repeat;cursor:pointer;width:28px;height:28px}
-div.pp_default .pp_expand:hover{background:url(../images/prettyPhoto/default/sprite.png) 0 -56px no-repeat;cursor:pointer}
-div.pp_default .pp_contract{background:url(../images/prettyPhoto/default/sprite.png) 0 -84px no-repeat;cursor:pointer;width:28px;height:28px}
-div.pp_default .pp_contract:hover{background:url(../images/prettyPhoto/default/sprite.png) 0 -113px no-repeat;cursor:pointer}
-div.pp_default .pp_close{width:30px;height:30px;background:url(../images/prettyPhoto/default/sprite.png) 2px 1px no-repeat;cursor:pointer}
-div.pp_default .pp_gallery ul li a{background:url(../images/prettyPhoto/default/default_thumb.png) center center #f8f8f8;border:1px solid #aaa}
-div.pp_default .pp_social{margin-top:7px}
-div.pp_default .pp_gallery a.pp_arrow_previous,div.pp_default .pp_gallery a.pp_arrow_next{position:static;left:auto}
-div.pp_default .pp_nav .pp_play,div.pp_default .pp_nav .pp_pause{background:url(../images/prettyPhoto/default/sprite.png) -51px 1px no-repeat;height:30px;width:30px}
-div.pp_default .pp_nav .pp_pause{background-position:-51px -29px}
-div.pp_default a.pp_arrow_previous,div.pp_default a.pp_arrow_next{background:url(../images/prettyPhoto/default/sprite.png) -31px -3px no-repeat;height:20px;width:20px;margin:4px 0 0}
-div.pp_default a.pp_arrow_next{left:52px;background-position:-82px -3px}
-div.pp_default .pp_content_container .pp_details{margin-top:5px}
-div.pp_default .pp_nav{clear:none;height:30px;width:110px;position:relative}
-div.pp_default .pp_nav .currentTextHolder{font-family:Georgia;font-style:italic;color:#999;font-size:11px;left:75px;line-height:25px;position:absolute;top:2px;margin:0;padding:0 0 0 10px}
-div.pp_default .pp_close:hover,div.pp_default .pp_nav .pp_play:hover,div.pp_default .pp_nav .pp_pause:hover,div.pp_default .pp_arrow_next:hover,div.pp_default .pp_arrow_previous:hover{opacity:0.7}
-div.pp_default .pp_description{font-size:11px;font-weight:700;line-height:14px;margin:5px 50px 5px 0}
-div.pp_default .pp_bottom .pp_left{background:url(../images/prettyPhoto/default/sprite.png) -78px -127px no-repeat}
-div.pp_default .pp_bottom .pp_middle{background:url(../images/prettyPhoto/default/sprite_x.png) bottom left repeat-x}
-div.pp_default .pp_bottom .pp_right{background:url(../images/prettyPhoto/default/sprite.png) -112px -127px no-repeat}
-div.pp_default .pp_loaderIcon{background:url(../images/prettyPhoto/default/loader.gif) center center no-repeat}
-div.light_rounded .pp_top .pp_left{background:url(../images/prettyPhoto/light_rounded/sprite.png) -88px -53px no-repeat}
-div.light_rounded .pp_top .pp_right{background:url(../images/prettyPhoto/light_rounded/sprite.png) -110px -53px no-repeat}
-div.light_rounded .pp_next:hover{background:url(../images/prettyPhoto/light_rounded/btnNext.png) center right no-repeat;cursor:pointer}
-div.light_rounded .pp_previous:hover{background:url(../images/prettyPhoto/light_rounded/btnPrevious.png) center left no-repeat;cursor:pointer}
-div.light_rounded .pp_expand{background:url(../images/prettyPhoto/light_rounded/sprite.png) -31px -26px no-repeat;cursor:pointer}
-div.light_rounded .pp_expand:hover{background:url(../images/prettyPhoto/light_rounded/sprite.png) -31px -47px no-repeat;cursor:pointer}
-div.light_rounded .pp_contract{background:url(../images/prettyPhoto/light_rounded/sprite.png) 0 -26px no-repeat;cursor:pointer}
-div.light_rounded .pp_contract:hover{background:url(../images/prettyPhoto/light_rounded/sprite.png) 0 -47px no-repeat;cursor:pointer}
-div.light_rounded .pp_close{width:75px;height:22px;background:url(../images/prettyPhoto/light_rounded/sprite.png) -1px -1px no-repeat;cursor:pointer}
-div.light_rounded .pp_nav .pp_play{background:url(../images/prettyPhoto/light_rounded/sprite.png) -1px -100px no-repeat;height:15px;width:14px}
-div.light_rounded .pp_nav .pp_pause{background:url(../images/prettyPhoto/light_rounded/sprite.png) -24px -100px no-repeat;height:15px;width:14px}
-div.light_rounded .pp_arrow_previous{background:url(../images/prettyPhoto/light_rounded/sprite.png) 0 -71px no-repeat}
-div.light_rounded .pp_arrow_next{background:url(../images/prettyPhoto/light_rounded/sprite.png) -22px -71px no-repeat}
-div.light_rounded .pp_bottom .pp_left{background:url(../images/prettyPhoto/light_rounded/sprite.png) -88px -80px no-repeat}
-div.light_rounded .pp_bottom .pp_right{background:url(../images/prettyPhoto/light_rounded/sprite.png) -110px -80px no-repeat}
-div.dark_rounded .pp_top .pp_left{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -88px -53px no-repeat}
-div.dark_rounded .pp_top .pp_right{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -110px -53px no-repeat}
-div.dark_rounded .pp_content_container .pp_left{background:url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat-y}
-div.dark_rounded .pp_content_container .pp_right{background:url(../images/prettyPhoto/dark_rounded/contentPattern.png) top right repeat-y}
-div.dark_rounded .pp_next:hover{background:url(../images/prettyPhoto/dark_rounded/btnNext.png) center right no-repeat;cursor:pointer}
-div.dark_rounded .pp_previous:hover{background:url(../images/prettyPhoto/dark_rounded/btnPrevious.png) center left no-repeat;cursor:pointer}
-div.dark_rounded .pp_expand{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -31px -26px no-repeat;cursor:pointer}
-div.dark_rounded .pp_expand:hover{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -31px -47px no-repeat;cursor:pointer}
-div.dark_rounded .pp_contract{background:url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -26px no-repeat;cursor:pointer}
-div.dark_rounded .pp_contract:hover{background:url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -47px no-repeat;cursor:pointer}
-div.dark_rounded .pp_close{width:75px;height:22px;background:url(../images/prettyPhoto/dark_rounded/sprite.png) -1px -1px no-repeat;cursor:pointer}
-div.dark_rounded .pp_description{margin-right:85px;color:#fff}
-div.dark_rounded .pp_nav .pp_play{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -1px -100px no-repeat;height:15px;width:14px}
-div.dark_rounded .pp_nav .pp_pause{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -24px -100px no-repeat;height:15px;width:14px}
-div.dark_rounded .pp_arrow_previous{background:url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -71px no-repeat}
-div.dark_rounded .pp_arrow_next{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -22px -71px no-repeat}
-div.dark_rounded .pp_bottom .pp_left{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -88px -80px no-repeat}
-div.dark_rounded .pp_bottom .pp_right{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -110px -80px no-repeat}
-div.dark_rounded .pp_loaderIcon{background:url(../images/prettyPhoto/dark_rounded/loader.gif) center center no-repeat}
-div.dark_square .pp_left,div.dark_square .pp_middle,div.dark_square .pp_right,div.dark_square .pp_content{background:#000}
-div.dark_square .pp_description{color:#fff;margin:0 85px 0 0}
-div.dark_square .pp_loaderIcon{background:url(../images/prettyPhoto/dark_square/loader.gif) center center no-repeat}
-div.dark_square .pp_expand{background:url(../images/prettyPhoto/dark_square/sprite.png) -31px -26px no-repeat;cursor:pointer}
-div.dark_square .pp_expand:hover{background:url(../images/prettyPhoto/dark_square/sprite.png) -31px -47px no-repeat;cursor:pointer}
-div.dark_square .pp_contract{background:url(../images/prettyPhoto/dark_square/sprite.png) 0 -26px no-repeat;cursor:pointer}
-div.dark_square .pp_contract:hover{background:url(../images/prettyPhoto/dark_square/sprite.png) 0 -47px no-repeat;cursor:pointer}
-div.dark_square .pp_close{width:75px;height:22px;background:url(../images/prettyPhoto/dark_square/sprite.png) -1px -1px no-repeat;cursor:pointer}
-div.dark_square .pp_nav{clear:none}
-div.dark_square .pp_nav .pp_play{background:url(../images/prettyPhoto/dark_square/sprite.png) -1px -100px no-repeat;height:15px;width:14px}
-div.dark_square .pp_nav .pp_pause{background:url(../images/prettyPhoto/dark_square/sprite.png) -24px -100px no-repeat;height:15px;width:14px}
-div.dark_square .pp_arrow_previous{background:url(../images/prettyPhoto/dark_square/sprite.png) 0 -71px no-repeat}
-div.dark_square .pp_arrow_next{background:url(../images/prettyPhoto/dark_square/sprite.png) -22px -71px no-repeat}
-div.dark_square .pp_next:hover{background:url(../images/prettyPhoto/dark_square/btnNext.png) center right no-repeat;cursor:pointer}
-div.dark_square .pp_previous:hover{background:url(../images/prettyPhoto/dark_square/btnPrevious.png) center left no-repeat;cursor:pointer}
-div.light_square .pp_expand{background:url(../images/prettyPhoto/light_square/sprite.png) -31px -26px no-repeat;cursor:pointer}
-div.light_square .pp_expand:hover{background:url(../images/prettyPhoto/light_square/sprite.png) -31px -47px no-repeat;cursor:pointer}
-div.light_square .pp_contract{background:url(../images/prettyPhoto/light_square/sprite.png) 0 -26px no-repeat;cursor:pointer}
-div.light_square .pp_contract:hover{background:url(../images/prettyPhoto/light_square/sprite.png) 0 -47px no-repeat;cursor:pointer}
-div.light_square .pp_close{width:75px;height:22px;background:url(../images/prettyPhoto/light_square/sprite.png) -1px -1px no-repeat;cursor:pointer}
-div.light_square .pp_nav .pp_play{background:url(../images/prettyPhoto/light_square/sprite.png) -1px -100px no-repeat;height:15px;width:14px}
-div.light_square .pp_nav .pp_pause{background:url(../images/prettyPhoto/light_square/sprite.png) -24px -100px no-repeat;height:15px;width:14px}
-div.light_square .pp_arrow_previous{background:url(../images/prettyPhoto/light_square/sprite.png) 0 -71px no-repeat}
-div.light_square .pp_arrow_next{background:url(../images/prettyPhoto/light_square/sprite.png) -22px -71px no-repeat}
-div.light_square .pp_next:hover{background:url(../images/prettyPhoto/light_square/btnNext.png) center right no-repeat;cursor:pointer}
-div.light_square .pp_previous:hover{background:url(../images/prettyPhoto/light_square/btnPrevious.png) center left no-repeat;cursor:pointer}
-div.facebook .pp_top .pp_left{background:url(../images/prettyPhoto/facebook/sprite.png) -88px -53px no-repeat}
-div.facebook .pp_top .pp_middle{background:url(../images/prettyPhoto/facebook/contentPatternTop.png) top left repeat-x}
-div.facebook .pp_top .pp_right{background:url(../images/prettyPhoto/facebook/sprite.png) -110px -53px no-repeat}
-div.facebook .pp_content_container .pp_left{background:url(../images/prettyPhoto/facebook/contentPatternLeft.png) top left repeat-y}
-div.facebook .pp_content_container .pp_right{background:url(../images/prettyPhoto/facebook/contentPatternRight.png) top right repeat-y}
-div.facebook .pp_expand{background:url(../images/prettyPhoto/facebook/sprite.png) -31px -26px no-repeat;cursor:pointer}
-div.facebook .pp_expand:hover{background:url(../images/prettyPhoto/facebook/sprite.png) -31px -47px no-repeat;cursor:pointer}
-div.facebook .pp_contract{background:url(../images/prettyPhoto/facebook/sprite.png) 0 -26px no-repeat;cursor:pointer}
-div.facebook .pp_contract:hover{background:url(../images/prettyPhoto/facebook/sprite.png) 0 -47px no-repeat;cursor:pointer}
-div.facebook .pp_close{width:22px;height:22px;background:url(../images/prettyPhoto/facebook/sprite.png) -1px -1px no-repeat;cursor:pointer}
-div.facebook .pp_description{margin:0 37px 0 0}
-div.facebook .pp_loaderIcon{background:url(../images/prettyPhoto/facebook/loader.gif) center center no-repeat}
-div.facebook .pp_arrow_previous{background:url(../images/prettyPhoto/facebook/sprite.png) 0 -71px no-repeat;height:22px;margin-top:0;width:22px}
-div.facebook .pp_arrow_previous.disabled{background-position:0 -96px;cursor:default}
-div.facebook .pp_arrow_next{background:url(../images/prettyPhoto/facebook/sprite.png) -32px -71px no-repeat;height:22px;margin-top:0;width:22px}
-div.facebook .pp_arrow_next.disabled{background-position:-32px -96px;cursor:default}
-div.facebook .pp_nav{margin-top:0}
-div.facebook .pp_nav p{font-size:15px;padding:0 3px 0 4px}
-div.facebook .pp_nav .pp_play{background:url(../images/prettyPhoto/facebook/sprite.png) -1px -123px no-repeat;height:22px;width:22px}
-div.facebook .pp_nav .pp_pause{background:url(../images/prettyPhoto/facebook/sprite.png) -32px -123px no-repeat;height:22px;width:22px}
-div.facebook .pp_next:hover{background:url(../images/prettyPhoto/facebook/btnNext.png) center right no-repeat;cursor:pointer}
-div.facebook .pp_previous:hover{background:url(../images/prettyPhoto/facebook/btnPrevious.png) center left no-repeat;cursor:pointer}
-div.facebook .pp_bottom .pp_left{background:url(../images/prettyPhoto/facebook/sprite.png) -88px -80px no-repeat}
-div.facebook .pp_bottom .pp_middle{background:url(../images/prettyPhoto/facebook/contentPatternBottom.png) top left repeat-x}
-div.facebook .pp_bottom .pp_right{background:url(../images/prettyPhoto/facebook/sprite.png) -110px -80px no-repeat}
-div.pp_pic_holder a:focus{outline:none}
-div.pp_overlay{background:#000;display:none;left:0;position:absolute;top:0;width:100%;z-index:9500}
-div.pp_pic_holder{display:none;position:absolute;width:100px;z-index:10000}
-.pp_content{height:40px;min-width:40px}
-* html .pp_content{width:40px}
-.pp_content_container{position:relative;text-align:left;width:100%}
-.pp_content_container .pp_left{padding-left:20px}
-.pp_content_container .pp_right{padding-right:20px}
-.pp_content_container .pp_details{float:left;margin:10px 0 2px}
-.pp_description{display:none;margin:0}
-.pp_social{float:left;margin:0}
-.pp_social .facebook{float:left;margin-left:5px;width:55px;overflow:hidden}
-.pp_social .twitter{float:left}
-.pp_nav{clear:right;float:left;margin:3px 10px 0 0}
-.pp_nav p{float:left;white-space:nowrap;margin:2px 4px}
-.pp_nav .pp_play,.pp_nav .pp_pause{float:left;margin-right:4px;text-indent:-10000px}
-a.pp_arrow_previous,a.pp_arrow_next{display:block;float:left;height:15px;margin-top:3px;overflow:hidden;text-indent:-10000px;width:14px}
-.pp_hoverContainer{position:absolute;top:0;width:100%;z-index:2000}
-.pp_gallery{display:none;left:50%;margin-top:-50px;position:absolute;z-index:10000}
-.pp_gallery div{float:left;overflow:hidden;position:relative}
-.pp_gallery ul{float:left;height:35px;position:relative;white-space:nowrap;margin:0 0 0 5px;padding:0}
-.pp_gallery ul a{border:1px rgba(0,0,0,0.5) solid;display:block;float:left;height:33px;overflow:hidden}
-.pp_gallery ul a img{border:0}
-.pp_gallery li{display:block;float:left;margin:0 5px 0 0;padding:0}
-.pp_gallery li.default a{background:url(../images/prettyPhoto/facebook/default_thumbnail.gif) 0 0 no-repeat;display:block;height:33px;width:50px}
-.pp_gallery .pp_arrow_previous,.pp_gallery .pp_arrow_next{margin-top:7px!important}
-a.pp_next{background:url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat;display:block;float:right;height:100%;text-indent:-10000px;width:49%}
-a.pp_previous{background:url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat;display:block;float:left;height:100%;text-indent:-10000px;width:49%}
-a.pp_expand,a.pp_contract{cursor:pointer;display:none;height:20px;position:absolute;right:30px;text-indent:-10000px;top:10px;width:20px;z-index:20000}
-a.pp_close{position:absolute;right:0;top:0;display:block;line-height:22px;text-indent:-10000px}
-.pp_loaderIcon{display:block;height:24px;left:50%;position:absolute;top:50%;width:24px;margin:-12px 0 0 -12px}
-#pp_full_res{line-height:1!important}
-#pp_full_res .pp_inline{text-align:left}
-#pp_full_res .pp_inline p{margin:0 0 15px}
-div.ppt{color:#fff;display:none;font-size:17px;z-index:9999;margin:0 0 5px 15px}
-div.pp_default .pp_content,div.light_rounded .pp_content{background-color:#fff}
-div.pp_default #pp_full_res .pp_inline,div.light_rounded .pp_content .ppt,div.light_rounded #pp_full_res .pp_inline,div.light_square .pp_content .ppt,div.light_square #pp_full_res .pp_inline,div.facebook .pp_content .ppt,div.facebook #pp_full_res .pp_inline{color:#000}
-div.pp_default .pp_gallery ul li a:hover,div.pp_default .pp_gallery ul li.selected a,.pp_gallery ul a:hover,.pp_gallery li.selected a{border-color:#fff}
-div.pp_default .pp_details,div.light_rounded .pp_details,div.dark_rounded .pp_details,div.dark_square .pp_details,div.light_square .pp_details,div.facebook .pp_details{position:relative}
-div.light_rounded .pp_top .pp_middle,div.light_rounded .pp_content_container .pp_left,div.light_rounded .pp_content_container .pp_right,div.light_rounded .pp_bottom .pp_middle,div.light_square .pp_left,div.light_square .pp_middle,div.light_square .pp_right,div.light_square .pp_content,div.facebook .pp_content{background:#fff}
-div.light_rounded .pp_description,div.light_square .pp_description{margin-right:85px}
-div.light_rounded .pp_gallery a.pp_arrow_previous,div.light_rounded .pp_gallery a.pp_arrow_next,div.dark_rounded .pp_gallery a.pp_arrow_previous,div.dark_rounded .pp_gallery a.pp_arrow_next,div.dark_square .pp_gallery a.pp_arrow_previous,div.dark_square .pp_gallery a.pp_arrow_next,div.light_square .pp_gallery a.pp_arrow_previous,div.light_square .pp_gallery a.pp_arrow_next{margin-top:12px!important}
-div.light_rounded .pp_arrow_previous.disabled,div.dark_rounded .pp_arrow_previous.disabled,div.dark_square .pp_arrow_previous.disabled,div.light_square .pp_arrow_previous.disabled{background-position:0 -87px;cursor:default}
-div.light_rounded .pp_arrow_next.disabled,div.dark_rounded .pp_arrow_next.disabled,div.dark_square .pp_arrow_next.disabled,div.light_square .pp_arrow_next.disabled{background-position:-22px -87px;cursor:default}
-div.light_rounded .pp_loaderIcon,div.light_square .pp_loaderIcon{background:url(../images/prettyPhoto/light_rounded/loader.gif) center center no-repeat}
-div.dark_rounded .pp_top .pp_middle,div.dark_rounded .pp_content,div.dark_rounded .pp_bottom .pp_middle{background:url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat}
-div.dark_rounded .currentTextHolder,div.dark_square .currentTextHolder{color:#c4c4c4}
-div.dark_rounded #pp_full_res .pp_inline,div.dark_square #pp_full_res .pp_inline{color:#fff}
-.pp_top,.pp_bottom{height:20px;position:relative}
-* html .pp_top,* html .pp_bottom{padding:0 20px}
-.pp_top .pp_left,.pp_bottom .pp_left{height:20px;left:0;position:absolute;width:20px}
-.pp_top .pp_middle,.pp_bottom .pp_middle{height:20px;left:20px;position:absolute;right:20px}
-* html .pp_top .pp_middle,* html .pp_bottom .pp_middle{left:0;position:static}
-.pp_top .pp_right,.pp_bottom .pp_right{height:20px;left:auto;position:absolute;right:0;top:0;width:20px}
-.pp_fade,.pp_gallery li.default a img{display:none} \ No newline at end of file
diff --git a/library/prettyphoto/images/prettyPhoto/dark_rounded/btnNext.png b/library/prettyphoto/images/prettyPhoto/dark_rounded/btnNext.png
deleted file mode 100755
index b28c1ef3d..000000000
--- a/library/prettyphoto/images/prettyPhoto/dark_rounded/btnNext.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_rounded/btnPrevious.png b/library/prettyphoto/images/prettyPhoto/dark_rounded/btnPrevious.png
deleted file mode 100755
index e0cd9c49a..000000000
--- a/library/prettyphoto/images/prettyPhoto/dark_rounded/btnPrevious.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_rounded/contentPattern.png b/library/prettyphoto/images/prettyPhoto/dark_rounded/contentPattern.png
deleted file mode 100755
index e5a047c3a..000000000
--- a/library/prettyphoto/images/prettyPhoto/dark_rounded/contentPattern.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_rounded/default_thumbnail.gif b/library/prettyphoto/images/prettyPhoto/dark_rounded/default_thumbnail.gif
deleted file mode 100755
index 2b1280f32..000000000
--- a/library/prettyphoto/images/prettyPhoto/dark_rounded/default_thumbnail.gif
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_rounded/loader.gif b/library/prettyphoto/images/prettyPhoto/dark_rounded/loader.gif
deleted file mode 100755
index 50820eedd..000000000
--- a/library/prettyphoto/images/prettyPhoto/dark_rounded/loader.gif
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_rounded/sprite.png b/library/prettyphoto/images/prettyPhoto/dark_rounded/sprite.png
deleted file mode 100755
index fb8c0f83d..000000000
--- a/library/prettyphoto/images/prettyPhoto/dark_rounded/sprite.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_square/btnNext.png b/library/prettyphoto/images/prettyPhoto/dark_square/btnNext.png
deleted file mode 100755
index b28c1ef3d..000000000
--- a/library/prettyphoto/images/prettyPhoto/dark_square/btnNext.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_square/btnPrevious.png b/library/prettyphoto/images/prettyPhoto/dark_square/btnPrevious.png
deleted file mode 100755
index e0cd9c49a..000000000
--- a/library/prettyphoto/images/prettyPhoto/dark_square/btnPrevious.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_square/contentPattern.png b/library/prettyphoto/images/prettyPhoto/dark_square/contentPattern.png
deleted file mode 100755
index 7b50aff88..000000000
--- a/library/prettyphoto/images/prettyPhoto/dark_square/contentPattern.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_square/default_thumbnail.gif b/library/prettyphoto/images/prettyPhoto/dark_square/default_thumbnail.gif
deleted file mode 100755
index 2b1280f32..000000000
--- a/library/prettyphoto/images/prettyPhoto/dark_square/default_thumbnail.gif
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_square/loader.gif b/library/prettyphoto/images/prettyPhoto/dark_square/loader.gif
deleted file mode 100755
index 50820eedd..000000000
--- a/library/prettyphoto/images/prettyPhoto/dark_square/loader.gif
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/dark_square/sprite.png b/library/prettyphoto/images/prettyPhoto/dark_square/sprite.png
deleted file mode 100755
index 4fe354752..000000000
--- a/library/prettyphoto/images/prettyPhoto/dark_square/sprite.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/default/default_thumb.png b/library/prettyphoto/images/prettyPhoto/default/default_thumb.png
deleted file mode 100644
index 1a26e4b16..000000000
--- a/library/prettyphoto/images/prettyPhoto/default/default_thumb.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/default/loader.gif b/library/prettyphoto/images/prettyPhoto/default/loader.gif
deleted file mode 100644
index 35d397c9e..000000000
--- a/library/prettyphoto/images/prettyPhoto/default/loader.gif
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/default/sprite.png b/library/prettyphoto/images/prettyPhoto/default/sprite.png
deleted file mode 100644
index 5f07ddc56..000000000
--- a/library/prettyphoto/images/prettyPhoto/default/sprite.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/default/sprite_next.png b/library/prettyphoto/images/prettyPhoto/default/sprite_next.png
deleted file mode 100644
index 379dc0d0d..000000000
--- a/library/prettyphoto/images/prettyPhoto/default/sprite_next.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/default/sprite_prev.png b/library/prettyphoto/images/prettyPhoto/default/sprite_prev.png
deleted file mode 100644
index 1ee486514..000000000
--- a/library/prettyphoto/images/prettyPhoto/default/sprite_prev.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/default/sprite_x.png b/library/prettyphoto/images/prettyPhoto/default/sprite_x.png
deleted file mode 100644
index d4433ab0d..000000000
--- a/library/prettyphoto/images/prettyPhoto/default/sprite_x.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/default/sprite_y.png b/library/prettyphoto/images/prettyPhoto/default/sprite_y.png
deleted file mode 100644
index 7786ab512..000000000
--- a/library/prettyphoto/images/prettyPhoto/default/sprite_y.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/facebook/btnNext.png b/library/prettyphoto/images/prettyPhoto/facebook/btnNext.png
deleted file mode 100755
index e809c3b64..000000000
--- a/library/prettyphoto/images/prettyPhoto/facebook/btnNext.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/facebook/btnPrevious.png b/library/prettyphoto/images/prettyPhoto/facebook/btnPrevious.png
deleted file mode 100755
index 0812542cc..000000000
--- a/library/prettyphoto/images/prettyPhoto/facebook/btnPrevious.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/facebook/contentPatternBottom.png b/library/prettyphoto/images/prettyPhoto/facebook/contentPatternBottom.png
deleted file mode 100755
index a9be3b2ca..000000000
--- a/library/prettyphoto/images/prettyPhoto/facebook/contentPatternBottom.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/facebook/contentPatternLeft.png b/library/prettyphoto/images/prettyPhoto/facebook/contentPatternLeft.png
deleted file mode 100755
index 277c87a5b..000000000
--- a/library/prettyphoto/images/prettyPhoto/facebook/contentPatternLeft.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/facebook/contentPatternRight.png b/library/prettyphoto/images/prettyPhoto/facebook/contentPatternRight.png
deleted file mode 100755
index 76e50d0f5..000000000
--- a/library/prettyphoto/images/prettyPhoto/facebook/contentPatternRight.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/facebook/contentPatternTop.png b/library/prettyphoto/images/prettyPhoto/facebook/contentPatternTop.png
deleted file mode 100755
index 8b110bac6..000000000
--- a/library/prettyphoto/images/prettyPhoto/facebook/contentPatternTop.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/facebook/default_thumbnail.gif b/library/prettyphoto/images/prettyPhoto/facebook/default_thumbnail.gif
deleted file mode 100755
index 2b1280f32..000000000
--- a/library/prettyphoto/images/prettyPhoto/facebook/default_thumbnail.gif
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/facebook/loader.gif b/library/prettyphoto/images/prettyPhoto/facebook/loader.gif
deleted file mode 100755
index 7ac990cf0..000000000
--- a/library/prettyphoto/images/prettyPhoto/facebook/loader.gif
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/facebook/sprite.png b/library/prettyphoto/images/prettyPhoto/facebook/sprite.png
deleted file mode 100755
index 660a254f1..000000000
--- a/library/prettyphoto/images/prettyPhoto/facebook/sprite.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/light_rounded/btnNext.png b/library/prettyphoto/images/prettyPhoto/light_rounded/btnNext.png
deleted file mode 100755
index b28c1ef3d..000000000
--- a/library/prettyphoto/images/prettyPhoto/light_rounded/btnNext.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/light_rounded/btnPrevious.png b/library/prettyphoto/images/prettyPhoto/light_rounded/btnPrevious.png
deleted file mode 100755
index e0cd9c49a..000000000
--- a/library/prettyphoto/images/prettyPhoto/light_rounded/btnPrevious.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/light_rounded/default_thumbnail.gif b/library/prettyphoto/images/prettyPhoto/light_rounded/default_thumbnail.gif
deleted file mode 100755
index 2b1280f32..000000000
--- a/library/prettyphoto/images/prettyPhoto/light_rounded/default_thumbnail.gif
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/light_rounded/loader.gif b/library/prettyphoto/images/prettyPhoto/light_rounded/loader.gif
deleted file mode 100755
index 7ac990cf0..000000000
--- a/library/prettyphoto/images/prettyPhoto/light_rounded/loader.gif
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/light_rounded/sprite.png b/library/prettyphoto/images/prettyPhoto/light_rounded/sprite.png
deleted file mode 100755
index 7f2837981..000000000
--- a/library/prettyphoto/images/prettyPhoto/light_rounded/sprite.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/light_square/btnNext.png b/library/prettyphoto/images/prettyPhoto/light_square/btnNext.png
deleted file mode 100755
index b28c1ef3d..000000000
--- a/library/prettyphoto/images/prettyPhoto/light_square/btnNext.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/light_square/btnPrevious.png b/library/prettyphoto/images/prettyPhoto/light_square/btnPrevious.png
deleted file mode 100755
index e0cd9c49a..000000000
--- a/library/prettyphoto/images/prettyPhoto/light_square/btnPrevious.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/light_square/default_thumbnail.gif b/library/prettyphoto/images/prettyPhoto/light_square/default_thumbnail.gif
deleted file mode 100755
index 2b1280f32..000000000
--- a/library/prettyphoto/images/prettyPhoto/light_square/default_thumbnail.gif
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/light_square/loader.gif b/library/prettyphoto/images/prettyPhoto/light_square/loader.gif
deleted file mode 100755
index 7ac990cf0..000000000
--- a/library/prettyphoto/images/prettyPhoto/light_square/loader.gif
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/images/prettyPhoto/light_square/sprite.png b/library/prettyphoto/images/prettyPhoto/light_square/sprite.png
deleted file mode 100755
index 4fe354752..000000000
--- a/library/prettyphoto/images/prettyPhoto/light_square/sprite.png
+++ /dev/null
Binary files differ
diff --git a/library/prettyphoto/js/jquery-1.3.2.min.js b/library/prettyphoto/js/jquery-1.3.2.min.js
deleted file mode 100755
index b1ae21d8b..000000000
--- a/library/prettyphoto/js/jquery-1.3.2.min.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * jQuery JavaScript Library v1.3.2
- * http://jquery.com/
- *
- * Copyright (c) 2009 John Resig
- * Dual licensed under the MIT and GPL licenses.
- * http://docs.jquery.com/License
- *
- * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
- * Revision: 6246
- */
-(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
-/*
- * Sizzle CSS Selector Engine - v0.9.3
- * Copyright 2009, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- * More information: http://sizzlejs.com/
- */
-(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file
diff --git a/library/prettyphoto/js/jquery-1.4.4.min.js b/library/prettyphoto/js/jquery-1.4.4.min.js
deleted file mode 100644
index 2bd4cbb8a..000000000
--- a/library/prettyphoto/js/jquery-1.4.4.min.js
+++ /dev/null
@@ -1,167 +0,0 @@
-/*!
- * jQuery JavaScript Library v1.4.4
- * http://jquery.com/
- *
- * Copyright 2010, John Resig
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- * Copyright 2010, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- *
- * Date: Thu Nov 11 19:04:53 2010 -0500
- */
-(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h=
-h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;k<J.length;k++){h=J[k];h.origType.replace(X,"")===a.type?f.push(h.selector):J.splice(k--,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f[o];for(k=0;k<J.length;k++){h=J[k];if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType==="mouseenter"||
-h.preType==="mouseleave"){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)[0]}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C[o];if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La,
-"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this,
-e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a,
-"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+
-a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,
-C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j,
-s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this,
-j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length},
-toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j===
--1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false;
-if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K<Q;K++)if((j=arguments[K])!=null)for(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G[s]=b.extend(ga,v,z)}else if(z!==B)G[s]=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait--;
-if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&--b.readyWait>0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload",
-b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&&
-!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&&
-l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H<G;){if(s.apply(j[H++],v)===false)break}else if(K)for(z in j){if(s.call(j[z],
-z,j[z])===false)break}else for(v=j[0];H<G&&s.call(v,H,v)!==false;v=j[++H]);return j},trim:O?function(j){return j==null?"":O.call(j)}:function(j){return j==null?"":j.toString().replace(k,"").replace(o,"")},makeArray:function(j,s){var v=s||[];if(j!=null){var z=b.type(j);j.length==null||z==="string"||z==="function"||z==="regexp"||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var v=0,z=s.length;v<z;v++)if(s[v]===j)return v;return-1},merge:function(j,
-s){var v=j.length,z=0;if(typeof s.length==="number")for(var H=s.length;z<H;z++)j[v++]=s[z];else for(;s[z]!==B;)j[v++]=s[z++];j.length=v;return j},grep:function(j,s,v){var z=[],H;v=!!v;for(var G=0,K=j.length;G<K;G++){H=!!s(j[G],G);v!==H&&z.push(j[G])}return z},map:function(j,s,v){for(var z=[],H,G=0,K=j.length;G<K;G++){H=s(j[G],G,v);if(H!=null)z[z.length]=H}return z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length===2)if(typeof s==="string"){v=j;j=v[s];s=B}else if(s&&!b.isFunction(s)){v=
-s;s=B}if(!s&&j)s=function(){return j.apply(v||this,arguments)};if(j)s.guid=j.guid=j.guid||s.guid||b.guid++;return s},access:function(j,s,v,z,H,G){var K=j.length;if(typeof s==="object"){for(var Q in s)b.access(j,Q,s[Q],z,H,v);return j}if(v!==B){z=!G&&z&&b.isFunction(v);for(Q=0;Q<K;Q++)H(j[Q],s,z?v.call(j[Q],Q,H(j[Q],s)):v,G);return j}return K?H(j[0],s):B},now:function(){return(new Date).getTime()},uaMatch:function(j){j=j.toLowerCase();j=L.exec(j)||g.exec(j)||i.exec(j)||j.indexOf("compatible")<0&&n.exec(j)||
-[];return{browser:j[1]||"",version:j[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(j,s){R["[object "+s+"]"]=s.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=m.version}if(b.browser.webkit)b.browser.safari=true;if(D)b.inArray=function(j,s){return D.call(s,j)};if(!/\s/.test("\u00a0")){k=/^[\s\xA0]+/;o=/[\s\xA0]+$/}f=b(t);if(t.addEventListener)u=function(){t.removeEventListener("DOMContentLoaded",u,
-false);b.ready()};else if(t.attachEvent)u=function(){if(t.readyState==="complete"){t.detachEvent("onreadystatechange",u);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=t.documentElement,b=t.createElement("script"),d=t.createElement("div"),e="script"+c.now();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"),
-k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false,
-scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent=
-false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom=
-1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display=
-"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h=
-c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando);
-else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h<l;h++){f=e[h].name;if(f.indexOf("data-")===0){f=f.substr(5);ka(this[0],f,d[f])}}}return d}else if(typeof a==="object")return this.each(function(){c.data(this,
-a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=this.triggerHandler("getData"+k[1]+"!",[k[0]]);if(d===B&&this.length){d=c.data(this[0],a);d=ka(this[0],a,d)}return d===B&&k[1]?this.data(k[0]):d}else return this.each(function(){var o=c(this),x=[k[0],b];o.triggerHandler("setData"+k[1]+"!",x);c.data(this,a,b);o.triggerHandler("changeData"+k[1]+"!",x)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e=
-c.data(a,b);if(!d)return e||[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===B)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,
-a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var sa=/[\n\t]/g,ha=/\s+/,Sa=/\r/g,Ta=/^(?:href|src|style)$/,Ua=/^(?:button|input)$/i,Va=/^(?:button|input|object|select|textarea)$/i,Wa=/^a(?:rea)?$/i,ta=/^(?:radio|checkbox)$/i;c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",
-colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(x){var r=c(this);r.addClass(a.call(this,x,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===
-1)if(f.className){for(var h=" "+f.className+" ",l=f.className,k=0,o=b.length;k<o;k++)if(h.indexOf(" "+b[k]+" ")<0)l+=" "+b[k];f.className=c.trim(l)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var x=c(this);x.removeClass(a.call(this,o,x.attr("class")))});if(a&&typeof a==="string"||a===B)for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(sa," "),
-l=0,k=b.length;l<k;l++)h=h.replace(" "+b[l]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,l=c(this),k=b,o=a.split(ha);f=o[h++];){k=e?k:!l.hasClass(f);l[k?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,
-"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(sa," ").indexOf(a)>-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one";
-if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var l=f[h];if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute("disabled")===null)&&(!l.parentNode.disabled||!c.nodeName(l.parentNode,"optgroup"))){a=c(l).val();if(b)return a;d.push(a)}}return d}if(ta.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Sa,"")}return B}var k=c.isFunction(a);return this.each(function(o){var x=c(this),r=a;if(this.nodeType===1){if(k)r=
-a.call(this,o,x.val());if(r==null)r="";else if(typeof r==="number")r+="";else if(c.isArray(r))r=c.map(r,function(C){return C==null?"":C+""});if(c.isArray(r)&&ta.test(this.type))this.checked=c.inArray(x.val(),r)>=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},
-attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&
-b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0};
-c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,
-arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid=
-d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+
-c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h<A.length;h++){C=A[h];if(d.guid===C.guid){if(k||x.test(C.namespace)){e==null&&A.splice(h--,1);r.remove&&r.remove.call(a,C)}if(e!=null)break}}if(A.length===0||e!=null&&A.length===1){if(!r.teardown||r.teardown.call(a,o)===false)c.removeEvent(a,f,w.handle);delete I[f]}}else for(h=0;h<A.length;h++){C=A[h];if(k||x.test(C.namespace)){c.event.remove(a,r,C.handler,h);A.splice(h--,1)}}}if(c.isEmptyObject(I)){if(b=
-w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,J);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===
-8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k===
-"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+
-d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f<l;f++){var k=d[f];if(b||e.test(k.namespace)){a.handler=k.handler;a.data=k.data;a.handleObj=k;k=k.handler.apply(this,h);if(k!==B){a.result=k;if(k===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
-fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||t;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=t.documentElement;d=t.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
-d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==B)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.remove(this,
-Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=t.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=
-c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ca;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ca;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ca;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U};
-var va=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},wa=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!==
-"form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=B;return la("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=B;return la("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V,
-xa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired=
-B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type===
-"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]===
-0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h<k;h++)c.event.add(this[h],d,l,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d,
-a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d=
-1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var ya={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var l,k=0,o,x,r=h||this.selector;h=h?this:c(this.context);if(typeof d===
-"object"&&!d.preventDefault){for(l in d)h[b](l,e,d[l],r);return this}if(c.isFunction(e)){f=e;e=B}for(d=(d||"").split(" ");(l=d[k++])!=null;){o=X.exec(l);x="";if(o){x=o[0];l=l.replace(X,"")}if(l==="hover")d.push("mouseenter"+x,"mouseleave"+x);else{o=l;if(l==="focus"||l==="blur"){d.push(ya[l]+x);l+=x}else l=(ya[l]||l)+x;if(b==="live"){x=0;for(var A=h.length;x<A;x++)c.event.add(h[x],"live."+Y(l,r),{data:e,selector:r,handler:f,origType:l,origHandler:f,preType:o})}else h.unbind("live."+Y(l,r),f)}}return this}});
-c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});
-(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1&&!q){y.sizcache=n;y.sizset=p}if(y.nodeName.toLowerCase()===i){F=y;break}y=y[g]}m[p]=F}}}function b(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1){if(!q){y.sizcache=n;y.sizset=p}if(typeof i!=="string"){if(y===i){F=true;break}}else if(k.filter(i,
-[y]).length>0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3];
-break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr,
-q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h=
-l;g.sort(w);if(h)for(var i=1;i<g.length;i++)g[i]===g[i-1]&&g.splice(i--,1)}return g};k.matches=function(g,i){return k(g,null,null,i)};k.matchesSelector=function(g,i){return k(i,null,null,[g]).length>0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p<q;p++){var u,y=o.order[p];if(u=o.leftMatch[y].exec(g)){var F=u[1];u.splice(1,1);if(F.substr(F.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");m=o.find[y](u,i,n);if(m!=null){g=g.replace(o.match[y],"");break}}}}m||(m=i.getElementsByTagName("*"));
-return{set:m,expr:g}};k.filter=function(g,i,n,m){for(var p,q,u=g,y=[],F=i,M=i&&i[0]&&k.isXML(i[0]);g&&i.length;){for(var N in o.filter)if((p=o.leftMatch[N].exec(g))!=null&&p[2]){var O,D,R=o.filter[N];D=p[1];q=false;p.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(F===y)y=[];if(o.preFilter[N])if(p=o.preFilter[N](p,F,n,y,m,M)){if(p===true)continue}else q=O=true;if(p)for(var j=0;(D=F[j])!=null;j++)if(D){O=R(D,p,j,F);var s=m^!!O;if(n&&O!=null)if(s)q=true;else F[j]=false;else if(s){y.push(D);q=true}}if(O!==
-B){n||(F=y);g=g.replace(o.match[N],"");if(!q)return[];break}}}if(g===u)if(q==null)k.error(g);else break;u=g}return F};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var o=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
-POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,i){var n=typeof i==="string",m=n&&!/\W/.test(i);n=n&&!m;if(m)i=i.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=n||q&&q.nodeName.toLowerCase()===
-i?q||false:q===i}n&&k.filter(i,g,true)},">":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p<q;p++){if(n=g[p]){n=n.parentNode;g[p]=n.nodeName.toLowerCase()===i?n:false}}else{for(;p<q;p++)if(n=g[p])g[p]=m?n.parentNode:n.parentNode===i;m&&k.filter(i,g,true)}},"":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=i=i.toLowerCase();q=a}q("parentNode",i,p,g,m,n)},"~":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=
-i=i.toLowerCase();q=a}q("previousSibling",i,p,g,m,n)}},find:{ID:function(g,i,n){if(typeof i.getElementById!=="undefined"&&!n)return(g=i.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,i){if(typeof i.getElementsByName!=="undefined"){for(var n=[],m=i.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&n.push(m[p]);return n.length===0?null:n}},TAG:function(g,i){return i.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,i,n,m,p,q){g=" "+g[1].replace(/\\/g,
-"")+" ";if(q)return g;q=0;for(var u;(u=i[q])!=null;q++)if(u)if(p^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n,
-m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===
-true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===
-g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return i<n[3]-0},gt:function(g,i,n){return i>n[3]-0},nth:function(g,i,n){return n[3]-
-0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n<m;n++)if(i[n]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,i){var n=i[1],m=g;switch(n){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(n===
-"first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":n=i[2];var p=i[3];if(n===1&&p===0)return true;var q=i[0],u=g.parentNode;if(u&&(u.sizcache!==q||!g.nodeIndex)){var y=0;for(m=u.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++y;u.sizcache=q}m=g.nodeIndex-p;return n===0?m===0:m%n===0&&m/n>=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===
-i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]];
-if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m,
-g);else if(typeof g.length==="number")for(var p=g.length;n<p;n++)m.push(g[n]);else for(;g[n];n++)m.push(g[n]);return m}}var w,I;if(t.documentElement.compareDocumentPosition)w=function(g,i){if(g===i){h=true;return 0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(i)&4?-1:1};else{w=function(g,i){var n,m,p=[],q=[];n=g.parentNode;m=i.parentNode;var u=n;if(g===i){h=true;return 0}else if(n===m)return I(g,i);else if(n){if(!m)return 1}else return-1;
-for(;u;){p.unshift(u);u=u.parentNode}for(u=m;u;){q.unshift(u);u=u.parentNode}n=p.length;m=q.length;for(u=0;u<n&&u<m;u++)if(p[u]!==q[u])return I(p[u],q[u]);return u===n?I(g,q[u],-1):I(p[u],i,1)};I=function(g,i,n){if(g===i)return n;for(g=g.nextSibling;g;){if(g===i)return-1;g=g.nextSibling}return 1}}k.getText=function(g){for(var i="",n,m=0;g[m];m++){n=g[m];if(n.nodeType===3||n.nodeType===4)i+=n.nodeValue;else if(n.nodeType!==8)i+=k.getText(n.childNodes)}return i};(function(){var g=t.createElement("div"),
-i="script"+(new Date).getTime(),n=t.documentElement;g.innerHTML="<a name='"+i+"'/>";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g);
-n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&&
-function(){var g=k,i=t.createElement("div");i.innerHTML="<p class='TEST'></p>";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F||
-p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g=
-t.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition?
-function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n<u;n++)k(g,q[n],m);return k.filter(p,m)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=k.getText;c.isXMLDoc=k.isXML;
-c.contains=k.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,Na=/^.[^:#\[\.,]*$/,bb=Array.prototype.slice,cb=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var l=0;l<d;l++)if(b[l]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})},
-not:function(a){return this.pushStack(ma(this,a,false),"not",a)},filter:function(a){return this.pushStack(ma(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h=
-h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e<f;e++)for(h=this[e];h;)if(l?l.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context):
-c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,
-2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,
-b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&
-e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/<tbody/i,eb=/<|&#?\w+;/,Ca=/<(?:script|object|embed|option|style)/i,Da=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/\=([^="'>\s]+\/)>/g,P={option:[1,
-"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
-c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
-wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
-prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
-this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
-return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null;
-else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=
-c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){var e,f,h,l=a[0],k=[];if(!c.support.checkClone&&arguments.length===3&&typeof l==="string"&&Da.test(l))return this.each(function(){c(this).domManip(a,
-b,d,true)});if(c.isFunction(l))return this.each(function(x){var r=c(this);a[0]=l.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(this[0]){e=l&&l.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);h=e.fragment;if(f=h.childNodes.length===1?h=h.firstChild:h.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var o=this.length;f<o;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")):
-this[f]:this[f],f>0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append",
-prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f<h;f++){var l=(f>0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument||
-b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1></$2>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]==="<table>"&&!x?r.childNodes:[];for(o=k.length-
-1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script"))));
-d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i,
-jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,
-zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b),
-h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b);
-if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f=
-d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left;
-e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
-ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b===
-"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("<div>").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&
-!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})},
-getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html",
-script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data||
-!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache=
-false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset;
-A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type",
-b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&&
-c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d||
-c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]=
-encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess",
-[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),
-e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}});
-if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show",
-3),a,b,d);else{d=0;for(var e=this.length;d<e;d++){a=this[d];b=a.style.display;if(!c.data(a,"olddisplay")&&b==="none")b=a.style.display="";b===""&&c.css(a,"display")==="none"&&c.data(a,"olddisplay",qa(a.nodeName))}for(d=0;d<e;d++){a=this[d];b=a.style.display;if(b===""||b==="none")a.style.display=c.data(a,"olddisplay")||""}return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay",
-d)}for(a=0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b,
-d,e);if(c.isEmptyObject(a))return this.each(f.complete);return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),l,k=this.nodeType===1,o=k&&c(this).is(":hidden"),x=this;for(l in a){var r=c.camelCase(l);if(l!==r){a[r]=a[l];delete a[l];l=r}if(a[l]==="hide"&&o||a[l]==="show"&&!o)return h.complete.call(this);if(k&&(l==="height"||l==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)===
-"inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[l])){(h.specialEasing=h.specialEasing||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(A,C){var J=new c.fx(x,h,A);if(vb.test(C))J[C==="toggle"?o?"show":"hide":C](a);else{var w=wb.exec(C),I=J.cur()||0;if(w){var L=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(x,A,(L||1)+g);I=(L||
-1)/J.cur()*I;c.style(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.custom(I,L,g)}else J.custom(I,C,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b,
-d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a*
-Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)}
-var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;
-this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide||
-this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=
-c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(ba);ba=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===
-b.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in t.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=fa(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&&
-h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d,e=b.offsetParent,f=b.ownerDocument,h=f.documentElement,l=f.body;d=(f=f.defaultView)?f.getComputedStyle(b,null):b.currentStyle;
-for(var k=b.offsetTop,o=b.offsetLeft;(b=b.parentNode)&&b!==l&&b!==h;){if(c.offset.supportsFixedPosition&&d.position==="fixed")break;d=f?f.getComputedStyle(b,null):b.currentStyle;k-=b.scrollTop;o-=b.scrollLeft;if(b===e){k+=b.offsetTop;o+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeName))){k+=parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}e=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"){k+=
-parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}d=d}if(d.position==="relative"||d.position==="static"){k+=l.offsetTop;o+=l.offsetLeft}if(c.offset.supportsFixedPosition&&d.position==="fixed"){k+=Math.max(h.scrollTop,l.scrollTop);o+=Math.max(h.scrollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset={initialize:function(){var a=t.body,b=t.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",
-height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells=
-f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a,
-"marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),l=c.css(a,"top"),k=c.css(a,"left"),o=e==="absolute"&&c.inArray("auto",[l,k])>-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a,
-e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&&
-c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();
-c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+
-b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window); \ No newline at end of file
diff --git a/library/prettyphoto/js/jquery-1.6.1.min.js b/library/prettyphoto/js/jquery-1.6.1.min.js
deleted file mode 100644
index eb6a59693..000000000
--- a/library/prettyphoto/js/jquery-1.6.1.min.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/*!
- * jQuery JavaScript Library v1.6.1
- * http://jquery.com/
- *
- * Copyright 2011, John Resig
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- * Copyright 2011, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- *
- * Date: Thu May 12 15:04:36 2011 -0400
- */
-(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!cj[a]){var b=f("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),c.body.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write("<!doctype><html><body></body></html>");b=cl.createElement(a),cl.body.appendChild(b),d=f.css(b,"display"),c.body.removeChild(ck)}cj[a]=d}return cj[a]}function cu(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function ct(){cq=b}function cs(){setTimeout(ct,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bF.test(a)?d(a,e):b_(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bU,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bQ),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bD(a,b,c){var d=b==="width"?bx:by,e=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return e;f.each(d,function(){c||(e-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?e+=parseFloat(f.css(a,"margin"+this))||0:e-=parseFloat(f.css(a,"border"+this+"Width"))||0});return e}function bn(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bm(a){f.nodeName(a,"input")?bl(a):a.getElementsByTagName&&f.grep(a.getElementsByTagName("input"),bl)}function bl(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bk(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bj(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bi(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bh(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function X(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(S.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function W(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function O(a,b){return(a&&a!=="*"?a+".":"")+b.replace(A,"`").replace(B,"&")}function N(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(y,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function L(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function F(){return!0}function E(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function H(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(H,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgent,x,y,z,A=Object.prototype.toString,B=Object.prototype.hasOwnProperty,C=Array.prototype.push,D=Array.prototype.slice,E=String.prototype.trim,F=Array.prototype.indexOf,G={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.1",length:0,size:function(){return this.length},toArray:function(){return D.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?C.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(D.apply(this,arguments),"slice",D.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:C,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;y.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!y){y=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",z,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",z),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&H()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):G[A.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!B.call(a,"constructor")&&!B.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||B.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:E?function(a){return a==null?"":E.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?C.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(F)return F.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=D.call(arguments,2),g=function(){return a.apply(c,f.concat(D.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){G["[object "+b+"]"]=b.toLowerCase()}),x=e.uaMatch(w),x.browser&&(e.browser[x.browser]=!0,e.browser.version=x.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?z=function(){c.removeEventListener("DOMContentLoaded",z,!1),e.ready()}:c.attachEvent&&(z=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",z),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g](h)}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;a.setAttribute("className","t"),a.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};f=c.createElement("select"),g=f.appendChild(c.createElement("option")),h=a.getElementsByTagName("input")[0],j={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},h.checked=!0,j.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,j.optDisabled=!g.disabled;try{delete a.test}catch(s){j.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function b(){j.noCloneEvent=!1,a.detachEvent("onclick",b)}),a.cloneNode(!0).fireEvent("onclick")),h=c.createElement("input"),h.value="t",h.setAttribute("type","radio"),j.radioValue=h.value==="t",h.setAttribute("checked","checked"),a.appendChild(h),k=c.createDocumentFragment(),k.appendChild(a.firstChild),j.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",l=c.createElement("body"),m={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(q in m)l.style[q]=m[q];l.appendChild(a),b.insertBefore(l,b.firstChild),j.appendChecked=h.checked,j.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,j.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",j.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",n=a.getElementsByTagName("td"),r=n[0].offsetHeight===0,n[0].style.display="",n[1].style.display="none",j.reliableHiddenOffsets=r&&n[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(i=c.createElement("div"),i.style.width="0",i.style.marginRight="0",a.appendChild(i),j.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(i,null)||{marginRight:0}).marginRight,10)||0)===0),l.innerHTML="",b.removeChild(l);if(a.attachEvent)for(q in{submit:1,change:1,focusin:1})p="on"+q,r=p in a,r||(a.setAttribute(p,"return;"),r=typeof a[p]=="function"),j[q+"Bubbles"]=r;return j}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u=/\:/,v,w;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.addClass(a.call(this,b,c.attr("class")||""))});if(a&&typeof a=="string"){var b=(a||"").split(o);for(var c=0,d=this.length;c<d;c++){var e=this[c];if(e.nodeType===1)if(!e.className)e.className=a;else{var g=" "+e.className+" ",h=e.className;for(var i=0,j=b.length;i<j;i++)g.indexOf(" "+b[i]+" ")<0&&(h+=" "+b[i]);e.className=f.trim(h)}}}return this},removeClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a=="string"||a===b){var c=(a||"").split(o);for(var d=0,e=this.length;d<e;d++){var g=this[d];if(g.nodeType===1&&g.className)if(a){var h=(" "+g.className+" ").replace(n," ");for(var i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){var d=f(this);d.toggleClass(a.call(this,c,d.attr("class"),b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;return(e.value||"").replace(p,"")}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);c=j&&f.attrFix[c]||c,i=f.attrHooks[c],i||(!t.test(c)||typeof d!="boolean"&&d!==b&&d.toLowerCase()!==c.toLowerCase()?v&&(f.nodeName(a,"form")||u.test(c))&&(i=v):i=w);if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j)return i.get(a,c);h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);c=i&&f.propFix[c]||c,h=f.propHooks[c];return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return a[f.propFix[c]||c]?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=b),a.setAttribute(c,c.toLowerCase()));return c}},f.attrHooks.value={get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return a.value},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=Object.prototype.hasOwnProperty,y=/\.(.*)$/,z=/^(?:textarea|input|select)$/i,A=/\./g,B=/ /g,C=/[^\w\s.|`]/g,D=function(a){return a.replace(C,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=E;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=E);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),D).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem
-)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,O(a.origType,a.selector),f.extend({},a,{handler:N,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,O(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?F:E):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=F;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=F;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=F,this.stopPropagation()},isDefaultPrevented:E,isPropagationStopped:E,isImmediatePropagationStopped:E};var G=function(a){var b=a.relatedTarget;a.type=a.data;try{if(b&&b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&f.event.handle.apply(this,arguments)}catch(d){}},H=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?H:G,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?H:G)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&f(b).closest("form").length&&L("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&L("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var I,J=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},K=function(c){var d=c.target,e,g;if(!!z.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=J(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:K,beforedeactivate:K,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&K.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&K.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",J(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in I)f.event.add(this,c+".specialChange",I[c]);return z.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return z.test(this.nodeName)}},I=f.event.special.change.filters,I.focus=I.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var M={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||E,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=y.exec(h),k="",j&&(k=j[0],h=h.replace(y,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,M[h]?(a.push(M[h]+k),h=h+k):h=(M[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+O(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+O(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var P=/Until$/,Q=/^(?:parents|prevUntil|prevAll)/,R=/,/,S=/^.[^:#\[\.,]*$/,T=Array.prototype.slice,U=f.expr.match.POS,V={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(X(this,a,!1),"not",a)},filter:function(a){return this.pushStack(X(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=U.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=U.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(W(c[0])||W(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=T.call(arguments);P.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!V[a]?f.unique(e):e,(this.length>1||R.test(d))&&Q.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y=/ jQuery\d+="(?:\d+|null)"/g,Z=/^\s+/,$=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,_=/<([\w:]+)/,ba=/<tbody/i,bb=/<|&#?\w+;/,bc=/<(?:script|object|embed|option|style)/i,bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Y,""):null;if(typeof a=="string"&&!bc.test(a)&&(f.support.leadingWhitespace||!Z.test(a))&&!bg[(_.exec(a)||["",""])[1].toLowerCase()]){a=a.replace($,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bh(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bn)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!bc.test(a[0])&&(f.support.checkClone||!bd.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bj(a,d),e=bk(a),g=bk(d);for(h=0;e[h];++h)bj(e[h],g[h])}if(b){bi(a,d);if(c){e=bk(a),g=bk(d);for(h=0;e[h];++h)bi(e[h],g[h])}}return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||
-b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bb.test(k))k=b.createTextNode(k);else{k=k.replace($,"<$1></$2>");var l=(_.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=ba.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Z.test(k)&&o.insertBefore(b.createTextNode(Z.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bm(k[i]);else bm(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bo=/alpha\([^)]*\)/i,bp=/opacity=([^)]*)/,bq=/-([a-z])/ig,br=/([A-Z]|^ms)/g,bs=/^-?\d+(?:px)?$/i,bt=/^-?\d/,bu=/^[+\-]=/,bv=/[^+\-\.\de]+/g,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB,bC=function(a,b){return b.toUpperCase()};f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0,widows:!0,orphans:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d;if(h==="number"&&isNaN(d)||d==null)return;h==="string"&&bu.test(d)&&(d=+d.replace(bv,"")+parseFloat(f.css(a,c))),h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bq,bC)}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){a.offsetWidth!==0?e=bD(a,b,d):f.swap(a,bw,function(){e=bD(a,b,d)});if(e<=0){e=bz(a,b,b),e==="0px"&&bB&&(e=bB(a,b,b));if(e!=null)return e===""||e==="auto"?"0px":e}if(e<0||e==null){e=a.style[b];return e===""||e==="auto"?"0px":e}return typeof e=="string"?e:e+"px"}},set:function(a,b){if(!bs.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bp.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bo.test(g)?g.replace(bo,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,c){var d,e,g;c=c.replace(br,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bs.test(d)&&bt.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bE=/%20/g,bF=/\[\]$/,bG=/\r?\n/g,bH=/#.*$/,bI=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bJ=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bK=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bL=/^(?:GET|HEAD)$/,bM=/^\/\//,bN=/\?/,bO=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bP=/^(?:select|textarea)/i,bQ=/\s+/,bR=/([?&])_=[^&]*/,bS=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bT=f.fn.load,bU={},bV={},bW,bX;try{bW=e.href}catch(bY){bW=c.createElement("a"),bW.href="",bW=bW.href}bX=bS.exec(bW.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bT)return bT.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bO,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bP.test(this.nodeName)||bJ.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bG,"\r\n")}}):{name:b.name,value:c.replace(bG,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bW,isLocal:bK.test(bX[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bZ(bU),ajaxTransport:bZ(bV),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?ca(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=cb(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bI.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bH,"").replace(bM,bX[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bQ),d.crossDomain==null&&(r=bS.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bX[1]&&r[2]==bX[2]&&(r[3]||(r[1]==="http:"?80:443))==(bX[3]||(bX[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bU,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bL.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bN.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bR,"$1_="+x);d.url=y+(y===d.url?(bN.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bV,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bE,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq,cr=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cv(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cm.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=cn.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this),f.isFunction(d.old)&&d.old.call(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function h(a){return d.step(a)}var d=this,e=f.fx,g;this.startTime=cq||cs(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,h.elem=this.elem,h()&&f.timers.push(h)&&!co&&(cr?(co=1,g=function(){co&&(cr(g),e.tick())},cr(g)):co=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cq||cs(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){return this[0]?parseFloat(f.css(this[0],d,"padding")):null},f.fn["outer"+c]=function(a){return this[0]?parseFloat(f.css(this[0],d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file
diff --git a/library/prettyphoto/js/jquery.prettyPhoto.js b/library/prettyphoto/js/jquery.prettyPhoto.js
deleted file mode 100644
index a67afddca..000000000
--- a/library/prettyphoto/js/jquery.prettyPhoto.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/* ------------------------------------------------------------------------
- Class: prettyPhoto
- Use: Lightbox clone for jQuery
- Author: Stephane Caron (http://www.no-margin-for-errors.com)
- Version: 3.1.5
-------------------------------------------------------------------------- */
-(function(e){function t(){var e=location.href;hashtag=e.indexOf("#prettyPhoto")!==-1?decodeURI(e.substring(e.indexOf("#prettyPhoto")+1,e.length)):false;return hashtag}function n(){if(typeof theRel=="undefined")return;location.hash=theRel+"/"+rel_index+"/"}function r(){if(location.href.indexOf("#prettyPhoto")!==-1)location.hash="prettyPhoto"}function i(e,t){e=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var n="[\\?&]"+e+"=([^&#]*)";var r=new RegExp(n);var i=r.exec(t);return i==null?"":i[1]}e.prettyPhoto={version:"3.1.5"};e.fn.prettyPhoto=function(s){function g(){e(".pp_loaderIcon").hide();projectedTop=scroll_pos["scrollTop"]+(d/2-a["containerHeight"]/2);if(projectedTop<0)projectedTop=0;$ppt.fadeTo(settings.animation_speed,1);$pp_pic_holder.find(".pp_content").animate({height:a["contentHeight"],width:a["contentWidth"]},settings.animation_speed);$pp_pic_holder.animate({top:projectedTop,left:v/2-a["containerWidth"]/2<0?0:v/2-a["containerWidth"]/2,width:a["containerWidth"]},settings.animation_speed,function(){$pp_pic_holder.find(".pp_hoverContainer,#fullResImage").height(a["height"]).width(a["width"]);$pp_pic_holder.find(".pp_fade").fadeIn(settings.animation_speed);if(isSet&&S(pp_images[set_position])=="image"){$pp_pic_holder.find(".pp_hoverContainer").show()}else{$pp_pic_holder.find(".pp_hoverContainer").hide()}if(settings.allow_expand){if(a["resized"]){e("a.pp_expand,a.pp_contract").show()}else{e("a.pp_expand").hide()}}if(settings.autoplay_slideshow&&!m&&!f)e.prettyPhoto.startSlideshow();settings.changepicturecallback();f=true});C();s.ajaxcallback()}function y(t){$pp_pic_holder.find("#pp_full_res object,#pp_full_res embed").css("visibility","hidden");$pp_pic_holder.find(".pp_fade").fadeOut(settings.animation_speed,function(){e(".pp_loaderIcon").show();t()})}function b(t){t>1?e(".pp_nav").show():e(".pp_nav").hide()}function w(e,t){resized=false;E(e,t);imageWidth=e,imageHeight=t;if((p>v||h>d)&&doresize&&settings.allow_resize&&!u){resized=true,fitting=false;while(!fitting){if(p>v){imageWidth=v-200;imageHeight=t/e*imageWidth}else if(h>d){imageHeight=d-200;imageWidth=e/t*imageHeight}else{fitting=true}h=imageHeight,p=imageWidth}if(p>v||h>d){w(p,h)}E(imageWidth,imageHeight)}return{width:Math.floor(imageWidth),height:Math.floor(imageHeight),containerHeight:Math.floor(h),containerWidth:Math.floor(p)+settings.horizontal_padding*2,contentHeight:Math.floor(l),contentWidth:Math.floor(c),resized:resized}}function E(t,n){t=parseFloat(t);n=parseFloat(n);$pp_details=$pp_pic_holder.find(".pp_details");$pp_details.width(t);detailsHeight=parseFloat($pp_details.css("marginTop"))+parseFloat($pp_details.css("marginBottom"));$pp_details=$pp_details.clone().addClass(settings.theme).width(t).appendTo(e("body")).css({position:"absolute",top:-1e4});detailsHeight+=$pp_details.height();detailsHeight=detailsHeight<=34?36:detailsHeight;$pp_details.remove();$pp_title=$pp_pic_holder.find(".ppt");$pp_title.width(t);titleHeight=parseFloat($pp_title.css("marginTop"))+parseFloat($pp_title.css("marginBottom"));$pp_title=$pp_title.clone().appendTo(e("body")).css({position:"absolute",top:-1e4});titleHeight+=$pp_title.height();$pp_title.remove();l=n+detailsHeight;c=t;h=l+titleHeight+$pp_pic_holder.find(".pp_top").height()+$pp_pic_holder.find(".pp_bottom").height();p=t}function S(e){if(e.match(/youtube\.com\/watch/i)||e.match(/youtu\.be/i)){return"youtube"}else if(e.match(/vimeo\.com/i)){return"vimeo"}else if(e.match(/\b.mov\b/i)){return"quicktime"}else if(e.match(/\b.swf\b/i)){return"flash"}else if(e.match(/\biframe=true\b/i)){return"iframe"}else if(e.match(/\bajax=true\b/i)){return"ajax"}else if(e.match(/\bcustom=true\b/i)){return"custom"}else if(e.substr(0,1)=="#"){return"inline"}else{return"image"}}function x(){if(doresize&&typeof $pp_pic_holder!="undefined"){scroll_pos=T();contentHeight=$pp_pic_holder.height(),contentwidth=$pp_pic_holder.width();projectedTop=d/2+scroll_pos["scrollTop"]-contentHeight/2;if(projectedTop<0)projectedTop=0;if(contentHeight>d)return;$pp_pic_holder.css({top:projectedTop,left:v/2+scroll_pos["scrollLeft"]-contentwidth/2})}}function T(){if(self.pageYOffset){return{scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset}}else if(document.documentElement&&document.documentElement.scrollTop){return{scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft}}else if(document.body){return{scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft}}}function N(){d=e(window).height(),v=e(window).width();if(typeof $pp_overlay!="undefined")$pp_overlay.height(e(document).height()).width(v)}function C(){if(isSet&&settings.overlay_gallery&&S(pp_images[set_position])=="image"){itemWidth=52+5;navWidth=settings.theme=="facebook"||settings.theme=="pp_default"?50:30;itemsPerPage=Math.floor((a["containerWidth"]-100-navWidth)/itemWidth);itemsPerPage=itemsPerPage<pp_images.length?itemsPerPage:pp_images.length;totalPage=Math.ceil(pp_images.length/itemsPerPage)-1;if(totalPage==0){navWidth=0;$pp_gallery.find(".pp_arrow_next,.pp_arrow_previous").hide()}else{$pp_gallery.find(".pp_arrow_next,.pp_arrow_previous").show()}galleryWidth=itemsPerPage*itemWidth;fullGalleryWidth=pp_images.length*itemWidth;$pp_gallery.css("margin-left",-(galleryWidth/2+navWidth/2)).find("div:first").width(galleryWidth+5).find("ul").width(fullGalleryWidth).find("li.selected").removeClass("selected");goToPage=Math.floor(set_position/itemsPerPage)<totalPage?Math.floor(set_position/itemsPerPage):totalPage;e.prettyPhoto.changeGalleryPage(goToPage);$pp_gallery_li.filter(":eq("+set_position+")").addClass("selected")}else{$pp_pic_holder.find(".pp_content").unbind("mouseenter mouseleave")}}function k(t){if(settings.social_tools)facebook_like_link=settings.social_tools.replace("{location_href}",encodeURIComponent(location.href));settings.markup=settings.markup.replace("{pp_social}","");e("body").append(settings.markup);$pp_pic_holder=e(".pp_pic_holder"),$ppt=e(".ppt"),$pp_overlay=e("div.pp_overlay");if(isSet&&settings.overlay_gallery){currentGalleryPage=0;toInject="";for(var n=0;n<pp_images.length;n++){if(!pp_images[n].match(/\b(jpg|jpeg|png|gif)\b/gi)){classname="default";img_src=""}else{classname="";img_src=pp_images[n]}toInject+="<li class='"+classname+"'><a href='#'><img src='"+img_src+"' width='50' alt='' /></a></li>"}toInject=settings.gallery_markup.replace(/{gallery}/g,toInject);$pp_pic_holder.find("#pp_full_res").after(toInject);$pp_gallery=e(".pp_pic_holder .pp_gallery"),$pp_gallery_li=$pp_gallery.find("li");$pp_gallery.find(".pp_arrow_next").click(function(){e.prettyPhoto.changeGalleryPage("next");e.prettyPhoto.stopSlideshow();return false});$pp_gallery.find(".pp_arrow_previous").click(function(){e.prettyPhoto.changeGalleryPage("previous");e.prettyPhoto.stopSlideshow();return false});$pp_pic_holder.find(".pp_content").hover(function(){$pp_pic_holder.find(".pp_gallery:not(.disabled)").fadeIn()},function(){$pp_pic_holder.find(".pp_gallery:not(.disabled)").fadeOut()});itemWidth=52+5;$pp_gallery_li.each(function(t){e(this).find("a").click(function(){e.prettyPhoto.changePage(t);e.prettyPhoto.stopSlideshow();return false})})}if(settings.slideshow){$pp_pic_holder.find(".pp_nav").prepend('<a href="#" class="pp_play">Play</a>');$pp_pic_holder.find(".pp_nav .pp_play").click(function(){e.prettyPhoto.startSlideshow();return false})}$pp_pic_holder.attr("class","pp_pic_holder "+settings.theme);$pp_overlay.css({opacity:0,height:e(document).height(),width:e(window).width()}).bind("click",function(){if(!settings.modal)e.prettyPhoto.close()});e("a.pp_close").bind("click",function(){e.prettyPhoto.close();return false});if(settings.allow_expand){e("a.pp_expand").bind("click",function(t){if(e(this).hasClass("pp_expand")){e(this).removeClass("pp_expand").addClass("pp_contract");doresize=false}else{e(this).removeClass("pp_contract").addClass("pp_expand");doresize=true}y(function(){e.prettyPhoto.open()});return false})}$pp_pic_holder.find(".pp_previous, .pp_nav .pp_arrow_previous").bind("click",function(){e.prettyPhoto.changePage("previous");e.prettyPhoto.stopSlideshow();return false});$pp_pic_holder.find(".pp_next, .pp_nav .pp_arrow_next").bind("click",function(){e.prettyPhoto.changePage("next");e.prettyPhoto.stopSlideshow();return false});x()}s=jQuery.extend({hook:"rel",animation_speed:"fast",ajaxcallback:function(){},slideshow:5e3,autoplay_slideshow:false,opacity:.8,show_title:true,allow_resize:true,allow_expand:true,default_width:500,default_height:344,counter_separator_label:"/",theme:"pp_default",horizontal_padding:20,hideflash:false,wmode:"opaque",autoplay:true,modal:false,deeplinking:true,overlay_gallery:true,overlay_gallery_max:30,keyboard_shortcuts:true,changepicturecallback:function(){},callback:function(){},ie6_fallback:true,markup:'<div class="pp_pic_holder"> <div class="ppt"> </div> <div class="pp_top"> <div class="pp_left"></div> <div class="pp_middle"></div> <div class="pp_right"></div> </div> <div class="pp_content_container"> <div class="pp_left"> <div class="pp_right"> <div class="pp_content"> <div class="pp_loaderIcon"></div> <div class="pp_fade"> <a href="#" class="pp_expand" title="Expand the image">Expand</a> <div class="pp_hoverContainer"> <a class="pp_next" href="#">next</a> <a class="pp_previous" href="#">previous</a> </div> <div id="pp_full_res"></div> <div class="pp_details"> <div class="pp_nav"> <a href="#" class="pp_arrow_previous">Previous</a> <p class="currentTextHolder">0/0</p> <a href="#" class="pp_arrow_next">Next</a> </div> <p class="pp_description"></p> <div class="pp_social">{pp_social}</div> <a class="pp_close" href="#">Close</a> </div> </div> </div> </div> </div> </div> <div class="pp_bottom"> <div class="pp_left"></div> <div class="pp_middle"></div> <div class="pp_right"></div> </div> </div> <div class="pp_overlay"></div>',gallery_markup:'<div class="pp_gallery"> <a href="#" class="pp_arrow_previous">Previous</a> <div> <ul> {gallery} </ul> </div> <a href="#" class="pp_arrow_next">Next</a> </div>',image_markup:'<img id="fullResImage" src="{path}" />',flash_markup:'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="{width}" height="{height}"><param name="wmode" value="{wmode}" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{path}" /><embed src="{path}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="{width}" height="{height}" wmode="{wmode}"></embed></object>',quicktime_markup:'<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="{height}" width="{width}"><param name="src" value="{path}"><param name="autoplay" value="{autoplay}"><param name="type" value="video/quicktime"><embed src="{path}" height="{height}" width="{width}" autoplay="{autoplay}" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></embed></object>',iframe_markup:'<iframe src ="{path}" width="{width}" height="{height}" frameborder="no"></iframe>',inline_markup:'<div class="pp_inline">{content}</div>'},s);var o=this,u=false,a,f,l,c,h,p,d=e(window).height(),v=e(window).width(),m;doresize=true,scroll_pos=T();e(window).unbind("resize.prettyphoto").bind("resize.prettyphoto",function(){x();N()});if(s.keyboard_shortcuts){e(document).unbind("keydown.prettyphoto").bind("keydown.prettyphoto",function(t){if(typeof $pp_pic_holder!="undefined"){if($pp_pic_holder.is(":visible")){switch(t.keyCode){case 37:e.prettyPhoto.changePage("previous");t.preventDefault();break;case 39:e.prettyPhoto.changePage("next");t.preventDefault();break;case 27:if(!settings.modal)e.prettyPhoto.close();t.preventDefault();break}}}})}e.prettyPhoto.initialize=function(){settings=s;if(settings.theme=="pp_default")settings.horizontal_padding=16;theRel=e(this).attr(settings.hook);galleryRegExp=/\[(?:.*)\]/;isSet=galleryRegExp.exec(theRel)?true:false;pp_images=isSet?jQuery.map(o,function(t,n){if(e(t).attr(settings.hook).indexOf(theRel)!=-1)return e(t).attr("href")}):e.makeArray(e(this).attr("href"));pp_titles=isSet?jQuery.map(o,function(t,n){if(e(t).attr(settings.hook).indexOf(theRel)!=-1)return e(t).find("img").attr("alt")?e(t).find("img").attr("alt"):""}):e.makeArray(e(this).find("img").attr("alt"));pp_descriptions=isSet?jQuery.map(o,function(t,n){if(e(t).attr(settings.hook).indexOf(theRel)!=-1)return e(t).attr("title")?e(t).attr("title"):""}):e.makeArray(e(this).attr("title"));if(pp_images.length>settings.overlay_gallery_max)settings.overlay_gallery=false;set_position=jQuery.inArray(e(this).attr("href"),pp_images);rel_index=isSet?set_position:e("a["+settings.hook+"^='"+theRel+"']").index(e(this));k(this);if(settings.allow_resize)e(window).bind("scroll.prettyphoto",function(){x()});e.prettyPhoto.open();return false};e.prettyPhoto.open=function(t){if(typeof settings=="undefined"){settings=s;pp_images=e.makeArray(arguments[0]);pp_titles=arguments[1]?e.makeArray(arguments[1]):e.makeArray("");pp_descriptions=arguments[2]?e.makeArray(arguments[2]):e.makeArray("");isSet=pp_images.length>1?true:false;set_position=arguments[3]?arguments[3]:0;k(t.target)}if(settings.hideflash)e("object,embed,iframe[src*=youtube],iframe[src*=vimeo]").css("visibility","hidden");b(e(pp_images).size());e(".pp_loaderIcon").show();if(settings.deeplinking)n();if(settings.social_tools){facebook_like_link=settings.social_tools.replace("{location_href}",encodeURIComponent(location.href));$pp_pic_holder.find(".pp_social").html(facebook_like_link)}if($ppt.is(":hidden"))$ppt.css("opacity",0).show();$pp_overlay.show().fadeTo(settings.animation_speed,settings.opacity);$pp_pic_holder.find(".currentTextHolder").text(set_position+1+settings.counter_separator_label+e(pp_images).size());if(typeof pp_descriptions[set_position]!="undefined"&&pp_descriptions[set_position]!=""){$pp_pic_holder.find(".pp_description").show().html(unescape(pp_descriptions[set_position]))}else{$pp_pic_holder.find(".pp_description").hide()}movie_width=parseFloat(i("width",pp_images[set_position]))?i("width",pp_images[set_position]):settings.default_width.toString();movie_height=parseFloat(i("height",pp_images[set_position]))?i("height",pp_images[set_position]):settings.default_height.toString();u=false;if(movie_height.indexOf("%")!=-1){movie_height=parseFloat(e(window).height()*parseFloat(movie_height)/100-150);u=true}if(movie_width.indexOf("%")!=-1){movie_width=parseFloat(e(window).width()*parseFloat(movie_width)/100-150);u=true}$pp_pic_holder.fadeIn(function(){settings.show_title&&pp_titles[set_position]!=""&&typeof pp_titles[set_position]!="undefined"?$ppt.html(unescape(pp_titles[set_position])):$ppt.html(" ");imgPreloader="";skipInjection=false;switch(S(pp_images[set_position])){case"image":imgPreloader=new Image;nextImage=new Image;if(isSet&&set_position<e(pp_images).size()-1)nextImage.src=pp_images[set_position+1];prevImage=new Image;if(isSet&&pp_images[set_position-1])prevImage.src=pp_images[set_position-1];$pp_pic_holder.find("#pp_full_res")[0].innerHTML=settings.image_markup.replace(/{path}/g,pp_images[set_position]);imgPreloader.onload=function(){a=w(imgPreloader.width,imgPreloader.height);g()};imgPreloader.onerror=function(){alert("Image cannot be loaded. Make sure the path is correct and image exist.");e.prettyPhoto.close()};imgPreloader.src=pp_images[set_position];break;case"youtube":a=w(movie_width,movie_height);movie_id=i("v",pp_images[set_position]);if(movie_id==""){movie_id=pp_images[set_position].split("youtu.be/");movie_id=movie_id[1];if(movie_id.indexOf("?")>0)movie_id=movie_id.substr(0,movie_id.indexOf("?"));if(movie_id.indexOf("&")>0)movie_id=movie_id.substr(0,movie_id.indexOf("&"))}movie="http://www.youtube.com/embed/"+movie_id;i("rel",pp_images[set_position])?movie+="?rel="+i("rel",pp_images[set_position]):movie+="?rel=1";if(settings.autoplay)movie+="&autoplay=1";toInject=settings.iframe_markup.replace(/{width}/g,a["width"]).replace(/{height}/g,a["height"]).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie);break;case"vimeo":a=w(movie_width,movie_height);movie_id=pp_images[set_position];var t=/http(s?):\/\/(www\.)?vimeo.com\/(\d+)/;var n=movie_id.match(t);movie="http://player.vimeo.com/video/"+n[3]+"?title=0&byline=0&portrait=0";if(settings.autoplay)movie+="&autoplay=1;";vimeo_width=a["width"]+"/embed/?moog_width="+a["width"];toInject=settings.iframe_markup.replace(/{width}/g,vimeo_width).replace(/{height}/g,a["height"]).replace(/{path}/g,movie);break;case"quicktime":a=w(movie_width,movie_height);a["height"]+=15;a["contentHeight"]+=15;a["containerHeight"]+=15;toInject=settings.quicktime_markup.replace(/{width}/g,a["width"]).replace(/{height}/g,a["height"]).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,pp_images[set_position]).replace(/{autoplay}/g,settings.autoplay);break;case"flash":a=w(movie_width,movie_height);flash_vars=pp_images[set_position];flash_vars=flash_vars.substring(pp_images[set_position].indexOf("flashvars")+10,pp_images[set_position].length);filename=pp_images[set_position];filename=filename.substring(0,filename.indexOf("?"));toInject=settings.flash_markup.replace(/{width}/g,a["width"]).replace(/{height}/g,a["height"]).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+"?"+flash_vars);break;case"iframe":a=w(movie_width,movie_height);frame_url=pp_images[set_position];frame_url=frame_url.substr(0,frame_url.indexOf("iframe")-1);toInject=settings.iframe_markup.replace(/{width}/g,a["width"]).replace(/{height}/g,a["height"]).replace(/{path}/g,frame_url);break;case"ajax":doresize=false;a=w(movie_width,movie_height);doresize=true;skipInjection=true;e.get(pp_images[set_position],function(e){toInject=settings.inline_markup.replace(/{content}/g,e);$pp_pic_holder.find("#pp_full_res")[0].innerHTML=toInject;g()});break;case"custom":a=w(movie_width,movie_height);toInject=settings.custom_markup;break;case"inline":myClone=e(pp_images[set_position]).clone().append('<br clear="all" />').css({width:settings.default_width}).wrapInner('<div id="pp_full_res"><div class="pp_inline"></div></div>').appendTo(e("body")).show();doresize=false;a=w(e(myClone).width(),e(myClone).height());doresize=true;e(myClone).remove();toInject=settings.inline_markup.replace(/{content}/g,e(pp_images[set_position]).html());break}if(!imgPreloader&&!skipInjection){$pp_pic_holder.find("#pp_full_res")[0].innerHTML=toInject;g()}});return false};e.prettyPhoto.changePage=function(t){currentGalleryPage=0;if(t=="previous"){set_position--;if(set_position<0)set_position=e(pp_images).size()-1}else if(t=="next"){set_position++;if(set_position>e(pp_images).size()-1)set_position=0}else{set_position=t}rel_index=set_position;if(!doresize)doresize=true;if(settings.allow_expand){e(".pp_contract").removeClass("pp_contract").addClass("pp_expand")}y(function(){e.prettyPhoto.open()})};e.prettyPhoto.changeGalleryPage=function(e){if(e=="next"){currentGalleryPage++;if(currentGalleryPage>totalPage)currentGalleryPage=0}else if(e=="previous"){currentGalleryPage--;if(currentGalleryPage<0)currentGalleryPage=totalPage}else{currentGalleryPage=e}slide_speed=e=="next"||e=="previous"?settings.animation_speed:0;slide_to=currentGalleryPage*itemsPerPage*itemWidth;$pp_gallery.find("ul").animate({left:-slide_to},slide_speed)};e.prettyPhoto.startSlideshow=function(){if(typeof m=="undefined"){$pp_pic_holder.find(".pp_play").unbind("click").removeClass("pp_play").addClass("pp_pause").click(function(){e.prettyPhoto.stopSlideshow();return false});m=setInterval(e.prettyPhoto.startSlideshow,settings.slideshow)}else{e.prettyPhoto.changePage("next")}};e.prettyPhoto.stopSlideshow=function(){$pp_pic_holder.find(".pp_pause").unbind("click").removeClass("pp_pause").addClass("pp_play").click(function(){e.prettyPhoto.startSlideshow();return false});clearInterval(m);m=undefined};e.prettyPhoto.close=function(){if($pp_overlay.is(":animated"))return;e.prettyPhoto.stopSlideshow();$pp_pic_holder.stop().find("object,embed").css("visibility","hidden");e("div.pp_pic_holder,div.ppt,.pp_fade").fadeOut(settings.animation_speed,function(){e(this).remove()});$pp_overlay.fadeOut(settings.animation_speed,function(){if(settings.hideflash)e("object,embed,iframe[src*=youtube],iframe[src*=vimeo]").css("visibility","visible");e(this).remove();e(window).unbind("scroll.prettyphoto");r();settings.callback();doresize=true;f=false;delete settings})};if(!pp_alreadyInitialized&&t()){pp_alreadyInitialized=true;hashIndex=t();hashRel=hashIndex;hashIndex=hashIndex.substring(hashIndex.indexOf("/")+1,hashIndex.length-1);hashRel=hashRel.substring(0,hashRel.indexOf("/"));setTimeout(function(){e("a["+s.hook+"^='"+hashRel+"']:eq("+hashIndex+")").trigger("click")},50)}return this.unbind("click.prettyphoto").bind("click.prettyphoto",e.prettyPhoto.initialize)};})(jQuery);var pp_alreadyInitialized=false \ No newline at end of file
diff --git a/library/spam/b8/storage/storage_frndc.php b/library/spam/b8/storage/storage_frndc.php
index 62909d471..f211d4431 100644
--- a/library/spam/b8/storage/storage_frndc.php
+++ b/library/spam/b8/storage/storage_frndc.php
@@ -205,7 +205,7 @@ class b8_storage_frndc extends b8_storage_base
foreach($to_create as $term) {
if(strlen($sql))
$sql .= ',';
- $sql .= sprintf("(term,datetime,uid) values('%s','%s',%d)",
+ $sql .= sprintf("(term,date,uid) values('%s','%s',%d)",
dbesc(str_tolower($term))
dbesc(datetime_convert()),
intval($uid)
@@ -280,16 +280,16 @@ class b8_storage_frndc extends b8_storage_base
$result = q('
DELETE FROM ' . $this->config['table_name'] . '
- WHERE token IN ("' . implode('", "', $this->_deletes) . '") AND uid = ' . $this->uid);
+ WHERE term IN ("' . implode('", "', $this->_deletes) . '") AND uid = ' . $this->uid);
$this->_deletes = array();
}
if(count($this->_puts) > 0) {
-
+//fixme
$result = q('
- INSERT INTO ' . $this->config['table_name'] . '(token, count, uid)
+ INSERT INTO ' . $this->config['table_name'] . '(term, count, uid)
VALUES ' . implode(', ', $this->_puts));
$this->_puts = array();
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin.js2 b/library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin.js2
new file mode 100644
index 000000000..290508845
--- /dev/null
+++ b/library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin.js2
@@ -0,0 +1 @@
+(function(){tinymce.create("tinymce.plugins.BBCodePlugin",{init:function(e,t){var n=this,r=e.getParam("bbcode_dialect","dfrn").toLowerCase();e.onBeforeSetContent.add(function(e,t){t.content=n["_"+r+"_bbcode2html"](t.content)});e.onPostProcess.add(function(e,t){if(t.set)t.content=n["_"+r+"_bbcode2html"](t.content);if(t.get)t.content=n["_"+r+"_html2bbcode"](t.content)})},getInfo:function(){return{longname:"BBCode Plugin",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_dfrn_html2bbcode:function(e){function t(t,n){e=e.replace(t,n)}function n(e){var t,n,r=[],i=[];var s=/<span [^>]*class *= *[\"'](?:[^\"']* )*oembed(?: [^\"']*)*[\"'][^>]*>(.*?(?:<span[^>]*>(.*?)<\/span *>)*.*?)<\/span *>/ig;while(t=s.exec(e)){var o=/<a([^>]* rel=[\"']oembed[\"'][^>]*)>.*?<\/a *>/ig;if(n=o.exec(t[1])){var u=/href=[\"']([^\"']*)[\"']/ig;var a=u.exec(n[1]);if(a[1]){r.push(t[0]);i.push("[EMBED]"+a[1]+"[/EMBED]")}}}for(var f=0;f<r.length;f++)e=e.replace(r[f],i[f]);return e}e=tinymce.trim(e);if(e.indexOf('class="oembed')>=0){e=n(e)}t(/#\^<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"#^[url=$1]$2[/url]");t(/(^|[^#\^])<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"$1#^[url=$2]$3[/url]");t(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]");t(/<span style=\"color:(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]");t(/<font>(.*?)<\/font>/gi,"$1");t(/<img.*?width=\"(.*?)\".*?height=\"(.*?)\".*?src=\"(.*?)\".*?\/>/gi,"[img=$1x$2]$3[/img]");t(/<img.*?height=\"(.*?)\".*?width=\"(.*?)\".*?src=\"(.*?)\".*?\/>/gi,"[img=$2x$1]$3[/img]");t(/<img.*?src=\"(.*?)\".*?height=\"(.*?)\".*?width=\"(.*?)\".*?\/>/gi,"[img=$3x$2]$1[/img]");t(/<img.*?src=\"(.*?)\".*?width=\"(.*?)\".*?height=\"(.*?)\".*?\/>/gi,"[img=$2x$3]$1[/img]");t(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");t(/<ul class=\"listbullet\" style=\"list-style-type\: circle\;\">(.*?)<\/ul>/gi,"[list]$1[/list]");t(/<ul class=\"listnone\" style=\"list-style-type\: none\;\">(.*?)<\/ul>/gi,"[list=]$1[/list]");t(/<ul class=\"listdecimal\" style=\"list-style-type\: decimal\;\">(.*?)<\/ul>/gi,"[list=1]$1[/list]");t(/<ul class=\"listlowerroman\" style=\"list-style-type\: lower-roman\;\">(.*?)<\/ul>/gi,"[list=i]$1[/list]");t(/<ul class=\"listupperroman\" style=\"list-style-type\: upper-roman\;\">(.*?)<\/ul>/gi,"[list=I]$1[/list]");t(/<ul class=\"listloweralpha\" style=\"list-style-type\: lower-alpha\;\">(.*?)<\/ul>/gi,"[list=a]$1[/list]");t(/<ul class=\"listupperalpha\" style=\"list-style-type\: upper-alpha\;\">(.*?)<\/ul>/gi,"[list=A]$1[/list]");t(/<li>(.*?)<\/li>/gi,"[li]$1[/li]");t(/<code>(.*?)<\/code>/gi,"[code]$1[/code]");t(/<\/(strong|b)>/gi,"[/b]");t(/<(strong|b)>/gi,"[b]");t(/<\/(em|i)>/gi,"[/i]");t(/<(em|i)>/gi,"[i]");t(/<\/u>/gi,"[/u]");t(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]");t(/<u>/gi,"[u]");t(/<blockquote[^>]*>/gi,"[quote]");t(/<\/blockquote>/gi,"[/quote]");t(/<hr \/>/gi,"[hr]");t(/<br (.*?)\/>/gi,"\n");t(/<br\/>/gi,"\n");t(/<br>/gi,"\n");t(/<p>/gi,"");t(/<\/p>/gi,"\n");t(/&nbsp;/gi," ");t(/&quot;/gi,'"');t(/&lt;/gi,"<");t(/&gt;/gi,">");t(/&/gi,"&");return e},_dfrn_bbcode2html:function(e){function t(t,n){var r=new Array;var i=e.split("[code]");var o=0;var u="";u=i.shift();u=u.replace(t,n);r.push(u);for(o=0;o<i.length;o++){var a=new Array;var f=i.shift();var l=f.split("[/code]");a.push(l.shift());u=l.shift();u=u.replace(t,n);a.push(u);r.push(a.join("[/code]"))}e=r.join("[code]")}function n(e,t){function n(t){e=t}t=bin2hex(t);$.ajax({url:"oembed/b2h?url="+t,async:false,success:n,dataType:"html"});return e}e=tinymce.trim(e);t(/\n/gi,"<br />");t(/\[b\]/gi,"<strong>");t(/\[\/b\]/gi,"</strong>");t(/\[i\]/gi,"<em>");t(/\[\/i\]/gi,"</em>");t(/\[u\]/gi,"<u>");t(/\[\/u\]/gi,"</u>");t(/\[hr\]/gi,"<hr />");t(/[#\^]\[url=([^\]]+)\](.*?)\[\/url\]/gi,"#^<a href=\"$1\">$2</a>");t(/[#\^]\[url\](.*?)\[\/url\]/gi,"#^<a href=\"$1\">$1</a>");t(/(^|[^#\^])\[url=([^\]]+)\](.*?)\[\/url\]/gi,"$1#^<a href=\"$2\">$3</a>");t(/(^|[^#\^])\[url\](.*?)\[\/url\]/gi,"$1#^<a href=\"$2\">$2</a>");t(/\[img=(.*?)x(.*?)\](.*?)\[\/img\]/gi,'<img width="$1" height="$2" src="$3" />');t(/\[img\](.*?)\[\/img\]/gi,'<img src="$1" />');t(/\[list\](.*?)\[\/list\]/gi,'<ul class="listbullet" style="list-style-type: circle;">$1</ul>');t(/\[list=\](.*?)\[\/list\]/gi,'<ul class="listnone" style="list-style-type: none;">$1</ul>');t(/\[list=1\](.*?)\[\/list\]/gi,'<ul class="listdecimal" style="list-style-type: decimal;">$1</ul>');t(/\[list=i\](.*?)\[\/list\]/gi,'<ul class="listlowerroman" style="list-style-type: lower-roman;">$1</ul>');t(/\[list=I\](.*?)\[\/list\]/gi,'<ul class="listupperroman" style="list-style-type: upper-roman;">$1</ul>');t(/\[list=a\](.*?)\[\/list\]/gi,'<ul class="listloweralpha" style="list-style-type: lower-alpha;">$1</ul>');t(/\[list=A\](.*?)\[\/list\]/gi,'<ul class="listupperalpha" style="list-style-type: upper-alpha;">$1</ul>');t(/\[li\](.*?)\[\/li\]/gi,"<li>$1</li>");t(/\[color=(.*?)\](.*?)\[\/color\]/gi,'<span style="color: $1;">$2</span>');t(/\[size=(.*?)\](.*?)\[\/size\]/gi,'<span style="font-size: $1;">$2</span>');t(/\[code\](.*?)\[\/code\]/gi,"<code>$1</code>");t(/\[quote.*?\](.*?)\[\/quote\]/gi,"<blockquote>$1</blockquote>");e=e.replace(/\[embed\](.*?)\[\/embed\]/gi,n);return e}});tinymce.PluginManager.add("bbcode",tinymce.plugins.BBCodePlugin)})()
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js
index 387ccdd59..ff0109b23 100644
--- a/library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js
+++ b/library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js
@@ -10,6 +10,13 @@
/* Macgirvin Aug-2010 changed from punbb to dfrn dialect */
+/**
+ * If you want to try and get bookmark content (#^{somelink}) working in tinymce,
+ * I've made some progress, but one or the other of insert-url or insert-link gets it wrong,
+ * and the error compounds on every edit.
+ * See editor_plugin_src.js2/editor_plugin.js2 if you're interested in fixing this.
+ */
+
(function() {
tinymce.create('tinymce.plugins.BBCodePlugin', {
init : function(ed, url) {
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js2 b/library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js2
new file mode 100644
index 000000000..bfb4bd9c7
--- /dev/null
+++ b/library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js2
@@ -0,0 +1,216 @@
+/**
+ * editor_plugin_src.js
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+/* Macgirvin Aug-2010 changed from punbb to dfrn dialect */
+
+(function() {
+ tinymce.create('tinymce.plugins.BBCodePlugin', {
+ init : function(ed, url) {
+ var t = this, dialect = ed.getParam('bbcode_dialect', 'dfrn').toLowerCase();
+
+ ed.onBeforeSetContent.add(function(ed, o) {
+ o.content = t['_' + dialect + '_bbcode2html'](o.content);
+ });
+
+ ed.onPostProcess.add(function(ed, o) {
+ if (o.set)
+ o.content = t['_' + dialect + '_bbcode2html'](o.content);
+
+ if (o.get)
+ o.content = t['_' + dialect + '_html2bbcode'](o.content);
+ });
+ },
+
+ getInfo : function() {
+ return {
+ longname : 'BBCode Plugin',
+ author : 'Moxiecode Systems AB',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode',
+ version : tinymce.majorVersion + "." + tinymce.minorVersion
+ };
+ },
+
+ // Private methods
+
+ // HTML -> BBCode in DFRN dialect
+ _dfrn_html2bbcode : function(s) {
+ s = tinymce.trim(s);
+
+ function rep(re, str) {
+ s = s.replace(re,str);
+ };
+
+
+ /* oembed */
+ function _h2b_cb(match) {
+ var f, g, tof = [], tor = [];
+ var find_spanc = /<span [^>]*class *= *[\"'](?:[^\"']* )*oembed(?: [^\"']*)*[\"'][^>]*>(.*?(?:<span[^>]*>(.*?)<\/span *>)*.*?)<\/span *>/ig;
+ while (f = find_spanc.exec(match)) {
+ var find_a = /<a([^>]* rel=[\"']oembed[\"'][^>]*)>.*?<\/a *>/ig;
+ if (g = find_a.exec(f[1])) {
+ var find_href = /href=[\"']([^\"']*)[\"']/ig;
+ var m2 = find_href.exec(g[1]);
+ if (m2[1]) {
+ tof.push(f[0]);
+ tor.push("[EMBED]" + m2[1] + "[/EMBED]");
+ }
+ }
+ }
+ for (var i = 0; i < tof.length; i++) match = match.replace(tof[i], tor[i]);
+
+ return match;
+ }
+ if (s.indexOf('class="oembed')>=0){
+ //alert("request oembed html2bbcode");
+ s = _h2b_cb(s);
+ }
+
+ // example: <strong> to [b]
+
+ rep(/#\^<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"#^[url=$1]$2[/url]");
+ rep(/(^|[^#\^])<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"$1#^[url=$2]$3[/url]");
+ rep(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]");
+ rep(/<span style=\"color:(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]");
+ rep(/<font>(.*?)<\/font>/gi,"$1");
+ rep(/<img.*?width=\"(.*?)\".*?height=\"(.*?)\".*?src=\"(.*?)\".*?\/>/gi,"[img=$1x$2]$3[/img]");
+ rep(/<img.*?height=\"(.*?)\".*?width=\"(.*?)\".*?src=\"(.*?)\".*?\/>/gi,"[img=$2x$1]$3[/img]");
+ rep(/<img.*?src=\"(.*?)\".*?height=\"(.*?)\".*?width=\"(.*?)\".*?\/>/gi,"[img=$3x$2]$1[/img]");
+ rep(/<img.*?src=\"(.*?)\".*?width=\"(.*?)\".*?height=\"(.*?)\".*?\/>/gi,"[img=$2x$3]$1[/img]");
+ rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");
+
+ rep(/<ul class=\"listbullet\" style=\"list-style-type\: circle\;\">(.*?)<\/ul>/gi,"[list]$1[/list]");
+ rep(/<ul class=\"listnone\" style=\"list-style-type\: none\;\">(.*?)<\/ul>/gi,"[list=]$1[/list]");
+ rep(/<ul class=\"listdecimal\" style=\"list-style-type\: decimal\;\">(.*?)<\/ul>/gi,"[list=1]$1[/list]");
+ rep(/<ul class=\"listlowerroman\" style=\"list-style-type\: lower-roman\;\">(.*?)<\/ul>/gi,"[list=i]$1[/list]");
+ rep(/<ul class=\"listupperroman\" style=\"list-style-type\: upper-roman\;\">(.*?)<\/ul>/gi,"[list=I]$1[/list]");
+ rep(/<ul class=\"listloweralpha\" style=\"list-style-type\: lower-alpha\;\">(.*?)<\/ul>/gi,"[list=a]$1[/list]");
+ rep(/<ul class=\"listupperalpha\" style=\"list-style-type\: upper-alpha\;\">(.*?)<\/ul>/gi,"[list=A]$1[/list]");
+ rep(/<li>(.*?)<\/li>/gi,'[li]$1[/li]');
+
+ rep(/<code>(.*?)<\/code>/gi,"[code]$1[/code]");
+ rep(/<\/(strong|b)>/gi,"[/b]");
+ rep(/<(strong|b)>/gi,"[b]");
+ rep(/<\/(em|i)>/gi,"[/i]");
+ rep(/<(em|i)>/gi,"[i]");
+ rep(/<\/u>/gi,"[/u]");
+ rep(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]");
+ rep(/<u>/gi,"[u]");
+ rep(/<blockquote[^>]*>/gi,"[quote]");
+ rep(/<\/blockquote>/gi,"[/quote]");
+ rep(/<hr \/>/gi,"[hr]");
+ rep(/<br (.*?)\/>/gi,"\n");
+ rep(/<br\/>/gi,"\n");
+ rep(/<br>/gi,"\n");
+ rep(/<p>/gi,"");
+ rep(/<\/p>/gi,"\n");
+ rep(/&nbsp;/gi," ");
+ rep(/&quot;/gi,"\"");
+ rep(/&lt;/gi,"<");
+ rep(/&gt;/gi,">");
+ rep(/&amp;/gi,"&");
+
+ return s;
+ },
+
+ // BBCode -> HTML from DFRN dialect
+ _dfrn_bbcode2html : function(s) {
+ s = tinymce.trim(s);
+
+
+ function rep(re, str) {
+
+
+ //modify code to keep stuff intact within [code][/code] blocks
+ //Waitman Gobble NO WARRANTY
+
+
+ var o = new Array();
+ var x = s.split("[code]");
+ var i = 0;
+
+ var si = "";
+ si = x.shift();
+ si = si.replace(re,str);
+ o.push(si);
+
+ for (i = 0; i < x.length; i++) {
+ var no = new Array();
+ var j = x.shift();
+ var g = j.split("[/code]");
+ no.push(g.shift());
+ si = g.shift();
+ si = si.replace(re,str);
+ no.push(si);
+ o.push(no.join("[/code]"));
+ }
+
+ s = o.join("[code]");
+
+ };
+
+
+
+
+
+ // example: [b] to <strong>
+ rep(/\n/gi,"<br />");
+ rep(/\[b\]/gi,"<strong>");
+ rep(/\[\/b\]/gi,"</strong>");
+ rep(/\[i\]/gi,"<em>");
+ rep(/\[\/i\]/gi,"</em>");
+ rep(/\[u\]/gi,"<u>");
+ rep(/\[\/u\]/gi,"</u>");
+ rep(/\[hr\]/gi,"<hr />");
+ rep(/[#\^]\[url=([^\]]+)\](.*?)\[\/url\]/gi,"#^<a href=\"$1\">$2</a>");
+ rep(/[#\^]\[url\](.*?)\[\/url\]/gi,"#^<a href=\"$1\">$1</a>");
+ rep(/(^|[^#\^])\[url=([^\]]+)\](.*?)\[\/url\]/gi,"$1#^<a href=\"$2\">$3</a>");
+ rep(/(^|[^#\^])\[url\](.*?)\[\/url\]/gi,"$1#^<a href=\"$2\">$2</a>");
+ rep(/\[img=(.*?)x(.*?)\](.*?)\[\/img\]/gi,"<img width=\"$1\" height=\"$2\" src=\"$3\" />");
+ rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");
+
+ rep(/\[list\](.*?)\[\/list\]/gi, '<ul class="listbullet" style="list-style-type: circle;">$1</ul>');
+ rep(/\[list=\](.*?)\[\/list\]/gi, '<ul class="listnone" style="list-style-type: none;">$1</ul>');
+ rep(/\[list=1\](.*?)\[\/list\]/gi, '<ul class="listdecimal" style="list-style-type: decimal;">$1</ul>');
+ rep(/\[list=i\](.*?)\[\/list\]/gi,'<ul class="listlowerroman" style="list-style-type: lower-roman;">$1</ul>');
+ rep(/\[list=I\](.*?)\[\/list\]/gi, '<ul class="listupperroman" style="list-style-type: upper-roman;">$1</ul>');
+ rep(/\[list=a\](.*?)\[\/list\]/gi, '<ul class="listloweralpha" style="list-style-type: lower-alpha;">$1</ul>');
+ rep(/\[list=A\](.*?)\[\/list\]/gi, '<ul class="listupperalpha" style="list-style-type: upper-alpha;">$1</ul>');
+ rep(/\[li\](.*?)\[\/li\]/gi, '<li>$1</li>');
+ rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<span style=\"color: $1;\">$2</span>");
+ rep(/\[size=(.*?)\](.*?)\[\/size\]/gi,"<span style=\"font-size: $1;\">$2</span>");
+ rep(/\[code\](.*?)\[\/code\]/gi,"<code>$1</code>");
+ rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<blockquote>$1</blockquote>");
+
+ /* oembed */
+ function _b2h_cb(match, url) {
+ url = bin2hex(url);
+ function s_b2h(data) {
+ match = data;
+ }
+ $.ajax({
+ url: 'oembed/b2h?url=' + url,
+ async: false,
+ success: s_b2h,
+ dataType: 'html'
+ });
+ return match;
+ }
+ s = s.replace(/\[embed\](.*?)\[\/embed\]/gi, _b2h_cb);
+
+ /* /oembed */
+
+ return s;
+ }
+ });
+
+ // Register plugin
+ tinymce.PluginManager.add('bbcode', tinymce.plugins.BBCodePlugin);
+})();
diff --git a/mod/achievements.php b/mod/achievements.php
new file mode 100644
index 000000000..1910def73
--- /dev/null
+++ b/mod/achievements.php
@@ -0,0 +1,84 @@
+<?php
+
+function achievements_content(&$a) {
+
+ if(argc() > 1)
+ $which = argv(1);
+ else {
+ notice( t('Requested profile is not available.') . EOL );
+ return;
+}
+
+ $profile = 0;
+ $profile = argv(1);
+ profile_load($a,$which,$profile);
+
+ $r = q("select channel_id from channel where channel_address = '%s'",
+ dbesc($which)
+ );
+ if($r) {
+ $owner = intval($r[0]['channel_id']);
+ }
+
+ $observer = $a->get_observer();
+ $ob_hash = (($observer) ? $observer['xchan_hash'] : '');
+ $perms = get_all_perms($owner,$ob_hash);
+ if(! $perms['view_profile']) {
+ notice( t('Permission denied.') . EOL);
+ return;
+ }
+
+// By default, all badges are false
+ $contactbadge = false;
+ $profilebadge = false;
+ $keywordsbadge = false;
+
+// Check number of contacts. Award a badge if over 10
+// We'll figure these out on each page load instead of
+// writing them to the DB because that will mean one needs
+// to retain their achievements - eg, you can't add
+// a bunch of channels just to get your badge, and then
+// delete them all again. If these become popular or
+// used in profiles or something, we may need to reconsider
+// and add a table for this - because this won't scale.
+
+ $r = q("select * from abook where abook_channel = %d",
+ intval($owner)
+ );
+
+ if (count($r))
+ $contacts = count($r);
+ // We're checking for 11 to adjust for the abook record for self
+ if ($contacts >= 11)
+ $contactbadge = true;
+
+// Check if an about field in the profile has been created.
+
+ $r = q("select * from profile where uid = %d and about <> ''",
+ intval($owner)
+ );
+
+ if ($r)
+ $profilebadge = 1;
+
+// Check if keywords have been set
+
+ $r = q("select * from profile where uid = %d and keywords <> ''",
+ intval($owner)
+ );
+
+ if($r)
+ $keywordsbadge = 1;
+
+// FIXME - stick ths in a template, and make it look pretty.
+ $o .= "Template not implemented";
+ $o .= "If this is one, you get the profile badge" . $profilebadge . "<br>";
+ $o .= "If this is one, you get the contact badge" . $contactbadge . "<br>";
+ $o .= "If this is one you get the keywords badge" . $keywordsbadge . "<br>";
+ $o .= "I haven't done the top level posts badge yet" . $toplevelpostsbadge . "<br>";
+ $o .= "I haven't done the number of channels badge yet" . $channelsbadge;
+
+
+return $o;
+
+}
diff --git a/mod/acl.php b/mod/acl.php
index bd19c4bb7..ed9e935e9 100644
--- a/mod/acl.php
+++ b/mod/acl.php
@@ -39,7 +39,7 @@ function acl_init(&$a){
// count groups and contacts
if ($type=='' || $type=='g'){
- $r = q("SELECT COUNT(`id`) AS g FROM `group` WHERE `deleted` = 0 AND `uid` = %d $sql_extra",
+ $r = q("SELECT COUNT(`id`) AS g FROM `groups` WHERE `deleted` = 0 AND `uid` = %d $sql_extra",
intval(local_user())
);
$group_count = (int)$r[0]['g'];
@@ -49,9 +49,10 @@ function acl_init(&$a){
if ($type=='' || $type=='c'){
$r = q("SELECT COUNT(abook_id) AS c FROM abook left join xchan on abook_xchan = xchan_hash
- WHERE abook_channel = %d AND not ( abook_flags & %d ) $sql_extra2" ,
+ WHERE abook_channel = %d AND not ( abook_flags & %d ) and not (xchan_flags & %d ) $sql_extra2" ,
intval(local_user()),
- intval(ABOOK_FLAG_SELF|ABOOK_FLAG_BLOCKED|ABOOK_FLAG_PENDING|ABOOK_FLAG_ARCHIVED)
+ intval(ABOOK_FLAG_BLOCKED|ABOOK_FLAG_PENDING|ABOOK_FLAG_ARCHIVED),
+ intval(XCHAN_FLAGS_DELETED)
);
$contact_count = (int)$r[0]['c'];
}
@@ -64,9 +65,11 @@ function acl_init(&$a){
$r = q("SELECT count(xchan_hash) as c
FROM abook left join xchan on abook_xchan = xchan_hash
WHERE abook_channel = %d and ( (abook_their_perms = null) or (abook_their_perms & %d ))
+ and not ( xchan_flags & %d )
$sql_extra2 ",
intval(local_user()),
- intval(PERMS_W_MAIL)
+ intval(PERMS_W_MAIL),
+ intval(XCHAN_FLAGS_DELETED)
);
if($r)
@@ -78,8 +81,9 @@ function acl_init(&$a){
// autocomplete for Contacts
$r = q("SELECT COUNT(abook_id) AS c FROM abook left join xchan on abook_xchan = xchan_hash
- WHERE abook_channel = %d $sql_extra2" ,
- intval(local_user())
+ WHERE abook_channel = %d and not ( xchan_flags & %d ) $sql_extra2" ,
+ intval(local_user()),
+ intval(XCHAN_FLAGS_DELETED)
);
$contact_count = (int)$r[0]['c'];
@@ -94,14 +98,14 @@ function acl_init(&$a){
if ($type=='' || $type=='g'){
- $r = q("SELECT `group`.`id`, `group`.`hash`, `group`.`name`,
+ $r = q("SELECT `groups`.`id`, `groups`.`hash`, `groups`.`name`,
GROUP_CONCAT(DISTINCT `group_member`.`xchan` SEPARATOR ',') as uids
- FROM `group`,`group_member`
- WHERE `group`.`deleted` = 0 AND `group`.`uid` = %d
- AND `group_member`.`gid`=`group`.`id`
+ FROM `groups`,`group_member`
+ WHERE `groups`.`deleted` = 0 AND `groups`.`uid` = %d
+ AND `group_member`.`gid`=`groups`.`id`
$sql_extra
- GROUP BY `group`.`id`
- ORDER BY `group`.`name`
+ GROUP BY `groups`.`id`
+ ORDER BY `groups`.`name`
LIMIT %d,%d",
intval(local_user()),
intval($start),
@@ -121,32 +125,39 @@ function acl_init(&$a){
);
}
}
-
+
if ($type=='' || $type=='c') {
- $r = q("SELECT abook_id as id, xchan_hash as hash, xchan_name as name, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, abook_their_perms
+ $r = q("SELECT abook_id as id, xchan_hash as hash, xchan_name as name, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, abook_their_perms, abook_flags
FROM abook left join xchan on abook_xchan = xchan_hash
- WHERE abook_channel = %d AND not ( abook_flags & %d ) $sql_extra2 order by xchan_name asc" ,
+ WHERE abook_channel = %d AND not ( abook_flags & %d ) and not (xchan_flags & %d ) $sql_extra2 order by xchan_name asc" ,
intval(local_user()),
- intval(ABOOK_FLAG_SELF|ABOOK_FLAG_BLOCKED|ABOOK_FLAG_PENDING|ABOOK_FLAG_ARCHIVED)
+ intval(ABOOK_FLAG_BLOCKED|ABOOK_FLAG_PENDING|ABOOK_FLAG_ARCHIVED),
+ intval(XCHAN_FLAGS_DELETED)
);
+
}
elseif($type == 'm') {
$r = q("SELECT xchan_hash as id, xchan_name as name, xchan_addr as nick, xchan_photo_s as micro, xchan_url as url
FROM abook left join xchan on abook_xchan = xchan_hash
WHERE abook_channel = %d and ( (abook_their_perms = null) or (abook_their_perms & %d ))
+ and not (xchan_flags & %d)
$sql_extra3
ORDER BY `xchan_name` ASC ",
intval(local_user()),
- intval(PERMS_W_MAIL)
+ intval(PERMS_W_MAIL),
+ intval(XCHAN_FLAGS_DELETED)
);
}
elseif($type == 'a') {
$r = q("SELECT abook_id as id, xchan_name as name, xchan_hash as hash, xchan_addr as nick, xchan_photo_s as micro, xchan_network as network, xchan_url as url, xchan_addr as attag , abook_their_perms FROM abook left join xchan on abook_xchan = xchan_hash
WHERE abook_channel = %d
+ and not (xchan_flags & %d)
$sql_extra3
ORDER BY xchan_name ASC ",
- intval(local_user())
+ intval(local_user()),
+ intval(XCHAN_FLAGS_DELETED)
+
);
}
elseif($type == 'x') {
@@ -203,7 +214,7 @@ function acl_init(&$a){
"xid" => $g['hash'],
"link" => $g['nick'],
"nick" => substr($g['nick'],0,strpos($g['nick'],'@')),
- "network" => '',
+ "self" => (($g['abook_flags'] & ABOOK_FLAG_SELF) ? 'abook-self' : ''),
"taggable" => (($g['abook_their_perms'] & PERMS_W_TAGWALL) ? 'taggable' : '')
);
}
diff --git a/mod/admin.php b/mod/admin.php
index 9a6aea35a..c4a284941 100644
--- a/mod/admin.php
+++ b/mod/admin.php
@@ -9,7 +9,7 @@
* @param App $a
*/
function admin_post(&$a){
-
+ logger('admin_post', LOGGER_DEBUG);
if(!is_site_admin()) {
return;
@@ -74,6 +74,7 @@ function admin_post(&$a){
*/
function admin_content(&$a) {
+ logger('admin_content', LOGGER_DEBUG);
if(!is_site_admin()) {
return login(false);
}
@@ -215,13 +216,14 @@ function admin_page_site_post(&$a){
check_form_security_token_redirectOnErr('/admin/site', 'admin_site');
$sitename = ((x($_POST,'sitename')) ? notags(trim($_POST['sitename'])) : '');
- $banner = ((x($_POST,'banner')) ? trim($_POST['banner']) : false);
+ $banner = ((x($_POST,'banner')) ? trim($_POST['banner']) : false);
+ $admininfo = ((x($_POST,'admininfo')) ? trim($_POST['admininfo']) : false);
$language = ((x($_POST,'language')) ? notags(trim($_POST['language'])) : '');
$theme = ((x($_POST,'theme')) ? notags(trim($_POST['theme'])) : '');
- $theme_mobile = ((x($_POST,'theme_mobile')) ? notags(trim($_POST['theme_mobile'])) : '');
- $theme_accessibility = ((x($_POST,'theme_accessibility')) ? notags(trim($_POST['theme_accessibility'])) : '');
- $site_channel = ((x($_POST,'site_channel')) ? notags(trim($_POST['site_channel'])) : '');
- $maximagesize = ((x($_POST,'maximagesize')) ? intval(trim($_POST['maximagesize'])) : 0);
+ $theme_mobile = ((x($_POST,'theme_mobile')) ? notags(trim($_POST['theme_mobile'])) : '');
+ $theme_accessibility = ((x($_POST,'theme_accessibility')) ? notags(trim($_POST['theme_accessibility'])) : '');
+ $site_channel = ((x($_POST,'site_channel')) ? notags(trim($_POST['site_channel'])) : '');
+ $maximagesize = ((x($_POST,'maximagesize')) ? intval(trim($_POST['maximagesize'])) : 0);
$register_policy = ((x($_POST,'register_policy')) ? intval(trim($_POST['register_policy'])) : 0);
@@ -301,6 +303,12 @@ function admin_page_site_post(&$a){
set_config('system','banner', $banner);
}
+ if ($admininfo==''){
+ del_config('system','admininfo');
+ }
+ else {
+ set_config('system','admininfo', $admininfo);
+ }
set_config('system','language', $language);
set_config('system','theme', $theme);
if ( $theme_mobile === '---' ) {
@@ -393,6 +401,9 @@ function admin_page_site(&$a) {
$banner = 'red';
$banner = htmlspecialchars($banner);
+ /* Admin Info */
+ $admininfo = get_config('system','admininfo');
+
/* Register policy */
$register_choices = Array(
REGISTER_CLOSED => t("Closed"),
@@ -425,8 +436,9 @@ function admin_page_site(&$a) {
'$baseurl' => $a->get_baseurl(true),
// name, label, value, help string, extra data...
- '$sitename' => array('sitename', t("Site name"), htmlentities(get_config('system','sitename'), ENT_QUOTES), ""),
+ '$sitename' => array('sitename', t("Site name"), htmlspecialchars(get_config('system','sitename'), ENT_QUOTES, 'UTF-8'),''),
'$banner' => array('banner', t("Banner/Logo"), $banner, ""),
+ '$admininfo' => array('admininfo', t("Administrator Information"), $admininfo, t("Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here")),
'$language' => array('language', t("System language"), get_config('system','language'), "", $lang_choices),
'$theme' => array('theme', t("System theme"), get_config('system','theme'), t("Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"), $theme_choices),
'$theme_mobile' => array('theme_mobile', t("Mobile system theme"), get_config('system','mobile_theme'), t("Theme for mobile devices"), $theme_choices_mobile),
@@ -436,7 +448,7 @@ function admin_page_site(&$a) {
'$maximagesize' => array('maximagesize', t("Maximum image size"), get_config('system','maximagesize'), t("Maximum size in bytes of uploaded images. Default is 0, which means no limits.")),
'$register_policy' => array('register_policy', t("Register policy"), get_config('system','register_policy'), "", $register_choices),
'$access_policy' => array('access_policy', t("Access policy"), get_config('system','access_policy'), "", $access_choices),
- '$register_text' => array('register_text', t("Register text"), htmlentities(get_config('system','register_text'), ENT_QUOTES, 'UTF-8'), t("Will be displayed prominently on the registration page.")),
+ '$register_text' => array('register_text', t("Register text"), htmlspecialchars(get_config('system','register_text'), ENT_QUOTES, 'UTF-8'), t("Will be displayed prominently on the registration page.")),
'$abandon_days' => array('abandon_days', t('Accounts abandoned after x days'), get_config('system','account_abandon_days'), t('Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit.')),
'$allowed_sites' => array('allowed_sites', t("Allowed friend domains"), get_config('system','allowed_sites'), t("Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains")),
'$allowed_email' => array('allowed_email', t("Allowed email domains"), get_config('system','allowed_email'), t("Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains")),
@@ -456,7 +468,46 @@ function admin_page_site(&$a) {
}
function admin_page_hubloc_post(&$a){
- check_form_security_token_redirectOnErr('/admin/hubloc', 'hubloc');
+ check_form_security_token_redirectOnErr('/admin/hubloc', 'admin_hubloc');
+ require_once('include/zot.php');
+
+ //prepare for ping
+
+ if ( $_POST['hublocid']) {
+ $hublocid = $_POST['hublocid'];
+ $arrhublocurl = q("SELECT hubloc_url FROM hubloc WHERE hubloc_id = %d ",
+ intval($hublocid)
+ );
+ $hublocurl = $arrhublocurl[0]['hubloc_url'] . '/post';
+
+ //perform ping
+ $m = zot_build_packet($a->get_channel(),'ping');
+ $r = zot_zot($hublocurl,$m);
+ //handle results and set the hubloc flags in db to make results visible
+ $r2 = $r['body'];
+ $r3 = $r2['success'];
+ if ( $r3['success'] == True ){
+ //set HUBLOC_OFFLINE to 0
+ logger(' success = true ',LOGGER_DEBUG);
+ } else {
+ //set HUBLOC_OFFLINE to 1
+ logger(' success = false ', LOGGER_DEBUG);
+
+ }
+
+ //unfotunatly zping wont work, I guess return format is not correct
+ //require_once('mod/zping.php');
+ //$r = zping_content($hublocurl);
+ //logger('zping answer: ' . $r, LOGGER_DEBUG);
+
+
+ //in case of repair store new pub key for tested hubloc (all channel with this hubloc) in db
+ //after repair set hubloc flags to 0
+
+ }
+
+
+ goaway($a->get_baseurl(true) . '/admin/hubloc' );
return;
}
@@ -479,7 +530,8 @@ function admin_page_hubloc(&$a) {
'$queues' => $queues,
//'$accounts' => $accounts, /*$accounts is empty here*/
'$pending' => Array( t('Pending registrations'), $pending),
- '$plugins' => Array( t('Active plugins'), $a->plugins )
+ '$plugins' => Array( t('Active plugins'), $a->plugins ),
+ '$form_security_token' => get_form_security_token("admin_hubloc")
));
return $o;
}
@@ -654,9 +706,10 @@ function admin_page_users(&$a){
$users =q("SELECT `account_id` , `account_email`, `account_lastlog`, `account_created`, `account_expires`, " . "`account_service_class`, ( account_flags & %d ) > 0 as `blocked`, " .
"(SELECT GROUP_CONCAT( ch.channel_address SEPARATOR ' ') FROM channel as ch " .
- "WHERE ch.channel_account_id = ac.account_id) as `channels` " .
+ "WHERE ch.channel_account_id = ac.account_id and not (ch.channel_pageflags & %d )) as `channels` " .
"FROM account as ac where true $serviceclass $order limit %d , %d ",
- intval(ACCOUNT_BLOCKED),
+ intval(ACCOUNT_BLOCKED),
+ intval(PAGE_REMOVED),
intval($a->pager['start']),
intval($a->pager['itemspage'])
);
@@ -686,7 +739,7 @@ function admin_page_users(&$a){
'$submit' => t('Submit'),
'$select_all' => t('select all'),
'$h_pending' => t('User registrations waiting for confirm'),
- '$th_pending' => array( t('Request date'), t('Name'), t('Email') ),
+ '$th_pending' => array( t('Request date'), t('Email') ),
'$no_pending' => t('No registrations.'),
'$approve' => t('Approve'),
'$deny' => t('Deny'),
diff --git a/mod/allfriends.php b/mod/allfriends.php
deleted file mode 100644
index bb4df30be..000000000
--- a/mod/allfriends.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-require_once('include/socgraph.php');
-
-function allfriends_content(&$a) {
-
- $o = '';
-
- if(! local_user()) {
- notice( t('Permission denied.') . EOL);
- return;
- }
-
- if(argc() > 1)
- $cid = intval(argv(1));
- if(! $cid)
- return;
-
- $c = q("select name, url, photo from contact where id = %d and uid = %d limit 1",
- intval($cid),
- intval(local_user())
- );
-
- $a->page['aside'] .= '<div class="vcard">'
- . '<div class="fn label">' . $c[0]['name'] . '</div>'
- . '<div id="profile-photo-wrapper">'
- . '<a href="/contacts/' . $cid . '"><img class="photo" width="175" height="175"
- src="' . $c[0]['photo'] . '" alt="' . $c[0]['name'] . '" /></div>'
- . '</div>';
-
-
- if(! count($c))
- return;
-
- $o .= '<h2>' . sprintf( t('Friends of %s'), $c[0]['name']) . '</h2>';
-
-
- $r = all_friends(local_user(),$cid);
-
- if(! count($r)) {
- $o .= t('No friends to display.');
- return $o;
- }
-
- $tpl = get_markup_template('common_friends.tpl');
-
- foreach($r as $rr) {
-
- $o .= replace_macros($tpl,array(
- '$url' => $rr['url'],
- '$name' => $rr['name'],
- '$photo' => $rr['photo'],
- '$tags' => ''
- ));
- }
-
- $o .= cleardiv();
-// $o .= paginate($a);
- return $o;
-}
diff --git a/mod/attach.php b/mod/attach.php
index a5f9d1a6b..cf72d09c6 100644
--- a/mod/attach.php
+++ b/mod/attach.php
@@ -17,12 +17,35 @@ function attach_init(&$a) {
return;
}
- header('Content-type: ' . $r['data']['filetype']);
- header('Content-disposition: attachment; filename=' . $r['data']['filename']);
- if($r['data']['flags'] & ATTACH_FLAG_OS )
- echo @file_get_contents($r['data']['data']);
+ $c = q("select channel_address from channel where channel_id = %d limit 1",
+ intval($r['data']['uid'])
+ );
+
+ if(! $c)
+ return;
+
+
+ $unsafe_types = array('text/html','text/css','application/javascript');
+
+ if(in_array($r['data']['filetype'],$unsafe_types)) {
+ header('Content-type: text/plain');
+ }
+ else {
+ header('Content-type: ' . $r['data']['filetype']);
+ }
+
+ header('Content-disposition: attachment; filename="' . $r['data']['filename'] . '"');
+ if($r['data']['flags'] & ATTACH_FLAG_OS ) {
+ $istream = fopen('store/' . $c[0]['channel_address'] . '/' . $r['data']['data'],'rb');
+ $ostream = fopen('php://output','wb');
+ if($istream && $ostream) {
+ pipe_streams($istream,$ostream);
+ fclose($istream);
+ fclose($ostream);
+ }
+ }
else
echo $r['data']['data'];
killme();
-} \ No newline at end of file
+}
diff --git a/mod/authtest.php b/mod/authtest.php
index 2c8d7b4b4..3044a880b 100644
--- a/mod/authtest.php
+++ b/mod/authtest.php
@@ -6,7 +6,7 @@ require_once('mod/magic.php');
function authtest_content(&$a) {
-
+ $auth_success = false;
$o .= '<h3>Magic-Auth Diagnostic</h3>';
if(! local_user()) {
@@ -34,11 +34,16 @@ function authtest_content(&$a) {
if(! $j)
$o .= 'json_decode failure from remote site. ' . print_r($z['body'],true);
$o .= 'Remote site responded: ' . print_r($j,true);
+ if($j['success'] && strpos($j['message'],'Authentication Success'))
+ $auth_success = true;
}
else {
$o .= 'fetch url failure.' . print_r($z,true);
}
}
+
+ if(! $auth_success)
+ $o .= 'Authentication Failed!' . EOL;
}
return str_replace("\n",'<br />',$o);
diff --git a/mod/blocks.php b/mod/blocks.php
index 4604790c3..9a4e0b1ca 100644
--- a/mod/blocks.php
+++ b/mod/blocks.php
@@ -45,9 +45,9 @@ function blocks_content(&$a) {
return;
}
- if(local_user() && local_user() == $owner) {
- $a->set_widget('design',design_tools());
- }
+// if(local_user() && local_user() == $owner) {
+ // $a->set_widget('design',design_tools());
+ // }
diff --git a/mod/bookmarks.php b/mod/bookmarks.php
new file mode 100644
index 000000000..c5be68b8e
--- /dev/null
+++ b/mod/bookmarks.php
@@ -0,0 +1,81 @@
+<?php
+
+function bookmarks_init(&$a) {
+ if(! local_user())
+ return;
+ $item_id = intval($_REQUEST['item']);
+ if(! $item_id)
+ return;
+
+ $u = $a->get_channel();
+
+ $i = q("select * from item where id = %d and uid = %d limit 1",
+ intval($item_id),
+ intval(local_user())
+ );
+
+ if(! $i)
+ return;
+
+ $i = fetch_post_tags($i);
+
+ $item = $i[0];
+
+ $terms = get_terms_oftype($item['term'],TERM_BOOKMARK);
+
+ if($terms && (! $item['item_restrict'])) {
+ require_once('include/bookmarks.php');
+
+ $s = q("select * from xchan where xchan_hash = '%s' limit 1",
+ dbesc($item['author_xchan'])
+ );
+ if(! $s) {
+ logger('mod_bookmarks: author lookup failed.');
+ killme();
+ }
+ foreach($terms as $t) {
+ bookmark_add($u,$s[0],$t,$item['item_private']);
+ info( t('Bookmark added') . EOL);
+ }
+ }
+ killme();
+}
+
+function bookmarks_content(&$a) {
+ if(! local_user()) {
+ notice( t('Permission denied.') . EOL);
+ return;
+ }
+
+
+ require_once('include/menu.php');
+
+ $o = '<h3>' . t('My Bookmarks') . '</h3>';
+
+ $x = menu_list(local_user(),'',MENU_BOOKMARK);
+
+ if($x) {
+ foreach($x as $xx) {
+ $y = menu_fetch($xx['menu_name'],local_user(),get_observer_hash());
+ $o .= menu_render($y,true);
+ }
+ }
+
+ $o .= '<h3>' . t('My Connections Bookmarks') . '</h3>';
+
+
+ $x = menu_list(local_user(),'',MENU_SYSTEM|MENU_BOOKMARK);
+
+ if($x) {
+ foreach($x as $xx) {
+ $y = menu_fetch($xx['menu_name'],local_user(),get_observer_hash());
+ $o .= menu_render($y,true);
+ }
+ }
+
+
+
+ return $o;
+
+}
+
diff --git a/mod/channel.php b/mod/channel.php
index 149936dd7..34a1e2dda 100644
--- a/mod/channel.php
+++ b/mod/channel.php
@@ -47,6 +47,8 @@ function channel_content(&$a, $update = 0, $load = false) {
$category = $datequery = $datequery2 = '';
+ $mid = $_GET['mid'];
+
$datequery = ((x($_GET,'dend') && is_a_date_arg($_GET['dend'])) ? notags($_GET['dend']) : '');
$datequery2 = ((x($_GET,'dbegin') && is_a_date_arg($_GET['dbegin'])) ? notags($_GET['dbegin']) : '');
@@ -132,19 +134,28 @@ function channel_content(&$a, $update = 0, $load = false) {
if(($update) && (! $load)) {
-
- $r = q("SELECT distinct parent AS `item_id` from item
- left join abook on item.author_xchan = abook.abook_xchan
- WHERE uid = %d AND item_restrict = 0
- AND (item_flags & %d) AND ( item_flags & %d )
- AND ((abook.abook_flags & %d) = 0 or abook.abook_flags is null)
- $sql_extra
- ORDER BY created DESC",
- intval($a->profile['profile_uid']),
- intval(ITEM_WALL),
- intval(ITEM_UNSEEN),
- intval(ABOOK_FLAG_BLOCKED)
- );
+ if ($mid) {
+ $r = q("SELECT parent AS item_id from item where mid = '%s' and uid = %d AND item_restrict = 0
+ AND (item_flags & %d) AND (item_flags & %d) $sql_extra limit 1",
+ dbesc($mid),
+ intval($a->profile['profile_uid']),
+ intval(ITEM_WALL),
+ intval(ITEM_UNSEEN)
+ );
+ } else {
+ $r = q("SELECT distinct parent AS `item_id` from item
+ left join abook on item.author_xchan = abook.abook_xchan
+ WHERE uid = %d AND item_restrict = 0
+ AND (item_flags & %d) AND ( item_flags & %d )
+ AND ((abook.abook_flags & %d) = 0 or abook.abook_flags is null)
+ $sql_extra
+ ORDER BY created DESC",
+ intval($a->profile['profile_uid']),
+ intval(ITEM_WALL),
+ intval(ITEM_UNSEEN),
+ intval(ABOOK_FLAG_BLOCKED)
+ );
+ }
}
else {
@@ -166,19 +177,31 @@ function channel_content(&$a, $update = 0, $load = false) {
$pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
if($load || ($_COOKIE['jsAvailable'] != 1)) {
- $r = q("SELECT distinct id AS item_id FROM item
- left join abook on item.author_xchan = abook.abook_xchan
- WHERE uid = %d AND item_restrict = 0
- AND (item_flags & %d) and (item_flags & %d)
- AND ((abook.abook_flags & %d) = 0 or abook.abook_flags is null)
- $sql_extra $sql_extra2
- ORDER BY created DESC $pager_sql ",
- intval($a->profile['profile_uid']),
- intval(ITEM_WALL),
- intval(ITEM_THREAD_TOP),
- intval(ABOOK_FLAG_BLOCKED)
-
- );
+ if ($mid) {
+ $r = q("SELECT parent AS item_id from item where mid = '%s' and uid = %d AND item_restrict = 0
+ AND (item_flags & %d) $sql_extra limit 1",
+ dbesc($mid),
+ intval($a->profile['profile_uid']),
+ intval(ITEM_WALL)
+ );
+ if (! $r) {
+ notice( t('Permission denied.') . EOL);
+ }
+
+ } else {
+ $r = q("SELECT distinct id AS item_id FROM item
+ left join abook on item.author_xchan = abook.abook_xchan
+ WHERE uid = %d AND item_restrict = 0
+ AND (item_flags & %d) and (item_flags & %d)
+ AND ((abook.abook_flags & %d) = 0 or abook.abook_flags is null)
+ $sql_extra $sql_extra2
+ ORDER BY created DESC $pager_sql ",
+ intval($a->profile['profile_uid']),
+ intval(ITEM_WALL),
+ intval(ITEM_THREAD_TOP),
+ intval(ABOOK_FLAG_BLOCKED)
+ );
+ }
}
else {
$r = array();
@@ -202,6 +225,12 @@ function channel_content(&$a, $update = 0, $load = false) {
$items = fetch_post_tags($items, true);
$items = conv_sort($items,'created');
+ if ($load && $mid && (! count($items))) {
+ // This will happen if we don't have sufficient permissions
+ // to view the parent item (or the item itself if it is toplevel)
+ notice( t('Permission denied.') . EOL);
+ }
+
} else {
$items = array();
}
@@ -233,9 +262,10 @@ function channel_content(&$a, $update = 0, $load = false) {
'$page' => (($a->pager['page'] != 1) ? $a->pager['page'] : 1),
'$search' => '',
'$order' => '',
+ '$list' => ((x($_REQUEST,'list')) ? intval($_REQUEST['list']) : 0),
'$file' => '',
'$cats' => (($category) ? $category : ''),
- '$mid' => '',
+ '$mid' => $mid,
'$dend' => $datequery,
'$dbegin' => $datequery2
));
@@ -266,5 +296,8 @@ function channel_content(&$a, $update = 0, $load = false) {
if((! $update) || ($_COOKIE['jsAvailable'] != 1))
$o .= alt_pager($a,count($items));
+ if($mid)
+ $o .= '<div id="content-complete"></div>';
+
return $o;
}
diff --git a/mod/chanview.php b/mod/chanview.php
index f183fbdf1..ca3410c8f 100644
--- a/mod/chanview.php
+++ b/mod/chanview.php
@@ -38,17 +38,16 @@ function chanview_content(&$a) {
);
}
if($r) {
- $xchan = $r[0];
+ $a->poi = $r[0];
}
-
// Here, let's see if we have an xchan. If we don't, how we proceed is determined by what
// info we do have. If it's a URL, we can offer to visit it directly. If it's a webbie or
// address, we can and should try to import it. If it's just a hash, we can't continue, but we
// probably wouldn't have a hash if we don't already have an xchan for this channel.
- if(! $xchan) {
+ if(! $a->poi) {
logger('mod_chanview: fallback');
// This is hackish - construct a zot address from the url
if($_REQUEST['url']) {
@@ -68,31 +67,27 @@ function chanview_content(&$a) {
dbesc($_REQUEST['address'])
);
if($r)
- $xchan = $r[0];
+ $a->poi = $r[0];
}
}
}
- if(! $xchan) {
+ if(! $a->poi) {
notice( t('Channel not found.') . EOL);
return;
}
- $url = (($observer)
- ? z_root() . '/magic?f=&dest=' . $xchan['xchan_url'] . '&addr=' . $xchan['xchan_addr']
- : $xchan['xchan_url']
- );
+
+ $url = $a->poi['xchan_url'];
+ if($observer)
+ $url = zid($url);
// let somebody over-ride the iframed viewport presentation
- if(local_user() && get_pconfig(local_user(),'system','chanview_full'))
+ if((! local_user()) || (get_pconfig(local_user(),'system','chanview_full')))
goaway($url);
-
- if($xchan['xchan_hash'])
- $a->set_widget('vcard',vcard_from_xchan($xchan,$observer,'chanview'));
-
$o = replace_macros(get_markup_template('chanview.tpl'),array(
'$url' => $url,
'$full' => t('toggle full screen mode')
diff --git a/mod/chat.php b/mod/chat.php
new file mode 100644
index 000000000..0f2b94b9d
--- /dev/null
+++ b/mod/chat.php
@@ -0,0 +1,229 @@
+<?php /** @file */
+
+require_once('include/chat.php');
+require_once('include/bookmarks.php');
+
+function chat_init(&$a) {
+
+ $which = null;
+ if(argc() > 1)
+ $which = argv(1);
+ if(! $which) {
+ if(local_user()) {
+ $channel = $a->get_channel();
+ if($channel && $channel['channel_address'])
+ $which = $channel['channel_address'];
+ }
+ }
+ if(! $which) {
+ notice( t('You must be logged in to see this page.') . EOL );
+ return;
+ }
+
+ $profile = 0;
+ $channel = $a->get_channel();
+
+ if((local_user()) && (argc() > 2) && (argv(2) === 'view')) {
+ $which = $channel['channel_address'];
+ $profile = argv(1);
+ }
+
+ $a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . $a->get_baseurl() . '/feed/' . $which .'" />' . "\r\n" ;
+
+ // Run profile_load() here to make sure the theme is set before
+ // we start loading content
+
+ profile_load($a,$which,$profile);
+
+}
+
+function chat_post(&$a) {
+
+ if($_POST['room_name'])
+ $room = strip_tags(trim($_POST['room_name']));
+
+ if((! $room) || (! local_user()))
+ return;
+
+ $channel = $a->get_channel();
+
+
+ if($_POST['action'] === 'drop') {
+ chatroom_destroy($channel,array('cr_name' => $room));
+ goaway(z_root() . '/chat/' . $channel['channel_address']);
+ }
+
+
+ $arr = array('name' => $room);
+ $arr['allow_gid'] = perms2str($_REQUEST['group_allow']);
+ $arr['allow_cid'] = perms2str($_REQUEST['contact_allow']);
+ $arr['deny_gid'] = perms2str($_REQUEST['group_deny']);
+ $arr['deny_cid'] = perms2str($_REQUEST['contact_deny']);
+
+ chatroom_create($channel,$arr);
+
+ $x = q("select cr_id from chatroom where cr_name = '%s' and cr_uid = %d limit 1",
+ dbesc($room),
+ intval(local_user())
+ );
+
+ if($x)
+ goaway(z_root() . '/chat/' . $channel['channel_address'] . '/' . $x[0]['cr_id']);
+
+ // that failed. Try again perhaps?
+
+ goaway(z_root() . '/chat/' . $channel['channel_address'] . '/new');
+
+
+}
+
+
+function chat_content(&$a) {
+
+ if(local_user())
+ $channel = $a->get_channel();
+
+ $ob = $a->get_observer();
+ $observer = get_observer_hash();
+ if(! $observer) {
+ notice( t('Permission denied.') . EOL);
+ return;
+ }
+
+ if(! perm_is_allowed($a->profile['profile_uid'],$observer,'chat')) {
+ notice( t('Permission denied.') . EOL);
+ return;
+ }
+
+ if((argc() > 3) && intval(argv(2)) && (argv(3) === 'leave')) {
+ chatroom_leave($observer,argv(2),$_SERVER['REMOTE_ADDR']);
+ goaway(z_root() . '/channel/' . argv(1));
+ }
+
+
+ if((argc() > 3) && intval(argv(2)) && (argv(3) === 'status')) {
+ $ret = array('success' => false);
+ $room_id = intval(argv(2));
+ if(! $room_id || ! $observer)
+ return;
+
+ $r = q("select * from chatroom where cr_id = %d limit 1",
+ intval($room_id)
+ );
+ if(! $r) {
+ json_return_and_die($ret);
+ }
+ require_once('include/security.php');
+ $sql_extra = permissions_sql($r[0]['cr_uid']);
+
+ $x = q("select * from chatroom where cr_id = %d and cr_uid = %d $sql_extra limit 1",
+ intval($room_id),
+ intval($r[0]['cr_uid'])
+ );
+ if(! $x) {
+ json_return_and_die($ret);
+ }
+ $y = q("select count(*) as total from chatpresence where cp_room = %d",
+ intval($room_id)
+ );
+ if($y) {
+ $ret['success'] = true;
+ $ret['chatroom'] = $r[0]['cr_name'];
+ $ret['inroom'] = $y[0]['total'];
+ }
+
+ // figure out how to present a timestamp of the last activity, since we don't know the observer's timezone.
+
+ $z = q("select created from chat where chat_room = %d order by created desc limit 1",
+ intval($room_id)
+ );
+ if($z) {
+ $ret['last'] = $z[0]['created'];
+ }
+ json_return_and_die($ret);
+ }
+
+
+ if(argc() > 2 && intval(argv(2))) {
+ $room_id = intval(argv(2));
+ $bookmark_link = get_bookmark_link($ob);
+
+ $x = chatroom_enter($observer,$room_id,'online',$_SERVER['REMOTE_ADDR']);
+ if(! $x)
+ return;
+ $x = q("select * from chatroom where cr_id = %d and cr_uid = %d $sql_extra limit 1",
+ intval($room_id),
+ intval($a->profile['profile_uid'])
+ );
+ if($x) {
+ $private = ((($x[0]['allow_cid']) || ($x[0]['allow_gid']) || ($x[0]['deny_cid']) || ($x[0]['deny_gid'])) ? true : false);
+ $room_name = $x[0]['cr_name'];
+ if($bookmark_link)
+ $bookmark_link .= '&url=' . z_root() . '/chat/' . argv(1) . '/' . argv(2) . '&title=' . urlencode($x[0]['cr_name']) . (($private) ? '&private=1' : '') . '&ischat=1';
+ }
+ else {
+ notice( t('Room not found') . EOL);
+ return;
+ }
+
+ $o = replace_macros(get_markup_template('chat.tpl'),array(
+ '$room_name' => $room_name,
+ '$room_id' => $room_id,
+ '$baseurl' => z_root(),
+ '$nickname' => argv(1),
+ '$submit' => t('Submit'),
+ '$leave' => t('Leave Room'),
+ '$away' => t('I am away right now'),
+ '$online' => t('I am online'),
+ '$bookmark_link' => $bookmark_link,
+ '$bookmark' => t('Bookmark this room')
+
+ ));
+ return $o;
+ }
+
+
+
+
+
+ if(local_user() && argc() > 2 && argv(2) === 'new') {
+
+
+
+ $channel_acl = array(
+ 'allow_cid' => $channel['channel_allow_cid'],
+ 'allow_gid' => $channel['channel_allow_gid'],
+ 'deny_cid' => $channel['channel_deny_cid'],
+ 'deny_gid' => $channel['channel_deny_gid']
+ );
+
+ require_once('include/acl_selectors.php');
+
+ $o = replace_macros(get_markup_template('chatroom_new.tpl'),array(
+ '$header' => t('New Chatroom'),
+ '$name' => array('room_name',t('Chatroom Name'),'', ''),
+ '$acl' => populate_acl($channel_acl),
+ '$submit' => t('Submit')
+ ));
+ return $o;
+ }
+
+
+
+
+
+
+ require_once('include/widgets.php');
+
+ $o = replace_macros(get_markup_template('chatrooms.tpl'), array(
+ '$header' => sprintf( t('%1$s\'s Chatrooms'), $a->profile['name']),
+ '$baseurl' => z_root(),
+ '$nickname' => $channel['channel_address'],
+ '$rooms' => widget_chatroom_list(array()),
+ '$newroom' => t('New Chatroom'),
+ '$is_owner' => ((local_user() && local_user() == $a->profile['profile_uid']) ? 1 : 0)
+ ));
+
+ return $o;
+
+} \ No newline at end of file
diff --git a/mod/chatsvc.php b/mod/chatsvc.php
new file mode 100644
index 000000000..e6590f57a
--- /dev/null
+++ b/mod/chatsvc.php
@@ -0,0 +1,150 @@
+<?php /** @file */
+
+require_once('include/security.php');
+
+function chatsvc_init(&$a) {
+
+//logger('chatsvc');
+
+ $ret = array('success' => false);
+
+ $a->data['chat']['room_id'] = intval($_REQUEST['room_id']);
+ $x = q("select cr_uid from chatroom where cr_id = %d and cr_id != 0 limit 1",
+ intval($a->data['chat']['room_id'])
+ );
+ if(! $x)
+ json_return_and_die($ret);
+
+ $a->data['chat']['uid'] = $x[0]['cr_uid'];
+
+ if(! perm_is_allowed($a->data['chat']['uid'],get_observer_hash(),'chat')) {
+ json_return_and_die($ret);
+ }
+
+}
+
+function chatsvc_post(&$a) {
+
+ $ret = array('success' => false);
+
+ $room_id = $a->data['chat']['room_id'];
+ $text = escape_tags($_REQUEST['chat_text']);
+ if(! $text)
+ return;
+
+ $sql_extra = permissions_sql($a->data['chat']['uid']);
+
+ $r = q("select * from chatroom where cr_uid = %d and cr_id = %d $sql_extra",
+ intval($a->data['chat']['uid']),
+ intval($a->data['chat']['room_id'])
+ );
+ if(! $r)
+ json_return_and_die($ret);
+
+ $x = q("insert into chat ( chat_room, chat_xchan, created, chat_text )
+ values( %d, '%s', '%s', '%s' )",
+ intval($a->data['chat']['room_id']),
+ dbesc(get_observer_hash()),
+ dbesc(datetime_convert()),
+ dbesc($text)
+ );
+ $ret['success'] = true;
+ json_return_and_die($ret);
+}
+
+function chatsvc_content(&$a) {
+
+ $status = strip_tags($_REQUEST['status']);
+ $room_id = intval($a->data['chat']['room_id']);
+ $stopped = ((x($_REQUEST,'stopped') && intval($_REQUEST['stopped'])) ? true : false);
+
+ if($status && $room_id) {
+
+ $x = q("select channel_address from channel where channel_id = %d limit 1",
+ intval($a->data['chat']['uid'])
+ );
+
+ $r = q("update chatpresence set cp_status = '%s', cp_last = '%s' where cp_room = %d and cp_xchan = '%s' and cp_client = '%s' limit 1",
+ dbesc($status),
+ dbesc(datetime_convert()),
+ intval($room_id),
+ dbesc(get_observer_hash()),
+ dbesc($_SERVER['REMOTE_ADDR'])
+ );
+
+ goaway(z_root() . '/chat/' . $x[0]['channel_address'] . '/' . $room_id);
+ }
+
+ if(! $stopped) {
+
+ $lastseen = intval($_REQUEST['last']);
+
+ $ret = array('success' => false);
+
+ $sql_extra = permissions_sql($a->data['chat']['uid']);
+
+ $r = q("select * from chatroom where cr_uid = %d and cr_id = %d $sql_extra",
+ intval($a->data['chat']['uid']),
+ intval($a->data['chat']['room_id'])
+ );
+ if(! $r)
+ json_return_and_die($ret);
+
+ $inroom = array();
+
+ $r = q("select * from chatpresence left join xchan on xchan_hash = cp_xchan where cp_room = %d order by xchan_name",
+ intval($a->data['chat']['room_id'])
+ );
+ if($r) {
+ foreach($r as $rr) {
+ switch($rr['cp_status']) {
+ case 'away':
+ $status = t('Away');
+ break;
+ case 'online':
+ default:
+ $status = t('Online');
+ break;
+ }
+
+ $inroom[] = array('img' => zid($rr['xchan_photo_m']), 'img_type' => $rr['xchan_photo_mimetype'],'name' => $rr['xchan_name'], status => $status);
+ }
+ }
+
+ $chats = array();
+
+ $r = q("select * from chat left join xchan on chat_xchan = xchan_hash where chat_room = %d and chat_id > %d",
+ intval($a->data['chat']['room_id']),
+ intval($lastseen)
+ );
+ if($r) {
+ foreach($r as $rr) {
+ $chats[] = array(
+ 'id' => $rr['chat_id'],
+ 'img' => zid($rr['xchan_photo_m']),
+ 'img_type' => $rr['xchan_photo_mimetype'],
+ 'name' => $rr['xchan_name'],
+ 'isotime' => datetime_convert('UTC', date_default_timezone_get(), $rr['created'], 'c'),
+ 'localtime' => datetime_convert('UTC', date_default_timezone_get(), $rr['created'], 'r'),
+ 'text' => smilies(bbcode($rr['chat_text']))
+ );
+ }
+ }
+ }
+
+ $r = q("update chatpresence set cp_last = '%s' where cp_room = %d and cp_xchan = '%s' and cp_client = '%s' limit 1",
+ dbesc(datetime_convert()),
+ intval($a->data['chat']['room_id']),
+ dbesc(get_observer_hash()),
+ dbesc($_SERVER['REMOTE_ADDR'])
+ );
+
+ $ret['success'] = true;
+ if(! $stopped) {
+ $ret['inroom'] = $inroom;
+ $ret['chats'] = $chats;
+ }
+ json_return_and_die($ret);
+
+}
+ \ No newline at end of file
diff --git a/mod/cloud.php b/mod/cloud.php
index cdd926444..3606325bd 100644
--- a/mod/cloud.php
+++ b/mod/cloud.php
@@ -1,23 +1,5 @@
<?php
- // This module is currently !!!HIGHLY EXPERIMENTAL!!!
- // You should think twice before running this on a production server
- // as security mechanisms are not yet implemented and those that
- // are implemented probably don't work.
-
- // DAV mounts will probably fail if you don't use SSL, because some platforms refuse to send
- // basic auth over non-encrypted connections.
- // One could use digest auth - but then one has to calculate the A1 digest and store it for
- // all acounts. We aren't doing that. We have a stored password already. We don't need another
- // one. The login unfortunately is the channel nickname (webbie) as we have no way of passing
- // the destination channel to DAV. You should be able to login with your account credentials
- // and be directed to your default channel.
-
- // This interface does not yet support Red stored files. Consider any content in your "store"
- // directory to be throw-away until advised otherwise.
-
-
-
use Sabre\DAV;
require_once('vendor/autoload.php');
@@ -44,64 +26,109 @@
-class RedBasicAuth extends Sabre\DAV\Auth\Backend\AbstractBasic {
- protected function validateUserPass($username, $password) {
- require_once('include/auth.php');
- $record = account_verify_password($email,$pass);
- if($record && $record['account_default_channel']) {
- $r = q("select * from channel where channel_account_id = %d and channel_id = %d limit 1",
- intval($record['account_id']),
- intval($record['account_default_channel'])
- );
- if($r) {
- $this->currentUser = $r[0]['channel_address'];
- return true;
- }
- }
- $r = q("select channel_account_id from channel where channel_address = '%s' limit 1",
- dbesc($username)
- );
- if($r) {
- $x = q("select * from account where account_id = %d limit 1",
- intval($r[0]['channel_account_id'])
- );
- if($x) {
- foreach($x as $record) {
- if(($record['account_flags'] == ACCOUNT_OK) || ($record['account_flags'] == ACCOUNT_UNVERIFIED)
- && (hash('whirlpool',$record['account_salt'] . $password) === $record['account_password'])) {
- logger('(DAV) RedBasicAuth: password verified for ' . $username);
- return true;
- }
- }
- }
- }
- logger('(DAV) RedBasicAuth: password failed for ' . $username);
- return false;
- }
-}
+function cloud_init(&$a) {
+
+ require_once('include/reddav.php');
+
+ if(! is_dir('store'))
+ mkdir('store',STORAGE_DEFAULT_PERMISSIONS,false);
+
+ $which = null;
+ if(argc() > 1)
+ $which = argv(1);
+
+ $profile = 0;
+ $channel = $a->get_channel();
+
+ $a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . $a->get_baseurl() . '/feed/' . $which .'" />' . "\r\n" ;
+
+ if($which)
+ profile_load($a,$which,$profile);
+
+
+
+
+ $auth = new RedBasicAuth();
+
+ $ob_hash = get_observer_hash();
-function cloud_init() {
+ if($ob_hash) {
+ if(local_user()) {
+ $channel = $a->get_channel();
+ $auth->setCurrentUser($channel['channel_address']);
+ $auth->channel_name = $channel['channel_address'];
+ $auth->channel_id = $channel['channel_id'];
+ $auth->channel_hash = $channel['channel_hash'];
+ if($channel['channel_timezone'])
+ $auth->timezone = $channel['channel_timezone'];
+ }
+ $auth->observer = $ob_hash;
+ }
- if(! get_config('system','enable_cloud'))
- killme();
+ if($_GET['davguest'])
+ $_SESSION['davguest'] = true;
- $rootDirectory = new DAV\FS\Directory('store');
+
+
+ $_SERVER['QUERY_STRING'] = str_replace(array('?f=','&f='),array('',''),$_SERVER['QUERY_STRING']);
+ $_SERVER['QUERY_STRING'] = strip_zids($_SERVER['QUERY_STRING']);
+ $_SERVER['QUERY_STRING'] = preg_replace('/[\?&]davguest=(.*?)([\?&]|$)/ism','',$_SERVER['QUERY_STRING']);
+
+ $_SERVER['REQUEST_URI'] = str_replace(array('?f=','&f='),array('',''),$_SERVER['REQUEST_URI']);
+ $_SERVER['REQUEST_URI'] = strip_zids($_SERVER['REQUEST_URI']);
+ $_SERVER['REQUEST_URI'] = preg_replace('/[\?&]davguest=(.*?)([\?&]|$)/ism','',$_SERVER['REQUEST_URI']);
+
+ $rootDirectory = new RedDirectory('/',$auth);
$server = new DAV\Server($rootDirectory);
- $lockBackend = new DAV\Locks\Backend\File('store/data/locks');
+ $lockBackend = new DAV\Locks\Backend\File('store/[data]/locks');
$lockPlugin = new DAV\Locks\Plugin($lockBackend);
$server->addPlugin($lockPlugin);
- $auth = new RedBasicAuth();
+ // The next section of code allows us to bypass prompting for http-auth if a FILE is being accessed anonymously and permissions
+ // allow this. This way one can create hotlinks to public media files in their cloud and anonymous viewers won't get asked to login.
+ // If a DIRECTORY is accessed or there are permission issues accessing the file and we aren't previously authenticated via zot,
+ // prompt for HTTP-auth. This will be the default case for mounting a DAV directory.
+ // In order to avoid prompting for passwords for viewing a DIRECTORY, add the URL query parameter 'davguest=1'
- $auth->Authenticate($server,'Red Matrix');
+ $isapublic_file = false;
+ $davguest = ((x($_SESSION,'davguest')) ? true : false);
+
+ if((! $auth->observer) && ($_SERVER['REQUEST_METHOD'] === 'GET')) {
+ try {
+ $x = RedFileData('/' . $a->cmd,$auth);
+ if($x instanceof RedFile)
+ $isapublic_file = true;
+ }
+ catch ( Exception $e ) {
+ $isapublic_file = false;
+ }
+ }
+
+ if((! $auth->observer) && (! $isapublic_file) && (! $davguest)) {
+ try {
+ $auth->Authenticate($server, t('Red Matrix - Guests: Username: {your email address}, Password: +++'));
+ }
+ catch ( Exception $e) {
+ logger('mod_cloud: auth exception' . $e->getMessage());
+ http_status_exit($e->getHTTPCode(),$e->getMessage());
+ }
+ }
+
+// $browser = new DAV\Browser\Plugin();
+
+ $browser = new RedBrowser($auth);
+
+ $auth->setBrowserPlugin($browser);
+
+
+ $server->addPlugin($browser);
// All we need to do now, is to fire up the server
$server->exec();
- exit;
-
+ killme();
} \ No newline at end of file
diff --git a/mod/common.php b/mod/common.php
index 4afaf37eb..e19a9d3a9 100644
--- a/mod/common.php
+++ b/mod/common.php
@@ -21,14 +21,6 @@ function common_init(&$a) {
}
-function common_aside(&$a) {
- if(! $a->profile['profile_uid'])
- return;
-
- profile_create_sidebar($a);
-}
-
-
function common_content(&$a) {
$o = '';
diff --git a/mod/connect.php b/mod/connect.php
index 93f994af5..f7748bcaf 100644
--- a/mod/connect.php
+++ b/mod/connect.php
@@ -23,10 +23,6 @@ function connect_init(&$a) {
$a->data['channel'] = $r[0];
profile_load($a,$which,'');
-
- profile_create_sidebar($a,false);
-
-
}
function connect_post(&$a) {
diff --git a/mod/connections.php b/mod/connections.php
index d1bb33748..e36cb5fc7 100644
--- a/mod/connections.php
+++ b/mod/connections.php
@@ -13,46 +13,12 @@ function connections_init(&$a) {
if(! local_user())
return;
- if((argc() == 2) && intval(argv(1))) {
- $r = q("SELECT abook.*, xchan.*
- FROM abook left join xchan on abook_xchan = xchan_hash
- WHERE abook_channel = %d and abook_id = %d LIMIT 1",
- intval(local_user()),
- intval(argv(1))
- );
- if($r) {
- $a->data['abook'] = $r[0];
- }
- }
-
$channel = $a->get_channel();
if($channel)
head_set_icon($channel['xchan_photo_s']);
}
-function connections_aside(&$a) {
-
-
- if (! local_user())
- return;
-
- if(x($a->data,'abook')) {
- $a->set_widget('vcard',vcard_from_xchan($a->data['abook'],$a->get_observer()));
- }
- else {
- $a->set_widget('follow', widget_follow(array()));
- $a->set_widget('collections', group_side('connections','group',false,0,((array_key_exists('abook',$a->data)) ? $a->data['abook']['abook_xchan'] : '')));
- }
-
-
- $a->set_widget('suggest',widget_suggestions(array()));
- $a->set_widget('findpeople',findpeople_widget());
-
-}
-
-
-
function connections_post(&$a) {
if(! local_user())
@@ -75,7 +41,7 @@ function connections_post(&$a) {
call_hooks('contact_edit_post', $_POST);
- $profile_id = $_POST['profile-assign'];
+ $profile_id = $_POST['profile_assign'];
if($profile_id) {
$r = q("SELECT profile_guid FROM profile WHERE profile_guid = '%s' AND `uid` = %d LIMIT 1",
dbesc($profile_id),
@@ -108,6 +74,7 @@ function connections_post(&$a) {
$abook_flags = $orig_record[0]['abook_flags'];
$new_friend = false;
+
if(($_REQUEST['pending']) && ($abook_flags & ABOOK_FLAG_PENDING)) {
$abook_flags = ( $abook_flags ^ ABOOK_FLAG_PENDING );
$new_friend = true;
@@ -122,6 +89,7 @@ function connections_post(&$a) {
intval($contact_id),
intval(local_user())
);
+
if($r)
info( t('Connection updated.') . EOL);
else
@@ -202,319 +170,6 @@ function connections_content(&$a) {
return login();
}
- if(argc() == 3) {
-
- $contact_id = intval(argv(1));
- if(! $contact_id)
- return;
-
- $cmd = argv(2);
-
- $orig_record = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook_xchan = xchan_hash
- WHERE abook_id = %d AND abook_channel = %d AND NOT ( abook_flags & %d ) and not ( abook_flags & %d ) LIMIT 1",
- intval($contact_id),
- intval(local_user()),
- intval(ABOOK_FLAG_SELF),
- // allow drop even if pending, just duplicate the self query
- intval(($cmd === 'drop') ? ABOOK_FLAG_SELF : ABOOK_FLAG_PENDING)
- );
-
- if(! count($orig_record)) {
- notice( t('Could not access address book record.') . EOL);
- goaway($a->get_baseurl(true) . '/connections');
- }
-
- if($cmd === 'update') {
-
- // pull feed and consume it, which should subscribe to the hub.
- proc_run('php',"include/poller.php","$contact_id");
- goaway($a->get_baseurl(true) . '/connections/' . $contact_id);
-
- }
-
- if($cmd === 'refresh') {
- if(! zot_refresh($orig_record[0],get_app()->get_channel()))
- notice( t('Refresh failed - channel is currently unavailable.') );
- goaway($a->get_baseurl(true) . '/connections/' . $contact_id);
- }
-
- if($cmd === 'block') {
- if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_BLOCKED)) {
- info((($orig_record[0]['abook_flags'] & ABOOK_FLAG_BLOCKED)
- ? t('Channel has been unblocked')
- : t('Channel has been blocked')) . EOL );
- connections_clone($a);
- }
- else
- notice(t('Unable to set address book parameters.') . EOL);
- goaway($a->get_baseurl(true) . '/connections/' . $contact_id);
- }
-
- if($cmd === 'ignore') {
- if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_IGNORED)) {
- info((($orig_record[0]['abook_flags'] & ABOOK_FLAG_IGNORED)
- ? t('Channel has been unignored')
- : t('Channel has been ignored')) . EOL );
- connections_clone($a);
- }
- else
- notice(t('Unable to set address book parameters.') . EOL);
- goaway($a->get_baseurl(true) . '/connections/' . $contact_id);
- }
-
- if($cmd === 'archive') {
- if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_ARCHIVED)) {
- info((($orig_record[0]['abook_flags'] & ABOOK_FLAG_ARCHIVED)
- ? t('Channel has been unarchived')
- : t('Channel has been archived')) . EOL );
- connections_clone($a);
- }
- else
- notice(t('Unable to set address book parameters.') . EOL);
- goaway($a->get_baseurl(true) . '/connections/' . $contact_id);
- }
-
- if($cmd === 'hide') {
- if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_HIDDEN)) {
- info((($orig_record[0]['abook_flags'] & ABOOK_FLAG_HIDDEN)
- ? t('Channel has been unhidden')
- : t('Channel has been hidden')) . EOL );
- connections_clone($a);
- }
- else
- notice(t('Unable to set address book parameters.') . EOL);
- goaway($a->get_baseurl(true) . '/connections/' . $contact_id);
- }
-
- // We'll prevent somebody from unapproving a contact.
-
- if($cmd === 'approve') {
- if($orig_record[0]['abook_flags'] & ABOOK_FLAG_PENDING) {
- if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_PENDING)) {
- info((($orig_record[0]['abook_flags'] & ABOOK_FLAG_PENDING)
- ? t('Channel has been approved')
- : t('Channel has been unapproved')) . EOL );
- connections_clone($a);
- }
- else
- notice(t('Unable to set address book parameters.') . EOL);
- }
- goaway($a->get_baseurl(true) . '/connections/' . $contact_id);
- }
-
-
- if($cmd === 'drop') {
-
- require_once('include/Contact.php');
-// FIXME
-// terminate_friendship($a->get_channel(),$orig_record[0]);
-
- contact_remove(local_user(), $orig_record[0]['abook_id']);
-// FIXME - send to clones
- info( t('Contact has been removed.') . EOL );
- if(x($_SESSION,'return_url'))
- goaway($a->get_baseurl(true) . '/' . $_SESSION['return_url']);
- goaway($a->get_baseurl(true) . '/contacts');
-
- }
- }
-
- if((x($a->data,'abook')) && (is_array($a->data['abook']))) {
-
- $contact_id = $a->data['abook']['abook_id'];
- $contact = $a->data['abook'];
-
-
- $tabs = array(
-
- array(
- 'label' => t('View Profile'),
- 'url' => $a->get_baseurl(true) . '/chanview/?f=&cid=' . $contact['abook_id'],
- 'sel' => '',
- 'title' => sprintf( t('View %s\'s profile'), $contact['xchan_name']),
- ),
-
- array(
- 'label' => t('Refresh Permissions'),
- 'url' => $a->get_baseurl(true) . '/connections/' . $contact['abook_id'] . '/refresh',
- 'sel' => '',
- 'title' => t('Fetch updated permissions'),
- ),
-
- array(
- 'label' => t('Recent Activity'),
- 'url' => $a->get_baseurl(true) . '/network/?f=&cid=' . $contact['abook_id'],
- 'sel' => '',
- 'title' => t('View recent posts and comments'),
- ),
-
- array(
- 'label' => (($contact['abook_flags'] & ABOOK_FLAG_BLOCKED) ? t('Unblock') : t('Block')),
- 'url' => $a->get_baseurl(true) . '/connections/' . $contact['abook_id'] . '/block',
- 'sel' => (($contact['abook_flags'] & ABOOK_FLAG_BLOCKED) ? 'active' : ''),
- 'title' => t('Block or Unblock this connection'),
- ),
-
- array(
- 'label' => (($contact['abook_flags'] & ABOOK_FLAG_IGNORED) ? t('Unignore') : t('Ignore')),
- 'url' => $a->get_baseurl(true) . '/connections/' . $contact['abook_id'] . '/ignore',
- 'sel' => (($contact['abook_flags'] & ABOOK_FLAG_IGNORED) ? 'active' : ''),
- 'title' => t('Ignore or Unignore this connection'),
- ),
- array(
- 'label' => (($contact['abook_flags'] & ABOOK_FLAG_ARCHIVED) ? t('Unarchive') : t('Archive')),
- 'url' => $a->get_baseurl(true) . '/connections/' . $contact['abook_id'] . '/archive',
- 'sel' => (($contact['abook_flags'] & ABOOK_FLAG_ARCHIVED) ? 'active' : ''),
- 'title' => t('Archive or Unarchive this connection'),
- ),
- array(
- 'label' => (($contact['abook_flags'] & ABOOK_FLAG_HIDDEN) ? t('Unhide') : t('Hide')),
- 'url' => $a->get_baseurl(true) . '/connections/' . $contact['abook_id'] . '/hide',
- 'sel' => (($contact['abook_flags'] & ABOOK_FLAG_HIDDEN) ? 'active' : ''),
- 'title' => t('Hide or Unhide this connection'),
- ),
-
- array(
- 'label' => t('Delete'),
- 'url' => $a->get_baseurl(true) . '/connections/' . $contact['abook_id'] . '/drop',
- 'sel' => '',
- 'title' => t('Delete this connection'),
- ),
-
- );
-
- $self = false;
-
- if(! ($contact['abook_flags'] & ABOOK_FLAG_SELF)) {
- $tab_tpl = get_markup_template('common_tabs.tpl');
- $t = replace_macros($tab_tpl, array('$tabs'=>$tabs));
- }
- else
- $self = true;
-
- $a->page['htmlhead'] .= replace_macros(get_markup_template('contact_head.tpl'), array(
- '$baseurl' => $a->get_baseurl(true),
- '$editselect' => $editselect
- ));
-
- require_once('include/contact_selectors.php');
-
- $tpl = get_markup_template("abook_edit.tpl");
-
- if(feature_enabled(local_user(),'affinity')) {
-
- $slider_tpl = get_markup_template('contact_slider.tpl');
- $slide = replace_macros($slider_tpl,array(
- '$me' => t('Me'),
- '$val' => (($contact['abook_closeness']) ? $contact['abook_closeness'] : 99),
- '$intimate' => t('Best Friends'),
- '$friends' => t('Friends'),
- '$oldfriends' => t('Former Friends'),
- '$acquaintances' => t('Acquaintances'),
- '$world' => t('Unknown')
- ));
- }
-
- $perms = array();
- $channel = $a->get_channel();
-
- $global_perms = get_perms();
- $existing = get_all_perms(local_user(),$contact['abook_xchan']);
-
- $unapproved = array('pending', t('Approve this connection'), '', t('Accept connection to allow communication'));
-
- foreach($global_perms as $k => $v) {
- $thisperm = (($contact['abook_my_perms'] & $v[1]) ? "1" : '');
-
- // For auto permissions (when $self is true) we don't want to look at existing
- // permissions because they are enabled for the channel owner
-
- if((! $self) && ($existing[$k]))
- $thisperm = "1";
-
- $perms[] = array('perms_' . $k, $v[3], (($contact['abook_their_perms'] & $v[1]) ? "1" : ""),$thisperm, $v[1], (($channel[$v[0]] == PERMS_SPECIFIC) ? '' : '1'), $v[4]);
- }
-
- $o .= replace_macros($tpl,array(
-
- '$header' => (($self) ? t('Automatic Permissions Settings') : sprintf( t('Connections: settings for %s'),$contact['xchan_name'])),
- '$addr' => $contact['xchan_addr'],
- '$notself' => (($self) ? '' : '1'),
- '$self' => (($self) ? '1' : ''),
- '$autolbl' => t('When receiving a channel introduction, any permissions provided here will be applied to the new connection automatically and the introduction approved. Leave this page if you do not wish to use this feature.'),
- '$viewprof' => t('View Profile'),
- '$lbl_slider' => t('Slide to adjust your degree of friendship'),
- '$slide' => $slide,
- '$tabs' => $t,
- '$tab_str' => $tab_str,
- '$is_pending' => (($contact['abook_flags'] & ABOOK_FLAG_PENDING) ? 1 : ''),
- '$unapproved' => $unapproved,
- '$inherited' => t('inherited'),
- '$approve' => t('Approve this connection'),
- '$noperms' => (((! $self) && (! $contact['abook_my_perms'])) ? t('Connection has no individual permissions!') : ''),
- '$noperm_desc' => (((! $self) && (! $contact['abook_my_perms'])) ? t('This may be appropriate based on your <a href="settings">privacy settings</a>, though you may wish to review the "Advanced Permissions".') : ''),
- '$submit' => t('Submit'),
- '$lbl_vis1' => t('Profile Visibility'),
- '$lbl_vis2' => sprintf( t('Please choose the profile you would like to display to %s when viewing your profile securely.'), $contact['xchan_name']),
- '$lbl_info1' => t('Contact Information / Notes'),
- '$infedit' => t('Edit contact notes'),
- '$close' => $contact['abook_closeness'],
- '$them' => t('Their Settings'),
- '$me' => t('My Settings'),
- '$perms' => $perms,
- '$forum' => t('Forum Members'),
- '$soapbox' => t('Soapbox'),
- '$full' => t('Full Sharing'),
- '$cautious' => t('Cautious Sharing'),
- '$follow' => t('Follow Only'),
- '$permlbl' => t('Individual Permissions'),
- '$permnote' => t('Some permissions may be inherited from your channel <a href="settings">privacy settings</a>, which have higher priority. Changing those inherited settings on this page will have no effect.'),
- '$advanced' => t('Advanced Permissions'),
- '$quick' => t('Quick Links'),
- '$common_link' => $a->get_baseurl(true) . '/common/loc/' . local_user() . '/' . $contact['id'],
- '$all_friends' => $all_friends,
- '$relation_text' => $relation_text,
- '$visit' => sprintf( t('Visit %s\'s profile - %s'),$contact['xchan_name'],$contact['xchan_url']),
- '$blockunblock' => t('Block/Unblock contact'),
- '$ignorecont' => t('Ignore contact'),
- '$lblcrepair' => t("Repair URL settings"),
- '$lblrecent' => t('View conversations'),
- '$lblsuggest' => $lblsuggest,
- '$delete' => t('Delete contact'),
- '$poll_interval' => contact_poll_interval($contact['priority'],(! $poll_enabled)),
- '$poll_enabled' => $poll_enabled,
- '$lastupdtext' => t('Last update:'),
- '$lost_contact' => $lost_contact,
- '$updpub' => t('Update public posts'),
- '$last_update' => $last_update,
- '$udnow' => t('Update now'),
- '$profile_select' => contact_profile_assign($contact['abook_profile']),
- '$multiprofs' => feature_enabled(local_user(),'multi_profiles'),
- '$contact_id' => $contact['abook_id'],
- '$block_text' => (($contact['blocked']) ? t('Unblock') : t('Block') ),
- '$ignore_text' => (($contact['readonly']) ? t('Unignore') : t('Ignore') ),
- '$blocked' => (($contact['blocked']) ? t('Currently blocked') : ''),
- '$ignored' => (($contact['readonly']) ? t('Currently ignored') : ''),
- '$archived' => (($contact['archive']) ? t('Currently archived') : ''),
- '$pending' => (($contact['archive']) ? t('Currently pending') : ''),
- '$hidden' => array('hidden', t('Hide this contact from others'), ($contact['hidden'] == 1), t('Replies/likes to your public posts <strong>may</strong> still be visible')),
- '$photo' => $contact['photo'],
- '$name' => $contact['name'],
- '$dir_icon' => $dir_icon,
- '$alt_text' => $alt_text,
- '$sparkle' => $sparkle,
- '$url' => $url
-
- ));
-
- $arr = array('contact' => $contact,'output' => $o);
-
- call_hooks('contact_edit', $arr);
-
- return $arr['output'];
-
- }
-
$blocked = false;
$hidden = false;
$ignored = false;
@@ -647,9 +302,10 @@ function connections_content(&$a) {
$r = q("SELECT COUNT(abook.abook_id) AS total FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash
- where abook_channel = %d and not (abook_flags & %d) $sql_extra $sql_extra2 ",
+ where abook_channel = %d and not (abook_flags & %d) and not (xchan_flags & %d ) $sql_extra $sql_extra2 ",
intval(local_user()),
- intval(ABOOK_FLAG_SELF)
+ intval(ABOOK_FLAG_SELF),
+ intval(XCHAN_FLAGS_DELETED)
);
if(count($r)) {
$a->set_pager_total($r[0]['total']);
@@ -657,9 +313,10 @@ function connections_content(&$a) {
}
$r = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash
- WHERE abook_channel = %d and not (abook_flags & %d) $sql_extra $sql_extra2 ORDER BY xchan_name LIMIT %d , %d ",
+ WHERE abook_channel = %d and not (abook_flags & %d) and not ( xchan_flags & %d) $sql_extra $sql_extra2 ORDER BY xchan_name LIMIT %d , %d ",
intval(local_user()),
intval(ABOOK_FLAG_SELF),
+ intval(XCHAN_FLAGS_DELETED),
intval($a->pager['start']),
intval($a->pager['itemspage'])
);
@@ -680,7 +337,7 @@ function connections_content(&$a) {
'name' => $rr['xchan_name'],
'username' => $rr['xchan_name'],
'sparkle' => $sparkle,
- 'link' => z_root() . '/connections/' . $rr['abook_id'],
+ 'link' => z_root() . '/connedit/' . $rr['abook_id'],
'url' => $rr['xchan_url'],
'network' => network_to_name($rr['network']),
);
diff --git a/mod/connedit.php b/mod/connedit.php
new file mode 100644
index 000000000..c6f64ccfc
--- /dev/null
+++ b/mod/connedit.php
@@ -0,0 +1,500 @@
+<?php
+
+require_once('include/Contact.php');
+require_once('include/socgraph.php');
+require_once('include/contact_selectors.php');
+require_once('include/group.php');
+require_once('include/contact_widgets.php');
+require_once('include/zot.php');
+require_once('include/widgets.php');
+
+function connedit_init(&$a) {
+
+ if(! local_user())
+ return;
+
+ if((argc() == 2) && intval(argv(1))) {
+ $r = q("SELECT abook.*, xchan.*
+ FROM abook left join xchan on abook_xchan = xchan_hash
+ WHERE abook_channel = %d and abook_id = %d LIMIT 1",
+ intval(local_user()),
+ intval(argv(1))
+ );
+ if($r) {
+ $a->poi = $r[0];
+ }
+ }
+
+ $channel = $a->get_channel();
+ if($channel)
+ head_set_icon($channel['xchan_photo_s']);
+
+}
+
+function connedit_post(&$a) {
+
+ if(! local_user())
+ return;
+
+ $contact_id = intval(argv(1));
+ if(! $contact_id)
+ return;
+
+ $orig_record = q("SELECT * FROM abook WHERE abook_id = %d AND abook_channel = %d LIMIT 1",
+ intval($contact_id),
+ intval(local_user())
+ );
+
+ if(! $orig_record) {
+ notice( t('Could not access contact record.') . EOL);
+ goaway($a->get_baseurl(true) . '/connections');
+ return; // NOTREACHED
+ }
+
+ call_hooks('contact_edit_post', $_POST);
+
+ $profile_id = $_POST['profile_assign'];
+ if($profile_id) {
+ $r = q("SELECT profile_guid FROM profile WHERE profile_guid = '%s' AND `uid` = %d LIMIT 1",
+ dbesc($profile_id),
+ intval(local_user())
+ );
+ if(! count($r)) {
+ notice( t('Could not locate selected profile.') . EOL);
+ return;
+ }
+ }
+
+ $hidden = intval($_POST['hidden']);
+
+ $priority = intval($_POST['poll']);
+ if($priority > 5 || $priority < 0)
+ $priority = 0;
+
+ $closeness = intval($_POST['closeness']);
+ if($closeness < 0)
+ $closeness = 99;
+
+ $abook_my_perms = 0;
+
+ foreach($_POST as $k => $v) {
+ if(strpos($k,'perms_') === 0) {
+ $abook_my_perms += $v;
+ }
+ }
+
+ $abook_flags = $orig_record[0]['abook_flags'];
+ $new_friend = false;
+
+
+
+ if(($_REQUEST['pending']) && ($abook_flags & ABOOK_FLAG_PENDING)) {
+ $abook_flags = ( $abook_flags ^ ABOOK_FLAG_PENDING );
+ $new_friend = true;
+ }
+
+ $r = q("UPDATE abook SET abook_profile = '%s', abook_my_perms = %d , abook_closeness = %d, abook_flags = %d
+ where abook_id = %d AND abook_channel = %d LIMIT 1",
+ dbesc($profile_id),
+ intval($abook_my_perms),
+ intval($closeness),
+ intval($abook_flags),
+ intval($contact_id),
+ intval(local_user())
+ );
+
+ if($r)
+ info( t('Connection updated.') . EOL);
+ else
+ notice( t('Failed to update connection record.') . EOL);
+
+ if($a->poi && $a->poi['abook_my_perms'] != $abook_my_perms
+ && (! ($a->poi['abook_flags'] & ABOOK_FLAG_SELF))) {
+ proc_run('php', 'include/notifier.php', 'permission_update', $contact_id);
+ }
+
+ if($new_friend) {
+ $channel = $a->get_channel();
+ $default_group = $channel['channel_default_group'];
+ if($default_group) {
+ require_once('include/group.php');
+ $g = group_rec_byhash(local_user(),$default_group);
+ if($g)
+ group_add_member(local_user(),'',$a->poi['abook_xchan'],$g['id']);
+ }
+
+
+
+ // Check if settings permit ("post new friend activity" is allowed, and
+ // friends in general or this friend in particular aren't hidden)
+ // and send out a new friend activity
+ // TODO
+
+ // pull in a bit of content if there is any to pull in
+ proc_run('php','include/onepoll.php',$contact_id);
+
+ }
+
+ // Refresh the structure in memory with the new data
+
+ $r = q("SELECT abook.*, xchan.*
+ FROM abook left join xchan on abook_xchan = xchan_hash
+ WHERE abook_channel = %d and abook_id = %d LIMIT 1",
+ intval(local_user()),
+ intval($contact_id)
+ );
+ if($r) {
+ $a->poi = $r[0];
+ }
+
+ if($new_friend) {
+ $arr = array('channel_id' => local_user(), 'abook' => $a->poi);
+ call_hooks('accept_follow', $arr);
+ }
+
+ connedit_clone($a);
+
+ return;
+
+}
+
+function connedit_clone(&$a) {
+
+ if(! $a->poi)
+ return;
+ $clone = $a->poi;
+
+ unset($clone['abook_id']);
+ unset($clone['abook_account']);
+ unset($clone['abook_channel']);
+
+ build_sync_packet(0 /* use the current local_user */, array('abook' => array($clone)));
+}
+
+
+function connedit_content(&$a) {
+
+ $sort_type = 0;
+ $o = '';
+
+
+ if(! local_user()) {
+ notice( t('Permission denied.') . EOL);
+ return login();
+ }
+
+ if(argc() == 3) {
+
+ $contact_id = intval(argv(1));
+ if(! $contact_id)
+ return;
+
+ $cmd = argv(2);
+
+ $orig_record = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook_xchan = xchan_hash
+ WHERE abook_id = %d AND abook_channel = %d AND NOT ( abook_flags & %d ) and not ( abook_flags & %d ) LIMIT 1",
+ intval($contact_id),
+ intval(local_user()),
+ intval(ABOOK_FLAG_SELF),
+ // allow drop even if pending, just duplicate the self query
+ intval(($cmd === 'drop') ? ABOOK_FLAG_SELF : ABOOK_FLAG_PENDING)
+ );
+
+ if(! count($orig_record)) {
+ notice( t('Could not access address book record.') . EOL);
+ goaway($a->get_baseurl(true) . '/connections');
+ }
+
+ if($cmd === 'update') {
+
+ // pull feed and consume it, which should subscribe to the hub.
+ proc_run('php',"include/poller.php","$contact_id");
+ goaway($a->get_baseurl(true) . '/connedit/' . $contact_id);
+
+ }
+
+ if($cmd === 'refresh') {
+ if(! zot_refresh($orig_record[0],get_app()->get_channel()))
+ notice( t('Refresh failed - channel is currently unavailable.') );
+ goaway($a->get_baseurl(true) . '/connedit/' . $contact_id);
+ }
+
+ if($cmd === 'block') {
+ if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_BLOCKED)) {
+ info((($orig_record[0]['abook_flags'] & ABOOK_FLAG_BLOCKED)
+ ? t('Channel has been unblocked')
+ : t('Channel has been blocked')) . EOL );
+ connedit_clone($a);
+ }
+ else
+ notice(t('Unable to set address book parameters.') . EOL);
+ goaway($a->get_baseurl(true) . '/connedit/' . $contact_id);
+ }
+
+ if($cmd === 'ignore') {
+ if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_IGNORED)) {
+ info((($orig_record[0]['abook_flags'] & ABOOK_FLAG_IGNORED)
+ ? t('Channel has been unignored')
+ : t('Channel has been ignored')) . EOL );
+ connedit_clone($a);
+ }
+ else
+ notice(t('Unable to set address book parameters.') . EOL);
+ goaway($a->get_baseurl(true) . '/connedit/' . $contact_id);
+ }
+
+ if($cmd === 'archive') {
+ if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_ARCHIVED)) {
+ info((($orig_record[0]['abook_flags'] & ABOOK_FLAG_ARCHIVED)
+ ? t('Channel has been unarchived')
+ : t('Channel has been archived')) . EOL );
+ connedit_clone($a);
+ }
+ else
+ notice(t('Unable to set address book parameters.') . EOL);
+ goaway($a->get_baseurl(true) . '/connedit/' . $contact_id);
+ }
+
+ if($cmd === 'hide') {
+ if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_HIDDEN)) {
+ info((($orig_record[0]['abook_flags'] & ABOOK_FLAG_HIDDEN)
+ ? t('Channel has been unhidden')
+ : t('Channel has been hidden')) . EOL );
+ connedit_clone($a);
+ }
+ else
+ notice(t('Unable to set address book parameters.') . EOL);
+ goaway($a->get_baseurl(true) . '/connedit/' . $contact_id);
+ }
+
+ // We'll prevent somebody from unapproving a contact.
+
+ if($cmd === 'approve') {
+ if($orig_record[0]['abook_flags'] & ABOOK_FLAG_PENDING) {
+ if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_PENDING)) {
+ info((($orig_record[0]['abook_flags'] & ABOOK_FLAG_PENDING)
+ ? t('Channel has been approved')
+ : t('Channel has been unapproved')) . EOL );
+ connedit_clone($a);
+ }
+ else
+ notice(t('Unable to set address book parameters.') . EOL);
+ }
+ goaway($a->get_baseurl(true) . '/connedit/' . $contact_id);
+ }
+
+
+ if($cmd === 'drop') {
+
+ require_once('include/Contact.php');
+// FIXME
+// terminate_friendship($a->get_channel(),$orig_record[0]);
+
+ contact_remove(local_user(), $orig_record[0]['abook_id']);
+// FIXME - send to clones
+ info( t('Contact has been removed.') . EOL );
+ if(x($_SESSION,'return_url'))
+ goaway($a->get_baseurl(true) . '/' . $_SESSION['return_url']);
+ goaway($a->get_baseurl(true) . '/contacts');
+
+ }
+ }
+
+ if($a->poi) {
+
+ $contact_id = $a->poi['abook_id'];
+ $contact = $a->poi;
+
+
+ $tabs = array(
+
+ array(
+ 'label' => t('View Profile'),
+ 'url' => $a->get_baseurl(true) . '/chanview/?f=&cid=' . $contact['abook_id'],
+ 'sel' => '',
+ 'title' => sprintf( t('View %s\'s profile'), $contact['xchan_name']),
+ ),
+
+ array(
+ 'label' => t('Refresh Permissions'),
+ 'url' => $a->get_baseurl(true) . '/connedit/' . $contact['abook_id'] . '/refresh',
+ 'sel' => '',
+ 'title' => t('Fetch updated permissions'),
+ ),
+
+ array(
+ 'label' => t('Recent Activity'),
+ 'url' => $a->get_baseurl(true) . '/network/?f=&cid=' . $contact['abook_id'],
+ 'sel' => '',
+ 'title' => t('View recent posts and comments'),
+ ),
+
+ array(
+ 'label' => (($contact['abook_flags'] & ABOOK_FLAG_BLOCKED) ? t('Unblock') : t('Block')),
+ 'url' => $a->get_baseurl(true) . '/connedit/' . $contact['abook_id'] . '/block',
+ 'sel' => (($contact['abook_flags'] & ABOOK_FLAG_BLOCKED) ? 'active' : ''),
+ 'title' => t('Block or Unblock this connection'),
+ ),
+
+ array(
+ 'label' => (($contact['abook_flags'] & ABOOK_FLAG_IGNORED) ? t('Unignore') : t('Ignore')),
+ 'url' => $a->get_baseurl(true) . '/connedit/' . $contact['abook_id'] . '/ignore',
+ 'sel' => (($contact['abook_flags'] & ABOOK_FLAG_IGNORED) ? 'active' : ''),
+ 'title' => t('Ignore or Unignore this connection'),
+ ),
+ array(
+ 'label' => (($contact['abook_flags'] & ABOOK_FLAG_ARCHIVED) ? t('Unarchive') : t('Archive')),
+ 'url' => $a->get_baseurl(true) . '/connedit/' . $contact['abook_id'] . '/archive',
+ 'sel' => (($contact['abook_flags'] & ABOOK_FLAG_ARCHIVED) ? 'active' : ''),
+ 'title' => t('Archive or Unarchive this connection'),
+ ),
+ array(
+ 'label' => (($contact['abook_flags'] & ABOOK_FLAG_HIDDEN) ? t('Unhide') : t('Hide')),
+ 'url' => $a->get_baseurl(true) . '/connedit/' . $contact['abook_id'] . '/hide',
+ 'sel' => (($contact['abook_flags'] & ABOOK_FLAG_HIDDEN) ? 'active' : ''),
+ 'title' => t('Hide or Unhide this connection'),
+ ),
+
+ array(
+ 'label' => t('Delete'),
+ 'url' => $a->get_baseurl(true) . '/connedit/' . $contact['abook_id'] . '/drop',
+ 'sel' => '',
+ 'title' => t('Delete this connection'),
+ ),
+
+ );
+
+ $self = false;
+
+ if(! ($contact['abook_flags'] & ABOOK_FLAG_SELF)) {
+ $tab_tpl = get_markup_template('common_tabs.tpl');
+ $t = replace_macros($tab_tpl, array('$tabs'=>$tabs));
+ }
+ else
+ $self = true;
+
+ $a->page['htmlhead'] .= replace_macros(get_markup_template('contact_head.tpl'), array(
+ '$baseurl' => $a->get_baseurl(true),
+ '$editselect' => $editselect
+ ));
+
+ require_once('include/contact_selectors.php');
+
+ $tpl = get_markup_template("abook_edit.tpl");
+
+ if(feature_enabled(local_user(),'affinity')) {
+
+ $slider_tpl = get_markup_template('contact_slider.tpl');
+ $slide = replace_macros($slider_tpl,array(
+ '$me' => t('Me'),
+ '$val' => (($contact['abook_closeness']) ? $contact['abook_closeness'] : 99),
+ '$intimate' => t('Best Friends'),
+ '$friends' => t('Friends'),
+ '$oldfriends' => t('Former Friends'),
+ '$acquaintances' => t('Acquaintances'),
+ '$world' => t('Unknown')
+ ));
+ }
+
+ $perms = array();
+ $channel = $a->get_channel();
+
+ $global_perms = get_perms();
+ $existing = get_all_perms(local_user(),$contact['abook_xchan']);
+
+ $unapproved = array('pending', t('Approve this connection'), '', t('Accept connection to allow communication'));
+
+ foreach($global_perms as $k => $v) {
+ $thisperm = (($contact['abook_my_perms'] & $v[1]) ? "1" : '');
+
+ // For auto permissions (when $self is true) we don't want to look at existing
+ // permissions because they are enabled for the channel owner
+
+ if((! $self) && ($existing[$k]))
+ $thisperm = "1";
+
+ $perms[] = array('perms_' . $k, $v[3], (($contact['abook_their_perms'] & $v[1]) ? "1" : ""),$thisperm, $v[1], (($channel[$v[0]] == PERMS_SPECIFIC) ? '' : '1'), $v[4]);
+ }
+
+ $o .= replace_macros($tpl,array(
+
+ '$header' => (($self) ? t('Automatic Permissions Settings') : sprintf( t('Connections: settings for %s'),$contact['xchan_name'])),
+ '$addr' => $contact['xchan_addr'],
+ '$notself' => (($self) ? '' : '1'),
+ '$self' => (($self) ? '1' : ''),
+ '$autolbl' => t('When receiving a channel introduction, any permissions provided here will be applied to the new connection automatically and the introduction approved. Leave this page if you do not wish to use this feature.'),
+ '$viewprof' => t('View Profile'),
+ '$lbl_slider' => t('Slide to adjust your degree of friendship'),
+ '$slide' => $slide,
+ '$tabs' => $t,
+ '$tab_str' => $tab_str,
+ '$is_pending' => (($contact['abook_flags'] & ABOOK_FLAG_PENDING) ? 1 : ''),
+ '$unapproved' => $unapproved,
+ '$inherited' => t('inherited'),
+ '$approve' => t('Approve this connection'),
+ '$noperms' => (((! $self) && (! $contact['abook_my_perms'])) ? t('Connection has no individual permissions!') : ''),
+ '$noperm_desc' => (((! $self) && (! $contact['abook_my_perms'])) ? t('This may be appropriate based on your <a href="settings">privacy settings</a>, though you may wish to review the "Advanced Permissions".') : ''),
+ '$submit' => t('Submit'),
+ '$lbl_vis1' => t('Profile Visibility'),
+ '$lbl_vis2' => sprintf( t('Please choose the profile you would like to display to %s when viewing your profile securely.'), $contact['xchan_name']),
+ '$lbl_info1' => t('Contact Information / Notes'),
+ '$infedit' => t('Edit contact notes'),
+ '$close' => $contact['abook_closeness'],
+ '$them' => t('Their Settings'),
+ '$me' => t('My Settings'),
+ '$perms' => $perms,
+ '$forum' => t('Forum Members'),
+ '$soapbox' => t('Soapbox'),
+ '$full' => t('Full Sharing (typical social network permissions)'),
+ '$cautious' => t('Cautious Sharing '),
+ '$follow' => t('Follow Only'),
+ '$permlbl' => t('Individual Permissions'),
+ '$permnote' => t('Some permissions may be inherited from your channel <a href="settings">privacy settings</a>, which have higher priority than individual settings. Changing those inherited settings on this page will have no effect.'),
+ '$advanced' => t('Advanced Permissions'),
+ '$quick' => t('Simple Permissions (select one and submit)'),
+ '$common_link' => $a->get_baseurl(true) . '/common/loc/' . local_user() . '/' . $contact['id'],
+ '$all_friends' => $all_friends,
+ '$relation_text' => $relation_text,
+ '$visit' => sprintf( t('Visit %s\'s profile - %s'),$contact['xchan_name'],$contact['xchan_url']),
+ '$blockunblock' => t('Block/Unblock contact'),
+ '$ignorecont' => t('Ignore contact'),
+ '$lblcrepair' => t("Repair URL settings"),
+ '$lblrecent' => t('View conversations'),
+ '$lblsuggest' => $lblsuggest,
+ '$delete' => t('Delete contact'),
+ '$poll_interval' => contact_poll_interval($contact['priority'],(! $poll_enabled)),
+ '$poll_enabled' => $poll_enabled,
+ '$lastupdtext' => t('Last update:'),
+ '$lost_contact' => $lost_contact,
+ '$updpub' => t('Update public posts'),
+ '$last_update' => relative_date($contact['abook_connected']),
+ '$udnow' => t('Update now'),
+ '$profile_select' => contact_profile_assign($contact['abook_profile']),
+ '$multiprofs' => feature_enabled(local_user(),'multi_profiles'),
+ '$contact_id' => $contact['abook_id'],
+ '$block_text' => (($contact['blocked']) ? t('Unblock') : t('Block') ),
+ '$ignore_text' => (($contact['readonly']) ? t('Unignore') : t('Ignore') ),
+ '$blocked' => (($contact['blocked']) ? t('Currently blocked') : ''),
+ '$ignored' => (($contact['readonly']) ? t('Currently ignored') : ''),
+ '$archived' => (($contact['archive']) ? t('Currently archived') : ''),
+ '$pending' => (($contact['archive']) ? t('Currently pending') : ''),
+ '$hidden' => array('hidden', t('Hide this contact from others'), ($contact['hidden'] == 1), t('Replies/likes to your public posts <strong>may</strong> still be visible')),
+ '$photo' => $contact['photo'],
+ '$name' => $contact['name'],
+ '$dir_icon' => $dir_icon,
+ '$alt_text' => $alt_text,
+ '$sparkle' => $sparkle,
+ '$url' => $url
+
+ ));
+
+ $arr = array('contact' => $contact,'output' => $o);
+
+ call_hooks('contact_edit', $arr);
+
+ return $arr['output'];
+
+ }
+
+
+}
diff --git a/mod/contactgroup.php b/mod/contactgroup.php
index 4b46605a6..8b23f9f10 100644
--- a/mod/contactgroup.php
+++ b/mod/contactgroup.php
@@ -20,7 +20,7 @@ function contactgroup_content(&$a) {
if((argc() > 1) && (intval(argv(1)))) {
- $r = q("SELECT * FROM `group` WHERE `id` = %d AND `uid` = %d AND `deleted` = 0 LIMIT 1",
+ $r = q("SELECT * FROM `groups` WHERE `id` = %d AND `uid` = %d AND `deleted` = 0 LIMIT 1",
intval(argv(1)),
intval(local_user())
);
diff --git a/mod/crepair.php b/mod/crepair.php
deleted file mode 100644
index f749fac0e..000000000
--- a/mod/crepair.php
+++ /dev/null
@@ -1,171 +0,0 @@
-<?php
-
-function crepair_init(&$a) {
- if(! local_user())
- return;
-
- $contact_id = 0;
-
- if(($a->argc == 2) && intval($a->argv[1])) {
- $contact_id = intval($a->argv[1]);
- $r = q("SELECT * FROM `contact` WHERE `uid` = %d and `id` = %d LIMIT 1",
- intval(local_user()),
- intval($contact_id)
- );
- if(! count($r)) {
- $contact_id = 0;
- }
- }
-
- if(! x($a->page,'aside'))
- $a->page['aside'] = '';
-
- if($contact_id) {
- $a->data['contact'] = $r[0];
- $o .= '<div class="vcard">';
- $o .= '<div class="fn">' . $a->data['contact']['name'] . '</div>';
- $o .= '<div id="profile-photo-wrapper"><img class="photo" style="width: 175px; height: 175px;" src="' . $a->data['contact']['photo'] . '" alt="' . $a->data['contact']['name'] . '" /></div>';
- $o .= '</div>';
- $a->page['aside'] .= $o;
-
- }
-}
-
-
-function crepair_post(&$a) {
- if(! local_user())
- return;
-
- $cid = (($a->argc > 1) ? intval($a->argv[1]) : 0);
-
- if($cid) {
- $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
- intval($cid),
- intval(local_user())
- );
- }
-
- if(! count($r))
- return;
-
- $contact = $r[0];
-
- $name = ((x($_POST,'name')) ? $_POST['name'] : $contact['name']);
- $nick = ((x($_POST,'nick')) ? $_POST['nick'] : '');
- $url = ((x($_POST,'url')) ? $_POST['url'] : '');
- $request = ((x($_POST,'request')) ? $_POST['request'] : '');
- $confirm = ((x($_POST,'confirm')) ? $_POST['confirm'] : '');
- $notify = ((x($_POST,'notify')) ? $_POST['notify'] : '');
- $poll = ((x($_POST,'poll')) ? $_POST['poll'] : '');
- $attag = ((x($_POST,'attag')) ? $_POST['attag'] : '');
- $photo = ((x($_POST,'photo')) ? $_POST['photo'] : '');
-
- $r = q("UPDATE `contact` SET `name` = '%s', `nick` = '%s', `url` = '%s', `request` = '%s', `confirm` = '%s', `notify` = '%s', `poll` = '%s', `attag` = '%s'
- WHERE `id` = %d AND `uid` = %d LIMIT 1",
- dbesc($name),
- dbesc($nick),
- dbesc($url),
- dbesc($request),
- dbesc($confirm),
- dbesc($notify),
- dbesc($poll),
- dbesc($attag),
- intval($contact['id']),
- local_user()
- );
-
- if($photo) {
- logger('mod-crepair: updating photo from ' . $photo);
- require_once('include/photo/photo_driver.php');
-
- $photos = import_profile_photo($photo,local_user(),$contact['id']);
-
- $x = q("UPDATE `contact` SET `photo` = '%s',
- `thumb` = '%s',
- `micro` = '%s',
- `name_date` = '%s',
- `uri_date` = '%s',
- `avatar_date` = '%s'
- WHERE `id` = %d LIMIT 1
- ",
- dbesc($photos[0]),
- dbesc($photos[1]),
- dbesc($photos[2]),
- dbesc(datetime_convert()),
- dbesc(datetime_convert()),
- dbesc(datetime_convert()),
- intval($contact['id'])
- );
- }
-
- if($r)
- info( t('Contact settings applied.') . EOL);
- else
- notice( t('Contact update failed.') . EOL);
-
-
- return;
-}
-
-
-
-function crepair_content(&$a) {
-
- if(! local_user()) {
- notice( t('Permission denied.') . EOL);
- return;
- }
-
- $cid = (($a->argc > 1) ? intval($a->argv[1]) : 0);
-
- if($cid) {
- $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
- intval($cid),
- intval(local_user())
- );
- }
-
- if(! count($r)) {
- notice( t('Contact not found.') . EOL);
- return;
- }
-
- $contact = $r[0];
-
- $msg1 = t('Repair Contact Settings');
-
- $msg2 = t('<strong>WARNING: This is highly advanced</strong> and if you enter incorrect information your communications with this contact may stop working.');
- $msg3 = t('Please use your browser \'Back\' button <strong>now</strong> if you are uncertain what to do on this page.');
-
- $o .= '<h2>' . $msg1 . '</h2>';
-
- $o .= '<div class="error-message">' . $msg2 . EOL . EOL. $msg3 . '</div>';
-
- $o .= EOL . '<a href="contacts/' . $cid . '">' . t('Return to contact editor') . '</a>' . EOL;
-
- $tpl = get_markup_template('crepair.tpl');
- $o .= replace_macros($tpl, array(
- '$label_name' => t('Name'),
- '$label_nick' => t('Account Nickname'),
- '$label_attag' => t('@Tagname - overrides Name/Nickname'),
- '$label_url' => t('Account URL'),
- '$label_request' => t('Friend Request URL'),
- '$label_confirm' => t('Friend Confirm URL'),
- '$label_notify' => t('Notification Endpoint URL'),
- '$label_poll' => t('Poll/Feed URL'),
- '$label_photo' => t('New photo from this URL'),
- '$contact_name' => $contact['name'],
- '$contact_nick' => $contact['nick'],
- '$contact_id' => $contact['id'],
- '$contact_url' => $contact['url'],
- '$request' => $contact['request'],
- '$confirm' => $contact['confirm'],
- '$notify' => $contact['notify'],
- '$poll' => $contact['poll'],
- '$contact_attag' => $contact['attag'],
- '$lbl_submit' => t('Submit')
- ));
-
- return $o;
-
-}
diff --git a/mod/directory.php b/mod/directory.php
index 616035339..8fc62e95b 100644
--- a/mod/directory.php
+++ b/mod/directory.php
@@ -9,24 +9,6 @@ function directory_init(&$a) {
}
-function directory_aside(&$a) {
-
- if(local_user()) {
- require_once('include/contact_widgets.php');
- $a->set_widget('find_people',findpeople_widget());
- }
-
- if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
- return;
- }
-
- $a->set_widget('safe_search',dir_safe_mode());
-
- $a->set_widget('dir_sort_order',dir_sort_links());
-
-}
-
-
function directory_content(&$a) {
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
@@ -64,6 +46,7 @@ function directory_content(&$a) {
$tpl = get_markup_template('directory_header.tpl');
+
$dirmode = intval(get_config('system','directory_mode'));
@@ -186,10 +169,12 @@ function directory_content(&$a) {
'id' => ++$t,
'profile_link' => $profile_link,
'photo' => $rr['photo'],
+ 'hash' => $rr['hash'],
'alttext' => $rr['name'] . ' ' . $rr['address'],
'name' => $rr['name'],
'details' => $pdesc . $details,
'profile' => $profile,
+ 'address' => $rr['address'],
'location' => $location,
'gender' => $gender,
'pdesc' => $pdesc,
@@ -204,7 +189,7 @@ function directory_content(&$a) {
call_hooks('directory_item', $arr);
- $entries[] = $entry;
+ $entries[] = $arr['entry'];
unset($profile);
unset($location);
@@ -212,10 +197,8 @@ function directory_content(&$a) {
}
if($j['keywords']) {
- $a->set_widget('dirtagblock',dir_tagblock(z_root() . '/directory',$j['keywords']));
+ $a->data['directory_keywords'] = $j['keywords'];
}
- $a->set_widget('suggest',widget_suggestions(array()));
-
// logger('mod_directory: entries: ' . print_r($entries,true), LOGGER_DATA);
diff --git a/mod/dirprofile.php b/mod/dirprofile.php
new file mode 100644
index 000000000..d88144f52
--- /dev/null
+++ b/mod/dirprofile.php
@@ -0,0 +1,190 @@
+<?php
+
+require_once('include/dir_fns.php');
+require_once('include/bbcode.php');
+
+function dirprofile_init(&$a) {
+
+ if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
+ notice( t('Public access denied.') . EOL);
+ return;
+ }
+
+ $hash = $_REQUEST['hash'];
+ if(! $hash)
+ return '';
+
+ $o = '';
+
+ $dirmode = intval(get_config('system','directory_mode'));
+
+ if(($dirmode == DIRECTORY_MODE_PRIMARY) || ($dirmode == DIRECTORY_MODE_STANDALONE)) {
+ $url = z_root() . '/dirsearch';
+ }
+ if(! $url) {
+ $directory = find_upstream_directory($dirmode);
+
+ if($directory) {
+ $url = $directory['url'] . '/dirsearch';
+ }
+ else {
+ $url = DIRECTORY_FALLBACK_MASTER . '/dirsearch';
+ }
+ }
+ logger('mod_directory: URL = ' . $url, LOGGER_DEBUG);
+
+ $contacts = array();
+
+ if(local_user()) {
+ $x = q("select abook_xchan from abook where abook_channel = %d",
+ intval(local_user())
+ );
+ if($x) {
+ foreach($x as $xx)
+ $contacts[] = $xx['abook_xchan'];
+ }
+ }
+
+
+
+ if($url) {
+
+ $query = $url . '?f=&hash=' . $hash;
+
+ $x = z_fetch_url($query);
+ logger('dirprofile: return from upstream: ' . print_r($x,true), LOGGER_DATA);
+
+ if($x['success']) {
+ $t = 0;
+ $j = json_decode($x['body'],true);
+ if($j) {
+
+ if($j['results']) {
+
+ $entries = array();
+
+ $photo = 'thumb';
+
+ foreach($j['results'] as $rr) {
+
+ $profile_link = chanlink_url($rr['url']);
+
+ $pdesc = (($rr['description']) ? $rr['description'] . '<br />' : '');
+
+ $qrlink = zid($rr['url']);
+ $connect_link = ((local_user()) ? z_root() . '/follow?f=&url=' . urlencode($rr['address']) : '');
+
+ $online = remote_online_status($rr['address']);
+
+
+ if(in_array($rr['hash'],$contacts))
+ $connect_link = '';
+
+ $details = '';
+ if(strlen($rr['locale']))
+ $details .= $rr['locale'];
+ if(strlen($rr['region'])) {
+ if(strlen($rr['locale']))
+ $details .= ', ';
+ $details .= $rr['region'];
+ }
+ if(strlen($rr['country'])) {
+ if(strlen($details))
+ $details .= ', ';
+ $details .= $rr['country'];
+ }
+ if(strlen($rr['birthday'])) {
+ if(($years = age($rr['birthday'],'UTC','')) != 0)
+ $details .= '<br />' . t('Age: ') . $years ;
+ }
+ if(strlen($rr['gender']))
+ $details .= '<br />' . t('Gender: ') . $rr['gender'];
+
+ $page_type = '';
+
+ $profile = $rr;
+
+ if ((x($profile,'locale') == 1)
+ || (x($profile,'region') == 1)
+ || (x($profile,'postcode') == 1)
+ || (x($profile,'country') == 1))
+ $location = t('Location:');
+
+
+ $marital = ((x($profile,'marital') == 1) ? t('Status: ') . $profile['marital'] : False);
+ $sexual = ((x($profile,'sexual') == 1) ? t('Sexual Preference: ') . $profile['sexual'] : False);
+
+ $homepage = ((x($profile,'homepage') == 1) ? t('Homepage: ') . linkify($profile['homepage']) : False);
+ $hometown = ((x($profile,'hometown') == 1) ? t('Hometown: ') . $profile['hometown'] : False);
+
+ $about = ((x($profile,'about') == 1) ? t('About: ') . bbcode($profile['about']) : False);
+
+ $keywords = ((x($profile,'keywords')) ? $profile['keywords'] : '');
+ if($keywords) {
+ $keywords = str_replace(',',' ', $keywords);
+ $keywords = str_replace(' ',' ', $keywords);
+ $karr = explode(' ', $keywords);
+ $out = '';
+ if($karr) {
+ if(local_user()) {
+ $r = q("select keywords from profile where uid = %d and is_default = 1 limit 1",
+ intval(local_user())
+ );
+ if($r) {
+ $keywords = str_replace(',',' ', $r[0]['keywords']);
+ $keywords = str_replace(' ',' ', $keywords);
+ $marr = explode(' ', $keywords);
+ }
+ }
+ foreach($karr as $k) {
+ if(strlen($out))
+ $out .= ', ';
+ if($marr && in_arrayi($k,$marr))
+ $out .= '<strong>' . $k . '</strong>';
+ else
+ $out .= $k;
+ }
+ }
+
+ }
+ $entry = replace_macros(get_markup_template('direntry_large.tpl'), array(
+ '$id' => ++$t,
+ '$profile_link' => $profile_link,
+ '$qrlink' => $qrlink,
+ '$photo' => $rr['photo_l'],
+ '$alttext' => $rr['name'] . ' ' . $rr['address'],
+ '$name' => $rr['name'],
+ '$online' => (($online) ? t('Online Now') : ''),
+ '$details' => $pdesc . $details,
+ '$profile' => $profile,
+ '$address' => $rr['address'],
+ '$location' => $location,
+ '$gender' => $gender,
+ '$pdesc' => $pdesc,
+ '$marital' => $marital,
+ '$homepage' => $homepage,
+ '$hometown' => $hometown,
+ '$about' => $about,
+ '$kw' => (($out) ? t('Keywords: ') : ''),
+ '$keywords' => $out,
+ '$conn_label' => t('Connect'),
+ '$connect' => $connect_link,
+ ));
+
+
+ echo $entry;
+ killme();
+
+ }
+ }
+ else {
+ info( t("Not found.") . EOL);
+ }
+ }
+ }
+ }
+
+
+
+
+} \ No newline at end of file
diff --git a/mod/dirsearch.php b/mod/dirsearch.php
index 6315cae31..59a1d448d 100644
--- a/mod/dirsearch.php
+++ b/mod/dirsearch.php
@@ -27,9 +27,10 @@ function dirsearch_content(&$a) {
json_return_and_die($ret);
}
+ $hash = ((x($_REQUEST['hash'])) ? $_REQUEST['hash'] : '');
$name = ((x($_REQUEST,'name')) ? $_REQUEST['name'] : '');
- $hub = ((x($_REQUEST,'hub')) ? $_REQUEST['hub'] : '');
+ $hub = ((x($_REQUEST,'hub')) ? $_REQUEST['hub'] : '');
$address = ((x($_REQUEST,'address')) ? $_REQUEST['address'] : '');
$locale = ((x($_REQUEST,'locale')) ? $_REQUEST['locale'] : '');
$region = ((x($_REQUEST,'region')) ? $_REQUEST['region'] : '');
@@ -91,6 +92,13 @@ function dirsearch_content(&$a) {
$sql_extra .= " AND xprof_age >= " . intval($agege) . ") ";
}
+
+ if($hash) {
+ $sql_extra = " AND xchan_hash = '" . dbesc($hash) . "' ";
+ }
+
+
+
$perpage = (($_REQUEST['n']) ? $_REQUEST['n'] : 80);
$page = (($_REQUEST['p']) ? intval($_REQUEST['p'] - 1) : 0);
$startrec = (($page+1) * $perpage) - $perpage;
@@ -112,6 +120,9 @@ function dirsearch_content(&$a) {
$logic = ((strlen($sql_extra)) ? 0 : 1);
+ if($hash)
+ $logic = 1;
+
$safesql = (($safe > 0) ? " and not ( xchan_flags & " . intval(XCHAN_FLAGS_CENSORED|XCHAN_FLAGS_SELFCENSORED) . " ) " : '');
if($safe < 0)
$safesql = " and ( xchan_flags & " . intval(XCHAN_FLAGS_CENSORED|XCHAN_FLAGS_SELFCENSORED) . " ) ";
@@ -161,13 +172,11 @@ function dirsearch_content(&$a) {
json_return_and_die($spkt);
}
else {
-
$r = q("SELECT xchan.*, xprof.* from xchan left join xprof on xchan_hash = xprof_hash where ( $logic $sql_extra ) and not ( xchan_flags & %d ) and not ( xchan_flags & %d ) and not ( xchan_flags & %d ) $safesql $order $qlimit ",
intval(XCHAN_FLAGS_HIDDEN),
intval(XCHAN_FLAGS_ORPHAN),
intval(XCHAN_FLAGS_DELETED)
);
-
}
$ret['page'] = $page + 1;
@@ -184,9 +193,8 @@ function dirsearch_content(&$a) {
$entry['name'] = $rr['xchan_name'];
$entry['hash'] = $rr['xchan_hash'];
-// $entry['updated'] = (($rr['ud_date']) ? $rr['ud_date'] : '0000-00-00 00:00:00');
-// $entry['update_guid'] = (($rr['ud_guid']) ? $rr['ud_guid'] : '');
$entry['url'] = $rr['xchan_url'];
+ $entry['photo_l'] = $rr['xchan_photo_l'];
$entry['photo'] = $rr['xchan_photo_m'];
$entry['address'] = $rr['xchan_addr'];
$entry['description'] = $rr['xprof_desc'];
@@ -198,6 +206,10 @@ function dirsearch_content(&$a) {
$entry['age'] = $rr['xprof_age'];
$entry['gender'] = $rr['xprof_gender'];
$entry['marital'] = $rr['xprof_marital'];
+ $entry['sexual'] = $rr['xprof_sexual'];
+ $entry['about'] = $rr['xprof_about'];
+ $entry['homepage'] = $rr['xprof_homepage'];
+ $entry['hometown'] = $rr['xprof_hometown'];
$entry['keywords'] = $rr['xprof_keywords'];
$entries[] = $entry;
@@ -221,7 +233,7 @@ function dirsearch_content(&$a) {
function list_public_sites() {
- $r = q("select * from site where site_access != 0 order by rand()");
+ $r = q("select * from site where site_access != 0 and site_register !=0 order by rand()");
$ret = array('success' => false);
if($r) {
@@ -257,4 +269,4 @@ function list_public_sites() {
}
}
return $ret;
-} \ No newline at end of file
+}
diff --git a/mod/display.php b/mod/display.php
index 9aafec8c3..b20eb3e4f 100644
--- a/mod/display.php
+++ b/mod/display.php
@@ -125,6 +125,7 @@ function display_content(&$a, $update = 0, $load = false) {
'$nouveau' => '0',
'$wall' => '0',
'$page' => (($a->pager['page'] != 1) ? $a->pager['page'] : 1),
+ '$list' => ((x($_REQUEST,'list')) ? intval($_REQUEST['list']) : 0),
'$search' => '',
'$order' => '',
'$file' => '',
@@ -139,13 +140,13 @@ function display_content(&$a, $update = 0, $load = false) {
$sql_extra = public_permissions_sql(get_observer_hash());
- if($update && $load) {
+ if(($update && $load) || ($_COOKIE['jsAvailable'] != 1)) {
$updateable = false;
$pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
- if($load) {
+ if($load || ($_COOKIE['jsAvailable'] != 1)) {
$r = null;
if(local_user()) {
$r = q("SELECT * from item
@@ -202,8 +203,11 @@ function display_content(&$a, $update = 0, $load = false) {
}
-
- $o .= conversation($a, $items, 'display', $update, 'client');
+ if ($_COOKIE['jsAvailable'] == 1) {
+ $o .= conversation($a, $items, 'display', $update, 'client');
+ } else {
+ $o .= conversation($a, $items, 'display', $update, 'traditional');
+ }
if($updateable) {
$x = q("UPDATE item SET item_flags = ( item_flags ^ %d )
diff --git a/mod/editblock.php b/mod/editblock.php
index 9c691640b..dcb4b42a7 100644
--- a/mod/editblock.php
+++ b/mod/editblock.php
@@ -56,7 +56,11 @@ function editblock_content(&$a) {
intval($post_id),
intval($owner)
);
-
+ $item_id = q("select * from item_id where service = 'BUILDBLOCK' and iid = %d limit 1",
+ $itm[0]['id']
+ );
+ if($item_id)
+ $block_title = $item_id[0]['sid'];
$plaintext = true;
@@ -88,7 +92,8 @@ function editblock_content(&$a) {
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
'$ispublic' => '&nbsp;', // t('Visible to <strong>everybody</strong>'),
'$geotag' => $geotag,
- '$nickname' => $a->user['nickname']
+ '$nickname' => $a->user['nickname'],
+ '$confirmdelete' => t('Delete block?')
));
@@ -111,6 +116,7 @@ function editblock_content(&$a) {
$o .= replace_macros($tpl,array(
'$return_path' => $rp,
'$action' => 'item',
+ '$webpage' => ITEM_BUILDBLOCK,
'$share' => t('Edit'),
'$upload' => t('Upload photo'),
'$attach' => t('Attach file'),
@@ -132,8 +138,9 @@ function editblock_content(&$a) {
'$pvisit' => 'none',
'$public' => t('Public post'),
'$jotnets' => $jotnets,
- '$title' => htmlspecialchars($itm[0]['title']),
+ '$title' => htmlspecialchars($itm[0]['title'],ENT_COMPAT,'UTF-8'),
'$placeholdertitle' => t('Set title'),
+ '$pagetitle' => $block_title,
'$category' => '',
'$placeholdercategory' => t('Categories (comma-separated list)'),
'$emtitle' => t('Example: bob@example.com, mary@example.com'),
@@ -153,7 +160,7 @@ function editblock_content(&$a) {
$ob = get_observer_hash();
if(($itm[0]['author_xchan'] === $ob) || ($itm[0]['owner_xchan'] === $ob))
- $o .= '<br /><br /><a href="item/drop/' . $itm[0]['id'] . '" >' . t('Delete Block') . '</a><br />';
+ $o .= '<br /><br /><a class="block-delete-link" href="item/drop/' . $itm[0]['id'] . '" >' . t('Delete Block') . '</a><br />';
return $o;
diff --git a/mod/editlayout.php b/mod/editlayout.php
index f8906d981..838a219c9 100644
--- a/mod/editlayout.php
+++ b/mod/editlayout.php
@@ -57,7 +57,11 @@ function editlayout_content(&$a) {
intval($owner)
);
-
+ $item_id = q("select * from item_id where service = 'PDL' and iid = %d limit 1",
+ $itm[0]['id']
+ );
+ if($item_id)
+ $layout_title = $item_id[0]['sid'];
$plaintext = true;
// You may or may not be a local user. This won't work,
@@ -74,7 +78,8 @@ function editlayout_content(&$a) {
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
'$ispublic' => '&nbsp;', // t('Visible to <strong>everybody</strong>'),
'$geotag' => $geotag,
- '$nickname' => $a->user['nickname']
+ '$nickname' => $a->user['nickname'],
+ '$confirmdelete' => t('Delete layout?')
));
@@ -97,6 +102,7 @@ function editlayout_content(&$a) {
$o .= replace_macros($tpl,array(
'$return_path' => $rp,
'$action' => 'item',
+ '$webpage' => ITEM_PDL,
'$share' => t('Edit'),
'$upload' => t('Upload photo'),
'$attach' => t('Attach file'),
@@ -117,8 +123,9 @@ function editlayout_content(&$a) {
'$pvisit' => 'none',
'$public' => t('Public post'),
'$jotnets' => $jotnets,
- '$title' => htmlspecialchars($itm[0]['title']),
+ '$title' => htmlspecialchars($itm[0]['title'],ENT_COMPAT,'UTF-8'),
'$placeholdertitle' => t('Set title'),
+ '$pagetitle' => $layout_title,
'$category' => '',
'$placeholdercategory' => t('Categories (comma-separated list)'),
'$emtitle' => t('Example: bob@example.com, mary@example.com'),
@@ -133,11 +140,11 @@ function editlayout_content(&$a) {
'$feature_expire' => 'none',
'$expires' => t('Set expiration date'),
));
-
+
$ob = get_observer_hash();
if(($itm[0]['author_xchan'] === $ob) || ($itm[0]['owner_xchan'] === $ob))
- $o .= '<br /><br /><a href="item/drop/' . $itm[0]['id'] . '" >' . t('Delete Layout') . '</a><br />';
+ $o .= '<br /><br /><a class="layout-delete-link" href="item/drop/' . $itm[0]['id'] . '" >' . t('Delete Layout') . '</a><br />';
return $o;
diff --git a/mod/editpost.php b/mod/editpost.php
index f25d6d21d..8c4117e7a 100644
--- a/mod/editpost.php
+++ b/mod/editpost.php
@@ -50,6 +50,7 @@ function editpost_content(&$a) {
'$geotag' => $geotag,
'$nickname' => $channel['channel_address'],
'$expireswhen' => t('Expires YYYY-MM-DD HH:MM'),
+ '$confirmdelete' => t('Delete item?'),
));
@@ -91,6 +92,20 @@ function editpost_content(&$a) {
}
+ if($itm[0]['attach']) {
+ $j = json_decode($itm[0]['attach'],true);
+ if($j) {
+ foreach($j as $jj) {
+ $itm[0]['body'] .= "\n" . '[attachment]' . basename($jj['href']) . ',' . $jj['revision'] . '[/attachment]' . "\n";
+ }
+ }
+ }
+
+ $cipher = get_pconfig(get_app()->profile['profile_uid'],'system','default_cipher');
+ if(! $cipher)
+ $cipher = 'aes256';
+
+
$o .= replace_macros($tpl,array(
'$return_path' => $_SESSION['return_url'],
'$action' => 'item',
@@ -114,7 +129,7 @@ function editpost_content(&$a) {
'$pvisit' => 'none',
'$public' => t('Public post'),
'$jotnets' => $jotnets,
- '$title' => htmlspecialchars($itm[0]['title']),
+ '$title' => htmlspecialchars($itm[0]['title'],ENT_COMPAT,'UTF-8'),
'$placeholdertitle' => t('Set title'),
'$category' => $category,
'$placeholdercategory' => t('Categories (comma-separated list)'),
@@ -127,11 +142,14 @@ function editpost_content(&$a) {
'$jotplugins' => $jotplugins,
'$sourceapp' => t($a->sourcename),
'$catsenabled' => $catsenabled,
- '$defexpire' => $itm[0]['expires'],
- '$feature_expire' => 'none',
+ '$defexpire' => datetime_convert('UTC', date_default_timezone_get(),$itm[0]['expires']),
+ '$feature_expire' => ((feature_enabled(get_app()->profile['profile_uid'],'content_expire') && (! $webpage)) ? 'block' : 'none'),
'$expires' => t('Set expiration date'),
- '$feature_encrypt' => 'none',
+ '$feature_encrypt' => ((feature_enabled(get_app()->profile['profile_uid'],'content_encrypt') && (! $webpage)) ? 'block' : 'none'),
'$encrypt' => t('Encrypt text'),
+ '$cipher' => $cipher,
+ '$expiryModalOK' => t('OK'),
+ '$expiryModalCANCEL' => t('Cancel'),
));
return $o;
diff --git a/mod/editwebpage.php b/mod/editwebpage.php
index 840bda336..f11210eea 100644
--- a/mod/editwebpage.php
+++ b/mod/editwebpage.php
@@ -99,8 +99,8 @@ function editwebpage_content(&$a) {
if($layout)
$layoutselect = '<input type="hidden" name="layout_mid" value="' . $layout . '" />';
else
- $layoutselect = layout_select($itm[0]['uid']);
-
+ $layoutselect = layout_select($itm[0]['uid'],$itm[0]['layout_mid']);
+
$o .= replace_macros(get_markup_template('edpost_head.tpl'), array(
'$title' => t('Edit Webpage')
@@ -112,7 +112,8 @@ function editwebpage_content(&$a) {
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
'$ispublic' => '&nbsp;', // t('Visible to <strong>everybody</strong>'),
'$geotag' => $geotag,
- '$nickname' => $a->user['nickname']
+ '$nickname' => $a->user['nickname'],
+ '$confirmdelete' => t('Delete webpage?')
));
@@ -135,7 +136,7 @@ function editwebpage_content(&$a) {
$o .= replace_macros($tpl,array(
'$return_path' => $rp,
- '$webpage' => true,
+ '$webpage' => ITEM_WEBPAGE,
'$placeholdpagetitle' => t('Page link title'),
'$pagetitle' => $page_title,
@@ -164,7 +165,7 @@ function editwebpage_content(&$a) {
'$jotnets' => $jotnets,
'$mimeselect' => $mimeselect,
'$layoutselect' => $layoutselect,
- '$title' => htmlspecialchars($itm[0]['title']),
+ '$title' => htmlspecialchars($itm[0]['title'],ENT_COMPAT,'UTF-8'),
'$placeholdertitle' => t('Set title'),
'$category' => '',
'$placeholdercategory' => t('Categories (comma-separated list)'),
@@ -185,7 +186,7 @@ function editwebpage_content(&$a) {
$ob = get_observer_hash();
if(($itm[0]['author_xchan'] === $ob) || ($itm[0]['owner_xchan'] === $ob))
- $o .= '<br /><br /><a href="item/drop/' . $itm[0]['id'] . '" >' . t('Delete Webpage') . '</a><br />';
+ $o .= '<br /><br /><a class="page-delete-link" href="item/drop/' . $itm[0]['id'] . '" >' . t('Delete Webpage') . '</a><br />';
return $o;
diff --git a/mod/events.php b/mod/events.php
index 265c74fce..2a6067e65 100755
--- a/mod/events.php
+++ b/mod/events.php
@@ -108,7 +108,7 @@ function events_post(&$a) {
$datarray['start'] = $start;
$datarray['finish'] = $finish;
$datarray['summary'] = $summary;
- $datarray['desc'] = $desc;
+ $datarray['description'] = $desc;
$datarray['location'] = $location;
$datarray['type'] = $type;
$datarray['adjust'] = $adjust;
@@ -355,8 +355,7 @@ function events_content(&$a) {
'$new_event'=> array($a->get_baseurl().'/events/new',t('Create New Event'),'',''),
'$previus' => array($a->get_baseurl()."/events/$prevyear/$prevmonth",t('Previous'),'',''),
'$next' => array($a->get_baseurl()."/events/$nextyear/$nextmonth",t('Next'),'',''),
- '$calendar' => cal($y,$m,$links, ' eventcal'),
-
+ '$calendar' => cal($y,$m,$links, ' eventcal'),
'$events' => $events,
diff --git a/mod/fbrowser.php b/mod/fbrowser.php
index baacfe56b..19bd77914 100644
--- a/mod/fbrowser.php
+++ b/mod/fbrowser.php
@@ -45,7 +45,7 @@ function fbrowser_content($a){
$path[]=array($a->get_baseurl()."/fbrowser/image/".$a->argv[2]."/", $album);
}
- $r = q("SELECT `resource_id`, `id`, `filename`, type, min(`scale`) AS `hiq`,max(`scale`) AS `loq`, `desc`
+ $r = q("SELECT `resource_id`, `id`, `filename`, type, min(`scale`) AS `hiq`,max(`scale`) AS `loq`, `description`
FROM `photo` WHERE `uid` = %d $sql_extra
GROUP BY `resource_id` $sql_extra2",
intval(local_user())
diff --git a/mod/filestorage.php b/mod/filestorage.php
index 5e1e61f42..3e53a1e93 100644
--- a/mod/filestorage.php
+++ b/mod/filestorage.php
@@ -1,5 +1,37 @@
<?php
+require_once('include/attach.php');
+
+function filestorage_post(&$a) {
+
+ $channel_id = ((x($_POST,'uid')) ? intval($_POST['uid']) : 0);
+
+ if((! $channel_id) || (! local_user()) || ($channel_id != local_user())) {
+ notice( t('Permission denied.') . EOL);
+ return;
+ }
+
+ $recurse = ((x($_POST,'recurse')) ? intval($_POST['recurse']) : 0);
+ $resource = ((x($_POST,'filehash')) ? notags($_POST['filehash']) : '');
+
+ if(! $resource) {
+ notice(t('Item not found.') . EOL);
+ return;
+ }
+
+ $str_group_allow = perms2str($_REQUEST['group_allow']);
+ $str_contact_allow = perms2str($_REQUEST['contact_allow']);
+ $str_group_deny = perms2str($_REQUEST['group_deny']);
+ $str_contact_deny = perms2str($_REQUEST['contact_deny']);
+
+ attach_change_permissions($channel_id,$resource,$str_contact_allow,$str_group_allow,$str_contact_deny,$str_group_deny,$recurse = false);
+
+}
+
+
+
+
+
function filestorage_content(&$a) {
if(argc() > 1)
@@ -10,81 +42,138 @@ function filestorage_content(&$a) {
return;
}
- $r = q("select channel_id from channel where channel_address = '%s'",
- dbesc($which)
- );
- if($r) {
- $owner = intval($r[0]['channel_id']);
+ $r = q("select * from channel where channel_address = '%s'",
+ dbesc($which)
+ );
+ if($r) {
+ $channel = $r[0];
+ $owner = intval($r[0]['channel_id']);
}
- $observer = $a->get_observer();
- $ob_hash = (($observer) ? $observer['xchan_hash'] : '');
+ $observer = $a->get_observer();
+ $ob_hash = (($observer) ? $observer['xchan_hash'] : '');
- $perms = get_all_perms($owner,$ob_hash);
+ $perms = get_all_perms($owner,$ob_hash);
- if(! $perms['view_storage']) {
- notice( t('Permission denied.') . EOL);
- return;
- }
+ if(! $perms['view_storage']) {
+ notice( t('Permission denied.') . EOL);
+ return;
+ }
-// Since we have ACL'd files in the wild, but don't have ACL here yet, we
-// need to return for anoyne other than the owner, despite the perms check for now.
+ // Since we have ACL'd files in the wild, but don't have ACL here yet, we
+ // need to return for anyone other than the owner, despite the perms check for now.
$is_owner = (((local_user()) && ($owner == local_user())) ? true : false);
- if (! $is_owner) {
- info( t('Permission Denied.') . EOL );
- return;
+ if(! $is_owner) {
+ info( t('Permission Denied.') . EOL );
+ return;
}
-// TODO This will also need to check for files on disk and delete them from there as well as the DB.
- if ((argc() > 3 && argv(3) === 'delete') ? true : false);{
- if(! $perms['write_storage']) {
- notice( t('Permission denied. VS.') . EOL);
- return;
+
+ if(argc() > 3 && argv(3) === 'delete') {
+ if(! $perms['write_storage']) {
+ notice( t('Permission denied.') . EOL);
+ return;
}
- $file = argv(2);
- $r = q("delete from attach where id = '%s' and uid = '%s' limit 1",
+ $file = intval(argv(2));
+ $r = q("select hash from attach where id = %d and uid = %d limit 1",
dbesc($file),
intval($owner)
);
+ if(! $r) {
+ notice( t('File not found.') . EOL);
+ goaway(z_root() . '/filestorage/' . $which);
+ }
-
+ attach_delete($owner,$r[0]['hash']);
+
+ goaway(z_root() . '/filestorage/' . $which);
}
-$r = q("select * from attach where uid = %d order by filename asc",
- intval($owner)
-);
+ if(argc() > 3 && argv(3) === 'edit') {
+ require_once('include/acl_selectors.php');
+ if(! $perms['write_storage']) {
+ notice( t('Permission denied.') . EOL);
+ return;
+ }
+ $file = intval(argv(2));
- $files = null;
+ $r = q("select id, uid, folder, filename, revision, flags, hash, allow_cid, allow_gid, deny_cid, deny_gid from attach where id = %d and uid = %d limit 1",
+ intval($file),
+ intval($owner)
+ );
- if($r) {
- $files = array();
- foreach($r as $rr) {
- $files[$rr['id']][] = array('id' => $rr['id'],'download' => $rr['hash'], 'title' => $rr['filename'], 'size' => $rr['filesize']);
- }
- }
+ $f = $r[0];
+ $channel = $a->get_channel();
- $limit = service_class_fetch ($owner,'attach_upload_limit');
- $r = q("select sum(filesize) as total from attach where uid = %d ",
+ $cloudpath = get_cloudpath($f) . (($f['flags'] & ATTACH_FLAG_DIR) ? '?f=&davguest=1' : '');
+
+ $aclselect_e = populate_acl($f);
+ $is_a_dir = (($f['flags'] & ATTACH_FLAG_DIR) ? true : false);
+
+
+ $o = replace_macros(get_markup_template('attach_edit.tpl'), array(
+ '$header' => t('Edit file permissions'),
+ '$file' => $f,
+ '$cloudpath' => z_root() . '/' . $cloudpath,
+ '$uid' => $channel['channel_id'],
+ '$channelnick' => $channel['channel_address'],
+ '$permissions' => t('Permissions'),
+ '$aclselect' => $aclselect_e,
+ '$recurse' => t('Include all files and sub folders'),
+ '$backlink' => t('Return to file list'),
+ '$isadir' => $is_a_dir,
+ '$cpdesc' => t('Copy/paste this code to attach file to a post'),
+ '$cpldesc' => t('Copy/paste this URL to link file from a web page'),
+ '$submit' => t('Submit')
+
+ ));
+
+ return $o;
+ }
+
+ $r = q("select * from attach where uid = %d order by edited desc",
intval($owner)
);
+
+ $files = null;
+
+ if($r) {
+ $files = array();
+ foreach($r as $rr) {
+ $files[$rr['id']][] = array(
+ 'id' => $rr['id'],
+ 'download' => $rr['hash'],
+ 'title' => $rr['filename'],
+ 'size' => $rr['filesize'],
+ 'rev' => $rr['revision'],
+ 'dir' => (($rr['flags'] & ATTACH_FLAG_DIR) ? true : false)
+ );
+ }
+ }
+
+ $limit = service_class_fetch ($owner,'attach_upload_limit');
+ $r = q("select sum(filesize) as total from attach where aid = %d ",
+ intval($channel['channel_account_id'])
+ );
$used = $r[0]['total'];
- $url = z_root() . "/filestorage/" . $which;
- return $o . replace_macros(get_markup_template("filestorage.tpl"), array(
+ $url = z_root() . "/filestorage/" . $which;
+ return $o . replace_macros(get_markup_template("filestorage.tpl"), array(
'$baseurl' => $url,
'$download' => t('Download'),
'$files' => $files,
'$channel' => $which,
+ '$edit' => t('Edit'),
'$delete' => t('Delete'),
'$used' => $used,
'$usedlabel' => t('Used: '),
+ '$directory' => t('[directory]'),
'$limit' => $limit,
'$limitlabel' => t('Limit: '),
- ));
+ ));
-
}
diff --git a/mod/follow.php b/mod/follow.php
index 364fe76b9..962bb71a7 100644
--- a/mod/follow.php
+++ b/mod/follow.php
@@ -30,7 +30,7 @@ function follow_init(&$a) {
proc_run('php','include/onepoll.php',$result['abook']['abook_id']);
- goaway(z_root() . '/connections/' . $result['abook']['abook_id']);
+ goaway(z_root() . '/connedit/' . $result['abook']['abook_id']);
}
diff --git a/mod/group.php b/mod/group.php
index 5a34ab6fb..15e4ff2a3 100644
--- a/mod/group.php
+++ b/mod/group.php
@@ -2,12 +2,6 @@
require_once('include/group.php');
-function group_aside(&$a) {
- if(local_user()) {
- $a->set_widget('groups_edit',group_side('connections','group',false,(($a->argc > 1) ? intval($a->argv[1]) : 0)));
- }
-}
-
function group_post(&$a) {
@@ -36,7 +30,7 @@ function group_post(&$a) {
if((argc() == 2) && (intval(argv(1)))) {
check_form_security_token_redirectOnErr('/group', 'group_edit');
- $r = q("SELECT * FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ $r = q("SELECT * FROM `groups` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval(argv(1)),
intval(local_user())
);
@@ -50,7 +44,7 @@ function group_post(&$a) {
$public = intval($_POST['public']);
if((strlen($groupname)) && (($groupname != $group['name']) || ($public != $group['visible']))) {
- $r = q("UPDATE `group` SET `name` = '%s', visible = %d WHERE `uid` = %d AND `id` = %d LIMIT 1",
+ $r = q("UPDATE `groups` SET `name` = '%s', visible = %d WHERE `uid` = %d AND `id` = %d LIMIT 1",
dbesc($groupname),
intval($public),
intval(local_user()),
@@ -103,7 +97,7 @@ function group_content(&$a) {
check_form_security_token_redirectOnErr('/group', 'group_drop', 't');
if(intval(argv(2))) {
- $r = q("SELECT `name` FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ $r = q("SELECT `name` FROM `groups` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval(argv(2)),
intval(local_user())
);
@@ -123,10 +117,10 @@ function group_content(&$a) {
check_form_security_token_ForbiddenOnErr('group_member_change', 't');
- $r = q("SELECT abook_xchan from abook where abook_xchan = '%s' and abook_channel = %d and not (abook_flags & %d) and not (abook_flags & %d) and not (abook_flags & %d) limit 1",
+ $r = q("SELECT abook_xchan from abook where abook_xchan = '%s' and abook_channel = %d and not (xchan_flags & %d) and not (abook_flags & %d) and not (abook_flags & %d) limit 1",
dbesc(argv(2)),
intval(local_user()),
- intval(ABOOK_FLAG_SELF),
+ intval(XCHAN_FLAGS_DELETED),
intval(ABOOK_FLAG_BLOCKED),
intval(ABOOK_FLAG_PENDING)
);
@@ -138,7 +132,7 @@ function group_content(&$a) {
if((argc() > 1) && (intval(argv(1)))) {
require_once('include/acl_selectors.php');
- $r = q("SELECT * FROM `group` WHERE `id` = %d AND `uid` = %d AND `deleted` = 0 LIMIT 1",
+ $r = q("SELECT * FROM `groups` WHERE `id` = %d AND `uid` = %d AND `deleted` = 0 LIMIT 1",
intval(argv(1)),
intval(local_user())
);
@@ -216,10 +210,10 @@ function group_content(&$a) {
group_rmv_member(local_user(),$group['name'],$member['xchan_hash']);
}
- $r = q("SELECT abook.*, xchan.* FROM `abook` left join xchan on abook_xchan = xchan_hash WHERE `abook_channel` = %d AND not (abook_flags & %d) and not (abook_flags & %d) and not (abook_flags & %d) order by xchan_name asc",
+ $r = q("SELECT abook.*, xchan.* FROM `abook` left join xchan on abook_xchan = xchan_hash WHERE `abook_channel` = %d AND not (abook_flags & %d) and not (xchan_flags & %d) and not (abook_flags & %d) order by xchan_name asc",
intval(local_user()),
intval(ABOOK_FLAG_BLOCKED),
- intval(ABOOK_FLAG_SELF),
+ intval(XCHAN_FLAGS_DELETED),
intval(ABOOK_FLAG_PENDING)
);
diff --git a/mod/hcard.php b/mod/hcard.php
deleted file mode 100644
index ab2fa88a1..000000000
--- a/mod/hcard.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-function hcard_init(&$a) {
-
- $blocked = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false);
-
- if($a->argc > 1)
- $which = $a->argv[1];
- else {
- notice( t('No profile') . EOL );
- $a->error = 404;
- return;
- }
-
- $profile = 0;
- if((local_user()) && ($a->argc > 2) && ($a->argv[2] === 'view')) {
- $which = $a->user['nickname'];
- $profile = $a->argv[1];
- }
-
- profile_load($a,$which,$profile);
-
- if((x($a->profile,'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY)) {
- $a->page['htmlhead'] .= '<meta name="friendica.community" content="true" />';
- }
- if(x($a->profile,'openidserver'))
- $a->page['htmlhead'] .= '<link rel="openid.server" href="' . $a->profile['openidserver'] . '" />' . "\r\n";
- if(x($a->profile,'openid')) {
- $delegate = ((strstr($a->profile['openid'],'://')) ? $a->profile['openid'] : 'http://' . $a->profile['openid']);
- $a->page['htmlhead'] .= '<link rel="openid.delegate" href="' . $delegate . '" />' . "\r\n";
- }
-
- if(! $blocked) {
- $keywords = ((x($a->profile,'keywords')) ? $a->profile['keywords'] : '');
- $keywords = str_replace(array(',',' ',',,'),array(' ',',',','),$keywords);
- if(strlen($keywords))
- $a->page['htmlhead'] .= '<meta name="keywords" content="' . $keywords . '" />' . "\r\n" ;
- }
-
- $a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . $a->get_baseurl() . '/dfrn_poll/' . $which .'" />' . "\r\n" ;
- $uri = urlencode('acct:' . $a->profile['nickname'] . '@' . $a->get_hostname() . (($a->path) ? '/' . $a->path : ''));
- $a->page['htmlhead'] .= '<link rel="lrdd" type="application/xrd+xml" href="' . $a->get_baseurl() . '/xrd/?uri=' . $uri . '" />' . "\r\n";
- header('Link: <' . $a->get_baseurl() . '/xrd/?uri=' . $uri . '>; rel="lrdd"; type="application/xrd+xml"', false);
-
- $dfrn_pages = array('request', 'confirm', 'notify', 'poll');
- foreach($dfrn_pages as $dfrn)
- $a->page['htmlhead'] .= "<link rel=\"dfrn-{$dfrn}\" href=\"".$a->get_baseurl()."/dfrn_{$dfrn}/{$which}\" />\r\n";
-
-}
-
-function hcard_aside(&$a) {
- profile_create_sidebar($a);
-}
diff --git a/mod/help.php b/mod/help.php
index e78f9e61c..bbfeb9a6c 100644
--- a/mod/help.php
+++ b/mod/help.php
@@ -32,6 +32,8 @@ function help_content(&$a) {
global $lang;
+ $doctype = 'markdown';
+
require_once('library/markdown.php');
$text = '';
@@ -41,11 +43,25 @@ function help_content(&$a) {
$a->page['title'] = t('Help:') . ' ' . str_replace('-',' ',notags(argv(1)));
}
if(! $text) {
+ $text = load_doc_file('doc/' . $a->argv[1] . '.bb');
+ if($text)
+ $doctype = 'bbcode';
+ $a->page['title'] = t('Help:') . ' ' . str_replace('-',' ',notags(argv(1)));
+ }
+ if(! $text) {
+ $text = load_doc_file('doc/' . $a->argv[1] . '.html');
+ if($text)
+ $doctype = 'html';
+ $a->page['title'] = t('Help:') . ' ' . str_replace('-',' ',notags(argv(1)));
+ }
+
+ if(! $text) {
$text = load_doc_file('doc/Site.md');
$a->page['title'] = t('Help');
}
if(! $text) {
- $text = load_doc_file('doc/Home.md');
+ $doctype = 'bbcode';
+ $text = load_doc_file('doc/main.bb');
$a->page['title'] = t('Help');
}
@@ -58,15 +74,20 @@ function help_content(&$a) {
}
$text = preg_replace_callback("/#include (.*?)\;/ism", 'preg_callback_help_include', $text);
-
-
- return Markdown($text);
+
+ if($doctype === 'html')
+ return $text;
+ if($doctype === 'markdown')
+ return Markdown($text);
+ if($doctype === 'bbcode') {
+ require_once('include/bbcode.php');
+ return bbcode($text);
+ }
}
function preg_callback_help_include($matches) {
- print_r($matches);
if($matches[1])
return str_replace($matches[0],load_doc_file($matches[1]),$matches[0]);
diff --git a/mod/home.php b/mod/home.php
index edcaa938d..05626dcb5 100644
--- a/mod/home.php
+++ b/mod/home.php
@@ -1,6 +1,9 @@
<?php
-if(! function_exists('home_init')) {
+require_once('include/items.php');
+require_once('include/conversation.php');
+
+
function home_init(&$a) {
$ret = array();
@@ -20,10 +23,9 @@ function home_init(&$a) {
goaway(z_root() . '/new_channel');
}
-}}
+}
-if(! function_exists('home_content')) {
function home_content(&$a) {
$o = '';
@@ -33,56 +35,62 @@ function home_content(&$a) {
if(x($_SESSION,'mobile_theme'))
unset($_SESSION['mobile_theme']);
-$channel_address = get_config("system", "site_channel" );
+ $channel_address = get_config("system", "site_channel" );
if ($channel_address){
-require_once('include/items.php');
-require_once('include/conversation.php');
-
-
-//We can do better, but until we figure out auto-linkification, let's keep things simple
- $page_id = 'home';
-
- $u = q("select channel_id from channel where channel_address = '%s' limit 1",
- dbesc($channel_address)
- );
+ // We can do better, but until we figure out auto-linkification, let's keep things simple
+
+ $page_id = 'home';
+
+ $u = q("select channel_id from channel where channel_address = '%s' limit 1",
+ dbesc($channel_address)
+ );
+
+ if(! $u) {
+ notice( t('Channel not found.') . EOL);
+ return;
+ }
+
+ $r = q("select item.* from item left join item_id on item.id = item_id.iid
+ where item.uid = %d and sid = '%s' and service = 'WEBPAGE' and
+ item_restrict = %d limit 1",
+ intval($u[0]['channel_id']),
+ dbesc($page_id),
+ intval(ITEM_WEBPAGE)
+ );
+
+ if(! $r) {
+ notice( t('Item not found.') . EOL);
+ return;
+ }
+
+ xchan_query($r);
+ $r = fetch_post_tags($r,true);
+ $a->profile = array('profile_uid' => $u[0]['channel_id']);
+ $o .= prepare_page($r[0]);
+ return $o;
+ }
- if(! $u) {
- notice( t('Channel not found.') . EOL);
- return;
+ if(get_config('system','projecthome')) {
+ $o .= file_get_contents('assets/home.html');
+ $a->page['template'] = 'full';
+ return $o;
}
- $r = q("select item.* from item left join item_id on item.id = item_id.iid
- where item.uid = %d and sid = '%s' and service = 'WEBPAGE' and
- item_restrict = %d limit 1",
- intval($u[0]['channel_id']),
- dbesc($page_id),
- intval(ITEM_WEBPAGE)
- );
-
- if(! $r) {
- notice( t('Item not found.') . EOL);
- return;
+ if(file_exists('home.html')) {
+ $o .= file_get_contents('home.html');
}
+ else {
- xchan_query($r);
- $r = fetch_post_tags($r,true);
- $a->profile = array('profile_uid' => $u[0]['channel_id']);
- $o .= prepare_page($r[0]);
+ // If there's no site channel or home contents configured, fallback to the old behaviour
-}
-
-// If there's no site channel specified, fallback to the old behaviour
- else { $o .= '<h1>' . ((x($a->config,'sitename')) ? sprintf( t("Welcome to %s") ,$a->config['sitename']) : "" ) . '</h1>';
- if(file_exists('home.html'))
- $o .= file_get_contents('home.html');
-}
-
- if (!$a->config['system']['no_login_on_homepage'])
- $o .= login(($a->config['system']['register_policy'] == REGISTER_CLOSED) ? 0 : 1);
-
- call_hooks("home_content",$o);
- return $o;
-}
+ $sitename = get_config('system','sitename');
+ if($sitename)
+ $o .= '<h1>' . sprintf( t("Welcome to %s") ,$sitename) . '</h1>';
+ if (! $a->config['system']['no_login_on_homepage'])
+ $o .= login(($a->config['system']['register_policy'] == REGISTER_CLOSED) ? 0 : 1);
+ }
+ call_hooks('home_content',$o);
+ return $o;
}
diff --git a/mod/import.php b/mod/import.php
index 94d41455d..5b3b53156 100644
--- a/mod/import.php
+++ b/mod/import.php
@@ -314,7 +314,7 @@ function import_post(&$a) {
. implode("', '", array_values($group))
. "')" );
}
- $r = q("select * from `group` where uid = %d",
+ $r = q("select * from `groups` where uid = %d",
intval($channel['channel_id'])
);
if($r) {
diff --git a/mod/invite.php b/mod/invite.php
index e23ed7d2a..9e37d1e6d 100644
--- a/mod/invite.php
+++ b/mod/invite.php
@@ -42,6 +42,8 @@ function invite_post(&$a) {
foreach($recips as $recip) {
$recip = trim($recip);
+ if(! $recip)
+ continue;
if(! valid_email($recip)) {
notice( sprintf( t('%s : Not a valid email address.'), $recip) . EOL);
diff --git a/mod/item.php b/mod/item.php
index 7f881d28d..2feb64a37 100644
--- a/mod/item.php
+++ b/mod/item.php
@@ -44,7 +44,7 @@ function item_post(&$a) {
call_hooks('post_local_start', $_REQUEST);
-// logger('postvars ' . print_r($_REQUEST,true), LOGGER_DATA);
+// logger('postvars ' . print_r($_REQUEST,true), LOGGER_DATA);
$api_source = ((x($_REQUEST,'api_source') && $_REQUEST['api_source']) ? true : false);
@@ -66,8 +66,8 @@ function item_post(&$a) {
$owner_hash = null;
- $message_id = ((x($_REQUEST,'message_id') && $api_source) ? strip_tags($_REQUEST['message_id']) : '');
-
+ $message_id = ((x($_REQUEST,'message_id') && $api_source) ? strip_tags($_REQUEST['message_id']) : '');
+ $created = ((x($_REQUEST,'created')) ? datetime_convert('UTC','UTC',$_REQUEST['created']) : datetime_convert());
$profile_uid = ((x($_REQUEST,'profile_uid')) ? intval($_REQUEST['profile_uid']) : 0);
$post_id = ((x($_REQUEST,'post_id')) ? intval($_REQUEST['post_id']) : 0);
$app = ((x($_REQUEST,'source')) ? strip_tags($_REQUEST['source']) : '');
@@ -79,6 +79,7 @@ function item_post(&$a) {
$layout_mid = ((x($_REQUEST,'layout_mid')) ? escape_tags($_REQUEST['layout_mid']): '');
$plink = ((x($_REQUEST,'permalink')) ? escape_tags($_REQUEST['permalink']) : '');
+
/*
Check service class limits
*/
@@ -268,12 +269,16 @@ function item_post(&$a) {
$coord = $orig_post['coord'];
$verb = $orig_post['verb'];
$app = $orig_post['app'];
- $title = escape_tags(trim($_REQUEST['title']));
+ $title = $_REQUEST['title'];
$body = $_REQUEST['body'];
$private = $orig_post['item_private'];
$item_flags = $orig_post['item_flags'];
$item_restrict = $orig_post['item_restrict'];
$postopts = $orig_post['postopts'];
+ $created = $orig_post['created'];
+ $mid = $orig_post['mid'];
+ $parent_mid = $orig_post['parent_mid'];
+ $plink = $orig_post['plink'];
}
else {
@@ -417,10 +422,20 @@ function item_post(&$a) {
/**
* fix naked links by passing through a callback to see if this is a red site
- * (already known to us) which will get a zrl, otherwise link with url
+ * (already known to us) which will get a zrl, otherwise link with url, add bookmark tag to both.
+ * First protect any url inside certain bbcode tags so we don't double link it.
*/
- $body = preg_replace_callback("/([^\]\='".'"'."]|^)(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\@\_\~\#\%\$\!\+\,]+)/ism", 'red_zrl_callback', $body);
+ $body = preg_replace_callback('/\[code(.*?)\[\/(code)\]/ism','red_escape_codeblock',$body);
+ $body = preg_replace_callback('/\[url(.*?)\[\/(url)\]/ism','red_escape_codeblock',$body);
+ $body = preg_replace_callback('/\[zrl(.*?)\[\/(zrl)\]/ism','red_escape_codeblock',$body);
+
+ $body = preg_replace_callback("/([^\]\='".'"'."]|^|\#\^)(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\@\_\~\#\%\$\!\+\,]+)/ism", 'red_zrl_callback', $body);
+
+ $body = preg_replace_callback('/\[\$b64zrl(.*?)\[\/(zrl)\]/ism','red_unescape_codeblock',$body);
+ $body = preg_replace_callback('/\[\$b64url(.*?)\[\/(url)\]/ism','red_unescape_codeblock',$body);
+ $body = preg_replace_callback('/\[\$b64code(.*?)\[\/(code)\]/ism','red_unescape_codeblock',$body);
+
/**
*
@@ -438,6 +453,16 @@ function item_post(&$a) {
* the post and we should keep it private. If it's encrypted we have no way of knowing
* so we'll set the permissions regardless and realise that the media may not be
* referenced in the post.
+ *
+ * What is preventing us from being able to upload photos into comments is dealing with
+ * the photo and attachment permissions, since we don't always know who was in the
+ * distribution for the top level post.
+ *
+ * We might be able to provide this functionality with a lot of fiddling:
+ * - if the top level post is public (make the photo public)
+ * - if the top level post was written by us or a wall post that belongs to us (match the top level post)
+ * - if the top level post has privacy mentions, add those to the permissions.
+ * - otherwise disallow the photo *or* make the photo public. This is the part that gets messy.
*/
if(! $preview) {
@@ -474,6 +499,7 @@ function item_post(&$a) {
$private_forum = false;
if(count($tags)) {
+ $first_access_tag = true;
foreach($tags as $tag) {
// If we already tagged 'Robert Johnson', don't try and tag 'Robert'.
@@ -489,8 +515,24 @@ function item_post(&$a) {
if($fullnametagged)
continue;
- $success = handle_tag($a, $body, $inform, $str_tags, (local_user()) ? local_user() : $profile_uid , $tag);
- logger('handle_tag: ' . print_r($success,tue));
+ $success = handle_tag($a, $body, $access_tag, $str_tags, (local_user()) ? local_user() : $profile_uid , $tag);
+ logger('handle_tag: ' . print_r($success,tue), LOGGER_DEBUG);
+ if(($access_tag) && (! $parent_item)) {
+ logger('access_tag: ' . $tag . ' ' . print_r($access_tag,true), LOGGER_DEBUG);
+ if ($first_access_tag) {
+ $str_contact_allow = '';
+ $str_group_allow = '';
+ $first_access_tag = false;
+ }
+ if(strpos($access_tag,'cid:') === 0) {
+ $str_contact_allow .= '<' . substr($access_tag,4) . '>';
+ $access_tag = '';
+ }
+ elseif(strpos($access_tag,'gid:') === 0) {
+ $str_group_allow .= '<' . substr($access_tag,4) . '>';
+ $access_tag = '';
+ }
+ }
if($success['replaced']) {
$tagged[] = $tag;
@@ -502,10 +544,10 @@ function item_post(&$a) {
'url' => $success['url']
);
}
- if(is_array($success['contact']) && intval($success['contact']['prv'])) {
- $private_forum = true;
- $private_id = $success['contact']['id'];
- }
+// if(is_array($success['contact']) && intval($success['contact']['prv'])) {
+// $private_forum = true;
+// $private_id = $success['contact']['id'];
+// }
}
}
@@ -559,7 +601,7 @@ function item_post(&$a) {
}
$item_flags |= ITEM_UNSEEN;
- $item_restrict |= ITEM_VISIBLE;
+// $item_restrict |= ITEM_VISIBLE;
if($post_type === 'wall' || $post_type === 'wall-comment')
$item_flags = $item_flags | ITEM_WALL;
@@ -579,9 +621,13 @@ function item_post(&$a) {
$notify_type = (($parent) ? 'comment-new' : 'wall-new' );
- $mid = (($message_id) ? $message_id : item_message_id());
+ if(! $mid) {
+ $mid = (($message_id) ? $message_id : item_message_id());
+ }
+ if(! $parent_mid) {
+ $parent_mid = $mid;
+ }
- $parent_mid = $mid;
if($parent_item)
$parent_mid = $parent_item['mid'];
@@ -593,16 +639,19 @@ function item_post(&$a) {
$datarray = array();
if(! $parent) {
- $datarray['parent_mid'] = $mid;
$item_flags = $item_flags | ITEM_THREAD_TOP;
}
+
+ if ((! $plink) && ($item_flags & ITEM_THREAD_TOP)) {
+ $plink = z_root() . '/channel/' . $channel['channel_address'] . '/?f=&mid=' . $mid;
+ }
$datarray['aid'] = $channel['channel_account_id'];
$datarray['uid'] = $profile_uid;
$datarray['owner_xchan'] = (($owner_hash) ? $owner_hash : $owner_xchan['xchan_hash']);
$datarray['author_xchan'] = $observer['xchan_hash'];
- $datarray['created'] = datetime_convert();
+ $datarray['created'] = $created;
$datarray['edited'] = datetime_convert();
$datarray['expires'] = $expires;
$datarray['commented'] = datetime_convert();
@@ -639,6 +688,7 @@ function item_post(&$a) {
$datarray['owner'] = $owner_xchan;
$datarray['author'] = $observer;
+ $datarray['attach'] = json_encode($datarray['attach']);
$o = conversation($a,array($datarray),'search',false,'preview');
logger('preview: ' . $o, LOGGER_DEBUG);
echo json_encode(array('preview' => $o));
@@ -692,6 +742,8 @@ function item_post(&$a) {
item_store_update($datarray,$execflag);
+ update_remote_id($channel,$post_id,$webpage,$pagetitle,$namespace,$remote_id,$mid);
+
proc_run('php', "include/notifier.php", 'edit_post', $post_id);
if((x($_REQUEST,'return')) && strlen($return_path)) {
logger('return: ' . $return_path);
@@ -795,34 +847,8 @@ function item_post(&$a) {
// NOTREACHED
}
- $page_type = '';
-
- if($webpage & ITEM_WEBPAGE)
- $page_type = 'WEBPAGE';
- elseif($webpage & ITEM_BUILDBLOCK)
- $page_type = 'BUILDBLOCK';
- elseif($webpage & ITEM_PDL)
- $page_type = 'PDL';
- elseif($namespace && $remote_id) {
- $page_type = $namespace;
- $pagetitle = $remote_id;
- }
-
- if($page_type) {
- // store page info as an alternate message_id so we can access it via
- // https://sitename/page/$channelname/$pagetitle
- // if no pagetitle was given or it couldn't be transliterated into a url, use the first
- // sixteen bytes of the mid - which makes the link portable and not quite as daunting
- // as the entire mid. If it were the post_id the link would be less portable.
-
- q("insert into item_id ( iid, uid, sid, service ) values ( %d, %d, '%s','%s' )",
- intval($post_id),
- intval($channel['channel_id']),
- dbesc(($pagetitle) ? $pagetitle : substr($mid,0,16)),
- dbesc($page_type)
- );
- }
+ update_remote_id($channel,$post_id,$webpage,$pagetitle,$namespace,$remote_id,$mid);
$datarray['id'] = $post_id;
$datarray['llink'] = $a->get_baseurl() . '/display/' . $channel['channel_address'] . '/' . $post_id;
@@ -875,35 +901,47 @@ function item_content(&$a) {
* the appropiate link.
*
* @param unknown_type $body the text to replace the tag in
- * @param unknown_type $inform a comma-seperated string containing everybody to inform
+ * @param unknown_type $access_tag - used to return tag ACL exclusions e.g. @!foo
* @param unknown_type $str_tags string to add the tag to
* @param unknown_type $profile_uid
* @param unknown_type $tag the tag to replace
*
* @return boolean true if replaced, false if not replaced
*/
-function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) {
+function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag) {
$replaced = false;
$r = null;
- $termtype = ((strpos($tag,'#') === 0) ? TERM_HASHTAG : TERM_UNKNOWN);
- $termtype = ((strpos($tag,'@') === 0) ? TERM_MENTION : $termtype);
+
+ $termtype = ((strpos($tag,'#') === 0) ? TERM_HASHTAG : TERM_UNKNOWN);
+ $termtype = ((strpos($tag,'@') === 0) ? TERM_MENTION : $termtype);
+ $termtype = ((strpos($tag,'#^[') === 0) ? TERM_BOOKMARK : $termtype);
+
//is it a hash tag?
if(strpos($tag,'#') === 0) {
- //if the tag is replaced...
- if(strpos($tag,'[zrl='))
+ if(strpos($tag,'#^[') === 0) {
+ if(preg_match('/#\^\[(url|zrl)(.*?)\](.*?)\[\/(url|zrl)\]/',$tag,$match)) {
+ $basetag = $match[3];
+ $url = ((substr($match[2],0,1) === '=') ? substr($match[2],1) : $match[3]);
+ $replaced = true;
+
+ }
+ }
+ // if the tag is already replaced...
+ elseif(strpos($tag,'[zrl=')) {
//...do nothing
return $replaced;
+ }
if($tag == '#getzot') {
- $basetag = 'getzot';
- $url = 'http://getzot.com';
+ $basetag = 'getzot';
+ $url = 'https://redmatrix.me';
$newtag = '#[zrl=' . $url . ']' . $basetag . '[/zrl]';
$body = str_replace($tag,$newtag,$body);
$replaced = true;
}
- else {
+ if(! $replaced) {
//base tag has the tags name only
$basetag = str_replace('_',' ',substr($tag,1));
//create text for link
@@ -922,107 +960,105 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) {
}
return array('replaced' => $replaced, 'termtype' => $termtype, 'term' => $basetag, 'url' => $url, 'contact' => $r[0]);
}
+
//is it a person tag?
if(strpos($tag,'@') === 0) {
+ $exclusive = ((strpos($tag,'!') === 1) ? true : false);
//is it already replaced?
if(strpos($tag,'[zrl='))
return $replaced;
$stat = false;
//get the person's name
- $name = substr($tag,1);
- //is it a link or a full dfrn address?
- if((strpos($name,'@')) || (strpos($name,'http://'))) {
- $newname = $name;
- //get the profile links
- $links = @lrdd($name);
- if(count($links)) {
- //for all links, collect how is to inform and how's profile is to link
- foreach($links as $link) {
- if($link['@attributes']['rel'] === 'http://webfinger.net/rel/profile-page')
- $profile = $link['@attributes']['href'];
- if($link['@attributes']['rel'] === 'salmon') {
- if(strlen($inform))
- $inform .= ',';
- $inform .= 'url:' . str_replace(',','%2c',$link['@attributes']['href']);
- }
- }
- }
- } else { //if it is a name rather than an address
- $newname = $name;
- $alias = '';
- $tagcid = 0;
- //is it some generated name?
- if(strrpos($newname,'+')) {
- //get the id
- $tagcid = intval(substr($newname,strrpos($newname,'+') + 1));
- //remove the next word from tag's name
- if(strpos($name,' ')) {
- $name = substr($name,0,strpos($name,' '));
- }
+ $name = substr($tag,(($exclusive) ? 2 : 1));
+ $newname = $name;
+ $alias = '';
+ $tagcid = 0;
+
+ // is it some generated name?
+
+ if(strrpos($newname,'+')) {
+ //get the id
+ $tagcid = intval(substr($newname,strrpos($newname,'+') + 1));
+ //remove the next word from tag's name
+ if(strpos($name,' ')) {
+ $name = substr($name,0,strpos($name,' '));
}
- if($tagcid) { //if there was an id
- //select contact with that id from the logged in user's contact list
+ if($tagcid) { // if there was an id
+ // select channel with that id from the logged in user's address book
$r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash
WHERE abook_id = %d AND abook_channel = %d LIMIT 1",
intval($tagcid),
intval($profile_uid)
);
-
}
- else {
- $newname = str_replace('_',' ',$name);
+ }
- //select someone from this user's contacts by name
- $r = q("SELECT * FROM abook left join xchan on abook_xchan - xchan_hash
- WHERE xchan_name = '%s' AND abook_channel = %d LIMIT 1",
- dbesc($newname),
- intval($profile_uid)
- );
+ else {
+ $newname = str_replace('_',' ',$name);
- if(! $r) {
- //select someone by attag or nick and the name passed in
-/* $r = q("SELECT * FROM `contact` WHERE `attag` = '%s' OR `nick` = '%s' AND `uid` = %d ORDER BY `attag` DESC LIMIT 1",
- dbesc($name),
- dbesc($name),
- intval($profile_uid)
- );
-*/ }
- }
-/* } elseif(strstr($name,'_') || strstr($name,' ')) { //no id
- //get the real name
- $newname = str_replace('_',' ',$name);
- //select someone from this user's contacts by name
- $r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
- dbesc($newname),
- intval($profile_uid)
- );
- } else {
+ //select someone from this user's contacts by name
+ $r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash
+ WHERE xchan_name = '%s' AND abook_channel = %d LIMIT 1",
+ dbesc($newname),
+ intval($profile_uid)
+ );
+
+ if(! $r) {
//select someone by attag or nick and the name passed in
- $r = q("SELECT * FROM `contact` WHERE `attag` = '%s' OR `nick` = '%s' AND `uid` = %d ORDER BY `attag` DESC LIMIT 1",
- dbesc($name),
- dbesc($name),
+ $r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash
+ WHERE xchan_addr like ('%s') AND abook_channel = %d LIMIT 1",
+ dbesc($newname . '@%'),
intval($profile_uid)
);
- }*/
- //$r is set, if someone could be selected
- if($r) {
- $profile = $r[0]['xchan_url'];
- $newname = $r[0]['xchan_name'];
- //add person's id to $inform
- if(strlen($inform))
- $inform .= ',';
- $inform .= 'cid:' . $r[0]['id'];
}
}
+
+ // $r is set, if someone could be selected
+
+ if($r) {
+ $profile = $r[0]['xchan_url'];
+ $newname = $r[0]['xchan_name'];
+ //add person's id to $access_tag if exclusive
+ if($exclusive) {
+ $access_tag .= 'cid:' . $r[0]['xchan_hash'];
+ }
+ }
+ else {
+ // check for a group/collection exclusion tag
+
+ // note that we aren't setting $replaced even though we're replacing text.
+ // This tag isn't going to get a term attached to it. It's only used for
+ // access control. The link points to out own channel just so it doesn't look
+ // weird - as all the other tags are linked to something.
+
+ if(local_user() && local_user() == $profile_uid) {
+ require_once('include/group.php');
+ $grp = group_byname($profile_uid,$name);
+ if($grp) {
+ $g = q("select hash from groups where id = %d and visible = 1 limit 1",
+ intval($grp[0]['id'])
+ );
+ if($g && $exclusive) {
+ $access_tag .= 'gid:' . $g[0]['hash'];
+ }
+ $channel = get_app()->get_channel();
+ if($channel) {
+ $newtag = '@' . (($exclusive) ? '!' : '') . '[zrl=' . z_root() . '/channel/' . $channel['channel_address'] . ']' . $newname . '[/zrl]';
+ $body = str_replace('@' . (($exclusive) ? '!' : '') . $name, $newtag, $body);
+ }
+ }
+ }
+ }
+
//if there is an url for this persons profile
if(isset($profile)) {
$replaced = true;
//create profile link
$profile = str_replace(',','%2c',$profile);
$url = $profile;
- $newtag = '@[zrl=' . $profile . ']' . $newname . '[/zrl]';
- $body = str_replace('@' . $name, $newtag, $body);
+ $newtag = '@' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . '[/zrl]';
+ $body = str_replace('@' . (($exclusive) ? '!' : '') . $name, $newtag, $body);
//append tag to str_tags
if(! stristr($str_tags,$newtag)) {
if(strlen($str_tags))
@@ -1031,8 +1067,7 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) {
}
}
}
-
- return array('replaced' => $replaced, 'termtype' => $termtype, 'term' => $newname, 'url' => $url, 'contact' => $r[0]);
+ return array('replaced' => $replaced, 'termtype' => $termtype, 'term' => $newname, 'url' => $url, 'contact' => $r[0]);
}
@@ -1135,8 +1170,9 @@ function item_check_service_class($channel_id,$iswebpage) {
if ($iswebpage) {
$r = q("select count(i.id) as total from item i
right join channel c on (i.author_xchan=c.channel_hash and i.uid=c.channel_id )
- and i.parent=i.id and (i.item_restrict & %d) and i.uid= %d ",
+ and i.parent=i.id and (i.item_restrict & %d) and not (i.item_restrict & %d) and i.uid= %d ",
intval(ITEM_WEBPAGE),
+ intval(ITEM_DELETED),
intval($channel_id)
);
}
diff --git a/mod/layouts.php b/mod/layouts.php
index b1f53d4d8..9ed349850 100644
--- a/mod/layouts.php
+++ b/mod/layouts.php
@@ -43,9 +43,9 @@ function layouts_content(&$a) {
return;
}
- if(local_user() && local_user() == $owner) {
- $a->set_widget('design',design_tools());
- }
+// if(local_user() && local_user() == $owner) {
+ // $a->set_widget('design',design_tools());
+ // }
$tabs = array(
array(
diff --git a/mod/like.php b/mod/like.php
index 84b0a6592..007d1aee1 100755
--- a/mod/like.php
+++ b/mod/like.php
@@ -171,6 +171,7 @@ function like_content(&$a) {
$arr['deny_cid'] = $item['deny_cid'];
$arr['deny_gid'] = $item['deny_gid'];
+
$post = item_store($arr);
$post_id = $post['item_id'];
diff --git a/mod/lockview.php b/mod/lockview.php
index 7dda85623..32e7a3afb 100644
--- a/mod/lockview.php
+++ b/mod/lockview.php
@@ -49,7 +49,7 @@ function lockview_content(&$a) {
stringify_array_elms($deny_users,true);
if(count($allowed_groups)) {
- $r = q("SELECT name FROM `group` WHERE hash IN ( " . implode(', ', $allowed_groups) . " )");
+ $r = q("SELECT name FROM `groups` WHERE hash IN ( " . implode(', ', $allowed_groups) . " )");
if($r)
foreach($r as $rr)
$l[] = '<b>' . $rr['name'] . '</b>';
@@ -61,7 +61,7 @@ function lockview_content(&$a) {
$l[] = $rr['xchan_name'];
}
if(count($deny_groups)) {
- $r = q("SELECT name FROM `group` WHERE hash IN ( " . implode(', ', $deny_groups) . " )");
+ $r = q("SELECT name FROM `groups` WHERE hash IN ( " . implode(', ', $deny_groups) . " )");
if($r)
foreach($r as $rr)
$l[] = '<b><strike>' . $rr['name'] . '</strike></b>';
diff --git a/mod/magic.php b/mod/magic.php
index 03d09e70d..aead559a7 100644
--- a/mod/magic.php
+++ b/mod/magic.php
@@ -33,21 +33,28 @@ function magic_init(&$a) {
if(! $x) {
- // Somebody new? Finger them if they've never been seen here before
-
- if($addr) {
- $ret = zot_finger($addr,null);
- if($ret['success']) {
- $j = json_decode($ret['body'],true);
- if($j)
- import_xchan($j);
-
- // Now try again
-
- $x = q("select * from hubloc where hubloc_url = '%s' order by hubloc_connected desc limit 1",
- dbesc($basepath)
- );
- }
+ /*
+ * We have no records for, or prior communications with this hub.
+ * If an address was supplied, let's finger them to create a hub record.
+ * Otherwise we'll use the special address '[system]' which will return
+ * either a system channel or the first available normal channel. We don't
+ * really care about what channel is returned - we need the hub information
+ * from that response so that we can create signed auth packets destined
+ * for that hub.
+ *
+ */
+
+ $ret = zot_finger((($addr) ? $addr : '[system]@' . $parsed['host']),null);
+ if($ret['success']) {
+ $j = json_decode($ret['body'],true);
+ if($j)
+ import_xchan($j);
+
+ // Now try again
+
+ $x = q("select * from hubloc where hubloc_url = '%s' order by hubloc_connected desc limit 1",
+ dbesc($basepath)
+ );
}
}
diff --git a/mod/mail.php b/mod/mail.php
new file mode 100644
index 000000000..eb1b0ddc0
--- /dev/null
+++ b/mod/mail.php
@@ -0,0 +1,349 @@
+<?php
+
+require_once('include/acl_selectors.php');
+require_once('include/message.php');
+require_once('include/zot.php');
+require_once("include/bbcode.php");
+require_once('include/Contact.php');
+
+
+function mail_post(&$a) {
+
+ if(! local_user())
+ return;
+
+ $replyto = ((x($_REQUEST,'replyto')) ? notags(trim($_REQUEST['replyto'])) : '');
+ $subject = ((x($_REQUEST,'subject')) ? notags(trim($_REQUEST['subject'])) : '');
+ $body = ((x($_REQUEST,'body')) ? escape_tags(trim($_REQUEST['body'])) : '');
+ $recipient = ((x($_REQUEST,'messageto')) ? notags(trim($_REQUEST['messageto'])) : '');
+ $rstr = ((x($_REQUEST,'messagerecip')) ? notags(trim($_REQUEST['messagerecip'])) : '');
+ $expires = ((x($_REQUEST,'expires')) ? datetime_convert(date_default_timezone_get(),'UTC', $_REQUEST['expires']) : '0000-00-00 00:00:00');
+
+ // If we have a raw string for a recipient which hasn't been auto-filled,
+ // it means they probably aren't in our address book, hence we don't know
+ // if we have permission to send them private messages.
+ // finger them and find out before we try and send it.
+
+ if(! $recipient) {
+ $channel = $a->get_channel();
+
+ $ret = zot_finger($rstr,$channel);
+
+ if(! $ret['success']) {
+ notice( t('Unable to lookup recipient.') . EOL);
+ return;
+ }
+ $j = json_decode($ret['body'],true);
+
+ logger('message_post: lookup: ' . $url . ' ' . print_r($j,true));
+
+ if(! ($j['success'] && $j['guid'])) {
+ notice( t('Unable to communicate with requested channel.'));
+ return;
+ }
+
+ $x = import_xchan($j);
+
+ if(! $x['success']) {
+ notice( t('Cannot verify requested channel.'));
+ return;
+ }
+
+ $recipient = $x['hash'];
+
+ $their_perms = 0;
+
+ $global_perms = get_perms();
+
+ if($j['permissions']['data']) {
+ $permissions = crypto_unencapsulate($j['permissions'],$channel['channel_prvkey']);
+ if($permissions)
+ $permissions = json_decode($permissions);
+ logger('decrypted permissions: ' . print_r($permissions,true), LOGGER_DATA);
+ }
+ else
+ $permissions = $j['permissions'];
+
+ foreach($permissions as $k => $v) {
+ if($v) {
+ $their_perms = $their_perms | intval($global_perms[$k][1]);
+ }
+ }
+
+ if(! ($their_perms & PERMS_W_MAIL)) {
+ notice( t('Selected channel has private message restrictions. Send failed.'));
+ return;
+ }
+ }
+
+ if(feature_enabled(local_user(),'richtext')) {
+ $body = fix_mce_lf($body);
+ }
+
+ if(! $recipient) {
+ notice('No recipient found.');
+ $a->argc = 2;
+ $a->argv[1] = 'new';
+ return;
+ }
+
+ // We have a local_user, let send_message use the session channel and save a lookup
+
+ $ret = send_message(0, $recipient, $body, $subject, $replyto, $expires);
+
+ if(! $ret['success']) {
+ notice($ret['message']);
+ }
+
+ goaway(z_root() . '/message');
+
+}
+
+function mail_content(&$a) {
+
+ $o = '';
+ nav_set_selected('messages');
+
+ if(! local_user()) {
+ notice( t('Permission denied.') . EOL);
+ return login();
+ }
+
+ $channel = $a->get_channel();
+ head_set_icon($channel['xchan_photo_s']);
+
+ $cipher = get_pconfig(local_user(),'system','default_cipher');
+ if(! $cipher)
+ $cipher = 'aes256';
+
+ $tpl = get_markup_template('mail_head.tpl');
+ $header = replace_macros($tpl, array(
+ '$messages' => t('Messages'),
+ '$tab_content' => $tab_content
+ ));
+
+ if((argc() == 3) && (argv(1) === 'drop')) {
+ if(! intval(argv(2)))
+ return;
+ $cmd = argv(1);
+
+ $r = private_messages_drop(local_user(), argv(2));
+ if($r) {
+ info( t('Message deleted.') . EOL );
+ }
+ goaway($a->get_baseurl(true) . '/message' );
+ }
+
+ if((argc() == 3) && (argv(1) === 'recall')) {
+ if(! intval(argv(2)))
+ return;
+ $cmd = argv(1);
+ $r = q("update mail set mail_flags = mail_flags | %d where id = %d and channel_id = %d limit 1",
+ intval(MAIL_RECALLED),
+ intval(argv(2)),
+ intval(local_user())
+ );
+ proc_run('php','include/notifier.php','mail',intval(argv(2)));
+
+ if($r) {
+ info( t('Message recalled.') . EOL );
+ }
+ goaway($a->get_baseurl(true) . '/message' );
+
+ }
+
+ if((argc() > 1) && (argv(1) === 'new')) {
+
+ $o .= $header;
+
+ $plaintext = false;
+ if(intval(get_pconfig(local_user(),'system','plaintext')))
+ $plaintext = true;
+ if(! feature_enabled(local_user(),'richtext'))
+ $plaintext = true;
+
+ $tpl = get_markup_template('msg-header.tpl');
+
+ $a->page['htmlhead'] .= replace_macros($tpl, array(
+ '$baseurl' => $a->get_baseurl(true),
+ '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
+ '$nickname' => $channel['channel_address'],
+ '$linkurl' => t('Please enter a link URL:'),
+ '$expireswhen' => t('Expires YYYY-MM-DD HH:MM')
+ ));
+
+ $preselect = (isset($a->argv[2])?array($a->argv[2]):false);
+
+
+ $prename = $preurl = $preid = '';
+
+ if($preselect) {
+ $r = q("select abook.*, xchan.* from abook left join xchan on abook_xchan = xchan_hash
+ where abook_channel = %d and abook_id = %d limit 1",
+ intval(local_user()),
+ intval(argv(2))
+ );
+ if($r) {
+ $prename = $r[0]['xchan_name'];
+ $preurl = $r[0]['xchan_url'];
+ $preid = $r[0]['abook_id'];
+ }
+ }
+
+ $prefill = (($preselect) ? $prename : '');
+
+ if(! $prefill) {
+ if(array_key_exists('to',$_REQUEST))
+ $prefill = $_REQUEST['to'];
+ }
+
+ // the ugly select box
+
+ $select = contact_select('messageto','message-to-select', $preselect, 4, true, false, false, 10);
+
+ $tpl = get_markup_template('prv_message.tpl');
+ $o .= replace_macros($tpl,array(
+ '$header' => t('Send Private Message'),
+ '$to' => t('To:'),
+ '$showinputs' => 'true',
+ '$prefill' => $prefill,
+ '$autocomp' => $autocomp,
+ '$preid' => $preid,
+ '$subject' => t('Subject:'),
+ '$subjtxt' => ((x($_REQUEST,'subject')) ? strip_tags($_REQUEST['subject']) : ''),
+ '$text' => ((x($_REQUEST,'body')) ? htmlspecialchars($_REQUEST['body'], ENT_COMPAT, 'UTF-8') : ''),
+ '$readonly' => '',
+ '$yourmessage' => t('Your message:'),
+ '$select' => $select,
+ '$parent' => '',
+ '$upload' => t('Upload photo'),
+ '$attach' => t('Attach file'),
+ '$insert' => t('Insert web link'),
+ '$wait' => t('Please wait'),
+ '$submit' => t('Submit'),
+ '$defexpire' => '',
+ '$feature_expire' => ((feature_enabled(local_user(),'content_expire')) ? 'block' : 'none'),
+ '$expires' => t('Set expiration date'),
+ '$feature_encrypt' => ((feature_enabled(local_user(),'content_encrypt')) ? 'block' : 'none'),
+ '$encrypt' => t('Encrypt text'),
+ '$cipher' => $cipher,
+
+
+ ));
+
+ return $o;
+ }
+
+
+ if((argc() > 1) && (intval(argv(1)))) {
+
+ $o .= $header;
+
+ $plaintext = true;
+ if( local_user() && feature_enabled(local_user(),'richtext') )
+ $plaintext = false;
+
+ $messages = private_messages_fetch_conversation(local_user(), argv(1), true);
+
+ if(! $messages) {
+ info( t('Message not found.') . EOL);
+ return $o;
+ }
+
+ if($messages[0]['to_xchan'] === $channel['channel_hash'])
+ $a->poi = $messages[0]['from'];
+ else
+ $a->poi = $messages[0]['to'];
+
+// require_once('include/Contact.php');
+
+// $a->set_widget('mail_conversant',vcard_from_xchan($a->poi,$get_observer_hash,'mail'));
+
+
+ $tpl = get_markup_template('msg-header.tpl');
+
+ $a->page['htmlhead'] .= replace_macros($tpl, array(
+ '$nickname' => $channel['channel_addr'],
+ '$baseurl' => $a->get_baseurl(true),
+ '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
+ '$linkurl' => t('Please enter a link URL:'),
+ '$expireswhen' => t('Expires YYYY-MM-DD HH:MM')
+ ));
+
+
+ $mails = array();
+ $seen = 0;
+ $unknown = false;
+
+ foreach($messages as $message) {
+
+ $s = theme_attachments($message);
+
+ $mails[] = array(
+ 'id' => $message['id'],
+ 'from_name' => $message['from']['xchan_name'],
+ 'from_url' => chanlink_hash($message['from_xchan']),
+ 'from_photo' => $message['from']['xchan_photo_m'],
+ 'to_name' => $message['to']['xchan_name'],
+ 'to_url' => chanlink_hash($message['to_xchan']),
+ 'to_photo' => $message['to']['xchan_photo_m'],
+ 'subject' => $message['title'],
+ 'body' => smilies(bbcode($message['body']) . $s),
+ 'delete' => t('Delete message'),
+ 'recall' => t('Recall message'),
+ 'can_recall' => (($channel['channel_hash'] == $message['from_xchan']) ? true : false),
+ 'is_recalled' => (($message['mail_flags'] & MAIL_RECALLED) ? t('Message has been recalled.') : ''),
+ 'date' => datetime_convert('UTC',date_default_timezone_get(),$message['created'],'D, d M Y - g:i A'),
+ );
+
+ $seen = $message['seen'];
+
+ }
+
+ $recp = (($message['from_xchan'] === $channel['channel_hash']) ? 'to' : 'from');
+
+// FIXME - move this HTML to template
+
+ $select = $message[$recp]['xchan_name'] . '<input type="hidden" name="messageto" value="' . $message[$recp]['xchan_hash'] . '" />';
+ $parent = '<input type="hidden" name="replyto" value="' . $message['parent_mid'] . '" />';
+
+ $tpl = get_markup_template('mail_display.tpl');
+ $o = replace_macros($tpl, array(
+ '$prvmsg_header' => t('Private Conversation'),
+ '$thread_id' => $a->argv[1],
+ '$thread_subject' => $message['title'],
+ '$thread_seen' => $seen,
+ '$delete' => t('Delete conversation'),
+ '$canreply' => (($unknown) ? false : '1'),
+ '$unknown_text' => t("No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."),
+ '$mails' => $mails,
+
+ // reply
+ '$header' => t('Send Reply'),
+ '$to' => t('To:'),
+ '$showinputs' => '',
+ '$subject' => t('Subject:'),
+ '$subjtxt' => $message['title'],
+ '$readonly' => ' readonly="readonly" style="background: #BBBBBB;" ',
+ '$yourmessage' => t('Your message:'),
+ '$text' => '',
+ '$select' => $select,
+ '$parent' => $parent,
+ '$upload' => t('Upload photo'),
+ '$attach' => t('Attach file'),
+ '$insert' => t('Insert web link'),
+ '$submit' => t('Submit'),
+ '$wait' => t('Please wait'),
+ '$defexpire' => '',
+ '$feature_expire' => ((feature_enabled(local_user(),'content_expire')) ? 'block' : 'none'),
+ '$expires' => t('Set expiration date'),
+ '$feature_encrypt' => ((feature_enabled(local_user(),'content_encrypt')) ? 'block' : 'none'),
+ '$encrypt' => t('Encrypt text'),
+ '$cipher' => $cipher,
+
+ ));
+
+ return $o;
+ }
+
+}
diff --git a/mod/manage.php b/mod/manage.php
index a2f65b271..0772e2d61 100644
--- a/mod/manage.php
+++ b/mod/manage.php
@@ -55,8 +55,9 @@ function manage_content(&$a) {
}
}
- $r = q("select count(channel_id) as total from channel where channel_account_id = %d ",
- intval(get_account_id())
+ $r = q("select count(channel_id) as total from channel where channel_account_id = %d and not ( channel_pageflags & %d )",
+ intval(get_account_id()),
+ intval(PAGE_REMOVED)
);
$limit = service_class_fetch(local_user(),'total_identities');
if($limit !== false) {
diff --git a/mod/menu.php b/mod/menu.php
index 1ec3c7996..a2d0c2385 100644
--- a/mod/menu.php
+++ b/mod/menu.php
@@ -8,6 +8,10 @@ function menu_post(&$a) {
return;
$_REQUEST['menu_channel_id'] = local_user();
+ if($_REQUEST['menu_bookmark'])
+ $_REQUEST['menu_flags'] |= MENU_BOOKMARK;
+ if($_REQUEST['menu_system'])
+ $_REQUEST['menu_flags'] |= MENU_SYSTEM;
$menu_id = ((argc() > 1) ? intval(argv(1)) : 0);
if($menu_id) {
@@ -42,7 +46,7 @@ function menu_content(&$a) {
}
- $a->set_widget('design',design_tools());
+// $a->set_widget('design',design_tools());
if(argc() == 1) {
@@ -76,6 +80,7 @@ function menu_content(&$a) {
'$header' => t('New Menu'),
'$menu_name' => array('menu_name', t('Menu name'), '', t('Must be unique, only seen by you'), '*'),
'$menu_desc' => array('menu_desc', t('Menu title'), '', t('Menu title as seen by others'), ''),
+ '$menu_bookmark' => array('menu_bookmark', t('Allow bookmarks'), 0 , t('Menu may be used to store saved bookmarks'), ''),
'$submit' => t('Create')
));
return $o;
@@ -104,6 +109,8 @@ function menu_content(&$a) {
'$editcontents' => t('Edit menu contents'),
'$menu_name' => array('menu_name', t('Menu name'), $m['menu_name'], t('Must be unique, only seen by you'), '*'),
'$menu_desc' => array('menu_desc', t('Menu title'), $m['menu_desc'], t('Menu title as seen by others'), ''),
+ '$menu_bookmark' => array('menu_bookmark', t('Allow bookmarks'), (($m['menu_flags'] & MENU_BOOKMARK) ? 1 : 0), t('Menu may be used to store saved bookmarks'), ''),
+ '$menu_system' => (($m['menu_flags'] & MENU_SYSTEM) ? 1 : 0),
'$submit' => t('Modify')
));
return $o;
diff --git a/mod/message.php b/mod/message.php
index a0382f63d..c14bf2161 100644
--- a/mod/message.php
+++ b/mod/message.php
@@ -7,198 +7,6 @@ require_once("include/bbcode.php");
require_once('include/Contact.php');
-function message_aside(&$a) {
-
- if (! local_user())
- return;
-
- $a->set_widget('msgaside',replace_macros(get_markup_template('message_side.tpl'), array(
- '$tabs'=> array(),
-
- '$check'=>array(
- 'label' => t('Check Mail'),
- 'url' => $a->get_baseurl(true) . '/message',
- 'sel' => (argv(1) == ''),
- ),
- '$new'=>array(
- 'label' => t('New Message'),
- 'url' => $a->get_baseurl(true) . '/message/new',
- 'sel'=> (argv(1) == 'new'),
- )
-
- )));
-
-}
-
-function message_post(&$a) {
-
- if(! local_user())
- return;
-
- $replyto = ((x($_REQUEST,'replyto')) ? notags(trim($_REQUEST['replyto'])) : '');
- $subject = ((x($_REQUEST,'subject')) ? notags(trim($_REQUEST['subject'])) : '');
- $body = ((x($_REQUEST,'body')) ? escape_tags(trim($_REQUEST['body'])) : '');
- $recipient = ((x($_REQUEST,'messageto')) ? notags(trim($_REQUEST['messageto'])) : '');
- $rstr = ((x($_REQUEST,'messagerecip')) ? notags(trim($_REQUEST['messagerecip'])) : '');
- $expires = ((x($_REQUEST,'expires')) ? datetime_convert(date_default_timezone_get(),'UTC', $_REQUEST['expires']) : '0000-00-00 00:00:00');
-
- // If we have a raw string for a recipient which hasn't been auto-filled,
- // it means they probably aren't in our address book, hence we don't know
- // if we have permission to send them private messages.
- // finger them and find out before we try and send it.
-
- if(! $recipient) {
- $channel = $a->get_channel();
-
- $ret = zot_finger($rstr,$channel);
-
- if(! $ret['success']) {
- notice( t('Unable to lookup recipient.') . EOL);
- return;
- }
- $j = json_decode($ret['body'],true);
-
- logger('message_post: lookup: ' . $url . ' ' . print_r($j,true));
-
- if(! ($j['success'] && $j['guid'])) {
- notice( t('Unable to communicate with requested channel.'));
- return;
- }
-
- $x = import_xchan($j);
-
- if(! $x['success']) {
- notice( t('Cannot verify requested channel.'));
- return;
- }
-
- $recipient = $x['hash'];
-
- $their_perms = 0;
-
- $global_perms = get_perms();
-
- if($j['permissions']['data']) {
- $permissions = crypto_unencapsulate($j['permissions'],$channel['channel_prvkey']);
- if($permissions)
- $permissions = json_decode($permissions);
- logger('decrypted permissions: ' . print_r($permissions,true), LOGGER_DATA);
- }
- else
- $permissions = $j['permissions'];
-
- foreach($permissions as $k => $v) {
- if($v) {
- $their_perms = $their_perms | intval($global_perms[$k][1]);
- }
- }
-
- if(! ($their_perms & PERMS_W_MAIL)) {
- notice( t('Selected channel has private message restrictions. Send failed.'));
- return;
- }
- }
-
- if(feature_enabled(local_user(),'richtext')) {
- $body = fix_mce_lf($body);
- }
-
- if(! $recipient) {
- notice('No recipient found.');
- $a->argc = 2;
- $a->argv[1] = 'new';
- return;
- }
-
- // We have a local_user, let send_message use the session channel and save a lookup
-
- $ret = send_message(0, $recipient, $body, $subject, $replyto, $expires);
-
- if(! $ret['success']) {
- notice($ret['message']);
- }
-
-}
-
-// Note: the code in 'item_extract_images' and 'item_redir_and_replace_images'
-// is identical to the code in include/conversation.php
-if(! function_exists('item_extract_images')) {
-function item_extract_images($body) {
-
- $saved_image = array();
- $orig_body = $body;
- $new_body = '';
-
- $cnt = 0;
- $img_start = strpos($orig_body, '[img');
- $img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
- $img_end = ($img_start !== false ? strpos(substr($orig_body, $img_start), '[/img]') : false);
- while(($img_st_close !== false) && ($img_end !== false)) {
-
- $img_st_close++; // make it point to AFTER the closing bracket
- $img_end += $img_start;
-
- if(! strcmp(substr($orig_body, $img_start + $img_st_close, 5), 'data:')) {
- // This is an embedded image
-
- $saved_image[$cnt] = substr($orig_body, $img_start + $img_st_close, $img_end - ($img_start + $img_st_close));
- $new_body = $new_body . substr($orig_body, 0, $img_start) . '[!#saved_image' . $cnt . '#!]';
-
- $cnt++;
- }
- else
- $new_body = $new_body . substr($orig_body, 0, $img_end + strlen('[/img]'));
-
- $orig_body = substr($orig_body, $img_end + strlen('[/img]'));
-
- if($orig_body === false) // in case the body ends on a closing image tag
- $orig_body = '';
-
- $img_start = strpos($orig_body, '[img');
- $img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
- $img_end = ($img_start !== false ? strpos(substr($orig_body, $img_start), '[/img]') : false);
- }
-
- $new_body = $new_body . $orig_body;
-
- return array('body' => $new_body, 'images' => $saved_image);
-}}
-
-if(! function_exists('item_redir_and_replace_images')) {
-function item_redir_and_replace_images($body, $images, $cid) {
-
- $origbody = $body;
- $newbody = '';
-
- for($i = 0; $i < count($images); $i++) {
- $search = '/\[zrl\=(.*?)\]\[!#saved_image' . $i . '#!\]\[\/zrl\]' . '/is';
-//FIXME
- $replace = '[zrl=' . z_path() . '/redir/' . $cid
- . '?f=1&url=' . '$1' . '][!#saved_image' . $i . '#!][/zrl]' ;
-
- $img_end = strpos($origbody, '[!#saved_image' . $i . '#!][/url]') + strlen('[!#saved_image' . $i . '#!][/url]');
- $process_part = substr($origbody, 0, $img_end);
- $origbody = substr($origbody, $img_end);
-
- $process_part = preg_replace($search, $replace, $process_part);
- $newbody = $newbody . $process_part;
- }
- $newbody = $newbody . $origbody;
-
- $cnt = 0;
- foreach($images as $image) {
- // We're depending on the property of 'foreach' (specified on the PHP website) that
- // it loops over the array starting from the first element and going sequentially
- // to the last element
- $newbody = str_replace('[!#saved_image' . $cnt . '#!]', '[img]' . $image . '[/img]', $newbody);
- $cnt++;
- }
-
- return $newbody;
-}}
-
-
-
function message_content(&$a) {
$o = '';
@@ -224,126 +32,15 @@ function message_content(&$a) {
'$tab_content' => $tab_content
));
- if((argc() == 3) && (argv(1) === 'drop' || argv(1) === 'dropconv')) {
- if(! intval(argv(2)))
- return;
- $cmd = argv(1);
- if($cmd === 'drop') {
- $r = private_messages_drop(local_user(), argv(2));
- if($r) {
- info( t('Message deleted.') . EOL );
- }
- goaway($a->get_baseurl(true) . '/message' );
- }
- else {
- $r = private_messages_drop(local_user(), argv(2), true);
- if($r)
- info( t('Conversation removed.') . EOL );
- goaway($a->get_baseurl(true) . '/message' );
- }
- }
-
- if((argc() == 3) && (argv(1) === 'recall')) {
+ if((argc() == 3) && (argv(1) === 'dropconv')) {
if(! intval(argv(2)))
return;
$cmd = argv(1);
- $r = q("update mail set mail_flags = mail_flags | %d where id = %d and channel_id = %d limit 1",
- intval(MAIL_RECALLED),
- intval(argv(2)),
- intval(local_user())
- );
- proc_run('php','include/notifier.php','mail',intval(argv(2)));
-
- if($r) {
- info( t('Message recalled.') . EOL );
- }
+ $r = private_messages_drop(local_user(), argv(2), true);
+ if($r)
+ info( t('Conversation removed.') . EOL );
goaway($a->get_baseurl(true) . '/message' );
-
- }
-
-
- if((argc() > 1) && ($a->argv[1] === 'new')) {
-
- $o .= $header;
-
- $plaintext = false;
- if(intval(get_pconfig(local_user(),'system','plaintext')))
- $plaintext = true;
- if(! feature_enabled(local_user(),'richtext'))
- $plaintext = true;
-
- $tpl = get_markup_template('msg-header.tpl');
-
- $a->page['htmlhead'] .= replace_macros($tpl, array(
- '$baseurl' => $a->get_baseurl(true),
- '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
- '$nickname' => $channel['channel_address'],
- '$linkurl' => t('Please enter a link URL:'),
- '$expireswhen' => t('Expires YYYY-MM-DD HH:MM')
- ));
-
- $preselect = (isset($a->argv[2])?array($a->argv[2]):false);
-
-
- $prename = $preurl = $preid = '';
-
- if($preselect) {
- $r = q("select abook.*, xchan.* from abook left join xchan on abook_xchan = xchan_hash
- where abook_channel = %d and abook_id = %d limit 1",
- intval(local_user()),
- intval(argv(2))
- );
- if($r) {
- $prename = $r[0]['xchan_name'];
- $preurl = $r[0]['xchan_url'];
- $preid = $r[0]['abook_id'];
- }
- }
-
- $prefill = (($preselect) ? $prename : '');
-
- if(! $prefill) {
- if(array_key_exists('to',$_REQUEST))
- $prefill = $_REQUEST['to'];
- }
-
- // the ugly select box
-
- $select = contact_select('messageto','message-to-select', $preselect, 4, true, false, false, 10);
-
- $tpl = get_markup_template('prv_message.tpl');
- $o .= replace_macros($tpl,array(
- '$header' => t('Send Private Message'),
- '$to' => t('To:'),
- '$showinputs' => 'true',
- '$prefill' => $prefill,
- '$autocomp' => $autocomp,
- '$preid' => $preid,
- '$subject' => t('Subject:'),
- '$subjtxt' => ((x($_REQUEST,'subject')) ? strip_tags($_REQUEST['subject']) : ''),
- '$text' => ((x($_REQUEST,'body')) ? escape_tags(htmlspecialchars($_REQUEST['body'])) : ''),
- '$readonly' => '',
- '$yourmessage' => t('Your message:'),
- '$select' => $select,
- '$parent' => '',
- '$upload' => t('Upload photo'),
- '$attach' => t('Attach file'),
- '$insert' => t('Insert web link'),
- '$wait' => t('Please wait'),
- '$submit' => t('Submit'),
- '$defexpire' => '',
- '$feature_expire' => ((feature_enabled(local_user(),'content_expire')) ? 'block' : 'none'),
- '$expires' => t('Set expiration date'),
- '$feature_encrypt' => ((feature_enabled(local_user(),'content_encrypt')) ? 'block' : 'none'),
- '$encrypt' => t('Encrypt text'),
- '$cipher' => $cipher,
-
-
- ));
-
- return $o;
}
-
if(argc() == 1) {
// list messages
@@ -382,148 +79,5 @@ function message_content(&$a) {
return $o;
}
- if((argc() > 1) && (intval(argv(1)))) {
-
- $o .= $header;
-
- $plaintext = true;
- if( local_user() && feature_enabled(local_user(),'richtext') )
- $plaintext = false;
-
- $messages = private_messages_fetch_conversation(local_user(), argv(1), true);
-
- if(! $messages) {
- info( t('Message not found.') . EOL);
- return $o;
- }
-
- $other_channel = null;
- if($messages[0]['to_xchan'] === $channel['channel_hash'])
- $other_channel = $messages[0]['from'];
- else
- $other_channel = $messages[0]['to'];
-
- require_once('include/Contact.php');
-
- $a->set_widget('mail_conversant',vcard_from_xchan($other_channel,$get_observer_hash,'mail'));
-
-
- $tpl = get_markup_template('msg-header.tpl');
-
- $a->page['htmlhead'] .= replace_macros($tpl, array(
- '$nickname' => $channel['channel_addr'],
- '$baseurl' => $a->get_baseurl(true),
- '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
- '$linkurl' => t('Please enter a link URL:'),
- '$expireswhen' => t('Expires YYYY-MM-DD HH:MM')
- ));
-
-
- $mails = array();
- $seen = 0;
- $unknown = false;
-
- foreach($messages as $message) {
-
- $s = $arr = '';
-
- if($message['attach'])
- $arr = json_decode_plus($message['attach']);
- if($arr) {
- $s .= '<div class="body-attach">';
- foreach($arr as $r) {
- $matches = false;
- $icon = '';
- $icontype = substr($r['type'],0,strpos($r['type'],'/'));
-
- switch($icontype) {
- case 'video':
- case 'audio':
- case 'image':
- case 'text':
- $icon = '<div class="attachtype icon s22 type-' . $icontype . '"></div>';
- break;
- default:
- $icon = '<div class="attachtype icon s22 type-unkn"></div>';
- break;
- }
-
- $title = htmlentities($r['title'], ENT_COMPAT,'UTF-8');
- if(! $title)
- $title = t('unknown.???');
- $title .= ' ' . $r['length'] . ' ' . t('bytes');
-
- $url = $a->get_baseurl() . '/magic?f=&hash=' . $message['from_xchan'] . '&dest=' . $r['href'] . '/' . $r['revision'];
- $s .= '<a href="' . $url . '" title="' . $title . '" class="attachlink" >' . $icon . '</a>';
- }
- $s .= '<div class="clear"></div></div>';
- }
-
- $mails[] = array(
- 'id' => $message['id'],
- 'from_name' => $message['from']['xchan_name'],
- 'from_url' => chanlink_hash($message['from_xchan']),
- 'from_photo' => $message['from']['xchan_photo_m'],
- 'to_name' => $message['to']['xchan_name'],
- 'to_url' => chanlink_hash($message['to_xchan']),
- 'to_photo' => $message['to']['xchan_photo_m'],
- 'subject' => $message['title'],
- 'body' => smilies(bbcode($message['body']) . $s),
- 'delete' => t('Delete message'),
- 'recall' => t('Recall message'),
- 'can_recall' => (($channel['channel_hash'] == $message['from_xchan']) ? true : false),
- 'is_recalled' => (($message['mail_flags'] & MAIL_RECALLED) ? t('Message has been recalled.') : ''),
- 'date' => datetime_convert('UTC',date_default_timezone_get(),$message['created'],'D, d M Y - g:i A'),
- );
-
- $seen = $message['seen'];
-
- }
-
- $recp = (($message['from_xchan'] === $channel['channel_hash']) ? 'to' : 'from');
-
-// FIXME - move this HTML to template
-
- $select = $message[$recp]['xchan_name'] . '<input type="hidden" name="messageto" value="' . $message[$recp]['xchan_hash'] . '" />';
- $parent = '<input type="hidden" name="replyto" value="' . $message['parent_mid'] . '" />';
-
- $tpl = get_markup_template('mail_display.tpl');
- $o = replace_macros($tpl, array(
- '$prvmsg_header' => t('Private Conversation'),
- '$thread_id' => $a->argv[1],
- '$thread_subject' => $message['title'],
- '$thread_seen' => $seen,
- '$delete' => t('Delete conversation'),
- '$canreply' => (($unknown) ? false : '1'),
- '$unknown_text' => t("No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."),
- '$mails' => $mails,
-
- // reply
- '$header' => t('Send Reply'),
- '$to' => t('To:'),
- '$showinputs' => '',
- '$subject' => t('Subject:'),
- '$subjtxt' => $message['title'],
- '$readonly' => ' readonly="readonly" style="background: #BBBBBB;" ',
- '$yourmessage' => t('Your message:'),
- '$text' => '',
- '$select' => $select,
- '$parent' => $parent,
- '$upload' => t('Upload photo'),
- '$attach' => t('Attach file'),
- '$insert' => t('Insert web link'),
- '$submit' => t('Submit'),
- '$wait' => t('Please wait'),
- '$defexpire' => '',
- '$feature_expire' => ((feature_enabled(local_user(),'content_expire')) ? 'block' : 'none'),
- '$expires' => t('Set expiration date'),
- '$feature_encrypt' => ((feature_enabled(local_user(),'content_encrypt')) ? 'block' : 'none'),
- '$encrypt' => t('Encrypt text'),
- '$cipher' => $cipher,
-
- ));
-
- return $o;
- }
}
diff --git a/mod/mitem.php b/mod/mitem.php
index 8e60e2d65..e0aa1b87a 100644
--- a/mod/mitem.php
+++ b/mod/mitem.php
@@ -81,11 +81,8 @@ function mitem_content(&$a) {
$channel = $a->get_channel();
- $a->set_widget('design',design_tools());
-
-
$m = menu_fetch($a->data['menu']['menu_name'],local_user(), get_observer_hash());
- $a->set_widget('menu_preview',menu_render($m));
+ $a->data['menu_item'] = $m;
if(argc() == 2) {
diff --git a/mod/mood.php b/mod/mood.php
index 83b8bfb57..5075f622d 100755
--- a/mod/mood.php
+++ b/mod/mood.php
@@ -11,6 +11,7 @@ function mood_init(&$a) {
return;
$uid = local_user();
+ $channel = $a->get_channel();
$verb = notags(trim($_GET['verb']));
if(! $verb)
@@ -48,7 +49,6 @@ function mood_init(&$a) {
else {
$private = 0;
- $channel = $a->get_channel();
$allow_cid = $channel['channel_allow_cid'];
$allow_gid = $channel['channel_allow_gid'];
@@ -84,6 +84,11 @@ function mood_init(&$a) {
$arr['verb'] = $activity;
$arr['body'] = $action;
+ if ((! $arr['plink']) && ($arr['item_flags'] & ITEM_THREAD_TOP)) {
+ $arr['plink'] = z_root() . '/channel/' . $channel['channel_address'] . '/?f=&mid=' . $arr['mid'];
+ }
+
+
$post = item_store($arr);
$item_id = $post['item_id'];
diff --git a/mod/network.php b/mod/network.php
index 754978949..191fe55ed 100644
--- a/mod/network.php
+++ b/mod/network.php
@@ -69,7 +69,7 @@ function network_content(&$a, $update = 0, $load = false) {
$_GET['order'] = 'post';
if($gid) {
- $r = q("SELECT * FROM `group` WHERE id = %d AND uid = %d LIMIT 1",
+ $r = q("SELECT * FROM `groups` WHERE id = %d AND uid = %d LIMIT 1",
intval($gid),
intval(local_user())
);
@@ -111,36 +111,11 @@ function network_content(&$a, $update = 0, $load = false) {
if(! $update) {
-
- if(feature_enabled(local_user(),'affinity')) {
- $tpl = get_markup_template('main_slider.tpl');
- $x = replace_macros($tpl,array(
- '$val' => intval($cmin) . ';' . intval($cmax),
- '$refresh' => t('Refresh'),
- '$me' => t('Me'),
- '$intimate' => t('Best Friends'),
- '$friends' => t('Friends'),
- '$coworkers' => t('Co-workers'),
- '$oldfriends' => t('Former Friends'),
- '$acquaintances' => t('Acquaintances'),
- '$world' => t('Everybody')
- ));
- $arr = array('html' => $x);
- call_hooks('main_slider',$arr);
- $o .= $arr['html'];
- }
-
-
$o .= network_tabs();
- // --- end item filter tabs
-
-
-
-
// search terms header
if($search)
- $o .= '<h2>' . t('Search Results For:') . ' ' . htmlspecialchars($search) . '</h2>';
+ $o .= '<h2>' . t('Search Results For:') . ' ' . htmlspecialchars($search, ENT_COMPAT,'UTF-8') . '</h2>';
nav_set_selected('network');
@@ -262,6 +237,7 @@ function network_content(&$a, $update = 0, $load = false) {
'$spam' => (($spam) ? $spam : '0'),
'$nouveau' => (($nouveau) ? $nouveau : '0'),
'$wall' => '0',
+ '$list' => ((x($_REQUEST,'list')) ? intval($_REQUEST['list']) : 0),
'$page' => (($a->pager['page'] != 1) ? $a->pager['page'] : 1),
'$search' => (($search) ? $search : ''),
'$order' => $order,
diff --git a/mod/notes.php b/mod/notes.php
index ce3460aa4..468b4ef26 100644
--- a/mod/notes.php
+++ b/mod/notes.php
@@ -6,11 +6,11 @@ function notes_init(&$a) {
logger('mod_notes: ' . print_r($_REQUEST,true));
$ret = array('success' => true);
- if($_REQUEST['note_text']) {
+ if($_REQUEST['note_text'] || $_REQUEST['note_text'] == '') {
$body = escape_tags($_REQUEST['note_text']);
set_pconfig(local_user(),'notes','text',$body);
}
logger('notes saved.');
json_return_and_die($ret);
-} \ No newline at end of file
+}
diff --git a/mod/online.php b/mod/online.php
new file mode 100644
index 000000000..c6500347a
--- /dev/null
+++ b/mod/online.php
@@ -0,0 +1,11 @@
+<?php /** @file */
+
+function online_init(&$a) {
+
+ $ret = array('result' => false);
+ if(argc() != 2)
+ json_return_and_die($ret);
+
+ $ret = get_online_status(argv(1));
+ json_return_and_die($ret);
+}
diff --git a/mod/openid.php b/mod/openid.php
new file mode 100644
index 000000000..b0d4008d4
--- /dev/null
+++ b/mod/openid.php
@@ -0,0 +1,189 @@
+<?php
+
+
+require_once('library/openid/openid.php');
+require_once('include/auth.php');
+
+function openid_content(&$a) {
+
+ $noid = get_config('system','disable_openid');
+ if($noid)
+ goaway(z_root());
+
+ logger('mod_openid ' . print_r($_REQUEST,true), LOGGER_DATA);
+
+ if(x($_REQUEST,'openid_mode')) {
+
+ $openid = new LightOpenID(z_root());
+
+ if($openid->validate()) {
+
+ logger('openid: validate');
+
+ $authid = normalise_openid($_REQUEST['openid_identity']);
+
+ if(! strlen($authid)) {
+ logger( t('OpenID protocol error. No ID returned.') . EOL);
+ goaway(z_root());
+ }
+
+ $x = match_openid($authid);
+ if($x) {
+
+ $r = q("select * from channel where channel_id = %d limit 1",
+ intval($x)
+ );
+ if($r) {
+ $y = q("select * from account where account_id = %d limit 1",
+ intval($r[0]['channel_account_id'])
+ );
+ if($y) {
+ foreach($y as $record) {
+ if(($record['account_flags'] == ACCOUNT_OK) || ($record['account_flags'] == ACCOUNT_UNVERIFIED)) {
+ logger('mod_openid: openid success for ' . $x[0]['channel_name']);
+ $_SESSION['uid'] = $r[0]['channel_id'];
+ $_SESSION['account_id'] = $r[0]['channel_account_id'];
+ $_SESSION['authenticated'] = true;
+ authenticate_success($record,true,true,true,true);
+ goaway(z_root());
+ }
+ }
+ }
+ }
+ }
+
+ // Successful OpenID login - but we can't match it to an existing account.
+ // See if they've got an xchan
+
+ $r = q("select * from xconfig left join xchan on xchan_hash = xconfig.xchan where cat = 'system' and k = 'openid' and v = '%s' limit 1",
+ dbesc($authid)
+ );
+
+ if($r) {
+ $_SESSION['authenticated'] = 1;
+ $_SESSION['visitor_id'] = $r[0]['xchan_hash'];
+ $_SESSION['my_address'] = $r[0]['xchan_addr'];
+ $arr = array('xchan' => $r[0], 'session' => $_SESSION);
+ call_hooks('magic_auth_openid_success',$arr);
+ $a->set_observer($r[0]);
+ require_once('include/security.php');
+ $a->set_groups(init_groups_visitor($_SESSION['visitor_id']));
+ info(sprintf( t('Welcome %s. Remote authentication successful.'),$r[0]['xchan_name']));
+ logger('mod_openid: remote auth success from ' . $r[0]['xchan_addr']);
+ if($_SESSION['return_url'])
+ goaway($_SESSION['return_url']);
+ goaway(z_root());
+ }
+
+ // no xchan...
+ // create one.
+ // We should probably probe the openid url and figure out if they have any kind of social presence we might be able to
+ // scrape some identifying info from.
+
+ $name = $authid;
+ $url = trim($_REQUEST['openid_identity'],'/');
+ if(strpos($url,'http') === false)
+ $url = 'https://' . $url;
+ $pphoto = get_default_profile_photo();
+ $parsed = @parse_url($url);
+ if($parsed) {
+ $host = $parsed['host'];
+ }
+
+ $attr = $openid->getAttributes();
+
+ if(is_array($attr) && count($attr)) {
+ foreach($attr as $k => $v) {
+ if($k === 'namePerson/friendly')
+ $nick = notags(trim($v));
+ if($k === 'namePerson/first')
+ $first = notags(trim($v));
+ if($k === 'namePerson')
+ $name = notags(trim($v));
+ if($k === 'contact/email')
+ $addr = notags(trim($v));
+ if($k === 'media/image/aspect11')
+ $photosq = trim($v);
+ if($k === 'media/image/default')
+ $photo_other = trim($v);
+ }
+ }
+ if(! $nick) {
+ if($first)
+ $nick = $first;
+ else
+ $nick = $name;
+ }
+
+ require_once('library/urlify/URLify.php');
+ $x = strtolower(URLify::transliterate($nick));
+ if($nick & $host)
+ $addr = $nick . '@' . $host;
+ $network = 'unknown';
+
+ if($photosq)
+ $pphoto = $photosq;
+ elseif($photo_other)
+ $pphoto = $photo_other;
+
+ $x = q("insert into xchan ( xchan_hash, xchan_guid, xchan_guid_sig, xchan_pubkey, xchan_photo_mimetype,
+ xchan_photo_l, xchan_addr, xchan_url, xchan_connurl, xchan_follow, xchan_connpage, xchan_name, xchan_network, xchan_photo_date,
+ xchan_name_date, xchan_flags)
+ values ( '%s', '%s', '%s', '%s' , '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d) ",
+ dbesc($url),
+ dbesc(''),
+ dbesc(''),
+ dbesc(''),
+ dbesc('image/jpeg'),
+ dbesc($pphoto),
+ dbesc($addr),
+ dbesc($url),
+ dbesc(''),
+ dbesc(''),
+ dbesc(''),
+ dbesc($name),
+ dbesc($network),
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ intval(XCHAN_FLAGS_HIDDEN)
+ );
+ if($x) {
+ $r = q("select * from xchan where xchan_hash = '%s' limit 1",
+ dbesc($url)
+ );
+ if($r) {
+
+ $photos = import_profile_photo($pphoto,$url);
+ if($photos) {
+ $z = q("update xchan set xchan_photo_date = '%s', xchan_photo_l = '%s', xchan_photo_m = '%s',
+ xchan_photo_s = '%s', xchan_photo_mimetype = '%s' where xchan_hash = '%s' limit 1",
+ dbesc(datetime_convert()),
+ dbesc($photos[0]),
+ dbesc($photos[1]),
+ dbesc($photos[2]),
+ dbesc($photos[3]),
+ dbesc($url)
+ );
+ }
+
+ set_xconfig($url,'system','openid',$authid);
+ $_SESSION['authenticated'] = 1;
+ $_SESSION['visitor_id'] = $r[0]['xchan_hash'];
+ $_SESSION['my_address'] = $r[0]['xchan_addr'];
+ $arr = array('xchan' => $r[0], 'session' => $_SESSION);
+ call_hooks('magic_auth_openid_success',$arr);
+ $a->set_observer($r[0]);
+ info(sprintf( t('Welcome %s. Remote authentication successful.'),$r[0]['xchan_name']));
+ logger('mod_openid: remote auth success from ' . $r[0]['xchan_addr']);
+ if($_SESSION['return_url'])
+ goaway($_SESSION['return_url']);
+ goaway(z_root());
+ }
+ }
+
+ }
+ }
+ notice( t('Login failed.') . EOL);
+ goaway(z_root());
+ // NOTREACHED
+}
diff --git a/mod/parse_url.php b/mod/parse_url.php
index c206c24ec..340e1a67e 100644
--- a/mod/parse_url.php
+++ b/mod/parse_url.php
@@ -252,7 +252,7 @@ function parse_url_content(&$a) {
logger('parse_url: ' . $url);
- $template = $br . '[url=%s]%s[/url]%s' . $br;
+ $template = $br . '#^[url=%s]%s[/url]%s' . $br;
$arr = array('url' => $url, 'text' => '');
diff --git a/mod/photo.php b/mod/photo.php
index 591d7198a..1319f9569 100644
--- a/mod/photo.php
+++ b/mod/photo.php
@@ -22,9 +22,17 @@ function photo_init(&$a) {
// NOTREACHED
}
+ if($photo === 'qr') {
+ $t = $_GET['qr'];
+ require_once('library/phpqrcode/phpqrcode.php');
+ header("Content-type: image/png");
+ QRcode::png(($t) ? $t : '.');
+ killme();
+ }
+
$observer_xchan = get_observer_hash();
- $default = 'images/default_profile_photos/rainbow_man/175.jpg';
+ $default = get_default_profile_photo();
if(isset($type)) {
@@ -38,11 +46,11 @@ function photo_init(&$a) {
case 'm':
$resolution = 5;
- $default = 'images/default_profile_photos/rainbow_man/80.jpg';
+ $default = get_default_profile_photo(80);
break;
case 's':
$resolution = 6;
- $default = 'images/default_profile_photos/rainbow_man/48.jpg';
+ $default = get_default_profile_photo(48);
break;
case 'l':
default:
@@ -135,15 +143,15 @@ function photo_init(&$a) {
switch($resolution) {
case 4:
- $data = file_get_contents('images/default_profile_photos/rainbow_man/175.jpg');
+ $data = file_get_contents(get_default_profile_photo());
$mimetype = 'image/jpeg';
break;
case 5:
- $data = file_get_contents('images/default_profile_photos/rainbow_man/80.jpg');
+ $data = file_get_contents(get_default_profile_photo(80));
$mimetype = 'image/jpeg';
break;
case 6:
- $data = file_get_contents('images/default_profile_photos/rainbow_man/48.jpg');
+ $data = file_get_contents(get_default_profile_photo(48));
$mimetype = 'image/jpeg';
break;
default:
diff --git a/mod/photos.php b/mod/photos.php
index 64ca86941..e2279188a 100644
--- a/mod/photos.php
+++ b/mod/photos.php
@@ -19,28 +19,22 @@ function photos_init(&$a) {
if(argc() > 1) {
$nick = argv(1);
+
+ profile_load($a,$nick);
+
$channelx = channelx_by_nick($nick);
if(! $channelx)
return;
- $a->data['channel'] = $channelx[0];
+ $a->data['channel'] = $channelx;
$observer = $a->get_observer();
$a->data['observer'] = $observer;
$observer_xchan = (($observer) ? $observer['xchan_hash'] : '');
- $a->data['perms'] = get_all_perms($channelx[0]['channel_id'],$observer_xchan);
-
-
-
- $a->set_widget('vcard',vcard_from_xchan($a->data['channel'],$observer));
head_set_icon($a->data['channel']['xchan_photo_s']);
- if($a->data['perms']['view_photos']) {
- $a->data['albums'] = photos_albums_list($a->data['channel'],$observer);
- $a->set_widget('photo_albums',photos_album_widget($a->data['channel'],$observer,$a->data['albums']));
- }
$a->page['htmlhead'] .= "<script> var ispublic = '" . t('everybody') . "'; var profile_uid = " . (($a->data['channel']) ? $a->data['channel']['channel_id'] : 0) . "; </script>" ;
@@ -163,23 +157,20 @@ function photos_post(&$a) {
}
if((argc() > 2) && (x($_REQUEST,'delete')) && ($_REQUEST['delete'] === t('Delete Photo'))) {
-// FIXME
+
// same as above but remove single photo
- if($visitor) {
- $r = q("SELECT `id`, `resource_id` FROM `photo` WHERE `contact-id` = %d AND `uid` = %d AND `resource_id` = '%s' LIMIT 1",
- intval($visitor),
- intval($page_owner_uid),
- dbesc($a->argv[2])
- );
- }
- else {
- $r = q("SELECT `id`, `resource_id` FROM `photo` WHERE `uid` = %d AND `resource_id` = '%s' LIMIT 1",
- intval(local_user()),
- dbesc($a->argv[2])
- );
- }
- if(count($r)) {
+ $ob_hash = get_observer_hash();
+ if(! $ob_hash)
+ goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
+
+ $r = q("SELECT `id`, `resource_id` FROM `photo` WHERE ( xchan = '%s' or `uid` = %d ) AND `resource_id` = '%s' LIMIT 1",
+ dbesc($ob_hash),
+ intval(local_user()),
+ dbesc($a->argv[2])
+ );
+
+ if($r) {
q("DELETE FROM `photo` WHERE `uid` = %d AND `resource_id` = '%s'",
intval($page_owner_uid),
dbesc($r[0]['resource_id'])
@@ -189,7 +180,7 @@ function photos_post(&$a) {
intval($page_owner_uid)
);
if(count($i)) {
- q("UPDATE `item` SET item_restrict = (item_restrict & %d), `edited` = '%s', `changed` = '%s' WHERE `parent_mid` = '%s' AND `uid` = %d",
+ q("UPDATE `item` SET item_restrict = (item_restrict | %d), `edited` = '%s', `changed` = '%s' WHERE `parent_mid` = '%s' AND `uid` = %d",
intval(ITEM_DELETED),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
@@ -206,7 +197,6 @@ function photos_post(&$a) {
}
goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
- return; // NOTREACHED
}
if(($a->argc > 2) && ((x($_POST,'desc') !== false) || (x($_POST,'newtag') !== false)) || (x($_POST,'albname') !== false)) {
@@ -291,7 +281,8 @@ function photos_post(&$a) {
);
if(count($p)) {
$ext = $phototypes[$p[0]['type']];
- $r = q("UPDATE `photo` SET `desc` = '%s', `album` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s' WHERE `resource_id` = '%s' AND `uid` = %d",
+
+ $r = q("UPDATE `photo` SET `description` = '%s', `album` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s' WHERE `resource_id` = '%s' AND `uid` = %d",
dbesc($desc),
dbesc($albname),
dbesc($str_contact_allow),
@@ -309,7 +300,7 @@ function photos_post(&$a) {
/* Don't make the item visible if the only change was the album name */
$visibility = 0;
- if($p[0]['desc'] !== $desc || strlen($rawtags))
+ if($p[0]['description'] !== $desc || strlen($rawtags))
$visibility = 1;
if(! $item_id) {
@@ -345,201 +336,77 @@ function photos_post(&$a) {
$str_tags = '';
$inform = '';
- // if the new tag doesn't have a namespace specifier (@foo or #foo) give it a hashtag
+ // if the new tag doesn't have a namespace specifier (@foo or #foo) give it a mention
$x = substr($rawtags,0,1);
if($x !== '@' && $x !== '#')
- $rawtags = '#' . $rawtags;
+ $rawtags = '@' . $rawtags;
$taginfo = array();
$tags = get_tags($rawtags);
if(count($tags)) {
foreach($tags as $tag) {
- if(isset($profile))
- unset($profile);
- if(strpos($tag,'@') === 0) {
- $name = substr($tag,1);
- if((strpos($name,'@')) || (strpos($name,'http://'))) {
- $newname = $name;
- $links = @lrdd($name);
- if(count($links)) {
- foreach($links as $link) {
- if($link['@attributes']['rel'] === 'http://webfinger.net/rel/profile-page')
- $profile = $link['@attributes']['href'];
- if($link['@attributes']['rel'] === 'salmon') {
- $salmon = '$url:' . str_replace(',','%sc',$link['@attributes']['href']);
- if(strlen($inform))
- $inform .= ',';
- $inform .= $salmon;
- }
- }
- }
- $taginfo[] = array($newname,$profile,$salmon);
+
+ // If we already tagged 'Robert Johnson', don't try and tag 'Robert'.
+ // Robert Johnson should be first in the $tags array
+
+ $fullnametagged = false;
+ for($x = 0; $x < count($tagged); $x ++) {
+ if(stristr($tagged[$x],$tag . ' ')) {
+ $fullnametagged = true;
+ break;
}
- else {
- $newname = $name;
- $alias = '';
- $tagcid = 0;
- if(strrpos($newname,'+'))
- $tagcid = intval(substr($newname,strrpos($newname,'+') + 1));
-
- if($tagcid) {
- $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
- intval($tagcid),
- intval($profile_uid)
- );
- }
- else {
- $newname = str_replace('_',' ',$name);
-
- //select someone from this user's contacts by name
- $r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
- dbesc($newname),
- intval($page_owner_uid)
- );
-
- if(! $r) {
- //select someone by attag or nick and the name passed in
- $r = q("SELECT * FROM `contact` WHERE `attag` = '%s' OR `nick` = '%s' AND `uid` = %d ORDER BY `attag` DESC LIMIT 1",
- dbesc($name),
- dbesc($name),
- intval($page_owner_uid)
- );
- }
- }
-/* elseif(strstr($name,'_') || strstr($name,' ')) {
- $newname = str_replace('_',' ',$name);
- $r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
- dbesc($newname),
- intval($page_owner_uid)
- );
- }
- else {
- $r = q("SELECT * FROM `contact` WHERE `attag` = '%s' OR `nick` = '%s' AND `uid` = %d ORDER BY `attag` DESC LIMIT 1",
- dbesc($name),
- dbesc($name),
- intval($page_owner_uid)
- );
- }*/
- if(count($r)) {
- $newname = $r[0]['name'];
- $profile = $r[0]['url'];
- $notify = 'cid:' . $r[0]['id'];
- if(strlen($inform))
- $inform .= ',';
- $inform .= $notify;
- }
+ }
+ if($fullnametagged)
+ continue;
+
+ require_once('mod/item.php');
+ $body = $access_tag = '';
+
+ $success = handle_tag($a, $body, $access_tag, $str_tags, (local_user()) ? local_user() : $a->profile['profile_uid'] , $tag);
+ logger('handle_tag: ' . print_r($success,tue), LOGGER_DEBUG);
+ if($access_tag) {
+ logger('access_tag: ' . $tag . ' ' . print_r($access_tag,true), LOGGER_DEBUG);
+ if(strpos($access_tag,'cid:') === 0) {
+ $str_contact_allow .= '<' . substr($access_tag,4) . '>';
+ $access_tag = '';
}
- if($profile) {
- if(substr($notify,0,4) === 'cid:')
- $taginfo[] = array($newname,$profile,$notify,$r[0],'@[zrl=' . str_replace(',','%2c',$profile) . ']' . $newname . '[/zrl]');
- else
- $taginfo[] = array($newname,$profile,$notify,null,$str_tags .= '@[url=' . $profile . ']' . $newname . '[/url]');
- if(strlen($str_tags))
- $str_tags .= ',';
- $profile = str_replace(',','%2c',$profile);
- $str_tags .= '@[zrl=' . $profile . ']' . $newname . '[/zrl]';
+ elseif(strpos($access_tag,'gid:') === 0) {
+ $str_group_allow .= '<' . substr($access_tag,4) . '>';
+ $access_tag = '';
}
}
+
+ if($success['replaced']) {
+ $tagged[] = $tag;
+ $post_tags[] = array(
+ 'uid' => $a->profile['profile_uid'],
+ 'type' => $success['termtype'],
+ 'otype' => TERM_OBJ_POST,
+ 'term' => $success['term'],
+ 'url' => $success['url']
+ );
+ }
}
}
-
- $newtag = $old_tag;
- if(strlen($newtag) && strlen($str_tags))
- $newtag .= ',';
- $newtag .= $str_tags;
-
- $newinform = $old_inform;
- if(strlen($newinform) && strlen($inform))
- $newinform .= ',';
- $newinform .= $inform;
-//FIXME - inform is gone
-// $r = q("UPDATE `item` SET `tag` = '%s', `inform` = '%s', `edited` = '%s', `changed` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
-// dbesc($newtag),
-// dbesc($newinform),
-// dbesc(datetime_convert()),
-// dbesc(datetime_convert()),
-// intval($item_id),
-// intval($page_owner_uid)
-// );
-
- $best = 0;
- foreach($p as $scales) {
- if(intval($scales['scale']) == 2) {
- $best = 2;
- break;
- }
- if(intval($scales['scale']) == 4) {
- $best = 4;
- break;
- }
- }
-
- if(count($taginfo)) {
- foreach($taginfo as $tagged) {
- $mid = item_message_id();
-
- $arr = array();
-
- $arr['uid'] = $page_owner_uid;
- $arr['mid'] = $mid;
- $arr['parent_mid'] = $mid;
- $arr['type'] = 'activity';
- $arr['wall'] = 1;
- $arr['contact-id'] = $owner_record['id'];
- $arr['owner-name'] = $owner_record['name'];
- $arr['owner-link'] = $owner_record['url'];
- $arr['owner-avatar'] = $owner_record['thumb'];
- $arr['author-name'] = $owner_record['name'];
- $arr['author-link'] = $owner_record['url'];
- $arr['author-avatar'] = $owner_record['thumb'];
- $arr['title'] = '';
- $arr['allow_cid'] = $p[0]['allow_cid'];
- $arr['allow_gid'] = $p[0]['allow_gid'];
- $arr['deny_cid'] = $p[0]['deny_cid'];
- $arr['deny_gid'] = $p[0]['deny_gid'];
- $arr['visible'] = 1;
- $arr['verb'] = ACTIVITY_TAG;
- $arr['obj_type'] = ACTIVITY_OBJ_PERSON;
- $arr['tgt_type'] = ACTIVITY_OBJ_PHOTO;
- $arr['tag'] = $tagged[4];
- $arr['inform'] = $tagged[2];
- $arr['origin'] = 1;
- $arr['body'] = sprintf( t('%1$s was tagged in %2$s by %3$s'), '[zrl=' . $tagged[1] . ']' . $tagged[0] . '[/zrl]', '[zrl=' . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource-id'] . ']' . t('a photo') . '[/zrl]', '[zrl=' . $owner_record['url'] . ']' . $owner_record['name'] . '[/zrl]') ;
-
- $arr['body'] .= "\n\n" . '[zrl=' . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource_id'] . ']' . '[zmg]' . $a->get_baseurl() . "/photo/" . $p[0]['resource_id'] . '-' . $best . '.' . $ext . '[/zmg][/zrl]' . "\n" ;
-
- $arr['object'] = '<object><type>' . ACTIVITY_OBJ_PERSON . '</type><title>' . $tagged[0] . '</title><id>' . $tagged[1] . '/' . $tagged[0] . '</id>';
- $arr['object'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $tagged[1] . '" />' . "\n");
- if($tagged[3])
- $arr['object'] .= xmlify('<link rel="photo" type="'.$p[0]['type'].'" href="' . $tagged[3]['photo'] . '" />' . "\n");
- $arr['object'] .= '</link></object>' . "\n";
-
- $arr['target'] = '<target><type>' . ACTIVITY_OBJ_PHOTO . '</type><title>' . $p[0]['desc'] . '</title><id>'
- . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource_id'] . '</id>';
- $arr['target'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource_id'] . '" />' . "\n" . '<link rel="preview" type="'.$p[0]['type'].'" href="' . $a->get_baseurl() . "/photo/" . $p[0]['resource_id'] . '-' . $best . '.' . $ext . '" />') . '</link></target>';
-
- $post = item_store($arr);
- $item_id = $post['item_id'];
-
- if($item_id) {
- q("UPDATE `item` SET `plink` = '%s' WHERE `uid` = %d AND `id` = %d LIMIT 1",
- dbesc($a->get_baseurl() . '/display/' . $owner_record['nickname'] . '/' . $item_id),
- intval($page_owner_uid),
- intval($item_id)
- );
-
- proc_run('php',"include/notifier.php","tag","$item_id");
- }
- }
+ $r = q("select * from item where id = %d and uid = %d limit 1",
+ intval($item_id),
+ intval($page_owner_uid)
+ );
+ if($r) {
+ $datarray = $r[0];
+ $datarray['term'] = $post_tags;
+ item_store_update($datarray,$execflag);
}
}
+
goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
return; // NOTREACHED
+
}
@@ -596,6 +463,8 @@ function photos_content(&$a) {
// Parse arguments
//
+ $can_comment = perm_is_allowed($a->profile['profile_uid'],get_observer_hash(),'post_comments');
+
if(argc() > 3) {
$datatype = argv(2);
$datum = argv(3);
@@ -636,6 +505,9 @@ function photos_content(&$a) {
$o = "";
+ $o .= "<script> var profile_uid = " . $a->profile['profile_uid']
+ . "; var netargs = '?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
+
// tabs
$_is_owner = (local_user() && (local_user() == $owner_uid));
@@ -655,12 +527,21 @@ function photos_content(&$a) {
return;
}
+
+
+ if(array_key_exists('albums', $a->data))
+ $albums = get_app()->data['albums'];
+ else
+ $albums = photos_albums_list($a->data['channel'],$a->data['observer']);
+
+
+
$selname = (($datum) ? hex2bin($datum) : '');
$albumselect = '<select id="photos-upload-album-select" name="album" size="4">';
$albumselect .= '<option value="" ' . ((! $selname) ? ' selected="selected" ' : '') . '>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>';
- if(count($a->data['albums'])) {
- foreach($a->data['albums'] as $album) {
+ if(count($albums)) {
+ foreach($albums as $album) {
if($album['text'] === '')
continue;
$selected = (($selname === $album['text']) ? ' selected="selected" ' : '');
@@ -686,8 +567,8 @@ function photos_content(&$a) {
/* Show space usage */
- $r = q("select sum(size) as total from photo where uid = %d and scale = 0 ",
- intval($a->data['channel']['channel_id'])
+ $r = q("select sum(size) as total from photo where aid = %d and scale = 0 ",
+ intval($a->data['channel']['channel_account_id'])
);
@@ -759,7 +640,7 @@ function photos_content(&$a) {
else
$order = 'DESC';
- $r = q("SELECT `resource_id`, `id`, `filename`, type, max(`scale`) AS `scale`, `desc` FROM `photo` WHERE `uid` = %d AND `album` = '%s'
+ $r = q("SELECT `resource_id`, `id`, `filename`, type, max(`scale`) AS `scale`, `description` FROM `photo` WHERE `uid` = %d AND `album` = '%s'
AND `scale` <= 4 and (photo_flags = %d or photo_flags = %d ) $sql_extra GROUP BY `resource_id` ORDER BY `created` $order LIMIT %d , %d",
intval($owner_uid),
dbesc($album),
@@ -825,25 +706,24 @@ function photos_content(&$a) {
$ext = $phototypes[$rr['type']];
- if($a->get_template_engine() === 'internal') {
- $imgalt_e = template_escape($rr['filename']);
- $desc_e = template_escape($rr['desc']);
- }
- else {
- $imgalt_e = $rr['filename'];
- $desc_e = $rr['desc'];
- }
+ $imgalt_e = $rr['filename'];
+ $desc_e = $rr['description'];
+
+// prettyphoto has potential license issues, so we can no longer include it in core
+// The following lines would need to be modified so that they are provided in theme specific files
+// instead of core modules for themes that wish to make use of prettyphoto. I would suggest
+// the feature as a per-theme display option and putting the rel line inside a template.
- if(feature_enabled($a->data['channel']['channel_id'],'prettyphoto')){
- $imagelink = ($a->get_baseurl() . '/photo/' . $rr['resource_id'] . '.' . $ext );
- $rel=("prettyPhoto[pp_gal]");
- }
- else {
+// if(feature_enabled($a->data['channel']['channel_id'],'prettyphoto')){
+// $imagelink = ($a->get_baseurl() . '/photo/' . $rr['resource_id'] . '.' . $ext );
+// $rel=("prettyPhoto[pp_gal]");
+// }
+// else {
$imagelink = ($a->get_baseurl() . '/photos/' . $a->data['channel']['channel_address'] . '/image/' . $rr['resource_id']
. (($_GET['order'] === 'posted') ? '?f=&order=posted' : ''));
$rel=("photo");
- }
+// }
$o .= replace_macros($tpl,array(
'$id' => $rr['id'],
@@ -854,6 +734,8 @@ function photos_content(&$a) {
'$imgsrc' => $a->get_baseurl() . '/photo/' . $rr['resource_id'] . '-' . $rr['scale'] . '.' .$ext,
'$imgalt' => $imgalt_e,
'$desc'=> $desc_e,
+ '$ext' => $ext,
+ '$hash'=> $rr['resource_id'],
));
}
@@ -872,7 +754,7 @@ function photos_content(&$a) {
// fetch image, item containing image, then comments
- $ph = q("SELECT aid,uid,xchan,resource_id,created,edited,title,`desc`,album,filename,`type`,height,width,`size`,scale,profile,photo_flags,allow_cid,allow_gid,deny_cid,deny_gid FROM `photo` WHERE `uid` = %d AND `resource_id` = '%s'
+ $ph = q("SELECT aid,uid,xchan,resource_id,created,edited,title,`description`,album,filename,`type`,height,width,`size`,scale,profile,photo_flags,allow_cid,allow_gid,deny_cid,deny_gid FROM `photo` WHERE `uid` = %d AND `resource_id` = '%s'
and (photo_flags = %d or photo_flags = %d ) $sql_extra ORDER BY `scale` ASC ",
intval($owner_uid),
dbesc($datum),
@@ -885,7 +767,7 @@ function photos_content(&$a) {
/* Check again - this time without specifying permissions */
- $ph = q("SELECT `id` FROM `photo` WHERE `uid` = %d AND `resource_id` = '%s'
+ $ph = q("SELECT id FROM photo WHERE uid = %d AND resource_id = '%s'
and ( photo_flags = %d or photo_flags = %d )
LIMIT 1",
intval($owner_uid),
@@ -900,6 +782,8 @@ function photos_content(&$a) {
return;
}
+
+
$prevlink = '';
$nextlink = '';
@@ -995,6 +879,9 @@ function photos_content(&$a) {
if($linked_items) {
+ xchan_query($linked_items);
+ $linked_items = fetch_post_tags($linked_items,true);
+
$link_item = $linked_items[0];
$r = q("select * from item where parent_mid = '%s'
@@ -1010,6 +897,21 @@ function photos_content(&$a) {
$r = conv_sort($r,'commented');
}
+
+
+ $tags = array();
+ if($link_item['term']) {
+ $cnt = 0;
+ foreach($link_item['term'] as $t)
+ $tags[$cnt] = array(0 => format_term_for_display($t));
+ if($can_post && ($ph[0]['uid'] == $owner_uid)) {
+ $tags[$cnt][1] = 'tagrm?f=&item=' . $link_item['id'];
+ $tags[$cnt][2] = t('Remove');
+ }
+ $cnt ++;
+ }
+
+
if((local_user()) && (local_user() == $link_item['uid'])) {
q("UPDATE `item` SET item_flags = (item_flags ^ %d) WHERE parent = %d and uid = %d and (item_flags & %d)",
intval(ITEM_UNSEEN),
@@ -1020,6 +922,8 @@ function photos_content(&$a) {
}
}
+// logger('mod_photo: link_item' . print_r($link_item,true));
+
// FIXME - remove this when we move to conversation module
$r = $r[0]['children'];
@@ -1028,7 +932,7 @@ function photos_content(&$a) {
if($can_post) {
$album_e = $ph[0]['album'];
- $caption_e = $ph[0]['desc'];
+ $caption_e = $ph[0]['description'];
$aclselect_e = populate_acl($ph[0]);
$edit = array(
@@ -1043,7 +947,6 @@ function photos_content(&$a) {
'capt_label' => t('Caption'),
'caption' => $caption_e,
'tag_label' => t('Add a Tag'),
- 'tags' => $link_item['tag'],
'permissions' => t('Permissions'),
'aclselect' => $aclselect_e,
'help_tags' => t('Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping'),
@@ -1063,7 +966,7 @@ function photos_content(&$a) {
$likebuttons = '';
- if($can_post || $a->data['perms']['post_comments']) {
+ if($can_post || $can_comment) {
$likebuttons = replace_macros($like_tpl,array(
'$id' => $link_item['id'],
'$likethis' => t("I like this \x28toggle\x29"),
@@ -1075,7 +978,7 @@ function photos_content(&$a) {
$comments = '';
if(! count($r)) {
- if($can_post || $a->data['perms']['post_comments']) {
+ if($can_post || $can_comment) {
$comments .= replace_macros($cmnt_tpl,array(
'$return_path' => '',
'$mode' => 'photos',
@@ -1163,7 +1066,7 @@ function photos_content(&$a) {
}
- if($can_post || $a->data['perms']['post_comments']) {
+ if($can_post || $can_comment) {
$comments .= replace_macros($cmnt_tpl,array(
'$return_path' => '',
'$jsreload' => $return_url,
@@ -1185,10 +1088,10 @@ function photos_content(&$a) {
}
$album_e = array($album_link,$ph[0]['album']);
- $tags_e = $tags;
$like_e = $like;
$dislike_e = $dislike;
+
$photo_tpl = get_markup_template('photo_view.tpl');
$o .= replace_macros($photo_tpl, array(
'$id' => $ph[0]['id'],
@@ -1198,8 +1101,9 @@ function photos_content(&$a) {
'$photo' => $photo,
'$prevlink' => $prevlink,
'$nextlink' => $nextlink,
- '$desc' => $ph[0]['desc'],
- '$tags' => $tags_e,
+ '$desc' => $ph[0]['description'],
+ '$tag_hdr' => t('In This Photo:'),
+ '$tags' => $tags,
'$edit' => $edit,
'$likebuttons' => $likebuttons,
'$like' => $like_e,
diff --git a/mod/ping.php b/mod/ping.php
index 414f06e53..b9d9a9c77 100644
--- a/mod/ping.php
+++ b/mod/ping.php
@@ -43,6 +43,38 @@ function ping_init(&$a) {
unset($_SESSION['sysmsg_info']);
}
+ if($a->install) {
+ echo json_encode($result);
+ killme();
+ }
+
+
+ if(get_observer_hash() && (! $result['invalid'])) {
+ $r = q("select cp_id, cp_room from chatpresence where cp_xchan = '%s' and cp_client = '%s' and cp_room = 0 limit 1",
+ dbesc(get_observer_hash()),
+ dbesc($_SERVER['REMOTE_ADDR'])
+ );
+ $basic_presence = false;
+ if($r) {
+ $basic_presence = true;
+ q("update chatpresence set cp_last = '%s' where cp_id = %d limit 1",
+ dbesc(datetime_convert()),
+ intval($r[0]['cp_id'])
+ );
+ }
+ if(! $basic_presence) {
+ q("insert into chatpresence ( cp_xchan, cp_last, cp_status, cp_client)
+ values( '%s', '%s', '%s', '%s' ) ",
+ dbesc(get_observer_hash()),
+ dbesc(datetime_convert()),
+ dbesc('online'),
+ dbesc($_SERVER['REMOTE_ADDR'])
+ );
+ }
+ }
+
+ q("delete from chatpresence where cp_last < UTC_TIMESTAMP() - INTERVAL 3 MINUTE");
+
if((! local_user()) || ($result['invalid'])) {
echo json_encode($result);
killme();
@@ -151,7 +183,7 @@ function ping_init(&$a) {
foreach($t as $zz) {
// $msg = sprintf( t('sent you a private message.'), $zz['xchan_name']);
$notifs[] = array(
- 'notify_link' => $a->get_baseurl() . '/message/' . $zz['id'],
+ 'notify_link' => $a->get_baseurl() . '/mail/' . $zz['id'],
'name' => $zz['xchan_name'],
'url' => $zz['xchan_url'],
'photo' => $zz['xchan_photo_s'],
@@ -209,7 +241,7 @@ function ping_init(&$a) {
if($r) {
foreach($r as $rr) {
$result[] = array(
- 'notify_link' => $a->get_baseurl() . '/connections/' . $rr['abook_id'],
+ 'notify_link' => $a->get_baseurl() . '/connedit/' . $rr['abook_id'],
'name' => $rr['xchan_name'],
'url' => $rr['xchan_url'],
'photo' => $rr['xchan_photo_s'],
diff --git a/mod/post.php b/mod/post.php
index 73345c4e9..6c57bfa0d 100644
--- a/mod/post.php
+++ b/mod/post.php
@@ -69,6 +69,7 @@ function post_init(&$a) {
* "success":1,
* "confirm":"q0Ysovd1u..."
* "service_class":(optional)
+ * "level":(optional)
* }
*
* 'confirm' in this case is the base64url encoded RSA signature of the concatenation of 'secret' with the
@@ -150,6 +151,7 @@ function post_init(&$a) {
$remote = remote_user();
$result = null;
$remote_service_class = '';
+ $remote_level = 0;
$remote_hub = $x[0]['hubloc_url'];
// Also check that they are coming from the same site as they authenticated with originally.
@@ -210,6 +212,8 @@ function post_init(&$a) {
}
if(array_key_exists('service_class',$j))
$remote_service_class = $j['service_class'];
+ if(array_key_exists('level',$j))
+ $remote_level = $j['level'];
}
// everything is good... maybe
if(local_user()) {
@@ -232,7 +236,7 @@ function post_init(&$a) {
if($test) {
$ret['success'] = true;
- $ret['message'] .= 'Success' . EOL;
+ $ret['message'] .= 'Authentication Success!' . EOL;
json_return_and_die($ret);
}
@@ -241,6 +245,7 @@ function post_init(&$a) {
$_SESSION['visitor_id'] = $x[0]['xchan_hash'];
$_SESSION['my_address'] = $address;
$_SESSION['remote_service_class'] = $remote_service_class;
+ $_SESSION['remote_level'] = $remote_level;
$_SESSION['remote_hub'] = $remote_hub;
$arr = array('xchan' => $x[0], 'url' => $desturl, 'session' => $_SESSION);
@@ -250,6 +255,11 @@ function post_init(&$a) {
$a->set_groups(init_groups_visitor($_SESSION['visitor_id']));
info(sprintf( t('Welcome %s. Remote authentication successful.'),$x[0]['xchan_name']));
logger('mod_zot: auth success from ' . $x[0]['xchan_addr']);
+ q("update hubloc set hubloc_status = (hubloc_status | %d ) where hubloc_id = %d ",
+ intval(HUBLOC_WORKS),
+ intval($x[0]['hubloc_id'])
+ );
+
} else {
if($test) {
@@ -294,9 +304,9 @@ function post_init(&$a) {
*
* Once decrypted, one will find the normal json_encoded zot message packet.
*
- * Defined packet types are: notify, purge, refresh, auth_check, ping, and pickup
+ * Defined packet types are: notify, purge, refresh, force_refresh, auth_check, ping, and pickup
*
- * Standard packet: (used by notify, purge, refresh, and auth_check)
+ * Standard packet: (used by notify, purge, refresh, force_refresh, and auth_check)
*
* {
* "type": "notify",
@@ -440,14 +450,12 @@ function post_init(&$a) {
function post_post(&$a) {
- logger('mod_zot: ' . print_r($_REQUEST,true), LOGGER_DEBUG);
$encrypted_packet = false;
$ret = array('success' => false);
$data = json_decode($_REQUEST['data'],true);
- logger('mod_zot: data: ' . print_r($data,true), LOGGER_DATA);
/**
* Many message packets will arrive encrypted. The existence of an 'iv' element
@@ -476,7 +484,6 @@ function post_post(&$a) {
$data = array('type' => 'bogus');
}
- logger('mod_zot: decoded data: ' . print_r($data,true), LOGGER_DATA);
$msgtype = ((array_key_exists('type',$data)) ? $data['type'] : '');
@@ -485,6 +492,7 @@ function post_post(&$a) {
// Useful to get a health check on a remote site.
// This will let us know if any important communication details
// that we may have stored are no longer valid, regardless of xchan details.
+ logger('POST: got ping send pong now back: ' . z_root() , LOGGER_DEBUG );
$ret['success'] = true;
$ret['site'] = array();
@@ -785,10 +793,13 @@ function post_post(&$a) {
}
}
- if($msgtype === 'refresh') {
+ if(($msgtype === 'refresh') || ($msgtype === 'force_refresh')) {
// remote channel info (such as permissions or photo or something)
// has been updated. Grab a fresh copy and sync it.
+ // The difference between refresh and force_refresh is that
+ // force_refresh unconditionally creates a directory update record,
+ // even if no changes were detected upon processing.
if($recipients) {
@@ -806,7 +817,7 @@ function post_post(&$a) {
'xchan_guid' => $sender['guid'],
'xchan_guid_sig' => $sender['guid_sig'],
'hubloc_url' => $sender['url']
- ),$r[0]);
+ ),$r[0], (($msgtype === 'force_refresh') ? true : false));
}
}
else {
@@ -817,7 +828,7 @@ function post_post(&$a) {
'xchan_guid' => $sender['guid'],
'xchan_guid_sig' => $sender['guid_sig'],
'hubloc_url' => $sender['url']
- ),null);
+ ),null,(($msgtype === 'force_refresh') ? true : false));
}
$ret['success'] = true;
json_return_and_die($ret);
diff --git a/mod/profile_photo.php b/mod/profile_photo.php
index e86e2a828..876e3a931 100644
--- a/mod/profile_photo.php
+++ b/mod/profile_photo.php
@@ -14,16 +14,6 @@ function profile_photo_init(&$a) {
}
-function profile_photo_aside(&$a) {
-
- if(! local_user()) {
- return;
- }
-
- profile_create_sidebar($a);
-}
-
-
function profile_photo_post(&$a) {
if(! local_user()) {
diff --git a/mod/profiles.php b/mod/profiles.php
index 173d97138..c71ad9733 100644
--- a/mod/profiles.php
+++ b/mod/profiles.php
@@ -146,17 +146,6 @@ function profiles_init(&$a) {
}
}
-function profiles_aside(&$a) {
-
- if(! local_user()) {
- return;
- }
-
- if((argc() > 1) && (intval(argv(1)))) {
- profile_create_sidebar($a);
- }
-}
-
function profiles_post(&$a) {
if(! local_user()) {
@@ -267,35 +256,23 @@ function profiles_post(&$a) {
if(strpos($lookup,'@') === 0)
$lookup = substr($lookup,1);
$lookup = str_replace('_',' ', $lookup);
- if(strpos($lookup,'@') || (strpos($lookup,'http://'))) {
- $newname = $lookup;
- $links = @lrdd($lookup);
- if(count($links)) {
- foreach($links as $link) {
- if($link['@attributes']['rel'] === 'http://webfinger.net/rel/profile-page') {
- $prf = $link['@attributes']['href'];
- }
- }
- }
- }
- else {
- $newname = $lookup;
-
- $r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
- dbesc($newname),
+ $newname = $lookup;
+
+ $r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash WHERE xchan_name = '%s' AND abook_channel = %d LIMIT 1",
+ dbesc($newname),
+ intval(local_user())
+ );
+ if(! $r) {
+ $r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash WHERE xchan_addr = '%s' AND abook_channel = %d LIMIT 1",
+ dbesc($lookup . '@%'),
intval(local_user())
);
- if(! $r) {
- $r = q("SELECT * FROM `contact` WHERE `nick` = '%s' AND `uid` = %d LIMIT 1",
- dbesc($lookup),
- intval(local_user())
- );
- }
- if(count($r)) {
- $prf = $r[0]['url'];
- $newname = $r[0]['name'];
- }
}
+ if($r) {
+ $prf = $r[0]['xchan_url'];
+ $newname = $r[0]['xchan_name'];
+ }
+
if($prf) {
$with = str_replace($lookup,'<a href="' . $prf . '">' . $newname . '</a>', $with);
@@ -621,6 +598,8 @@ function profiles_content(&$a) {
$tpl_header = get_markup_template('profile_listing_header.tpl');
$o .= replace_macros($tpl_header,array(
'$header' => t('Edit/Manage Profiles'),
+ '$addstuff' => t('Add profile things'),
+ '$stuff_desc' => t('Include desirable objects in your profile'),
'$chg_photo' => t('Change profile photo'),
'$cr_new' => t('Create New Profile'),
'$cr_new_link' => 'profiles/new?t=' . get_form_security_token("profile_new")
diff --git a/mod/profperm.php b/mod/profperm.php
index 8054851e8..08838831b 100644
--- a/mod/profperm.php
+++ b/mod/profperm.php
@@ -1,11 +1,15 @@
<?php
+require_once('include/Contact.php');
+
function profperm_init(&$a) {
if(! local_user())
return;
- $which = $a->user['nickname'];
+ $channel = $a->get_channel();
+ $which = $channel['channel_address'];
+
$profile = $a->argv[1];
profile_load($a,$which,$profile);
@@ -13,15 +17,6 @@ function profperm_init(&$a) {
}
-function profperm_aside(&$a) {
-
- if(! local_user())
- return;
-
- profile_create_sidebar($a);
-}
-
-
function profperm_content(&$a) {
if(! local_user()) {
@@ -30,7 +25,7 @@ function profperm_content(&$a) {
}
- if($a->argc < 2) {
+ if(argc() < 2) {
notice( t('Invalid profile identifier.') . EOL );
return;
}
@@ -44,59 +39,59 @@ function profperm_content(&$a) {
$switchtotext = 400;
- if(($a->argc > 2) && intval($a->argv[1]) && intval($a->argv[2])) {
- $r = q("SELECT `id` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `self` = 0
- AND `network` = 'dfrn' AND `id` = %d AND `uid` = %d LIMIT 1",
- intval($a->argv[2]),
+ if((argc() > 2) && intval(argv(1)) && intval(argv(2))) {
+ $r = q("SELECT abook_id FROM abook WHERE abook_id = %d and abook_channel = %d limit 1",
+ intval(argv(2)),
intval(local_user())
);
- if(count($r))
- $change = intval($a->argv[2]);
+ if($r)
+ $change = intval(argv(2));
}
- if(($a->argc > 1) && (intval($a->argv[1]))) {
+ if((argc() > 1) && (intval(argv(1)))) {
$r = q("SELECT * FROM `profile` WHERE `id` = %d AND `uid` = %d AND `is_default` = 0 LIMIT 1",
- intval($a->argv[1]),
+ intval(argv(1)),
intval(local_user())
);
- if(! count($r)) {
+ if(! $r) {
notice( t('Invalid profile identifier.') . EOL );
return;
}
+
$profile = $r[0];
- $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `profile_id` = %d",
+ $r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash WHERE abook_channel = %d AND abook_profile = %d",
intval(local_user()),
- intval($a->argv[1])
+ intval(argv(1))
);
$ingroup = array();
- if(count($r))
+ if($r)
foreach($r as $member)
- $ingroup[] = $member['id'];
+ $ingroup[] = $member['abook_id'];
$members = $r;
if($change) {
if(in_array($change,$ingroup)) {
- q("UPDATE `contact` SET `profile_id` = 0 WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ q("UPDATE abook SET abook_profile = 0 WHERE abook_id = %d AND abook_channel = %d LIMIT 1",
intval($change),
intval(local_user())
);
}
else {
- q("UPDATE `contact` SET `profile_id` = %d WHERE `id` = %d AND `uid` = %d LIMIT 1",
- intval($a->argv[1]),
+ q("UPDATE abook SET abook_profile = %d WHERE abook_id = %d AND abook_channel = %d LIMIT 1",
+ intval(argv(1)),
intval($change),
intval(local_user())
);
}
- $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `profile_id` = %d",
+ $r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash WHERE abook_channel = %d AND abook_profile = %d",
intval(local_user()),
- intval($a->argv[1])
+ intval(argv(1))
);
$members = $r;
@@ -104,7 +99,7 @@ function profperm_content(&$a) {
$ingroup = array();
if(count($r))
foreach($r as $member)
- $ingroup[] = $member['id'];
+ $ingroup[] = $member['abook_id'];
}
$o .= '<h2>' . t('Profile Visibility Editor') . '</h2>';
@@ -127,8 +122,8 @@ function profperm_content(&$a) {
$textmode = (($switchtotext && (count($members) > $switchtotext)) ? true : false);
foreach($members as $member) {
- if($member['url']) {
- $member['click'] = 'profChangeMember(' . $profile['id'] . ',' . $member['id'] . '); return true;';
+ if($member['xchan_url']) {
+ $member['click'] = 'profChangeMember(' . $profile['id'] . ',' . $member['abook_id'] . '); return false;';
$o .= micropro($member,true,'mpprof', $textmode);
}
}
@@ -136,20 +131,17 @@ function profperm_content(&$a) {
$o .= '<hr id="prof-separator" />';
$o .= '<div id="prof-all-contcts-title">';
- $o .= '<h3>' . t("All Contacts \x28with secure profile access\x29") . '</h3>';
+ $o .= '<h3>' . t("All Connections") . '</h3>';
$o .= '</div>';
$o .= '<div id="prof-all-contacts">';
- $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `blocked` = 0 and `pending` = 0 and `self` = 0
- AND `network` = 'dfrn' ORDER BY `name` ASC",
- intval(local_user())
- );
+ $r = abook_connections(local_user());
- if(count($r)) {
+ if($r) {
$textmode = (($switchtotext && (count($r) > $switchtotext)) ? true : false);
foreach($r as $member) {
- if(! in_array($member['id'],$ingroup)) {
- $member['click'] = 'profChangeMember(' . $profile['id'] . ',' . $member['id'] . '); return true;';
+ if(! in_array($member['abook_id'],$ingroup)) {
+ $member['click'] = 'profChangeMember(' . $profile['id'] . ',' . $member['abook_id'] . '); return false;';
$o .= micropro($member,true,'mpprof',$textmode);
}
}
diff --git a/mod/pubsites.php b/mod/pubsites.php
index c15ba31ac..c08ca2ae5 100644
--- a/mod/pubsites.php
+++ b/mod/pubsites.php
@@ -29,8 +29,10 @@ function pubsites_content(&$a) {
$j = json_decode($ret['body'],true);
if($j) {
$o .= '<table border="1"><tr><td>' . t('Site URL') . '</td><td>' . t('Access Type') . '</td><td>' . t('Registration Policy') . '</td><td>' . t('Location') . '</td></tr>';
- foreach($j['sites'] as $jj) {
- $o .= '<tr><td>' . '<a href="'. (($jj['sellpage']) ? $jj['sellpage'] : $jj['url'] . '/register' ) . '" >' . $jj['url'] . '</a>' . '</td><td>' . $jj['access'] . '</td><td>' . $jj['register'] . '</td><td>' . $jj['location'] . '</td></tr>';
+ if($j['sites']) {
+ foreach($j['sites'] as $jj) {
+ $o .= '<tr><td>' . '<a href="'. (($jj['sellpage']) ? $jj['sellpage'] : $jj['url'] . '/register' ) . '" >' . $jj['url'] . '</a>' . '</td><td>' . $jj['access'] . '</td><td>' . $jj['register'] . '</td><td>' . $jj['location'] . '</td></tr>';
+ }
}
$o .= '</table>';
diff --git a/mod/qsearch.php b/mod/qsearch.php
deleted file mode 100644
index c35e253b6..000000000
--- a/mod/qsearch.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-function qsearch_init(&$a) {
-
- if(! local_user())
- killme();
-
- $limit = (get_config('system','qsearch_limit') ? intval(get_config('system','qsearch_limit')) : 100);
-
- $search = ((x($_GET,'s')) ? notags(trim(urldecode($_GET['s']))) : '');
-
- if(! strlen($search))
- killme();
-
-
- if($search)
- $search = dbesc($search);
-
- $results = array();
-
- $r = q("SELECT * FROM `group` WHERE `name` REGEXP '$search' AND `deleted` = 0 AND `uid` = %d LIMIT 0, %d ",
- intval(local_user()),
- intval($limit)
- );
-
- if(count($r)) {
-
- foreach($r as $rr)
- $results[] = array( 0, (int) $rr['id'], $rr['name'], '', '');
- }
-
- $sql_extra = ((strlen($search)) ? " AND (`name` REGEXP '$search' OR `nick` REGEXP '$search') " : "");
-
-
- $r = q("SELECT * FROM `contact` WHERE `uid` = %d $sql_extra ORDER BY `name` ASC LIMIT 0, %d ",
- intval(local_user()),
- intval($limit)
- );
-
-
- if(count($r)) {
-
- foreach($r as $rr)
- $results[] = array( (int) $rr['id'], 0, $rr['name'],$rr['url'],$rr['photo']);
- }
-
- echo json_encode((object) $results);
- killme();
-}
-
diff --git a/mod/rbmark.php b/mod/rbmark.php
new file mode 100644
index 000000000..1c962152c
--- /dev/null
+++ b/mod/rbmark.php
@@ -0,0 +1,112 @@
+<?php /** @file */
+
+require_once('acl_selectors.php');
+require_once('include/crypto.php');
+require_once('include/items.php');
+require_once('include/taxonomy.php');
+require_once('include/conversation.php');
+require_once('include/zot.php');
+require_once('include/bookmarks.php');
+
+/**
+ * remote bookmark
+ *
+ * https://yoursite/rbmark?f=&title=&url=&private=&remote_return=
+ *
+ * This can be called via either GET or POST, use POST for long body content as suhosin often limits GET parameter length
+ *
+ * f= placeholder, often required
+ * title= link text
+ * url= URL to bookmark
+ * ischat=1 if this bookmark is a chatroom
+ * private= Don't share this link
+ * remote_return= absolute URL to return after posting is finished
+ *
+ */
+
+function rbmark_post(&$a) {
+ if($_POST['submit'] !== t('Save'))
+ return;
+
+ logger('rbmark_post: ' . print_r($_REQUEST,true));
+
+ $channel = $a->get_channel();
+
+ $t = array('url' => escape_tags($_REQUEST['url']),'term' => escape_tags($_REQUEST['title']));
+ bookmark_add($channel,$channel,$t,((x($_REQUEST,'private')) ? intval($_REQUEST['private']) : 0),
+ array('menu_id' => ((x($_REQUEST,'menu_id')) ? intval($_REQUEST['menu_id']) : 0),
+ 'menu_name' => ((x($_REQUEST,'menu_name')) ? escape_tags($_REQUEST['menu_name']) : '')
+ ));
+
+ goaway(z_root() . '/bookmarks');
+
+}
+
+
+function rbmark_content(&$a) {
+
+ $o = '';
+
+ if(! local_user()) {
+
+ // The login procedure is going to bugger our $_REQUEST variables
+ // so save them in the session.
+
+ if(array_key_exists('url',$_REQUEST)) {
+ $_SESSION['bookmark'] = $_REQUEST;
+ }
+ return login();
+ }
+
+ // If we have saved rbmark session variables, but nothing in the current $_REQUEST, recover the saved variables
+
+ if((! array_key_exists('url',$_REQUEST)) && (array_key_exists('bookmark',$_SESSION))) {
+ $_REQUEST = $_SESSION['bookmark'];
+ unset($_SESSION['bookmark']);
+ }
+
+ if($_REQUEST['remote_return']) {
+ $_SESSION['remote_return'] = $_REQUEST['remote_return'];
+ }
+ if(argc() > 1 && argv(1) === 'return') {
+ if($_SESSION['remote_return'])
+ goaway($_SESSION['remote_return']);
+ goaway(z_root() . '/bookmarks');
+ }
+
+ $channel = $a->get_channel();
+
+ $m = menu_list($channel,'',MENU_BOOKMARK);
+ $menus = array();
+ if($m) {
+ $menus = array(0 => '');
+ foreach($m as $n) {
+ $menus[$n['menu_id']] = $n['menu_name'];
+ }
+ }
+ $menu_select = array('menu_id',t('Select a bookmark folder'),false,'',$menus);
+
+
+ $o .= replace_macros(get_markup_template('rbmark.tpl'), array(
+
+ '$header' => t('Save Bookmark'),
+ '$url' => array('url',t('URL of bookmark'),escape_tags($_REQUEST['url'])),
+ '$title' => array('title',t('Description'),escape_tags($_REQUEST['title'])),
+ '$ischat' => (($ischat) ? 1 : 0),
+ '$private' => (($private) ? 1 : 0),
+ '$submit' => t('Save'),
+ '$menu_name' => array('menu_name',t('Or enter new bookmark folder name'),'',''),
+ '$menus' => $menu_select
+
+ ));
+
+
+
+
+
+
+ return $o;
+
+}
+
+
diff --git a/mod/redir.php b/mod/redir.php
deleted file mode 100644
index 113f6c200..000000000
--- a/mod/redir.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-function redir_init(&$a) {
-
- $url = ((x($_GET,'url')) ? $_GET['url'] : '');
-
- // traditional DFRN
-
- if(local_user() && $a->argc > 1 && intval($a->argv[1])) {
-
- $cid = $a->argv[1];
-
- $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
- intval($cid),
- intval(local_user())
- );
-
- if((! count($r)) || ($r[0]['network'] !== NETWORK_DFRN))
- goaway(z_root());
-
- $dfrn_id = $orig_id = (($r[0]['issued_id']) ? $r[0]['issued_id'] : $r[0]['dfrn_id']);
-
- if($r[0]['duplex'] && $r[0]['issued_id']) {
- $orig_id = $r[0]['issued_id'];
- $dfrn_id = '1:' . $orig_id;
- }
- if($r[0]['duplex'] && $r[0]['dfrn_id']) {
- $orig_id = $r[0]['dfrn_id'];
- $dfrn_id = '0:' . $orig_id;
- }
-
- $sec = random_string();
-
- q("INSERT INTO `profile_check` ( `uid`, `cid`, `dfrn_id`, `sec`, `expire`)
- VALUES( %d, %s, '%s', '%s', %d )",
- intval(local_user()),
- intval($cid),
- dbesc($dfrn_id),
- dbesc($sec),
- intval(time() + 45)
- );
-
- logger('mod_redir: ' . $r[0]['name'] . ' ' . $sec, LOGGER_DEBUG);
- $dest = (($url) ? '&destination_url=' . $url : '');
- goaway ($r[0]['poll'] . '?dfrn_id=' . $dfrn_id
- . '&dfrn_version=' . DFRN_PROTOCOL_VERSION . '&type=profile&sec=' . $sec . $dest );
- }
-
- if(local_user())
- $handle = $a->user['nickname'] . '@' . substr($a->get_baseurl(),strpos($a->get_baseurl(),'://')+3);
- if(remote_user())
- $handle = $_SESSION['handle'];
-
- if($url) {
- $url = str_replace('{zid}','&zid=' . $handle,$url);
- goaway($url);
- }
-
- goaway(z_root());
-}
diff --git a/mod/register.php b/mod/register.php
index 2040732ff..990cce2ed 100644
--- a/mod/register.php
+++ b/mod/register.php
@@ -135,10 +135,17 @@ function register_post(&$a) {
function register_content(&$a) {
+ $registration_is = '';
+ $other_sites = '';
if(get_config('system','register_policy') == REGISTER_CLOSED) {
- notice("Permission denied." . EOL);
- return;
+ require_once('mod/pubsites.php');
+ return pubsites_content($a);
+ }
+
+ if(get_config('system','register_policy') == REGISTER_APPROVE) {
+ $registration_is = t('Registration on this site/hub is by approval only.');
+ $other_sites = t('<a href="pubsites">Register at another affiliated site/hub</a>');
}
$max_dailies = intval(get_config('system','max_daily_registrations'));
@@ -175,10 +182,14 @@ function register_content(&$a) {
$invite_code = ((x($_REQUEST,'invite_code')) ? strip_tags(trim($_REQUEST['invite_code'])) : "" );
+
+
$o = replace_macros(get_markup_template('register.tpl'), array(
'$title' => t('Registration'),
+ '$reg_is' => $registration_is,
'$registertext' => get_config('system','register_text'),
+ '$other_sites' => $other_sites,
'$invitations' => get_config('system','invitation_only'),
'$invite_desc' => t('Membership on this site is by invitation only.'),
'$label_invite' => t('Please enter your invitation code'),
diff --git a/mod/removeme.php b/mod/removeme.php
index 7af4719bd..f0b4ae3c0 100644
--- a/mod/removeme.php
+++ b/mod/removeme.php
@@ -50,7 +50,7 @@ function removeme_content(&$a) {
'$desc' => t('This will completely remove this channel from the network. Once this has been done it is not recoverable.'),
'$passwd' => t('Please enter your password for verification:'),
'$global' => array('global', t('Remove this channel and all its clones from the network'), false, t('By default only the instance of the channel located on this hub will be removed from the network')),
- '$submit' => t('Remove My Account')
+ '$submit' => t('Remove Channel')
));
return $o;
diff --git a/mod/rmagic.php b/mod/rmagic.php
index b8c1c6553..946277327 100644
--- a/mod/rmagic.php
+++ b/mod/rmagic.php
@@ -22,31 +22,53 @@ function rmagic_init(&$a) {
function rmagic_post(&$a) {
- $address = $_REQUEST['address'];
+ $address = trim($_REQUEST['address']);
+
if(strpos($address,'@') === false) {
- notice('Invalid address.');
- return;
- }
+ $arr = array('address' => $address);
+ call_hooks('reverse_magic_auth', $arr);
- $r = null;
- if($address) {
- $r = q("select hubloc_url from hubloc where hubloc_addr = '%s' limit 1",
- dbesc($address)
- );
- }
- if($r) {
- $url = $r[0]['hubloc_url'];
+ try {
+ require_once('library/openid/openid.php');
+ $openid = new LightOpenID(z_root());
+ $openid->identity = $address;
+ $openid->returnUrl = z_root() . '/openid';
+ goaway($openid->authUrl());
+ } catch (Exception $e) {
+ notice( t('We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID.').'<br /><br >'. t('The error message was:').' '.$e->getMessage());
+ }
+
+ // if they're still here...
+ notice( t('Authentication failed.') . EOL);
+ return;
}
else {
- $url = 'https://' . substr($address,strpos($address,'@')+1);
- }
- if($url) {
- $dest = z_root() . '/' . str_replace('zid=','zid_=',$a->query_string);
- goaway($url . '/magic' . '?f=&dest=' . $dest);
- }
+ // Presumed Red identity. Perform reverse magic auth
+
+ if(strpos($address,'@') === false) {
+ notice('Invalid address.');
+ return;
+ }
+ $r = null;
+ if($address) {
+ $r = q("select hubloc_url from hubloc where hubloc_addr = '%s' limit 1",
+ dbesc($address)
+ );
+ }
+ if($r) {
+ $url = $r[0]['hubloc_url'];
+ }
+ else {
+ $url = 'https://' . substr($address,strpos($address,'@')+1);
+ }
+ if($url) {
+ $dest = z_root() . '/' . str_replace('zid=','zid_=',$a->query_string);
+ goaway($url . '/magic' . '?f=&dest=' . $dest);
+ }
+ }
}
diff --git a/mod/rpost.php b/mod/rpost.php
index 8e01ef5d4..18d4c86cd 100644
--- a/mod/rpost.php
+++ b/mod/rpost.php
@@ -33,7 +33,7 @@ function rpost_content(&$a) {
if(remote_user()) {
// redirect to your own site.
// We can only do this with a GET request so you'll need to keep the text short or risk getting truncated
- // by the wretched beast called 'shusoin'. All the browsers now allow long GET requests, but suhosin
+ // by the wretched beast called 'suhosin'. All the browsers now allow long GET requests, but suhosin
// blocks them.
$url = get_rpost_path($a->get_observer());
@@ -65,8 +65,10 @@ function rpost_content(&$a) {
if($_REQUEST['remote_return']) {
$_SESSION['remote_return'] = $_REQUEST['remote_return'];
}
- if(argc() > 1 && argv(1) === 'return' && $_SESSION['remote_return']) {
- goaway($_SESSION['remote_return']);
+ if(argc() > 1 && argv(1) === 'return') {
+ if($_SESSION['remote_return'])
+ goaway($_SESSION['remote_return']);
+ goaway(z_root() . '/network');
}
$plaintext = true;
diff --git a/mod/search.php b/mod/search.php
index 7651b3a4e..22e521164 100644
--- a/mod/search.php
+++ b/mod/search.php
@@ -1,86 +1,19 @@
<?php
-function search_saved_searches() {
-
- if(! feature_enabled(local_user(),'savedsearch'))
- return '';
-
- $o = '';
-
- $r = q("select `tid`,`term` from `term` WHERE `uid` = %d and type = %d",
- intval(local_user()),
- intval(TERM_SAVEDSEARCH)
- );
-
- if(count($r)) {
- $o .= '<div id="saved-search-list" class="widget">';
- $o .= '<h3>' . t('Saved Searches') . '</h3>' . "\r\n";
- $o .= '<ul id="saved-search-ul">' . "\r\n";
- foreach($r as $rr) {
- $o .= '<li class="saved-search-li clear"><a href="search/?f=&remove=1&search=' . rawurlencode($rr['term']) . '" title="' . t('Remove term') . '" onclick="return confirmDelete();"><i class="icon-remove drop-icons"></i></a> <a href="search/?f=&search=' . $rr['term'] . '" class="savedsearchterm" >' . htmlspecialchars($rr['term']) . '</a></li>' . "\r\n";
- }
- $o .= '</ul><div class="clear"></div></div>' . "\r\n";
- }
-
- return $o;
-
-}
-
-
function search_init(&$a) {
-
- $search = ((x($_GET,'search')) ? trim(rawurldecode($_GET['search'])) : '');
-
- if(local_user()) {
- if(x($_GET,'save') && $search) {
- $r = q("select `tid` from `term` where `uid` = %d and `type` = %d and `term` = '%s' limit 1",
- intval(local_user()),
- intval(TERM_SAVEDSEARCH),
- dbesc($search)
- );
- if(! count($r)) {
- q("insert into `term` ( `uid`,`type`,`term` ) values ( %d, %d, '%s') ",
- intval(local_user()),
- intval(TERM_SAVEDSEARCH),
- dbesc($search)
- );
- }
- }
- if(x($_GET,'remove') && $search) {
- q("delete from `term` where `uid` = %d and `type` = %d and `term` = '%s' limit 1",
- intval(local_user()),
- intval(TERM_SAVEDSEARCH),
- dbesc($search)
- );
- }
-
- $a->page['aside'] .= search_saved_searches();
-
- }
- else {
- unset($_SESSION['theme']);
- unset($_SESSION['mobile_theme']);
- }
-
-
-
-}
-
-
-
-function search_post(&$a) {
- if(x($_POST,'search'))
- $a->data['search'] = $_POST['search'];
+ if(x($_REQUEST,'search'))
+ $a->data['search'] = $_REQUEST['search'];
}
function search_content(&$a,$update = 0, $load = false) {
- if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
- notice( t('Public access denied.') . EOL);
+ if((get_config('system','block_public')) || (get_config('system','block_public_search'))) {
+ if ((! local_user()) && (! remote_user())) {
+ notice( t('Public access denied.') . EOL);
return;
+ }
}
-
nav_set_selected('search');
require_once("include/bbcode.php");
@@ -133,10 +66,7 @@ function search_content(&$a,$update = 0, $load = false) {
);
}
else {
- if (get_config('system','use_fulltext_engine'))
- $sql_extra = sprintf(" AND MATCH (`item`.`body`) AGAINST ('".'"%s"'."' in boolean mode) ", dbesc(protect_sprintf($search)));
- else
- $sql_extra = sprintf(" AND `item`.`body` REGEXP '%s' ", dbesc(protect_sprintf(preg_quote($search))));
+ $sql_extra = sprintf(" AND `item`.`body` REGEXP '%s' ", dbesc(protect_sprintf(preg_quote($search))));
}
// Here is the way permissions work in the search module...
@@ -144,9 +74,6 @@ function search_content(&$a,$update = 0, $load = false) {
// OR your own posts if you are a logged in member
// No items will be shown if the member has a blocked profile wall.
-
-
-
if((! $update) && (! $load)) {
// This is ugly, but we can't pass the profile_uid through the session to the ajax updater,
@@ -170,6 +97,7 @@ function search_content(&$a,$update = 0, $load = false) {
'$spam' => '0',
'$nouveau' => '0',
'$wall' => '0',
+ '$list' => ((x($_REQUEST,'list')) ? intval($_REQUEST['list']) : 0),
'$page' => (($a->pager['page'] != 1) ? $a->pager['page'] : 1),
'$search' => (($tag) ? urlencode('#') : '') . $search,
'$order' => '',
@@ -223,63 +151,19 @@ function search_content(&$a,$update = 0, $load = false) {
}
if($r) {
-
-// $parents_str = ids_to_querystr($r,'item_id');
-
-// $items = q("SELECT `item`.*, `item`.`id` AS `item_id`
-// FROM `item`
-// WHERE item_restrict = 0
-// $sql_extra and parent in ( $parents_str ) "
-// );
-
xchan_query($r);
$items = fetch_post_tags($r,true);
-// $items = conv_sort($items,'created');
-
} else {
$items = array();
}
-//logger('mod_search: items ' . count($items));
-
-// $r = q("SELECT distinct(`item`.`mid`), `item`.*, `item`.`id` AS `item_id`,
-// `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`rel`,
-// `contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`,
-// `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`,
-// `user`.`nickname`
-// FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
-// LEFT JOIN `user` ON `user`.`uid` = `item`.`uid`
-// WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
-// AND (( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND `item`.`private` = 0 AND `user`.`hidewall` = 0 )
-// OR `item`.`uid` = %d )
-// AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
-// $sql_extra
-// group by `item`.`mid`
-// ORDER BY `received` DESC LIMIT %d , %d ",
-// intval(local_user()),
-// intval($a->pager['start']),
-// intval($a->pager['itemspage'])
-
-// );
-
-
-// $a = fetch_post_tags($a,true);
-
-// if(! $items) {//
-// info( t('No results.') . EOL);
-// return $o;
-// }
-
-
if($tag)
- $o .= '<h2>Items tagged with: ' . htmlspecialchars($search) . '</h2>';
+ $o .= '<h2>Items tagged with: ' . htmlspecialchars($search, ENT_COMPAT,'UTF-8') . '</h2>';
else
- $o .= '<h2>Search results for: ' . htmlspecialchars($search) . '</h2>';
+ $o .= '<h2>Search results for: ' . htmlspecialchars($search, ENT_COMPAT,'UTF-8') . '</h2>';
$o .= conversation($a,$items,'search',$update,'client');
-// $o .= alt_pager($a,count($r));
-
return $o;
}
diff --git a/mod/settings.php b/mod/settings.php
index 4d95f75b3..b88380ff0 100644
--- a/mod/settings.php
+++ b/mod/settings.php
@@ -16,14 +16,10 @@ function get_theme_config_file($theme){
}
function settings_init(&$a) {
- $a->profile_uid = local_user();
-}
-
-
-function settings_aside(&$a) {
+ if(! local_user())
+ return;
-if (! local_user())
- return;
+ $a->profile_uid = local_user();
// default is channel settings in the absence of other arguments
@@ -33,105 +29,7 @@ if (! local_user())
$a->argv[] = 'channel';
}
- $channel = $a->get_channel();
-
- $abook_self_id = 0;
-
- // Retrieve the 'self' address book entry for use in the auto-permissions link
- if(local_user()) {
- $abk = q("select abook_id from abook where abook_channel = %d and ( abook_flags & %d ) limit 1",
- intval(local_user()),
- intval(ABOOK_FLAG_SELF)
- );
- if($abk)
- $abook_self_id = $abk[0]['abook_id'];
- }
-
-
- $tabs = array(
- array(
- 'label' => t('Account settings'),
- 'url' => $a->get_baseurl(true).'/settings/account',
- 'selected' => ((argv(1) === 'account') ? 'active' : ''),
- ),
-
- array(
- 'label' => t('Channel settings'),
- 'url' => $a->get_baseurl(true).'/settings/channel',
- 'selected' => ((argv(1) === 'channel') ? 'active' : ''),
- ),
-
- array(
- 'label' => t('Additional features'),
- 'url' => $a->get_baseurl(true).'/settings/features',
- 'selected' => ((argv(1) === 'features') ? 'active' : ''),
- ),
-
- array(
- 'label' => t('Feature settings'),
- 'url' => $a->get_baseurl(true).'/settings/featured',
- 'selected' => ((argv(1) === 'featured') ? 'active' : ''),
- ),
-
- array(
- 'label' => t('Display settings'),
- 'url' => $a->get_baseurl(true).'/settings/display',
- 'selected' => ((argv(1) === 'display') ? 'active' : ''),
- ),
-
- array(
- 'label' => t('Connected apps'),
- 'url' => $a->get_baseurl(true) . '/settings/oauth',
- 'selected' => ((argv(1) === 'oauth') ? 'active' : ''),
- ),
-
- array(
- 'label' => t('Export channel'),
- 'url' => $a->get_baseurl(true) . '/uexport/basic',
- 'selected' => ''
- ),
-
-// array(
-// 'label' => t('Export account'),
-// 'url' => $a->get_baseurl(true) . '/uexport/complete',
-// 'selected' => ''
-// ),
-
- array(
- 'label' => t('Automatic Permissions (Advanced)'),
- 'url' => $a->get_baseurl(true) . '/connections/' . $abook_self_id,
- 'selected' => ''
- ),
-
-
- );
-
- if(feature_enabled(local_user(),'premium_channel')) {
- $tabs[] = array(
- 'label' => t('Premium Channel Settings'),
- 'url' => $a->get_baseurl(true) . '/connect/' . $channel['channel_address'],
- 'selected' => ''
- );
-
- }
-
- if(feature_enabled(local_user(),'channel_sources')) {
- $tabs[] = array(
- 'label' => t('Channel Sources'),
- 'url' => $a->get_baseurl(true) . '/sources',
- 'selected' => ''
- );
- }
-
-
-
- $tabtpl = get_markup_template("generic_links_widget.tpl");
- $a->page['aside'] = replace_macros($tabtpl, array(
- '$title' => t('Settings'),
- '$class' => 'settings-widget',
- '$items' => $tabs,
- ));
}
@@ -141,7 +39,7 @@ function settings_post(&$a) {
if(! local_user())
return;
-// logger('mod_settings: ' . print_r($_REQUEST,true));
+ // logger('mod_settings: ' . print_r($_REQUEST,true));
if(x($_SESSION,'submanage') && intval($_SESSION['submanage']))
return;
@@ -252,9 +150,12 @@ function settings_post(&$a) {
set_pconfig(local_user(),'system','mobile_theme',$mobile_theme);
}
+ $chanview_full = ((x($_POST,'chanview_full')) ? intval($_POST['chanview_full']) : 0);
+
set_pconfig(local_user(),'system','update_interval', $browser_update);
set_pconfig(local_user(),'system','itemspage', $itemspage);
set_pconfig(local_user(),'system','no_smilies',$nosmile);
+ set_pconfig(local_user(),'system','chanview_full',$chanview_full);
if ($theme == $a->channel['channel_theme']){
@@ -360,7 +261,7 @@ function settings_post(&$a) {
$maxreq = ((x($_POST,'maxreq')) ? intval($_POST['maxreq']) : 0);
$expire = ((x($_POST,'expire')) ? intval($_POST['expire']) : 0);
$def_group = ((x($_POST,'group-selection')) ? notags(trim($_POST['group-selection'])) : '');
-
+ $channel_menu = ((x($_POST['channel_menu'])) ? htmlspecialchars_decode(trim($_POST['channel_menu']),ENT_QUOTES) : '');
$expire_items = ((x($_POST,'expire_items')) ? intval($_POST['expire_items']) : 0);
$expire_starred = ((x($_POST,'expire_starred')) ? intval($_POST['expire_starred']) : 0);
@@ -368,6 +269,7 @@ function settings_post(&$a) {
$expire_network_only = ((x($_POST,'expire_network_only'))? intval($_POST['expire_network_only']) : 0);
$allow_location = (((x($_POST,'allow_location')) && (intval($_POST['allow_location']) == 1)) ? 1: 0);
+ $hide_presence = (((x($_POST,'hide_presence')) && (intval($_POST['hide_presence']) == 1)) ? 1: 0);
$publish = (((x($_POST,'profile_in_directory')) && (intval($_POST['profile_in_directory']) == 1)) ? 1: 0);
$page_flags = (((x($_POST,'page-flags')) && (intval($_POST['page-flags']))) ? intval($_POST['page-flags']) : 0);
@@ -407,6 +309,7 @@ function settings_post(&$a) {
$arr['channel_r_pages'] = (($_POST['view_pages']) ? $_POST['view_pages'] : 0);
$arr['channel_w_pages'] = (($_POST['write_pages']) ? $_POST['write_pages'] : 0);
$arr['channel_a_republish'] = (($_POST['republish']) ? $_POST['republish'] : 0);
+ $arr['channel_a_bookmark'] = (($_POST['bookmark']) ? $_POST['bookmark'] : 0);
$defperms = 0;
if(x($_POST['def_view_stream']))
@@ -443,6 +346,8 @@ function settings_post(&$a) {
$defperms += $_POST['def_write_pages'];
if(x($_POST['def_republish']))
$defperms += $_POST['def_republish'];
+ if(x($_POST['def_bookmark']))
+ $defperms += $_POST['def_bookmark'];
$notify = 0;
@@ -497,9 +402,10 @@ function settings_post(&$a) {
set_pconfig(local_user(),'system','post_joingroup', $post_joingroup);
set_pconfig(local_user(),'system','post_profilechange', $post_profilechange);
set_pconfig(local_user(),'system','blocktags',$blocktags);
+ set_pconfig(local_user(),'system','hide_online_status',$hide_presence);
+ set_pconfig(local_user(),'system','channel_menu',$channel_menu);
-
- $r = q("update channel set channel_name = '%s', channel_pageflags = %d, channel_timezone = '%s', channel_location = '%s', channel_notifyflags = %d, channel_max_anon_mail = %d, channel_max_friend_req = %d, channel_expire_days = %d, channel_default_group = '%s', channel_r_stream = %d, channel_r_profile = %d, channel_r_photos = %d, channel_r_abook = %d, channel_w_stream = %d, channel_w_wall = %d, channel_w_tagwall = %d, channel_w_comment = %d, channel_w_mail = %d, channel_w_photos = %d, channel_w_chat = %d, channel_a_delegate = %d, channel_r_storage = %d, channel_w_storage = %d, channel_r_pages = %d, channel_w_pages = %d, channel_a_republish = %d, channel_allow_cid = '%s', channel_allow_gid = '%s', channel_deny_cid = '%s', channel_deny_gid = '%s' where channel_id = %d limit 1",
+ $r = q("update channel set channel_name = '%s', channel_pageflags = %d, channel_timezone = '%s', channel_location = '%s', channel_notifyflags = %d, channel_max_anon_mail = %d, channel_max_friend_req = %d, channel_expire_days = %d, channel_default_group = '%s', channel_r_stream = %d, channel_r_profile = %d, channel_r_photos = %d, channel_r_abook = %d, channel_w_stream = %d, channel_w_wall = %d, channel_w_tagwall = %d, channel_w_comment = %d, channel_w_mail = %d, channel_w_photos = %d, channel_w_chat = %d, channel_a_delegate = %d, channel_r_storage = %d, channel_w_storage = %d, channel_r_pages = %d, channel_w_pages = %d, channel_a_republish = %d, channel_a_bookmark = %d, channel_allow_cid = '%s', channel_allow_gid = '%s', channel_deny_cid = '%s', channel_deny_gid = '%s' where channel_id = %d limit 1",
dbesc($username),
intval($pageflags),
dbesc($timezone),
@@ -526,6 +432,7 @@ function settings_post(&$a) {
intval($arr['channel_r_pages']),
intval($arr['channel_w_pages']),
intval($arr['channel_a_republish']),
+ intval($arr['channel_a_bookmark']),
dbesc($str_contact_allow),
dbesc($str_group_allow),
dbesc($str_contact_deny),
@@ -737,7 +644,7 @@ function settings_content(&$a) {
$arr[$fname] = array();
$arr[$fname][0] = $fdata[0];
foreach(array_slice($fdata,1) as $f) {
- $arr[$fname][1][] = array('feature_' .$f[0],$f[1],((intval(get_pconfig(local_user(),'feature',$f[0]))) ? "1" : ''),$f[2],array(t('Off'),t('On')));
+ $arr[$fname][1][] = array('feature_' .$f[0],$f[1],((intval(feature_enabled(local_user(),$f[0]))) ? "1" : ''),$f[2],array(t('Off'),t('On')));
}
}
@@ -830,6 +737,7 @@ function settings_content(&$a) {
$nosmile = get_pconfig(local_user(),'system','no_smilies');
$nosmile = (($nosmile===false)? '0': $nosmile); // default if not set: 0
+ $chanview = intval(get_pconfig(local_user(),'system','chanview_full'));
$theme_config = "";
if( ($themeconfigfile = get_theme_config_file($theme_selected)) != null){
@@ -850,7 +758,7 @@ function settings_content(&$a) {
'$ajaxint' => array('browser_update', t("Update browser every xx seconds"), $browser_update, t('Minimum of 10 seconds, no maximum')),
'$itemspage' => array('itemspage', t("Maximum number of conversations to load at any time:"), $itemspage, t('Maximum of 100 items')),
'$nosmile' => array('nosmile', t("Don't show emoticons"), $nosmile, ''),
-
+ '$chanview_full' => array('chanview_full', t('Do not view remote profiles in frames'), $chanview, t('By default open in a sub-window of your own site')),
'$theme_config' => $theme_config,
));
@@ -890,6 +798,7 @@ function settings_content(&$a) {
array( t('Anybody in your address book'), PERMS_CONTACTS),
array( t('Anybody on this website'), PERMS_SITE),
array( t('Anybody in this network'), PERMS_NETWORK),
+ array( t('Anybody authenticated'), PERMS_AUTHED),
array( t('Anybody on the internet'), PERMS_PUBLIC)
);
@@ -923,6 +832,9 @@ function settings_content(&$a) {
$unkmail = $a->user['unkmail'];
$cntunkmail = $a->user['cntunkmail'];
+ $hide_presence = intval(get_pconfig(local_user(), 'system','hide_online_status'));
+
+
$expire_items = get_pconfig(local_user(), 'expire','items');
$expire_items = (($expire_items===false)? '1' : $expire_items); // default if not set: 1
@@ -999,6 +911,18 @@ function settings_content(&$a) {
require_once('include/group.php');
$group_select = mini_group_select(local_user(),$channel['channel_default_group']);
+ require_once('include/menu.php');
+ $m1 = menu_list(local_user());
+ $menu = false;
+ if($m1) {
+ $menu = array();
+ $current = get_pconfig(local_user(),'system','channel_menu');
+ $menu[] = array('name' => '', 'selected' => ((! $current) ? true : false));
+ foreach($m1 as $m) {
+ $menu[] = array('name' => htmlspecialchars($m['menu_name'],ENT_COMPAT,'UTF-8'), 'selected' => (($m['menu_name'] === $current) ? ' selected="selected" ' : false));
+ }
+ }
+
$o .= replace_macros($stpl,array(
'$ptitle' => t('Channel Settings'),
@@ -1016,16 +940,21 @@ function settings_content(&$a) {
'$defloc' => array('defloc', t('Default Post Location:'), $defloc, ''),
'$allowloc' => array('allow_location', t('Use Browser Location:'), ((get_pconfig(local_user(),'system','use_browser_location')) ? 1 : ''), ''),
- '$adult' => array('adult', t('Adult Content'), $adult_flag, t('This channel publishes adult content.')),
+ '$adult' => array('adult', t('Adult Content'), $adult_flag, t('This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)')),
'$h_prv' => t('Security and Privacy Settings'),
- '$lbl_pmacro' => t('Quick Privacy Settings:'),
- '$pmacro3' => t('Very Public - extremely permissive'),
- '$pmacro2' => t('Typical - default public, privacy when desired'),
- '$pmacro1' => t('Private - default private, rarely open or public'),
- '$pmacro0' => t('Blocked - default blocked to/from everybody'),
+ '$hide_presence' => array('hide_presence', t('Hide my online presence'),$hide_presence, t('Prevents displaying in your profile that you are online')),
+
+ '$lbl_pmacro' => t('Simple Privacy Settings:'),
+ '$pmacro3' => t('Very Public - <em>extremely permissive (should be used with caution)</em>'),
+ '$pmacro2' => t('Typical - <em>default public, privacy when desired (similar to social network permissions but with improved privacy)</em>'),
+ '$pmacro1' => t('Private - <em>default private, never open or public</em>'),
+ '$pmacro0' => t('Blocked - <em>default blocked to/from everybody</em>'),
'$permiss_arr' => $permiss,
+ '$blocktags' => array('blocktags',t('Allow others to tag your posts'), 1-$blocktags, t('Often used by the community to retro-actively flag inappropriate content'),array(t('No'),t('Yes'))),
+
+ '$lbl_p2macro' => t('Advanced Privacy Settings'),
'$maxreq' => array('maxreq', t('Maximum Friend Requests/Day:'), intval($channel['channel_max_friend_req']) , t('May reduce spam activity')),
'$permissions' => t('Default Post Permissions'),
@@ -1062,7 +991,11 @@ function settings_content(&$a) {
'$h_advn' => t('Advanced Account/Page Type Settings'),
'$h_descadvn' => t('Change the behaviour of this account for special situations'),
'$pagetype' => $pagetype,
-
+ '$expert' => feature_enabled(local_user(),'expert'),
+ '$hint' => t('Please enable expert mode (in <a href="settings/features">Settings > Additional features</a>) to adjust!'),
+ '$lbl_misc' => t('Miscellaneous Settings'),
+ '$menus' => $menu,
+ '$menu_desc' => t('Personal menu to display in your channel pages'),
));
call_hooks('settings_form',$o);
diff --git a/mod/setup.php b/mod/setup.php
index 429be43af..14572699e 100755
--- a/mod/setup.php
+++ b/mod/setup.php
@@ -228,6 +228,8 @@ function setup_content(&$a) {
check_smarty3($checks);
+ check_store($checks);
+
check_keys($checks);
if(x($_POST,'phpath'))
@@ -371,7 +373,10 @@ function check_php(&$phpath, &$checks) {
if (strlen($phpath)){
$passed = file_exists($phpath);
} else {
- $phpath = trim(shell_exec('which php'));
+ if(is_windows())
+ $phpath = trim(shell_exec('where php'));
+ else
+ $phpath = trim(shell_exec('which php'));
$passed = strlen($phpath);
}
$help = "";
@@ -515,6 +520,24 @@ function check_smarty3(&$checks) {
}
+function check_store(&$checks) {
+ $status = true;
+ $help = "";
+
+ @mkdir('store',STORAGE_DEFAULT_PERMISSIONS);
+
+ if( !is_writable('store') ) {
+
+ $status=false;
+ $help = t('Red uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder') . EOL;
+ $help .= t('Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder.').EOL;
+ }
+
+ check_add($checks, t('store is writable'), $status, true, $help);
+
+}
+
+
function check_htaccess(&$checks) {
$a = get_app();
$status = true;
@@ -543,7 +566,7 @@ function check_htaccess(&$checks) {
function manual_config(&$a) {
- $data = htmlentities($a->data['txt']);
+ $data = htmlspecialchars($a->data['txt'],ENT_COMPAT,'UTF-8');
$o = t('The database configuration file ".htconfig.php" could not be written. Please use the enclosed text to create a configuration file in your web server root.');
$o .= "<textarea rows=\"24\" cols=\"80\" >$data</textarea>";
return $o;
@@ -577,6 +600,8 @@ function load_database($db) {
function what_next() {
$a = get_app();
+ // install the standard theme
+ set_config('system','allowed_themes','redbasic');
$baseurl = $a->get_baseurl();
return
t('<h1>What next</h1>')
diff --git a/mod/siteinfo.php b/mod/siteinfo.php
index a64b5df20..7fdb892d2 100644
--- a/mod/siteinfo.php
+++ b/mod/siteinfo.php
@@ -27,8 +27,14 @@ function siteinfo_init(&$a) {
$visible_plugins[] = $rr['name'];
}
+ if(@is_dir('.git') && function_exists('shell_exec'))
+ $commit = @shell_exec('git log -1 --format="%h"');
+ if(! isset($commit) || strlen($commit) > 16)
+ $commit = '';
+
$data = Array(
'version' => RED_VERSION,
+ 'commit' => $commit,
'url' => z_root(),
'plugins' => $visible_plugins,
'register_policy' => $register_policy[$a->config['system']['register_policy']],
@@ -47,11 +53,16 @@ function siteinfo_init(&$a) {
function siteinfo_content(&$a) {
- if(! get_config('system','hidden_version_siteinfo'))
+ if(! get_config('system','hidden_version_siteinfo')) {
$version = sprintf( t('Version %s'), RED_VERSION );
- else
- $version = "";
-
+ if(@is_dir('.git') && function_exists('shell_exec'))
+ $commit = @shell_exec('git log -1 --format="%h"');
+ if(! isset($commit) || strlen($commit) > 16)
+ $commit = '';
+ }
+ else {
+ $version = $commit = '';
+ }
$visible_plugins = array();
if(is_array($a->plugins) && count($a->plugins)) {
$r = q("select * from addon where hidden = 0");
@@ -77,16 +88,43 @@ function siteinfo_content(&$a) {
else
$plugins_text = t('No installed plugins/addons/apps');
+ $admininfo = bbcode(get_config('system','admininfo'));
+
+ $project_donate = t('Project Donations');
+ $donate_text = t('<p>The Red Matrix is provided for you by volunteers working in their spare time. Your support will help us to build a better, freer, and privacy respecting web. Select the following option for a one-time donation of your choosing</p>');
+ $alternatively = t('<p>or</p>');
+ $recurring = t('Recurring Donation Options');
+
+ $donate = <<< EOT
+<h3>{$project_donate}</h3>
+$donate_text
+<form action="https://www.paypal.com/cgi-bin/webscr" method="post"><input type="hidden" name="cmd" value="_donations" /><input type="hidden" name="business" value="mike@macgirvin.com" /><input type="hidden" name="lc" value="US" /><input type="hidden" name="item_name" value="Distributed Social Network Support Donation" /><input type="hidden" name="no_note" value="0" /><input type="hidden" name="currency_code" value="USD" /><input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHostedGuest" /><input style="border: none;" type="image" name="submit" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" alt="Donations gladly accepted to support our work" /></form><br />
+<strong>$alternatively</strong>
+<form action="https://www.paypal.com/cgi-bin/webscr" method="post"><input type="hidden" name="cmd" value="_s-xclick" /><input type="hidden" name="hosted_button_id" value="FHV36KE28CYM8" /><br />
+<table><tbody><tr><td><input type="hidden" name="on0" value="$recurring" />$recurring</td>
+</tr><tr><td>
+<select name="os0"><option value="Option 1">Option 1 : $3.00USD - monthly</option><option value="Option 2">Option 2 : $5.00USD - monthly</option><option value="Option 3">Option 3 : $10.00USD - monthly</option><option value="Option 4">Option 4 : $20.00USD - monthly</option></select></td>
+</tr></tbody></table><p><input type="hidden" name="currency_code" value="USD" /><input type="image" style="border: none;" border="0" name="submit" src="https://www.paypalobjects.com/en_US/i/btn/btn_subscribeCC_LG.gif" alt="PayPal - The safer, easier way to pay online!" /><img src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" alt="" width="1" height="1" border="0" /></p></form>
+<p></p>
+EOT;
+
+ if(file_exists('doc/site_donate.html'))
+ $donate .= file_get_contents('doc/site_donate.html');
+
$o = replace_macros(get_markup_template('siteinfo.tpl'), array(
'$title' => t('Red'),
'$description' => t('This is a hub of the Red Matrix - a global cooperative network of decentralised privacy enhanced websites.'),
'$version' => $version,
+ '$commit' => $commit,
'$web_location' => t('Running at web location') . ' ' . z_root(),
'$visit' => t('Please visit <a href="http://getzot.com">GetZot.com</a> to learn more about the Red Matrix.'),
'$bug_text' => t('Bug reports and issues: please visit'),
'$bug_link_url' => 'https://github.com/friendica/red/issues',
'$bug_link_text' => 'redmatrix issues',
- '$contact' => t('Suggestions, praise, donations, etc. - please email "redmatrix" at librelist - dot com'),
+ '$contact' => t('Suggestions, praise, etc. - please email "redmatrix" at librelist - dot com'),
+ '$donate' => $donate,
+ '$adminlabel' => t('Site Administrators'),
+ '$admininfo' => $admininfo,
'$plugins_text' => $plugins_text,
'$plugins_list' => $plugins_list
));
diff --git a/mod/sources.php b/mod/sources.php
index 125184d47..f4b36508f 100644
--- a/mod/sources.php
+++ b/mod/sources.php
@@ -9,11 +9,29 @@ function sources_post(&$a) {
$source = intval($_REQUEST['source']);
$xchan = $_REQUEST['xchan'];
+ $abook = intval($_REQUEST['abook']);
$words = $_REQUEST['words'];
$frequency = $_REQUEST['frequency'];
+ $name = $_REQUEST['name'];
$channel = $a->get_channel();
+ if($name == '*')
+ $xchan = '*';
+
+ if($abook) {
+ $r = q("select abook_xchan from abook where abook_id = %d and abook_channel = %d limit 1",
+ intval($abook),
+ intval(local_user())
+ );
+ if($r)
+ $xchan = $r[0]['abook_xchan'];
+ }
+
+ if(! $xchan) {
+ notice ( t('Failed to create source. No channel selected.') . EOL);
+ return;
+ }
if(! $source) {
$r = q("insert into source ( src_channel_id, src_channel_xchan, src_xchan, src_patt )
@@ -60,6 +78,9 @@ function sources_content(&$a) {
);
if($r) {
for($x = 0; $x < count($r); $x ++) {
+ if($r[$x]['src_xchan'] == '*') {
+ $r[$x]['xchan_name'] = t('*');
+ }
$r[$x]['src_patt'] = htmlspecialchars($r[$x]['src_patt'], ENT_COMPAT,'UTF-8');
}
}
@@ -92,6 +113,12 @@ function sources_content(&$a) {
intval(argv(1)),
intval(local_user())
);
+ if($r) {
+ $x = q("select abook_id from abook where abook_xchan = '%s' and abook_channel = %d limit 1",
+ dbesc($r[0]['src_xchan']),
+ intval(local_user())
+ );
+ }
if(! $r) {
notice( t('Source not found.') . EOL);
return '';
@@ -106,6 +133,7 @@ function sources_content(&$a) {
'$desc' => t('Import all or selected content from the following channel into this channel and distribute it according to your channel settings.'),
'$words' => array( 'words', t('Only import content with these words (one per line)'),$r[0]['src_patt'],t('Leave blank to import all public content')),
'$xchan' => $r[0]['src_xchan'],
+ '$abook' => $x[0]['abook_id'],
'$name' => array( 'name', t('Channel Name'), $r[0]['xchan_name'], ''),
'$submit' => t('Submit')
));
diff --git a/mod/sslify.php b/mod/sslify.php
new file mode 100644
index 000000000..ed06d87c1
--- /dev/null
+++ b/mod/sslify.php
@@ -0,0 +1,24 @@
+<?php
+
+function sslify_init(&$a) {
+ $x = z_fetch_url($_REQUEST['url']);
+ if($x['success']) {
+ $h = explode("\n",$x['headers']);
+ foreach ($h as $l) {
+ list($k,$v) = array_map("trim", explode(":", trim($l), 2));
+ $hdrs[$k] = $v;
+ }
+ if (array_key_exists('Content-Type', $hdrs))
+ $type = $hdrs['Content-Type'];
+
+ header('Content-Type: ' . $type);
+ echo $x['body'];
+ killme();
+ }
+ killme();
+ // for some reason when this fallback is in place - it gets triggered
+ // often, (creating mixed content exceptions) even though there is
+ // nothing obvious missing on the page when we bypass it.
+ goaway($_REQUEST['url']);
+}
+
diff --git a/mod/suggest.php b/mod/suggest.php
index baccbd38f..8a6b50b22 100644
--- a/mod/suggest.php
+++ b/mod/suggest.php
@@ -19,13 +19,6 @@ function suggest_init(&$a) {
}
-function suggest_aside(&$a) {
-
- $a->set_widget('follow', widget_follow(array()));
- $a->set_widget('findpeople', findpeople_widget());
-}
-
-
function suggest_content(&$a) {
$o = '';
diff --git a/mod/thing.php b/mod/thing.php
index 91bdca78a..cbf83fdf8 100644
--- a/mod/thing.php
+++ b/mod/thing.php
@@ -1,6 +1,7 @@
<?php /** @file */
require_once('include/items.php');
+require_once('include/contact_selectors.php');
function thing_init(&$a) {
@@ -8,15 +9,20 @@ function thing_init(&$a) {
if(! local_user())
return;
+
+
+
$account_id = $a->get_account();
$channel = $a->get_channel();
+ $term_hash = (($_REQUEST['term_hash']) ? $_REQUEST['term_hash'] : '');
$name = escape_tags($_REQUEST['term']);
$verb = escape_tags($_REQUEST['verb']);
- $profile_guid = escape_tags($_REQUEST['profile']);
+ $activity = intval($_REQUEST['activity']);
+ $profile_guid = escape_tags($_REQUEST['profile_assign']);
$url = $_REQUEST['link'];
- $photo = $_REQUEST['photo'];
+ $photo = $_REQUEST['img'];
$hash = random_string();
@@ -59,15 +65,58 @@ function thing_init(&$a) {
if((! $name) || (! $translated_verb))
return;
+
+
+
+
+ if($term_hash) {
+ $t = q("select * from obj left join term on obj_obj = term_hash where term_hash != '' and obj_type = %d and term_hash = '%s' limit 1",
+ intval(TERM_OBJ_THING),
+ dbesc($term_hash)
+ );
+ if(! $t) {
+ notice( t('Item not found.') . EOL);
+ return;
+ }
+ $orig_record = $t[0];
+ if($photo != $orig_record['imgurl']) {
+ $arr = import_profile_photo($photo,get_observer_hash(),true);
+ $local_photo = $arr[0];
+ $local_photo_type = $arr[3];
+ }
+ else
+ $local_photo = $orig_record['imgurl'];
+
+ $r = q("update term set term = '%s', url = '%s', imgurl = '%s' where term_hash = '%s' and uid = %d limit 1",
+ dbesc($name),
+ dbesc(($url) ? $url : z_root() . '/thing/' . $term_hash),
+ dbesc($local_photo),
+ dbesc($term_hash),
+ intval(local_user())
+ );
+
+ info( t('Thing updated') . EOL);
+ return;
+ }
+
$sql = (($profile_guid) ? " and profile_guid = '" . dbesc($profile_guid) . "' " : " and is_default = 1 ");
$p = q("select profile_guid, is_default from profile where uid = %d $sql limit 1",
intval(local_user())
);
+
if($p)
$profile = $p[0];
else
return;
+ $local_photo = null;
+
+ if($photo) {
+ $arr = import_profile_photo($photo,get_observer_hash(),true);
+ $local_photo = $arr[0];
+ $local_photo_type = $arr[3];
+ }
+
$r = q("select * from term where uid = %d and otype = %d and type = %d and term = '%s' limit 1",
intval(local_user()),
@@ -85,7 +134,7 @@ function thing_init(&$a) {
intval(TERM_THING),
dbesc($name),
dbesc(($url) ? $url : z_root() . '/thing/' . $hash),
- dbesc(($photo) ? $photo : ''),
+ dbesc(($photo) ? $local_photo : ''),
dbesc($hash)
);
$r = q("select * from term where uid = %d and otype = %d and type = %d and term = '%s' limit 1",
@@ -110,83 +159,170 @@ function thing_init(&$a) {
return;
}
- info( t('thing/stuff added'));
+ info( t('Thing added'));
- $arr = array();
- $links = array(array('rel' => 'alternate','type' => 'text/html',
- 'href' => $term['url']));
- $objtype = ACTIVITY_OBJ_THING;
+ if($activity) {
+ $arr = array();
+ $links = array(array('rel' => 'alternate','type' => 'text/html', 'href' => $term['url']));
+ if($local_photo)
+ $links[] = array('rel' => 'photo', 'type' => $local_photo_type, 'href' => $local_photo);
- $obj = json_encode(array(
- 'type' => $objtype,
- 'id' => $term['url'],
- 'link' => $links,
- 'title' => $term['term'],
- 'content' => $term['term']
- ));
- $bodyverb = str_replace('OBJ: ', '',t('OBJ: %1$s %2$s %3$s'));
+ $objtype = ACTIVITY_OBJ_THING;
- $arr['owner_xchan'] = $channel['channel_hash'];
- $arr['author_xchan'] = $channel['channel_hash'];
+ $obj = json_encode(array(
+ 'type' => $objtype,
+ 'id' => $term['url'],
+ 'link' => $links,
+ 'title' => $term['term'],
+ 'content' => $term['term']
+ ));
+ $bodyverb = str_replace('OBJ: ', '',t('OBJ: %1$s %2$s %3$s'));
- $arr['item_flags'] = ITEM_ORIGIN|ITEM_WALL|ITEM_THREAD_TOP;
+ $arr['owner_xchan'] = $channel['channel_hash'];
+ $arr['author_xchan'] = $channel['channel_hash'];
+
+
+ $arr['item_flags'] = ITEM_ORIGIN|ITEM_WALL|ITEM_THREAD_TOP;
+
+ $ulink = '[zrl=' . $channel['xchan_url'] . ']' . $channel['channel_name'] . '[/zrl]';
+ $plink = '[zrl=' . $term['url'] . ']' . $term['term'] . '[/zrl]';
+
+ $arr['body'] = sprintf( $bodyverb, $ulink, $translated_verb, $plink );
+
+ if($local_photo)
+ $arr['body'] .= "\n\n[zmg]" . $local_photo . "[/zmg]";
+
+ $arr['verb'] = $verb;
+ $arr['obj_type'] = $objtype;
+ $arr['object'] = $obj;
+
+ if(! $profile['is_default']) {
+ $arr['item_private'] = true;
+ $str = '';
+ $r = q("select abook_xchan from abook where abook_channel = %d and abook_profile = '%s'",
+ intval(local_user()),
+ dbesc($profile_guid)
+ );
+ if($r) {
+ $arr['allow_cid'] = '';
+ foreach($r as $rr)
+ $arr['allow_cid'] .= '<' . $rr['abook_xchan'] . '>';
+ }
+ else
+ $arr['allow_cid'] = '<' . get_observer_hash() . '>';
+ }
- $ulink = '[zrl=' . $channel['xchan_url'] . ']' . $channel['channel_name'] . '[/zrl]';
- $plink = '[zrl=' . $term['url'] . ']' . $term['term'] . '[/zrl]';
+ $ret = post_activity_item($arr);
+ }
+}
- $arr['body'] = sprintf( $bodyverb, $ulink, $translated_verb, $plink );
- $arr['verb'] = $verb;
- $arr['obj_type'] = $objtype;
- $arr['object'] = $obj;
+function thing_content(&$a) {
+
+ if(argc() == 2) {
- if(! $profile['is_default']) {
- $arr['item_private'] = true;
- $str = '';
- $r = q("select abook_hash from abook where abook_channel = %d and abook_profile = '%s'",
- intval(local_user()),
- dbesc($profile_guid)
+ $r = q("select * from obj left join term on obj_obj = term_hash where term_hash != '' and obj_type = %d and term_hash = '%s' limit 1",
+ intval(TERM_OBJ_THING),
+ dbesc(argv(1))
);
+
if($r) {
- $arr['allow_cid'] = '';
- foreach($r as $rr)
- $arr['allow_cid'] .= '<' . $rr['abook_hash'] . '>';
+ return replace_macros(get_markup_template('show_thing.tpl'), array(
+ '$header' => t('Show Thing'),
+ '$edit' => t('Edit'),
+ '$delete' => t('Delete'),
+ '$canedit' => ((local_user() && local_user() == $r[0]['obj_channel']) ? true : false),
+ '$thing' => $r[0] ));
+ }
+ else {
+ notice( t('item not found.') . EOL);
+ return;
}
- else
- $arr['allow_cid'] = '<' . get_observer_hash() . '>';
}
-
- $ret = post_activity_item($arr);
- if($ret['success'])
- proc_run('php','include/notifier.php','tag',$ret['activity']['id']);
-
-}
+ if(! local_user()) {
+ notice( t('Permission denied.') . EOL);
+ return;
+ }
+ $thing_hash = '';
+
+ if(argc() == 3 && argv(1) === 'edit') {
+ $thing_hash = argv(2);
-function thing_content(&$a) {
-
- /* placeholders */
- if(argc() > 1) {
- return t('not yet implemented.');
+ $r = q("select * from obj left join term on obj_obj = term_hash where term_hash != '' and obj_type = %d and term_hash = '%s' limit 1",
+ intval(TERM_OBJ_THING),
+ dbesc($thing_hash)
+ );
+
+ if((! $r) || ($r[0]['obj_channel'] != local_user())) {
+ notice( t('Permission denied.') . EOL);
+ return '';
+ }
+
+
+ $o .= replace_macros(get_markup_template('thing_edit.tpl'),array(
+ '$thing_hdr' => t('Edit Thing'),
+ '$multiprof' => feature_enabled(local_user(),'multi_profiles'),
+ '$profile_lbl' => t('Select a profile'),
+ '$profile_select' => contact_profile_assign($r[0]['obj_page']),
+ '$verb_lbl' => t('Select a category of stuff. e.g. I ______ something'),
+ '$verb_select' => obj_verb_selector($r[0]['obj_verb']),
+ '$activity' => array('activity',t('Post an activity'),true,t('Only sends to viewers of the applicable profile')),
+ '$thing_hash' => $thing_hash,
+ '$thing_lbl' => t('Name of thing e.g. something'),
+ '$thething' => $r[0]['term'],
+ '$url_lbl' => t('URL of thing (optional)'),
+ '$theurl' => $r[0]['url'],
+ '$img_lbl' => t('URL for photo of thing (optional)'),
+ '$imgurl' => $r[0]['imgurl'],
+ '$submit' => t('Submit')
+ ));
+
+ return $o;
}
- require_once('include/contact_selectors.php');
+ if(argc() == 3 && argv(1) === 'drop') {
+ $thing_hash = argv(2);
+
+ $r = q("select * from obj left join term on obj_obj = term_hash where term_hash != '' and obj_type = %d and term_hash = '%s' limit 1",
+ intval(TERM_OBJ_THING),
+ dbesc($thing_hash)
+ );
+
+ if((! $r) || ($r[0]['obj_channel'] != local_user())) {
+ notice( t('Permission denied.') . EOL);
+ return '';
+ }
+
+
+ $x = q("delete from obj where obj_obj = '%s' and obj_type = %d and obj_channel = %d limit 1",
+ dbesc($thing_hash),
+ intval(TERM_OBJ_THING),
+ intval(local_user())
+ );
+ $x = q("delete from term where term_hash = '%s' and uid = %d limit 1",
+ dbesc($thing_hash),
+ intval(local_user())
+ );
+ return $o;
+ }
$o .= replace_macros(get_markup_template('thing_input.tpl'),array(
- '$thing_hdr' => t('Add Stuff to your Profile'),
+ '$thing_hdr' => t('Add Thing to your Profile'),
'$multiprof' => feature_enabled(local_user(),'multi_profiles'),
'$profile_lbl' => t('Select a profile'),
'$profile_select' => contact_profile_assign(''),
'$verb_lbl' => t('Select a category of stuff. e.g. I ______ something'),
+ '$activity' => array('activity',t('Post an activity'),true,t('Only sends to viewers of the applicable profile')),
'$verb_select' => obj_verb_selector(),
- '$thing_lbl' => t('Name of thing or stuff e.g. something'),
- '$url_lbl' => t('URL of thing or stuff (optional)'),
- '$img_lbl' => t('URL for photo of thing or stuff (optional)'),
+ '$thing_lbl' => t('Name of thing e.g. something'),
+ '$url_lbl' => t('URL of thing (optional)'),
+ '$img_lbl' => t('URL for photo of thing (optional)'),
'$submit' => t('Submit')
));
diff --git a/mod/toggle_safesearch.php b/mod/toggle_safesearch.php
index 5fb18f694..3c800c4f3 100644
--- a/mod/toggle_safesearch.php
+++ b/mod/toggle_safesearch.php
@@ -3,6 +3,8 @@
function toggle_safesearch_init(&$a) {
$observer = get_observer_hash();
+if (! $observer)
+ return;
if($observer)
$safe_mode = get_xconfig($observer,'directory','safe_mode');
diff --git a/mod/viewconnections.php b/mod/viewconnections.php
index 9c85d63b6..4f6f81d82 100644
--- a/mod/viewconnections.php
+++ b/mod/viewconnections.php
@@ -11,17 +11,6 @@ function viewconnections_init(&$a) {
profile_load($a,argv(1));
}
-
-function viewconnections_aside(&$a) {
-
- if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
- return;
- }
-
- profile_create_sidebar($a);
-}
-
-
function viewconnections_content(&$a) {
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
@@ -41,14 +30,11 @@ function viewconnections_content(&$a) {
- $r = q("SELECT COUNT(abook_id) as total FROM abook WHERE abook_channel = %d AND abook_flags = 0 ",
- intval($a->profile['uid'])
- );
- if($r)
- $a->set_pager_total($r[0]['total']);
-
- $r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d and abook_flags = 0 order by xchan_name LIMIT %d , %d ",
+ $r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d and abook_flags = 0 and not ( xchan_flags & %d ) and not ( xchan_flags & %d ) and not ( xchan_flags & %d ) order by xchan_name LIMIT %d , %d ",
intval($a->profile['uid']),
+ intval(XCHAN_FLAGS_HIDDEN),
+ intval(XCHAN_FLAGS_ORPHAN),
+ intval(XCHAN_FLAGS_DELETED),
intval($a->pager['start']),
intval($a->pager['itemspage'])
);
diff --git a/mod/wall_attach.php b/mod/wall_attach.php
index 6e9443f12..47c097416 100644
--- a/mod/wall_attach.php
+++ b/mod/wall_attach.php
@@ -1,23 +1,12 @@
<?php
require_once('include/attach.php');
-require_once('include/datetime.php');
+require_once('include/identity.php');
function wall_attach_post(&$a) {
- // Figure out who owns the page and if they allow attachments
-
- if(argc() > 1) {
- $nick = argv(1);
- $r = q("SELECT channel.* from channel where channel_address = '%s' limit 1",
- dbesc($nick)
- );
- if(! $r)
- killme();
- $channel = $r[0];
-
- }
-
+ if(argc() > 1)
+ $channel = get_channel_by_nick(argv(1));
else
killme();
diff --git a/mod/wall_upload.php b/mod/wall_upload.php
index dd5d760b3..2939cf0d1 100644
--- a/mod/wall_upload.php
+++ b/mod/wall_upload.php
@@ -1,6 +1,7 @@
<?php
require_once('include/photo/photo_driver.php');
+require_once('include/identity.php');
require_once('include/photos.php');
@@ -19,15 +20,7 @@ function wall_upload_post(&$a) {
$nick = argv(1);
}
- $channel = null;
-
- if($nick) {
- $r = q("SELECT channel.* from channel where channel_address = '%s' limit 1",
- dbesc($nick)
- );
- if($r)
- $channel = $r[0];
- }
+ $channel = (($nick) ? get_channel_by_nick($nick) : false);
if(! $channel) {
if($using_api)
diff --git a/mod/webpages.php b/mod/webpages.php
index 90004faa1..7e1b32f36 100644
--- a/mod/webpages.php
+++ b/mod/webpages.php
@@ -41,9 +41,9 @@ function webpages_content(&$a) {
return;
}
- if(local_user() && local_user() == $owner) {
- $a->set_widget('design',design_tools());
- }
+// if(local_user() && local_user() == $owner) {
+// $a->set_widget('design',design_tools());
+// }
$mimetype = get_config('system','page_mimetype');
diff --git a/mod/xchan.php b/mod/xchan.php
index 984a62f95..9d4cdcc22 100644
--- a/mod/xchan.php
+++ b/mod/xchan.php
@@ -14,9 +14,11 @@ function xchan_content(&$a) {
if(x($_GET,'addr')) {
$addr = trim($_GET['addr']);
+
$r = q("select xchan_name from xchan where xchan_hash like '%s%%'",
- dbesc(addr)
+ dbesc($addr)
);
+
if($r) {
foreach($r as $rr)
$o .= $rr['xchan_name'] . EOL;
diff --git a/mod/xref.php b/mod/xref.php
new file mode 100644
index 000000000..95cc22aa7
--- /dev/null
+++ b/mod/xref.php
@@ -0,0 +1,20 @@
+<?php
+
+function xref_init(&$a) {
+ // Sets a referral URL using an xchan directly
+ // Link format: example.com/xref/[xchan]/[TargetURL]
+ // Target URL is optional.
+ // Cookie lasts 24 hours to survive a browser restart. Contains no personal
+ // information at all - just somebody else's xchan.
+ $referrer = argv(1);
+ $expire=time()+60*60*2;
+ $path = 'xref';
+ setcookie($path, $referrer, $expire, "/");
+ $url = '';
+
+ if (argc() > 2)
+ $url = argv(2);
+
+ goaway (z_root() . '/' . $url);
+
+}
diff --git a/mod/zfinger.php b/mod/zfinger.php
index 0827f3424..94671271b 100644
--- a/mod/zfinger.php
+++ b/mod/zfinger.php
@@ -52,11 +52,33 @@ function zfinger_init(&$a) {
);
}
elseif(strlen($zaddr)) {
- $r = q("select channel.*, xchan.* from channel left join xchan on channel_hash = xchan_hash
- where ( channel_address = '%s' or xchan_addr = '%s' ) limit 1",
- dbesc($zaddr),
- dbesc($zaddr)
- );
+ if(strpos($zaddr,'[system]') === false) { /* normal address lookup */
+ $r = q("select channel.*, xchan.* from channel left join xchan on channel_hash = xchan_hash
+ where ( channel_address = '%s' or xchan_addr = '%s' ) limit 1",
+ dbesc($zaddr),
+ dbesc($zaddr)
+ );
+ }
+
+ else {
+
+ /**
+ * The special address '[system]' will return a system channel if one has been defined,
+ * Or the first valid channel we find if there are no system channels.
+ *
+ * This is used by magic-auth if we have no prior communications with this site - and
+ * returns an identity on this site which we can use to create a valid hub record so that
+ * we can exchange signed messages. The precise identity is irrelevant. It's the hub
+ * information that we really need at the other end - and this will return it.
+ *
+ */
+
+ $r = q("select channel.*, xchan.* from channel left join xchan on channel_hash = xchan_hash
+ where (( channel_pageflags & %d ) or not ( channel_pageflags & %d )) order by channel_id limit 1",
+ intval(PAGE_SYSTEM),
+ intval(PAGE_REMOVED)
+ );
+ }
}
else {
$ret['message'] = 'Invalid request';
@@ -104,12 +126,16 @@ function zfinger_init(&$a) {
$profile['region'] = $p[0]['region'];
$profile['postcode'] = $p[0]['postal_code'];
$profile['country'] = $p[0]['country_name'];
+ $profile['about'] = $p[0]['about'];
+ $profile['homepage'] = $p[0]['homepage'];
+ $profile['hometown'] = $p[0]['hometown'];
+
if($p[0]['keywords']) {
$tags = array();
$k = explode(' ',$p[0]['keywords']);
if($k) {
foreach($k as $kk) {
- if(trim($kk)) {
+ if(trim($kk," \t\n\r\0\x0B,")) {
$tags[] = trim($kk," \t\n\r\0\x0B,");
}
}
diff --git a/util/messages.po b/util/messages.po
index 485d47394..11820f853 100644
--- a/util/messages.po
+++ b/util/messages.po
@@ -1,14 +1,14 @@
-# Red Communications Project
-# Copyright (C) 2013 the Red Matrix Project
+# Red Matrix Project
+# Copyright (C) 2012-2014 the Red Matrix Project
# This file is distributed under the same license as the Red package.
-# Mike Macgirvin, 2013
+# Mike Macgirvin, 2012
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: 2013-12-06.519\n"
+"Project-Id-Version: 2014-02-21.595\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-12-06 00:02-0800\n"
+"POT-Creation-Date: 2014-02-21 00:03-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,1745 +16,1507 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: ../../include/acl_selectors.php:235
-msgid "Visible to everybody"
-msgstr ""
-
-#: ../../include/acl_selectors.php:236
-msgid "show"
-msgstr ""
-
-#: ../../include/acl_selectors.php:237
-msgid "don't show"
-msgstr ""
-
-#: ../../include/activities.php:37
-msgid " and "
-msgstr ""
-
-#: ../../include/activities.php:45
-msgid "public profile"
-msgstr ""
-
-#: ../../include/activities.php:50
-#, php-format
-msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
-msgstr ""
-
-#: ../../include/activities.php:51
-#, php-format
-msgid "Visit %1$s's %2$s"
-msgstr ""
-
-#: ../../include/activities.php:54
-#, php-format
-msgid "%1$s has an updated %2$s, changing %3$s."
-msgstr ""
-
-#: ../../include/enotify.php:40
-msgid "Red Matrix Notification"
-msgstr ""
-
-#: ../../include/enotify.php:41
-msgid "redmatrix"
-msgstr ""
-
-#: ../../include/enotify.php:43
-msgid "Thank You,"
-msgstr ""
-
-#: ../../include/enotify.php:45
-#, php-format
-msgid "%s Administrator"
-msgstr ""
-
-#: ../../include/enotify.php:80
-#, php-format
-msgid "%s <!item_type!>"
-msgstr ""
-
-#: ../../include/enotify.php:84
-#, php-format
-msgid "[Red:Notify] New mail received at %s"
-msgstr ""
-
-#: ../../include/enotify.php:86
-#, php-format
-msgid "%1$s, %2$s sent you a new private message at %3$s."
-msgstr ""
-
-#: ../../include/enotify.php:87
-#, php-format
-msgid "%1$s sent you %2$s."
-msgstr ""
-
-#: ../../include/enotify.php:87
-msgid "a private message"
-msgstr ""
-
-#: ../../include/enotify.php:88
-#, php-format
-msgid "Please visit %s to view and/or reply to your private messages."
-msgstr ""
-
-#: ../../include/enotify.php:139
-#, php-format
-msgid "%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]"
-msgstr ""
-
-#: ../../include/enotify.php:147
-#, php-format
-msgid "%1$s, %2$s commented on [zrl=%3$s]%4$s's %5$s[/zrl]"
-msgstr ""
-
-#: ../../include/enotify.php:156
-#, php-format
-msgid "%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]"
-msgstr ""
-
-#: ../../include/enotify.php:167
-#, php-format
-msgid "[Red:Notify] Comment to conversation #%1$d by %2$s"
-msgstr ""
-
-#: ../../include/enotify.php:168
-#, php-format
-msgid "%1$s, %2$s commented on an item/conversation you have been following."
-msgstr ""
-
-#: ../../include/enotify.php:171 ../../include/enotify.php:190
-#: ../../include/enotify.php:216 ../../include/enotify.php:235
-#: ../../include/enotify.php:249
-#, php-format
-msgid "Please visit %s to view and/or reply to the conversation."
-msgstr ""
-
-#: ../../include/enotify.php:178
-#, php-format
-msgid "[Red:Notify] %s posted to your profile wall"
-msgstr ""
-
-#: ../../include/enotify.php:180
-#, php-format
-msgid "%1$s, %2$s posted to your profile wall at %3$s"
+#: ../../include/widgets.php:29 ../../include/contact_widgets.php:87
+msgid "Categories"
msgstr ""
-#: ../../include/enotify.php:182
-#, php-format
-msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]"
+#: ../../include/widgets.php:115 ../../include/widgets.php:155
+#: ../../include/Contact.php:107 ../../include/identity.php:632
+#: ../../mod/directory.php:184 ../../mod/match.php:62
+#: ../../mod/dirprofile.php:170 ../../mod/suggest.php:51
+msgid "Connect"
msgstr ""
-#: ../../include/enotify.php:209
-#, php-format
-msgid "[Red:Notify] %s tagged you"
+#: ../../include/widgets.php:117 ../../mod/suggest.php:53
+msgid "Ignore/Hide"
msgstr ""
-#: ../../include/enotify.php:210
-#, php-format
-msgid "%1$s, %2$s tagged you at %3$s"
+#: ../../include/widgets.php:123 ../../mod/connections.php:238
+msgid "Suggestions"
msgstr ""
-#: ../../include/enotify.php:211
-#, php-format
-msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]."
+#: ../../include/widgets.php:124
+msgid "See more..."
msgstr ""
-#: ../../include/enotify.php:224
+#: ../../include/widgets.php:146
#, php-format
-msgid "[Red:Notify] %1$s poked you"
+msgid "You have %1$.0f of %2$.0f allowed connections."
msgstr ""
-#: ../../include/enotify.php:225
-#, php-format
-msgid "%1$s, %2$s poked you at %3$s"
+#: ../../include/widgets.php:152
+msgid "Add New Connection"
msgstr ""
-#: ../../include/enotify.php:226
-#, php-format
-msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]."
+#: ../../include/widgets.php:153
+msgid "Enter the channel address"
msgstr ""
-#: ../../include/enotify.php:242
-#, php-format
-msgid "[Red:Notify] %s tagged your post"
+#: ../../include/widgets.php:154
+msgid "Example: bob@example.com, http://example.com/barbara"
msgstr ""
-#: ../../include/enotify.php:243
-#, php-format
-msgid "%1$s, %2$s tagged your post at %3$s"
+#: ../../include/widgets.php:171
+msgid "Notes"
msgstr ""
-#: ../../include/enotify.php:244
-#, php-format
-msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]"
+#: ../../include/widgets.php:173 ../../include/text.php:759
+#: ../../include/text.php:773 ../../mod/filer.php:36
+msgid "Save"
msgstr ""
-#: ../../include/enotify.php:256
-msgid "[Red:Notify] Introduction received"
+#: ../../include/widgets.php:243
+msgid "Remove term"
msgstr ""
-#: ../../include/enotify.php:257
-#, php-format
-msgid "%1$s, you've received an introduction from '%2$s' at %3$s"
+#: ../../include/widgets.php:252 ../../include/features.php:52
+msgid "Saved Searches"
msgstr ""
-#: ../../include/enotify.php:258
-#, php-format
-msgid "%1$s, you've received [zrl=%2$s]an introduction[/zrl] from %3$s."
+#: ../../include/widgets.php:253 ../../include/group.php:290
+msgid "add"
msgstr ""
-#: ../../include/enotify.php:262 ../../include/enotify.php:281
-#, php-format
-msgid "You may visit their profile at %s"
+#: ../../include/widgets.php:283 ../../include/features.php:66
+#: ../../include/contact_widgets.php:53
+msgid "Saved Folders"
msgstr ""
-#: ../../include/enotify.php:264
-#, php-format
-msgid "Please visit %s to approve or reject the introduction."
+#: ../../include/widgets.php:286 ../../include/contact_widgets.php:56
+#: ../../include/contact_widgets.php:90
+msgid "Everything"
msgstr ""
-#: ../../include/enotify.php:271
-msgid "[Red:Notify] Friend suggestion received"
+#: ../../include/widgets.php:318
+msgid "Archives"
msgstr ""
-#: ../../include/enotify.php:272
-#, php-format
-msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s"
+#: ../../include/widgets.php:370
+msgid "Refresh"
msgstr ""
-#: ../../include/enotify.php:273
-#, php-format
-msgid ""
-"%1$s, you've received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from %4$s."
+#: ../../include/widgets.php:371 ../../mod/connedit.php:389
+msgid "Me"
msgstr ""
-#: ../../include/enotify.php:279
-msgid "Name:"
+#: ../../include/widgets.php:372 ../../mod/connedit.php:391
+msgid "Best Friends"
msgstr ""
-#: ../../include/enotify.php:280
-msgid "Photo:"
+#: ../../include/widgets.php:373 ../../include/identity.php:314
+#: ../../include/profile_selectors.php:42 ../../mod/connedit.php:392
+msgid "Friends"
msgstr ""
-#: ../../include/enotify.php:283
-#, php-format
-msgid "Please visit %s to approve or reject the suggestion."
+#: ../../include/widgets.php:374
+msgid "Co-workers"
msgstr ""
-#: ../../include/ItemObject.php:88 ../../mod/photos.php:963
-msgid "Private Message"
+#: ../../include/widgets.php:375 ../../mod/connedit.php:393
+msgid "Former Friends"
msgstr ""
-#: ../../include/ItemObject.php:95 ../../include/page_widgets.php:8
-#: ../../mod/webpages.php:101 ../../mod/settings.php:671 ../../mod/menu.php:55
-#: ../../mod/layouts.php:102 ../../mod/editlayout.php:100
-#: ../../mod/editwebpage.php:119 ../../mod/blocks.php:93
-#: ../../mod/editpost.php:97 ../../mod/editblock.php:114
-msgid "Edit"
+#: ../../include/widgets.php:376 ../../mod/connedit.php:394
+msgid "Acquaintances"
msgstr ""
-#: ../../include/ItemObject.php:107 ../../include/conversation.php:628
-#: ../../mod/settings.php:672 ../../mod/admin.php:690 ../../mod/group.php:182
-#: ../../mod/photos.php:1141 ../../mod/connections.php:374
-#: ../../mod/filestorage.php:82
-msgid "Delete"
+#: ../../include/widgets.php:377
+msgid "Everybody"
msgstr ""
-#: ../../include/ItemObject.php:113 ../../include/conversation.php:627
-msgid "Select"
+#: ../../include/widgets.php:409
+msgid "Account settings"
msgstr ""
-#: ../../include/ItemObject.php:117
-msgid "save to folder"
+#: ../../include/widgets.php:415
+msgid "Channel settings"
msgstr ""
-#: ../../include/ItemObject.php:145
-msgid "add star"
+#: ../../include/widgets.php:421
+msgid "Additional features"
msgstr ""
-#: ../../include/ItemObject.php:146
-msgid "remove star"
+#: ../../include/widgets.php:427
+msgid "Feature settings"
msgstr ""
-#: ../../include/ItemObject.php:147
-msgid "toggle star status"
+#: ../../include/widgets.php:433
+msgid "Display settings"
msgstr ""
-#: ../../include/ItemObject.php:151
-msgid "starred"
+#: ../../include/widgets.php:439
+msgid "Connected apps"
msgstr ""
-#: ../../include/ItemObject.php:160 ../../include/conversation.php:638
-msgid "Message is verified"
+#: ../../include/widgets.php:445
+msgid "Export channel"
msgstr ""
-#: ../../include/ItemObject.php:168
-msgid "add tag"
+#: ../../include/widgets.php:457
+msgid "Automatic Permissions (Advanced)"
msgstr ""
-#: ../../include/ItemObject.php:174 ../../mod/photos.php:1069
-msgid "I like this (toggle)"
+#: ../../include/widgets.php:467
+msgid "Premium Channel Settings"
msgstr ""
-#: ../../include/ItemObject.php:174 ../../include/taxonomy.php:251
-msgid "like"
+#: ../../include/widgets.php:476 ../../include/features.php:43
+#: ../../mod/sources.php:88
+msgid "Channel Sources"
msgstr ""
-#: ../../include/ItemObject.php:175 ../../mod/photos.php:1070
-msgid "I don't like this (toggle)"
+#: ../../include/widgets.php:487 ../../include/nav.php:181
+#: ../../mod/admin.php:838 ../../mod/admin.php:1043
+msgid "Settings"
msgstr ""
-#: ../../include/ItemObject.php:175 ../../include/taxonomy.php:252
-msgid "dislike"
+#: ../../include/widgets.php:504
+msgid "Check Mail"
msgstr ""
-#: ../../include/ItemObject.php:177
-msgid "Share this"
+#: ../../include/widgets.php:509 ../../include/nav.php:172
+msgid "New Message"
msgstr ""
-#: ../../include/ItemObject.php:177
-msgid "share"
+#: ../../include/widgets.php:585
+msgid "Chat Rooms"
msgstr ""
-#: ../../include/ItemObject.php:201 ../../include/ItemObject.php:202
-#, php-format
-msgid "View %s's profile - %s"
+#: ../../include/acl_selectors.php:235
+msgid "Visible to everybody"
msgstr ""
-#: ../../include/ItemObject.php:203
-msgid "to"
+#: ../../include/acl_selectors.php:236
+msgid "show"
msgstr ""
-#: ../../include/ItemObject.php:204
-msgid "via"
+#: ../../include/acl_selectors.php:237
+msgid "don't show"
msgstr ""
-#: ../../include/ItemObject.php:205
-msgid "Wall-to-Wall"
+#: ../../include/activities.php:39
+msgid " and "
msgstr ""
-#: ../../include/ItemObject.php:206
-msgid "via Wall-To-Wall:"
+#: ../../include/activities.php:47
+msgid "public profile"
msgstr ""
-#: ../../include/ItemObject.php:216 ../../include/conversation.php:682
+#: ../../include/activities.php:52
#, php-format
-msgid " from %s"
+msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
msgstr ""
-#: ../../include/ItemObject.php:219 ../../include/conversation.php:685
+#: ../../include/activities.php:53
#, php-format
-msgid "last edited: %s"
-msgstr ""
-
-#: ../../include/ItemObject.php:246 ../../include/conversation.php:702
-#: ../../include/conversation.php:1112 ../../mod/photos.php:1072
-#: ../../mod/message.php:332 ../../mod/message.php:516
-#: ../../mod/editlayout.php:109 ../../mod/editwebpage.php:128
-#: ../../mod/editpost.php:106 ../../mod/editblock.php:123
-msgid "Please wait"
+msgid "Visit %1$s's %2$s"
msgstr ""
-#: ../../include/ItemObject.php:267
+#: ../../include/activities.php:56
#, php-format
-msgid "%d comment"
-msgid_plural "%d comments"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/ItemObject.php:268 ../../include/js_strings.php:7
-#: ../../include/contact_widgets.php:148
-msgid "show more"
-msgstr ""
-
-#: ../../include/ItemObject.php:527 ../../mod/photos.php:1088
-#: ../../mod/photos.php:1175
-msgid "This is you"
-msgstr ""
-
-#: ../../include/ItemObject.php:529 ../../include/js_strings.php:6
-#: ../../mod/photos.php:1090 ../../mod/photos.php:1177
-msgid "Comment"
-msgstr ""
-
-#: ../../include/ItemObject.php:530 ../../mod/events.php:469
-#: ../../mod/thing.php:190 ../../mod/invite.php:154 ../../mod/setup.php:302
-#: ../../mod/setup.php:345 ../../mod/settings.php:609
-#: ../../mod/settings.php:721 ../../mod/settings.php:749
-#: ../../mod/settings.php:773 ../../mod/settings.php:844
-#: ../../mod/settings.php:1005 ../../mod/connect.php:96
-#: ../../mod/sources.php:83 ../../mod/sources.php:110 ../../mod/admin.php:418
-#: ../../mod/admin.php:683 ../../mod/admin.php:823 ../../mod/admin.php:1022
-#: ../../mod/admin.php:1109 ../../mod/group.php:87 ../../mod/photos.php:685
-#: ../../mod/photos.php:790 ../../mod/photos.php:1051
-#: ../../mod/photos.php:1091 ../../mod/photos.php:1178
-#: ../../mod/message.php:333 ../../mod/message.php:515
-#: ../../mod/profiles.php:529 ../../mod/connections.php:452
-#: ../../mod/import.php:387 ../../mod/crepair.php:166 ../../mod/poke.php:166
-#: ../../mod/fsuggest.php:108 ../../mod/mood.php:137
-#: ../../view/theme/redbasic/php/config.php:85
-#: ../../view/theme/apw/php/config.php:231
-#: ../../view/theme/blogga/view/theme/blog/config.php:67
-#: ../../view/theme/blogga/php/config.php:67
-msgid "Submit"
-msgstr ""
-
-#: ../../include/ItemObject.php:531
-msgid "Bold"
-msgstr ""
-
-#: ../../include/ItemObject.php:532
-msgid "Italic"
-msgstr ""
-
-#: ../../include/ItemObject.php:533
-msgid "Underline"
+msgid "%1$s has an updated %2$s, changing %3$s."
msgstr ""
-#: ../../include/ItemObject.php:534
-msgid "Quote"
+#: ../../include/nav.php:72 ../../include/nav.php:91 ../../boot.php:1425
+msgid "Logout"
msgstr ""
-#: ../../include/ItemObject.php:535
-msgid "Code"
+#: ../../include/nav.php:72 ../../include/nav.php:91
+msgid "End this session"
msgstr ""
-#: ../../include/ItemObject.php:536
-msgid "Image"
+#: ../../include/nav.php:75 ../../include/nav.php:125
+msgid "Home"
msgstr ""
-#: ../../include/ItemObject.php:537
-msgid "Link"
+#: ../../include/nav.php:75
+msgid "Your posts and conversations"
msgstr ""
-#: ../../include/ItemObject.php:538
-msgid "Video"
+#: ../../include/nav.php:76 ../../include/conversation.php:933
+#: ../../mod/connedit.php:312 ../../mod/connedit.php:426
+msgid "View Profile"
msgstr ""
-#: ../../include/ItemObject.php:539 ../../include/conversation.php:1075
-#: ../../mod/webpages.php:105 ../../mod/photos.php:1092
-#: ../../mod/editlayout.php:129 ../../mod/editwebpage.php:150
-#: ../../mod/editpost.php:126 ../../mod/editblock.php:144
-msgid "Preview"
+#: ../../include/nav.php:76
+msgid "Your profile page"
msgstr ""
-#: ../../include/ItemObject.php:542 ../../include/conversation.php:1139
-#: ../../mod/message.php:338 ../../mod/message.php:521
-#: ../../mod/editpost.php:134
-msgid "Encrypt text"
+#: ../../include/nav.php:78
+msgid "Edit Profiles"
msgstr ""
-#: ../../include/Contact.php:87 ../../include/contact_widgets.php:23
-#: ../../include/identity.php:613 ../../mod/match.php:62
-#: ../../mod/suggest.php:56 ../../mod/directory.php:198
-msgid "Connect"
+#: ../../include/nav.php:78
+msgid "Manage/Edit profiles"
msgstr ""
-#: ../../include/Contact.php:103
-msgid "New window"
+#: ../../include/nav.php:79 ../../include/conversation.php:1475
+#: ../../mod/fbrowser.php:25
+msgid "Photos"
msgstr ""
-#: ../../include/Contact.php:104
-msgid "Open the selected location in a different window or browser tab"
+#: ../../include/nav.php:79
+msgid "Your photos"
msgstr ""
-#: ../../include/contact_selectors.php:30
-msgid "Unknown | Not categorised"
+#: ../../include/nav.php:80 ../../include/conversation.php:1484
+#: ../../mod/fbrowser.php:114
+msgid "Files"
msgstr ""
-#: ../../include/contact_selectors.php:31
-msgid "Block immediately"
+#: ../../include/nav.php:80
+msgid "Your files"
msgstr ""
-#: ../../include/contact_selectors.php:32
-msgid "Shady, spammer, self-marketer"
+#: ../../include/nav.php:81
+msgid "Chat"
msgstr ""
-#: ../../include/contact_selectors.php:33
-msgid "Known to me, but no opinion"
+#: ../../include/nav.php:81
+msgid "Your chatrooms"
msgstr ""
-#: ../../include/contact_selectors.php:34
-msgid "OK, probably harmless"
+#: ../../include/nav.php:82 ../../include/nav.php:175
+#: ../../include/conversation.php:1506 ../../mod/events.php:354
+msgid "Events"
msgstr ""
-#: ../../include/contact_selectors.php:35
-msgid "Reputable, has my trust"
+#: ../../include/nav.php:82
+msgid "Your events"
msgstr ""
-#: ../../include/contact_selectors.php:54
-msgid "Frequently"
+#: ../../include/nav.php:83 ../../include/conversation.php:1514
+msgid "Bookmarks"
msgstr ""
-#: ../../include/contact_selectors.php:55
-msgid "Hourly"
+#: ../../include/nav.php:83
+msgid "Your bookmarks"
msgstr ""
-#: ../../include/contact_selectors.php:56
-msgid "Twice daily"
-msgstr ""
-
-#: ../../include/contact_selectors.php:57
-msgid "Daily"
+#: ../../include/nav.php:85 ../../include/conversation.php:1525
+msgid "Webpages"
msgstr ""
-#: ../../include/contact_selectors.php:58
-msgid "Weekly"
+#: ../../include/nav.php:85
+msgid "Your webpages"
msgstr ""
-#: ../../include/contact_selectors.php:59
-msgid "Monthly"
+#: ../../include/nav.php:89 ../../boot.php:1426
+msgid "Login"
msgstr ""
-#: ../../include/contact_selectors.php:74
-msgid "Friendica"
+#: ../../include/nav.php:89
+msgid "Sign in"
msgstr ""
-#: ../../include/contact_selectors.php:75
-msgid "OStatus"
+#: ../../include/nav.php:106
+#, php-format
+msgid "%s - click to logout"
msgstr ""
-#: ../../include/contact_selectors.php:76
-msgid "RSS/Atom"
+#: ../../include/nav.php:111
+msgid "Click to authenticate to your home hub"
msgstr ""
-#: ../../include/contact_selectors.php:77 ../../mod/admin.php:686
-#: ../../mod/admin.php:695 ../../boot.php:1442
-msgid "Email"
+#: ../../include/nav.php:125
+msgid "Home Page"
msgstr ""
-#: ../../include/contact_selectors.php:78
-msgid "Diaspora"
+#: ../../include/nav.php:129 ../../mod/register.php:206 ../../boot.php:1402
+msgid "Register"
msgstr ""
-#: ../../include/contact_selectors.php:79
-msgid "Facebook"
+#: ../../include/nav.php:129
+msgid "Create an account"
msgstr ""
-#: ../../include/contact_selectors.php:80
-msgid "Zot!"
+#: ../../include/nav.php:134 ../../mod/help.php:60 ../../mod/help.php:64
+msgid "Help"
msgstr ""
-#: ../../include/contact_selectors.php:81
-msgid "LinkedIn"
+#: ../../include/nav.php:134
+msgid "Help and documentation"
msgstr ""
-#: ../../include/contact_selectors.php:82
-msgid "XMPP/IM"
+#: ../../include/nav.php:137
+msgid "Apps"
msgstr ""
-#: ../../include/contact_selectors.php:83
-msgid "MySpace"
+#: ../../include/nav.php:137
+msgid "Addon applications, utilities, games"
msgstr ""
-#: ../../include/datetime.php:43 ../../include/datetime.php:45
-msgid "Miscellaneous"
+#: ../../include/nav.php:139 ../../include/text.php:757
+#: ../../include/text.php:771 ../../mod/search.php:29
+msgid "Search"
msgstr ""
-#: ../../include/datetime.php:152 ../../include/datetime.php:284
-msgid "year"
+#: ../../include/nav.php:139
+msgid "Search site content"
msgstr ""
-#: ../../include/datetime.php:157 ../../include/datetime.php:285
-msgid "month"
+#: ../../include/nav.php:142 ../../mod/directory.php:211
+msgid "Directory"
msgstr ""
-#: ../../include/datetime.php:162 ../../include/datetime.php:287
-msgid "day"
+#: ../../include/nav.php:142
+msgid "Channel Locator"
msgstr ""
-#: ../../include/datetime.php:275
-msgid "never"
+#: ../../include/nav.php:153
+msgid "Matrix"
msgstr ""
-#: ../../include/datetime.php:281
-msgid "less than a second ago"
+#: ../../include/nav.php:153
+msgid "Your matrix"
msgstr ""
-#: ../../include/datetime.php:284
-msgid "years"
+#: ../../include/nav.php:154
+msgid "Mark all matrix notifications seen"
msgstr ""
-#: ../../include/datetime.php:285
-msgid "months"
+#: ../../include/nav.php:156
+msgid "Channel Home"
msgstr ""
-#: ../../include/datetime.php:286
-msgid "week"
+#: ../../include/nav.php:156
+msgid "Channel home"
msgstr ""
-#: ../../include/datetime.php:286
-msgid "weeks"
+#: ../../include/nav.php:157
+msgid "Mark all channel notifications seen"
msgstr ""
-#: ../../include/datetime.php:287
-msgid "days"
+#: ../../include/nav.php:160
+msgid "Intros"
msgstr ""
-#: ../../include/datetime.php:288
-msgid "hour"
+#: ../../include/nav.php:160 ../../mod/connections.php:244
+msgid "New Connections"
msgstr ""
-#: ../../include/datetime.php:288
-msgid "hours"
+#: ../../include/nav.php:163
+msgid "Notices"
msgstr ""
-#: ../../include/datetime.php:289
-msgid "minute"
+#: ../../include/nav.php:163
+msgid "Notifications"
msgstr ""
-#: ../../include/datetime.php:289
-msgid "minutes"
+#: ../../include/nav.php:164
+msgid "See all notifications"
msgstr ""
-#: ../../include/datetime.php:290
-msgid "second"
+#: ../../include/nav.php:165
+msgid "Mark all system notifications seen"
msgstr ""
-#: ../../include/datetime.php:290
-msgid "seconds"
+#: ../../include/nav.php:167
+msgid "Mail"
msgstr ""
-#: ../../include/datetime.php:299
-#, php-format
-msgid "%1$d %2$s ago"
+#: ../../include/nav.php:167
+msgid "Private mail"
msgstr ""
-#: ../../include/dba/dba_driver.php:50
-#, php-format
-msgid "Cannot locate DNS info for database server '%s'"
+#: ../../include/nav.php:168
+msgid "See all private messages"
msgstr ""
-#: ../../include/event.php:11 ../../include/bb2diaspora.php:433
-msgid "l F d, Y \\@ g:i A"
+#: ../../include/nav.php:169
+msgid "Mark all private messages seen"
msgstr ""
-#: ../../include/event.php:20 ../../include/bb2diaspora.php:439
-msgid "Starts:"
+#: ../../include/nav.php:170
+msgid "Inbox"
msgstr ""
-#: ../../include/event.php:30 ../../include/bb2diaspora.php:447
-msgid "Finishes:"
+#: ../../include/nav.php:171
+msgid "Outbox"
msgstr ""
-#: ../../include/event.php:40 ../../include/identity.php:663
-#: ../../include/bb2diaspora.php:455 ../../mod/events.php:462
-#: ../../mod/directory.php:173
-msgid "Location:"
+#: ../../include/nav.php:175
+msgid "Event Calendar"
msgstr ""
-#: ../../include/features.php:21
-msgid "General Features"
+#: ../../include/nav.php:176
+msgid "See all events"
msgstr ""
-#: ../../include/features.php:23
-msgid "Content Expiration"
+#: ../../include/nav.php:177
+msgid "Mark all events seen"
msgstr ""
-#: ../../include/features.php:23
-msgid "Remove posts/comments and/or private messages at a future time"
+#: ../../include/nav.php:179
+msgid "Channel Select"
msgstr ""
-#: ../../include/features.php:24
-msgid "Multiple Profiles"
+#: ../../include/nav.php:179
+msgid "Manage Your Channels"
msgstr ""
-#: ../../include/features.php:24
-msgid "Ability to create multiple profiles"
+#: ../../include/nav.php:181
+msgid "Account/Channel Settings"
msgstr ""
-#: ../../include/features.php:25
-msgid "Web Pages"
+#: ../../include/nav.php:183 ../../mod/connections.php:351
+msgid "Connections"
msgstr ""
-#: ../../include/features.php:25
-msgid "Provide managed web pages on your channel"
+#: ../../include/nav.php:183
+msgid "Manage/Edit Friends and Connections"
msgstr ""
-#: ../../include/features.php:26
-msgid "Enhanced Photo Albums"
+#: ../../include/nav.php:190 ../../mod/admin.php:112
+msgid "Admin"
msgstr ""
-#: ../../include/features.php:26
-msgid "Enable photo album with enhanced features"
+#: ../../include/nav.php:190
+msgid "Site Setup and Configuration"
msgstr ""
-#: ../../include/features.php:28
-msgid "Extended Identity Sharing"
+#: ../../include/nav.php:216
+msgid "Nothing new here"
msgstr ""
-#: ../../include/features.php:28 ../../include/js_strings.php:30
-msgid " "
+#: ../../include/nav.php:221
+msgid "Please wait..."
msgstr ""
-#: ../../include/features.php:29
-msgid "Expert Mode"
+#: ../../include/text.php:315
+msgid "prev"
msgstr ""
-#: ../../include/features.php:29
-msgid "Enable Expert Mode to provide advanced configuration options"
+#: ../../include/text.php:317
+msgid "first"
msgstr ""
-#: ../../include/features.php:30
-msgid "Premium Channel"
+#: ../../include/text.php:346
+msgid "last"
msgstr ""
-#: ../../include/features.php:30
-msgid ""
-"Allows you to set restrictions and terms on those that connect with your "
-"channel"
+#: ../../include/text.php:349
+msgid "next"
msgstr ""
-#: ../../include/features.php:35
-msgid "Post Composition Features"
+#: ../../include/text.php:361
+msgid "older"
msgstr ""
-#: ../../include/features.php:36
-msgid "Richtext Editor"
+#: ../../include/text.php:363
+msgid "newer"
msgstr ""
-#: ../../include/features.php:36
-msgid "Enable richtext editor"
+#: ../../include/text.php:675
+msgid "No connections"
msgstr ""
-#: ../../include/features.php:37
-msgid "Post Preview"
-msgstr ""
+#: ../../include/text.php:686
+#, php-format
+msgid "%d Connection"
+msgid_plural "%d Connections"
+msgstr[0] ""
+msgstr[1] ""
-#: ../../include/features.php:37
-msgid "Allow previewing posts and comments before publishing them"
+#: ../../include/text.php:698
+msgid "View Connections"
msgstr ""
-#: ../../include/features.php:38 ../../mod/settings.php:120
-#: ../../mod/sources.php:67
-msgid "Channel Sources"
+#: ../../include/text.php:839
+msgid "poke"
msgstr ""
-#: ../../include/features.php:38
-msgid "Automatically import channel content from other channels or feeds"
+#: ../../include/text.php:839 ../../include/conversation.php:240
+msgid "poked"
msgstr ""
-#: ../../include/features.php:39
-msgid "Even More Encryption"
+#: ../../include/text.php:840
+msgid "ping"
msgstr ""
-#: ../../include/features.php:39
-msgid "Allow encryption of content end-to-end with a shared secret key"
+#: ../../include/text.php:840
+msgid "pinged"
msgstr ""
-#: ../../include/features.php:44
-msgid "Network and Stream Filtering"
+#: ../../include/text.php:841
+msgid "prod"
msgstr ""
-#: ../../include/features.php:45
-msgid "Search by Date"
+#: ../../include/text.php:841
+msgid "prodded"
msgstr ""
-#: ../../include/features.php:45
-msgid "Ability to select posts by date ranges"
+#: ../../include/text.php:842
+msgid "slap"
msgstr ""
-#: ../../include/features.php:46
-msgid "Collections Filter"
+#: ../../include/text.php:842
+msgid "slapped"
msgstr ""
-#: ../../include/features.php:46
-msgid "Enable widget to display Network posts only from selected collections"
+#: ../../include/text.php:843
+msgid "finger"
msgstr ""
-#: ../../include/features.php:47 ../../mod/search.php:17
-#: ../../mod/network.php:122
-msgid "Saved Searches"
+#: ../../include/text.php:843
+msgid "fingered"
msgstr ""
-#: ../../include/features.php:47
-msgid "Save search terms for re-use"
+#: ../../include/text.php:844
+msgid "rebuff"
msgstr ""
-#: ../../include/features.php:48
-msgid "Network Personal Tab"
+#: ../../include/text.php:844
+msgid "rebuffed"
msgstr ""
-#: ../../include/features.php:48
-msgid "Enable tab to display only Network posts that you've interacted on"
+#: ../../include/text.php:856
+msgid "happy"
msgstr ""
-#: ../../include/features.php:49
-msgid "Network New Tab"
+#: ../../include/text.php:857
+msgid "sad"
msgstr ""
-#: ../../include/features.php:49
-msgid "Enable tab to display all new Network activity"
+#: ../../include/text.php:858
+msgid "mellow"
msgstr ""
-#: ../../include/features.php:50
-msgid "Affinity Tool"
+#: ../../include/text.php:859
+msgid "tired"
msgstr ""
-#: ../../include/features.php:50
-msgid "Filter stream activity by depth of relationships"
+#: ../../include/text.php:860
+msgid "perky"
msgstr ""
-#: ../../include/features.php:55
-msgid "Post/Comment Tools"
+#: ../../include/text.php:861
+msgid "angry"
msgstr ""
-#: ../../include/features.php:57
-msgid "Edit Sent Posts"
+#: ../../include/text.php:862
+msgid "stupified"
msgstr ""
-#: ../../include/features.php:57
-msgid "Edit and correct posts and comments after sending"
+#: ../../include/text.php:863
+msgid "puzzled"
msgstr ""
-#: ../../include/features.php:58
-msgid "Tagging"
+#: ../../include/text.php:864
+msgid "interested"
msgstr ""
-#: ../../include/features.php:58
-msgid "Ability to tag existing posts"
+#: ../../include/text.php:865
+msgid "bitter"
msgstr ""
-#: ../../include/features.php:59
-msgid "Post Categories"
+#: ../../include/text.php:866
+msgid "cheerful"
msgstr ""
-#: ../../include/features.php:59
-msgid "Add categories to your posts"
+#: ../../include/text.php:867
+msgid "alive"
msgstr ""
-#: ../../include/features.php:60 ../../include/contact_widgets.php:76
-msgid "Saved Folders"
+#: ../../include/text.php:868
+msgid "annoyed"
msgstr ""
-#: ../../include/features.php:60
-msgid "Ability to file posts under folders"
+#: ../../include/text.php:869
+msgid "anxious"
msgstr ""
-#: ../../include/features.php:61
-msgid "Dislike Posts"
+#: ../../include/text.php:870
+msgid "cranky"
msgstr ""
-#: ../../include/features.php:61
-msgid "Ability to dislike posts/comments"
+#: ../../include/text.php:871
+msgid "disturbed"
msgstr ""
-#: ../../include/features.php:62
-msgid "Star Posts"
+#: ../../include/text.php:872
+msgid "frustrated"
msgstr ""
-#: ../../include/features.php:62
-msgid "Ability to mark special posts with a star indicator"
+#: ../../include/text.php:873
+msgid "motivated"
msgstr ""
-#: ../../include/features.php:63
-msgid "Tag Cloud"
+#: ../../include/text.php:874
+msgid "relaxed"
msgstr ""
-#: ../../include/features.php:63
-msgid "Provide a personal tag cloud on your channel page"
+#: ../../include/text.php:875
+msgid "surprised"
msgstr ""
-#: ../../include/group.php:25
-msgid ""
-"A deleted group with this name was revived. Existing item permissions "
-"<strong>may</strong> apply to this group and any future members. If this is "
-"not what you intended, please create another group with a different name."
+#: ../../include/text.php:1036
+msgid "Monday"
msgstr ""
-#: ../../include/group.php:223
-msgid "Default privacy group for new contacts"
+#: ../../include/text.php:1036
+msgid "Tuesday"
msgstr ""
-#: ../../include/group.php:242 ../../mod/admin.php:695
-msgid "All Channels"
+#: ../../include/text.php:1036
+msgid "Wednesday"
msgstr ""
-#: ../../include/group.php:264
-msgid "edit"
+#: ../../include/text.php:1036
+msgid "Thursday"
msgstr ""
-#: ../../include/group.php:285
-msgid "Collections"
+#: ../../include/text.php:1036
+msgid "Friday"
msgstr ""
-#: ../../include/group.php:286
-msgid "Edit collection"
+#: ../../include/text.php:1036
+msgid "Saturday"
msgstr ""
-#: ../../include/group.php:287
-msgid "Create a new collection"
+#: ../../include/text.php:1036
+msgid "Sunday"
msgstr ""
-#: ../../include/group.php:288
-msgid "Channels not in any collection"
+#: ../../include/text.php:1040
+msgid "January"
msgstr ""
-#: ../../include/group.php:290 ../../mod/network.php:123
-msgid "add"
+#: ../../include/text.php:1040
+msgid "February"
msgstr ""
-#: ../../include/js_strings.php:5
-msgid "Delete this item?"
+#: ../../include/text.php:1040
+msgid "March"
msgstr ""
-#: ../../include/js_strings.php:8
-msgid "show fewer"
+#: ../../include/text.php:1040
+msgid "April"
msgstr ""
-#: ../../include/js_strings.php:9
-msgid "Password too short"
+#: ../../include/text.php:1040
+msgid "May"
msgstr ""
-#: ../../include/js_strings.php:10
-msgid "Passwords do not match"
+#: ../../include/text.php:1040
+msgid "June"
msgstr ""
-#: ../../include/js_strings.php:11 ../../mod/photos.php:45
-msgid "everybody"
+#: ../../include/text.php:1040
+msgid "July"
msgstr ""
-#: ../../include/js_strings.php:12
-msgid "Secret Passphrase"
+#: ../../include/text.php:1040
+msgid "August"
msgstr ""
-#: ../../include/js_strings.php:13
-msgid "Passphrase hint"
+#: ../../include/text.php:1040
+msgid "September"
msgstr ""
-#: ../../include/js_strings.php:15
-msgid "timeago.prefixAgo"
+#: ../../include/text.php:1040
+msgid "October"
msgstr ""
-#: ../../include/js_strings.php:16
-msgid "timeago.suffixAgo"
+#: ../../include/text.php:1040
+msgid "November"
msgstr ""
-#: ../../include/js_strings.php:17
-msgid "ago"
+#: ../../include/text.php:1040
+msgid "December"
msgstr ""
-#: ../../include/js_strings.php:18
-msgid "from now"
+#: ../../include/text.php:1118
+msgid "unknown.???"
msgstr ""
-#: ../../include/js_strings.php:19
-msgid "less than a minute"
+#: ../../include/text.php:1119
+msgid "bytes"
msgstr ""
-#: ../../include/js_strings.php:20
-msgid "about a minute"
+#: ../../include/text.php:1154
+msgid "remove category"
msgstr ""
-#: ../../include/js_strings.php:21
-#, php-format
-msgid "%d minutes"
+#: ../../include/text.php:1176
+msgid "remove from file"
msgstr ""
-#: ../../include/js_strings.php:22
-msgid "about an hour"
+#: ../../include/text.php:1234 ../../include/text.php:1246
+msgid "Click to open/close"
msgstr ""
-#: ../../include/js_strings.php:23
-#, php-format
-msgid "about %d hours"
+#: ../../include/text.php:1401 ../../mod/events.php:332
+msgid "link to source"
msgstr ""
-#: ../../include/js_strings.php:24
-msgid "a day"
+#: ../../include/text.php:1420
+msgid "Select a page layout: "
msgstr ""
-#: ../../include/js_strings.php:25
-#, php-format
-msgid "%d days"
+#: ../../include/text.php:1423 ../../include/text.php:1488
+msgid "default"
msgstr ""
-#: ../../include/js_strings.php:26
-msgid "about a month"
+#: ../../include/text.php:1459
+msgid "Page content type: "
msgstr ""
-#: ../../include/js_strings.php:27
-#, php-format
-msgid "%d months"
+#: ../../include/text.php:1500
+msgid "Select an alternate language"
msgstr ""
-#: ../../include/js_strings.php:28
-msgid "about a year"
+#: ../../include/text.php:1621 ../../include/conversation.php:117
+#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:45
+msgid "photo"
msgstr ""
-#: ../../include/js_strings.php:29
-#, php-format
-msgid "%d years"
+#: ../../include/text.php:1624 ../../include/conversation.php:120
+#: ../../mod/tagger.php:49
+msgid "event"
msgstr ""
-#: ../../include/js_strings.php:31
-msgid "timeago.numbers"
+#: ../../include/text.php:1627 ../../include/conversation.php:145
+#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:53
+msgid "status"
msgstr ""
-#: ../../include/message.php:18
-msgid "No recipient provided."
+#: ../../include/text.php:1629 ../../include/conversation.php:147
+#: ../../mod/tagger.php:55
+msgid "comment"
msgstr ""
-#: ../../include/message.php:23
-msgid "[no subject]"
+#: ../../include/text.php:1634
+msgid "activity"
msgstr ""
-#: ../../include/message.php:42
-msgid "Unable to determine sender."
+#: ../../include/text.php:1891
+msgid "Design"
msgstr ""
-#: ../../include/message.php:143
-msgid "Stored post could not be verified."
+#: ../../include/text.php:1893
+msgid "Blocks"
msgstr ""
-#: ../../include/photo/photo_driver.php:609 ../../include/photos.php:51
-#: ../../mod/photos.php:97 ../../mod/photos.php:775 ../../mod/photos.php:797
-#: ../../mod/profile_photo.php:88 ../../mod/profile_photo.php:235
-#: ../../mod/profile_photo.php:346
-msgid "Profile Photos"
+#: ../../include/text.php:1894
+msgid "Menus"
msgstr ""
-#: ../../include/api.php:972
-msgid "Public Timeline"
+#: ../../include/text.php:1895
+msgid "Layouts"
msgstr ""
-#: ../../include/network.php:640
-msgid "view full size"
+#: ../../include/text.php:1896
+msgid "Pages"
msgstr ""
-#: ../../include/bbcode.php:94 ../../include/bbcode.php:494
-#: ../../include/bbcode.php:497
+#: ../../include/bbcode.php:128 ../../include/bbcode.php:601
+#: ../../include/bbcode.php:604 ../../include/bbcode.php:609
+#: ../../include/bbcode.php:612 ../../include/bbcode.php:615
+#: ../../include/bbcode.php:618 ../../include/bbcode.php:623
+#: ../../include/bbcode.php:626 ../../include/bbcode.php:631
+#: ../../include/bbcode.php:634 ../../include/bbcode.php:637
+#: ../../include/bbcode.php:640
msgid "Image/photo"
msgstr ""
-#: ../../include/bbcode.php:126 ../../include/bbcode.php:502
+#: ../../include/bbcode.php:163 ../../include/bbcode.php:651
msgid "Encrypted content"
msgstr ""
-#: ../../include/bbcode.php:173
+#: ../../include/bbcode.php:170
+msgid "QR code"
+msgstr ""
+
+#: ../../include/bbcode.php:213
#, php-format
msgid "%1$s wrote the following %2$s %3$s"
msgstr ""
-#: ../../include/bbcode.php:175
+#: ../../include/bbcode.php:215
msgid "post"
msgstr ""
-#: ../../include/bbcode.php:454 ../../include/bbcode.php:474
+#: ../../include/bbcode.php:569 ../../include/bbcode.php:589
msgid "$1 wrote:"
msgstr ""
-#: ../../include/oembed.php:150
-msgid "Embedded content"
-msgstr ""
-
-#: ../../include/oembed.php:159
-msgid "Embedding disabled"
-msgstr ""
-
-#: ../../include/notify.php:23
-msgid "created a new post"
-msgstr ""
-
-#: ../../include/notify.php:24
-#, php-format
-msgid "commented on %s's post"
-msgstr ""
-
-#: ../../include/photos.php:15 ../../include/attach.php:102
-#: ../../include/attach.php:133 ../../include/attach.php:189
-#: ../../include/attach.php:204 ../../include/attach.php:237
-#: ../../include/attach.php:251 ../../include/attach.php:272
-#: ../../include/attach.php:464 ../../include/attach.php:539
-#: ../../include/items.php:3412 ../../mod/common.php:43
-#: ../../mod/events.php:139 ../../mod/invite.php:13 ../../mod/invite.php:102
-#: ../../mod/allfriends.php:10 ../../mod/webpages.php:40 ../../mod/api.php:26
-#: ../../mod/api.php:31 ../../mod/lastpost.php:93 ../../mod/page.php:30
-#: ../../mod/page.php:80 ../../mod/setup.php:200 ../../mod/settings.php:586
-#: ../../mod/viewconnections.php:33 ../../mod/viewconnections.php:38
-#: ../../mod/delegate.php:6 ../../mod/sources.php:48 ../../mod/mitem.php:92
-#: ../../mod/group.php:15 ../../mod/photos.php:74 ../../mod/photos.php:654
-#: ../../mod/viewsrc.php:12 ../../mod/menu.php:40 ../../mod/message.php:208
-#: ../../mod/layouts.php:27 ../../mod/layouts.php:42 ../../mod/network.php:12
-#: ../../mod/intro.php:50 ../../mod/profiles.php:163
-#: ../../mod/profiles.php:476 ../../mod/new_channel.php:66
-#: ../../mod/new_channel.php:97 ../../mod/connections.php:197
-#: ../../mod/filestorage.php:26 ../../mod/manage.php:6
-#: ../../mod/crepair.php:115 ../../mod/editlayout.php:48
-#: ../../mod/profile_photo.php:197 ../../mod/profile_photo.php:210
-#: ../../mod/editwebpage.php:42 ../../mod/editwebpage.php:64
-#: ../../mod/notifications.php:66 ../../mod/blocks.php:29
-#: ../../mod/blocks.php:44 ../../mod/editpost.php:13 ../../mod/poke.php:128
-#: ../../mod/channel.php:110 ../../mod/fsuggest.php:78
-#: ../../mod/editblock.php:48 ../../mod/item.php:181 ../../mod/item.php:189
-#: ../../mod/suggest.php:32 ../../mod/register.php:68 ../../mod/regmod.php:18
-#: ../../mod/authtest.php:13 ../../mod/mood.php:114 ../../index.php:178
-#: ../../index.php:340
-msgid "Permission denied."
-msgstr ""
-
-#: ../../include/photos.php:88
-#, php-format
-msgid "Image exceeds website size limit of %lu bytes"
-msgstr ""
-
-#: ../../include/photos.php:95
-msgid "Image file is empty."
+#: ../../include/Contact.php:123
+msgid "New window"
msgstr ""
-#: ../../include/photos.php:124 ../../mod/profile_photo.php:157
-msgid "Unable to process image"
+#: ../../include/Contact.php:124
+msgid "Open the selected location in a different window or browser tab"
msgstr ""
-#: ../../include/photos.php:186
-msgid "Photo storage failed."
+#: ../../include/features.php:23
+msgid "General Features"
msgstr ""
-#: ../../include/photos.php:288 ../../include/conversation.php:1453
-msgid "Photo Albums"
+#: ../../include/features.php:25
+msgid "Content Expiration"
msgstr ""
-#: ../../include/photos.php:292 ../../mod/photos.php:813
-#: ../../mod/photos.php:1287
-msgid "Upload New Photos"
+#: ../../include/features.php:25
+msgid "Remove posts/comments and/or private messages at a future time"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Male"
+#: ../../include/features.php:26
+msgid "Multiple Profiles"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Female"
+#: ../../include/features.php:26
+msgid "Ability to create multiple profiles"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Currently Male"
+#: ../../include/features.php:27
+msgid "Web Pages"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Currently Female"
+#: ../../include/features.php:27
+msgid "Provide managed web pages on your channel"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Mostly Male"
+#: ../../include/features.php:28
+msgid "Private Notes"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Mostly Female"
+#: ../../include/features.php:28
+msgid "Enables a tool to store notes and reminders"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Transgender"
+#: ../../include/features.php:33
+msgid "Extended Identity Sharing"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Intersex"
+#: ../../include/features.php:33
+msgid ""
+"Share your identity with all websites on the internet. When disabled, "
+"identity is only shared with sites in the matrix."
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Transsexual"
+#: ../../include/features.php:34
+msgid "Expert Mode"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Hermaphrodite"
+#: ../../include/features.php:34
+msgid "Enable Expert Mode to provide advanced configuration options"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Neuter"
+#: ../../include/features.php:35
+msgid "Premium Channel"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Non-specific"
+#: ../../include/features.php:35
+msgid ""
+"Allows you to set restrictions and terms on those that connect with your "
+"channel"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Other"
+#: ../../include/features.php:40
+msgid "Post Composition Features"
msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Undecided"
+#: ../../include/features.php:41
+msgid "Richtext Editor"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Males"
+#: ../../include/features.php:41
+msgid "Enable richtext editor"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Females"
+#: ../../include/features.php:42
+msgid "Post Preview"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Gay"
+#: ../../include/features.php:42
+msgid "Allow previewing posts and comments before publishing them"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Lesbian"
+#: ../../include/features.php:43
+msgid "Automatically import channel content from other channels or feeds"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "No Preference"
+#: ../../include/features.php:44
+msgid "Even More Encryption"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Bisexual"
+#: ../../include/features.php:44
+msgid ""
+"Allow optional encryption of content end-to-end with a shared secret key"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Autosexual"
+#: ../../include/features.php:49
+msgid "Network and Stream Filtering"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Abstinent"
+#: ../../include/features.php:50
+msgid "Search by Date"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Virgin"
+#: ../../include/features.php:50
+msgid "Ability to select posts by date ranges"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Deviant"
+#: ../../include/features.php:51
+msgid "Collections Filter"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Fetish"
+#: ../../include/features.php:51
+msgid "Enable widget to display Network posts only from selected collections"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Oodles"
+#: ../../include/features.php:52
+msgid "Save search terms for re-use"
msgstr ""
-#: ../../include/profile_selectors.php:23
-msgid "Nonsexual"
+#: ../../include/features.php:53
+msgid "Network Personal Tab"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Single"
+#: ../../include/features.php:53
+msgid "Enable tab to display only Network posts that you've interacted on"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Lonely"
+#: ../../include/features.php:54
+msgid "Network New Tab"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Available"
+#: ../../include/features.php:54
+msgid "Enable tab to display all new Network activity"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Unavailable"
+#: ../../include/features.php:55
+msgid "Affinity Tool"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Has crush"
+#: ../../include/features.php:55
+msgid "Filter stream activity by depth of relationships"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Infatuated"
+#: ../../include/features.php:56
+msgid "Suggest Channels"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Dating"
+#: ../../include/features.php:56
+msgid "Show channel suggestions"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Unfaithful"
+#: ../../include/features.php:61
+msgid "Post/Comment Tools"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Sex Addict"
+#: ../../include/features.php:63
+msgid "Edit Sent Posts"
msgstr ""
-#: ../../include/profile_selectors.php:42 ../../include/identity.php:298
-#: ../../mod/network.php:215 ../../mod/connections.php:407
-msgid "Friends"
+#: ../../include/features.php:63
+msgid "Edit and correct posts and comments after sending"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Friends/Benefits"
+#: ../../include/features.php:64
+msgid "Tagging"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Casual"
+#: ../../include/features.php:64
+msgid "Ability to tag existing posts"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Engaged"
+#: ../../include/features.php:65
+msgid "Post Categories"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Married"
+#: ../../include/features.php:65
+msgid "Add categories to your posts"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Imaginarily married"
+#: ../../include/features.php:66
+msgid "Ability to file posts under folders"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Partners"
+#: ../../include/features.php:67
+msgid "Dislike Posts"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Cohabiting"
+#: ../../include/features.php:67
+msgid "Ability to dislike posts/comments"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Common law"
+#: ../../include/features.php:68
+msgid "Star Posts"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Happy"
+#: ../../include/features.php:68
+msgid "Ability to mark special posts with a star indicator"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Not looking"
+#: ../../include/features.php:69
+msgid "Tag Cloud"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Swinger"
+#: ../../include/features.php:69
+msgid "Provide a personal tag cloud on your channel page"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Betrayed"
+#: ../../include/contact_selectors.php:30
+msgid "Unknown | Not categorised"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Separated"
+#: ../../include/contact_selectors.php:31
+msgid "Block immediately"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Unstable"
+#: ../../include/contact_selectors.php:32
+msgid "Shady, spammer, self-marketer"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Divorced"
+#: ../../include/contact_selectors.php:33
+msgid "Known to me, but no opinion"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Imaginarily divorced"
+#: ../../include/contact_selectors.php:34
+msgid "OK, probably harmless"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Widowed"
+#: ../../include/contact_selectors.php:35
+msgid "Reputable, has my trust"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Uncertain"
+#: ../../include/contact_selectors.php:54
+msgid "Frequently"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "It's complicated"
+#: ../../include/contact_selectors.php:55
+msgid "Hourly"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Don't care"
+#: ../../include/contact_selectors.php:56
+msgid "Twice daily"
msgstr ""
-#: ../../include/profile_selectors.php:42
-msgid "Ask me"
+#: ../../include/contact_selectors.php:57
+msgid "Daily"
msgstr ""
-#: ../../include/attach.php:184 ../../include/attach.php:232
-msgid "Item was not found."
+#: ../../include/contact_selectors.php:58
+msgid "Weekly"
msgstr ""
-#: ../../include/attach.php:285
-msgid "No source file."
+#: ../../include/contact_selectors.php:59
+msgid "Monthly"
msgstr ""
-#: ../../include/attach.php:302
-msgid "Cannot locate file to replace"
+#: ../../include/contact_selectors.php:74
+msgid "Friendica"
msgstr ""
-#: ../../include/attach.php:320
-msgid "Cannot locate file to revise/update"
+#: ../../include/contact_selectors.php:75
+msgid "OStatus"
msgstr ""
-#: ../../include/attach.php:331
-#, php-format
-msgid "File exceeds size limit of %d"
+#: ../../include/contact_selectors.php:76
+msgid "RSS/Atom"
msgstr ""
-#: ../../include/attach.php:342
-#, php-format
-msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
+#: ../../include/contact_selectors.php:77 ../../mod/admin.php:742
+#: ../../mod/admin.php:751 ../../boot.php:1428
+msgid "Email"
msgstr ""
-#: ../../include/attach.php:424
-msgid "File upload failed. Possible system limit or action terminated."
+#: ../../include/contact_selectors.php:78
+msgid "Diaspora"
msgstr ""
-#: ../../include/attach.php:436
-msgid "Stored file could not be verified. Upload failed."
+#: ../../include/contact_selectors.php:79
+msgid "Facebook"
msgstr ""
-#: ../../include/attach.php:480 ../../include/attach.php:497
-msgid "Path not available."
+#: ../../include/contact_selectors.php:80
+msgid "Zot!"
msgstr ""
-#: ../../include/attach.php:544
-msgid "Empty pathname"
+#: ../../include/contact_selectors.php:81
+msgid "LinkedIn"
msgstr ""
-#: ../../include/attach.php:562
-msgid "duplicate filename or path"
+#: ../../include/contact_selectors.php:82
+msgid "XMPP/IM"
msgstr ""
-#: ../../include/attach.php:584
-msgid "Path not found."
+#: ../../include/contact_selectors.php:83
+msgid "MySpace"
msgstr ""
-#: ../../include/attach.php:628
-msgid "mkdir failed."
+#: ../../include/datetime.php:43 ../../include/datetime.php:45
+msgid "Miscellaneous"
msgstr ""
-#: ../../include/attach.php:632
-msgid "database storage failed."
+#: ../../include/datetime.php:152 ../../include/datetime.php:284
+msgid "year"
msgstr ""
-#: ../../include/zot.php:545
-msgid "Invalid data packet"
+#: ../../include/datetime.php:157 ../../include/datetime.php:285
+msgid "month"
msgstr ""
-#: ../../include/zot.php:555
-msgid "Unable to verify channel signature"
+#: ../../include/datetime.php:162 ../../include/datetime.php:287
+msgid "day"
msgstr ""
-#: ../../include/zot.php:732
-#, php-format
-msgid "Unable to verify site signature for %s"
+#: ../../include/datetime.php:275
+msgid "never"
msgstr ""
-#: ../../include/nav.php:72 ../../include/nav.php:87 ../../boot.php:1439
-msgid "Logout"
+#: ../../include/datetime.php:281
+msgid "less than a second ago"
msgstr ""
-#: ../../include/nav.php:72 ../../include/nav.php:87
-msgid "End this session"
+#: ../../include/datetime.php:284
+msgid "years"
msgstr ""
-#: ../../include/nav.php:75 ../../include/nav.php:121
-msgid "Home"
+#: ../../include/datetime.php:285
+msgid "months"
msgstr ""
-#: ../../include/nav.php:75
-msgid "Your posts and conversations"
+#: ../../include/datetime.php:286
+msgid "week"
msgstr ""
-#: ../../include/nav.php:76 ../../include/conversation.php:925
-#: ../../mod/connections.php:327 ../../mod/connections.php:441
-msgid "View Profile"
+#: ../../include/datetime.php:286
+msgid "weeks"
msgstr ""
-#: ../../include/nav.php:76
-msgid "Your profile page"
+#: ../../include/datetime.php:287
+msgid "days"
msgstr ""
-#: ../../include/nav.php:78
-msgid "Edit Profiles"
+#: ../../include/datetime.php:288
+msgid "hour"
msgstr ""
-#: ../../include/nav.php:78
-msgid "Manage/Edit Profiles"
+#: ../../include/datetime.php:288
+msgid "hours"
msgstr ""
-#: ../../include/nav.php:79 ../../include/conversation.php:1450
-#: ../../mod/fbrowser.php:25
-msgid "Photos"
+#: ../../include/datetime.php:289
+msgid "minute"
msgstr ""
-#: ../../include/nav.php:79
-msgid "Your photos"
+#: ../../include/datetime.php:289
+msgid "minutes"
msgstr ""
-#: ../../include/nav.php:85 ../../boot.php:1440
-msgid "Login"
+#: ../../include/datetime.php:290
+msgid "second"
msgstr ""
-#: ../../include/nav.php:85
-msgid "Sign in"
+#: ../../include/datetime.php:290
+msgid "seconds"
msgstr ""
-#: ../../include/nav.php:102
+#: ../../include/datetime.php:299
#, php-format
-msgid "%s - click to logout"
-msgstr ""
-
-#: ../../include/nav.php:107
-msgid "Click to authenticate to your home hub"
+msgid "%1$d %2$s ago"
msgstr ""
-#: ../../include/nav.php:121
-msgid "Home Page"
+#: ../../include/dba/dba_driver.php:50
+#, php-format
+msgid "Cannot locate DNS info for database server '%s'"
msgstr ""
-#: ../../include/nav.php:125 ../../mod/register.php:195 ../../boot.php:1416
-msgid "Register"
+#: ../../include/event.php:11 ../../include/bb2diaspora.php:433
+msgid "l F d, Y \\@ g:i A"
msgstr ""
-#: ../../include/nav.php:125
-msgid "Create an account"
+#: ../../include/event.php:20 ../../include/bb2diaspora.php:439
+msgid "Starts:"
msgstr ""
-#: ../../include/nav.php:130 ../../mod/help.php:45 ../../mod/help.php:49
-msgid "Help"
+#: ../../include/event.php:30 ../../include/bb2diaspora.php:447
+msgid "Finishes:"
msgstr ""
-#: ../../include/nav.php:130
-msgid "Help and documentation"
+#: ../../include/event.php:40 ../../include/identity.php:683
+#: ../../include/bb2diaspora.php:455 ../../mod/events.php:462
+#: ../../mod/directory.php:157 ../../mod/dirprofile.php:111
+msgid "Location:"
msgstr ""
-#: ../../include/nav.php:133
-msgid "Apps"
+#: ../../include/group.php:25
+msgid ""
+"A deleted group with this name was revived. Existing item permissions "
+"<strong>may</strong> apply to this group and any future members. If this is "
+"not what you intended, please create another group with a different name."
msgstr ""
-#: ../../include/nav.php:133
-msgid "Addon applications, utilities, games"
+#: ../../include/group.php:223
+msgid "Default privacy group for new contacts"
msgstr ""
-#: ../../include/nav.php:135 ../../include/text.php:736
-#: ../../mod/search.php:96
-msgid "Search"
+#: ../../include/group.php:242 ../../mod/admin.php:751
+msgid "All Channels"
msgstr ""
-#: ../../include/nav.php:135
-msgid "Search site content"
+#: ../../include/group.php:264
+msgid "edit"
msgstr ""
-#: ../../include/nav.php:138 ../../mod/directory.php:225
-msgid "Directory"
+#: ../../include/group.php:285
+msgid "Collections"
msgstr ""
-#: ../../include/nav.php:138
-msgid "Channel Locator"
+#: ../../include/group.php:286
+msgid "Edit collection"
msgstr ""
-#: ../../include/nav.php:149
-msgid "Matrix"
+#: ../../include/group.php:287
+msgid "Create a new collection"
msgstr ""
-#: ../../include/nav.php:149
-msgid "Your matrix"
+#: ../../include/group.php:288
+msgid "Channels not in any collection"
msgstr ""
-#: ../../include/nav.php:150
-msgid "See all matrix notifications"
+#: ../../include/js_strings.php:5
+msgid "Delete this item?"
msgstr ""
-#: ../../include/nav.php:151
-msgid "Mark all matrix notifications seen"
+#: ../../include/js_strings.php:6 ../../include/ItemObject.php:547
+#: ../../mod/photos.php:993 ../../mod/photos.php:1080
+msgid "Comment"
msgstr ""
-#: ../../include/nav.php:153
-msgid "Channel Home"
+#: ../../include/js_strings.php:7 ../../include/ItemObject.php:281
+#: ../../include/contact_widgets.php:125
+msgid "show more"
msgstr ""
-#: ../../include/nav.php:153
-msgid "Channel home"
+#: ../../include/js_strings.php:8
+msgid "show fewer"
msgstr ""
-#: ../../include/nav.php:154
-msgid "See all channel notifications"
+#: ../../include/js_strings.php:9
+msgid "Password too short"
msgstr ""
-#: ../../include/nav.php:155
-msgid "Mark all channel notifications seen"
+#: ../../include/js_strings.php:10
+msgid "Passwords do not match"
msgstr ""
-#: ../../include/nav.php:158
-msgid "Intros"
+#: ../../include/js_strings.php:11 ../../mod/photos.php:39
+msgid "everybody"
msgstr ""
-#: ../../include/nav.php:158 ../../mod/connections.php:585
-msgid "New Connections"
+#: ../../include/js_strings.php:12
+msgid "Secret Passphrase"
msgstr ""
-#: ../../include/nav.php:159
-msgid "See all channel introductions"
+#: ../../include/js_strings.php:13
+msgid "Passphrase hint"
msgstr ""
-#: ../../include/nav.php:162
-msgid "Notices"
+#: ../../include/js_strings.php:15
+msgid "timeago.prefixAgo"
msgstr ""
-#: ../../include/nav.php:162 ../../mod/notifications.php:218
-msgid "Notifications"
+#: ../../include/js_strings.php:16
+msgid "timeago.suffixAgo"
msgstr ""
-#: ../../include/nav.php:163
-msgid "See all notifications"
+#: ../../include/js_strings.php:17
+msgid "ago"
msgstr ""
-#: ../../include/nav.php:164
-msgid "Mark all system notifications seen"
+#: ../../include/js_strings.php:18
+msgid "from now"
msgstr ""
-#: ../../include/nav.php:166
-msgid "Mail"
+#: ../../include/js_strings.php:19
+msgid "less than a minute"
msgstr ""
-#: ../../include/nav.php:166
-msgid "Private mail"
+#: ../../include/js_strings.php:20
+msgid "about a minute"
msgstr ""
-#: ../../include/nav.php:167
-msgid "See all private messages"
+#: ../../include/js_strings.php:21
+#, php-format
+msgid "%d minutes"
msgstr ""
-#: ../../include/nav.php:168
-msgid "Mark all private messages seen"
+#: ../../include/js_strings.php:22
+msgid "about an hour"
msgstr ""
-#: ../../include/nav.php:169
-msgid "Inbox"
+#: ../../include/js_strings.php:23
+#, php-format
+msgid "about %d hours"
msgstr ""
-#: ../../include/nav.php:170
-msgid "Outbox"
+#: ../../include/js_strings.php:24
+msgid "a day"
msgstr ""
-#: ../../include/nav.php:171 ../../mod/message.php:24
-msgid "New Message"
+#: ../../include/js_strings.php:25
+#, php-format
+msgid "%d days"
msgstr ""
-#: ../../include/nav.php:174 ../../include/conversation.php:1461
-#: ../../mod/events.php:353
-msgid "Events"
+#: ../../include/js_strings.php:26
+msgid "about a month"
msgstr ""
-#: ../../include/nav.php:174
-msgid "Event Calendar"
+#: ../../include/js_strings.php:27
+#, php-format
+msgid "%d months"
msgstr ""
-#: ../../include/nav.php:175
-msgid "See all events"
+#: ../../include/js_strings.php:28
+msgid "about a year"
msgstr ""
-#: ../../include/nav.php:176
-msgid "Mark all events seen"
+#: ../../include/js_strings.php:29
+#, php-format
+msgid "%d years"
msgstr ""
-#: ../../include/nav.php:178
-msgid "Channel Select"
+#: ../../include/js_strings.php:30
+msgid " "
msgstr ""
-#: ../../include/nav.php:178
-msgid "Manage Your Channels"
+#: ../../include/js_strings.php:31
+msgid "timeago.numbers"
msgstr ""
-#: ../../include/nav.php:180 ../../mod/settings.php:131
-#: ../../mod/admin.php:782 ../../mod/admin.php:987
-msgid "Settings"
+#: ../../include/message.php:18
+msgid "No recipient provided."
msgstr ""
-#: ../../include/nav.php:180
-msgid "Account/Channel Settings"
+#: ../../include/message.php:23
+msgid "[no subject]"
msgstr ""
-#: ../../include/nav.php:182 ../../mod/connections.php:690
-msgid "Connections"
+#: ../../include/message.php:42
+msgid "Unable to determine sender."
msgstr ""
-#: ../../include/nav.php:182
-msgid "Manage/Edit Friends and Connections"
+#: ../../include/message.php:143
+msgid "Stored post could not be verified."
msgstr ""
-#: ../../include/nav.php:189 ../../mod/admin.php:111
-msgid "Admin"
+#: ../../include/photo/photo_driver.php:643 ../../include/photos.php:51
+#: ../../mod/profile_photo.php:78 ../../mod/profile_photo.php:225
+#: ../../mod/profile_photo.php:336 ../../mod/photos.php:91
+#: ../../mod/photos.php:656 ../../mod/photos.php:678
+msgid "Profile Photos"
msgstr ""
-#: ../../include/nav.php:189
-msgid "Site Setup and Configuration"
+#: ../../include/attach.php:119 ../../include/attach.php:166
+#: ../../include/attach.php:229 ../../include/attach.php:243
+#: ../../include/attach.php:283 ../../include/attach.php:297
+#: ../../include/attach.php:322 ../../include/attach.php:513
+#: ../../include/attach.php:585 ../../include/chat.php:113
+#: ../../include/photos.php:15 ../../include/items.php:3575
+#: ../../mod/common.php:35 ../../mod/events.php:140 ../../mod/thing.php:247
+#: ../../mod/thing.php:263 ../../mod/thing.php:298 ../../mod/invite.php:13
+#: ../../mod/invite.php:104 ../../mod/settings.php:493 ../../mod/menu.php:44
+#: ../../mod/webpages.php:40 ../../mod/api.php:26 ../../mod/api.php:31
+#: ../../mod/bookmarks.php:46 ../../mod/item.php:182 ../../mod/item.php:190
+#: ../../mod/chat.php:87 ../../mod/chat.php:92
+#: ../../mod/viewconnections.php:22 ../../mod/viewconnections.php:27
+#: ../../mod/delegate.php:6 ../../mod/mitem.php:73 ../../mod/group.php:9
+#: ../../mod/viewsrc.php:12 ../../mod/editpost.php:13
+#: ../../mod/connedit.php:182 ../../mod/layouts.php:27
+#: ../../mod/layouts.php:42 ../../mod/page.php:30 ../../mod/page.php:80
+#: ../../mod/network.php:12 ../../mod/profiles.php:152
+#: ../../mod/profiles.php:453 ../../mod/sources.php:66 ../../mod/setup.php:200
+#: ../../mod/new_channel.php:66 ../../mod/new_channel.php:97
+#: ../../mod/achievements.php:27 ../../mod/manage.php:6 ../../mod/mail.php:108
+#: ../../mod/editlayout.php:48 ../../mod/profile_photo.php:187
+#: ../../mod/profile_photo.php:200 ../../mod/connections.php:169
+#: ../../mod/notifications.php:66 ../../mod/blocks.php:29
+#: ../../mod/blocks.php:44 ../../mod/editwebpage.php:44
+#: ../../mod/editwebpage.php:83 ../../mod/poke.php:128
+#: ../../mod/channel.php:88 ../../mod/channel.php:188
+#: ../../mod/channel.php:231 ../../mod/fsuggest.php:78
+#: ../../mod/editblock.php:48 ../../mod/filestorage.php:10
+#: ../../mod/filestorage.php:59 ../../mod/filestorage.php:75
+#: ../../mod/filestorage.php:98 ../../mod/suggest.php:26
+#: ../../mod/message.php:16 ../../mod/register.php:68 ../../mod/regmod.php:18
+#: ../../mod/authtest.php:13 ../../mod/photos.php:68 ../../mod/photos.php:526
+#: ../../mod/mood.php:119 ../../index.php:176 ../../index.php:351
+msgid "Permission denied."
msgstr ""
-#: ../../include/nav.php:215
-msgid "Nothing new here"
+#: ../../include/attach.php:224 ../../include/attach.php:278
+msgid "Item was not found."
msgstr ""
-#: ../../include/nav.php:220
-msgid "Please wait..."
+#: ../../include/attach.php:335
+msgid "No source file."
msgstr ""
-#: ../../include/account.php:23
-msgid "Not a valid email address"
+#: ../../include/attach.php:352
+msgid "Cannot locate file to replace"
msgstr ""
-#: ../../include/account.php:25
-msgid "Your email domain is not among those allowed on this site"
+#: ../../include/attach.php:370
+msgid "Cannot locate file to revise/update"
msgstr ""
-#: ../../include/account.php:31
-msgid "Your email address is already registered at this site."
+#: ../../include/attach.php:381
+#, php-format
+msgid "File exceeds size limit of %d"
msgstr ""
-#: ../../include/account.php:64
-msgid "An invitation is required."
+#: ../../include/attach.php:393
+#, php-format
+msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
msgstr ""
-#: ../../include/account.php:68
-msgid "Invitation could not be verified."
+#: ../../include/attach.php:475
+msgid "File upload failed. Possible system limit or action terminated."
msgstr ""
-#: ../../include/account.php:118
-msgid "Please enter the required information."
+#: ../../include/attach.php:487
+msgid "Stored file could not be verified. Upload failed."
msgstr ""
-#: ../../include/account.php:186
-msgid "Failed to store account information."
+#: ../../include/attach.php:528 ../../include/attach.php:545
+msgid "Path not available."
msgstr ""
-#: ../../include/account.php:272
-#, php-format
-msgid "Registration request at %s"
+#: ../../include/attach.php:590
+msgid "Empty pathname"
msgstr ""
-#: ../../include/account.php:274 ../../include/account.php:301
-#: ../../include/account.php:358
-msgid "Administrator"
+#: ../../include/attach.php:606
+msgid "duplicate filename or path"
msgstr ""
-#: ../../include/account.php:296
-msgid "your registration password"
+#: ../../include/attach.php:630
+msgid "Path not found."
msgstr ""
-#: ../../include/account.php:299 ../../include/account.php:356
-#, php-format
-msgid "Registration details for %s"
+#: ../../include/attach.php:674
+msgid "mkdir failed."
msgstr ""
-#: ../../include/account.php:365
-msgid "Account approved."
+#: ../../include/attach.php:678
+msgid "database storage failed."
msgstr ""
-#: ../../include/account.php:399
+#: ../../include/bookmarks.php:31
#, php-format
-msgid "Registration revoked for %s"
-msgstr ""
-
-#: ../../include/conversation.php:117 ../../include/text.php:1609
-#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:45
-msgid "photo"
-msgstr ""
-
-#: ../../include/conversation.php:120 ../../include/text.php:1612
-#: ../../mod/tagger.php:49
-msgid "event"
+msgid "%1$s's bookmarks"
msgstr ""
#: ../../include/conversation.php:123
msgid "channel"
msgstr ""
-#: ../../include/conversation.php:145 ../../include/text.php:1615
-#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:53
-msgid "status"
-msgstr ""
-
-#: ../../include/conversation.php:147 ../../include/text.php:1617
-#: ../../mod/tagger.php:55
-msgid "comment"
-msgstr ""
-
#: ../../include/conversation.php:161 ../../mod/like.php:134
#, php-format
msgid "%1$s likes %2$s's %3$s"
@@ -1770,1181 +1532,1171 @@ msgstr ""
msgid "%1$s is now connected with %2$s"
msgstr ""
-#: ../../include/conversation.php:232
+#: ../../include/conversation.php:236
#, php-format
msgid "%1$s poked %2$s"
msgstr ""
-#: ../../include/conversation.php:236 ../../include/text.php:776
-msgid "poked"
-msgstr ""
-
-#: ../../include/conversation.php:254 ../../mod/mood.php:63
+#: ../../include/conversation.php:258 ../../mod/mood.php:63
#, php-format
msgid "%1$s is currently %2$s"
msgstr ""
-#: ../../include/conversation.php:658
+#: ../../include/conversation.php:631 ../../include/ItemObject.php:114
+msgid "Select"
+msgstr ""
+
+#: ../../include/conversation.php:632 ../../include/ItemObject.php:108
+#: ../../mod/thing.php:236 ../../mod/settings.php:579 ../../mod/group.php:176
+#: ../../mod/admin.php:746 ../../mod/connedit.php:359
+#: ../../mod/filestorage.php:171 ../../mod/photos.php:1044
+msgid "Delete"
+msgstr ""
+
+#: ../../include/conversation.php:642 ../../include/ItemObject.php:161
+msgid "Message is verified"
+msgstr ""
+
+#: ../../include/conversation.php:662
#, php-format
msgid "View %s's profile @ %s"
msgstr ""
-#: ../../include/conversation.php:672
+#: ../../include/conversation.php:676
msgid "Categories:"
msgstr ""
-#: ../../include/conversation.php:673
+#: ../../include/conversation.php:677
msgid "Filed under:"
msgstr ""
-#: ../../include/conversation.php:700
+#: ../../include/conversation.php:686 ../../include/ItemObject.php:226
+#, php-format
+msgid " from %s"
+msgstr ""
+
+#: ../../include/conversation.php:689 ../../include/ItemObject.php:229
+#, php-format
+msgid "last edited: %s"
+msgstr ""
+
+#: ../../include/conversation.php:690 ../../include/ItemObject.php:230
+#, php-format
+msgid "Expires: %s"
+msgstr ""
+
+#: ../../include/conversation.php:705
msgid "View in context"
msgstr ""
-#: ../../include/conversation.php:826
+#: ../../include/conversation.php:707 ../../include/conversation.php:1120
+#: ../../include/ItemObject.php:259 ../../mod/editpost.php:121
+#: ../../mod/mail.php:222 ../../mod/mail.php:336 ../../mod/editlayout.php:115
+#: ../../mod/editwebpage.php:153 ../../mod/editblock.php:129
+#: ../../mod/photos.php:975
+msgid "Please wait"
+msgstr ""
+
+#: ../../include/conversation.php:834
msgid "remove"
msgstr ""
-#: ../../include/conversation.php:830
+#: ../../include/conversation.php:838
msgid "Loading..."
msgstr ""
-#: ../../include/conversation.php:831
+#: ../../include/conversation.php:839
msgid "Delete Selected Items"
msgstr ""
-#: ../../include/conversation.php:922
+#: ../../include/conversation.php:930
msgid "View Source"
msgstr ""
-#: ../../include/conversation.php:923
+#: ../../include/conversation.php:931
msgid "Follow Thread"
msgstr ""
-#: ../../include/conversation.php:924
+#: ../../include/conversation.php:932
msgid "View Status"
msgstr ""
-#: ../../include/conversation.php:926
+#: ../../include/conversation.php:934
msgid "View Photos"
msgstr ""
-#: ../../include/conversation.php:927
+#: ../../include/conversation.php:935
msgid "Matrix Activity"
msgstr ""
-#: ../../include/conversation.php:928
+#: ../../include/conversation.php:936
msgid "Edit Contact"
msgstr ""
-#: ../../include/conversation.php:929
+#: ../../include/conversation.php:937
msgid "Send PM"
msgstr ""
-#: ../../include/conversation.php:930
+#: ../../include/conversation.php:938
msgid "Poke"
msgstr ""
-#: ../../include/conversation.php:992
+#: ../../include/conversation.php:1000
#, php-format
msgid "%s likes this."
msgstr ""
-#: ../../include/conversation.php:992
+#: ../../include/conversation.php:1000
#, php-format
msgid "%s doesn't like this."
msgstr ""
-#: ../../include/conversation.php:996
+#: ../../include/conversation.php:1004
#, php-format
msgid "<span %1$s>%2$d people</span> like this."
msgid_plural "<span %1$s>%2$d people</span> like this."
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:998
+#: ../../include/conversation.php:1006
#, php-format
msgid "<span %1$s>%2$d people</span> don't like this."
msgid_plural "<span %1$s>%2$d people</span> don't like this."
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1004
+#: ../../include/conversation.php:1012
msgid "and"
msgstr ""
-#: ../../include/conversation.php:1007
+#: ../../include/conversation.php:1015
#, php-format
msgid ", and %d other people"
msgid_plural ", and %d other people"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1008
+#: ../../include/conversation.php:1016
#, php-format
msgid "%s like this."
msgstr ""
-#: ../../include/conversation.php:1008
+#: ../../include/conversation.php:1016
#, php-format
msgid "%s don't like this."
msgstr ""
-#: ../../include/conversation.php:1058
+#: ../../include/conversation.php:1066
msgid "Visible to <strong>everybody</strong>"
msgstr ""
-#: ../../include/conversation.php:1059 ../../mod/message.php:281
-#: ../../mod/message.php:417
+#: ../../include/conversation.php:1067 ../../mod/mail.php:171
+#: ../../mod/mail.php:269
msgid "Please enter a link URL:"
msgstr ""
-#: ../../include/conversation.php:1060
+#: ../../include/conversation.php:1068
msgid "Please enter a video link/URL:"
msgstr ""
-#: ../../include/conversation.php:1061
+#: ../../include/conversation.php:1069
msgid "Please enter an audio link/URL:"
msgstr ""
-#: ../../include/conversation.php:1062
+#: ../../include/conversation.php:1070
msgid "Tag term:"
msgstr ""
-#: ../../include/conversation.php:1063 ../../mod/filer.php:35
+#: ../../include/conversation.php:1071 ../../mod/filer.php:35
msgid "Save to Folder:"
msgstr ""
-#: ../../include/conversation.php:1064
+#: ../../include/conversation.php:1072
msgid "Where are you right now?"
msgstr ""
-#: ../../include/conversation.php:1065 ../../mod/message.php:282
-#: ../../mod/message.php:418 ../../mod/editpost.php:52
+#: ../../include/conversation.php:1073 ../../mod/editpost.php:52
+#: ../../mod/mail.php:172 ../../mod/mail.php:270
msgid "Expires YYYY-MM-DD HH:MM"
msgstr ""
-#: ../../include/conversation.php:1089 ../../mod/photos.php:1071
+#: ../../include/conversation.php:1083 ../../include/ItemObject.php:557
+#: ../../mod/webpages.php:122 ../../mod/editpost.php:141
+#: ../../mod/editlayout.php:136 ../../mod/editwebpage.php:177
+#: ../../mod/editblock.php:151 ../../mod/photos.php:995
+msgid "Preview"
+msgstr ""
+
+#: ../../include/conversation.php:1097 ../../mod/photos.php:974
msgid "Share"
msgstr ""
-#: ../../include/conversation.php:1091
+#: ../../include/conversation.php:1099 ../../mod/editwebpage.php:140
msgid "Page link title"
msgstr ""
-#: ../../include/conversation.php:1093 ../../mod/message.php:329
-#: ../../mod/message.php:512 ../../mod/editlayout.php:101
-#: ../../mod/editwebpage.php:120 ../../mod/editpost.php:98
-#: ../../mod/editblock.php:115
+#: ../../include/conversation.php:1101 ../../mod/editpost.php:113
+#: ../../mod/mail.php:219 ../../mod/mail.php:332 ../../mod/editlayout.php:107
+#: ../../mod/editwebpage.php:145 ../../mod/editblock.php:121
msgid "Upload photo"
msgstr ""
-#: ../../include/conversation.php:1094
+#: ../../include/conversation.php:1102
msgid "upload photo"
msgstr ""
-#: ../../include/conversation.php:1095 ../../mod/message.php:330
-#: ../../mod/message.php:513 ../../mod/editlayout.php:102
-#: ../../mod/editwebpage.php:121 ../../mod/editpost.php:99
-#: ../../mod/editblock.php:116
+#: ../../include/conversation.php:1103 ../../mod/editpost.php:114
+#: ../../mod/mail.php:220 ../../mod/mail.php:333 ../../mod/editlayout.php:108
+#: ../../mod/editwebpage.php:146 ../../mod/editblock.php:122
msgid "Attach file"
msgstr ""
-#: ../../include/conversation.php:1096
+#: ../../include/conversation.php:1104
msgid "attach file"
msgstr ""
-#: ../../include/conversation.php:1097 ../../mod/message.php:331
-#: ../../mod/message.php:514 ../../mod/editlayout.php:103
-#: ../../mod/editwebpage.php:122 ../../mod/editpost.php:100
-#: ../../mod/editblock.php:117
+#: ../../include/conversation.php:1105 ../../mod/editpost.php:115
+#: ../../mod/mail.php:221 ../../mod/mail.php:334 ../../mod/editlayout.php:109
+#: ../../mod/editwebpage.php:147 ../../mod/editblock.php:123
msgid "Insert web link"
msgstr ""
-#: ../../include/conversation.php:1098
+#: ../../include/conversation.php:1106
msgid "web link"
msgstr ""
-#: ../../include/conversation.php:1099
+#: ../../include/conversation.php:1107
msgid "Insert video link"
msgstr ""
-#: ../../include/conversation.php:1100
+#: ../../include/conversation.php:1108
msgid "video link"
msgstr ""
-#: ../../include/conversation.php:1101
+#: ../../include/conversation.php:1109
msgid "Insert audio link"
msgstr ""
-#: ../../include/conversation.php:1102
+#: ../../include/conversation.php:1110
msgid "audio link"
msgstr ""
-#: ../../include/conversation.php:1103 ../../mod/editlayout.php:107
-#: ../../mod/editwebpage.php:126 ../../mod/editpost.php:104
-#: ../../mod/editblock.php:121
+#: ../../include/conversation.php:1111 ../../mod/editpost.php:119
+#: ../../mod/editlayout.php:113 ../../mod/editwebpage.php:151
+#: ../../mod/editblock.php:127
msgid "Set your location"
msgstr ""
-#: ../../include/conversation.php:1104
+#: ../../include/conversation.php:1112
msgid "set location"
msgstr ""
-#: ../../include/conversation.php:1105 ../../mod/editlayout.php:108
-#: ../../mod/editwebpage.php:127 ../../mod/editpost.php:105
-#: ../../mod/editblock.php:122
+#: ../../include/conversation.php:1113 ../../mod/editpost.php:120
+#: ../../mod/editlayout.php:114 ../../mod/editwebpage.php:152
+#: ../../mod/editblock.php:128
msgid "Clear browser location"
msgstr ""
-#: ../../include/conversation.php:1106
+#: ../../include/conversation.php:1114
msgid "clear location"
msgstr ""
-#: ../../include/conversation.php:1108 ../../mod/editlayout.php:121
-#: ../../mod/editwebpage.php:142 ../../mod/editpost.php:118
-#: ../../mod/editblock.php:136
+#: ../../include/conversation.php:1116 ../../mod/editpost.php:133
+#: ../../mod/editlayout.php:127 ../../mod/editwebpage.php:169
+#: ../../mod/editblock.php:142
msgid "Set title"
msgstr ""
-#: ../../include/conversation.php:1111 ../../mod/editlayout.php:123
-#: ../../mod/editwebpage.php:144 ../../mod/editpost.php:120
-#: ../../mod/editblock.php:138
+#: ../../include/conversation.php:1119 ../../mod/editpost.php:135
+#: ../../mod/editlayout.php:130 ../../mod/editwebpage.php:171
+#: ../../mod/editblock.php:145
msgid "Categories (comma-separated list)"
msgstr ""
-#: ../../include/conversation.php:1113 ../../mod/editlayout.php:110
-#: ../../mod/editwebpage.php:129 ../../mod/editpost.php:107
-#: ../../mod/editblock.php:124
+#: ../../include/conversation.php:1121 ../../mod/editpost.php:122
+#: ../../mod/editlayout.php:116 ../../mod/editwebpage.php:154
+#: ../../mod/editblock.php:130
msgid "Permission settings"
msgstr ""
-#: ../../include/conversation.php:1114
+#: ../../include/conversation.php:1122
msgid "permissions"
msgstr ""
-#: ../../include/conversation.php:1122 ../../mod/editlayout.php:118
-#: ../../mod/editwebpage.php:137 ../../mod/editpost.php:115
-#: ../../mod/editblock.php:133
+#: ../../include/conversation.php:1130 ../../mod/editpost.php:130
+#: ../../mod/editlayout.php:124 ../../mod/editwebpage.php:164
+#: ../../mod/editblock.php:139
msgid "Public post"
msgstr ""
-#: ../../include/conversation.php:1124 ../../mod/editlayout.php:124
-#: ../../mod/editwebpage.php:145 ../../mod/editpost.php:121
-#: ../../mod/editblock.php:139
+#: ../../include/conversation.php:1132 ../../mod/editpost.php:136
+#: ../../mod/editlayout.php:131 ../../mod/editwebpage.php:172
+#: ../../mod/editblock.php:146
msgid "Example: bob@example.com, mary@example.com"
msgstr ""
-#: ../../include/conversation.php:1137 ../../mod/message.php:336
-#: ../../mod/message.php:519 ../../mod/editlayout.php:134
-#: ../../mod/editwebpage.php:155 ../../mod/editpost.php:132
-#: ../../mod/editblock.php:149
+#: ../../include/conversation.php:1145 ../../mod/editpost.php:147
+#: ../../mod/mail.php:226 ../../mod/mail.php:339 ../../mod/editlayout.php:141
+#: ../../mod/editwebpage.php:182 ../../mod/editblock.php:156
msgid "Set expiration date"
msgstr ""
-#: ../../include/conversation.php:1364
+#: ../../include/conversation.php:1147 ../../include/ItemObject.php:560
+#: ../../mod/editpost.php:149 ../../mod/mail.php:228 ../../mod/mail.php:341
+msgid "Encrypt text"
+msgstr ""
+
+#: ../../include/conversation.php:1149 ../../mod/editpost.php:151
+msgid "OK"
+msgstr ""
+
+#: ../../include/conversation.php:1150 ../../mod/settings.php:517
+#: ../../mod/settings.php:543 ../../mod/tagrm.php:11 ../../mod/tagrm.php:94
+#: ../../mod/editpost.php:152 ../../mod/fbrowser.php:82
+#: ../../mod/fbrowser.php:117
+msgid "Cancel"
+msgstr ""
+
+#: ../../include/conversation.php:1381
msgid "Commented Order"
msgstr ""
-#: ../../include/conversation.php:1367
+#: ../../include/conversation.php:1384
msgid "Sort by Comment Date"
msgstr ""
-#: ../../include/conversation.php:1370
+#: ../../include/conversation.php:1387
msgid "Posted Order"
msgstr ""
-#: ../../include/conversation.php:1373
+#: ../../include/conversation.php:1390
msgid "Sort by Post Date"
msgstr ""
-#: ../../include/conversation.php:1377 ../../mod/notifications.php:86
+#: ../../include/conversation.php:1394
msgid "Personal"
msgstr ""
-#: ../../include/conversation.php:1380
+#: ../../include/conversation.php:1397
msgid "Posts that mention or involve you"
msgstr ""
-#: ../../include/conversation.php:1383 ../../mod/menu.php:57
-#: ../../mod/connections.php:552
+#: ../../include/conversation.php:1400 ../../mod/menu.php:61
+#: ../../mod/connections.php:211
msgid "New"
msgstr ""
-#: ../../include/conversation.php:1386
+#: ../../include/conversation.php:1403
msgid "Activity Stream - by date"
msgstr ""
-#: ../../include/conversation.php:1393
+#: ../../include/conversation.php:1410
msgid "Starred"
msgstr ""
-#: ../../include/conversation.php:1396
+#: ../../include/conversation.php:1413
msgid "Favourite Posts"
msgstr ""
-#: ../../include/conversation.php:1403
+#: ../../include/conversation.php:1420
msgid "Spam"
msgstr ""
-#: ../../include/conversation.php:1406
+#: ../../include/conversation.php:1423
msgid "Posts flagged as SPAM"
msgstr ""
-#: ../../include/conversation.php:1436
+#: ../../include/conversation.php:1454
msgid "Channel"
msgstr ""
-#: ../../include/conversation.php:1439
+#: ../../include/conversation.php:1457
msgid "Status Messages and Posts"
msgstr ""
-#: ../../include/conversation.php:1443
+#: ../../include/conversation.php:1466
msgid "About"
msgstr ""
-#: ../../include/conversation.php:1446
-msgid "Profile Details"
-msgstr ""
-
-#: ../../include/conversation.php:1464
-msgid "Events and Calendar"
-msgstr ""
-
#: ../../include/conversation.php:1469
-msgid "Webpages"
-msgstr ""
-
-#: ../../include/conversation.php:1472
-msgid "Manage Webpages"
-msgstr ""
-
-#: ../../include/auth.php:69
-msgid "Logged out."
-msgstr ""
-
-#: ../../include/auth.php:181
-msgid "Failed authentication"
-msgstr ""
-
-#: ../../include/auth.php:190
-msgid "Login failed."
-msgstr ""
-
-#: ../../include/contact_widgets.php:14
-#, php-format
-msgid "You have %1$.0f of %2$.0f allowed connections."
-msgstr ""
-
-#: ../../include/contact_widgets.php:20
-msgid "Add New Connection"
-msgstr ""
-
-#: ../../include/contact_widgets.php:21
-msgid "Enter the channel address"
-msgstr ""
-
-#: ../../include/contact_widgets.php:22
-msgid "Example: bob@example.com, http://example.com/barbara"
-msgstr ""
-
-#: ../../include/contact_widgets.php:38
-#, php-format
-msgid "%d invitation available"
-msgid_plural "%d invitations available"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/contact_widgets.php:44
-msgid "Find Channels"
-msgstr ""
-
-#: ../../include/contact_widgets.php:45
-msgid "Enter name or interest"
-msgstr ""
-
-#: ../../include/contact_widgets.php:46
-msgid "Connect/Follow"
-msgstr ""
-
-#: ../../include/contact_widgets.php:47
-msgid "Examples: Robert Morgenstein, Fishing"
-msgstr ""
-
-#: ../../include/contact_widgets.php:48 ../../mod/connections.php:696
-#: ../../mod/directory.php:221 ../../mod/directory.php:226
-msgid "Find"
-msgstr ""
-
-#: ../../include/contact_widgets.php:49 ../../mod/suggest.php:64
-msgid "Channel Suggestions"
+msgid "Profile Details"
msgstr ""
-#: ../../include/contact_widgets.php:51
-msgid "Random Profile"
+#: ../../include/conversation.php:1478 ../../include/photos.php:302
+msgid "Photo Albums"
msgstr ""
-#: ../../include/contact_widgets.php:52
-msgid "Invite Friends"
+#: ../../include/conversation.php:1487
+msgid "Files and Storage"
msgstr ""
-#: ../../include/contact_widgets.php:79 ../../include/contact_widgets.php:113
-msgid "Everything"
+#: ../../include/conversation.php:1496 ../../include/conversation.php:1499
+msgid "Chatrooms"
msgstr ""
-#: ../../include/contact_widgets.php:110 ../../include/widgets.php:26
-msgid "Categories"
-msgstr ""
-
-#: ../../include/contact_widgets.php:143
-#, php-format
-msgid "%d connection in common"
-msgid_plural "%d connections in common"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/page_widgets.php:6
-msgid "New Page"
+#: ../../include/conversation.php:1509
+msgid "Events and Calendar"
msgstr ""
-#: ../../include/text.php:315
-msgid "prev"
+#: ../../include/conversation.php:1517
+msgid "Saved Bookmarks"
msgstr ""
-#: ../../include/text.php:317
-msgid "first"
+#: ../../include/conversation.php:1528
+msgid "Manage Webpages"
msgstr ""
-#: ../../include/text.php:346
-msgid "last"
+#: ../../include/identity.php:30 ../../mod/item.php:1187
+msgid "Unable to obtain identity information from database"
msgstr ""
-#: ../../include/text.php:349
-msgid "next"
+#: ../../include/identity.php:63
+msgid "Empty name"
msgstr ""
-#: ../../include/text.php:361
-msgid "older"
+#: ../../include/identity.php:65
+msgid "Name too long"
msgstr ""
-#: ../../include/text.php:363
-msgid "newer"
+#: ../../include/identity.php:147
+msgid "No account identifier"
msgstr ""
-#: ../../include/text.php:654
-msgid "No connections"
+#: ../../include/identity.php:157
+msgid "Nickname is required."
msgstr ""
-#: ../../include/text.php:665
-#, php-format
-msgid "%d Connection"
-msgid_plural "%d Connections"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../include/text.php:677
-msgid "View Connections"
+#: ../../include/identity.php:171
+msgid ""
+"Nickname has unsupported characters or is already being used on this site."
msgstr ""
-#: ../../include/text.php:738 ../../mod/filer.php:36
-msgid "Save"
+#: ../../include/identity.php:230
+msgid "Unable to retrieve created identity"
msgstr ""
-#: ../../include/text.php:776
-msgid "poke"
+#: ../../include/identity.php:289
+msgid "Default Profile"
msgstr ""
-#: ../../include/text.php:777
-msgid "ping"
+#: ../../include/identity.php:481
+msgid "Requested channel is not available."
msgstr ""
-#: ../../include/text.php:777
-msgid "pinged"
+#: ../../include/identity.php:493
+msgid " Sorry, you don't have the permission to view this profile. "
msgstr ""
-#: ../../include/text.php:778
-msgid "prod"
+#: ../../include/identity.php:528 ../../mod/webpages.php:8
+#: ../../mod/connect.php:13 ../../mod/layouts.php:8
+#: ../../mod/achievements.php:8 ../../mod/blocks.php:10
+#: ../../mod/profile.php:16 ../../mod/filestorage.php:40
+msgid "Requested profile is not available."
msgstr ""
-#: ../../include/text.php:778
-msgid "prodded"
+#: ../../include/identity.php:646 ../../mod/profiles.php:603
+msgid "Change profile photo"
msgstr ""
-#: ../../include/text.php:779
-msgid "slap"
+#: ../../include/identity.php:652
+msgid "Profiles"
msgstr ""
-#: ../../include/text.php:779
-msgid "slapped"
+#: ../../include/identity.php:652
+msgid "Manage/edit profiles"
msgstr ""
-#: ../../include/text.php:780
-msgid "finger"
+#: ../../include/identity.php:653 ../../mod/profiles.php:604
+msgid "Create New Profile"
msgstr ""
-#: ../../include/text.php:780
-msgid "fingered"
+#: ../../include/identity.php:656
+msgid "Edit Profile"
msgstr ""
-#: ../../include/text.php:781
-msgid "rebuff"
+#: ../../include/identity.php:667 ../../mod/profiles.php:615
+msgid "Profile Image"
msgstr ""
-#: ../../include/text.php:781
-msgid "rebuffed"
+#: ../../include/identity.php:670 ../../mod/profiles.php:618
+msgid "visible to everybody"
msgstr ""
-#: ../../include/text.php:793
-msgid "happy"
+#: ../../include/identity.php:671 ../../mod/profiles.php:619
+msgid "Edit visibility"
msgstr ""
-#: ../../include/text.php:794
-msgid "sad"
+#: ../../include/identity.php:685 ../../include/identity.php:912
+#: ../../mod/directory.php:159
+msgid "Gender:"
msgstr ""
-#: ../../include/text.php:795
-msgid "mellow"
+#: ../../include/identity.php:686 ../../include/identity.php:932
+#: ../../mod/directory.php:161
+msgid "Status:"
msgstr ""
-#: ../../include/text.php:796
-msgid "tired"
+#: ../../include/identity.php:687 ../../include/identity.php:943
+#: ../../mod/directory.php:163
+msgid "Homepage:"
msgstr ""
-#: ../../include/text.php:797
-msgid "perky"
+#: ../../include/identity.php:688 ../../mod/dirprofile.php:157
+msgid "Online Now"
msgstr ""
-#: ../../include/text.php:798
-msgid "angry"
+#: ../../include/identity.php:756 ../../include/identity.php:836
+#: ../../mod/ping.php:262
+msgid "g A l F d"
msgstr ""
-#: ../../include/text.php:799
-msgid "stupified"
+#: ../../include/identity.php:757 ../../include/identity.php:837
+msgid "F d"
msgstr ""
-#: ../../include/text.php:800
-msgid "puzzled"
+#: ../../include/identity.php:802 ../../include/identity.php:877
+#: ../../mod/ping.php:284
+msgid "[today]"
msgstr ""
-#: ../../include/text.php:801
-msgid "interested"
+#: ../../include/identity.php:814
+msgid "Birthday Reminders"
msgstr ""
-#: ../../include/text.php:802
-msgid "bitter"
+#: ../../include/identity.php:815
+msgid "Birthdays this week:"
msgstr ""
-#: ../../include/text.php:803
-msgid "cheerful"
+#: ../../include/identity.php:870
+msgid "[No description]"
msgstr ""
-#: ../../include/text.php:804
-msgid "alive"
+#: ../../include/identity.php:888
+msgid "Event Reminders"
msgstr ""
-#: ../../include/text.php:805
-msgid "annoyed"
+#: ../../include/identity.php:889
+msgid "Events this week:"
msgstr ""
-#: ../../include/text.php:806
-msgid "anxious"
+#: ../../include/identity.php:902 ../../include/identity.php:986
+#: ../../mod/profperm.php:107
+msgid "Profile"
msgstr ""
-#: ../../include/text.php:807
-msgid "cranky"
+#: ../../include/identity.php:910 ../../mod/settings.php:937
+msgid "Full Name:"
msgstr ""
-#: ../../include/text.php:808
-msgid "disturbed"
+#: ../../include/identity.php:917
+msgid "j F, Y"
msgstr ""
-#: ../../include/text.php:809
-msgid "frustrated"
+#: ../../include/identity.php:918
+msgid "j F"
msgstr ""
-#: ../../include/text.php:810
-msgid "motivated"
+#: ../../include/identity.php:925
+msgid "Birthday:"
msgstr ""
-#: ../../include/text.php:811
-msgid "relaxed"
+#: ../../include/identity.php:929
+msgid "Age:"
msgstr ""
-#: ../../include/text.php:812
-msgid "surprised"
+#: ../../include/identity.php:938
+#, php-format
+msgid "for %1$d %2$s"
msgstr ""
-#: ../../include/text.php:976
-msgid "Monday"
+#: ../../include/identity.php:941 ../../mod/profiles.php:526
+msgid "Sexual Preference:"
msgstr ""
-#: ../../include/text.php:976
-msgid "Tuesday"
+#: ../../include/identity.php:945 ../../mod/profiles.php:528
+msgid "Hometown:"
msgstr ""
-#: ../../include/text.php:976
-msgid "Wednesday"
+#: ../../include/identity.php:947
+msgid "Tags:"
msgstr ""
-#: ../../include/text.php:976
-msgid "Thursday"
+#: ../../include/identity.php:949 ../../mod/profiles.php:529
+msgid "Political Views:"
msgstr ""
-#: ../../include/text.php:976
-msgid "Friday"
+#: ../../include/identity.php:951
+msgid "Religion:"
msgstr ""
-#: ../../include/text.php:976
-msgid "Saturday"
+#: ../../include/identity.php:953 ../../mod/directory.php:165
+msgid "About:"
msgstr ""
-#: ../../include/text.php:976
-msgid "Sunday"
+#: ../../include/identity.php:955
+msgid "Hobbies/Interests:"
msgstr ""
-#: ../../include/text.php:980
-msgid "January"
+#: ../../include/identity.php:957 ../../mod/profiles.php:532
+msgid "Likes:"
msgstr ""
-#: ../../include/text.php:980
-msgid "February"
+#: ../../include/identity.php:959 ../../mod/profiles.php:533
+msgid "Dislikes:"
msgstr ""
-#: ../../include/text.php:980
-msgid "March"
+#: ../../include/identity.php:962
+msgid "Contact information and Social Networks:"
msgstr ""
-#: ../../include/text.php:980
-msgid "April"
+#: ../../include/identity.php:964
+msgid "My other channels:"
msgstr ""
-#: ../../include/text.php:980
-msgid "May"
+#: ../../include/identity.php:966
+msgid "Musical interests:"
msgstr ""
-#: ../../include/text.php:980
-msgid "June"
+#: ../../include/identity.php:968
+msgid "Books, literature:"
msgstr ""
-#: ../../include/text.php:980
-msgid "July"
+#: ../../include/identity.php:970
+msgid "Television:"
msgstr ""
-#: ../../include/text.php:980
-msgid "August"
+#: ../../include/identity.php:972
+msgid "Film/dance/culture/entertainment:"
msgstr ""
-#: ../../include/text.php:980
-msgid "September"
+#: ../../include/identity.php:974
+msgid "Love/Romance:"
msgstr ""
-#: ../../include/text.php:980
-msgid "October"
+#: ../../include/identity.php:976
+msgid "Work/employment:"
msgstr ""
-#: ../../include/text.php:980
-msgid "November"
+#: ../../include/identity.php:978
+msgid "School/education:"
msgstr ""
-#: ../../include/text.php:980
-msgid "December"
+#: ../../include/ItemObject.php:89 ../../mod/photos.php:847
+msgid "Private Message"
msgstr ""
-#: ../../include/text.php:1058 ../../mod/message.php:453
-msgid "unknown.???"
+#: ../../include/ItemObject.php:96 ../../include/page_widgets.php:8
+#: ../../include/menu.php:41 ../../mod/thing.php:235
+#: ../../mod/settings.php:578 ../../mod/menu.php:59 ../../mod/webpages.php:118
+#: ../../mod/editpost.php:112 ../../mod/layouts.php:102
+#: ../../mod/editlayout.php:106 ../../mod/blocks.php:93
+#: ../../mod/editwebpage.php:144 ../../mod/editblock.php:120
+#: ../../mod/filestorage.php:170
+msgid "Edit"
msgstr ""
-#: ../../include/text.php:1059 ../../mod/message.php:454
-msgid "bytes"
+#: ../../include/ItemObject.php:118
+msgid "save to folder"
msgstr ""
-#: ../../include/text.php:1094
-msgid "remove category"
+#: ../../include/ItemObject.php:146
+msgid "add star"
msgstr ""
-#: ../../include/text.php:1116
-msgid "remove from file"
+#: ../../include/ItemObject.php:147
+msgid "remove star"
msgstr ""
-#: ../../include/text.php:1170 ../../include/text.php:1182
-msgid "Click to open/close"
+#: ../../include/ItemObject.php:148
+msgid "toggle star status"
msgstr ""
-#: ../../include/text.php:1358 ../../mod/events.php:331
-msgid "link to source"
+#: ../../include/ItemObject.php:152
+msgid "starred"
msgstr ""
-#: ../../include/text.php:1377
-msgid "Select a page layout: "
+#: ../../include/ItemObject.php:169
+msgid "add tag"
msgstr ""
-#: ../../include/text.php:1380 ../../include/text.php:1445
-msgid "default"
+#: ../../include/ItemObject.php:184 ../../mod/photos.php:972
+msgid "I like this (toggle)"
msgstr ""
-#: ../../include/text.php:1416
-msgid "Page content type: "
+#: ../../include/ItemObject.php:184 ../../include/taxonomy.php:254
+msgid "like"
msgstr ""
-#: ../../include/text.php:1457
-msgid "Select an alternate language"
+#: ../../include/ItemObject.php:185 ../../mod/photos.php:973
+msgid "I don't like this (toggle)"
msgstr ""
-#: ../../include/text.php:1622
-msgid "activity"
+#: ../../include/ItemObject.php:185 ../../include/taxonomy.php:255
+msgid "dislike"
msgstr ""
-#: ../../include/text.php:1884
-msgid "Design"
+#: ../../include/ItemObject.php:187
+msgid "Share this"
msgstr ""
-#: ../../include/text.php:1886
-msgid "Blocks"
+#: ../../include/ItemObject.php:187
+msgid "share"
msgstr ""
-#: ../../include/text.php:1887
-msgid "Menus"
+#: ../../include/ItemObject.php:211 ../../include/ItemObject.php:212
+#, php-format
+msgid "View %s's profile - %s"
msgstr ""
-#: ../../include/text.php:1888
-msgid "Layouts"
+#: ../../include/ItemObject.php:213
+msgid "to"
msgstr ""
-#: ../../include/text.php:1889
-msgid "Pages"
+#: ../../include/ItemObject.php:214
+msgid "via"
msgstr ""
-#: ../../include/follow.php:21
-msgid "Channel is blocked on this site."
+#: ../../include/ItemObject.php:215
+msgid "Wall-to-Wall"
msgstr ""
-#: ../../include/follow.php:26
-msgid "Channel location missing."
+#: ../../include/ItemObject.php:216
+msgid "via Wall-To-Wall:"
msgstr ""
-#: ../../include/follow.php:43
-msgid "Channel discovery failed. Website may be down or misconfigured."
+#: ../../include/ItemObject.php:250
+msgid "Bookmark Links"
msgstr ""
-#: ../../include/follow.php:51
-msgid "Response from remote channel was not understood."
-msgstr ""
+#: ../../include/ItemObject.php:280
+#, php-format
+msgid "%d comment"
+msgid_plural "%d comments"
+msgstr[0] ""
+msgstr[1] ""
-#: ../../include/follow.php:58
-msgid "Response from remote channel was incomplete."
+#: ../../include/ItemObject.php:545 ../../mod/photos.php:991
+#: ../../mod/photos.php:1078
+msgid "This is you"
msgstr ""
-#: ../../include/follow.php:129
-msgid "local account not found."
+#: ../../include/ItemObject.php:548 ../../mod/events.php:469
+#: ../../mod/thing.php:283 ../../mod/thing.php:326 ../../mod/invite.php:156
+#: ../../mod/settings.php:516 ../../mod/settings.php:628
+#: ../../mod/settings.php:656 ../../mod/settings.php:680
+#: ../../mod/settings.php:752 ../../mod/settings.php:929
+#: ../../mod/chat.php:162 ../../mod/chat.php:192 ../../mod/connect.php:92
+#: ../../mod/group.php:81 ../../mod/admin.php:431 ../../mod/admin.php:739
+#: ../../mod/admin.php:879 ../../mod/admin.php:1078 ../../mod/admin.php:1165
+#: ../../mod/connedit.php:437 ../../mod/profiles.php:506
+#: ../../mod/sources.php:104 ../../mod/sources.php:138 ../../mod/setup.php:304
+#: ../../mod/setup.php:347 ../../mod/import.php:387 ../../mod/mail.php:223
+#: ../../mod/mail.php:335 ../../mod/poke.php:166 ../../mod/fsuggest.php:108
+#: ../../mod/filestorage.php:131 ../../mod/photos.php:566
+#: ../../mod/photos.php:671 ../../mod/photos.php:954 ../../mod/photos.php:994
+#: ../../mod/photos.php:1081 ../../mod/mood.php:142
+#: ../../view/theme/redbasic/php/config.php:95
+#: ../../view/theme/apw/php/config.php:231
+#: ../../view/theme/blogga/view/theme/blog/config.php:67
+#: ../../view/theme/blogga/php/config.php:67
+msgid "Submit"
msgstr ""
-#: ../../include/follow.php:138
-msgid "Cannot connect to yourself."
+#: ../../include/ItemObject.php:549
+msgid "Bold"
msgstr ""
-#: ../../include/permissions.php:13
-msgid "Can view my \"public\" stream and posts"
+#: ../../include/ItemObject.php:550
+msgid "Italic"
msgstr ""
-#: ../../include/permissions.php:14
-msgid "Can view my \"public\" channel profile"
+#: ../../include/ItemObject.php:551
+msgid "Underline"
msgstr ""
-#: ../../include/permissions.php:15
-msgid "Can view my \"public\" photo albums"
+#: ../../include/ItemObject.php:552
+msgid "Quote"
msgstr ""
-#: ../../include/permissions.php:16
-msgid "Can view my \"public\" address book"
+#: ../../include/ItemObject.php:553
+msgid "Code"
msgstr ""
-#: ../../include/permissions.php:17
-msgid "Can view my \"public\" file storage"
+#: ../../include/ItemObject.php:554
+msgid "Image"
msgstr ""
-#: ../../include/permissions.php:18
-msgid "Can view my \"public\" pages"
+#: ../../include/ItemObject.php:555
+msgid "Link"
msgstr ""
-#: ../../include/permissions.php:21
-msgid "Can send me their channel stream and posts"
+#: ../../include/ItemObject.php:556
+msgid "Video"
msgstr ""
-#: ../../include/permissions.php:22
-msgid "Can post on my channel page (\"wall\")"
+#: ../../include/api.php:974
+msgid "Public Timeline"
msgstr ""
-#: ../../include/permissions.php:23
-msgid "Can comment on my posts"
+#: ../../include/network.php:640
+msgid "view full size"
msgstr ""
-#: ../../include/permissions.php:24
-msgid "Can send me private mail messages"
+#: ../../include/notify.php:23
+msgid "created a new post"
msgstr ""
-#: ../../include/permissions.php:25
-msgid "Can post photos to my photo albums"
+#: ../../include/notify.php:24
+#, php-format
+msgid "commented on %s's post"
msgstr ""
-#: ../../include/permissions.php:26
-msgid "Can forward to all my channel contacts via post @mentions"
+#: ../../include/profile_selectors.php:6
+msgid "Male"
msgstr ""
-#: ../../include/permissions.php:26
-msgid "Advanced - useful for creating group forum channels"
+#: ../../include/profile_selectors.php:6
+msgid "Female"
msgstr ""
-#: ../../include/permissions.php:27
-msgid "Can chat with me (when available)"
+#: ../../include/profile_selectors.php:6
+msgid "Currently Male"
msgstr ""
-#: ../../include/permissions.php:27
-msgid "Requires compatible chat plugin"
+#: ../../include/profile_selectors.php:6
+msgid "Currently Female"
msgstr ""
-#: ../../include/permissions.php:28
-msgid "Can write to my \"public\" file storage"
+#: ../../include/profile_selectors.php:6
+msgid "Mostly Male"
msgstr ""
-#: ../../include/permissions.php:29
-msgid "Can edit my \"public\" pages"
+#: ../../include/profile_selectors.php:6
+msgid "Mostly Female"
msgstr ""
-#: ../../include/permissions.php:31
-msgid "Can source my \"public\" posts in derived channels"
+#: ../../include/profile_selectors.php:6
+msgid "Transgender"
msgstr ""
-#: ../../include/permissions.php:31
-msgid "Somewhat advanced - very useful in open communities"
+#: ../../include/profile_selectors.php:6
+msgid "Intersex"
msgstr ""
-#: ../../include/permissions.php:32
-msgid "Can administer my channel resources"
+#: ../../include/profile_selectors.php:6
+msgid "Transsexual"
msgstr ""
-#: ../../include/permissions.php:32
-msgid "Extremely advanced. Leave this alone unless you know what you are doing"
+#: ../../include/profile_selectors.php:6
+msgid "Hermaphrodite"
msgstr ""
-#: ../../include/taxonomy.php:210
-msgid "Tags"
+#: ../../include/profile_selectors.php:6
+msgid "Neuter"
msgstr ""
-#: ../../include/taxonomy.php:224
-msgid "Keywords"
+#: ../../include/profile_selectors.php:6
+msgid "Non-specific"
msgstr ""
-#: ../../include/taxonomy.php:249
-msgid "have"
+#: ../../include/profile_selectors.php:6
+msgid "Other"
msgstr ""
-#: ../../include/taxonomy.php:249
-msgid "has"
+#: ../../include/profile_selectors.php:6
+msgid "Undecided"
msgstr ""
-#: ../../include/taxonomy.php:250
-msgid "want"
+#: ../../include/profile_selectors.php:23
+msgid "Males"
msgstr ""
-#: ../../include/taxonomy.php:250
-msgid "wants"
+#: ../../include/profile_selectors.php:23
+msgid "Females"
msgstr ""
-#: ../../include/taxonomy.php:251
-msgid "likes"
+#: ../../include/profile_selectors.php:23
+msgid "Gay"
msgstr ""
-#: ../../include/taxonomy.php:252
-msgid "dislikes"
+#: ../../include/profile_selectors.php:23
+msgid "Lesbian"
msgstr ""
-#: ../../include/plugin.php:475 ../../include/plugin.php:477
-msgid "Click here to upgrade."
+#: ../../include/profile_selectors.php:23
+msgid "No Preference"
msgstr ""
-#: ../../include/plugin.php:483
-msgid "This action exceeds the limits set by your subscription plan."
+#: ../../include/profile_selectors.php:23
+msgid "Bisexual"
msgstr ""
-#: ../../include/plugin.php:488
-msgid "This action is not available under your subscription plan."
+#: ../../include/profile_selectors.php:23
+msgid "Autosexual"
msgstr ""
-#: ../../include/comanche.php:35 ../../view/theme/redbasic/php/config.php:62
-#: ../../view/theme/apw/php/config.php:176
-msgid "Default"
+#: ../../include/profile_selectors.php:23
+msgid "Abstinent"
msgstr ""
-#: ../../include/identity.php:29 ../../mod/item.php:1148
-msgid "Unable to obtain identity information from database"
+#: ../../include/profile_selectors.php:23
+msgid "Virgin"
msgstr ""
-#: ../../include/identity.php:62
-msgid "Empty name"
+#: ../../include/profile_selectors.php:23
+msgid "Deviant"
msgstr ""
-#: ../../include/identity.php:64
-msgid "Name too long"
+#: ../../include/profile_selectors.php:23
+msgid "Fetish"
msgstr ""
-#: ../../include/identity.php:132
-msgid "No account identifier"
+#: ../../include/profile_selectors.php:23
+msgid "Oodles"
msgstr ""
-#: ../../include/identity.php:142
-msgid "Nickname is required."
+#: ../../include/profile_selectors.php:23
+msgid "Nonsexual"
msgstr ""
-#: ../../include/identity.php:156
-msgid ""
-"Nickname has unsupported characters or is already being used on this site."
+#: ../../include/profile_selectors.php:42
+msgid "Single"
msgstr ""
-#: ../../include/identity.php:215
-msgid "Unable to retrieve created identity"
+#: ../../include/profile_selectors.php:42
+msgid "Lonely"
msgstr ""
-#: ../../include/identity.php:273
-msgid "Default Profile"
+#: ../../include/profile_selectors.php:42
+msgid "Available"
msgstr ""
-#: ../../include/identity.php:465
-msgid "Requested channel is not available."
+#: ../../include/profile_selectors.php:42
+msgid "Unavailable"
msgstr ""
-#: ../../include/identity.php:477
-msgid " Sorry, you don't have the permission to view this profile. "
+#: ../../include/profile_selectors.php:42
+msgid "Has crush"
msgstr ""
-#: ../../include/identity.php:512 ../../mod/webpages.php:8
-#: ../../mod/connect.php:13 ../../mod/layouts.php:8
-#: ../../mod/filestorage.php:8 ../../mod/blocks.php:10
-#: ../../mod/profile.php:16
-msgid "Requested profile is not available."
+#: ../../include/profile_selectors.php:42
+msgid "Infatuated"
msgstr ""
-#: ../../include/identity.php:627 ../../mod/profiles.php:624
-msgid "Change profile photo"
+#: ../../include/profile_selectors.php:42
+msgid "Dating"
msgstr ""
-#: ../../include/identity.php:633
-msgid "Profiles"
+#: ../../include/profile_selectors.php:42
+msgid "Unfaithful"
msgstr ""
-#: ../../include/identity.php:633
-msgid "Manage/edit profiles"
+#: ../../include/profile_selectors.php:42
+msgid "Sex Addict"
msgstr ""
-#: ../../include/identity.php:634 ../../mod/profiles.php:625
-msgid "Create New Profile"
+#: ../../include/profile_selectors.php:42
+msgid "Friends/Benefits"
msgstr ""
-#: ../../include/identity.php:637
-msgid "Edit Profile"
+#: ../../include/profile_selectors.php:42
+msgid "Casual"
msgstr ""
-#: ../../include/identity.php:648 ../../mod/profiles.php:636
-msgid "Profile Image"
+#: ../../include/profile_selectors.php:42
+msgid "Engaged"
msgstr ""
-#: ../../include/identity.php:651 ../../mod/profiles.php:639
-msgid "visible to everybody"
+#: ../../include/profile_selectors.php:42
+msgid "Married"
msgstr ""
-#: ../../include/identity.php:652 ../../mod/profiles.php:640
-msgid "Edit visibility"
+#: ../../include/profile_selectors.php:42
+msgid "Imaginarily married"
msgstr ""
-#: ../../include/identity.php:665 ../../include/identity.php:883
-#: ../../mod/directory.php:175
-msgid "Gender:"
+#: ../../include/profile_selectors.php:42
+msgid "Partners"
msgstr ""
-#: ../../include/identity.php:666 ../../include/identity.php:903
-#: ../../mod/directory.php:177
-msgid "Status:"
+#: ../../include/profile_selectors.php:42
+msgid "Cohabiting"
msgstr ""
-#: ../../include/identity.php:667 ../../include/identity.php:914
-#: ../../mod/directory.php:179
-msgid "Homepage:"
+#: ../../include/profile_selectors.php:42
+msgid "Common law"
msgstr ""
-#: ../../include/identity.php:730 ../../include/identity.php:810
-#: ../../mod/ping.php:230
-msgid "g A l F d"
+#: ../../include/profile_selectors.php:42
+msgid "Happy"
msgstr ""
-#: ../../include/identity.php:731 ../../include/identity.php:811
-msgid "F d"
+#: ../../include/profile_selectors.php:42
+msgid "Not looking"
msgstr ""
-#: ../../include/identity.php:776 ../../include/identity.php:851
-#: ../../mod/ping.php:252
-msgid "[today]"
+#: ../../include/profile_selectors.php:42
+msgid "Swinger"
msgstr ""
-#: ../../include/identity.php:788
-msgid "Birthday Reminders"
+#: ../../include/profile_selectors.php:42
+msgid "Betrayed"
msgstr ""
-#: ../../include/identity.php:789
-msgid "Birthdays this week:"
+#: ../../include/profile_selectors.php:42
+msgid "Separated"
msgstr ""
-#: ../../include/identity.php:844
-msgid "[No description]"
+#: ../../include/profile_selectors.php:42
+msgid "Unstable"
msgstr ""
-#: ../../include/identity.php:862
-msgid "Event Reminders"
+#: ../../include/profile_selectors.php:42
+msgid "Divorced"
msgstr ""
-#: ../../include/identity.php:863
-msgid "Events this week:"
+#: ../../include/profile_selectors.php:42
+msgid "Imaginarily divorced"
msgstr ""
-#: ../../include/identity.php:873 ../../include/identity.php:984
-#: ../../mod/profperm.php:112
-msgid "Profile"
+#: ../../include/profile_selectors.php:42
+msgid "Widowed"
msgstr ""
-#: ../../include/identity.php:881 ../../mod/settings.php:1013
-msgid "Full Name:"
+#: ../../include/profile_selectors.php:42
+msgid "Uncertain"
msgstr ""
-#: ../../include/identity.php:888
-msgid "j F, Y"
+#: ../../include/profile_selectors.php:42
+msgid "It's complicated"
msgstr ""
-#: ../../include/identity.php:889
-msgid "j F"
+#: ../../include/profile_selectors.php:42
+msgid "Don't care"
msgstr ""
-#: ../../include/identity.php:896
-msgid "Birthday:"
+#: ../../include/profile_selectors.php:42
+msgid "Ask me"
msgstr ""
-#: ../../include/identity.php:900
-msgid "Age:"
+#: ../../include/chat.php:10
+msgid "Missing room name"
msgstr ""
-#: ../../include/identity.php:909
-#, php-format
-msgid "for %1$d %2$s"
+#: ../../include/chat.php:19
+msgid "Duplicate room name"
msgstr ""
-#: ../../include/identity.php:912 ../../mod/profiles.php:549
-msgid "Sexual Preference:"
+#: ../../include/chat.php:68 ../../include/chat.php:76
+msgid "Invalid room specifier."
msgstr ""
-#: ../../include/identity.php:916 ../../mod/profiles.php:551
-msgid "Hometown:"
+#: ../../include/chat.php:102
+msgid "Room not found."
msgstr ""
-#: ../../include/identity.php:918
-msgid "Tags:"
+#: ../../include/chat.php:123
+msgid "Room is full"
msgstr ""
-#: ../../include/identity.php:920 ../../mod/profiles.php:552
-msgid "Political Views:"
+#: ../../include/taxonomy.php:210
+msgid "Tags"
msgstr ""
-#: ../../include/identity.php:922
-msgid "Religion:"
+#: ../../include/taxonomy.php:227
+msgid "Keywords"
msgstr ""
-#: ../../include/identity.php:924 ../../mod/directory.php:181
-msgid "About:"
+#: ../../include/taxonomy.php:252
+msgid "have"
msgstr ""
-#: ../../include/identity.php:926
-msgid "Hobbies/Interests:"
+#: ../../include/taxonomy.php:252
+msgid "has"
msgstr ""
-#: ../../include/identity.php:928 ../../mod/profiles.php:555
-msgid "Likes:"
+#: ../../include/taxonomy.php:253
+msgid "want"
msgstr ""
-#: ../../include/identity.php:930 ../../mod/profiles.php:556
-msgid "Dislikes:"
+#: ../../include/taxonomy.php:253
+msgid "wants"
msgstr ""
-#: ../../include/identity.php:933
-msgid "Contact information and Social Networks:"
+#: ../../include/taxonomy.php:254
+msgid "likes"
msgstr ""
-#: ../../include/identity.php:935
-msgid "Musical interests:"
+#: ../../include/taxonomy.php:255
+msgid "dislikes"
msgstr ""
-#: ../../include/identity.php:937
-msgid "Books, literature:"
+#: ../../include/auth.php:76
+msgid "Logged out."
msgstr ""
-#: ../../include/identity.php:939
-msgid "Television:"
+#: ../../include/auth.php:188
+msgid "Failed authentication"
msgstr ""
-#: ../../include/identity.php:941
-msgid "Film/dance/culture/entertainment:"
+#: ../../include/auth.php:203 ../../mod/openid.php:185
+msgid "Login failed."
msgstr ""
-#: ../../include/identity.php:943
-msgid "Love/Romance:"
+#: ../../include/account.php:23
+msgid "Not a valid email address"
msgstr ""
-#: ../../include/identity.php:945
-msgid "Work/employment:"
+#: ../../include/account.php:25
+msgid "Your email domain is not among those allowed on this site"
msgstr ""
-#: ../../include/identity.php:947
-msgid "School/education:"
+#: ../../include/account.php:31
+msgid "Your email address is already registered at this site."
msgstr ""
-#: ../../include/security.php:49
-msgid "Welcome "
+#: ../../include/account.php:64
+msgid "An invitation is required."
msgstr ""
-#: ../../include/security.php:50
-msgid "Please upload a profile photo."
+#: ../../include/account.php:68
+msgid "Invitation could not be verified."
msgstr ""
-#: ../../include/security.php:53
-msgid "Welcome back "
+#: ../../include/account.php:119
+msgid "Please enter the required information."
msgstr ""
-#: ../../include/security.php:360
-msgid ""
-"The form security token was not correct. This probably happened because the "
-"form has been opened for too long (>3 hours) before submitting it."
+#: ../../include/account.php:187
+msgid "Failed to store account information."
msgstr ""
-#: ../../include/items.php:201 ../../mod/like.php:55 ../../mod/group.php:74
-#: ../../mod/profperm.php:28 ../../index.php:339
-msgid "Permission denied"
+#: ../../include/account.php:273
+#, php-format
+msgid "Registration request at %s"
msgstr ""
-#: ../../include/items.php:3350 ../../mod/admin.php:150
-#: ../../mod/admin.php:727 ../../mod/admin.php:930 ../../mod/viewsrc.php:18
-#: ../../mod/home.php:64 ../../mod/display.php:32
-msgid "Item not found."
+#: ../../include/account.php:275 ../../include/account.php:302
+#: ../../include/account.php:359
+msgid "Administrator"
msgstr ""
-#: ../../include/items.php:3533
-msgid "Archives"
+#: ../../include/account.php:297
+msgid "your registration password"
msgstr ""
-#: ../../include/items.php:3699 ../../mod/group.php:44 ../../mod/group.php:146
-msgid "Collection not found."
+#: ../../include/account.php:300 ../../include/account.php:357
+#, php-format
+msgid "Registration details for %s"
msgstr ""
-#: ../../include/items.php:3715 ../../mod/network.php:288
-msgid "Group is empty"
+#: ../../include/account.php:366
+msgid "Account approved."
msgstr ""
-#: ../../include/items.php:3731
-msgid "Connection not found."
+#: ../../include/account.php:400
+#, php-format
+msgid "Registration revoked for %s"
msgstr ""
#: ../../include/dir_fns.php:15
@@ -2963,1085 +2715,1386 @@ msgstr ""
msgid "Newest to Oldest"
msgstr ""
-#: ../../include/dir_fns.php:29
+#: ../../include/dir_fns.php:30
msgid "Enable Safe Search"
msgstr ""
-#: ../../include/dir_fns.php:31
+#: ../../include/dir_fns.php:32
msgid "Disable Safe Search"
msgstr ""
-#: ../../include/dir_fns.php:33
+#: ../../include/dir_fns.php:34
msgid "Safe Mode"
msgstr ""
-#: ../../mod/common.php:10
-msgid "No channel."
+#: ../../include/enotify.php:40
+msgid "Red Matrix Notification"
msgstr ""
-#: ../../mod/common.php:47
-msgid "Common connections"
+#: ../../include/enotify.php:41
+msgid "redmatrix"
msgstr ""
-#: ../../mod/common.php:52
-msgid "No connections in common."
+#: ../../include/enotify.php:43
+msgid "Thank You,"
msgstr ""
-#: ../../mod/events.php:71
-msgid "Event title and start time are required."
+#: ../../include/enotify.php:45
+#, php-format
+msgid "%s Administrator"
msgstr ""
-#: ../../mod/events.php:286
-msgid "l, F j"
+#: ../../include/enotify.php:80
+#, php-format
+msgid "%s <!item_type!>"
msgstr ""
-#: ../../mod/events.php:308
-msgid "Edit event"
+#: ../../include/enotify.php:84
+#, php-format
+msgid "[Red:Notify] New mail received at %s"
msgstr ""
-#: ../../mod/events.php:354
-msgid "Create New Event"
+#: ../../include/enotify.php:86
+#, php-format
+msgid "%1$s, %2$s sent you a new private message at %3$s."
msgstr ""
-#: ../../mod/events.php:355
-msgid "Previous"
+#: ../../include/enotify.php:87
+#, php-format
+msgid "%1$s sent you %2$s."
msgstr ""
-#: ../../mod/events.php:356 ../../mod/setup.php:256
-msgid "Next"
+#: ../../include/enotify.php:87
+msgid "a private message"
msgstr ""
-#: ../../mod/events.php:428
-msgid "hour:minute"
+#: ../../include/enotify.php:88
+#, php-format
+msgid "Please visit %s to view and/or reply to your private messages."
msgstr ""
-#: ../../mod/events.php:447
-msgid "Event details"
+#: ../../include/enotify.php:142
+#, php-format
+msgid "%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]"
msgstr ""
-#: ../../mod/events.php:448
+#: ../../include/enotify.php:150
#, php-format
-msgid "Format is %s %s. Starting date and Title are required."
+msgid "%1$s, %2$s commented on [zrl=%3$s]%4$s's %5$s[/zrl]"
msgstr ""
-#: ../../mod/events.php:450
-msgid "Event Starts:"
+#: ../../include/enotify.php:159
+#, php-format
+msgid "%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]"
msgstr ""
-#: ../../mod/events.php:450 ../../mod/events.php:464
-msgid "Required"
+#: ../../include/enotify.php:170
+#, php-format
+msgid "[Red:Notify] Comment to conversation #%1$d by %2$s"
msgstr ""
-#: ../../mod/events.php:453
-msgid "Finish date/time is not known or not relevant"
+#: ../../include/enotify.php:171
+#, php-format
+msgid "%1$s, %2$s commented on an item/conversation you have been following."
msgstr ""
-#: ../../mod/events.php:455
-msgid "Event Finishes:"
+#: ../../include/enotify.php:174 ../../include/enotify.php:189
+#: ../../include/enotify.php:215 ../../include/enotify.php:234
+#: ../../include/enotify.php:248
+#, php-format
+msgid "Please visit %s to view and/or reply to the conversation."
msgstr ""
-#: ../../mod/events.php:458
-msgid "Adjust for viewer timezone"
+#: ../../include/enotify.php:180
+#, php-format
+msgid "[Red:Notify] %s posted to your profile wall"
msgstr ""
-#: ../../mod/events.php:460
-msgid "Description:"
+#: ../../include/enotify.php:182
+#, php-format
+msgid "%1$s, %2$s posted to your profile wall at %3$s"
msgstr ""
-#: ../../mod/events.php:464
-msgid "Title:"
+#: ../../include/enotify.php:184
+#, php-format
+msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]"
msgstr ""
-#: ../../mod/events.php:466
-msgid "Share this event"
+#: ../../include/enotify.php:208
+#, php-format
+msgid "[Red:Notify] %s tagged you"
msgstr ""
-#: ../../mod/thing.php:109
-msgid "Object store: failed"
+#: ../../include/enotify.php:209
+#, php-format
+msgid "%1$s, %2$s tagged you at %3$s"
msgstr ""
-#: ../../mod/thing.php:113
-msgid "thing/stuff added"
+#: ../../include/enotify.php:210
+#, php-format
+msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]."
msgstr ""
-#: ../../mod/thing.php:129
+#: ../../include/enotify.php:223
#, php-format
-msgid "OBJ: %1$s %2$s %3$s"
+msgid "[Red:Notify] %1$s poked you"
msgstr ""
-#: ../../mod/thing.php:175
-msgid "not yet implemented."
+#: ../../include/enotify.php:224
+#, php-format
+msgid "%1$s, %2$s poked you at %3$s"
msgstr ""
-#: ../../mod/thing.php:181
-msgid "Add Stuff to your Profile"
+#: ../../include/enotify.php:225
+#, php-format
+msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]."
msgstr ""
-#: ../../mod/thing.php:183
-msgid "Select a profile"
+#: ../../include/enotify.php:241
+#, php-format
+msgid "[Red:Notify] %s tagged your post"
msgstr ""
-#: ../../mod/thing.php:185
-msgid "Select a category of stuff. e.g. I ______ something"
+#: ../../include/enotify.php:242
+#, php-format
+msgid "%1$s, %2$s tagged your post at %3$s"
msgstr ""
-#: ../../mod/thing.php:187
-msgid "Name of thing or stuff e.g. something"
+#: ../../include/enotify.php:243
+#, php-format
+msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]"
msgstr ""
-#: ../../mod/thing.php:188
-msgid "URL of thing or stuff (optional)"
+#: ../../include/enotify.php:255
+msgid "[Red:Notify] Introduction received"
msgstr ""
-#: ../../mod/thing.php:189
-msgid "URL for photo of thing or stuff (optional)"
+#: ../../include/enotify.php:256
+#, php-format
+msgid "%1$s, you've received an introduction from '%2$s' at %3$s"
msgstr ""
-#: ../../mod/invite.php:25
-msgid "Total invitation limit exceeded."
+#: ../../include/enotify.php:257
+#, php-format
+msgid "%1$s, you've received [zrl=%2$s]an introduction[/zrl] from %3$s."
msgstr ""
-#: ../../mod/invite.php:47
+#: ../../include/enotify.php:261 ../../include/enotify.php:280
#, php-format
-msgid "%s : Not a valid email address."
+msgid "You may visit their profile at %s"
msgstr ""
-#: ../../mod/invite.php:74
-msgid "Please join us on Red"
+#: ../../include/enotify.php:263
+#, php-format
+msgid "Please visit %s to approve or reject the introduction."
msgstr ""
-#: ../../mod/invite.php:85
-msgid "Invitation limit exceeded. Please contact your site administrator."
+#: ../../include/enotify.php:270
+msgid "[Red:Notify] Friend suggestion received"
msgstr ""
-#: ../../mod/invite.php:90
+#: ../../include/enotify.php:271
#, php-format
-msgid "%s : Message delivery failed."
+msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s"
msgstr ""
-#: ../../mod/invite.php:94
+#: ../../include/enotify.php:272
#, php-format
-msgid "%d message sent."
-msgid_plural "%d messages sent."
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../../mod/invite.php:113
-msgid "You have no more invitations available"
+msgid ""
+"%1$s, you've received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from %4$s."
msgstr ""
-#: ../../mod/invite.php:139
-msgid "Send invitations"
+#: ../../include/enotify.php:278
+msgid "Name:"
msgstr ""
-#: ../../mod/invite.php:140
-msgid "Enter email addresses, one per line:"
+#: ../../include/enotify.php:279
+msgid "Photo:"
msgstr ""
-#: ../../mod/invite.php:141 ../../mod/message.php:326
-#: ../../mod/message.php:508
-msgid "Your message:"
+#: ../../include/enotify.php:282
+#, php-format
+msgid "Please visit %s to approve or reject the suggestion."
msgstr ""
-#: ../../mod/invite.php:142
-msgid ""
-"You are cordially invited to join me and some other close friends on the Red "
-"Matrix - a revolutionary new decentralised communication and information "
-"tool."
+#: ../../include/photos.php:89
+#, php-format
+msgid "Image exceeds website size limit of %lu bytes"
msgstr ""
-#: ../../mod/invite.php:144
-msgid "You will need to supply this invitation code: $invite_code"
+#: ../../include/photos.php:96
+msgid "Image file is empty."
msgstr ""
-#: ../../mod/invite.php:145
-msgid "Please visit my channel at"
+#: ../../include/photos.php:123 ../../mod/profile_photo.php:147
+msgid "Unable to process image"
msgstr ""
-#: ../../mod/invite.php:149
-msgid ""
-"Once you have registered (on ANY Red Matrix site - they are all inter-"
-"connected), please connect with my Red Matrix channel address:"
+#: ../../include/photos.php:185
+msgid "Photo storage failed."
msgstr ""
-#: ../../mod/invite.php:151
-msgid "Click the [Register] link on the following page to join."
+#: ../../include/photos.php:306 ../../mod/photos.php:694
+#: ../../mod/photos.php:1191
+msgid "Upload New Photos"
msgstr ""
-#: ../../mod/invite.php:153
-msgid ""
-"For more information about the Red Matrix Project and why it has the "
-"potential to change the internet as we know it, please visit http://getzot."
-"com"
+#: ../../include/reddav.php:1061
+msgid "Edit File properties"
msgstr ""
-#: ../../mod/allfriends.php:35
+#: ../../include/contact_widgets.php:14
#, php-format
-msgid "Friends of %s"
+msgid "%d invitation available"
+msgid_plural "%d invitations available"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../include/contact_widgets.php:20
+msgid "Find Channels"
msgstr ""
-#: ../../mod/allfriends.php:41
-msgid "No friends to display."
+#: ../../include/contact_widgets.php:21
+msgid "Enter name or interest"
msgstr ""
-#: ../../mod/webpages.php:104 ../../mod/layouts.php:105
-#: ../../mod/blocks.php:96
-msgid "View"
+#: ../../include/contact_widgets.php:22
+msgid "Connect/Follow"
msgstr ""
-#: ../../mod/api.php:76 ../../mod/api.php:102
-msgid "Authorize application connection"
+#: ../../include/contact_widgets.php:23
+msgid "Examples: Robert Morgenstein, Fishing"
msgstr ""
-#: ../../mod/api.php:77
-msgid "Return to your app and insert this Securty Code:"
+#: ../../include/contact_widgets.php:24 ../../mod/directory.php:207
+#: ../../mod/directory.php:212 ../../mod/connections.php:357
+msgid "Find"
msgstr ""
-#: ../../mod/api.php:89
-msgid "Please login to continue."
+#: ../../include/contact_widgets.php:25 ../../mod/suggest.php:59
+msgid "Channel Suggestions"
msgstr ""
-#: ../../mod/api.php:104
-msgid ""
-"Do you want to authorize this application to access your posts and contacts, "
-"and/or create new posts for you?"
+#: ../../include/contact_widgets.php:27
+msgid "Random Profile"
msgstr ""
-#: ../../mod/api.php:105 ../../mod/settings.php:967 ../../mod/settings.php:972
-#: ../../mod/profiles.php:506
-msgid "Yes"
+#: ../../include/contact_widgets.php:28
+msgid "Invite Friends"
msgstr ""
-#: ../../mod/api.php:106 ../../mod/settings.php:967 ../../mod/settings.php:972
-#: ../../mod/profiles.php:507
-msgid "No"
+#: ../../include/contact_widgets.php:120
+#, php-format
+msgid "%d connection in common"
+msgid_plural "%d connections in common"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../include/page_widgets.php:6
+msgid "New Page"
msgstr ""
-#: ../../mod/lastpost.php:16 ../../mod/channel.php:25
-msgid "You must be logged in to see this page."
+#: ../../include/plugin.php:475 ../../include/plugin.php:477
+msgid "Click here to upgrade."
msgstr ""
-#: ../../mod/apps.php:8
-msgid "No installed applications."
+#: ../../include/plugin.php:483
+msgid "This action exceeds the limits set by your subscription plan."
msgstr ""
-#: ../../mod/apps.php:13
-msgid "Applications"
+#: ../../include/plugin.php:488
+msgid "This action is not available under your subscription plan."
msgstr ""
-#: ../../mod/page.php:35
-msgid "Invalid item."
+#: ../../include/follow.php:23
+msgid "Channel is blocked on this site."
msgstr ""
-#: ../../mod/page.php:47 ../../mod/chanview.php:78 ../../mod/home.php:51
-#: ../../mod/wall_upload.php:35
-msgid "Channel not found."
+#: ../../include/follow.php:28
+msgid "Channel location missing."
msgstr ""
-#: ../../mod/page.php:83 ../../mod/help.php:56 ../../mod/display.php:100
-#: ../../index.php:229
-msgid "Page not found."
+#: ../../include/follow.php:54
+msgid "Response from remote channel was incomplete."
msgstr ""
-#: ../../mod/attach.php:9
-msgid "Item not available."
+#: ../../include/follow.php:126
+msgid "Channel discovery failed."
msgstr ""
-#: ../../mod/setup.php:161
-msgid "Red Matrix Server - Setup"
+#: ../../include/follow.php:143
+msgid "local account not found."
msgstr ""
-#: ../../mod/setup.php:167
-msgid "Could not connect to database."
+#: ../../include/follow.php:152
+msgid "Cannot connect to yourself."
msgstr ""
-#: ../../mod/setup.php:171
+#: ../../include/security.php:291
msgid ""
-"Could not connect to specified site URL. Possible SSL certificate or DNS "
-"issue."
+"The form security token was not correct. This probably happened because the "
+"form has been opened for too long (>3 hours) before submitting it."
msgstr ""
-#: ../../mod/setup.php:176
-msgid "Could not create table."
+#: ../../include/comanche.php:35 ../../view/theme/redbasic/php/config.php:64
+#: ../../view/theme/apw/php/config.php:176
+msgid "Default"
msgstr ""
-#: ../../mod/setup.php:182
-msgid "Your site database has been installed."
+#: ../../include/oembed.php:157
+msgid "Embedded content"
msgstr ""
-#: ../../mod/setup.php:187
-msgid ""
-"You may need to import the file \"install/database.sql\" manually using "
-"phpmyadmin or mysql."
+#: ../../include/oembed.php:166
+msgid "Embedding disabled"
msgstr ""
-#: ../../mod/setup.php:188 ../../mod/setup.php:255 ../../mod/setup.php:584
-msgid "Please see the file \"install/INSTALL.txt\"."
+#: ../../include/permissions.php:13
+msgid "Can view my \"public\" stream and posts"
msgstr ""
-#: ../../mod/setup.php:252
-msgid "System check"
+#: ../../include/permissions.php:14
+msgid "Can view my \"public\" channel profile"
msgstr ""
-#: ../../mod/setup.php:257
-msgid "Check again"
+#: ../../include/permissions.php:15
+msgid "Can view my \"public\" photo albums"
msgstr ""
-#: ../../mod/setup.php:279
-msgid "Database connection"
+#: ../../include/permissions.php:16
+msgid "Can view my \"public\" address book"
msgstr ""
-#: ../../mod/setup.php:280
-msgid ""
-"In order to install Red Matrix we need to know how to connect to your "
-"database."
+#: ../../include/permissions.php:17
+msgid "Can view my \"public\" file storage"
msgstr ""
-#: ../../mod/setup.php:281
-msgid ""
-"Please contact your hosting provider or site administrator if you have "
-"questions about these settings."
+#: ../../include/permissions.php:18
+msgid "Can view my \"public\" pages"
msgstr ""
-#: ../../mod/setup.php:282
-msgid ""
-"The database you specify below should already exist. If it does not, please "
-"create it before continuing."
+#: ../../include/permissions.php:21
+msgid "Can send me their channel stream and posts"
msgstr ""
-#: ../../mod/setup.php:286
-msgid "Database Server Name"
+#: ../../include/permissions.php:22
+msgid "Can post on my channel page (\"wall\")"
msgstr ""
-#: ../../mod/setup.php:286
-msgid "Default is localhost"
+#: ../../include/permissions.php:23
+msgid "Can comment on my posts"
msgstr ""
-#: ../../mod/setup.php:287
-msgid "Database Port"
+#: ../../include/permissions.php:24
+msgid "Can send me private mail messages"
msgstr ""
-#: ../../mod/setup.php:287
-msgid "Communication port number - use 0 for default"
+#: ../../include/permissions.php:25
+msgid "Can post photos to my photo albums"
msgstr ""
-#: ../../mod/setup.php:288
-msgid "Database Login Name"
+#: ../../include/permissions.php:26
+msgid "Can forward to all my channel contacts via post @mentions"
msgstr ""
-#: ../../mod/setup.php:289
-msgid "Database Login Password"
+#: ../../include/permissions.php:26
+msgid "Advanced - useful for creating group forum channels"
msgstr ""
-#: ../../mod/setup.php:290
-msgid "Database Name"
+#: ../../include/permissions.php:27
+msgid "Can chat with me (when available)"
msgstr ""
-#: ../../mod/setup.php:292 ../../mod/setup.php:334
-msgid "Site administrator email address"
+#: ../../include/permissions.php:28
+msgid "Can write to my \"public\" file storage"
msgstr ""
-#: ../../mod/setup.php:292 ../../mod/setup.php:334
-msgid ""
-"Your account email address must match this in order to use the web admin "
-"panel."
+#: ../../include/permissions.php:29
+msgid "Can edit my \"public\" pages"
msgstr ""
-#: ../../mod/setup.php:293 ../../mod/setup.php:336
-msgid "Website URL"
+#: ../../include/permissions.php:31
+msgid "Can source my \"public\" posts in derived channels"
msgstr ""
-#: ../../mod/setup.php:293 ../../mod/setup.php:336
-msgid "Please use SSL (https) URL if available."
+#: ../../include/permissions.php:31
+msgid "Somewhat advanced - very useful in open communities"
msgstr ""
-#: ../../mod/setup.php:296 ../../mod/setup.php:339
-msgid "Please select a default timezone for your website"
+#: ../../include/permissions.php:32
+msgid "Can send me bookmarks"
msgstr ""
-#: ../../mod/setup.php:323
-msgid "Site settings"
+#: ../../include/permissions.php:33
+msgid "Can administer my channel resources"
msgstr ""
-#: ../../mod/setup.php:379
-msgid "Could not find a command line version of PHP in the web server PATH."
+#: ../../include/permissions.php:33
+msgid "Extremely advanced. Leave this alone unless you know what you are doing"
msgstr ""
-#: ../../mod/setup.php:380
-msgid ""
-"If you don't have a command line version of PHP installed on server, you "
-"will not be able to run background polling via cron."
+#: ../../include/items.php:240 ../../mod/like.php:55 ../../mod/profperm.php:23
+#: ../../mod/group.php:68 ../../index.php:350
+msgid "Permission denied"
msgstr ""
-#: ../../mod/setup.php:384
-msgid "PHP executable path"
+#: ../../include/items.php:756 ../../mod/connedit.php:395
+msgid "Unknown"
msgstr ""
-#: ../../mod/setup.php:384
-msgid ""
-"Enter full path to php executable. You can leave this blank to continue the "
-"installation."
+#: ../../include/items.php:3513 ../../mod/thing.php:78 ../../mod/admin.php:151
+#: ../../mod/admin.php:783 ../../mod/admin.php:986 ../../mod/viewsrc.php:18
+#: ../../mod/home.php:63 ../../mod/display.php:32 ../../mod/filestorage.php:18
+msgid "Item not found."
msgstr ""
-#: ../../mod/setup.php:389
-msgid "Command line PHP"
+#: ../../include/items.php:3849 ../../mod/group.php:38 ../../mod/group.php:140
+msgid "Collection not found."
msgstr ""
-#: ../../mod/setup.php:398
-msgid ""
-"The command line version of PHP on your system does not have "
-"\"register_argc_argv\" enabled."
+#: ../../include/items.php:3864
+msgid "Collection is empty."
msgstr ""
-#: ../../mod/setup.php:399
-msgid "This is required for message delivery to work."
+#: ../../include/items.php:3871
+#, php-format
+msgid "Collection: %s"
msgstr ""
-#: ../../mod/setup.php:401
-msgid "PHP register_argc_argv"
+#: ../../include/items.php:3882
+#, php-format
+msgid "Connection: %s"
msgstr ""
-#: ../../mod/setup.php:422
-msgid ""
-"Error: the \"openssl_pkey_new\" function on this system is not able to "
-"generate encryption keys"
+#: ../../include/items.php:3885
+msgid "Connection not found."
msgstr ""
-#: ../../mod/setup.php:423
-msgid ""
-"If running under Windows, please see \"http://www.php.net/manual/en/openssl."
-"installation.php\"."
+#: ../../include/zot.php:548
+msgid "Invalid data packet"
msgstr ""
-#: ../../mod/setup.php:425
-msgid "Generate encryption keys"
+#: ../../include/zot.php:558
+msgid "Unable to verify channel signature"
msgstr ""
-#: ../../mod/setup.php:432
-msgid "libCurl PHP module"
+#: ../../include/zot.php:735
+#, php-format
+msgid "Unable to verify site signature for %s"
msgstr ""
-#: ../../mod/setup.php:433
-msgid "GD graphics PHP module"
+#: ../../mod/common.php:10
+msgid "No channel."
msgstr ""
-#: ../../mod/setup.php:434
-msgid "OpenSSL PHP module"
+#: ../../mod/common.php:39
+msgid "Common connections"
msgstr ""
-#: ../../mod/setup.php:435
-msgid "mysqli PHP module"
+#: ../../mod/common.php:44
+msgid "No connections in common."
msgstr ""
-#: ../../mod/setup.php:436
-msgid "mb_string PHP module"
+#: ../../mod/events.php:72
+msgid "Event title and start time are required."
msgstr ""
-#: ../../mod/setup.php:437
-msgid "mcrypt PHP module"
+#: ../../mod/events.php:287
+msgid "l, F j"
msgstr ""
-#: ../../mod/setup.php:442 ../../mod/setup.php:444
-msgid "Apache mod_rewrite module"
+#: ../../mod/events.php:309
+msgid "Edit event"
msgstr ""
-#: ../../mod/setup.php:442
-msgid ""
-"Error: Apache webserver mod-rewrite module is required but not installed."
+#: ../../mod/events.php:355
+msgid "Create New Event"
msgstr ""
-#: ../../mod/setup.php:448 ../../mod/setup.php:451
-msgid "proc_open"
+#: ../../mod/events.php:356
+msgid "Previous"
msgstr ""
-#: ../../mod/setup.php:448
-msgid ""
-"Error: proc_open is required but is either not installed or has been "
-"disabled in php.ini"
+#: ../../mod/events.php:357 ../../mod/setup.php:258
+msgid "Next"
msgstr ""
-#: ../../mod/setup.php:456
-msgid "Error: libCURL PHP module required but not installed."
+#: ../../mod/events.php:428
+msgid "hour:minute"
msgstr ""
-#: ../../mod/setup.php:460
-msgid ""
-"Error: GD graphics PHP module with JPEG support required but not installed."
+#: ../../mod/events.php:447
+msgid "Event details"
msgstr ""
-#: ../../mod/setup.php:464
-msgid "Error: openssl PHP module required but not installed."
+#: ../../mod/events.php:448
+#, php-format
+msgid "Format is %s %s. Starting date and Title are required."
msgstr ""
-#: ../../mod/setup.php:468
-msgid "Error: mysqli PHP module required but not installed."
+#: ../../mod/events.php:450
+msgid "Event Starts:"
msgstr ""
-#: ../../mod/setup.php:472
-msgid "Error: mb_string PHP module required but not installed."
+#: ../../mod/events.php:450 ../../mod/events.php:464
+msgid "Required"
msgstr ""
-#: ../../mod/setup.php:476
-msgid "Error: mcrypt PHP module required but not installed."
+#: ../../mod/events.php:453
+msgid "Finish date/time is not known or not relevant"
msgstr ""
-#: ../../mod/setup.php:492
-msgid ""
-"The web installer needs to be able to create a file called \".htconfig.php\" "
-"in the top folder of your web server and it is unable to do so."
+#: ../../mod/events.php:455
+msgid "Event Finishes:"
msgstr ""
-#: ../../mod/setup.php:493
-msgid ""
-"This is most often a permission setting, as the web server may not be able "
-"to write files in your folder - even if you can."
+#: ../../mod/events.php:458
+msgid "Adjust for viewer timezone"
msgstr ""
-#: ../../mod/setup.php:494
-msgid ""
-"At the end of this procedure, we will give you a text to save in a file "
-"named .htconfig.php in your Red top folder."
+#: ../../mod/events.php:460
+msgid "Description:"
msgstr ""
-#: ../../mod/setup.php:495
-msgid ""
-"You can alternatively skip this procedure and perform a manual installation. "
-"Please see the file \"install/INSTALL.txt\" for instructions."
+#: ../../mod/events.php:464
+msgid "Title:"
msgstr ""
-#: ../../mod/setup.php:498
-msgid ".htconfig.php is writable"
+#: ../../mod/events.php:466
+msgid "Share this event"
msgstr ""
-#: ../../mod/setup.php:508
-msgid ""
-"Red uses the Smarty3 template engine to render its web views. Smarty3 "
-"compiles templates to PHP to speed up rendering."
+#: ../../mod/thing.php:98
+msgid "Thing updated"
msgstr ""
-#: ../../mod/setup.php:509
-msgid ""
-"In order to store these compiled templates, the web server needs to have "
-"write access to the directory view/tpl/smarty3/ under the Red top level "
-"folder."
+#: ../../mod/thing.php:158
+msgid "Object store: failed"
msgstr ""
-#: ../../mod/setup.php:510
-msgid ""
-"Please ensure that the user that your web server runs as (e.g. www-data) has "
-"write access to this folder."
+#: ../../mod/thing.php:162
+msgid "Thing added"
msgstr ""
-#: ../../mod/setup.php:511
-msgid ""
-"Note: as a security measure, you should give the web server write access to "
-"view/tpl/smarty3/ only--not the template files (.tpl) that it contains."
+#: ../../mod/thing.php:182
+#, php-format
+msgid "OBJ: %1$s %2$s %3$s"
msgstr ""
-#: ../../mod/setup.php:514
-msgid "view/tpl/smarty3 is writable"
+#: ../../mod/thing.php:234
+msgid "Show Thing"
msgstr ""
-#: ../../mod/setup.php:528
-msgid "SSL certificate validation"
+#: ../../mod/thing.php:241
+msgid "item not found."
msgstr ""
-#: ../../mod/setup.php:528
-msgid ""
-"SSL certificate cannot be validated. Fix certificate or disable https access "
-"to this site."
+#: ../../mod/thing.php:269
+msgid "Edit Thing"
msgstr ""
-#: ../../mod/setup.php:535
-msgid ""
-"Url rewrite in .htaccess is not working. Check your server configuration."
+#: ../../mod/thing.php:271 ../../mod/thing.php:318
+msgid "Select a profile"
msgstr ""
-#: ../../mod/setup.php:537
-msgid "Url rewrite is working"
+#: ../../mod/thing.php:273 ../../mod/thing.php:320
+msgid "Select a category of stuff. e.g. I ______ something"
msgstr ""
-#: ../../mod/setup.php:547
-msgid ""
-"The database configuration file \".htconfig.php\" could not be written. "
-"Please use the enclosed text to create a configuration file in your web "
-"server root."
+#: ../../mod/thing.php:275 ../../mod/thing.php:321
+msgid "Post an activity"
msgstr ""
-#: ../../mod/setup.php:571
-msgid "Errors encountered creating database tables."
+#: ../../mod/thing.php:275 ../../mod/thing.php:321
+msgid "Only sends to viewers of the applicable profile"
msgstr ""
-#: ../../mod/setup.php:582
-msgid "<h1>What next</h1>"
+#: ../../mod/thing.php:277 ../../mod/thing.php:323
+msgid "Name of thing e.g. something"
msgstr ""
-#: ../../mod/setup.php:583
-msgid ""
-"IMPORTANT: You will need to [manually] setup a scheduled task for the poller."
+#: ../../mod/thing.php:279 ../../mod/thing.php:324
+msgid "URL of thing (optional)"
msgstr ""
-#: ../../mod/rpost.php:84 ../../mod/editpost.php:42
-msgid "Edit post"
+#: ../../mod/thing.php:281 ../../mod/thing.php:325
+msgid "URL for photo of thing (optional)"
msgstr ""
-#: ../../mod/subthread.php:105
+#: ../../mod/thing.php:316
+msgid "Add Thing to your Profile"
+msgstr ""
+
+#: ../../mod/invite.php:25
+msgid "Total invitation limit exceeded."
+msgstr ""
+
+#: ../../mod/invite.php:49
#, php-format
-msgid "%1$s is following %2$s's %3$s"
+msgid "%s : Not a valid email address."
msgstr ""
-#: ../../mod/update_network.php:23 ../../mod/update_channel.php:43
-#: ../../mod/update_search.php:46 ../../mod/update_display.php:25
-#: ../../mod/update_community.php:18
-msgid "[Embedded content - reload page to view]"
+#: ../../mod/invite.php:76
+msgid "Please join us on Red"
msgstr ""
-#: ../../mod/chanview.php:98
-msgid "toggle full screen mode"
+#: ../../mod/invite.php:87
+msgid "Invitation limit exceeded. Please contact your site administrator."
msgstr ""
-#: ../../mod/tagger.php:98
+#: ../../mod/invite.php:92
#, php-format
-msgid "%1$s tagged %2$s's %3$s with %4$s"
+msgid "%s : Message delivery failed."
msgstr ""
-#: ../../mod/settings.php:53
-msgid "Account settings"
+#: ../../mod/invite.php:96
+#, php-format
+msgid "%d message sent."
+msgid_plural "%d messages sent."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../mod/invite.php:115
+msgid "You have no more invitations available"
msgstr ""
-#: ../../mod/settings.php:59
-msgid "Channel settings"
+#: ../../mod/invite.php:141
+msgid "Send invitations"
msgstr ""
-#: ../../mod/settings.php:65
-msgid "Additional features"
+#: ../../mod/invite.php:142
+msgid "Enter email addresses, one per line:"
msgstr ""
-#: ../../mod/settings.php:71
-msgid "Feature settings"
+#: ../../mod/invite.php:143 ../../mod/mail.php:216 ../../mod/mail.php:328
+msgid "Your message:"
msgstr ""
-#: ../../mod/settings.php:77
-msgid "Display settings"
+#: ../../mod/invite.php:144
+msgid ""
+"You are cordially invited to join me and some other close friends on the Red "
+"Matrix - a revolutionary new decentralised communication and information "
+"tool."
msgstr ""
-#: ../../mod/settings.php:83
-msgid "Connected apps"
+#: ../../mod/invite.php:146
+msgid "You will need to supply this invitation code: $invite_code"
msgstr ""
-#: ../../mod/settings.php:89
-msgid "Export channel"
+#: ../../mod/invite.php:147
+msgid "Please visit my channel at"
msgstr ""
-#: ../../mod/settings.php:101
-msgid "Automatic Permissions (Advanced)"
+#: ../../mod/invite.php:151
+msgid ""
+"Once you have registered (on ANY Red Matrix site - they are all inter-"
+"connected), please connect with my Red Matrix channel address:"
msgstr ""
-#: ../../mod/settings.php:111
-msgid "Premium Channel Settings"
+#: ../../mod/invite.php:153
+msgid "Click the [Register] link on the following page to join."
msgstr ""
-#: ../../mod/settings.php:173
+#: ../../mod/invite.php:155
+msgid ""
+"For more information about the Red Matrix Project and why it has the "
+"potential to change the internet as we know it, please visit http://getzot."
+"com"
+msgstr ""
+
+#: ../../mod/settings.php:71
msgid "Name is required"
msgstr ""
-#: ../../mod/settings.php:177
+#: ../../mod/settings.php:75
msgid "Key and Secret are required"
msgstr ""
-#: ../../mod/settings.php:181 ../../mod/settings.php:635
+#: ../../mod/settings.php:79 ../../mod/settings.php:542
msgid "Update"
msgstr ""
-#: ../../mod/settings.php:294
+#: ../../mod/settings.php:195
msgid "Passwords do not match. Password unchanged."
msgstr ""
-#: ../../mod/settings.php:298
+#: ../../mod/settings.php:199
msgid "Empty passwords are not allowed. Password unchanged."
msgstr ""
-#: ../../mod/settings.php:311
+#: ../../mod/settings.php:212
msgid "Password changed."
msgstr ""
-#: ../../mod/settings.php:313
+#: ../../mod/settings.php:214
msgid "Password update failed. Please try again."
msgstr ""
-#: ../../mod/settings.php:327
+#: ../../mod/settings.php:228
msgid "Not valid email."
msgstr ""
-#: ../../mod/settings.php:330
+#: ../../mod/settings.php:231
msgid "Protected email address. Cannot change to that email."
msgstr ""
-#: ../../mod/settings.php:339
+#: ../../mod/settings.php:240
msgid "System failure storing new email. Please try again."
msgstr ""
-#: ../../mod/settings.php:537
+#: ../../mod/settings.php:444
msgid "Settings updated."
msgstr ""
-#: ../../mod/settings.php:608 ../../mod/settings.php:634
-#: ../../mod/settings.php:670
+#: ../../mod/settings.php:515 ../../mod/settings.php:541
+#: ../../mod/settings.php:577
msgid "Add application"
msgstr ""
-#: ../../mod/settings.php:610 ../../mod/settings.php:636
-#: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94 ../../mod/fbrowser.php:82
-#: ../../mod/fbrowser.php:117
-msgid "Cancel"
-msgstr ""
-
-#: ../../mod/settings.php:611 ../../mod/settings.php:637
-#: ../../mod/admin.php:686 ../../mod/crepair.php:148
+#: ../../mod/settings.php:518 ../../mod/settings.php:544
msgid "Name"
msgstr ""
-#: ../../mod/settings.php:611
+#: ../../mod/settings.php:518
msgid "Name of application"
msgstr ""
-#: ../../mod/settings.php:612 ../../mod/settings.php:638
+#: ../../mod/settings.php:519 ../../mod/settings.php:545
msgid "Consumer Key"
msgstr ""
-#: ../../mod/settings.php:612 ../../mod/settings.php:613
+#: ../../mod/settings.php:519 ../../mod/settings.php:520
msgid "Automatically generated - change if desired. Max length 20"
msgstr ""
-#: ../../mod/settings.php:613 ../../mod/settings.php:639
+#: ../../mod/settings.php:520 ../../mod/settings.php:546
msgid "Consumer Secret"
msgstr ""
-#: ../../mod/settings.php:614 ../../mod/settings.php:640
+#: ../../mod/settings.php:521 ../../mod/settings.php:547
msgid "Redirect"
msgstr ""
-#: ../../mod/settings.php:614
+#: ../../mod/settings.php:521
msgid ""
"Redirect URI - leave blank unless your application specifically requires this"
msgstr ""
-#: ../../mod/settings.php:615 ../../mod/settings.php:641
+#: ../../mod/settings.php:522 ../../mod/settings.php:548
msgid "Icon url"
msgstr ""
-#: ../../mod/settings.php:615
+#: ../../mod/settings.php:522
msgid "Optional"
msgstr ""
-#: ../../mod/settings.php:626
+#: ../../mod/settings.php:533
msgid "You can't edit this application."
msgstr ""
-#: ../../mod/settings.php:669
+#: ../../mod/settings.php:576
msgid "Connected Apps"
msgstr ""
-#: ../../mod/settings.php:673
+#: ../../mod/settings.php:580
msgid "Client key starts with"
msgstr ""
-#: ../../mod/settings.php:674
+#: ../../mod/settings.php:581
msgid "No name"
msgstr ""
-#: ../../mod/settings.php:675
+#: ../../mod/settings.php:582
msgid "Remove authorization"
msgstr ""
-#: ../../mod/settings.php:686
+#: ../../mod/settings.php:593
msgid "No feature settings configured"
msgstr ""
-#: ../../mod/settings.php:694
+#: ../../mod/settings.php:601
msgid "Feature Settings"
msgstr ""
-#: ../../mod/settings.php:717
+#: ../../mod/settings.php:624
msgid "Account Settings"
msgstr ""
-#: ../../mod/settings.php:718
+#: ../../mod/settings.php:625
msgid "Password Settings"
msgstr ""
-#: ../../mod/settings.php:719
+#: ../../mod/settings.php:626
msgid "New Password:"
msgstr ""
-#: ../../mod/settings.php:720
+#: ../../mod/settings.php:627
msgid "Confirm:"
msgstr ""
-#: ../../mod/settings.php:720
+#: ../../mod/settings.php:627
msgid "Leave password fields blank unless changing"
msgstr ""
-#: ../../mod/settings.php:722 ../../mod/settings.php:1014
+#: ../../mod/settings.php:629 ../../mod/settings.php:938
msgid "Email Address:"
msgstr ""
-#: ../../mod/settings.php:723
+#: ../../mod/settings.php:630
msgid "Remove Account"
msgstr ""
-#: ../../mod/settings.php:724
+#: ../../mod/settings.php:631
msgid "Warning: This action is permanent and cannot be reversed."
msgstr ""
-#: ../../mod/settings.php:740
+#: ../../mod/settings.php:647
msgid "Off"
msgstr ""
-#: ../../mod/settings.php:740
+#: ../../mod/settings.php:647
msgid "On"
msgstr ""
-#: ../../mod/settings.php:747
+#: ../../mod/settings.php:654
msgid "Additional Features"
msgstr ""
-#: ../../mod/settings.php:772
+#: ../../mod/settings.php:679
msgid "Connector Settings"
msgstr ""
-#: ../../mod/settings.php:802 ../../mod/admin.php:369
+#: ../../mod/settings.php:709 ../../mod/admin.php:379
msgid "No special theme for mobile devices"
msgstr ""
-#: ../../mod/settings.php:842
+#: ../../mod/settings.php:750
msgid "Display Settings"
msgstr ""
-#: ../../mod/settings.php:848
+#: ../../mod/settings.php:756
msgid "Display Theme:"
msgstr ""
-#: ../../mod/settings.php:849
+#: ../../mod/settings.php:757
msgid "Mobile Theme:"
msgstr ""
-#: ../../mod/settings.php:850
+#: ../../mod/settings.php:758
msgid "Update browser every xx seconds"
msgstr ""
-#: ../../mod/settings.php:850
+#: ../../mod/settings.php:758
msgid "Minimum of 10 seconds, no maximum"
msgstr ""
-#: ../../mod/settings.php:851
+#: ../../mod/settings.php:759
msgid "Maximum number of conversations to load at any time:"
msgstr ""
-#: ../../mod/settings.php:851
+#: ../../mod/settings.php:759
msgid "Maximum of 100 items"
msgstr ""
-#: ../../mod/settings.php:852
+#: ../../mod/settings.php:760
msgid "Don't show emoticons"
msgstr ""
-#: ../../mod/settings.php:888
+#: ../../mod/settings.php:761
+msgid "Do not view remote profiles in frames"
+msgstr ""
+
+#: ../../mod/settings.php:761
+msgid "By default open in a sub-window of your own site"
+msgstr ""
+
+#: ../../mod/settings.php:796
msgid "Nobody except yourself"
msgstr ""
-#: ../../mod/settings.php:889
+#: ../../mod/settings.php:797
msgid "Only those you specifically allow"
msgstr ""
-#: ../../mod/settings.php:890
+#: ../../mod/settings.php:798
msgid "Anybody in your address book"
msgstr ""
-#: ../../mod/settings.php:891
+#: ../../mod/settings.php:799
msgid "Anybody on this website"
msgstr ""
-#: ../../mod/settings.php:892
+#: ../../mod/settings.php:800
msgid "Anybody in this network"
msgstr ""
-#: ../../mod/settings.php:893
+#: ../../mod/settings.php:801
+msgid "Anybody authenticated"
+msgstr ""
+
+#: ../../mod/settings.php:802
msgid "Anybody on the internet"
msgstr ""
-#: ../../mod/settings.php:967
+#: ../../mod/settings.php:879
msgid "Publish your default profile in the network directory"
msgstr ""
-#: ../../mod/settings.php:972
+#: ../../mod/settings.php:879 ../../mod/settings.php:884
+#: ../../mod/settings.php:955 ../../mod/api.php:106 ../../mod/profiles.php:484
+msgid "No"
+msgstr ""
+
+#: ../../mod/settings.php:879 ../../mod/settings.php:884
+#: ../../mod/settings.php:955 ../../mod/api.php:105 ../../mod/profiles.php:483
+msgid "Yes"
+msgstr ""
+
+#: ../../mod/settings.php:884
msgid "Allow us to suggest you as a potential friend to new members?"
msgstr ""
-#: ../../mod/settings.php:976 ../../mod/profile_photo.php:298
+#: ../../mod/settings.php:888 ../../mod/profile_photo.php:288
msgid "or"
msgstr ""
-#: ../../mod/settings.php:981
+#: ../../mod/settings.php:893
msgid "Your channel address is"
msgstr ""
-#: ../../mod/settings.php:1003
+#: ../../mod/settings.php:927
msgid "Channel Settings"
msgstr ""
-#: ../../mod/settings.php:1012
+#: ../../mod/settings.php:936
msgid "Basic Settings"
msgstr ""
-#: ../../mod/settings.php:1015
+#: ../../mod/settings.php:939
msgid "Your Timezone:"
msgstr ""
-#: ../../mod/settings.php:1016
+#: ../../mod/settings.php:940
msgid "Default Post Location:"
msgstr ""
-#: ../../mod/settings.php:1017
+#: ../../mod/settings.php:941
msgid "Use Browser Location:"
msgstr ""
-#: ../../mod/settings.php:1019
+#: ../../mod/settings.php:943
msgid "Adult Content"
msgstr ""
-#: ../../mod/settings.php:1019
-msgid "This channel publishes adult content."
+#: ../../mod/settings.php:943
+msgid ""
+"This channel frequently or regularly publishes adult content. (Please tag "
+"any adult material and/or nudity with #NSFW)"
msgstr ""
-#: ../../mod/settings.php:1021
+#: ../../mod/settings.php:945
msgid "Security and Privacy Settings"
msgstr ""
-#: ../../mod/settings.php:1023
-msgid "Quick Privacy Settings:"
+#: ../../mod/settings.php:947
+msgid "Hide my online presence"
+msgstr ""
+
+#: ../../mod/settings.php:947
+msgid "Prevents displaying in your profile that you are online"
+msgstr ""
+
+#: ../../mod/settings.php:949
+msgid "Simple Privacy Settings:"
+msgstr ""
+
+#: ../../mod/settings.php:950
+msgid ""
+"Very Public - <em>extremely permissive (should be used with caution)</em>"
+msgstr ""
+
+#: ../../mod/settings.php:951
+msgid ""
+"Typical - <em>default public, privacy when desired (similar to social "
+"network permissions but with improved privacy)</em>"
+msgstr ""
+
+#: ../../mod/settings.php:952
+msgid "Private - <em>default private, never open or public</em>"
msgstr ""
-#: ../../mod/settings.php:1024
-msgid "Very Public - extremely permissive"
+#: ../../mod/settings.php:953
+msgid "Blocked - <em>default blocked to/from everybody</em>"
msgstr ""
-#: ../../mod/settings.php:1025
-msgid "Typical - default public, privacy when desired"
+#: ../../mod/settings.php:955
+msgid "Allow others to tag your posts"
msgstr ""
-#: ../../mod/settings.php:1026
-msgid "Private - default private, rarely open or public"
+#: ../../mod/settings.php:955
+msgid ""
+"Often used by the community to retro-actively flag inappropriate content"
msgstr ""
-#: ../../mod/settings.php:1027
-msgid "Blocked - default blocked to/from everybody"
+#: ../../mod/settings.php:957
+msgid "Advanced Privacy Settings"
msgstr ""
-#: ../../mod/settings.php:1030
+#: ../../mod/settings.php:959
msgid "Maximum Friend Requests/Day:"
msgstr ""
-#: ../../mod/settings.php:1030
+#: ../../mod/settings.php:959
msgid "May reduce spam activity"
msgstr ""
-#: ../../mod/settings.php:1031
+#: ../../mod/settings.php:960
msgid "Default Post Permissions"
msgstr ""
-#: ../../mod/settings.php:1032
+#: ../../mod/settings.php:961 ../../mod/mitem.php:134 ../../mod/mitem.php:177
msgid "(click to open/close)"
msgstr ""
-#: ../../mod/settings.php:1043
+#: ../../mod/settings.php:972
msgid "Maximum private messages per day from unknown people:"
msgstr ""
-#: ../../mod/settings.php:1043
+#: ../../mod/settings.php:972
msgid "Useful to reduce spamming"
msgstr ""
-#: ../../mod/settings.php:1046
+#: ../../mod/settings.php:975
msgid "Notification Settings"
msgstr ""
-#: ../../mod/settings.php:1047
+#: ../../mod/settings.php:976
msgid "By default post a status message when:"
msgstr ""
-#: ../../mod/settings.php:1048
+#: ../../mod/settings.php:977
msgid "accepting a friend request"
msgstr ""
-#: ../../mod/settings.php:1049
+#: ../../mod/settings.php:978
msgid "joining a forum/community"
msgstr ""
-#: ../../mod/settings.php:1050
+#: ../../mod/settings.php:979
msgid "making an <em>interesting</em> profile change"
msgstr ""
-#: ../../mod/settings.php:1051
+#: ../../mod/settings.php:980
msgid "Send a notification email when:"
msgstr ""
-#: ../../mod/settings.php:1052
+#: ../../mod/settings.php:981
msgid "You receive an introduction"
msgstr ""
-#: ../../mod/settings.php:1053
+#: ../../mod/settings.php:982
msgid "Your introductions are confirmed"
msgstr ""
-#: ../../mod/settings.php:1054
+#: ../../mod/settings.php:983
msgid "Someone writes on your profile wall"
msgstr ""
-#: ../../mod/settings.php:1055
+#: ../../mod/settings.php:984
msgid "Someone writes a followup comment"
msgstr ""
-#: ../../mod/settings.php:1056
+#: ../../mod/settings.php:985
msgid "You receive a private message"
msgstr ""
-#: ../../mod/settings.php:1057
+#: ../../mod/settings.php:986
msgid "You receive a friend suggestion"
msgstr ""
-#: ../../mod/settings.php:1058
+#: ../../mod/settings.php:987
msgid "You are tagged in a post"
msgstr ""
-#: ../../mod/settings.php:1059
+#: ../../mod/settings.php:988
msgid "You are poked/prodded/etc. in a post"
msgstr ""
-#: ../../mod/settings.php:1062
+#: ../../mod/settings.php:991
msgid "Advanced Account/Page Type Settings"
msgstr ""
-#: ../../mod/settings.php:1063
+#: ../../mod/settings.php:992
msgid "Change the behaviour of this account for special situations"
msgstr ""
-#: ../../mod/viewconnections.php:28 ../../mod/search.php:80
-#: ../../mod/photos.php:576 ../../mod/display.php:9 ../../mod/community.php:18
-#: ../../mod/directory.php:32
+#: ../../mod/settings.php:995
+msgid ""
+"Please enable expert mode (in <a href=\"settings/features\">Settings > "
+"Additional features</a>) to adjust!"
+msgstr ""
+
+#: ../../mod/settings.php:996
+msgid "Miscellaneous Settings"
+msgstr ""
+
+#: ../../mod/settings.php:998
+msgid "Personal menu to display in your channel pages"
+msgstr ""
+
+#: ../../mod/menu.php:21
+msgid "Menu updated."
+msgstr ""
+
+#: ../../mod/menu.php:25
+msgid "Unable to update menu."
+msgstr ""
+
+#: ../../mod/menu.php:30
+msgid "Menu created."
+msgstr ""
+
+#: ../../mod/menu.php:34
+msgid "Unable to create menu."
+msgstr ""
+
+#: ../../mod/menu.php:57
+msgid "Manage Menus"
+msgstr ""
+
+#: ../../mod/menu.php:60
+msgid "Drop"
+msgstr ""
+
+#: ../../mod/menu.php:62
+msgid "Create a new menu"
+msgstr ""
+
+#: ../../mod/menu.php:63
+msgid "Delete this menu"
+msgstr ""
+
+#: ../../mod/menu.php:64 ../../mod/menu.php:109
+msgid "Edit menu contents"
+msgstr ""
+
+#: ../../mod/menu.php:65
+msgid "Edit this menu"
+msgstr ""
+
+#: ../../mod/menu.php:80
+msgid "New Menu"
+msgstr ""
+
+#: ../../mod/menu.php:81 ../../mod/menu.php:110
+msgid "Menu name"
+msgstr ""
+
+#: ../../mod/menu.php:81 ../../mod/menu.php:110
+msgid "Must be unique, only seen by you"
+msgstr ""
+
+#: ../../mod/menu.php:82 ../../mod/menu.php:111
+msgid "Menu title"
+msgstr ""
+
+#: ../../mod/menu.php:82 ../../mod/menu.php:111
+msgid "Menu title as seen by others"
+msgstr ""
+
+#: ../../mod/menu.php:83 ../../mod/menu.php:112
+msgid "Allow bookmarks"
+msgstr ""
+
+#: ../../mod/menu.php:83 ../../mod/menu.php:112
+msgid "Menu may be used to store saved bookmarks"
+msgstr ""
+
+#: ../../mod/menu.php:84 ../../mod/mitem.php:142 ../../mod/new_channel.php:117
+msgid "Create"
+msgstr ""
+
+#: ../../mod/menu.php:92 ../../mod/mitem.php:14
+msgid "Menu not found."
+msgstr ""
+
+#: ../../mod/menu.php:98
+msgid "Menu deleted."
+msgstr ""
+
+#: ../../mod/menu.php:100
+msgid "Menu could not be deleted."
+msgstr ""
+
+#: ../../mod/menu.php:106
+msgid "Edit Menu"
+msgstr ""
+
+#: ../../mod/menu.php:108
+msgid "Add or remove entries to this menu"
+msgstr ""
+
+#: ../../mod/menu.php:114 ../../mod/mitem.php:186
+msgid "Modify"
+msgstr ""
+
+#: ../../mod/menu.php:120 ../../mod/mitem.php:78 ../../mod/xchan.php:27
+#: ../../mod/dirprofile.php:181
+msgid "Not found."
+msgstr ""
+
+#: ../../mod/webpages.php:121 ../../mod/layouts.php:105
+#: ../../mod/blocks.php:96
+msgid "View"
+msgstr ""
+
+#: ../../mod/api.php:76 ../../mod/api.php:102
+msgid "Authorize application connection"
+msgstr ""
+
+#: ../../mod/api.php:77
+msgid "Return to your app and insert this Securty Code:"
+msgstr ""
+
+#: ../../mod/api.php:89
+msgid "Please login to continue."
+msgstr ""
+
+#: ../../mod/api.php:104
+msgid ""
+"Do you want to authorize this application to access your posts and contacts, "
+"and/or create new posts for you?"
+msgstr ""
+
+#: ../../mod/apps.php:8
+msgid "No installed applications."
+msgstr ""
+
+#: ../../mod/apps.php:13
+msgid "Applications"
+msgstr ""
+
+#: ../../mod/rpost.php:86 ../../mod/editpost.php:42
+msgid "Edit post"
+msgstr ""
+
+#: ../../mod/cloud.php:112
+msgid "Red Matrix - Guests: Username: {your email address}, Password: +++"
+msgstr ""
+
+#: ../../mod/bookmarks.php:38
+msgid "Bookmark added"
+msgstr ""
+
+#: ../../mod/bookmarks.php:53
+msgid "My Bookmarks"
+msgstr ""
+
+#: ../../mod/bookmarks.php:64
+msgid "My Connections Bookmarks"
+msgstr ""
+
+#: ../../mod/item.php:145
+msgid "Unable to locate original post."
+msgstr ""
+
+#: ../../mod/item.php:346
+msgid "Empty post discarded."
+msgstr ""
+
+#: ../../mod/item.php:388
+msgid "Executable content type not permitted to this channel."
+msgstr ""
+
+#: ../../mod/item.php:845
+msgid "System error. Post not saved."
+msgstr ""
+
+#: ../../mod/item.php:1112 ../../mod/wall_upload.php:34
+msgid "Wall Photos"
+msgstr ""
+
+#: ../../mod/item.php:1192
+#, php-format
+msgid "You have reached your limit of %1$.0f top level posts."
+msgstr ""
+
+#: ../../mod/item.php:1198
+#, php-format
+msgid "You have reached your limit of %1$.0f webpages."
+msgstr ""
+
+#: ../../mod/subthread.php:105
+#, php-format
+msgid "%1$s is following %2$s's %3$s"
+msgstr ""
+
+#: ../../mod/update_network.php:23 ../../mod/update_channel.php:43
+#: ../../mod/update_search.php:46 ../../mod/update_display.php:25
+#: ../../mod/update_community.php:18
+msgid "[Embedded content - reload page to view]"
+msgstr ""
+
+#: ../../mod/chanview.php:77 ../../mod/home.php:50 ../../mod/page.php:47
+#: ../../mod/wall_upload.php:28
+msgid "Channel not found."
+msgstr ""
+
+#: ../../mod/chanview.php:93
+msgid "toggle full screen mode"
+msgstr ""
+
+#: ../../mod/tagger.php:98
+#, php-format
+msgid "%1$s tagged %2$s's %3$s with %4$s"
+msgstr ""
+
+#: ../../mod/chat.php:18 ../../mod/channel.php:25
+msgid "You must be logged in to see this page."
+msgstr ""
+
+#: ../../mod/chat.php:163
+msgid "Leave Room"
+msgstr ""
+
+#: ../../mod/chat.php:164
+msgid "I am away right now"
+msgstr ""
+
+#: ../../mod/chat.php:165
+msgid "I am online"
+msgstr ""
+
+#: ../../mod/chat.php:189 ../../mod/chat.php:209
+msgid "New Chatroom"
+msgstr ""
+
+#: ../../mod/chat.php:190
+msgid "Chatroom Name"
+msgstr ""
+
+#: ../../mod/chat.php:205
+#, php-format
+msgid "%1$s's Chatrooms"
+msgstr ""
+
+#: ../../mod/viewconnections.php:17 ../../mod/search.php:13
+#: ../../mod/directory.php:15 ../../mod/display.php:9
+#: ../../mod/community.php:18 ../../mod/dirprofile.php:9
+#: ../../mod/photos.php:443
msgid "Public access denied."
msgstr ""
-#: ../../mod/viewconnections.php:57
+#: ../../mod/viewconnections.php:43
msgid "No connections."
msgstr ""
-#: ../../mod/viewconnections.php:69
+#: ../../mod/viewconnections.php:55
#, php-format
msgid "Visit %s's profile [%s]"
msgstr ""
-#: ../../mod/viewconnections.php:84
+#: ../../mod/viewconnections.php:70
msgid "View Connnections"
msgstr ""
@@ -4057,50 +4110,50 @@ msgstr ""
msgid "Select a tag to remove: "
msgstr ""
-#: ../../mod/tagrm.php:93 ../../mod/delegate.php:130
+#: ../../mod/tagrm.php:93 ../../mod/delegate.php:130 ../../mod/photos.php:909
msgid "Remove"
msgstr ""
-#: ../../mod/connect.php:59 ../../mod/connect.php:107
+#: ../../mod/connect.php:55 ../../mod/connect.php:103
msgid "Continue"
msgstr ""
-#: ../../mod/connect.php:88
+#: ../../mod/connect.php:84
msgid "Premium Channel Setup"
msgstr ""
-#: ../../mod/connect.php:90
+#: ../../mod/connect.php:86
msgid "Enable premium channel connection restrictions"
msgstr ""
-#: ../../mod/connect.php:91
+#: ../../mod/connect.php:87
msgid ""
"Please enter your restrictions or conditions, such as paypal receipt, usage "
"guidelines, etc."
msgstr ""
-#: ../../mod/connect.php:93 ../../mod/connect.php:113
+#: ../../mod/connect.php:89 ../../mod/connect.php:109
msgid ""
"This channel may require additional steps or acknowledgement of the "
"following conditions prior to connecting:"
msgstr ""
-#: ../../mod/connect.php:94
+#: ../../mod/connect.php:90
msgid ""
"Potential connections will then see the following text before proceeding:"
msgstr ""
-#: ../../mod/connect.php:95 ../../mod/connect.php:116
+#: ../../mod/connect.php:91 ../../mod/connect.php:112
msgid ""
"By continuing, I certify that I have complied with any instructions provided "
"on this page."
msgstr ""
-#: ../../mod/connect.php:104
+#: ../../mod/connect.php:100
msgid "(No specific instructions have been provided by the channel owner.)"
msgstr ""
-#: ../../mod/connect.php:112
+#: ../../mod/connect.php:108
msgid "Restricted or Premium Channel"
msgstr ""
@@ -4139,1068 +4192,1094 @@ msgstr ""
msgid "No entries."
msgstr ""
-#: ../../mod/sources.php:27
-msgid "Source created."
+#: ../../mod/chatsvc.php:102
+msgid "Away"
msgstr ""
-#: ../../mod/sources.php:39
-msgid "Source updated."
+#: ../../mod/chatsvc.php:106
+msgid "Online"
msgstr ""
-#: ../../mod/sources.php:68
-msgid "Manage remote sources of content for your channel."
+#: ../../mod/attach.php:9
+msgid "Item not available."
msgstr ""
-#: ../../mod/sources.php:69 ../../mod/sources.php:79
-msgid "New Source"
+#: ../../mod/mitem.php:47
+msgid "Menu element updated."
msgstr ""
-#: ../../mod/sources.php:80 ../../mod/sources.php:106
-msgid ""
-"Import all or selected content from the following channel into this channel "
-"and distribute it according to your channel settings."
+#: ../../mod/mitem.php:51
+msgid "Unable to update menu element."
msgstr ""
-#: ../../mod/sources.php:81 ../../mod/sources.php:107
-msgid "Only import content with these words (one per line)"
+#: ../../mod/mitem.php:57
+msgid "Menu element added."
msgstr ""
-#: ../../mod/sources.php:81 ../../mod/sources.php:107
-msgid "Leave blank to import all public content"
+#: ../../mod/mitem.php:61
+msgid "Unable to add menu element."
msgstr ""
-#: ../../mod/sources.php:82 ../../mod/sources.php:109
-#: ../../mod/new_channel.php:110
-msgid "Channel Name"
+#: ../../mod/mitem.php:96
+msgid "Manage Menu Elements"
msgstr ""
-#: ../../mod/sources.php:96 ../../mod/sources.php:122
-msgid "Source not found."
+#: ../../mod/mitem.php:99
+msgid "Edit menu"
msgstr ""
-#: ../../mod/sources.php:103
-msgid "Edit Source"
+#: ../../mod/mitem.php:102
+msgid "Edit element"
msgstr ""
-#: ../../mod/sources.php:104
-msgid "Delete Source"
+#: ../../mod/mitem.php:103
+msgid "Drop element"
msgstr ""
-#: ../../mod/sources.php:130
-msgid "Source removed"
+#: ../../mod/mitem.php:104
+msgid "New element"
msgstr ""
-#: ../../mod/sources.php:132
-msgid "Unable to remove source."
+#: ../../mod/mitem.php:105
+msgid "Edit this menu container"
+msgstr ""
+
+#: ../../mod/mitem.php:106
+msgid "Add menu element"
+msgstr ""
+
+#: ../../mod/mitem.php:107
+msgid "Delete this menu item"
+msgstr ""
+
+#: ../../mod/mitem.php:108
+msgid "Edit this menu item"
+msgstr ""
+
+#: ../../mod/mitem.php:131
+msgid "New Menu Element"
+msgstr ""
+
+#: ../../mod/mitem.php:133 ../../mod/mitem.php:176
+msgid "Menu Item Permissions"
+msgstr ""
+
+#: ../../mod/mitem.php:136 ../../mod/mitem.php:180
+msgid "Link text"
+msgstr ""
+
+#: ../../mod/mitem.php:137 ../../mod/mitem.php:181
+msgid "URL of link"
+msgstr ""
+
+#: ../../mod/mitem.php:138 ../../mod/mitem.php:182
+msgid "Use Red magic-auth if available"
+msgstr ""
+
+#: ../../mod/mitem.php:139 ../../mod/mitem.php:183
+msgid "Open link in new window"
+msgstr ""
+
+#: ../../mod/mitem.php:141 ../../mod/mitem.php:185
+msgid "Order in list"
+msgstr ""
+
+#: ../../mod/mitem.php:141 ../../mod/mitem.php:185
+msgid "Higher numbers will sink to bottom of listing"
+msgstr ""
+
+#: ../../mod/mitem.php:154
+msgid "Menu item not found."
+msgstr ""
+
+#: ../../mod/mitem.php:163
+msgid "Menu item deleted."
+msgstr ""
+
+#: ../../mod/mitem.php:165
+msgid "Menu item could not be deleted."
+msgstr ""
+
+#: ../../mod/mitem.php:174
+msgid "Edit Menu Element"
+msgstr ""
+
+#: ../../mod/profperm.php:29 ../../mod/profperm.php:58
+msgid "Invalid profile identifier."
+msgstr ""
+
+#: ../../mod/profperm.php:105
+msgid "Profile Visibility Editor"
+msgstr ""
+
+#: ../../mod/profperm.php:109
+msgid "Click on a contact to add or remove."
+msgstr ""
+
+#: ../../mod/profperm.php:118
+msgid "Visible To"
+msgstr ""
+
+#: ../../mod/profperm.php:134 ../../mod/connections.php:250
+msgid "All Connections"
+msgstr ""
+
+#: ../../mod/group.php:20
+msgid "Collection created."
+msgstr ""
+
+#: ../../mod/group.php:26
+msgid "Could not create collection."
+msgstr ""
+
+#: ../../mod/group.php:54
+msgid "Collection updated."
+msgstr ""
+
+#: ../../mod/group.php:86
+msgid "Create a collection of channels."
+msgstr ""
+
+#: ../../mod/group.php:87 ../../mod/group.php:183
+msgid "Collection Name: "
+msgstr ""
+
+#: ../../mod/group.php:89 ../../mod/group.php:186
+msgid "Members are visible to other channels"
+msgstr ""
+
+#: ../../mod/group.php:107
+msgid "Collection removed."
+msgstr ""
+
+#: ../../mod/group.php:109
+msgid "Unable to remove collection."
+msgstr ""
+
+#: ../../mod/group.php:182
+msgid "Collection Editor"
+msgstr ""
+
+#: ../../mod/group.php:196
+msgid "Members"
+msgstr ""
+
+#: ../../mod/group.php:198
+msgid "All Connected Channels"
+msgstr ""
+
+#: ../../mod/group.php:231
+msgid "Click on a channel to add or remove."
msgstr ""
#: ../../mod/admin.php:48
msgid "Theme settings updated."
msgstr ""
-#: ../../mod/admin.php:87 ../../mod/admin.php:417
+#: ../../mod/admin.php:88 ../../mod/admin.php:430
msgid "Site"
msgstr ""
-#: ../../mod/admin.php:88 ../../mod/admin.php:682 ../../mod/admin.php:694
+#: ../../mod/admin.php:89 ../../mod/admin.php:738 ../../mod/admin.php:750
msgid "Users"
msgstr ""
-#: ../../mod/admin.php:89 ../../mod/admin.php:780 ../../mod/admin.php:822
+#: ../../mod/admin.php:90 ../../mod/admin.php:836 ../../mod/admin.php:878
msgid "Plugins"
msgstr ""
-#: ../../mod/admin.php:90 ../../mod/admin.php:985 ../../mod/admin.php:1021
+#: ../../mod/admin.php:91 ../../mod/admin.php:1041 ../../mod/admin.php:1077
msgid "Themes"
msgstr ""
-#: ../../mod/admin.php:91 ../../mod/admin.php:475
+#: ../../mod/admin.php:92 ../../mod/admin.php:529
msgid "Server"
msgstr ""
-#: ../../mod/admin.php:92
+#: ../../mod/admin.php:93
msgid "DB updates"
msgstr ""
-#: ../../mod/admin.php:106 ../../mod/admin.php:113 ../../mod/admin.php:1108
+#: ../../mod/admin.php:107 ../../mod/admin.php:114 ../../mod/admin.php:1164
msgid "Logs"
msgstr ""
-#: ../../mod/admin.php:112
+#: ../../mod/admin.php:113
msgid "Plugin Features"
msgstr ""
-#: ../../mod/admin.php:114
+#: ../../mod/admin.php:115
msgid "User registrations waiting for confirmation"
msgstr ""
-#: ../../mod/admin.php:188
+#: ../../mod/admin.php:189
msgid "Message queues"
msgstr ""
-#: ../../mod/admin.php:193 ../../mod/admin.php:416 ../../mod/admin.php:474
-#: ../../mod/admin.php:681 ../../mod/admin.php:779 ../../mod/admin.php:821
-#: ../../mod/admin.php:984 ../../mod/admin.php:1020 ../../mod/admin.php:1107
+#: ../../mod/admin.php:194 ../../mod/admin.php:429 ../../mod/admin.php:528
+#: ../../mod/admin.php:737 ../../mod/admin.php:835 ../../mod/admin.php:877
+#: ../../mod/admin.php:1040 ../../mod/admin.php:1076 ../../mod/admin.php:1163
msgid "Administration"
msgstr ""
-#: ../../mod/admin.php:194
+#: ../../mod/admin.php:195
msgid "Summary"
msgstr ""
-#: ../../mod/admin.php:196
+#: ../../mod/admin.php:197
msgid "Registered users"
msgstr ""
-#: ../../mod/admin.php:198 ../../mod/admin.php:478
+#: ../../mod/admin.php:199 ../../mod/admin.php:532
msgid "Pending registrations"
msgstr ""
-#: ../../mod/admin.php:199
+#: ../../mod/admin.php:200
msgid "Version"
msgstr ""
-#: ../../mod/admin.php:201 ../../mod/admin.php:479
+#: ../../mod/admin.php:202 ../../mod/admin.php:533
msgid "Active plugins"
msgstr ""
-#: ../../mod/admin.php:340
+#: ../../mod/admin.php:350
msgid "Site settings updated."
msgstr ""
-#: ../../mod/admin.php:371
+#: ../../mod/admin.php:381
msgid "No special theme for accessibility"
msgstr ""
-#: ../../mod/admin.php:396
+#: ../../mod/admin.php:409
msgid "Closed"
msgstr ""
-#: ../../mod/admin.php:397
+#: ../../mod/admin.php:410
msgid "Requires approval"
msgstr ""
-#: ../../mod/admin.php:398
+#: ../../mod/admin.php:411
msgid "Open"
msgstr ""
-#: ../../mod/admin.php:403
+#: ../../mod/admin.php:416
msgid "Private"
msgstr ""
-#: ../../mod/admin.php:404
+#: ../../mod/admin.php:417
msgid "Paid Access"
msgstr ""
-#: ../../mod/admin.php:405
+#: ../../mod/admin.php:418
msgid "Free Access"
msgstr ""
-#: ../../mod/admin.php:406
+#: ../../mod/admin.php:419
msgid "Tiered Access"
msgstr ""
-#: ../../mod/admin.php:419 ../../mod/register.php:180
+#: ../../mod/admin.php:432 ../../mod/register.php:189
msgid "Registration"
msgstr ""
-#: ../../mod/admin.php:420
+#: ../../mod/admin.php:433
msgid "File upload"
msgstr ""
-#: ../../mod/admin.php:421
+#: ../../mod/admin.php:434
msgid "Policies"
msgstr ""
-#: ../../mod/admin.php:422
+#: ../../mod/admin.php:435
msgid "Advanced"
msgstr ""
-#: ../../mod/admin.php:426
+#: ../../mod/admin.php:439
msgid "Site name"
msgstr ""
-#: ../../mod/admin.php:427
+#: ../../mod/admin.php:440
msgid "Banner/Logo"
msgstr ""
-#: ../../mod/admin.php:428
+#: ../../mod/admin.php:441
+msgid "Administrator Information"
+msgstr ""
+
+#: ../../mod/admin.php:441
+msgid ""
+"Contact information for site administrators. Displayed on siteinfo page. "
+"BBCode can be used here"
+msgstr ""
+
+#: ../../mod/admin.php:442
msgid "System language"
msgstr ""
-#: ../../mod/admin.php:429
+#: ../../mod/admin.php:443
msgid "System theme"
msgstr ""
-#: ../../mod/admin.php:429
+#: ../../mod/admin.php:443
msgid ""
"Default system theme - may be over-ridden by user profiles - <a href='#' "
"id='cnftheme'>change theme settings</a>"
msgstr ""
-#: ../../mod/admin.php:430
+#: ../../mod/admin.php:444
msgid "Mobile system theme"
msgstr ""
-#: ../../mod/admin.php:430
+#: ../../mod/admin.php:444
msgid "Theme for mobile devices"
msgstr ""
-#: ../../mod/admin.php:431
+#: ../../mod/admin.php:445
msgid "Accessibility system theme"
msgstr ""
-#: ../../mod/admin.php:431
+#: ../../mod/admin.php:445
msgid "Accessibility theme"
msgstr ""
-#: ../../mod/admin.php:432
+#: ../../mod/admin.php:446
msgid "Channel to use for this website's static pages"
msgstr ""
-#: ../../mod/admin.php:432
+#: ../../mod/admin.php:446
msgid "Site Channel"
msgstr ""
-#: ../../mod/admin.php:434
+#: ../../mod/admin.php:448
msgid "Maximum image size"
msgstr ""
-#: ../../mod/admin.php:434
+#: ../../mod/admin.php:448
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr ""
-#: ../../mod/admin.php:435
+#: ../../mod/admin.php:449
msgid "Register policy"
msgstr ""
-#: ../../mod/admin.php:436
+#: ../../mod/admin.php:450
msgid "Access policy"
msgstr ""
-#: ../../mod/admin.php:437
+#: ../../mod/admin.php:451
msgid "Register text"
msgstr ""
-#: ../../mod/admin.php:437
+#: ../../mod/admin.php:451
msgid "Will be displayed prominently on the registration page."
msgstr ""
-#: ../../mod/admin.php:438
+#: ../../mod/admin.php:452
msgid "Accounts abandoned after x days"
msgstr ""
-#: ../../mod/admin.php:438
+#: ../../mod/admin.php:452
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr ""
-#: ../../mod/admin.php:439
+#: ../../mod/admin.php:453
msgid "Allowed friend domains"
msgstr ""
-#: ../../mod/admin.php:439
+#: ../../mod/admin.php:453
msgid ""
"Comma separated list of domains which are allowed to establish friendships "
"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr ""
-#: ../../mod/admin.php:440
+#: ../../mod/admin.php:454
msgid "Allowed email domains"
msgstr ""
-#: ../../mod/admin.php:440
+#: ../../mod/admin.php:454
msgid ""
"Comma separated list of domains which are allowed in email addresses for "
"registrations to this site. Wildcards are accepted. Empty to allow any "
"domains"
msgstr ""
-#: ../../mod/admin.php:441
+#: ../../mod/admin.php:455
msgid "Block public"
msgstr ""
-#: ../../mod/admin.php:441
+#: ../../mod/admin.php:455
msgid ""
"Check to block public access to all otherwise public personal pages on this "
"site unless you are currently logged in."
msgstr ""
-#: ../../mod/admin.php:442
+#: ../../mod/admin.php:456
msgid "Force publish"
msgstr ""
-#: ../../mod/admin.php:442
+#: ../../mod/admin.php:456
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
msgstr ""
-#: ../../mod/admin.php:444
+#: ../../mod/admin.php:457
+msgid "No login on Homepage"
+msgstr ""
+
+#: ../../mod/admin.php:457
+msgid ""
+"Check to hide the login form from your sites homepage when visitors arrive "
+"who are not logged in (e.g. when you put the content of the homepage in via "
+"the site channel)."
+msgstr ""
+
+#: ../../mod/admin.php:459
msgid "Proxy user"
msgstr ""
-#: ../../mod/admin.php:445
+#: ../../mod/admin.php:460
msgid "Proxy URL"
msgstr ""
-#: ../../mod/admin.php:446
+#: ../../mod/admin.php:461
msgid "Network timeout"
msgstr ""
-#: ../../mod/admin.php:446
+#: ../../mod/admin.php:461
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr ""
-#: ../../mod/admin.php:447
+#: ../../mod/admin.php:462
msgid "Delivery interval"
msgstr ""
-#: ../../mod/admin.php:447
+#: ../../mod/admin.php:462
msgid ""
"Delay background delivery processes by this many seconds to reduce system "
"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
"for large dedicated servers."
msgstr ""
-#: ../../mod/admin.php:448
+#: ../../mod/admin.php:463
msgid "Poll interval"
msgstr ""
-#: ../../mod/admin.php:448
+#: ../../mod/admin.php:463
msgid ""
"Delay background polling processes by this many seconds to reduce system "
"load. If 0, use delivery interval."
msgstr ""
-#: ../../mod/admin.php:449
+#: ../../mod/admin.php:464
msgid "Maximum Load Average"
msgstr ""
-#: ../../mod/admin.php:449
+#: ../../mod/admin.php:464
msgid ""
"Maximum system load before delivery and poll processes are deferred - "
"default 50."
msgstr ""
-#: ../../mod/admin.php:466
+#: ../../mod/admin.php:520
msgid "No server found"
msgstr ""
-#: ../../mod/admin.php:473 ../../mod/admin.php:695
+#: ../../mod/admin.php:527 ../../mod/admin.php:751
msgid "ID"
msgstr ""
-#: ../../mod/admin.php:473
+#: ../../mod/admin.php:527
msgid "for channel"
msgstr ""
-#: ../../mod/admin.php:473
+#: ../../mod/admin.php:527
msgid "on server"
msgstr ""
-#: ../../mod/admin.php:473
+#: ../../mod/admin.php:527
msgid "Status"
msgstr ""
-#: ../../mod/admin.php:493
+#: ../../mod/admin.php:548
msgid "Update has been marked successful"
msgstr ""
-#: ../../mod/admin.php:503
+#: ../../mod/admin.php:558
#, php-format
msgid "Executing %s failed. Check system logs."
msgstr ""
-#: ../../mod/admin.php:506
+#: ../../mod/admin.php:561
#, php-format
msgid "Update %s was successfully applied."
msgstr ""
-#: ../../mod/admin.php:510
+#: ../../mod/admin.php:565
#, php-format
msgid "Update %s did not return a status. Unknown if it succeeded."
msgstr ""
-#: ../../mod/admin.php:513
+#: ../../mod/admin.php:568
#, php-format
msgid "Update function %s could not be found."
msgstr ""
-#: ../../mod/admin.php:528
+#: ../../mod/admin.php:583
msgid "No failed updates."
msgstr ""
-#: ../../mod/admin.php:532
+#: ../../mod/admin.php:587
msgid "Failed Updates"
msgstr ""
-#: ../../mod/admin.php:534
+#: ../../mod/admin.php:589
msgid "Mark success (if update was manually applied)"
msgstr ""
-#: ../../mod/admin.php:535
+#: ../../mod/admin.php:590
msgid "Attempt to execute this update step automatically"
msgstr ""
-#: ../../mod/admin.php:561
+#: ../../mod/admin.php:616
#, php-format
msgid "%s user blocked/unblocked"
msgid_plural "%s users blocked/unblocked"
msgstr[0] ""
msgstr[1] ""
-#: ../../mod/admin.php:568
+#: ../../mod/admin.php:623
#, php-format
msgid "%s user deleted"
msgid_plural "%s users deleted"
msgstr[0] ""
msgstr[1] ""
-#: ../../mod/admin.php:599
+#: ../../mod/admin.php:654
msgid "Account not found"
msgstr ""
-#: ../../mod/admin.php:610
+#: ../../mod/admin.php:665
#, php-format
msgid "User '%s' deleted"
msgstr ""
-#: ../../mod/admin.php:619
+#: ../../mod/admin.php:674
#, php-format
msgid "User '%s' unblocked"
msgstr ""
-#: ../../mod/admin.php:619
+#: ../../mod/admin.php:674
#, php-format
msgid "User '%s' blocked"
msgstr ""
-#: ../../mod/admin.php:684
+#: ../../mod/admin.php:740
msgid "select all"
msgstr ""
-#: ../../mod/admin.php:685
+#: ../../mod/admin.php:741
msgid "User registrations waiting for confirm"
msgstr ""
-#: ../../mod/admin.php:686
+#: ../../mod/admin.php:742
msgid "Request date"
msgstr ""
-#: ../../mod/admin.php:687
+#: ../../mod/admin.php:743
msgid "No registrations."
msgstr ""
-#: ../../mod/admin.php:688 ../../mod/intro.php:11 ../../mod/intro.php:98
-#: ../../mod/notifications.php:159 ../../mod/notifications.php:206
+#: ../../mod/admin.php:744
msgid "Approve"
msgstr ""
-#: ../../mod/admin.php:689
+#: ../../mod/admin.php:745
msgid "Deny"
msgstr ""
-#: ../../mod/admin.php:691 ../../mod/intro.php:14 ../../mod/intro.php:99
-#: ../../mod/connections.php:348 ../../mod/connections.php:490
+#: ../../mod/admin.php:747 ../../mod/connedit.php:333
+#: ../../mod/connedit.php:475
msgid "Block"
msgstr ""
-#: ../../mod/admin.php:692 ../../mod/connections.php:348
-#: ../../mod/connections.php:490
+#: ../../mod/admin.php:748 ../../mod/connedit.php:333
+#: ../../mod/connedit.php:475
msgid "Unblock"
msgstr ""
-#: ../../mod/admin.php:695
+#: ../../mod/admin.php:751
msgid "Register date"
msgstr ""
-#: ../../mod/admin.php:695
+#: ../../mod/admin.php:751
msgid "Last login"
msgstr ""
-#: ../../mod/admin.php:695
+#: ../../mod/admin.php:751
msgid "Expires"
msgstr ""
-#: ../../mod/admin.php:695
+#: ../../mod/admin.php:751
msgid "Service Class"
msgstr ""
-#: ../../mod/admin.php:697
+#: ../../mod/admin.php:753
msgid ""
"Selected users will be deleted!\\n\\nEverything these users had posted on "
"this site will be permanently deleted!\\n\\nAre you sure?"
msgstr ""
-#: ../../mod/admin.php:698
+#: ../../mod/admin.php:754
msgid ""
"The user {0} will be deleted!\\n\\nEverything this user has posted on this "
"site will be permanently deleted!\\n\\nAre you sure?"
msgstr ""
-#: ../../mod/admin.php:739
+#: ../../mod/admin.php:795
#, php-format
msgid "Plugin %s disabled."
msgstr ""
-#: ../../mod/admin.php:743
+#: ../../mod/admin.php:799
#, php-format
msgid "Plugin %s enabled."
msgstr ""
-#: ../../mod/admin.php:753 ../../mod/admin.php:955
+#: ../../mod/admin.php:809 ../../mod/admin.php:1011
msgid "Disable"
msgstr ""
-#: ../../mod/admin.php:755 ../../mod/admin.php:957
+#: ../../mod/admin.php:811 ../../mod/admin.php:1013
msgid "Enable"
msgstr ""
-#: ../../mod/admin.php:781 ../../mod/admin.php:986
+#: ../../mod/admin.php:837 ../../mod/admin.php:1042
msgid "Toggle"
msgstr ""
-#: ../../mod/admin.php:789 ../../mod/admin.php:996
+#: ../../mod/admin.php:845 ../../mod/admin.php:1052
msgid "Author: "
msgstr ""
-#: ../../mod/admin.php:790 ../../mod/admin.php:997
+#: ../../mod/admin.php:846 ../../mod/admin.php:1053
msgid "Maintainer: "
msgstr ""
-#: ../../mod/admin.php:919
+#: ../../mod/admin.php:975
msgid "No themes found."
msgstr ""
-#: ../../mod/admin.php:978
+#: ../../mod/admin.php:1034
msgid "Screenshot"
msgstr ""
-#: ../../mod/admin.php:1026
+#: ../../mod/admin.php:1082
msgid "[Experimental]"
msgstr ""
-#: ../../mod/admin.php:1027
+#: ../../mod/admin.php:1083
msgid "[Unsupported]"
msgstr ""
-#: ../../mod/admin.php:1054
+#: ../../mod/admin.php:1110
msgid "Log settings updated."
msgstr ""
-#: ../../mod/admin.php:1110
+#: ../../mod/admin.php:1166
msgid "Clear"
msgstr ""
-#: ../../mod/admin.php:1116
+#: ../../mod/admin.php:1172
msgid "Debugging"
msgstr ""
-#: ../../mod/admin.php:1117
+#: ../../mod/admin.php:1173
msgid "Log file"
msgstr ""
-#: ../../mod/admin.php:1117
+#: ../../mod/admin.php:1173
msgid ""
"Must be writable by web server. Relative to your Red top-level directory."
msgstr ""
-#: ../../mod/admin.php:1118
+#: ../../mod/admin.php:1174
msgid "Log level"
msgstr ""
-#: ../../mod/mitem.php:13 ../../mod/menu.php:87
-msgid "Menu not found."
-msgstr ""
-
-#: ../../mod/mitem.php:66
-msgid "Menu element updated."
-msgstr ""
-
-#: ../../mod/mitem.php:70
-msgid "Unable to update menu element."
-msgstr ""
-
-#: ../../mod/mitem.php:76
-msgid "Menu element added."
-msgstr ""
-
-#: ../../mod/mitem.php:80
-msgid "Unable to add menu element."
-msgstr ""
-
-#: ../../mod/mitem.php:97 ../../mod/xchan.php:25 ../../mod/menu.php:113
-msgid "Not found."
-msgstr ""
-
-#: ../../mod/mitem.php:116
-msgid "Manage Menu Elements"
-msgstr ""
-
-#: ../../mod/mitem.php:119
-msgid "Edit menu"
-msgstr ""
-
-#: ../../mod/mitem.php:122
-msgid "Edit element"
-msgstr ""
-
-#: ../../mod/mitem.php:123
-msgid "Drop element"
-msgstr ""
-
-#: ../../mod/mitem.php:124
-msgid "New element"
-msgstr ""
-
-#: ../../mod/mitem.php:125
-msgid "Edit this menu container"
-msgstr ""
-
-#: ../../mod/mitem.php:126
-msgid "Add menu element"
-msgstr ""
-
-#: ../../mod/mitem.php:127
-msgid "Delete this menu item"
-msgstr ""
-
-#: ../../mod/mitem.php:128
-msgid "Edit this menu item"
-msgstr ""
-
-#: ../../mod/mitem.php:141
-msgid "New Menu Element"
-msgstr ""
-
-#: ../../mod/mitem.php:143 ../../mod/mitem.php:184
-msgid "Link text"
-msgstr ""
-
-#: ../../mod/mitem.php:144 ../../mod/mitem.php:185
-msgid "URL of link"
-msgstr ""
-
-#: ../../mod/mitem.php:145 ../../mod/mitem.php:186
-msgid "Use Red magic-auth if available"
+#: ../../mod/filer.php:35
+msgid "- select -"
msgstr ""
-#: ../../mod/mitem.php:146 ../../mod/mitem.php:187
-msgid "Open link in new window"
+#: ../../mod/home.php:89
+#, php-format
+msgid "Welcome to %s"
msgstr ""
-#: ../../mod/mitem.php:148 ../../mod/mitem.php:189
-msgid "Order in list"
+#: ../../mod/editpost.php:20 ../../mod/editlayout.php:36
+#: ../../mod/editwebpage.php:32 ../../mod/editblock.php:36
+msgid "Item not found"
msgstr ""
-#: ../../mod/mitem.php:148 ../../mod/mitem.php:189
-msgid "Higher numbers will sink to bottom of listing"
+#: ../../mod/editpost.php:31
+msgid "Item is not editable"
msgstr ""
-#: ../../mod/mitem.php:149 ../../mod/menu.php:79 ../../mod/new_channel.php:117
-msgid "Create"
+#: ../../mod/editpost.php:53
+msgid "Delete item?"
msgstr ""
-#: ../../mod/mitem.php:161
-msgid "Menu item not found."
+#: ../../mod/editpost.php:116 ../../mod/editlayout.php:110
+#: ../../mod/editwebpage.php:148 ../../mod/editblock.php:124
+msgid "Insert YouTube video"
msgstr ""
-#: ../../mod/mitem.php:170
-msgid "Menu item deleted."
+#: ../../mod/editpost.php:117 ../../mod/editlayout.php:111
+#: ../../mod/editwebpage.php:149 ../../mod/editblock.php:125
+msgid "Insert Vorbis [.ogg] video"
msgstr ""
-#: ../../mod/mitem.php:172
-msgid "Menu item could not be deleted."
+#: ../../mod/editpost.php:118 ../../mod/editlayout.php:112
+#: ../../mod/editwebpage.php:150 ../../mod/editblock.php:126
+msgid "Insert Vorbis [.ogg] audio"
msgstr ""
-#: ../../mod/mitem.php:181
-msgid "Edit Menu Element"
+#: ../../mod/directory.php:144 ../../mod/profiles.php:561
+#: ../../mod/dirprofile.php:98
+msgid "Age: "
msgstr ""
-#: ../../mod/mitem.php:190 ../../mod/menu.php:107
-msgid "Modify"
+#: ../../mod/directory.php:147 ../../mod/dirprofile.php:101
+msgid "Gender: "
msgstr ""
-#: ../../mod/group.php:26
-msgid "Collection created."
+#: ../../mod/directory.php:208
+msgid "Finding:"
msgstr ""
-#: ../../mod/group.php:32
-msgid "Could not create collection."
+#: ../../mod/directory.php:216
+msgid "next page"
msgstr ""
-#: ../../mod/group.php:60
-msgid "Collection updated."
+#: ../../mod/directory.php:216
+msgid "previous page"
msgstr ""
-#: ../../mod/group.php:92
-msgid "Create a collection of channels."
+#: ../../mod/directory.php:223
+msgid "No entries (some entries may be hidden)."
msgstr ""
-#: ../../mod/group.php:93 ../../mod/group.php:189
-msgid "Collection Name: "
+#: ../../mod/connedit.php:49 ../../mod/connections.php:37
+msgid "Could not access contact record."
msgstr ""
-#: ../../mod/group.php:95 ../../mod/group.php:192
-msgid "Members are visible to other channels"
+#: ../../mod/connedit.php:63 ../../mod/connections.php:51
+msgid "Could not locate selected profile."
msgstr ""
-#: ../../mod/group.php:113
-msgid "Collection removed."
+#: ../../mod/connedit.php:107 ../../mod/connections.php:94
+msgid "Connection updated."
msgstr ""
-#: ../../mod/group.php:115
-msgid "Unable to remove collection."
+#: ../../mod/connedit.php:109 ../../mod/connections.php:96
+msgid "Failed to update connection record."
msgstr ""
-#: ../../mod/group.php:188
-msgid "Collection Editor"
+#: ../../mod/connedit.php:204
+msgid "Could not access address book record."
msgstr ""
-#: ../../mod/group.php:202
-msgid "Members"
+#: ../../mod/connedit.php:218
+msgid "Refresh failed - channel is currently unavailable."
msgstr ""
-#: ../../mod/group.php:204
-msgid "All Connected Channels"
+#: ../../mod/connedit.php:225
+msgid "Channel has been unblocked"
msgstr ""
-#: ../../mod/group.php:237
-msgid "Click on a channel to add or remove."
+#: ../../mod/connedit.php:226
+msgid "Channel has been blocked"
msgstr ""
-#: ../../mod/search.php:20 ../../mod/network.php:113
-msgid "Remove term"
+#: ../../mod/connedit.php:230 ../../mod/connedit.php:242
+#: ../../mod/connedit.php:254 ../../mod/connedit.php:266
+#: ../../mod/connedit.php:281
+msgid "Unable to set address book parameters."
msgstr ""
-#: ../../mod/photos.php:83
-msgid "Page owner information could not be retrieved."
+#: ../../mod/connedit.php:237
+msgid "Channel has been unignored"
msgstr ""
-#: ../../mod/photos.php:103
-msgid "Album not found."
+#: ../../mod/connedit.php:238
+msgid "Channel has been ignored"
msgstr ""
-#: ../../mod/photos.php:125 ../../mod/photos.php:791
-msgid "Delete Album"
+#: ../../mod/connedit.php:249
+msgid "Channel has been unarchived"
msgstr ""
-#: ../../mod/photos.php:165 ../../mod/photos.php:1052
-msgid "Delete Photo"
+#: ../../mod/connedit.php:250
+msgid "Channel has been archived"
msgstr ""
-#: ../../mod/photos.php:510
-#, php-format
-msgid "%1$s was tagged in %2$s by %3$s"
+#: ../../mod/connedit.php:261
+msgid "Channel has been unhidden"
msgstr ""
-#: ../../mod/photos.php:510
-msgid "a photo"
+#: ../../mod/connedit.php:262
+msgid "Channel has been hidden"
msgstr ""
-#: ../../mod/photos.php:586
-msgid "No photos selected"
+#: ../../mod/connedit.php:276
+msgid "Channel has been approved"
msgstr ""
-#: ../../mod/photos.php:631
-msgid "Access to this item is restricted."
+#: ../../mod/connedit.php:277
+msgid "Channel has been unapproved"
msgstr ""
-#: ../../mod/photos.php:696
-#, php-format
-msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."
+#: ../../mod/connedit.php:295
+msgid "Contact has been removed."
msgstr ""
-#: ../../mod/photos.php:699
+#: ../../mod/connedit.php:315
#, php-format
-msgid "You have used %1$.2f Mbytes of photo storage."
-msgstr ""
-
-#: ../../mod/photos.php:718
-msgid "Upload Photos"
-msgstr ""
-
-#: ../../mod/photos.php:722 ../../mod/photos.php:786
-msgid "New album name: "
-msgstr ""
-
-#: ../../mod/photos.php:723
-msgid "or existing album name: "
-msgstr ""
-
-#: ../../mod/photos.php:724
-msgid "Do not show a status post for this upload"
-msgstr ""
-
-#: ../../mod/photos.php:726 ../../mod/photos.php:1047
-msgid "Permissions"
-msgstr ""
-
-#: ../../mod/photos.php:775 ../../mod/photos.php:797 ../../mod/photos.php:1223
-#: ../../mod/photos.php:1238
-msgid "Contact Photos"
-msgstr ""
-
-#: ../../mod/photos.php:801
-msgid "Edit Album"
+msgid "View %s's profile"
msgstr ""
-#: ../../mod/photos.php:807
-msgid "Show Newest First"
+#: ../../mod/connedit.php:319
+msgid "Refresh Permissions"
msgstr ""
-#: ../../mod/photos.php:809
-msgid "Show Oldest First"
+#: ../../mod/connedit.php:322
+msgid "Fetch updated permissions"
msgstr ""
-#: ../../mod/photos.php:853 ../../mod/photos.php:1270
-msgid "View Photo"
+#: ../../mod/connedit.php:326
+msgid "Recent Activity"
msgstr ""
-#: ../../mod/photos.php:897
-msgid "Permission denied. Access to this item may be restricted."
+#: ../../mod/connedit.php:329
+msgid "View recent posts and comments"
msgstr ""
-#: ../../mod/photos.php:899
-msgid "Photo not available"
+#: ../../mod/connedit.php:336
+msgid "Block or Unblock this connection"
msgstr ""
-#: ../../mod/photos.php:957
-msgid "Use as profile photo"
+#: ../../mod/connedit.php:340 ../../mod/connedit.php:476
+msgid "Unignore"
msgstr ""
-#: ../../mod/photos.php:981
-msgid "View Full Size"
+#: ../../mod/connedit.php:340 ../../mod/connedit.php:476
+#: ../../mod/notifications.php:51
+msgid "Ignore"
msgstr ""
-#: ../../mod/photos.php:1035
-msgid "Edit photo"
+#: ../../mod/connedit.php:343
+msgid "Ignore or Unignore this connection"
msgstr ""
-#: ../../mod/photos.php:1037
-msgid "Rotate CW (right)"
+#: ../../mod/connedit.php:346
+msgid "Unarchive"
msgstr ""
-#: ../../mod/photos.php:1038
-msgid "Rotate CCW (left)"
+#: ../../mod/connedit.php:346
+msgid "Archive"
msgstr ""
-#: ../../mod/photos.php:1040
-msgid "New album name"
+#: ../../mod/connedit.php:349
+msgid "Archive or Unarchive this connection"
msgstr ""
-#: ../../mod/photos.php:1043
-msgid "Caption"
+#: ../../mod/connedit.php:352
+msgid "Unhide"
msgstr ""
-#: ../../mod/photos.php:1045
-msgid "Add a Tag"
+#: ../../mod/connedit.php:352
+msgid "Hide"
msgstr ""
-#: ../../mod/photos.php:1049
-msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
+#: ../../mod/connedit.php:355
+msgid "Hide or Unhide this connection"
msgstr ""
-#: ../../mod/photos.php:1276
-msgid "View Album"
+#: ../../mod/connedit.php:362
+msgid "Delete this connection"
msgstr ""
-#: ../../mod/photos.php:1285
-msgid "Recent Photos"
+#: ../../mod/connedit.php:405 ../../mod/connedit.php:434
+msgid "Approve this connection"
msgstr ""
-#: ../../mod/ping.php:160
-msgid "sent you a private message"
+#: ../../mod/connedit.php:405
+msgid "Accept connection to allow communication"
msgstr ""
-#: ../../mod/ping.php:218
-msgid "added your channel"
+#: ../../mod/connedit.php:421
+msgid "Automatic Permissions Settings"
msgstr ""
-#: ../../mod/ping.php:262
-msgid "posted an event"
+#: ../../mod/connedit.php:421
+#, php-format
+msgid "Connections: settings for %s"
msgstr ""
-#: ../../mod/filer.php:35
-msgid "- select -"
+#: ../../mod/connedit.php:425
+msgid ""
+"When receiving a channel introduction, any permissions provided here will be "
+"applied to the new connection automatically and the introduction approved. "
+"Leave this page if you do not wish to use this feature."
msgstr ""
-#: ../../mod/menu.php:17
-msgid "Menu updated."
+#: ../../mod/connedit.php:427
+msgid "Slide to adjust your degree of friendship"
msgstr ""
-#: ../../mod/menu.php:21
-msgid "Unable to update menu."
+#: ../../mod/connedit.php:433
+msgid "inherited"
msgstr ""
-#: ../../mod/menu.php:26
-msgid "Menu created."
+#: ../../mod/connedit.php:435
+msgid "Connection has no individual permissions!"
msgstr ""
-#: ../../mod/menu.php:30
-msgid "Unable to create menu."
+#: ../../mod/connedit.php:436
+msgid ""
+"This may be appropriate based on your <a href=\"settings\">privacy settings</"
+"a>, though you may wish to review the \"Advanced Permissions\"."
msgstr ""
-#: ../../mod/menu.php:53
-msgid "Manage Menus"
+#: ../../mod/connedit.php:438
+msgid "Profile Visibility"
msgstr ""
-#: ../../mod/menu.php:56
-msgid "Drop"
+#: ../../mod/connedit.php:439
+#, php-format
+msgid ""
+"Please choose the profile you would like to display to %s when viewing your "
+"profile securely."
msgstr ""
-#: ../../mod/menu.php:58
-msgid "Create a new menu"
+#: ../../mod/connedit.php:440
+msgid "Contact Information / Notes"
msgstr ""
-#: ../../mod/menu.php:59
-msgid "Delete this menu"
+#: ../../mod/connedit.php:441
+msgid "Edit contact notes"
msgstr ""
-#: ../../mod/menu.php:60 ../../mod/menu.php:104
-msgid "Edit menu contents"
+#: ../../mod/connedit.php:443
+msgid "Their Settings"
msgstr ""
-#: ../../mod/menu.php:61
-msgid "Edit this menu"
+#: ../../mod/connedit.php:444
+msgid "My Settings"
msgstr ""
-#: ../../mod/menu.php:76
-msgid "New Menu"
+#: ../../mod/connedit.php:446
+msgid "Forum Members"
msgstr ""
-#: ../../mod/menu.php:77 ../../mod/menu.php:105
-msgid "Menu name"
+#: ../../mod/connedit.php:447
+msgid "Soapbox"
msgstr ""
-#: ../../mod/menu.php:77 ../../mod/menu.php:105
-msgid "Must be unique, only seen by you"
+#: ../../mod/connedit.php:448
+msgid "Full Sharing (typical social network permissions)"
msgstr ""
-#: ../../mod/menu.php:78 ../../mod/menu.php:106
-msgid "Menu title"
+#: ../../mod/connedit.php:449
+msgid "Cautious Sharing "
msgstr ""
-#: ../../mod/menu.php:78 ../../mod/menu.php:106
-msgid "Menu title as seen by others"
+#: ../../mod/connedit.php:450
+msgid "Follow Only"
msgstr ""
-#: ../../mod/menu.php:93
-msgid "Menu deleted."
+#: ../../mod/connedit.php:451
+msgid "Individual Permissions"
msgstr ""
-#: ../../mod/menu.php:95
-msgid "Menu could not be deleted."
+#: ../../mod/connedit.php:452
+msgid ""
+"Some permissions may be inherited from your channel <a href=\"settings"
+"\">privacy settings</a>, which have higher priority than individual "
+"settings. Changing those inherited settings on this page will have no effect."
msgstr ""
-#: ../../mod/menu.php:101
-msgid "Edit Menu"
+#: ../../mod/connedit.php:453
+msgid "Advanced Permissions"
msgstr ""
-#: ../../mod/menu.php:103
-msgid "Add or remove entries to this menu"
+#: ../../mod/connedit.php:454
+msgid "Simple Permissions (select one and submit)"
msgstr ""
-#: ../../mod/home.php:76
+#: ../../mod/connedit.php:458
#, php-format
-msgid "Welcome to %s"
-msgstr ""
-
-#: ../../mod/message.php:19
-msgid "Check Mail"
-msgstr ""
-
-#: ../../mod/message.php:56
-msgid "Unable to lookup recipient."
-msgstr ""
-
-#: ../../mod/message.php:64
-msgid "Unable to communicate with requested channel."
-msgstr ""
-
-#: ../../mod/message.php:71
-msgid "Cannot verify requested channel."
-msgstr ""
-
-#: ../../mod/message.php:97
-msgid "Selected channel has private message restrictions. Send failed."
-msgstr ""
-
-#: ../../mod/message.php:223 ../../mod/notifications.php:101
-msgid "Messages"
-msgstr ""
-
-#: ../../mod/message.php:234
-msgid "Message deleted."
+msgid "Visit %s's profile - %s"
msgstr ""
-#: ../../mod/message.php:241
-msgid "Conversation removed."
+#: ../../mod/connedit.php:459
+msgid "Block/Unblock contact"
msgstr ""
-#: ../../mod/message.php:258
-msgid "Message recalled."
+#: ../../mod/connedit.php:460
+msgid "Ignore contact"
msgstr ""
-#: ../../mod/message.php:316
-msgid "Send Private Message"
+#: ../../mod/connedit.php:461
+msgid "Repair URL settings"
msgstr ""
-#: ../../mod/message.php:317 ../../mod/message.php:503
-msgid "To:"
+#: ../../mod/connedit.php:462
+msgid "View conversations"
msgstr ""
-#: ../../mod/message.php:322 ../../mod/message.php:505
-msgid "Subject:"
+#: ../../mod/connedit.php:464
+msgid "Delete contact"
msgstr ""
-#: ../../mod/message.php:359
-msgid "No messages."
+#: ../../mod/connedit.php:467
+msgid "Last update:"
msgstr ""
-#: ../../mod/message.php:375 ../../mod/message.php:472
-msgid "Delete message"
+#: ../../mod/connedit.php:469
+msgid "Update public posts"
msgstr ""
-#: ../../mod/message.php:377
-msgid "D, d M Y - g:i A"
+#: ../../mod/connedit.php:471
+msgid "Update now"
msgstr ""
-#: ../../mod/message.php:396
-msgid "Message not found."
+#: ../../mod/connedit.php:477
+msgid "Currently blocked"
msgstr ""
-#: ../../mod/message.php:473
-msgid "Recall message"
+#: ../../mod/connedit.php:478
+msgid "Currently ignored"
msgstr ""
-#: ../../mod/message.php:475
-msgid "Message has been recalled."
+#: ../../mod/connedit.php:479
+msgid "Currently archived"
msgstr ""
-#: ../../mod/message.php:492
-msgid "Private Conversation"
+#: ../../mod/connedit.php:480
+msgid "Currently pending"
msgstr ""
-#: ../../mod/message.php:496
-msgid "Delete conversation"
+#: ../../mod/connedit.php:481
+msgid "Hide this contact from others"
msgstr ""
-#: ../../mod/message.php:498
+#: ../../mod/connedit.php:481
msgid ""
-"No secure communications available. You <strong>may</strong> be able to "
-"respond from the sender's profile page."
-msgstr ""
-
-#: ../../mod/message.php:502
-msgid "Send Reply"
-msgstr ""
-
-#: ../../mod/hcard.php:10
-msgid "No profile"
+"Replies/likes to your public posts <strong>may</strong> still be visible"
msgstr ""
#: ../../mod/layouts.php:52
@@ -5215,150 +5294,75 @@ msgstr ""
msgid "Layout Name"
msgstr ""
-#: ../../mod/help.php:41
+#: ../../mod/help.php:43 ../../mod/help.php:49 ../../mod/help.php:55
msgid "Help:"
msgstr ""
-#: ../../mod/help.php:53 ../../index.php:226
+#: ../../mod/help.php:68 ../../index.php:223
msgid "Not Found"
msgstr ""
-#: ../../mod/rmagic.php:56
-msgid "Remote Authentication"
+#: ../../mod/help.php:71 ../../mod/page.php:83 ../../mod/display.php:100
+#: ../../index.php:226
+msgid "Page not found."
msgstr ""
-#: ../../mod/rmagic.php:57
-msgid "Enter your channel address (e.g. channel@example.com)"
+#: ../../mod/rmagic.php:38
+msgid ""
+"We encountered a problem while logging in with the OpenID you provided. "
+"Please check the correct spelling of the ID."
msgstr ""
-#: ../../mod/rmagic.php:58
-msgid "Authenticate"
+#: ../../mod/rmagic.php:38
+msgid "The error message was:"
msgstr ""
-#: ../../mod/network.php:172
-msgid "No such group"
+#: ../../mod/rmagic.php:42
+msgid "Authentication failed."
msgstr ""
-#: ../../mod/network.php:212
-msgid "Refresh"
-msgstr ""
-
-#: ../../mod/network.php:213 ../../mod/connections.php:404
-msgid "Me"
+#: ../../mod/rmagic.php:78
+msgid "Remote Authentication"
msgstr ""
-#: ../../mod/network.php:214 ../../mod/connections.php:406
-msgid "Best Friends"
+#: ../../mod/rmagic.php:79
+msgid "Enter your channel address (e.g. channel@example.com)"
msgstr ""
-#: ../../mod/network.php:216
-msgid "Co-workers"
+#: ../../mod/rmagic.php:80
+msgid "Authenticate"
msgstr ""
-#: ../../mod/network.php:217 ../../mod/connections.php:408
-msgid "Former Friends"
+#: ../../mod/page.php:35
+msgid "Invalid item."
msgstr ""
-#: ../../mod/network.php:218 ../../mod/connections.php:409
-msgid "Acquaintances"
+#: ../../mod/network.php:79
+msgid "No such group"
msgstr ""
-#: ../../mod/network.php:219
-msgid "Everybody"
+#: ../../mod/network.php:118
+msgid "Search Results For:"
msgstr ""
-#: ../../mod/network.php:234
-msgid "Search Results For:"
+#: ../../mod/network.php:172
+msgid "Collection is empty"
msgstr ""
-#: ../../mod/network.php:296
+#: ../../mod/network.php:180
msgid "Collection: "
msgstr ""
-#: ../../mod/network.php:309
+#: ../../mod/network.php:193
msgid "Connection: "
msgstr ""
-#: ../../mod/network.php:312
+#: ../../mod/network.php:196
msgid "Invalid connection."
msgstr ""
-#: ../../mod/intro.php:17 ../../mod/intro.php:100
-#: ../../mod/connections.php:355 ../../mod/connections.php:491
-#: ../../mod/notifications.php:51 ../../mod/notifications.php:162
-#: ../../mod/notifications.php:208
-msgid "Ignore"
-msgstr ""
-
-#: ../../mod/intro.php:29 ../../mod/connections.php:122
-msgid "Connection updated."
-msgstr ""
-
-#: ../../mod/intro.php:31
-msgid "Connection update failed."
-msgstr ""
-
-#: ../../mod/intro.php:56
-msgid "Introductions and Connection Requests"
-msgstr ""
-
-#: ../../mod/intro.php:67
-msgid "No pending introductions."
-msgstr ""
-
-#: ../../mod/intro.php:72
-msgid "System error. Please try again later."
-msgstr ""
-
-#: ../../mod/intro.php:95 ../../mod/connections.php:496
-#: ../../mod/notifications.php:155 ../../mod/notifications.php:202
-msgid "Hide this contact from others"
-msgstr ""
-
-#: ../../mod/intro.php:96 ../../mod/notifications.php:156
-#: ../../mod/notifications.php:203
-msgid "Post a new friend activity"
-msgstr ""
-
-#: ../../mod/intro.php:96 ../../mod/notifications.php:156
-#: ../../mod/notifications.php:203
-msgid "if applicable"
-msgstr ""
-
-#: ../../mod/intro.php:101 ../../mod/notifications.php:35
-#: ../../mod/notifications.php:163 ../../mod/notifications.php:209
-msgid "Discard"
-msgstr ""
-
-#: ../../mod/post.php:222
-msgid ""
-"Remote authentication blocked. You are logged into this site locally. Please "
-"logout and retry."
-msgstr ""
-
-#: ../../mod/post.php:251
-#, php-format
-msgid "Welcome %s. Remote authentication successful."
-msgstr ""
-
-#: ../../mod/dirsearch.php:21
-msgid "This site is not a directory server"
-msgstr ""
-
-#: ../../mod/lockview.php:34
-msgid "Remote privacy information not available."
-msgstr ""
-
-#: ../../mod/lockview.php:43
-msgid "Visible to:"
-msgstr ""
-
-#: ../../mod/magic.php:63
-msgid "Hub not found."
-msgstr ""
-
#: ../../mod/profiles.php:18 ../../mod/profiles.php:138
-#: ../../mod/profiles.php:179 ../../mod/profiles.php:486
+#: ../../mod/profiles.php:168 ../../mod/profiles.php:463
msgid "Profile not found."
msgstr ""
@@ -5378,662 +5382,768 @@ msgstr ""
msgid "Profile unavailable to clone."
msgstr ""
-#: ../../mod/profiles.php:189
+#: ../../mod/profiles.php:178
msgid "Profile Name is required."
msgstr ""
-#: ../../mod/profiles.php:317
+#: ../../mod/profiles.php:294
msgid "Marital Status"
msgstr ""
-#: ../../mod/profiles.php:321
+#: ../../mod/profiles.php:298
msgid "Romantic Partner"
msgstr ""
-#: ../../mod/profiles.php:325
+#: ../../mod/profiles.php:302
msgid "Likes"
msgstr ""
-#: ../../mod/profiles.php:329
+#: ../../mod/profiles.php:306
msgid "Dislikes"
msgstr ""
-#: ../../mod/profiles.php:333
+#: ../../mod/profiles.php:310
msgid "Work/Employment"
msgstr ""
-#: ../../mod/profiles.php:336
+#: ../../mod/profiles.php:313
msgid "Religion"
msgstr ""
-#: ../../mod/profiles.php:340
+#: ../../mod/profiles.php:317
msgid "Political Views"
msgstr ""
-#: ../../mod/profiles.php:344
+#: ../../mod/profiles.php:321
msgid "Gender"
msgstr ""
-#: ../../mod/profiles.php:348
+#: ../../mod/profiles.php:325
msgid "Sexual Preference"
msgstr ""
-#: ../../mod/profiles.php:352
+#: ../../mod/profiles.php:329
msgid "Homepage"
msgstr ""
-#: ../../mod/profiles.php:356
+#: ../../mod/profiles.php:333
msgid "Interests"
msgstr ""
-#: ../../mod/profiles.php:360
+#: ../../mod/profiles.php:337
msgid "Address"
msgstr ""
-#: ../../mod/profiles.php:367 ../../mod/pubsites.php:31
+#: ../../mod/profiles.php:344 ../../mod/pubsites.php:31
msgid "Location"
msgstr ""
-#: ../../mod/profiles.php:450
+#: ../../mod/profiles.php:427
msgid "Profile updated."
msgstr ""
-#: ../../mod/profiles.php:505
+#: ../../mod/profiles.php:482
msgid "Hide your contact/friend list from viewers of this profile?"
msgstr ""
-#: ../../mod/profiles.php:528
+#: ../../mod/profiles.php:505
msgid "Edit Profile Details"
msgstr ""
-#: ../../mod/profiles.php:530
+#: ../../mod/profiles.php:507
msgid "View this profile"
msgstr ""
-#: ../../mod/profiles.php:531
+#: ../../mod/profiles.php:508
msgid "Change Profile Photo"
msgstr ""
-#: ../../mod/profiles.php:532
+#: ../../mod/profiles.php:509
msgid "Create a new profile using these settings"
msgstr ""
-#: ../../mod/profiles.php:533
+#: ../../mod/profiles.php:510
msgid "Clone this profile"
msgstr ""
-#: ../../mod/profiles.php:534
+#: ../../mod/profiles.php:511
msgid "Delete this profile"
msgstr ""
-#: ../../mod/profiles.php:535
+#: ../../mod/profiles.php:512
msgid "Profile Name:"
msgstr ""
-#: ../../mod/profiles.php:536
+#: ../../mod/profiles.php:513
msgid "Your Full Name:"
msgstr ""
-#: ../../mod/profiles.php:537
+#: ../../mod/profiles.php:514
msgid "Title/Description:"
msgstr ""
-#: ../../mod/profiles.php:538
+#: ../../mod/profiles.php:515
msgid "Your Gender:"
msgstr ""
-#: ../../mod/profiles.php:539
+#: ../../mod/profiles.php:516
#, php-format
msgid "Birthday (%s):"
msgstr ""
-#: ../../mod/profiles.php:540
+#: ../../mod/profiles.php:517
msgid "Street Address:"
msgstr ""
-#: ../../mod/profiles.php:541
+#: ../../mod/profiles.php:518
msgid "Locality/City:"
msgstr ""
-#: ../../mod/profiles.php:542
+#: ../../mod/profiles.php:519
msgid "Postal/Zip Code:"
msgstr ""
-#: ../../mod/profiles.php:543
+#: ../../mod/profiles.php:520
msgid "Country:"
msgstr ""
-#: ../../mod/profiles.php:544
+#: ../../mod/profiles.php:521
msgid "Region/State:"
msgstr ""
-#: ../../mod/profiles.php:545
+#: ../../mod/profiles.php:522
msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
msgstr ""
-#: ../../mod/profiles.php:546
+#: ../../mod/profiles.php:523
msgid "Who: (if applicable)"
msgstr ""
-#: ../../mod/profiles.php:547
+#: ../../mod/profiles.php:524
msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
msgstr ""
-#: ../../mod/profiles.php:548
+#: ../../mod/profiles.php:525
msgid "Since [date]:"
msgstr ""
-#: ../../mod/profiles.php:550
+#: ../../mod/profiles.php:527
msgid "Homepage URL:"
msgstr ""
-#: ../../mod/profiles.php:553
+#: ../../mod/profiles.php:530
msgid "Religious Views:"
msgstr ""
-#: ../../mod/profiles.php:554
+#: ../../mod/profiles.php:531
msgid "Keywords:"
msgstr ""
-#: ../../mod/profiles.php:557
+#: ../../mod/profiles.php:534
msgid "Example: fishing photography software"
msgstr ""
-#: ../../mod/profiles.php:558
+#: ../../mod/profiles.php:535
msgid "Used in directory listings"
msgstr ""
-#: ../../mod/profiles.php:559
+#: ../../mod/profiles.php:536
msgid "Tell us about yourself..."
msgstr ""
-#: ../../mod/profiles.php:560
+#: ../../mod/profiles.php:537
msgid "Hobbies/Interests"
msgstr ""
-#: ../../mod/profiles.php:561
+#: ../../mod/profiles.php:538
msgid "Contact information and Social Networks"
msgstr ""
-#: ../../mod/profiles.php:562
+#: ../../mod/profiles.php:539
msgid "My other channels"
msgstr ""
-#: ../../mod/profiles.php:563
+#: ../../mod/profiles.php:540
msgid "Musical interests"
msgstr ""
-#: ../../mod/profiles.php:564
+#: ../../mod/profiles.php:541
msgid "Books, literature"
msgstr ""
-#: ../../mod/profiles.php:565
+#: ../../mod/profiles.php:542
msgid "Television"
msgstr ""
-#: ../../mod/profiles.php:566
+#: ../../mod/profiles.php:543
msgid "Film/dance/culture/entertainment"
msgstr ""
-#: ../../mod/profiles.php:567
+#: ../../mod/profiles.php:544
msgid "Love/romance"
msgstr ""
-#: ../../mod/profiles.php:568
+#: ../../mod/profiles.php:545
msgid "Work/employment"
msgstr ""
-#: ../../mod/profiles.php:569
+#: ../../mod/profiles.php:546
msgid "School/education"
msgstr ""
-#: ../../mod/profiles.php:574
+#: ../../mod/profiles.php:551
msgid ""
"This is your <strong>public</strong> profile.<br />It <strong>may</strong> "
"be visible to anybody using the internet."
msgstr ""
-#: ../../mod/profiles.php:584 ../../mod/directory.php:160
-msgid "Age: "
+#: ../../mod/profiles.php:600
+msgid "Edit/Manage Profiles"
msgstr ""
-#: ../../mod/profiles.php:623
-msgid "Edit/Manage Profiles"
+#: ../../mod/profiles.php:601
+msgid "Add profile things"
msgstr ""
-#: ../../mod/new_channel.php:107
-msgid "Add a Channel"
+#: ../../mod/profiles.php:602
+msgid "Include desirable objects in your profile"
msgstr ""
-#: ../../mod/new_channel.php:108
-msgid ""
-"A channel is your own collection of related web pages. A channel can be used "
-"to hold social network profiles, blogs, conversation groups and forums, "
-"celebrity pages, and much more. You may create as many channels as your "
-"service provider allows."
+#: ../../mod/follow.php:25
+msgid "Channel added."
msgstr ""
-#: ../../mod/new_channel.php:111
+#: ../../mod/post.php:226
msgid ""
-"Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation "
-"Group\" "
+"Remote authentication blocked. You are logged into this site locally. Please "
+"logout and retry."
msgstr ""
-#: ../../mod/new_channel.php:112
-msgid "Choose a short nickname"
+#: ../../mod/post.php:256 ../../mod/openid.php:70 ../../mod/openid.php:175
+#, php-format
+msgid "Welcome %s. Remote authentication successful."
msgstr ""
-#: ../../mod/new_channel.php:113
-msgid ""
-"Your nickname will be used to create an easily remembered channel address "
-"(like an email address) which you can share with others."
+#: ../../mod/dirsearch.php:21
+msgid "This site is not a directory server"
msgstr ""
-#: ../../mod/new_channel.php:114
+#: ../../mod/sources.php:32
+msgid "Failed to create source. No channel selected."
+msgstr ""
+
+#: ../../mod/sources.php:45
+msgid "Source created."
+msgstr ""
+
+#: ../../mod/sources.php:57
+msgid "Source updated."
+msgstr ""
+
+#: ../../mod/sources.php:82
+msgid "*"
+msgstr ""
+
+#: ../../mod/sources.php:89
+msgid "Manage remote sources of content for your channel."
+msgstr ""
+
+#: ../../mod/sources.php:90 ../../mod/sources.php:100
+msgid "New Source"
+msgstr ""
+
+#: ../../mod/sources.php:101 ../../mod/sources.php:133
msgid ""
-"Or <a href=\"import\">import an existing channel</a> from another location"
+"Import all or selected content from the following channel into this channel "
+"and distribute it according to your channel settings."
msgstr ""
-#: ../../mod/connections.php:67
-msgid "Could not access contact record."
+#: ../../mod/sources.php:102 ../../mod/sources.php:134
+msgid "Only import content with these words (one per line)"
msgstr ""
-#: ../../mod/connections.php:81
-msgid "Could not locate selected profile."
+#: ../../mod/sources.php:102 ../../mod/sources.php:134
+msgid "Leave blank to import all public content"
msgstr ""
-#: ../../mod/connections.php:124
-msgid "Failed to update connection record."
+#: ../../mod/sources.php:103 ../../mod/sources.php:137
+#: ../../mod/new_channel.php:110
+msgid "Channel Name"
msgstr ""
-#: ../../mod/connections.php:219
-msgid "Could not access address book record."
+#: ../../mod/sources.php:123 ../../mod/sources.php:150
+msgid "Source not found."
msgstr ""
-#: ../../mod/connections.php:233
-msgid "Refresh failed - channel is currently unavailable."
+#: ../../mod/sources.php:130
+msgid "Edit Source"
msgstr ""
-#: ../../mod/connections.php:240
-msgid "Channel has been unblocked"
+#: ../../mod/sources.php:131
+msgid "Delete Source"
msgstr ""
-#: ../../mod/connections.php:241
-msgid "Channel has been blocked"
+#: ../../mod/sources.php:158
+msgid "Source removed"
msgstr ""
-#: ../../mod/connections.php:245 ../../mod/connections.php:257
-#: ../../mod/connections.php:269 ../../mod/connections.php:281
-#: ../../mod/connections.php:296
-msgid "Unable to set address book parameters."
+#: ../../mod/sources.php:160
+msgid "Unable to remove source."
msgstr ""
-#: ../../mod/connections.php:252
-msgid "Channel has been unignored"
+#: ../../mod/lockview.php:34
+msgid "Remote privacy information not available."
msgstr ""
-#: ../../mod/connections.php:253
-msgid "Channel has been ignored"
+#: ../../mod/lockview.php:43
+msgid "Visible to:"
msgstr ""
-#: ../../mod/connections.php:264
-msgid "Channel has been unarchived"
+#: ../../mod/magic.php:70
+msgid "Hub not found."
msgstr ""
-#: ../../mod/connections.php:265
-msgid "Channel has been archived"
+#: ../../mod/setup.php:161
+msgid "Red Matrix Server - Setup"
msgstr ""
-#: ../../mod/connections.php:276
-msgid "Channel has been unhidden"
+#: ../../mod/setup.php:167
+msgid "Could not connect to database."
msgstr ""
-#: ../../mod/connections.php:277
-msgid "Channel has been hidden"
+#: ../../mod/setup.php:171
+msgid ""
+"Could not connect to specified site URL. Possible SSL certificate or DNS "
+"issue."
msgstr ""
-#: ../../mod/connections.php:291
-msgid "Channel has been approved"
+#: ../../mod/setup.php:176
+msgid "Could not create table."
msgstr ""
-#: ../../mod/connections.php:292
-msgid "Channel has been unapproved"
+#: ../../mod/setup.php:182
+msgid "Your site database has been installed."
msgstr ""
-#: ../../mod/connections.php:310
-msgid "Contact has been removed."
+#: ../../mod/setup.php:187
+msgid ""
+"You may need to import the file \"install/database.sql\" manually using "
+"phpmyadmin or mysql."
msgstr ""
-#: ../../mod/connections.php:330
-#, php-format
-msgid "View %s's profile"
+#: ../../mod/setup.php:188 ../../mod/setup.php:257 ../../mod/setup.php:609
+msgid "Please see the file \"install/INSTALL.txt\"."
msgstr ""
-#: ../../mod/connections.php:334
-msgid "Refresh Permissions"
+#: ../../mod/setup.php:254
+msgid "System check"
msgstr ""
-#: ../../mod/connections.php:337
-msgid "Fetch updated permissions"
+#: ../../mod/setup.php:259
+msgid "Check again"
msgstr ""
-#: ../../mod/connections.php:341
-msgid "Recent Activity"
+#: ../../mod/setup.php:281
+msgid "Database connection"
msgstr ""
-#: ../../mod/connections.php:344
-msgid "View recent posts and comments"
+#: ../../mod/setup.php:282
+msgid ""
+"In order to install Red Matrix we need to know how to connect to your "
+"database."
msgstr ""
-#: ../../mod/connections.php:351
-msgid "Block or Unblock this connection"
+#: ../../mod/setup.php:283
+msgid ""
+"Please contact your hosting provider or site administrator if you have "
+"questions about these settings."
msgstr ""
-#: ../../mod/connections.php:355 ../../mod/connections.php:491
-msgid "Unignore"
+#: ../../mod/setup.php:284
+msgid ""
+"The database you specify below should already exist. If it does not, please "
+"create it before continuing."
msgstr ""
-#: ../../mod/connections.php:358
-msgid "Ignore or Unignore this connection"
+#: ../../mod/setup.php:288
+msgid "Database Server Name"
msgstr ""
-#: ../../mod/connections.php:361
-msgid "Unarchive"
+#: ../../mod/setup.php:288
+msgid "Default is localhost"
msgstr ""
-#: ../../mod/connections.php:361
-msgid "Archive"
+#: ../../mod/setup.php:289
+msgid "Database Port"
msgstr ""
-#: ../../mod/connections.php:364
-msgid "Archive or Unarchive this connection"
+#: ../../mod/setup.php:289
+msgid "Communication port number - use 0 for default"
msgstr ""
-#: ../../mod/connections.php:367
-msgid "Unhide"
+#: ../../mod/setup.php:290
+msgid "Database Login Name"
msgstr ""
-#: ../../mod/connections.php:367
-msgid "Hide"
+#: ../../mod/setup.php:291
+msgid "Database Login Password"
msgstr ""
-#: ../../mod/connections.php:370
-msgid "Hide or Unhide this connection"
+#: ../../mod/setup.php:292
+msgid "Database Name"
msgstr ""
-#: ../../mod/connections.php:377
-msgid "Delete this connection"
+#: ../../mod/setup.php:294 ../../mod/setup.php:336
+msgid "Site administrator email address"
msgstr ""
-#: ../../mod/connections.php:410
-msgid "Unknown"
+#: ../../mod/setup.php:294 ../../mod/setup.php:336
+msgid ""
+"Your account email address must match this in order to use the web admin "
+"panel."
msgstr ""
-#: ../../mod/connections.php:420 ../../mod/connections.php:449
-msgid "Approve this connection"
+#: ../../mod/setup.php:295 ../../mod/setup.php:338
+msgid "Website URL"
msgstr ""
-#: ../../mod/connections.php:420
-msgid "Accept connection to allow communication"
+#: ../../mod/setup.php:295 ../../mod/setup.php:338
+msgid "Please use SSL (https) URL if available."
msgstr ""
-#: ../../mod/connections.php:436
-msgid "Automatic Permissions Settings"
+#: ../../mod/setup.php:298 ../../mod/setup.php:341
+msgid "Please select a default timezone for your website"
msgstr ""
-#: ../../mod/connections.php:436
-#, php-format
-msgid "Connections: settings for %s"
+#: ../../mod/setup.php:325
+msgid "Site settings"
msgstr ""
-#: ../../mod/connections.php:440
+#: ../../mod/setup.php:384
+msgid "Could not find a command line version of PHP in the web server PATH."
+msgstr ""
+
+#: ../../mod/setup.php:385
msgid ""
-"When receiving a channel introduction, any permissions provided here will be "
-"applied to the new connection automatically and the introduction approved. "
-"Leave this page if you do not wish to use this feature."
+"If you don't have a command line version of PHP installed on server, you "
+"will not be able to run background polling via cron."
msgstr ""
-#: ../../mod/connections.php:442
-msgid "Slide to adjust your degree of friendship"
+#: ../../mod/setup.php:389
+msgid "PHP executable path"
msgstr ""
-#: ../../mod/connections.php:448
-msgid "inherited"
+#: ../../mod/setup.php:389
+msgid ""
+"Enter full path to php executable. You can leave this blank to continue the "
+"installation."
msgstr ""
-#: ../../mod/connections.php:450
-msgid "Connection has no individual permissions!"
+#: ../../mod/setup.php:394
+msgid "Command line PHP"
msgstr ""
-#: ../../mod/connections.php:451
+#: ../../mod/setup.php:403
msgid ""
-"This may be appropriate based on your <a href=\"settings\">privacy settings</"
-"a>, though you may wish to review the \"Advanced Permissions\"."
+"The command line version of PHP on your system does not have "
+"\"register_argc_argv\" enabled."
msgstr ""
-#: ../../mod/connections.php:453
-msgid "Profile Visibility"
+#: ../../mod/setup.php:404
+msgid "This is required for message delivery to work."
msgstr ""
-#: ../../mod/connections.php:454
-#, php-format
+#: ../../mod/setup.php:406
+msgid "PHP register_argc_argv"
+msgstr ""
+
+#: ../../mod/setup.php:427
msgid ""
-"Please choose the profile you would like to display to %s when viewing your "
-"profile securely."
+"Error: the \"openssl_pkey_new\" function on this system is not able to "
+"generate encryption keys"
msgstr ""
-#: ../../mod/connections.php:455
-msgid "Contact Information / Notes"
+#: ../../mod/setup.php:428
+msgid ""
+"If running under Windows, please see \"http://www.php.net/manual/en/openssl."
+"installation.php\"."
msgstr ""
-#: ../../mod/connections.php:456
-msgid "Edit contact notes"
+#: ../../mod/setup.php:430
+msgid "Generate encryption keys"
msgstr ""
-#: ../../mod/connections.php:458
-msgid "Their Settings"
+#: ../../mod/setup.php:437
+msgid "libCurl PHP module"
msgstr ""
-#: ../../mod/connections.php:459
-msgid "My Settings"
+#: ../../mod/setup.php:438
+msgid "GD graphics PHP module"
msgstr ""
-#: ../../mod/connections.php:461
-msgid "Forum Members"
+#: ../../mod/setup.php:439
+msgid "OpenSSL PHP module"
msgstr ""
-#: ../../mod/connections.php:462
-msgid "Soapbox"
+#: ../../mod/setup.php:440
+msgid "mysqli PHP module"
+msgstr ""
+
+#: ../../mod/setup.php:441
+msgid "mb_string PHP module"
msgstr ""
-#: ../../mod/connections.php:463
-msgid "Full Sharing"
+#: ../../mod/setup.php:442
+msgid "mcrypt PHP module"
msgstr ""
-#: ../../mod/connections.php:464
-msgid "Cautious Sharing"
+#: ../../mod/setup.php:447 ../../mod/setup.php:449
+msgid "Apache mod_rewrite module"
msgstr ""
-#: ../../mod/connections.php:465
-msgid "Follow Only"
+#: ../../mod/setup.php:447
+msgid ""
+"Error: Apache webserver mod-rewrite module is required but not installed."
msgstr ""
-#: ../../mod/connections.php:466
-msgid "Individual Permissions"
+#: ../../mod/setup.php:453 ../../mod/setup.php:456
+msgid "proc_open"
msgstr ""
-#: ../../mod/connections.php:467
+#: ../../mod/setup.php:453
msgid ""
-"Some permissions may be inherited from your channel <a href=\"settings"
-"\">privacy settings</a>, which have higher priority. Changing those "
-"inherited settings on this page will have no effect."
+"Error: proc_open is required but is either not installed or has been "
+"disabled in php.ini"
msgstr ""
-#: ../../mod/connections.php:468
-msgid "Advanced Permissions"
+#: ../../mod/setup.php:461
+msgid "Error: libCURL PHP module required but not installed."
msgstr ""
-#: ../../mod/connections.php:469
-msgid "Quick Links"
+#: ../../mod/setup.php:465
+msgid ""
+"Error: GD graphics PHP module with JPEG support required but not installed."
msgstr ""
-#: ../../mod/connections.php:473
-#, php-format
-msgid "Visit %s's profile - %s"
+#: ../../mod/setup.php:469
+msgid "Error: openssl PHP module required but not installed."
msgstr ""
-#: ../../mod/connections.php:474
-msgid "Block/Unblock contact"
+#: ../../mod/setup.php:473
+msgid "Error: mysqli PHP module required but not installed."
msgstr ""
-#: ../../mod/connections.php:475
-msgid "Ignore contact"
+#: ../../mod/setup.php:477
+msgid "Error: mb_string PHP module required but not installed."
msgstr ""
-#: ../../mod/connections.php:476
-msgid "Repair URL settings"
+#: ../../mod/setup.php:481
+msgid "Error: mcrypt PHP module required but not installed."
msgstr ""
-#: ../../mod/connections.php:477
-msgid "View conversations"
+#: ../../mod/setup.php:497
+msgid ""
+"The web installer needs to be able to create a file called \".htconfig.php\" "
+"in the top folder of your web server and it is unable to do so."
msgstr ""
-#: ../../mod/connections.php:479
-msgid "Delete contact"
+#: ../../mod/setup.php:498
+msgid ""
+"This is most often a permission setting, as the web server may not be able "
+"to write files in your folder - even if you can."
msgstr ""
-#: ../../mod/connections.php:482
-msgid "Last update:"
+#: ../../mod/setup.php:499
+msgid ""
+"At the end of this procedure, we will give you a text to save in a file "
+"named .htconfig.php in your Red top folder."
msgstr ""
-#: ../../mod/connections.php:484
-msgid "Update public posts"
+#: ../../mod/setup.php:500
+msgid ""
+"You can alternatively skip this procedure and perform a manual installation. "
+"Please see the file \"install/INSTALL.txt\" for instructions."
msgstr ""
-#: ../../mod/connections.php:486
-msgid "Update now"
+#: ../../mod/setup.php:503
+msgid ".htconfig.php is writable"
msgstr ""
-#: ../../mod/connections.php:492
-msgid "Currently blocked"
+#: ../../mod/setup.php:513
+msgid ""
+"Red uses the Smarty3 template engine to render its web views. Smarty3 "
+"compiles templates to PHP to speed up rendering."
msgstr ""
-#: ../../mod/connections.php:493
-msgid "Currently ignored"
+#: ../../mod/setup.php:514
+msgid ""
+"In order to store these compiled templates, the web server needs to have "
+"write access to the directory view/tpl/smarty3/ under the Red top level "
+"folder."
msgstr ""
-#: ../../mod/connections.php:494
-msgid "Currently archived"
+#: ../../mod/setup.php:515 ../../mod/setup.php:533
+msgid ""
+"Please ensure that the user that your web server runs as (e.g. www-data) has "
+"write access to this folder."
msgstr ""
-#: ../../mod/connections.php:495
-msgid "Currently pending"
+#: ../../mod/setup.php:516
+msgid ""
+"Note: as a security measure, you should give the web server write access to "
+"view/tpl/smarty3/ only--not the template files (.tpl) that it contains."
msgstr ""
-#: ../../mod/connections.php:496
+#: ../../mod/setup.php:519
+msgid "view/tpl/smarty3 is writable"
+msgstr ""
+
+#: ../../mod/setup.php:532
msgid ""
-"Replies/likes to your public posts <strong>may</strong> still be visible"
+"Red uses the store directory to save uploaded files. The web server needs to "
+"have write access to the store directory under the Red top level folder"
msgstr ""
-#: ../../mod/connections.php:532 ../../mod/connections.php:604
-msgid "Blocked"
+#: ../../mod/setup.php:536
+msgid "store is writable"
msgstr ""
-#: ../../mod/connections.php:537 ../../mod/connections.php:611
-msgid "Ignored"
+#: ../../mod/setup.php:551
+msgid "SSL certificate validation"
msgstr ""
-#: ../../mod/connections.php:542 ../../mod/connections.php:625
-msgid "Hidden"
+#: ../../mod/setup.php:551
+msgid ""
+"SSL certificate cannot be validated. Fix certificate or disable https access "
+"to this site."
msgstr ""
-#: ../../mod/connections.php:547 ../../mod/connections.php:618
-msgid "Archived"
+#: ../../mod/setup.php:558
+msgid ""
+"Url rewrite in .htaccess is not working. Check your server configuration."
msgstr ""
-#: ../../mod/connections.php:558
-msgid "All"
+#: ../../mod/setup.php:560
+msgid "Url rewrite is working"
msgstr ""
-#: ../../mod/connections.php:579
-msgid "Suggestions"
+#: ../../mod/setup.php:570
+msgid ""
+"The database configuration file \".htconfig.php\" could not be written. "
+"Please use the enclosed text to create a configuration file in your web "
+"server root."
msgstr ""
-#: ../../mod/connections.php:582
-msgid "Suggest new connections"
+#: ../../mod/setup.php:594
+msgid "Errors encountered creating database tables."
msgstr ""
-#: ../../mod/connections.php:588
-msgid "Show pending (new) connections"
+#: ../../mod/setup.php:607
+msgid "<h1>What next</h1>"
msgstr ""
-#: ../../mod/connections.php:591
-msgid "All Connections"
+#: ../../mod/setup.php:608
+msgid ""
+"IMPORTANT: You will need to [manually] setup a scheduled task for the poller."
msgstr ""
-#: ../../mod/connections.php:594
-msgid "Show all connections"
+#: ../../mod/siteinfo.php:57
+#, php-format
+msgid "Version %s"
msgstr ""
-#: ../../mod/connections.php:597
-msgid "Unblocked"
+#: ../../mod/siteinfo.php:76
+msgid "Installed plugins/addons/apps:"
msgstr ""
-#: ../../mod/connections.php:600
-msgid "Only show unblocked connections"
+#: ../../mod/siteinfo.php:89
+msgid "No installed plugins/addons/apps"
msgstr ""
-#: ../../mod/connections.php:607
-msgid "Only show blocked connections"
+#: ../../mod/siteinfo.php:93
+msgid "Project Donations"
msgstr ""
-#: ../../mod/connections.php:614
-msgid "Only show ignored connections"
+#: ../../mod/siteinfo.php:94
+msgid ""
+"<p>The Red Matrix is provided for you by volunteers working in their spare "
+"time. Your support will help us to build a better, freer, and privacy "
+"respecting web. Select the following option for a one-time donation of your "
+"choosing</p>"
msgstr ""
-#: ../../mod/connections.php:621
-msgid "Only show archived connections"
+#: ../../mod/siteinfo.php:95
+msgid "<p>or</p>"
msgstr ""
-#: ../../mod/connections.php:628
-msgid "Only show hidden connections"
+#: ../../mod/siteinfo.php:96
+msgid "Recurring Donation Options"
msgstr ""
-#: ../../mod/connections.php:670
-#, php-format
-msgid "%1$s [%2$s]"
+#: ../../mod/siteinfo.php:115
+msgid "Red"
msgstr ""
-#: ../../mod/connections.php:671
-msgid "Edit contact"
+#: ../../mod/siteinfo.php:116
+msgid ""
+"This is a hub of the Red Matrix - a global cooperative network of "
+"decentralised privacy enhanced websites."
msgstr ""
-#: ../../mod/connections.php:694
-msgid "Search your connections"
+#: ../../mod/siteinfo.php:119
+msgid "Running at web location"
msgstr ""
-#: ../../mod/connections.php:695
-msgid "Finding: "
+#: ../../mod/siteinfo.php:120
+msgid ""
+"Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more "
+"about the Red Matrix."
msgstr ""
-#: ../../mod/filestorage.php:35
-msgid "Permission Denied."
+#: ../../mod/siteinfo.php:121
+msgid "Bug reports and issues: please visit"
msgstr ""
-#: ../../mod/filestorage.php:42
-msgid "Permission denied. VS."
+#: ../../mod/siteinfo.php:124
+msgid ""
+"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"
msgstr ""
-#: ../../mod/filestorage.php:79
-msgid "Download"
+#: ../../mod/siteinfo.php:126
+msgid "Site Administrators"
msgstr ""
-#: ../../mod/filestorage.php:84
-msgid "Used: "
+#: ../../mod/new_channel.php:107
+msgid "Add a Channel"
msgstr ""
-#: ../../mod/filestorage.php:86
-msgid "Limit: "
+#: ../../mod/new_channel.php:108
+msgid ""
+"A channel is your own collection of related web pages. A channel can be used "
+"to hold social network profiles, blogs, conversation groups and forums, "
+"celebrity pages, and much more. You may create as many channels as your "
+"service provider allows."
+msgstr ""
+
+#: ../../mod/new_channel.php:111
+msgid ""
+"Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation "
+"Group\" "
+msgstr ""
+
+#: ../../mod/new_channel.php:112
+msgid "Choose a short nickname"
+msgstr ""
+
+#: ../../mod/new_channel.php:113
+msgid ""
+"Your nickname will be used to create an easily remembered channel address "
+"(like an email address) which you can share with others."
+msgstr ""
+
+#: ../../mod/new_channel.php:114
+msgid ""
+"Or <a href=\"import\">import an existing channel</a> from another location"
msgstr ""
#: ../../mod/lostpass.php:15
@@ -6060,7 +6170,7 @@ msgid ""
"Password reset failed."
msgstr ""
-#: ../../mod/lostpass.php:85 ../../boot.php:1450
+#: ../../mod/lostpass.php:85 ../../boot.php:1436
msgid "Password Reset"
msgstr ""
@@ -6186,32 +6296,32 @@ msgstr ""
msgid "Make this hub my primary location"
msgstr ""
-#: ../../mod/manage.php:63
+#: ../../mod/manage.php:64
#, php-format
msgid "You have created %1$.0f of %2$.0f allowed channels."
msgstr ""
-#: ../../mod/manage.php:71
+#: ../../mod/manage.php:72
msgid "Create a new channel"
msgstr ""
-#: ../../mod/manage.php:76
+#: ../../mod/manage.php:77
msgid "Channel Manager"
msgstr ""
-#: ../../mod/manage.php:77
+#: ../../mod/manage.php:78
msgid "Current Channel"
msgstr ""
-#: ../../mod/manage.php:79
+#: ../../mod/manage.php:80
msgid "Attach to one of your channels by selecting it."
msgstr ""
-#: ../../mod/manage.php:80
+#: ../../mod/manage.php:81
msgid "Default Channel"
msgstr ""
-#: ../../mod/manage.php:81
+#: ../../mod/manage.php:82
msgid "Make Default"
msgstr ""
@@ -6239,325 +6349,265 @@ msgstr ""
msgid "No matches"
msgstr ""
-#: ../../mod/crepair.php:102
-msgid "Contact settings applied."
+#: ../../mod/zfinger.php:23
+msgid "invalid target signature"
msgstr ""
-#: ../../mod/crepair.php:104
-msgid "Contact update failed."
+#: ../../mod/mail.php:33
+msgid "Unable to lookup recipient."
msgstr ""
-#: ../../mod/crepair.php:129 ../../mod/fsuggest.php:20
-#: ../../mod/fsuggest.php:92
-msgid "Contact not found."
+#: ../../mod/mail.php:41
+msgid "Unable to communicate with requested channel."
msgstr ""
-#: ../../mod/crepair.php:135
-msgid "Repair Contact Settings"
+#: ../../mod/mail.php:48
+msgid "Cannot verify requested channel."
msgstr ""
-#: ../../mod/crepair.php:137
-msgid ""
-"<strong>WARNING: This is highly advanced</strong> and if you enter incorrect "
-"information your communications with this contact may stop working."
+#: ../../mod/mail.php:74
+msgid "Selected channel has private message restrictions. Send failed."
msgstr ""
-#: ../../mod/crepair.php:138
-msgid ""
-"Please use your browser 'Back' button <strong>now</strong> if you are "
-"uncertain what to do on this page."
+#: ../../mod/mail.php:121 ../../mod/message.php:31
+msgid "Messages"
msgstr ""
-#: ../../mod/crepair.php:144
-msgid "Return to contact editor"
+#: ../../mod/mail.php:132
+msgid "Message deleted."
msgstr ""
-#: ../../mod/crepair.php:149
-msgid "Account Nickname"
+#: ../../mod/mail.php:149
+msgid "Message recalled."
msgstr ""
-#: ../../mod/crepair.php:150
-msgid "@Tagname - overrides Name/Nickname"
+#: ../../mod/mail.php:206
+msgid "Send Private Message"
msgstr ""
-#: ../../mod/crepair.php:151
-msgid "Account URL"
+#: ../../mod/mail.php:207 ../../mod/mail.php:323
+msgid "To:"
msgstr ""
-#: ../../mod/crepair.php:152
-msgid "Friend Request URL"
+#: ../../mod/mail.php:212 ../../mod/mail.php:325
+msgid "Subject:"
msgstr ""
-#: ../../mod/crepair.php:153
-msgid "Friend Confirm URL"
+#: ../../mod/mail.php:249
+msgid "Message not found."
msgstr ""
-#: ../../mod/crepair.php:154
-msgid "Notification Endpoint URL"
+#: ../../mod/mail.php:292 ../../mod/message.php:72
+msgid "Delete message"
msgstr ""
-#: ../../mod/crepair.php:155
-msgid "Poll/Feed URL"
+#: ../../mod/mail.php:293
+msgid "Recall message"
msgstr ""
-#: ../../mod/crepair.php:156
-msgid "New photo from this URL"
+#: ../../mod/mail.php:295
+msgid "Message has been recalled."
msgstr ""
-#: ../../mod/zfinger.php:23
-msgid "invalid target signature"
+#: ../../mod/mail.php:312
+msgid "Private Conversation"
msgstr ""
-#: ../../mod/follow.php:25
-msgid "Channel added."
+#: ../../mod/mail.php:316
+msgid "Delete conversation"
msgstr ""
-#: ../../mod/editlayout.php:36 ../../mod/editwebpage.php:30
-#: ../../mod/editpost.php:20 ../../mod/editblock.php:36
-msgid "Item not found"
+#: ../../mod/mail.php:318
+msgid ""
+"No secure communications available. You <strong>may</strong> be able to "
+"respond from the sender's profile page."
msgstr ""
-#: ../../mod/editlayout.php:68
-msgid "Edit Layout"
+#: ../../mod/mail.php:322
+msgid "Send Reply"
msgstr ""
-#: ../../mod/editlayout.php:104 ../../mod/editwebpage.php:123
-#: ../../mod/editpost.php:101 ../../mod/editblock.php:118
-msgid "Insert YouTube video"
+#: ../../mod/openid.php:26
+msgid "OpenID protocol error. No ID returned."
msgstr ""
-#: ../../mod/editlayout.php:105 ../../mod/editwebpage.php:124
-#: ../../mod/editpost.php:102 ../../mod/editblock.php:119
-msgid "Insert Vorbis [.ogg] video"
+#: ../../mod/editlayout.php:72
+msgid "Edit Layout"
msgstr ""
-#: ../../mod/editlayout.php:106 ../../mod/editwebpage.php:125
-#: ../../mod/editpost.php:103 ../../mod/editblock.php:120
-msgid "Insert Vorbis [.ogg] audio"
+#: ../../mod/editlayout.php:82
+msgid "Delete layout?"
msgstr ""
-#: ../../mod/editlayout.php:140
+#: ../../mod/editlayout.php:147
msgid "Delete Layout"
msgstr ""
-#: ../../mod/profile_photo.php:54
+#: ../../mod/profile_photo.php:44
msgid "Image uploaded but image cropping failed."
msgstr ""
-#: ../../mod/profile_photo.php:107
+#: ../../mod/profile_photo.php:97
msgid "Image resize failed."
msgstr ""
-#: ../../mod/profile_photo.php:151
+#: ../../mod/profile_photo.php:141
msgid ""
"Shift-reload the page or clear browser cache if the new photo does not "
"display immediately."
msgstr ""
-#: ../../mod/profile_photo.php:173
+#: ../../mod/profile_photo.php:163
#, php-format
msgid "Image exceeds size limit of %d"
msgstr ""
-#: ../../mod/profile_photo.php:182
+#: ../../mod/profile_photo.php:172
msgid "Unable to process image."
msgstr ""
-#: ../../mod/profile_photo.php:224 ../../mod/profile_photo.php:272
+#: ../../mod/profile_photo.php:214 ../../mod/profile_photo.php:262
msgid "Photo not available."
msgstr ""
-#: ../../mod/profile_photo.php:291
+#: ../../mod/profile_photo.php:281
msgid "Upload File:"
msgstr ""
-#: ../../mod/profile_photo.php:292
+#: ../../mod/profile_photo.php:282
msgid "Select a profile:"
msgstr ""
-#: ../../mod/profile_photo.php:293
+#: ../../mod/profile_photo.php:283
msgid "Upload Profile Photo"
msgstr ""
-#: ../../mod/profile_photo.php:294
+#: ../../mod/profile_photo.php:284
msgid "Upload"
msgstr ""
-#: ../../mod/profile_photo.php:298
+#: ../../mod/profile_photo.php:288
msgid "skip this step"
msgstr ""
-#: ../../mod/profile_photo.php:298
+#: ../../mod/profile_photo.php:288
msgid "select a photo from your photo albums"
msgstr ""
-#: ../../mod/profile_photo.php:312
+#: ../../mod/profile_photo.php:302
msgid "Crop Image"
msgstr ""
-#: ../../mod/profile_photo.php:313
+#: ../../mod/profile_photo.php:303
msgid "Please adjust the image cropping for optimum viewing."
msgstr ""
-#: ../../mod/profile_photo.php:315
+#: ../../mod/profile_photo.php:305
msgid "Done Editing"
msgstr ""
-#: ../../mod/profile_photo.php:350
+#: ../../mod/profile_photo.php:340
msgid "Image uploaded successfully."
msgstr ""
-#: ../../mod/profile_photo.php:352
+#: ../../mod/profile_photo.php:342
msgid "Image upload failed."
msgstr ""
-#: ../../mod/profile_photo.php:361
+#: ../../mod/profile_photo.php:351
#, php-format
msgid "Image size reduction [%s] failed."
msgstr ""
-#: ../../mod/editwebpage.php:87
-msgid "Edit Webpage"
-msgstr ""
-
-#: ../../mod/editwebpage.php:162
-msgid "Delete Webpage"
-msgstr ""
-
-#: ../../mod/notifications.php:26
-msgid "Invalid request identifier."
-msgstr ""
-
-#: ../../mod/notifications.php:76
-msgid "System"
-msgstr ""
-
-#: ../../mod/notifications.php:96
-msgid "Introductions"
-msgstr ""
-
-#: ../../mod/notifications.php:121
-msgid "Show Ignored Requests"
-msgstr ""
-
-#: ../../mod/notifications.php:121
-msgid "Hide Ignored Requests"
-msgstr ""
-
-#: ../../mod/notifications.php:147 ../../mod/notifications.php:193
-msgid "Notification type: "
+#: ../../mod/connections.php:191 ../../mod/connections.php:263
+msgid "Blocked"
msgstr ""
-#: ../../mod/notifications.php:148
-msgid "Friend Suggestion"
+#: ../../mod/connections.php:196 ../../mod/connections.php:270
+msgid "Ignored"
msgstr ""
-#: ../../mod/notifications.php:150
-#, php-format
-msgid "suggested by %s"
+#: ../../mod/connections.php:201 ../../mod/connections.php:284
+msgid "Hidden"
msgstr ""
-#: ../../mod/notifications.php:179
-msgid "Claims to be known to you: "
+#: ../../mod/connections.php:206 ../../mod/connections.php:277
+msgid "Archived"
msgstr ""
-#: ../../mod/notifications.php:179
-msgid "yes"
+#: ../../mod/connections.php:217
+msgid "All"
msgstr ""
-#: ../../mod/notifications.php:179
-msgid "no"
+#: ../../mod/connections.php:241
+msgid "Suggest new connections"
msgstr ""
-#: ../../mod/notifications.php:186
-msgid "Approve as: "
+#: ../../mod/connections.php:247
+msgid "Show pending (new) connections"
msgstr ""
-#: ../../mod/notifications.php:187
-msgid "Friend"
+#: ../../mod/connections.php:253
+msgid "Show all connections"
msgstr ""
-#: ../../mod/notifications.php:188
-msgid "Sharer"
+#: ../../mod/connections.php:256
+msgid "Unblocked"
msgstr ""
-#: ../../mod/notifications.php:188
-msgid "Fan/Admirer"
+#: ../../mod/connections.php:259
+msgid "Only show unblocked connections"
msgstr ""
-#: ../../mod/notifications.php:194
-msgid "Friend/Connect Request"
+#: ../../mod/connections.php:266
+msgid "Only show blocked connections"
msgstr ""
-#: ../../mod/notifications.php:194
-msgid "New Follower"
+#: ../../mod/connections.php:273
+msgid "Only show ignored connections"
msgstr ""
-#: ../../mod/notifications.php:215
-msgid "No introductions."
+#: ../../mod/connections.php:280
+msgid "Only show archived connections"
msgstr ""
-#: ../../mod/notifications.php:257 ../../mod/notifications.php:382
-#: ../../mod/notifications.php:465
-#, php-format
-msgid "%s liked %s's post"
+#: ../../mod/connections.php:287
+msgid "Only show hidden connections"
msgstr ""
-#: ../../mod/notifications.php:266 ../../mod/notifications.php:391
-#: ../../mod/notifications.php:474
+#: ../../mod/connections.php:331
#, php-format
-msgid "%s disliked %s's post"
+msgid "%1$s [%2$s]"
msgstr ""
-#: ../../mod/notifications.php:280 ../../mod/notifications.php:405
-#: ../../mod/notifications.php:488
-#, php-format
-msgid "%s is now friends with %s"
+#: ../../mod/connections.php:332
+msgid "Edit contact"
msgstr ""
-#: ../../mod/notifications.php:287 ../../mod/notifications.php:412
-#, php-format
-msgid "%s created a new post"
+#: ../../mod/connections.php:355
+msgid "Search your connections"
msgstr ""
-#: ../../mod/notifications.php:288 ../../mod/notifications.php:413
-#: ../../mod/notifications.php:497
-#, php-format
-msgid "%s commented on %s's post"
+#: ../../mod/connections.php:356
+msgid "Finding: "
msgstr ""
-#: ../../mod/notifications.php:302
-msgid "No more network notifications."
+#: ../../mod/notifications.php:26
+msgid "Invalid request identifier."
msgstr ""
-#: ../../mod/notifications.php:306
-msgid "Network Notifications"
+#: ../../mod/notifications.php:35
+msgid "Discard"
msgstr ""
-#: ../../mod/notifications.php:332 ../../mod/notify.php:54
+#: ../../mod/notifications.php:93 ../../mod/notify.php:54
msgid "No more system notifications."
msgstr ""
-#: ../../mod/notifications.php:336 ../../mod/notify.php:58
+#: ../../mod/notifications.php:97 ../../mod/notify.php:58
msgid "System Notifications"
msgstr ""
-#: ../../mod/notifications.php:427
-msgid "No more personal notifications."
-msgstr ""
-
-#: ../../mod/notifications.php:431
-msgid "Personal Notifications"
-msgstr ""
-
-#: ../../mod/notifications.php:504
-msgid "No more home notifications."
-msgstr ""
-
-#: ../../mod/notifications.php:508
-msgid "Home Notifications"
-msgstr ""
-
#: ../../mod/blocks.php:65
msgid "Block Name"
msgstr ""
@@ -6570,11 +6620,19 @@ msgstr ""
msgid "Post successful."
msgstr ""
-#: ../../mod/editpost.php:31
-msgid "Item is not editable"
+#: ../../mod/editwebpage.php:106
+msgid "Edit Webpage"
msgstr ""
-#: ../../mod/profile.php:112
+#: ../../mod/editwebpage.php:116
+msgid "Delete webpage?"
+msgstr ""
+
+#: ../../mod/editwebpage.php:189
+msgid "Delete Webpage"
+msgstr ""
+
+#: ../../mod/profile.php:64 ../../mod/profile.php:72
msgid "Access to this profile has been restricted."
msgstr ""
@@ -6598,11 +6656,7 @@ msgstr ""
msgid "Make this post private"
msgstr ""
-#: ../../mod/wall_upload.php:41 ../../mod/item.php:1074
-msgid "Wall Photos"
-msgstr ""
-
-#: ../../mod/channel.php:107
+#: ../../mod/channel.php:85
msgid "Insufficient permissions. Request redirected to profile page."
msgstr ""
@@ -6618,8 +6672,8 @@ msgstr ""
msgid "No results."
msgstr ""
-#: ../../mod/fbrowser.php:114
-msgid "Files"
+#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92
+msgid "Contact not found."
msgstr ""
#: ../../mod/fsuggest.php:63
@@ -6635,111 +6689,107 @@ msgstr ""
msgid "Suggest a friend for %s"
msgstr ""
-#: ../../mod/editblock.php:82
+#: ../../mod/editblock.php:86
msgid "Edit Block"
msgstr ""
-#: ../../mod/editblock.php:156
-msgid "Delete Block"
+#: ../../mod/editblock.php:96
+msgid "Delete block?"
msgstr ""
-#: ../../mod/profperm.php:34 ../../mod/profperm.php:64
-msgid "Invalid profile identifier."
+#: ../../mod/editblock.php:163
+msgid "Delete Block"
msgstr ""
-#: ../../mod/profperm.php:110
-msgid "Profile Visibility Editor"
+#: ../../mod/dirprofile.php:114
+msgid "Status: "
msgstr ""
-#: ../../mod/profperm.php:114
-msgid "Click on a contact to add or remove."
+#: ../../mod/dirprofile.php:115
+msgid "Sexual Preference: "
msgstr ""
-#: ../../mod/profperm.php:123
-msgid "Visible To"
+#: ../../mod/dirprofile.php:117
+msgid "Homepage: "
msgstr ""
-#: ../../mod/profperm.php:139
-msgid "All Contacts (with secure profile access)"
+#: ../../mod/dirprofile.php:118
+msgid "Hometown: "
msgstr ""
-#: ../../mod/item.php:144
-msgid "Unable to locate original post."
+#: ../../mod/dirprofile.php:120
+msgid "About: "
msgstr ""
-#: ../../mod/item.php:341
-msgid "Empty post discarded."
+#: ../../mod/dirprofile.php:168
+msgid "Keywords: "
msgstr ""
-#: ../../mod/item.php:383
-msgid "Executable content type not permitted to this channel."
+#: ../../mod/filestorage.php:68
+msgid "Permission Denied."
msgstr ""
-#: ../../mod/item.php:793
-msgid "System error. Post not saved."
+#: ../../mod/filestorage.php:85
+msgid "File not found."
msgstr ""
-#: ../../mod/item.php:1153
-#, php-format
-msgid "You have reached your limit of %1$.0f top level posts."
+#: ../../mod/filestorage.php:119
+msgid "Edit file permissions"
msgstr ""
-#: ../../mod/item.php:1159
-#, php-format
-msgid "You have reached your limit of %1$.0f webpages."
+#: ../../mod/filestorage.php:124 ../../mod/photos.php:607
+#: ../../mod/photos.php:950
+msgid "Permissions"
msgstr ""
-#: ../../mod/siteinfo.php:51
-#, php-format
-msgid "Version %s"
+#: ../../mod/filestorage.php:126
+msgid "Include all files and sub folders"
msgstr ""
-#: ../../mod/siteinfo.php:65
-msgid "Installed plugins/addons/apps:"
+#: ../../mod/filestorage.php:127
+msgid "Return to file list"
msgstr ""
-#: ../../mod/siteinfo.php:78
-msgid "No installed plugins/addons/apps"
+#: ../../mod/filestorage.php:129
+msgid "Copy/paste this code to attach file to a post"
msgstr ""
-#: ../../mod/siteinfo.php:81
-msgid "Red"
+#: ../../mod/filestorage.php:130
+msgid "Copy/paste this URL to link file from a web page"
msgstr ""
-#: ../../mod/siteinfo.php:82
-msgid ""
-"This is a hub of the Red Matrix - a global cooperative network of "
-"decentralised privacy enhanced websites."
-msgstr ""
-
-#: ../../mod/siteinfo.php:84
-msgid "Running at web location"
+#: ../../mod/filestorage.php:167
+msgid "Download"
msgstr ""
-#: ../../mod/siteinfo.php:85
-msgid ""
-"Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more "
-"about the Red Matrix."
+#: ../../mod/filestorage.php:173
+msgid "Used: "
msgstr ""
-#: ../../mod/siteinfo.php:86
-msgid "Bug reports and issues: please visit"
+#: ../../mod/filestorage.php:174
+msgid "[directory]"
msgstr ""
-#: ../../mod/siteinfo.php:89
-msgid ""
-"Suggestions, praise, donations, etc. - please email \"redmatrix\" at "
-"librelist - dot com"
+#: ../../mod/filestorage.php:176
+msgid "Limit: "
msgstr ""
-#: ../../mod/suggest.php:41
+#: ../../mod/suggest.php:35
msgid ""
"No suggestions available. If this is a new site, please try again in 24 "
"hours."
msgstr ""
-#: ../../mod/suggest.php:58
-msgid "Ignore/Hide"
+#: ../../mod/message.php:41
+msgid "Conversation removed."
+msgstr ""
+
+#: ../../mod/message.php:56
+msgid "No messages."
+msgstr ""
+
+#: ../../mod/message.php:74
+msgid "D, d M Y - g:i A"
msgstr ""
#: ../../mod/pubsites.php:22
@@ -6793,43 +6843,51 @@ msgstr ""
msgid "Your registration can not be processed."
msgstr ""
-#: ../../mod/register.php:149
+#: ../../mod/register.php:147
+msgid "Registration on this site/hub is by approval only."
+msgstr ""
+
+#: ../../mod/register.php:148
+msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>"
+msgstr ""
+
+#: ../../mod/register.php:156
msgid ""
"This site has exceeded the number of allowed daily account registrations. "
"Please try again tomorrow."
msgstr ""
-#: ../../mod/register.php:160
+#: ../../mod/register.php:167
msgid "Terms of Service"
msgstr ""
-#: ../../mod/register.php:166
+#: ../../mod/register.php:173
#, php-format
msgid "I accept the %s for this website"
msgstr ""
-#: ../../mod/register.php:168
+#: ../../mod/register.php:175
#, php-format
msgid "I am over 13 years of age and accept the %s for this website"
msgstr ""
-#: ../../mod/register.php:183
+#: ../../mod/register.php:194
msgid "Membership on this site is by invitation only."
msgstr ""
-#: ../../mod/register.php:184
+#: ../../mod/register.php:195
msgid "Please enter your invitation code"
msgstr ""
-#: ../../mod/register.php:187
+#: ../../mod/register.php:198
msgid "Your email address"
msgstr ""
-#: ../../mod/register.php:188
+#: ../../mod/register.php:199
msgid "Choose a password"
msgstr ""
-#: ../../mod/register.php:189
+#: ../../mod/register.php:200
msgid "Please re-enter your password"
msgstr ""
@@ -6862,139 +6920,254 @@ msgid ""
msgstr ""
#: ../../mod/removeme.php:53
-msgid "Remove My Account"
+msgid "Remove Channel"
msgstr ""
-#: ../../mod/directory.php:163
-msgid "Gender: "
+#: ../../mod/photos.php:77
+msgid "Page owner information could not be retrieved."
msgstr ""
-#: ../../mod/directory.php:222
-msgid "Finding:"
+#: ../../mod/photos.php:97
+msgid "Album not found."
msgstr ""
-#: ../../mod/directory.php:230
-msgid "next page"
+#: ../../mod/photos.php:119 ../../mod/photos.php:672
+msgid "Delete Album"
msgstr ""
-#: ../../mod/directory.php:230
-msgid "previous page"
+#: ../../mod/photos.php:159 ../../mod/photos.php:955
+msgid "Delete Photo"
msgstr ""
-#: ../../mod/directory.php:237
-msgid "No entries (some entries may be hidden)."
+#: ../../mod/photos.php:453
+msgid "No photos selected"
+msgstr ""
+
+#: ../../mod/photos.php:500
+msgid "Access to this item is restricted."
+msgstr ""
+
+#: ../../mod/photos.php:577
+#, php-format
+msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."
+msgstr ""
+
+#: ../../mod/photos.php:580
+#, php-format
+msgid "You have used %1$.2f Mbytes of photo storage."
+msgstr ""
+
+#: ../../mod/photos.php:599
+msgid "Upload Photos"
+msgstr ""
+
+#: ../../mod/photos.php:603 ../../mod/photos.php:667
+msgid "New album name: "
+msgstr ""
+
+#: ../../mod/photos.php:604
+msgid "or existing album name: "
+msgstr ""
+
+#: ../../mod/photos.php:605
+msgid "Do not show a status post for this upload"
+msgstr ""
+
+#: ../../mod/photos.php:656 ../../mod/photos.php:678 ../../mod/photos.php:1127
+#: ../../mod/photos.php:1142
+msgid "Contact Photos"
+msgstr ""
+
+#: ../../mod/photos.php:682
+msgid "Edit Album"
+msgstr ""
+
+#: ../../mod/photos.php:688
+msgid "Show Newest First"
+msgstr ""
+
+#: ../../mod/photos.php:690
+msgid "Show Oldest First"
+msgstr ""
+
+#: ../../mod/photos.php:733 ../../mod/photos.php:1174
+msgid "View Photo"
+msgstr ""
+
+#: ../../mod/photos.php:779
+msgid "Permission denied. Access to this item may be restricted."
+msgstr ""
+
+#: ../../mod/photos.php:781
+msgid "Photo not available"
+msgstr ""
+
+#: ../../mod/photos.php:841
+msgid "Use as profile photo"
+msgstr ""
+
+#: ../../mod/photos.php:865
+msgid "View Full Size"
+msgstr ""
+
+#: ../../mod/photos.php:939
+msgid "Edit photo"
+msgstr ""
+
+#: ../../mod/photos.php:941
+msgid "Rotate CW (right)"
+msgstr ""
+
+#: ../../mod/photos.php:942
+msgid "Rotate CCW (left)"
+msgstr ""
+
+#: ../../mod/photos.php:944
+msgid "New album name"
+msgstr ""
+
+#: ../../mod/photos.php:947
+msgid "Caption"
+msgstr ""
+
+#: ../../mod/photos.php:949
+msgid "Add a Tag"
+msgstr ""
+
+#: ../../mod/photos.php:952
+msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
+msgstr ""
+
+#: ../../mod/photos.php:1105
+msgid "In This Photo:"
msgstr ""
-#: ../../mod/mood.php:133
+#: ../../mod/photos.php:1180
+msgid "View Album"
+msgstr ""
+
+#: ../../mod/photos.php:1189
+msgid "Recent Photos"
+msgstr ""
+
+#: ../../mod/mood.php:138
msgid "Mood"
msgstr ""
-#: ../../mod/mood.php:134
+#: ../../mod/mood.php:139
msgid "Set your current mood and tell your friends"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:74
-msgid "Scheme Default"
+#: ../../mod/ping.php:192
+msgid "sent you a private message"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:75
-msgid "red"
+#: ../../mod/ping.php:250
+msgid "added your channel"
+msgstr ""
+
+#: ../../mod/ping.php:294
+msgid "posted an event"
msgstr ""
#: ../../view/theme/redbasic/php/config.php:76
-msgid "black"
+msgid "Scheme Default"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:77
+#: ../../view/theme/redbasic/php/config.php:87
msgid "silver"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:88
+#: ../../view/theme/redbasic/php/config.php:98
#: ../../view/theme/apw/php/config.php:234
#: ../../view/theme/blogga/view/theme/blog/config.php:69
#: ../../view/theme/blogga/php/config.php:69
msgid "Theme settings"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:89
+#: ../../view/theme/redbasic/php/config.php:99
#: ../../view/theme/apw/php/config.php:235
msgid "Set scheme"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:90
+#: ../../view/theme/redbasic/php/config.php:100
msgid "Navigation bar colour"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:91
+#: ../../view/theme/redbasic/php/config.php:101
+msgid "link colour"
+msgstr ""
+
+#: ../../view/theme/redbasic/php/config.php:102
msgid "Set font-colour for banner"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:92
+#: ../../view/theme/redbasic/php/config.php:103
msgid "Set the background colour"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:93
+#: ../../view/theme/redbasic/php/config.php:104
msgid "Set the background image"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:94
+#: ../../view/theme/redbasic/php/config.php:105
msgid "Set the background colour of items"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:95
+#: ../../view/theme/redbasic/php/config.php:106
msgid "Set the opacity of items"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:96
+#: ../../view/theme/redbasic/php/config.php:107
msgid "Set the basic colour for item icons"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:97
+#: ../../view/theme/redbasic/php/config.php:108
msgid "Set the hover colour for item icons"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:98
+#: ../../view/theme/redbasic/php/config.php:109
msgid "Set font-size for the entire application"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:99
+#: ../../view/theme/redbasic/php/config.php:110
#: ../../view/theme/apw/php/config.php:236
msgid "Set font-size for posts and comments"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:100
+#: ../../view/theme/redbasic/php/config.php:111
msgid "Set font-colour for posts and comments"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:101
+#: ../../view/theme/redbasic/php/config.php:112
msgid "Set radius of corners"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:102
+#: ../../view/theme/redbasic/php/config.php:113
msgid "Set shadow depth of photos"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:103
+#: ../../view/theme/redbasic/php/config.php:114
msgid "Set maximum width of conversation regions"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:104
+#: ../../view/theme/redbasic/php/config.php:115
msgid "Set minimum opacity of nav bar - to hide it"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:105
+#: ../../view/theme/redbasic/php/config.php:116
msgid "Set size of conversation author photo"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:106
+#: ../../view/theme/redbasic/php/config.php:117
msgid "Set size of followup author photos"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:107
+#: ../../view/theme/redbasic/php/config.php:118
msgid "Sloppy photo albums"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:107
+#: ../../view/theme/redbasic/php/config.php:118
msgid "Are you a clean desk or a messy desk person?"
msgstr ""
@@ -7138,41 +7311,41 @@ msgstr ""
msgid "Header image only on profile pages"
msgstr ""
-#: ../../boot.php:1255
+#: ../../boot.php:1234
#, php-format
msgid "Update %s failed. See error logs."
msgstr ""
-#: ../../boot.php:1258
+#: ../../boot.php:1237
#, php-format
msgid "Update Error at %s"
msgstr ""
-#: ../../boot.php:1415
+#: ../../boot.php:1401
msgid ""
"Create an account to access services and applications within the Red Matrix"
msgstr ""
-#: ../../boot.php:1443
+#: ../../boot.php:1429
msgid "Password"
msgstr ""
-#: ../../boot.php:1444
+#: ../../boot.php:1430
msgid "Remember me"
msgstr ""
-#: ../../boot.php:1449
+#: ../../boot.php:1435
msgid "Forgot your password?"
msgstr ""
-#: ../../boot.php:1514
+#: ../../boot.php:1500
msgid "permission denied"
msgstr ""
-#: ../../boot.php:1515
+#: ../../boot.php:1501
msgid "Got Zot?"
msgstr ""
-#: ../../boot.php:1902
+#: ../../boot.php:1906
msgid "toggle mobile"
msgstr ""
diff --git a/util/run_xgettext.sh b/util/run_xgettext.sh
index 4b4e012da..3be355c44 100755
--- a/util/run_xgettext.sh
+++ b/util/run_xgettext.sh
@@ -48,7 +48,7 @@ KEYWORDS="-k -kt -ktt:1,2"
echo "extract strings to $OUTFILE.."
-echo "extract strings to $OUTFILE.."
+
rm "$OUTFILE"; touch "$OUTFILE"
for f in $(find "$FINDSTARTDIR" $FINDOPTS -name "*.php" -type f)
do
@@ -67,15 +67,18 @@ then
sed -i "s/PACKAGE VERSION//g" "$OUTFILE"
sed -i "s/PACKAGE/RedMatrix $ADDONNAME addon/g" "$OUTFILE"
sed -i "s/CHARSET/UTF-8/g" "$OUTFILE"
- sed -i "s/^\"Plural-Forms/#\"Plural-Forms/g" "$OUTFILE"
+ sed -i '/^\"Plural-Forms/d' "$OUTFILE"
else
- sed -i "s/SOME DESCRIPTIVE TITLE./Red Communications Project/g" "$OUTFILE"
- sed -i "s/YEAR THE PACKAGE'S COPYRIGHT HOLDER/2013 the Red Matrix Project/g" "$OUTFILE"
- sed -i "s/FIRST AUTHOR <EMAIL@ADDRESS>, YEAR./Mike Macgirvin, 2013/g" "$OUTFILE"
+ sed -i "s/SOME DESCRIPTIVE TITLE./Red Matrix Project/g" "$OUTFILE"
+ sed -i "s/YEAR THE PACKAGE'S COPYRIGHT HOLDER/2012-2014 the Red Matrix Project/g" "$OUTFILE"
+ sed -i "s/FIRST AUTHOR <EMAIL@ADDRESS>, YEAR./Mike Macgirvin, 2012/g" "$OUTFILE"
sed -i "s/PACKAGE VERSION/$F9KVERSION/g" "$OUTFILE"
sed -i "s/PACKAGE/Red/g" "$OUTFILE"
sed -i "s/CHARSET/UTF-8/g" "$OUTFILE"
- sed -i "s/^\"Plural-Forms/#\"Plural-Forms/g" "$OUTFILE"
+ sed -i '/^\"Plural-Forms/d' "$OUTFILE"
fi
+#grep -v "Plural-Forms:" $OUTFILE > tmpout
+#mv tmpout $OUTFILE
+
echo "done."
diff --git a/version.inc b/version.inc
index e228ff0df..adf85ba7e 100644
--- a/version.inc
+++ b/version.inc
@@ -1 +1 @@
-2013-12-10.523
+2014-02-24.598
diff --git a/view/css/bootstrap-red.css b/view/css/bootstrap-red.css
index 73c06fd4b..45cf76fb6 100644
--- a/view/css/bootstrap-red.css
+++ b/view/css/bootstrap-red.css
@@ -65,3 +65,48 @@ margin-left: 0px;
float:none;
margin-left:0px;
}
+
+/* nav overrides */
+
+nav .badge {
+ position: relative;
+ top: -48px;
+ float: left;
+ font-size: 10px;
+ padding: 2px 6px;
+ cursor: pointer;
+}
+
+nav .dropdown-menu {
+ top: 50px;
+ max-height: 450px;
+ max-width: 300px;
+ overflow-y: auto;
+ margin-top: 0px;
+}
+
+nav .dropdown-menu .contactname {
+ padding-top: 2px;
+ font-weight: bold;
+ display: block;
+}
+
+nav .dropdown-menu img {
+ float: left;
+ margin-right: 5px;
+ width: 32px;
+ height: 32px;
+}
+
+nav .dropdown-menu li a {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ line-height: 1em;
+ padding: 5px 10px;
+}
+
+nav .navbar-collapse {
+ max-height: 450px;
+}
+
+/* nav overrides end */
diff --git a/view/css/conversation.css b/view/css/conversation.css
index 5bf6a3607..3396863e7 100644
--- a/view/css/conversation.css
+++ b/view/css/conversation.css
@@ -55,6 +55,8 @@
#profile-expires,
#profile-expires,
#jot-perms-icon,
+#jot-preview-link,
+#profile-encrypt,
.hover, .focus {
cursor: pointer;
}
@@ -110,7 +112,7 @@
/* conversation */
-.thread-wrapper .toplevel_item {
+.thread-wrapper.toplevel_item {
width: 92%;
}
@@ -125,6 +127,14 @@
position: relative;
}
+.wall-item-content-wrapper .wall-item-delete-wrapper {
+ opacity: 0;
+}
+
+.wall-item-content-wrapper:hover .wall-item-delete-wrapper {
+ opacity: 1;
+}
+
.wall-item-info {
display: block;
float: left;
@@ -321,11 +331,6 @@
filter:alpha(opacity=100);
}
-.wall-item-like.comment,
-.wall-item-dislike.comment {
- margin-left: 50px;
-}
-
.wall-item-like,
.wall-item-dislike {
margin-top: 5px;
diff --git a/view/css/default.css b/view/css/default.css
index 27df38dee..4afcbf1d5 100644
--- a/view/css/default.css
+++ b/view/css/default.css
@@ -1,18 +1,8 @@
-
-nav {
- height: 24px;
- display: block;
- position: fixed;
- width: 100%;
- z-index: 100;
- background-color: #ff0000;
-}
-
aside#region_1 {
display: block;
width: 210px;
position: absolute;
- top: 48px;
+ top: 65px;
left: 0;
margin-left: 10px;
}
@@ -24,7 +14,7 @@ aside input[type='text'] {
section {
position: absolute;
- top: 48px;
+ top: 65px;
left: 250px;
display: block;
right: 15px;
diff --git a/view/css/mod_chat.css b/view/css/mod_chat.css
new file mode 100644
index 000000000..7963fbbd6
--- /dev/null
+++ b/view/css/mod_chat.css
@@ -0,0 +1,55 @@
+ #chatContainer {
+ height: 100%;
+ width: 100%;
+ }
+
+ #chatTopBar {
+ float: left;
+ height: 400px;
+ width: 650px;
+ overflow-y: auto;
+ }
+
+ #chatUsers {
+ float: right;
+ width: 120px;
+ height: 100%;
+ border: 1px solid #000;
+ }
+
+ #chatBottomBar {
+ position: relative;
+ bottom: 0;
+ height: 150px;
+ margin-top: 20px;
+ }
+
+ section {
+ padding-bottom: 0;
+ }
+
+.chat-item {
+ padding: 3px;
+}
+
+.chat-item-end {
+ clear: both;
+}
+
+.chat-item-photo {
+ float: left;
+ height: 32px;
+ width: 32px;
+}
+
+.chat-body {
+ float: left;
+ width: 80%;
+ margin-left: 15px;
+}
+
+.chat-item-text {
+ float: left;
+ padding: 3px;
+ display: inline-block;
+}
diff --git a/view/css/mod_connections.css b/view/css/mod_connections.css
index ee2ea52ac..c460fec28 100644
--- a/view/css/mod_connections.css
+++ b/view/css/mod_connections.css
@@ -38,56 +38,6 @@
margin-bottom: 20px;
}
-.contact-entry-wrapper {
- float: left;
- width: 120px;
- height: 120px;
- padding: 10px;
-}
-
-#contacts-search {
- font-size: 1em;
- width: 300px;
-}
-
-#contacts-search-end {
- margin-bottom: 10px;
-}
-
-.contact-entry-photo img {
- border: none;
-}
-.contact-entry-photo-end {
- clear: both;
-}
-.contact-entry-name {
- float: left;
- margin-left: 0px;
- margin-right: 10px;
- width: 120px;
- overflow: hidden;
-}
-.contact-entry-edit-links {
- margin-top: 6px;
- margin-left: 10px;
- width: 16px;
-}
-.contact-entry-nav-wrapper {
- float: left;
- margin-left: 10px;
-}
-
-.contact-entry-edit-links img {
- border: none;
- margin-right: 15px;
-}
-.contact-entry-photo {
- float: left;
- position: relative;
-}
-.contact-entry-end {
- clear: both;
-}
#contact-edit-wrapper {
@@ -154,3 +104,34 @@
margin-top: 20px;
}
+.contact-entry-wrapper {
+ float: left;
+ width: 120px;
+ height: 120px;
+ padding: 10px;
+}
+
+#contacts-search {
+ font-size: 1em;
+ width: 300px;
+}
+
+#contacts-search-end {
+ margin-bottom: 10px;
+}
+
+.contact-entry-photo-end {
+ clear: both;
+}
+
+.contact-entry-name {
+ float: left;
+ margin-left: 0px;
+ margin-right: 10px;
+ width: 120px;
+ overflow: hidden;
+}
+
+.contact-entry-end {
+ clear: both;
+}
diff --git a/view/css/mod_connedit.css b/view/css/mod_connedit.css
new file mode 100644
index 000000000..f6da96433
--- /dev/null
+++ b/view/css/mod_connedit.css
@@ -0,0 +1,151 @@
+
+.field_abook_help {
+ color: #000;
+}
+.abook-them {
+ margin-left: 375px;
+ margin-bottom: 15px;
+}
+.abook-me {
+ margin-left: 36px;
+ margin-bottom: 15px;
+}
+.acheckbox {
+ margin-bottom: 5px !important;
+}
+
+.abook-pending-contact {
+ background: orange;
+ font-weight: bold;
+ margin: 10px;
+ padding: 20px 5px 10px;
+}
+
+#contact-slider {
+ width: 600px !important;
+}
+
+.abook-edit-them, .abook-edit-me {
+ float: left;
+ width: 100px !important;
+}
+.field_abook_help {
+ float: left;
+}
+
+#contacts-main {
+ margin-top: 20px;
+ margin-bottom: 20px;
+}
+
+
+
+#contact-edit-wrapper {
+ margin-top: 10px;
+}
+
+#contact-edit-banner-name {
+ font-size: 1.4em;
+ font-weight: bold;
+}
+
+#contact-edit-poll-wrapper {
+ margin-top: 15px;
+}
+
+#contact-edit-poll-text {
+ margin-top: 15px;
+ margin-bottom: 5px;
+}
+
+#contact-edit-update-now {
+ margin-top: 15px;
+}
+
+#contact-edit-links{
+ clear: both;
+}
+
+#contact-edit-links ul {
+ list-style: none;
+ list-style-type: none;
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+#contact-edit-links li {
+ margin-top: 5px;
+}
+
+#contact-edit-drop-link {
+ float: right;
+ margin-right: 20px;
+}
+
+#contact-edit-nav-end {
+ clear: both;
+}
+
+#contact-edit-wrapper {
+ width: 100%;
+}
+
+#contact-edit-end {
+ clear: both;
+ margin-top: 15px;
+}
+
+#contact-profile-selector {
+ width: 175px;
+ margin-left: 175px;
+}
+
+.contact-edit-submit {
+ margin-top: 20px;
+}
+
+.contact-entry-wrapper {
+ float: left;
+ width: 120px;
+ height: 120px;
+ padding: 10px;
+}
+
+#contacts-search {
+ font-size: 1em;
+ width: 300px;
+}
+
+#contacts-search-end {
+ margin-bottom: 10px;
+}
+
+.contact-entry-photo-end {
+ clear: both;
+}
+
+.contact-entry-name {
+ float: left;
+ margin-left: 0px;
+ margin-right: 10px;
+ width: 120px;
+ overflow: hidden;
+}
+
+.contact-entry-end {
+ clear: both;
+}
+
+#abook-advanced-panel, #abook-advanced {
+ opacity: 0.3;
+ filter:alpha(opacity=30);
+}
+
+#abook-advanced-panel:hover, #abook-advanced:hover {
+ opacity: 1.0;
+ filter:alpha(opacity=100);
+}
+
+#abook-advanced {
+ margin-top: 15px;
+} \ No newline at end of file
diff --git a/view/css/mod_directory.css b/view/css/mod_directory.css
index 578777054..bc8054937 100644
--- a/view/css/mod_directory.css
+++ b/view/css/mod_directory.css
@@ -37,3 +37,8 @@
div.dirtagblock.widget {
overflow: hidden;
}
+
+.dirpopup {
+ float: left;
+ width: 225px;
+}
diff --git a/view/css/mod_filestorage.css b/view/css/mod_filestorage.css
new file mode 100644
index 000000000..98fa8e93d
--- /dev/null
+++ b/view/css/mod_filestorage.css
@@ -0,0 +1,11 @@
+#attach-edit-backlink, #cutpasteinput, #linkpasteinput {
+ margin-bottom: 10px;
+}
+
+#attach-edit-submit {
+ margin-top: 20px;
+}
+
+#cutpasteinput, #linkpasteinput {
+ width: 600px;
+} \ No newline at end of file
diff --git a/view/css/mod_mail.css b/view/css/mod_mail.css
new file mode 100644
index 000000000..c278f4d53
--- /dev/null
+++ b/view/css/mod_mail.css
@@ -0,0 +1,100 @@
+/* message */
+
+#mail-list-wrapper {
+ border-top: 1px solid #ccc;
+ padding: 5px 5px 5px 5px;
+}
+
+span.mail-list {
+ float: left;
+ width: 20%;
+}
+
+img.mail-list-sender-photo {
+ height: 24px;
+ width: 24px;
+ float: left;
+ margin-right: 30px;
+}
+
+.mail-list-remove {
+ width: 5% !important;
+}
+
+/* message/new */
+
+#prvmail-to-label,
+#prvmail-subject-label,
+#prvmail-expires-label,
+#prvmail-message-label {
+ margin-bottom: 10px;
+ margin-top: 20px;
+}
+
+#prvmail-submit {
+ float: left;
+ margin-top: 10px;
+ margin-right: 30px;
+}
+
+#prvmail-upload-wrapper,
+#prvmail-attach-wrapper,
+#prvmail-link-wrapper,
+#prvmail-expire-wrapper,
+#prvmail-encrypt-wrapper,
+#prvmail-rotator-wrapper {
+ float: left;
+ margin-top: 10px;
+ margin-right: 10px;
+ width: 24px;
+ cursor: pointer;
+}
+
+#prvmail-end {
+ clear: both;
+}
+
+/* message/id */
+
+.mail-conv-outside-wrapper {
+ margin-top: 30px;
+}
+
+.mail-conv-sender,
+.mail-conv-detail {
+ float: left;
+}
+
+.mail-conv-detail {
+ margin-left: 20px;
+ width: 500px;
+}
+
+.mail-conv-subject {
+ font-size: 1.4em;
+ margin: 10px 0;
+}
+
+.mail-conv-delete-wrapper {
+ float: right;
+ margin-right: 30px;
+ margin-top: 15px;
+}
+
+.mail-conv-delete-icon {
+ border: none;
+}
+
+.mail-conv-recall-wrapper {
+ float: right;
+ margin-right: 10px;
+ margin-top: 15px;
+}
+
+.mail-conv-outside-wrapper-end {
+ clear: both;
+}
+
+.mail-conv-break {
+ clear: both;
+}
diff --git a/view/css/mod_manage.css b/view/css/mod_manage.css
index 58f9d3159..4780820ba 100644
--- a/view/css/mod_manage.css
+++ b/view/css/mod_manage.css
@@ -1,8 +1,7 @@
#channels-selected {
color: #666666;
- font-size: 1.2em;
- width: 120px;
- margin: 20px auto 10px auto;
+ font-size: 0.8em;
+
}
#channels-desc {
@@ -12,9 +11,16 @@
margin-bottom: 20px;
}
+.channels-break {
+ margin-bottom: 15px;
+}
#selected-channel {
- width: 200px;
- margin: 0px auto 0px auto;
+ float: left;
+ margin-left: 0;
+}
+
+.channels-end.selected {
+ clear: both;
}
#selected-channel .channel-selection {
@@ -31,6 +37,7 @@
#all-channels .channel-selection {
width: 120px;
float: left;
+ margin-bottom: 15px;
}
.channels-end {
clear: both;
diff --git a/view/css/mod_mitem.css b/view/css/mod_mitem.css
new file mode 100644
index 000000000..377d164fe
--- /dev/null
+++ b/view/css/mod_mitem.css
@@ -0,0 +1,7 @@
+.menu-item-list {
+ list-style-type: none;
+}
+
+.mitem-edit {
+ margin-right: 15px;
+} \ No newline at end of file
diff --git a/view/css/mod_profiles.css b/view/css/mod_profiles.css
index 8378245d2..5f930248f 100644
--- a/view/css/mod_profiles.css
+++ b/view/css/mod_profiles.css
@@ -13,6 +13,16 @@
}
+#profile-listing-desc, #profile-stuff-link {
+ margin-left: 30px;
+}
+
+#profile-listing-new-link-wrapper {
+ margin-left: 30px;
+ margin-bottom: 30px;
+}
+
+
#profile-edit-links-end {
clear: both;
margin-bottom: 15px;
@@ -35,9 +45,11 @@
margin-top: 10px;
}
-#profile-edit-with-label {
+#profile-edit-with-label, #profile-edit-howlong-label {
+
width: 175px;
- margin-left: 20px;
+ margin-left: 50px;
+ margin-bottom: 20px;
}
#profile-edit-profile-name-label,
diff --git a/view/css/mod_register.css b/view/css/mod_register.css
index aca6ee002..b662610ae 100644
--- a/view/css/mod_register.css
+++ b/view/css/mod_register.css
@@ -10,6 +10,13 @@ h2 {
margin-top: 5%;
}
+#register-desc, #register-text, #register-sites {
+ font-weight: bold;
+ margin-bottom: 15px;
+ padding: 8px;
+ border: 1px solid #ccc;
+}
+
.register-label {
float: left;
width: 275px;
diff --git a/view/css/mod_settings.css b/view/css/mod_settings.css
index 601cb2e0e..5b0105204 100644
--- a/view/css/mod_settings.css
+++ b/view/css/mod_settings.css
@@ -1,6 +1,19 @@
+#settings-permissions-wrapper {
+ margin-top: 15px;
+}
+
+#settings-perm-advanced {
+ margin-top: 15px;
+}
+
+.settings-common-perms {
+ margin-top: 15px;
+}
+
#settings-permissions-wrapper .field {
margin-bottom: 10px;
}
+
#settings-permissions-wrapper .field label{
width: 350px;
}
@@ -14,8 +27,6 @@
margin-bottom: 45px;
}
-
-
#settings-notifications label {
margin-left: 20px;
}
@@ -24,3 +35,17 @@
margin-bottom: 15px;
}
+#settings-menu-desc {
+ font-weight: bold;
+ float: left;
+ width: 350px;
+}
+
+#settings-channel-menu-div select {
+ float: left;
+}
+
+#settings-channel-menu-end {
+ clear: both;
+ margin-bottom: 15px;
+} \ No newline at end of file
diff --git a/view/css/mod_thing.css b/view/css/mod_thing.css
index 2a2ba7c92..125230b38 100644
--- a/view/css/mod_thing.css
+++ b/view/css/mod_thing.css
@@ -4,22 +4,16 @@
margin-left: 0;
}
-.thing-verb-label {
- margin-top: 15px;
-}
-
-.thing-verb {
- margin-bottom: 15px;
-}
-.thing-label {
+.thing-label, .field label, .thing-verb-label, .thing-profile-label{
float: left;
- width: 250px;
+ width: 350px;
}
-.thing-input {
+.thing-input, .thing-verb, .thing-profile{
float: left;
margin-bottom: 15px;
+ width: 400px;
}
.thing-field-end {
diff --git a/view/css/widgets.css b/view/css/widgets.css
new file mode 100644
index 000000000..dcda66b81
--- /dev/null
+++ b/view/css/widgets.css
@@ -0,0 +1,126 @@
+.widget {
+ padding: 8px;
+ margin-top: 5px;
+}
+
+/* suggest */
+
+.suggest-widget-more {
+ margin-top: 10px;
+}
+
+/* follow */
+
+#side-follow-url {
+ margin-top: 5px;
+}
+
+#side-follow-submit {
+ margin-top: 15px;
+}
+
+/* notes */
+
+#note-text {
+ width: 190px;
+ max-width: 190px;
+ height: 150px;
+}
+
+#note-save {
+ margin-top: 10px;
+}
+
+/* saved searches */
+
+.saved-search-li {
+ margin-top: 3px;
+}
+
+.saved-search-li i {
+ opacity: 0;
+}
+
+.saved-search-li:hover i {
+ opacity: 1;
+}
+
+.savedsearchterm {
+ margin-left: 10px;
+}
+
+/* fileas */
+
+.fileas-ul li {
+ margin-top: 10px;
+}
+
+.fileas-link {
+ margin-left: 24px;
+}
+
+.fileas-all {
+ margin-left: 0px;
+}
+
+/* posted date */
+
+#datebrowse-sidebar select {
+ width: 190px;
+ max-width: 190px;
+ max-height: 150px;
+}
+
+/* categories */
+
+.categories-ul li {
+ margin-top: 10px;
+}
+
+.categories-link {
+ margin-left: 24px;
+}
+
+.categories-all {
+ margin-left: 0px;
+}
+
+/* group */
+
+#group-sidebar {
+ margin-bottom: 10px;
+}
+
+#sidebar-group-list .icon, #sidebar-group-list .iconspacer {
+ display: inline-block;
+ height: 12px;
+ width: 12px;
+}
+
+#sidebar-group-list li {
+ margin-top: 3px;
+}
+
+.groupsideedit {
+ margin-right: 10px;
+}
+
+.group-edit-icon {
+ opacity: 0;
+}
+
+li:hover .group-edit-icon {
+ opacity: 1;
+}
+/* affinity - slider */
+
+#main-slider {
+ position: relative;
+ left: 5px;
+ width: 90%;
+}
+
+.slider {
+ margin-top: 10px;
+ margin-bottom: 45px;
+}
diff --git a/view/de/messages.po b/view/de/messages.po
index 2221d039d..fe7074d5a 100644
--- a/view/de/messages.po
+++ b/view/de/messages.po
@@ -1,5 +1,5 @@
-# Red Communications Project
-# Copyright (C) 2013 the Red Matrix Project
+# Red Matrix Project
+# Copyright (C) 2012-2014 the Red Matrix Project
# This file is distributed under the same license as the Red package.
#
# Translators:
@@ -13,15 +13,15 @@
# Fraengii <frank@lumina-verte.org>, 2013
# Fraengii <frank@lumina-verte.org>, 2013
# Oliver <post@toktan.org>, 2013
-# bavatar <tobias.diekershoff@gmx.net>, 2013
-# zottel <transifex@zottel.net>, 2013
+# bavatar <tobias.diekershoff@gmx.net>, 2013-2014
+# zottel <transifex@zottel.net>, 2013-2014
msgid ""
msgstr ""
"Project-Id-Version: Red Matrix\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-11-29 00:03-0800\n"
-"PO-Revision-Date: 2013-12-05 18:04+0000\n"
-"Last-Translator: zottel <transifex@zottel.net>\n"
+"POT-Creation-Date: 2014-02-21 00:03-0800\n"
+"PO-Revision-Date: 2014-02-22 12:04+0000\n"
+"Last-Translator: bavatar <tobias.diekershoff@gmx.net>\n"
"Language-Team: German (http://www.transifex.com/projects/p/red-matrix/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -29,6 +29,172 @@ msgstr ""
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+#: ../../include/widgets.php:29 ../../include/contact_widgets.php:87
+msgid "Categories"
+msgstr "Kategorien"
+
+#: ../../include/widgets.php:115 ../../include/widgets.php:155
+#: ../../include/Contact.php:107 ../../include/identity.php:632
+#: ../../mod/directory.php:184 ../../mod/match.php:62
+#: ../../mod/dirprofile.php:170 ../../mod/suggest.php:51
+msgid "Connect"
+msgstr "Verbinden"
+
+#: ../../include/widgets.php:117 ../../mod/suggest.php:53
+msgid "Ignore/Hide"
+msgstr "Ignorieren/Verstecken"
+
+#: ../../include/widgets.php:123 ../../mod/connections.php:238
+msgid "Suggestions"
+msgstr "Vorschläge"
+
+#: ../../include/widgets.php:124
+msgid "See more..."
+msgstr "Mehr anzeigen …"
+
+#: ../../include/widgets.php:146
+#, php-format
+msgid "You have %1$.0f of %2$.0f allowed connections."
+msgstr "Du bist %1$.0f von maximal %2$.0f erlaubten Verbindungen eingegangen."
+
+#: ../../include/widgets.php:152
+msgid "Add New Connection"
+msgstr "Neue Verbindung hinzufügen"
+
+#: ../../include/widgets.php:153
+msgid "Enter the channel address"
+msgstr "Adresse des Kanals eingeben"
+
+#: ../../include/widgets.php:154
+msgid "Example: bob@example.com, http://example.com/barbara"
+msgstr "Beispiel: bob@beispiel.com, http://beispiel.com/barbara"
+
+#: ../../include/widgets.php:171
+msgid "Notes"
+msgstr "Notizen"
+
+#: ../../include/widgets.php:173 ../../include/text.php:759
+#: ../../include/text.php:773 ../../mod/filer.php:36
+msgid "Save"
+msgstr "Speichern"
+
+#: ../../include/widgets.php:243
+msgid "Remove term"
+msgstr "Eintrag löschen"
+
+#: ../../include/widgets.php:252 ../../include/features.php:52
+msgid "Saved Searches"
+msgstr "Gesicherte Suchanfragen"
+
+#: ../../include/widgets.php:253 ../../include/group.php:290
+msgid "add"
+msgstr "hinzufügen"
+
+#: ../../include/widgets.php:283 ../../include/features.php:66
+#: ../../include/contact_widgets.php:53
+msgid "Saved Folders"
+msgstr "Gesicherte Ordner"
+
+#: ../../include/widgets.php:286 ../../include/contact_widgets.php:56
+#: ../../include/contact_widgets.php:90
+msgid "Everything"
+msgstr "Alles"
+
+#: ../../include/widgets.php:318
+msgid "Archives"
+msgstr "Archive"
+
+#: ../../include/widgets.php:370
+msgid "Refresh"
+msgstr "Aktualisieren"
+
+#: ../../include/widgets.php:371 ../../mod/connedit.php:389
+msgid "Me"
+msgstr "Ich"
+
+#: ../../include/widgets.php:372 ../../mod/connedit.php:391
+msgid "Best Friends"
+msgstr "Beste Freunde"
+
+#: ../../include/widgets.php:373 ../../include/identity.php:314
+#: ../../include/profile_selectors.php:42 ../../mod/connedit.php:392
+msgid "Friends"
+msgstr "Freunde"
+
+#: ../../include/widgets.php:374
+msgid "Co-workers"
+msgstr "Kollegen"
+
+#: ../../include/widgets.php:375 ../../mod/connedit.php:393
+msgid "Former Friends"
+msgstr "ehem. Freunde"
+
+#: ../../include/widgets.php:376 ../../mod/connedit.php:394
+msgid "Acquaintances"
+msgstr "Bekannte"
+
+#: ../../include/widgets.php:377
+msgid "Everybody"
+msgstr "Jeder"
+
+#: ../../include/widgets.php:409
+msgid "Account settings"
+msgstr "Konto-Einstellungen"
+
+#: ../../include/widgets.php:415
+msgid "Channel settings"
+msgstr "Kanal-Einstellungen"
+
+#: ../../include/widgets.php:421
+msgid "Additional features"
+msgstr "Zusätzliche Funktionen"
+
+#: ../../include/widgets.php:427
+msgid "Feature settings"
+msgstr "Funktions-Einstellungen"
+
+#: ../../include/widgets.php:433
+msgid "Display settings"
+msgstr "Anzeige-Einstellungen"
+
+#: ../../include/widgets.php:439
+msgid "Connected apps"
+msgstr "Verbundene Apps"
+
+#: ../../include/widgets.php:445
+msgid "Export channel"
+msgstr "Kanal exportieren"
+
+#: ../../include/widgets.php:457
+msgid "Automatic Permissions (Advanced)"
+msgstr "Automatische Berechtigungen (Erweitert)"
+
+#: ../../include/widgets.php:467
+msgid "Premium Channel Settings"
+msgstr "Premium-Kanal-Einstellungen"
+
+#: ../../include/widgets.php:476 ../../include/features.php:43
+#: ../../mod/sources.php:88
+msgid "Channel Sources"
+msgstr "Kanal-Quellen"
+
+#: ../../include/widgets.php:487 ../../include/nav.php:181
+#: ../../mod/admin.php:838 ../../mod/admin.php:1043
+msgid "Settings"
+msgstr "Einstellungen"
+
+#: ../../include/widgets.php:504
+msgid "Check Mail"
+msgstr "E-Mails abrufen"
+
+#: ../../include/widgets.php:509 ../../include/nav.php:172
+msgid "New Message"
+msgstr "Neue Nachricht"
+
+#: ../../include/widgets.php:585
+msgid "Chat Rooms"
+msgstr "Chaträume"
+
#: ../../include/acl_selectors.php:235
msgid "Visible to everybody"
msgstr "Für jeden sichtbar"
@@ -41,466 +207,869 @@ msgstr "zeigen"
msgid "don't show"
msgstr "Verbergen"
-#: ../../include/activities.php:37
+#: ../../include/activities.php:39
msgid " and "
msgstr "und"
-#: ../../include/activities.php:45
+#: ../../include/activities.php:47
msgid "public profile"
msgstr "öffentliches Profil"
-#: ../../include/activities.php:50
+#: ../../include/activities.php:52
#, php-format
msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
msgstr "%1$s hat %2$s auf &ldquo;%3$s&rdquo; geändert"
-#: ../../include/activities.php:51
+#: ../../include/activities.php:53
#, php-format
msgid "Visit %1$s's %2$s"
msgstr "Besuche %1$s's %2$s"
-#: ../../include/activities.php:54
+#: ../../include/activities.php:56
#, php-format
msgid "%1$s has an updated %2$s, changing %3$s."
msgstr "%1$s hat ein aktualisiertes %2$s, %3$s wurde verändert."
-#: ../../include/enotify.php:36
-msgid "Red Matrix Notification"
-msgstr "Red Matrix Benachrichtigung"
+#: ../../include/nav.php:72 ../../include/nav.php:91 ../../boot.php:1425
+msgid "Logout"
+msgstr "Abmelden"
-#: ../../include/enotify.php:37
-msgid "redmatrix"
-msgstr "redmatrix"
+#: ../../include/nav.php:72 ../../include/nav.php:91
+msgid "End this session"
+msgstr "Beende diese Sitzung"
-#: ../../include/enotify.php:39
-msgid "Thank You,"
-msgstr "Danke."
+#: ../../include/nav.php:75 ../../include/nav.php:125
+msgid "Home"
+msgstr "Home"
-#: ../../include/enotify.php:41
-#, php-format
-msgid "%s Administrator"
-msgstr "%s Administrator"
+#: ../../include/nav.php:75
+msgid "Your posts and conversations"
+msgstr "Deine Beiträge und Unterhaltungen"
-#: ../../include/enotify.php:76
-#, php-format
-msgid "%s <!item_type!>"
-msgstr "%s <!item_type!>"
+#: ../../include/nav.php:76 ../../include/conversation.php:933
+#: ../../mod/connedit.php:312 ../../mod/connedit.php:426
+msgid "View Profile"
+msgstr "Profil ansehen"
-#: ../../include/enotify.php:80
-#, php-format
-msgid "[Red:Notify] New mail received at %s"
-msgstr "[Red Notify] Neue Mail auf %s empfangen"
+#: ../../include/nav.php:76
+msgid "Your profile page"
+msgstr "Deine Profilseite"
-#: ../../include/enotify.php:82
-#, php-format
-msgid "%1$s, %2$s sent you a new private message at %3$s."
-msgstr "%1$s, %2$s hat dir eine private Nachricht auf %3$s gesendet."
+#: ../../include/nav.php:78
+msgid "Edit Profiles"
+msgstr "Profile bearbeiten"
-#: ../../include/enotify.php:83
-#, php-format
-msgid "%1$s sent you %2$s."
-msgstr "%1$s hat dir %2$s geschickt."
+#: ../../include/nav.php:78
+msgid "Manage/Edit profiles"
+msgstr "Profile verwalten"
-#: ../../include/enotify.php:83
-msgid "a private message"
-msgstr "eine private Nachricht"
+#: ../../include/nav.php:79 ../../include/conversation.php:1475
+#: ../../mod/fbrowser.php:25
+msgid "Photos"
+msgstr "Fotos"
-#: ../../include/enotify.php:84
-#, php-format
-msgid "Please visit %s to view and/or reply to your private messages."
-msgstr "Bitte besuche %s, um die private Nachricht anzusehen und/oder darauf zu antworten."
+#: ../../include/nav.php:79
+msgid "Your photos"
+msgstr "Deine Bilder"
-#: ../../include/enotify.php:135
-#, php-format
-msgid "%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]"
-msgstr "%1$s, %2$s hat [zrl=%3$s]a %4$s[/zrl] kommentiert"
+#: ../../include/nav.php:80 ../../include/conversation.php:1484
+#: ../../mod/fbrowser.php:114
+msgid "Files"
+msgstr "Dateien"
-#: ../../include/enotify.php:143
-#, php-format
-msgid "%1$s, %2$s commented on [zrl=%3$s]%4$s's %5$s[/zrl]"
-msgstr "%1$s, %2$s hat [zrl=%3$s]%4$ss %5$s[/zrl] kommentiert"
+#: ../../include/nav.php:80
+msgid "Your files"
+msgstr "Deine Dateien"
-#: ../../include/enotify.php:152
-#, php-format
-msgid "%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]"
-msgstr "%1$s, %2$s hat [zrl=%3$s]deinen %4$s[/zrl] kommentiert"
+#: ../../include/nav.php:81
+msgid "Chat"
+msgstr "Chat"
-#: ../../include/enotify.php:163
-#, php-format
-msgid "[Red:Notify] Comment to conversation #%1$d by %2$s"
-msgstr "[Red:Notify] Kommentar in Unterhaltung #%1$d von %2$s"
+#: ../../include/nav.php:81
+msgid "Your chatrooms"
+msgstr "Deine Chaträume"
-#: ../../include/enotify.php:164
-#, php-format
-msgid "%1$s, %2$s commented on an item/conversation you have been following."
-msgstr "%1$s, %2$s hat ein Thema kommentiert, dem du folgst."
+#: ../../include/nav.php:82 ../../include/nav.php:175
+#: ../../include/conversation.php:1506 ../../mod/events.php:354
+msgid "Events"
+msgstr "Veranstaltungen"
-#: ../../include/enotify.php:167 ../../include/enotify.php:186
-#: ../../include/enotify.php:212 ../../include/enotify.php:231
-#: ../../include/enotify.php:245
-#, php-format
-msgid "Please visit %s to view and/or reply to the conversation."
-msgstr "Bitte besuche %s, um die Konversation anzusehen und/oder zu kommentieren."
+#: ../../include/nav.php:82
+msgid "Your events"
+msgstr "Deine Veranstaltungen"
-#: ../../include/enotify.php:174
-#, php-format
-msgid "[Red:Notify] %s posted to your profile wall"
-msgstr "[Red:Hinweis] %s schrieb auf Deine Pinnwand"
+#: ../../include/nav.php:83 ../../include/conversation.php:1514
+msgid "Bookmarks"
+msgstr "Lesezeichen"
-#: ../../include/enotify.php:176
-#, php-format
-msgid "%1$s, %2$s posted to your profile wall at %3$s"
-msgstr "%1$s, %2$s hat auf deine Pinnwand auf %3$s geschrieben"
+#: ../../include/nav.php:83
+msgid "Your bookmarks"
+msgstr "Deine Lesezeichen"
-#: ../../include/enotify.php:178
-#, php-format
-msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]"
-msgstr "%1$s, %2$s hat auf [zrl=%3$s]deine Pinnwand[/zrl] geschrieben"
+#: ../../include/nav.php:85 ../../include/conversation.php:1525
+msgid "Webpages"
+msgstr "Webseiten"
-#: ../../include/enotify.php:205
-#, php-format
-msgid "[Red:Notify] %s tagged you"
-msgstr "[Red Notify] %s hat dich getaggt"
+#: ../../include/nav.php:85
+msgid "Your webpages"
+msgstr "Deine Webseiten"
-#: ../../include/enotify.php:206
-#, php-format
-msgid "%1$s, %2$s tagged you at %3$s"
-msgstr "%1$s, %2$s hat dich auf %3$s getaggt"
+#: ../../include/nav.php:89 ../../boot.php:1426
+msgid "Login"
+msgstr "Anmelden"
-#: ../../include/enotify.php:207
-#, php-format
-msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]."
-msgstr "%1$s, %2$s [zrl=%3$s]hat dich erwähnt[/zrl]."
+#: ../../include/nav.php:89
+msgid "Sign in"
+msgstr "Anmelden"
-#: ../../include/enotify.php:220
+#: ../../include/nav.php:106
#, php-format
-msgid "[Red:Notify] %1$s poked you"
-msgstr "[Red Notify] %1$s hat dich angestupst"
+msgid "%s - click to logout"
+msgstr "%s - Klick zum Abmelden"
-#: ../../include/enotify.php:221
-#, php-format
-msgid "%1$s, %2$s poked you at %3$s"
-msgstr "%1$s, %2$s hat dich auf %3$s angestubst"
+#: ../../include/nav.php:111
+msgid "Click to authenticate to your home hub"
+msgstr "Klicke, um Dich über Deinen Heimat-Server zu authentifizieren"
-#: ../../include/enotify.php:222
-#, php-format
-msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]."
-msgstr "%1$s, %2$s [zrl=%2$s]hat dich angestupst[/zrl]."
+#: ../../include/nav.php:125
+msgid "Home Page"
+msgstr "Homepage"
-#: ../../include/enotify.php:238
-#, php-format
-msgid "[Red:Notify] %s tagged your post"
-msgstr "[Red:Hinweis] %s hat Dich getagged"
+#: ../../include/nav.php:129 ../../mod/register.php:206 ../../boot.php:1402
+msgid "Register"
+msgstr "Registrieren"
-#: ../../include/enotify.php:239
-#, php-format
-msgid "%1$s, %2$s tagged your post at %3$s"
-msgstr "%1$s, %2$s hat deinen Beitrag auf %3$s getaggt"
+#: ../../include/nav.php:129
+msgid "Create an account"
+msgstr "Erzeuge ein Konto"
-#: ../../include/enotify.php:240
-#, php-format
-msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]"
-msgstr "%1$s, %2$s hat [zrl=%3$s]deinen Beitrag[/zrl] getaggt"
+#: ../../include/nav.php:134 ../../mod/help.php:60 ../../mod/help.php:64
+msgid "Help"
+msgstr "Hilfe"
-#: ../../include/enotify.php:252
-msgid "[Red:Notify] Introduction received"
-msgstr "[Red:Notify] Vorstellung erhalten"
+#: ../../include/nav.php:134
+msgid "Help and documentation"
+msgstr "Hilfe und Dokumentation"
-#: ../../include/enotify.php:253
-#, php-format
-msgid "%1$s, you've received an introduction from '%2$s' at %3$s"
-msgstr "%1$s, du hast eine Vorstellung von „%2$s“ auf %3$s erhalten"
+#: ../../include/nav.php:137
+msgid "Apps"
+msgstr "Apps"
-#: ../../include/enotify.php:254
-#, php-format
-msgid "%1$s, you've received [zrl=%2$s]an introduction[/zrl] from %3$s."
-msgstr "%1$s, du hast [zrl=%2$s]eine Vorstellung[/zrl] von %3$s erhalten."
+#: ../../include/nav.php:137
+msgid "Addon applications, utilities, games"
+msgstr "Addon Programme, Helferlein, Spiele"
-#: ../../include/enotify.php:258 ../../include/enotify.php:277
-#, php-format
-msgid "You may visit their profile at %s"
-msgstr "Du kannst Dir das Profil unter %s ansehen"
+#: ../../include/nav.php:139 ../../include/text.php:757
+#: ../../include/text.php:771 ../../mod/search.php:29
+msgid "Search"
+msgstr "Suche"
-#: ../../include/enotify.php:260
-#, php-format
-msgid "Please visit %s to approve or reject the introduction."
-msgstr "Bitte besuche %s um sie anzunehmen oder abzulehnen."
+#: ../../include/nav.php:139
+msgid "Search site content"
+msgstr "Durchsuche Seiten-Inhalt"
-#: ../../include/enotify.php:267
-msgid "[Red:Notify] Friend suggestion received"
-msgstr "[Red:Hinweis] Freundschaftsvorschlag erhalten"
+#: ../../include/nav.php:142 ../../mod/directory.php:211
+msgid "Directory"
+msgstr "Verzeichnis"
-#: ../../include/enotify.php:268
-#, php-format
-msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s"
-msgstr "%1$s, du hast einen Freundschaftsvorschlag von „%2$s“ auf %3$s erhalten"
+#: ../../include/nav.php:142
+msgid "Channel Locator"
+msgstr "Kanal-Anzeiger"
-#: ../../include/enotify.php:269
-#, php-format
-msgid ""
-"%1$s, you've received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from "
-"%4$s."
-msgstr "%1$s, du hast [zrl=%2$s]einen Freundschaftvorschlag[/zrl] für %3$s von %4$s erhalten."
+#: ../../include/nav.php:153
+msgid "Matrix"
+msgstr "Matrix"
-#: ../../include/enotify.php:275
-msgid "Name:"
-msgstr "Name:"
+#: ../../include/nav.php:153
+msgid "Your matrix"
+msgstr "Deine Matrix"
-#: ../../include/enotify.php:276
-msgid "Photo:"
-msgstr "Foto:"
+#: ../../include/nav.php:154
+msgid "Mark all matrix notifications seen"
+msgstr "Markiere alle Matrix-Benachrichtigungen als angesehen"
-#: ../../include/enotify.php:279
-#, php-format
-msgid "Please visit %s to approve or reject the suggestion."
-msgstr "Bitte besuche %s um den Vorschlag zu akzeptieren oder abzulehnen."
+#: ../../include/nav.php:156
+msgid "Channel Home"
+msgstr "Mein Kanal"
-#: ../../include/ItemObject.php:88 ../../mod/photos.php:952
-msgid "Private Message"
-msgstr "Private Nachricht"
+#: ../../include/nav.php:156
+msgid "Channel home"
+msgstr "Mein Kanal"
-#: ../../include/ItemObject.php:95 ../../include/page_widgets.php:8
-#: ../../mod/webpages.php:101 ../../mod/settings.php:713 ../../mod/menu.php:55
-#: ../../mod/layouts.php:102 ../../mod/editlayout.php:100
-#: ../../mod/editwebpage.php:119 ../../mod/blocks.php:93
-#: ../../mod/editpost.php:97 ../../mod/editblock.php:114
-msgid "Edit"
-msgstr "Bearbeiten"
+#: ../../include/nav.php:157
+msgid "Mark all channel notifications seen"
+msgstr "Markiere alle Kanal-Benachrichtigungen als angesehen"
-#: ../../include/ItemObject.php:107 ../../include/conversation.php:628
-#: ../../mod/settings.php:714 ../../mod/admin.php:690 ../../mod/group.php:182
-#: ../../mod/photos.php:1130 ../../mod/connections.php:374
-#: ../../mod/filestorage.php:82
-msgid "Delete"
-msgstr "Löschen"
+#: ../../include/nav.php:160
+msgid "Intros"
+msgstr "Vorstellungen"
-#: ../../include/ItemObject.php:113 ../../include/conversation.php:627
-msgid "Select"
-msgstr "Auswählen"
+#: ../../include/nav.php:160 ../../mod/connections.php:244
+msgid "New Connections"
+msgstr "Neue Verbindungen"
-#: ../../include/ItemObject.php:117
-msgid "save to folder"
-msgstr "In Ordner speichern"
+#: ../../include/nav.php:163
+msgid "Notices"
+msgstr "Benachrichtigungen"
-#: ../../include/ItemObject.php:145
-msgid "add star"
-msgstr "markieren"
+#: ../../include/nav.php:163
+msgid "Notifications"
+msgstr "Benachrichtigungen"
-#: ../../include/ItemObject.php:146
-msgid "remove star"
-msgstr "Markierung entfernen"
+#: ../../include/nav.php:164
+msgid "See all notifications"
+msgstr "Alle Benachrichtigungen ansehen"
-#: ../../include/ItemObject.php:147
-msgid "toggle star status"
-msgstr "Stern-Status umschalten"
+#: ../../include/nav.php:165
+msgid "Mark all system notifications seen"
+msgstr "Markiere alle System-Benachrichtigungen als gesehen"
-#: ../../include/ItemObject.php:151
-msgid "starred"
-msgstr "markiert"
+#: ../../include/nav.php:167
+msgid "Mail"
+msgstr "Mail"
-#: ../../include/ItemObject.php:160 ../../include/conversation.php:638
-msgid "Message is verified"
-msgstr "Nachricht überprüft"
+#: ../../include/nav.php:167
+msgid "Private mail"
+msgstr "Persönliche Mail"
-#: ../../include/ItemObject.php:168
-msgid "add tag"
-msgstr "Schlagwort hinzufügen"
+#: ../../include/nav.php:168
+msgid "See all private messages"
+msgstr "Alle persönlichen Nachrichten ansehen"
-#: ../../include/ItemObject.php:174 ../../mod/photos.php:1058
-msgid "I like this (toggle)"
-msgstr "Ich mag das (Umschalter)"
+#: ../../include/nav.php:169
+msgid "Mark all private messages seen"
+msgstr "Markiere alle persönlichen Nachrichten als gesehen"
-#: ../../include/ItemObject.php:174 ../../include/taxonomy.php:251
-msgid "like"
-msgstr "Gefällt-mir"
+#: ../../include/nav.php:170
+msgid "Inbox"
+msgstr "Eingang"
-#: ../../include/ItemObject.php:175 ../../mod/photos.php:1059
-msgid "I don't like this (toggle)"
-msgstr "Ich mag das nicht (Umschalter)"
+#: ../../include/nav.php:171
+msgid "Outbox"
+msgstr "Ausgang"
-#: ../../include/ItemObject.php:175 ../../include/taxonomy.php:252
-msgid "dislike"
-msgstr "Gefällt-mir-nicht"
+#: ../../include/nav.php:175
+msgid "Event Calendar"
+msgstr "Veranstaltungskalender"
-#: ../../include/ItemObject.php:177
-msgid "Share this"
-msgstr "Teile dies"
+#: ../../include/nav.php:176
+msgid "See all events"
+msgstr "Alle Ereignisse ansehen"
-#: ../../include/ItemObject.php:177
-msgid "share"
-msgstr "Teilen"
+#: ../../include/nav.php:177
+msgid "Mark all events seen"
+msgstr "Markiere alle Ereignisse als gesehen"
-#: ../../include/ItemObject.php:201 ../../include/ItemObject.php:202
-#, php-format
-msgid "View %s's profile - %s"
-msgstr "Schaue dir %s's Profil an - %s"
+#: ../../include/nav.php:179
+msgid "Channel Select"
+msgstr "Kanal-Auswahl"
-#: ../../include/ItemObject.php:203
-msgid "to"
-msgstr "zu"
+#: ../../include/nav.php:179
+msgid "Manage Your Channels"
+msgstr "Verwalte Deine Kanäle"
-#: ../../include/ItemObject.php:204
-msgid "via"
-msgstr "via"
+#: ../../include/nav.php:181
+msgid "Account/Channel Settings"
+msgstr "Konto-/Kanal-Einstellungen"
-#: ../../include/ItemObject.php:205
-msgid "Wall-to-Wall"
-msgstr "Wall-to-Wall"
+#: ../../include/nav.php:183 ../../mod/connections.php:351
+msgid "Connections"
+msgstr "Verbindungen"
-#: ../../include/ItemObject.php:206
-msgid "via Wall-To-Wall:"
-msgstr "via Wall-To-Wall:"
+#: ../../include/nav.php:183
+msgid "Manage/Edit Friends and Connections"
+msgstr "Freunde und Verbindungen verwalten"
-#: ../../include/ItemObject.php:216 ../../include/conversation.php:682
-#, php-format
-msgid " from %s"
-msgstr "von %s"
+#: ../../include/nav.php:190 ../../mod/admin.php:112
+msgid "Admin"
+msgstr "Admin"
-#: ../../include/ItemObject.php:219 ../../include/conversation.php:685
-#, php-format
-msgid "last edited: %s"
-msgstr "zuletzt bearbeitet: %s"
+#: ../../include/nav.php:190
+msgid "Site Setup and Configuration"
+msgstr "Seiten-Einrichtung und -Konfiguration"
-#: ../../include/ItemObject.php:246 ../../include/conversation.php:702
-#: ../../include/conversation.php:1112 ../../mod/photos.php:1061
-#: ../../mod/message.php:332 ../../mod/message.php:516
-#: ../../mod/editlayout.php:109 ../../mod/editwebpage.php:128
-#: ../../mod/editpost.php:106 ../../mod/editblock.php:123
-msgid "Please wait"
-msgstr "Bitte warten"
+#: ../../include/nav.php:216
+msgid "Nothing new here"
+msgstr "Nichts Neues hier"
+
+#: ../../include/nav.php:221
+msgid "Please wait..."
+msgstr "Bitte warten..."
+
+#: ../../include/text.php:315
+msgid "prev"
+msgstr "vorherige"
-#: ../../include/ItemObject.php:267
+#: ../../include/text.php:317
+msgid "first"
+msgstr "erste"
+
+#: ../../include/text.php:346
+msgid "last"
+msgstr "letzte"
+
+#: ../../include/text.php:349
+msgid "next"
+msgstr "nächste"
+
+#: ../../include/text.php:361
+msgid "older"
+msgstr "älter"
+
+#: ../../include/text.php:363
+msgid "newer"
+msgstr "neuer"
+
+#: ../../include/text.php:675
+msgid "No connections"
+msgstr "Keine Verbindungen"
+
+#: ../../include/text.php:686
#, php-format
-msgid "%d comment"
-msgid_plural "%d comments"
-msgstr[0] "%d Kommentar"
-msgstr[1] "%d Kommentare"
+msgid "%d Connection"
+msgid_plural "%d Connections"
+msgstr[0] "%d Verbindung"
+msgstr[1] "%d Verbindungen"
-#: ../../include/ItemObject.php:268 ../../include/js_strings.php:7
-#: ../../include/contact_widgets.php:148
-msgid "show more"
-msgstr "mehr zeigen"
+#: ../../include/text.php:698
+msgid "View Connections"
+msgstr "Verbindungen anzeigen"
-#: ../../include/ItemObject.php:527 ../../mod/photos.php:1077
-#: ../../mod/photos.php:1164
-msgid "This is you"
-msgstr "Das bist du"
+#: ../../include/text.php:839
+msgid "poke"
+msgstr "anstupsen"
-#: ../../include/ItemObject.php:529 ../../include/js_strings.php:6
-#: ../../mod/photos.php:1079 ../../mod/photos.php:1166
-msgid "Comment"
+#: ../../include/text.php:839 ../../include/conversation.php:240
+msgid "poked"
+msgstr "stupste"
+
+#: ../../include/text.php:840
+msgid "ping"
+msgstr "anpingen"
+
+#: ../../include/text.php:840
+msgid "pinged"
+msgstr "pingte"
+
+#: ../../include/text.php:841
+msgid "prod"
+msgstr "knuffen"
+
+#: ../../include/text.php:841
+msgid "prodded"
+msgstr "knuffte"
+
+#: ../../include/text.php:842
+msgid "slap"
+msgstr "ohrfeigen"
+
+#: ../../include/text.php:842
+msgid "slapped"
+msgstr "ohrfeigte"
+
+#: ../../include/text.php:843
+msgid "finger"
+msgstr "befummeln"
+
+#: ../../include/text.php:843
+msgid "fingered"
+msgstr "befummelte"
+
+#: ../../include/text.php:844
+msgid "rebuff"
+msgstr "eine Abfuhr erteilen"
+
+#: ../../include/text.php:844
+msgid "rebuffed"
+msgstr "abfuhrerteilte"
+
+#: ../../include/text.php:856
+msgid "happy"
+msgstr "glücklich"
+
+#: ../../include/text.php:857
+msgid "sad"
+msgstr "traurig"
+
+#: ../../include/text.php:858
+msgid "mellow"
+msgstr "sanft"
+
+#: ../../include/text.php:859
+msgid "tired"
+msgstr "müde"
+
+#: ../../include/text.php:860
+msgid "perky"
+msgstr "frech"
+
+#: ../../include/text.php:861
+msgid "angry"
+msgstr "sauer"
+
+#: ../../include/text.php:862
+msgid "stupified"
+msgstr "verblüfft"
+
+#: ../../include/text.php:863
+msgid "puzzled"
+msgstr "verwirrt"
+
+#: ../../include/text.php:864
+msgid "interested"
+msgstr "interessiert"
+
+#: ../../include/text.php:865
+msgid "bitter"
+msgstr "verbittert"
+
+#: ../../include/text.php:866
+msgid "cheerful"
+msgstr "fröhlich"
+
+#: ../../include/text.php:867
+msgid "alive"
+msgstr "lebendig"
+
+#: ../../include/text.php:868
+msgid "annoyed"
+msgstr "verärgert"
+
+#: ../../include/text.php:869
+msgid "anxious"
+msgstr "unruhig"
+
+#: ../../include/text.php:870
+msgid "cranky"
+msgstr "schrullig"
+
+#: ../../include/text.php:871
+msgid "disturbed"
+msgstr "verstört"
+
+#: ../../include/text.php:872
+msgid "frustrated"
+msgstr "frustriert"
+
+#: ../../include/text.php:873
+msgid "motivated"
+msgstr "motiviert"
+
+#: ../../include/text.php:874
+msgid "relaxed"
+msgstr "entspannt"
+
+#: ../../include/text.php:875
+msgid "surprised"
+msgstr "überrascht"
+
+#: ../../include/text.php:1036
+msgid "Monday"
+msgstr "Montag"
+
+#: ../../include/text.php:1036
+msgid "Tuesday"
+msgstr "Dienstag"
+
+#: ../../include/text.php:1036
+msgid "Wednesday"
+msgstr "Mittwoch"
+
+#: ../../include/text.php:1036
+msgid "Thursday"
+msgstr "Donnerstag"
+
+#: ../../include/text.php:1036
+msgid "Friday"
+msgstr "Freitag"
+
+#: ../../include/text.php:1036
+msgid "Saturday"
+msgstr "Samstag"
+
+#: ../../include/text.php:1036
+msgid "Sunday"
+msgstr "Sonntag"
+
+#: ../../include/text.php:1040
+msgid "January"
+msgstr "Januar"
+
+#: ../../include/text.php:1040
+msgid "February"
+msgstr "Februar"
+
+#: ../../include/text.php:1040
+msgid "March"
+msgstr "März"
+
+#: ../../include/text.php:1040
+msgid "April"
+msgstr "April"
+
+#: ../../include/text.php:1040
+msgid "May"
+msgstr "Mai"
+
+#: ../../include/text.php:1040
+msgid "June"
+msgstr "Juni"
+
+#: ../../include/text.php:1040
+msgid "July"
+msgstr "Juli"
+
+#: ../../include/text.php:1040
+msgid "August"
+msgstr "August"
+
+#: ../../include/text.php:1040
+msgid "September"
+msgstr "September"
+
+#: ../../include/text.php:1040
+msgid "October"
+msgstr "Oktober"
+
+#: ../../include/text.php:1040
+msgid "November"
+msgstr "November"
+
+#: ../../include/text.php:1040
+msgid "December"
+msgstr "Dezember"
+
+#: ../../include/text.php:1118
+msgid "unknown.???"
+msgstr "unbekannt.???"
+
+#: ../../include/text.php:1119
+msgid "bytes"
+msgstr "Bytes"
+
+#: ../../include/text.php:1154
+msgid "remove category"
+msgstr "Kategorie entfernen"
+
+#: ../../include/text.php:1176
+msgid "remove from file"
+msgstr "aus der Datei entfernen"
+
+#: ../../include/text.php:1234 ../../include/text.php:1246
+msgid "Click to open/close"
+msgstr "Klicke zum Öffnen/Schließen"
+
+#: ../../include/text.php:1401 ../../mod/events.php:332
+msgid "link to source"
+msgstr "Link zum Originalbeitrag"
+
+#: ../../include/text.php:1420
+msgid "Select a page layout: "
+msgstr "Ein Seiten-Layout auswählen:"
+
+#: ../../include/text.php:1423 ../../include/text.php:1488
+msgid "default"
+msgstr "Standard"
+
+#: ../../include/text.php:1459
+msgid "Page content type: "
+msgstr "Content-Typ der Seite:"
+
+#: ../../include/text.php:1500
+msgid "Select an alternate language"
+msgstr "Wähle eine alternative Sprache"
+
+#: ../../include/text.php:1621 ../../include/conversation.php:117
+#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:45
+msgid "photo"
+msgstr "Foto"
+
+#: ../../include/text.php:1624 ../../include/conversation.php:120
+#: ../../mod/tagger.php:49
+msgid "event"
+msgstr "Ereignis"
+
+#: ../../include/text.php:1627 ../../include/conversation.php:145
+#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:53
+msgid "status"
+msgstr "Status"
+
+#: ../../include/text.php:1629 ../../include/conversation.php:147
+#: ../../mod/tagger.php:55
+msgid "comment"
msgstr "Kommentar"
-#: ../../include/ItemObject.php:530 ../../mod/events.php:458
-#: ../../mod/thing.php:190 ../../mod/invite.php:154 ../../mod/setup.php:302
-#: ../../mod/setup.php:345 ../../mod/settings.php:651
-#: ../../mod/settings.php:763 ../../mod/settings.php:791
-#: ../../mod/settings.php:815 ../../mod/settings.php:886
-#: ../../mod/settings.php:1054 ../../mod/connect.php:96
-#: ../../mod/sources.php:83 ../../mod/sources.php:110 ../../mod/admin.php:418
-#: ../../mod/admin.php:683 ../../mod/admin.php:823 ../../mod/admin.php:1022
-#: ../../mod/admin.php:1109 ../../mod/group.php:87 ../../mod/photos.php:685
-#: ../../mod/photos.php:779 ../../mod/photos.php:1040
-#: ../../mod/photos.php:1080 ../../mod/photos.php:1167
-#: ../../mod/message.php:333 ../../mod/message.php:515
-#: ../../mod/connections.php:452 ../../mod/profiles.php:529
-#: ../../mod/import.php:385 ../../mod/crepair.php:166 ../../mod/poke.php:166
-#: ../../mod/fsuggest.php:108 ../../mod/mood.php:137
-#: ../../view/theme/redbasic/php/config.php:85
-#: ../../view/theme/apw/php/config.php:231
-#: ../../view/theme/blogga/view/theme/blog/config.php:67
-#: ../../view/theme/blogga/php/config.php:67
-msgid "Submit"
-msgstr "Bestätigen"
+#: ../../include/text.php:1634
+msgid "activity"
+msgstr "Aktivität"
-#: ../../include/ItemObject.php:531
-msgid "Bold"
-msgstr "Fett"
+#: ../../include/text.php:1891
+msgid "Design"
+msgstr "Design"
-#: ../../include/ItemObject.php:532
-msgid "Italic"
-msgstr "Kursiv"
+#: ../../include/text.php:1893
+msgid "Blocks"
+msgstr "Blöcke"
-#: ../../include/ItemObject.php:533
-msgid "Underline"
-msgstr "Unterstrichen"
+#: ../../include/text.php:1894
+msgid "Menus"
+msgstr "Menüs"
-#: ../../include/ItemObject.php:534
-msgid "Quote"
-msgstr "Zitat"
+#: ../../include/text.php:1895
+msgid "Layouts"
+msgstr "Layouts"
-#: ../../include/ItemObject.php:535
-msgid "Code"
-msgstr "Code"
+#: ../../include/text.php:1896
+msgid "Pages"
+msgstr "Seiten"
-#: ../../include/ItemObject.php:536
-msgid "Image"
-msgstr "Bild"
+#: ../../include/bbcode.php:128 ../../include/bbcode.php:601
+#: ../../include/bbcode.php:604 ../../include/bbcode.php:609
+#: ../../include/bbcode.php:612 ../../include/bbcode.php:615
+#: ../../include/bbcode.php:618 ../../include/bbcode.php:623
+#: ../../include/bbcode.php:626 ../../include/bbcode.php:631
+#: ../../include/bbcode.php:634 ../../include/bbcode.php:637
+#: ../../include/bbcode.php:640
+msgid "Image/photo"
+msgstr "Bild/Foto"
-#: ../../include/ItemObject.php:537
-msgid "Link"
-msgstr "Link"
+#: ../../include/bbcode.php:163 ../../include/bbcode.php:651
+msgid "Encrypted content"
+msgstr "Verschlüsselter Inhalt"
-#: ../../include/ItemObject.php:538
-msgid "Video"
-msgstr "Video"
+#: ../../include/bbcode.php:170
+msgid "QR code"
+msgstr "QR-Code"
-#: ../../include/ItemObject.php:539 ../../include/conversation.php:1075
-#: ../../mod/webpages.php:105 ../../mod/photos.php:1081
-#: ../../mod/editlayout.php:129 ../../mod/editwebpage.php:150
-#: ../../mod/editpost.php:126 ../../mod/editblock.php:144
-msgid "Preview"
-msgstr "Vorschau"
+#: ../../include/bbcode.php:213
+#, php-format
+msgid "%1$s wrote the following %2$s %3$s"
+msgstr "%1$s schrieb den folgenden %2$s %3$s"
-#: ../../include/ItemObject.php:542 ../../include/conversation.php:1139
-#: ../../mod/message.php:338 ../../mod/message.php:521
-#: ../../mod/editpost.php:134
-msgid "Encrypt text"
-msgstr "Text verschlüsseln"
+#: ../../include/bbcode.php:215
+msgid "post"
+msgstr "Beitrag"
-#: ../../include/Contact.php:87 ../../include/contact_widgets.php:23
-#: ../../mod/match.php:58 ../../mod/suggest.php:56 ../../mod/directory.php:198
-#: ../../boot.php:1741
-msgid "Connect"
-msgstr "Verbinden"
+#: ../../include/bbcode.php:569 ../../include/bbcode.php:589
+msgid "$1 wrote:"
+msgstr "$1 schrieb:"
-#: ../../include/Contact.php:103
+#: ../../include/Contact.php:123
msgid "New window"
msgstr "Neues Fenster"
-#: ../../include/Contact.php:104
+#: ../../include/Contact.php:124
msgid "Open the selected location in a different window or browser tab"
msgstr "Öffne die markierte Adresse in einem neuen Browser Fenster oder Tab"
-#: ../../include/Contact.php:524 ../../include/conversation.php:930
-msgid "Poke"
-msgstr "Anstupsen"
+#: ../../include/features.php:23
+msgid "General Features"
+msgstr "Allgemeine Funktionen"
-#: ../../include/Contact.php:525 ../../include/conversation.php:924
-msgid "View Status"
-msgstr "Status ansehen"
+#: ../../include/features.php:25
+msgid "Content Expiration"
+msgstr "Verfall von Inhalten"
-#: ../../include/Contact.php:526 ../../include/nav.php:76
-#: ../../include/conversation.php:925 ../../mod/connections.php:327
-#: ../../mod/connections.php:441
-msgid "View Profile"
-msgstr "Profil ansehen"
+#: ../../include/features.php:25
+msgid "Remove posts/comments and/or private messages at a future time"
+msgstr "Lösche Beiträge, Kommentare und/oder private Nachrichten automatisch zu einem zukünftigen Datum."
-#: ../../include/Contact.php:527 ../../include/conversation.php:926
-msgid "View Photos"
-msgstr "Fotos ansehen"
+#: ../../include/features.php:26
+msgid "Multiple Profiles"
+msgstr "Mehrfachprofile"
-#: ../../include/Contact.php:528
-msgid "Network Posts"
-msgstr "Netzwerkbeiträge"
+#: ../../include/features.php:26
+msgid "Ability to create multiple profiles"
+msgstr "Mehrfachprofile anlegen können"
-#: ../../include/Contact.php:529 ../../include/conversation.php:928
-msgid "Edit Contact"
-msgstr "Kontakt bearbeiten"
+#: ../../include/features.php:27
+msgid "Web Pages"
+msgstr "Webseiten"
-#: ../../include/Contact.php:530 ../../include/conversation.php:929
-msgid "Send PM"
-msgstr "Sende PN"
+#: ../../include/features.php:27
+msgid "Provide managed web pages on your channel"
+msgstr "Stelle verwaltete Webseiten in Deinem Kanal zur Verfügung"
+
+#: ../../include/features.php:28
+msgid "Private Notes"
+msgstr "Private Notizen"
+
+#: ../../include/features.php:28
+msgid "Enables a tool to store notes and reminders"
+msgstr "Werkzeug zum Speichern von Notizen und Erinnerungen aktivieren"
+
+#: ../../include/features.php:33
+msgid "Extended Identity Sharing"
+msgstr "Erweitertes Teilen von Identitäten"
+
+#: ../../include/features.php:33
+msgid ""
+"Share your identity with all websites on the internet. When disabled, "
+"identity is only shared with sites in the matrix."
+msgstr "Teile Deine Identität mit allen Webseiten im Internet. Ist dies deaktiviert, wird Deine Identität nur mit Red-Servern geteilt."
+
+#: ../../include/features.php:34
+msgid "Expert Mode"
+msgstr "Expertenmodus"
+
+#: ../../include/features.php:34
+msgid "Enable Expert Mode to provide advanced configuration options"
+msgstr "Aktiviere den Expertenmodus, um fortgeschrittene Konfigurationsoptionen zu aktivieren"
+
+#: ../../include/features.php:35
+msgid "Premium Channel"
+msgstr "Premium-Kanal"
+
+#: ../../include/features.php:35
+msgid ""
+"Allows you to set restrictions and terms on those that connect with your "
+"channel"
+msgstr "Ermöglicht Einschränkungen und Bedingungen für Kontakte dieses Kanals"
+
+#: ../../include/features.php:40
+msgid "Post Composition Features"
+msgstr "Nachbearbeitungsfunktionen"
+
+#: ../../include/features.php:41
+msgid "Richtext Editor"
+msgstr "Formatierungseditor"
+
+#: ../../include/features.php:41
+msgid "Enable richtext editor"
+msgstr "Aktiviere Formatierungseditor"
+
+#: ../../include/features.php:42
+msgid "Post Preview"
+msgstr "Voransicht"
+
+#: ../../include/features.php:42
+msgid "Allow previewing posts and comments before publishing them"
+msgstr "Erlaube Voransicht von Beiträgen und Kommentaren vor Veröffentlichung"
+
+#: ../../include/features.php:43
+msgid "Automatically import channel content from other channels or feeds"
+msgstr "Importiere automatisch Inhalte für diesen Kanal von anderen Kanälen oder Feeds"
+
+#: ../../include/features.php:44
+msgid "Even More Encryption"
+msgstr "Noch mehr Verschlüsselung"
+
+#: ../../include/features.php:44
+msgid ""
+"Allow optional encryption of content end-to-end with a shared secret key"
+msgstr "Erlaube optionale Verschlüsselung von Inhalten (Ende-zu-Ende mit geteiltem Sicherheitsschlüssel)"
+
+#: ../../include/features.php:49
+msgid "Network and Stream Filtering"
+msgstr "Netzwerk- und Stream-Filter"
+
+#: ../../include/features.php:50
+msgid "Search by Date"
+msgstr "Suche nach Datum"
+
+#: ../../include/features.php:50
+msgid "Ability to select posts by date ranges"
+msgstr "Möglichkeit, Beiträge nach Zeiträumen auszuwählen"
+
+#: ../../include/features.php:51
+msgid "Collections Filter"
+msgstr "Filter für Sammlung"
+
+#: ../../include/features.php:51
+msgid "Enable widget to display Network posts only from selected collections"
+msgstr "Aktiviere nur Netzwerk-Beiträge von ausgewählten Sammlungen"
+
+#: ../../include/features.php:52
+msgid "Save search terms for re-use"
+msgstr "Gesicherte Suchbegriffe zur Wiederverwendung"
+
+#: ../../include/features.php:53
+msgid "Network Personal Tab"
+msgstr "Persönlicher Netzwerkreiter"
+
+#: ../../include/features.php:53
+msgid "Enable tab to display only Network posts that you've interacted on"
+msgstr "Aktiviere Reiter nur für die Netzwerk-Beiträge, mit denen Du interagiert hast"
+
+#: ../../include/features.php:54
+msgid "Network New Tab"
+msgstr "Netzwerkreiter Neu"
+
+#: ../../include/features.php:54
+msgid "Enable tab to display all new Network activity"
+msgstr "Aktiviere Reiter, um alle neuen Netzwerkaktivitäten zu zeigen"
+
+#: ../../include/features.php:55
+msgid "Affinity Tool"
+msgstr "Beziehungs-Tool"
+
+#: ../../include/features.php:55
+msgid "Filter stream activity by depth of relationships"
+msgstr "Filter Aktivitätenstream nach Tiefe der Beziehung"
+
+#: ../../include/features.php:56
+msgid "Suggest Channels"
+msgstr "Kanäle vorschlagen"
+
+#: ../../include/features.php:56
+msgid "Show channel suggestions"
+msgstr "Kanal-Vorschläge anzeigen"
+
+#: ../../include/features.php:61
+msgid "Post/Comment Tools"
+msgstr "Beitrag-/Kommentar-Tools"
+
+#: ../../include/features.php:63
+msgid "Edit Sent Posts"
+msgstr "Bearbeite gesendete Beiträge"
+
+#: ../../include/features.php:63
+msgid "Edit and correct posts and comments after sending"
+msgstr "Bearbeite und korrigiere Beiträge und Kommentare nach dem Senden"
+
+#: ../../include/features.php:64
+msgid "Tagging"
+msgstr "Verschlagworten"
+
+#: ../../include/features.php:64
+msgid "Ability to tag existing posts"
+msgstr "Möglichkeit, um existierende Beiträge zu verschlagworten"
+
+#: ../../include/features.php:65
+msgid "Post Categories"
+msgstr "Beitrags-Kategorien"
+
+#: ../../include/features.php:65
+msgid "Add categories to your posts"
+msgstr "Kategorien für Beiträge"
+
+#: ../../include/features.php:66
+msgid "Ability to file posts under folders"
+msgstr "Möglichkeit, Beiträge in Verzeichnissen zu sammeln"
+
+#: ../../include/features.php:67
+msgid "Dislike Posts"
+msgstr "Gefällt-mir-nicht Beiträge"
+
+#: ../../include/features.php:67
+msgid "Ability to dislike posts/comments"
+msgstr "„Gefällt mir nicht“ ermöglichen"
+
+#: ../../include/features.php:68
+msgid "Star Posts"
+msgstr "Beiträge mit Sternchen versehen"
+
+#: ../../include/features.php:68
+msgid "Ability to mark special posts with a star indicator"
+msgstr "Möglichkeit, spezielle Beiträge mit Sternchen-Symbol zu markieren"
+
+#: ../../include/features.php:69
+msgid "Tag Cloud"
+msgstr "Schlagwort-Wolke"
+
+#: ../../include/features.php:69
+msgid "Provide a personal tag cloud on your channel page"
+msgstr "Persönliche Schlagwort-Wolke auf Deiner Kanal-Seite anzeigen"
#: ../../include/contact_selectors.php:30
msgid "Unknown | Not categorised"
@@ -562,8 +1131,8 @@ msgstr "OStatus"
msgid "RSS/Atom"
msgstr "RSS/Atom"
-#: ../../include/contact_selectors.php:77 ../../mod/admin.php:686
-#: ../../mod/admin.php:695 ../../boot.php:1461
+#: ../../include/contact_selectors.php:77 ../../mod/admin.php:742
+#: ../../mod/admin.php:751 ../../boot.php:1428
msgid "Email"
msgstr "E-Mail"
@@ -667,7 +1236,7 @@ msgstr "vor %1$d %2$s"
#: ../../include/dba/dba_driver.php:50
#, php-format
msgid "Cannot locate DNS info for database server '%s'"
-msgstr "Kann die DNS Information für den Datenbank Server '%s' nicht finden"
+msgstr "Kann die DNS-Informationen für den Datenbank-Server '%s' nicht finden"
#: ../../include/event.php:11 ../../include/bb2diaspora.php:433
msgid "l F d, Y \\@ g:i A"
@@ -681,223 +1250,12 @@ msgstr "Beginnt:"
msgid "Finishes:"
msgstr "Endet:"
-#: ../../include/event.php:40 ../../include/bb2diaspora.php:455
-#: ../../mod/events.php:450 ../../mod/directory.php:173 ../../boot.php:1791
+#: ../../include/event.php:40 ../../include/identity.php:683
+#: ../../include/bb2diaspora.php:455 ../../mod/events.php:462
+#: ../../mod/directory.php:157 ../../mod/dirprofile.php:111
msgid "Location:"
msgstr "Ort:"
-#: ../../include/features.php:21
-msgid "General Features"
-msgstr "Allgemeine Funktionen"
-
-#: ../../include/features.php:23
-msgid "Content Expiration"
-msgstr "Verfall von Inhalten"
-
-#: ../../include/features.php:23
-msgid "Remove posts/comments and/or private messages at a future time"
-msgstr "Lösche Beiträge, Kommentare und/oder private Nachrichten automatisch zu einem zukünftigen Datum."
-
-#: ../../include/features.php:24
-msgid "Multiple Profiles"
-msgstr "Mehrfachprofile"
-
-#: ../../include/features.php:24
-msgid "Ability to create multiple profiles"
-msgstr "Mehrfachprofile anlegen können"
-
-#: ../../include/features.php:25
-msgid "Web Pages"
-msgstr "Webseiten"
-
-#: ../../include/features.php:25
-msgid "Provide managed web pages on your channel"
-msgstr "Stelle verwaltete Webseiten in Deinem Kanal zur Verfügung"
-
-#: ../../include/features.php:26
-msgid "Enhanced Photo Albums"
-msgstr "Erweitertes Fotoalbum"
-
-#: ../../include/features.php:26
-msgid "Enable photo album with enhanced features"
-msgstr "Aktiviere Fotoalbum mit erweiterten Funktionen"
-
-#: ../../include/features.php:28
-msgid "Extended Identity Sharing"
-msgstr "Erweitertes Teilen von Identitäten"
-
-#: ../../include/features.php:28 ../../include/js_strings.php:30
-msgid " "
-msgstr " "
-
-#: ../../include/features.php:29
-msgid "Expert Mode"
-msgstr "Expertenmodus"
-
-#: ../../include/features.php:29
-msgid "Enable Expert Mode to provide advanced configuration options"
-msgstr "Aktiviere Expertenmodus, um fortgeschrittene Konfiguration zur Verfügung zu stellen"
-
-#: ../../include/features.php:30
-msgid "Premium Channel"
-msgstr "Premium-Kanal"
-
-#: ../../include/features.php:30
-msgid ""
-"Allows you to set restrictions and terms on those that connect with your "
-"channel"
-msgstr "Erlaubt es dir Einschränkungen für Kontakte und bestimmte Bedingungen an Kontakte zu diesem Kanal zu stellen"
-
-#: ../../include/features.php:35
-msgid "Post Composition Features"
-msgstr "Nachbearbeitungsfunktionen"
-
-#: ../../include/features.php:36
-msgid "Richtext Editor"
-msgstr "Formatierungseditor"
-
-#: ../../include/features.php:36
-msgid "Enable richtext editor"
-msgstr "Aktiviere Formatierungseditor"
-
-#: ../../include/features.php:37
-msgid "Post Preview"
-msgstr "Voransicht"
-
-#: ../../include/features.php:37
-msgid "Allow previewing posts and comments before publishing them"
-msgstr "Erlaube Voransicht von Beiträgen und Kommentaren vor Veröffentlichung"
-
-#: ../../include/features.php:38 ../../mod/settings.php:120
-#: ../../mod/sources.php:67
-msgid "Channel Sources"
-msgstr "Kanal Quellen"
-
-#: ../../include/features.php:38
-msgid "Automatically import channel content from other channels or feeds"
-msgstr "Importiere automatisch Inhalte für diesen Kanal von anderen Kanälen oder Feeds."
-
-#: ../../include/features.php:39
-msgid "Even More Encryption"
-msgstr "Noch mehr Verschlüsselung"
-
-#: ../../include/features.php:39
-msgid "Allow encryption of content end-to-end with a shared secret key"
-msgstr "Erlaube Ende-zu-Ende Verschlüsselung von Inhalten, mit einem geteilten geheimen Schlüssel"
-
-#: ../../include/features.php:44
-msgid "Network and Stream Filtering"
-msgstr "Netzwerk- und Stream-Filter"
-
-#: ../../include/features.php:45
-msgid "Search by Date"
-msgstr "Suche nach Datum"
-
-#: ../../include/features.php:45
-msgid "Ability to select posts by date ranges"
-msgstr "Möglichkeit, Beiträge nach Zeiträumen auszuwählen"
-
-#: ../../include/features.php:46
-msgid "Collections Filter"
-msgstr "Filter für Sammlung"
-
-#: ../../include/features.php:46
-msgid "Enable widget to display Network posts only from selected collections"
-msgstr "Aktiviere nur Netzwerk-Beiträge von ausgewählten Sammlungen"
-
-#: ../../include/features.php:47 ../../mod/search.php:17
-#: ../../mod/network.php:173
-msgid "Saved Searches"
-msgstr "Gesicherte Suchanfragen"
-
-#: ../../include/features.php:47
-msgid "Save search terms for re-use"
-msgstr "Gesicherte Suchbegriffe zur Wiederverwendung"
-
-#: ../../include/features.php:48
-msgid "Network Personal Tab"
-msgstr "Persönlicher Netzwerkreiter"
-
-#: ../../include/features.php:48
-msgid "Enable tab to display only Network posts that you've interacted on"
-msgstr "Aktiviere Reiter nur für die Netzwerk-Beiträge, mit denen Du interagiert hast"
-
-#: ../../include/features.php:49
-msgid "Network New Tab"
-msgstr "Netzwerkreiter Neu"
-
-#: ../../include/features.php:49
-msgid "Enable tab to display all new Network activity"
-msgstr "Aktiviere Reiter, um alle neuen Netzwerkaktivitäten zu zeigen"
-
-#: ../../include/features.php:50
-msgid "Affinity Tool"
-msgstr "Beziehungs-Tool"
-
-#: ../../include/features.php:50
-msgid "Filter stream activity by depth of relationships"
-msgstr "Filter Aktivitätenstream nach Tiefe der Beziehung"
-
-#: ../../include/features.php:55
-msgid "Post/Comment Tools"
-msgstr "Beitrag-/Kommentar-Tools"
-
-#: ../../include/features.php:57
-msgid "Edit Sent Posts"
-msgstr "Bearbeite gesendete Beiträge"
-
-#: ../../include/features.php:57
-msgid "Edit and correct posts and comments after sending"
-msgstr "Bearbeite und korrigiere Beiträge und Kommentare nach dem Senden"
-
-#: ../../include/features.php:58
-msgid "Tagging"
-msgstr "Verschlagworten"
-
-#: ../../include/features.php:58
-msgid "Ability to tag existing posts"
-msgstr "Möglichkeit, um existierende Beiträge zu verschlagworten"
-
-#: ../../include/features.php:59
-msgid "Post Categories"
-msgstr "Beitrags-Kategorien"
-
-#: ../../include/features.php:59
-msgid "Add categories to your posts"
-msgstr "Kategorien für Beiträge"
-
-#: ../../include/features.php:60 ../../include/contact_widgets.php:76
-msgid "Saved Folders"
-msgstr "Gesicherte Ordner"
-
-#: ../../include/features.php:60
-msgid "Ability to file posts under folders"
-msgstr "Möglichkeit, Beiträge in Verzeichnissen zu sammeln"
-
-#: ../../include/features.php:61
-msgid "Dislike Posts"
-msgstr "Gefällt-mir-nicht Beiträge"
-
-#: ../../include/features.php:61
-msgid "Ability to dislike posts/comments"
-msgstr "Möglichkeit für Gefällt-mir-nicht für Beiträge/Kommentare"
-
-#: ../../include/features.php:62
-msgid "Star Posts"
-msgstr "Beiträge mit Sternchen versehen"
-
-#: ../../include/features.php:62
-msgid "Ability to mark special posts with a star indicator"
-msgstr "Möglichkeit, spezielle Beiträge mit Sternchen-Symbol zu markieren"
-
-#: ../../include/features.php:63
-msgid "Tag Cloud"
-msgstr "Tag Wolke"
-
-#: ../../include/features.php:63
-msgid "Provide a personal tag cloud on your channel page"
-msgstr "Persönliche Schlagwort-Wolke für deine Kanal-Seite anlegen"
-
#: ../../include/group.php:25
msgid ""
"A deleted group with this name was revived. Existing item permissions "
@@ -909,7 +1267,7 @@ msgstr "Ein gelöschte Gruppe mit diesem Namen wurde gefunden. Existierende Zuga
msgid "Default privacy group for new contacts"
msgstr "Standard-Privatsphärengruppe für neue Kontakte"
-#: ../../include/group.php:242 ../../mod/admin.php:695
+#: ../../include/group.php:242 ../../mod/admin.php:751
msgid "All Channels"
msgstr "Alle Kanäle"
@@ -933,14 +1291,20 @@ msgstr "Neue Sammlung erzeugen"
msgid "Channels not in any collection"
msgstr "Kanäle, die nicht in einer Sammlung sind"
-#: ../../include/group.php:290 ../../mod/network.php:174
-msgid "add"
-msgstr "hinzufügen"
-
#: ../../include/js_strings.php:5
msgid "Delete this item?"
msgstr "Dieses Element löschen?"
+#: ../../include/js_strings.php:6 ../../include/ItemObject.php:547
+#: ../../mod/photos.php:993 ../../mod/photos.php:1080
+msgid "Comment"
+msgstr "Kommentar"
+
+#: ../../include/js_strings.php:7 ../../include/ItemObject.php:281
+#: ../../include/contact_widgets.php:125
+msgid "show more"
+msgstr "mehr zeigen"
+
#: ../../include/js_strings.php:8
msgid "show fewer"
msgstr "Zeige weniger"
@@ -953,17 +1317,17 @@ msgstr "Kennwort zu kurz"
msgid "Passwords do not match"
msgstr "Kennwörter stimmen nicht überein"
-#: ../../include/js_strings.php:11 ../../mod/photos.php:45
+#: ../../include/js_strings.php:11 ../../mod/photos.php:39
msgid "everybody"
msgstr "alle"
#: ../../include/js_strings.php:12
msgid "Secret Passphrase"
-msgstr "geheime Passwort-Phrase"
+msgstr "geheime Passphrase"
#: ../../include/js_strings.php:13
msgid "Passphrase hint"
-msgstr "Hinweis zur Phrase"
+msgstr "Hinweis zur Passphrase"
#: ../../include/js_strings.php:15
msgid "timeago.prefixAgo"
@@ -1030,6 +1394,10 @@ msgstr "ungefähr ein Jahr"
msgid "%d years"
msgstr "%d Jahre"
+#: ../../include/js_strings.php:30
+msgid " "
+msgstr " "
+
#: ../../include/js_strings.php:31
msgid "timeago.numbers"
msgstr "timeago.numbers"
@@ -1050,603 +1418,950 @@ msgstr "Kann Absender nicht bestimmen."
msgid "Stored post could not be verified."
msgstr "Gespeicherter Beitrag konnten nicht überprüft werden."
-#: ../../include/network.php:1113
-msgid "view full size"
-msgstr "In Vollbildansicht anschauen"
-
-#: ../../include/photo/photo_driver.php:609 ../../include/photos.php:51
-#: ../../mod/photos.php:97 ../../mod/photos.php:764 ../../mod/photos.php:786
-#: ../../mod/profile_photo.php:88 ../../mod/profile_photo.php:235
-#: ../../mod/profile_photo.php:346
+#: ../../include/photo/photo_driver.php:643 ../../include/photos.php:51
+#: ../../mod/profile_photo.php:78 ../../mod/profile_photo.php:225
+#: ../../mod/profile_photo.php:336 ../../mod/photos.php:91
+#: ../../mod/photos.php:656 ../../mod/photos.php:678
msgid "Profile Photos"
msgstr "Profilfotos"
-#: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:118
-#: ../../mod/profperm.php:112
-msgid "Profile"
-msgstr "Profil"
-
-#: ../../include/profile_advanced.php:15 ../../mod/settings.php:1062
-msgid "Full Name:"
-msgstr "Voller Name:"
-
-#: ../../include/profile_advanced.php:17 ../../mod/directory.php:175
-#: ../../boot.php:1793
-msgid "Gender:"
-msgstr "Geschlecht:"
+#: ../../include/attach.php:119 ../../include/attach.php:166
+#: ../../include/attach.php:229 ../../include/attach.php:243
+#: ../../include/attach.php:283 ../../include/attach.php:297
+#: ../../include/attach.php:322 ../../include/attach.php:513
+#: ../../include/attach.php:585 ../../include/chat.php:113
+#: ../../include/photos.php:15 ../../include/items.php:3575
+#: ../../mod/common.php:35 ../../mod/events.php:140 ../../mod/thing.php:247
+#: ../../mod/thing.php:263 ../../mod/thing.php:298 ../../mod/invite.php:13
+#: ../../mod/invite.php:104 ../../mod/settings.php:493 ../../mod/menu.php:44
+#: ../../mod/webpages.php:40 ../../mod/api.php:26 ../../mod/api.php:31
+#: ../../mod/bookmarks.php:46 ../../mod/item.php:182 ../../mod/item.php:190
+#: ../../mod/chat.php:87 ../../mod/chat.php:92
+#: ../../mod/viewconnections.php:22 ../../mod/viewconnections.php:27
+#: ../../mod/delegate.php:6 ../../mod/mitem.php:73 ../../mod/group.php:9
+#: ../../mod/viewsrc.php:12 ../../mod/editpost.php:13
+#: ../../mod/connedit.php:182 ../../mod/layouts.php:27
+#: ../../mod/layouts.php:42 ../../mod/page.php:30 ../../mod/page.php:80
+#: ../../mod/network.php:12 ../../mod/profiles.php:152
+#: ../../mod/profiles.php:453 ../../mod/sources.php:66 ../../mod/setup.php:200
+#: ../../mod/new_channel.php:66 ../../mod/new_channel.php:97
+#: ../../mod/achievements.php:27 ../../mod/manage.php:6 ../../mod/mail.php:108
+#: ../../mod/editlayout.php:48 ../../mod/profile_photo.php:187
+#: ../../mod/profile_photo.php:200 ../../mod/connections.php:169
+#: ../../mod/notifications.php:66 ../../mod/blocks.php:29
+#: ../../mod/blocks.php:44 ../../mod/editwebpage.php:44
+#: ../../mod/editwebpage.php:83 ../../mod/poke.php:128
+#: ../../mod/channel.php:88 ../../mod/channel.php:188
+#: ../../mod/channel.php:231 ../../mod/fsuggest.php:78
+#: ../../mod/editblock.php:48 ../../mod/filestorage.php:10
+#: ../../mod/filestorage.php:59 ../../mod/filestorage.php:75
+#: ../../mod/filestorage.php:98 ../../mod/suggest.php:26
+#: ../../mod/message.php:16 ../../mod/register.php:68 ../../mod/regmod.php:18
+#: ../../mod/authtest.php:13 ../../mod/photos.php:68 ../../mod/photos.php:526
+#: ../../mod/mood.php:119 ../../index.php:176 ../../index.php:351
+msgid "Permission denied."
+msgstr "Zugang verweigert"
-#: ../../include/profile_advanced.php:22
-msgid "j F, Y"
-msgstr "j F, Y"
+#: ../../include/attach.php:224 ../../include/attach.php:278
+msgid "Item was not found."
+msgstr "Beitrag wurde nicht gefunden."
-#: ../../include/profile_advanced.php:23
-msgid "j F"
-msgstr "j F"
+#: ../../include/attach.php:335
+msgid "No source file."
+msgstr "Keine Quelldatei."
-#: ../../include/profile_advanced.php:30
-msgid "Birthday:"
-msgstr "Geburtstag:"
+#: ../../include/attach.php:352
+msgid "Cannot locate file to replace"
+msgstr "Kann Datei zum Ersetzen nicht finden"
-#: ../../include/profile_advanced.php:34
-msgid "Age:"
-msgstr "Alter:"
+#: ../../include/attach.php:370
+msgid "Cannot locate file to revise/update"
+msgstr "Kann Datei zum Prüfen/Aktualisieren nicht finden"
-#: ../../include/profile_advanced.php:37 ../../mod/directory.php:177
-#: ../../boot.php:1794
-msgid "Status:"
-msgstr "Status:"
+#: ../../include/attach.php:381
+#, php-format
+msgid "File exceeds size limit of %d"
+msgstr "Datei überschreitet das Größen-Limit von %d"
-#: ../../include/profile_advanced.php:43
+#: ../../include/attach.php:393
#, php-format
-msgid "for %1$d %2$s"
-msgstr "für %1$d %2$s"
+msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
+msgstr "Die Größe Deiner Datei-Anhänge hat das Maximum von %1$.0f MByte erreicht."
-#: ../../include/profile_advanced.php:46 ../../mod/profiles.php:549
-msgid "Sexual Preference:"
-msgstr "Sexuelle Orientierung:"
+#: ../../include/attach.php:475
+msgid "File upload failed. Possible system limit or action terminated."
+msgstr "Datei-Upload fehlgeschlagen. Mögliche Systembegrenzung oder abgebrochener Prozess."
-#: ../../include/profile_advanced.php:48 ../../mod/directory.php:179
-#: ../../boot.php:1795
-msgid "Homepage:"
-msgstr "Homepage:"
+#: ../../include/attach.php:487
+msgid "Stored file could not be verified. Upload failed."
+msgstr "Gespeichert Datei konnte nicht verifiziert werden. Upload abgebrochen."
-#: ../../include/profile_advanced.php:50 ../../mod/profiles.php:551
-msgid "Hometown:"
-msgstr "Heimatstadt:"
+#: ../../include/attach.php:528 ../../include/attach.php:545
+msgid "Path not available."
+msgstr "Pfad nicht verfügbar."
-#: ../../include/profile_advanced.php:52
-msgid "Tags:"
-msgstr "Schlagworte:"
+#: ../../include/attach.php:590
+msgid "Empty pathname"
+msgstr "Leere Pfadangabe"
-#: ../../include/profile_advanced.php:54 ../../mod/profiles.php:552
-msgid "Political Views:"
-msgstr "Politische Ansichten:"
+#: ../../include/attach.php:606
+msgid "duplicate filename or path"
+msgstr "doppelter Dateiname oder Pfad"
-#: ../../include/profile_advanced.php:56
-msgid "Religion:"
-msgstr "Religion:"
+#: ../../include/attach.php:630
+msgid "Path not found."
+msgstr "Pfad nicht gefunden."
-#: ../../include/profile_advanced.php:58 ../../mod/directory.php:181
-msgid "About:"
-msgstr "Ãœber:"
+#: ../../include/attach.php:674
+msgid "mkdir failed."
+msgstr "mkdir fehlgeschlagen."
-#: ../../include/profile_advanced.php:60
-msgid "Hobbies/Interests:"
-msgstr "Hobbys/Interessen:"
+#: ../../include/attach.php:678
+msgid "database storage failed."
+msgstr "Speichern in der Datenbank fehlgeschlagen."
-#: ../../include/profile_advanced.php:62 ../../mod/profiles.php:555
-msgid "Likes:"
-msgstr "Gefällt-mir:"
+#: ../../include/bookmarks.php:31
+#, php-format
+msgid "%1$s's bookmarks"
+msgstr "%1$ss Lesezeichen"
-#: ../../include/profile_advanced.php:64 ../../mod/profiles.php:556
-msgid "Dislikes:"
-msgstr "Gefällt-mir-nicht:"
+#: ../../include/conversation.php:123
+msgid "channel"
+msgstr "Kanal"
-#: ../../include/profile_advanced.php:67
-msgid "Contact information and Social Networks:"
-msgstr "Kontaktinformation und soziale Netzwerke:"
+#: ../../include/conversation.php:161 ../../mod/like.php:134
+#, php-format
+msgid "%1$s likes %2$s's %3$s"
+msgstr "%1$s gefällt %2$ss %3$s"
-#: ../../include/profile_advanced.php:69
-msgid "Musical interests:"
-msgstr "Musikalische Interessen:"
+#: ../../include/conversation.php:164 ../../mod/like.php:136
+#, php-format
+msgid "%1$s doesn't like %2$s's %3$s"
+msgstr "%1$s gefällt %2$ss %3$s nicht"
-#: ../../include/profile_advanced.php:71
-msgid "Books, literature:"
-msgstr "Bücher, Literatur:"
+#: ../../include/conversation.php:201
+#, php-format
+msgid "%1$s is now connected with %2$s"
+msgstr "%1$s ist jetzt mit %2$s verbunden"
-#: ../../include/profile_advanced.php:73
-msgid "Television:"
-msgstr "Fernsehen:"
+#: ../../include/conversation.php:236
+#, php-format
+msgid "%1$s poked %2$s"
+msgstr "%1$s stupste %2$s an"
-#: ../../include/profile_advanced.php:75
-msgid "Film/dance/culture/entertainment:"
-msgstr "Film/Tanz/Kultur/Unterhaltung:"
+#: ../../include/conversation.php:258 ../../mod/mood.php:63
+#, php-format
+msgid "%1$s is currently %2$s"
+msgstr "%1$s ist momentan %2$s"
-#: ../../include/profile_advanced.php:77
-msgid "Love/Romance:"
-msgstr "Liebe/Romantik:"
+#: ../../include/conversation.php:631 ../../include/ItemObject.php:114
+msgid "Select"
+msgstr "Auswählen"
-#: ../../include/profile_advanced.php:79
-msgid "Work/employment:"
-msgstr "Arbeit/Anstellung:"
+#: ../../include/conversation.php:632 ../../include/ItemObject.php:108
+#: ../../mod/thing.php:236 ../../mod/settings.php:579 ../../mod/group.php:176
+#: ../../mod/admin.php:746 ../../mod/connedit.php:359
+#: ../../mod/filestorage.php:171 ../../mod/photos.php:1044
+msgid "Delete"
+msgstr "Löschen"
-#: ../../include/profile_advanced.php:81
-msgid "School/education:"
-msgstr "Schule/Ausbildung:"
+#: ../../include/conversation.php:642 ../../include/ItemObject.php:161
+msgid "Message is verified"
+msgstr "Nachricht überprüft"
-#: ../../include/text.php:312
-msgid "prev"
-msgstr "vorherige"
+#: ../../include/conversation.php:662
+#, php-format
+msgid "View %s's profile @ %s"
+msgstr "%ss Profil auf %s ansehen"
-#: ../../include/text.php:314
-msgid "first"
-msgstr "erste"
+#: ../../include/conversation.php:676
+msgid "Categories:"
+msgstr "Kategorien:"
-#: ../../include/text.php:343
-msgid "last"
-msgstr "letzte"
+#: ../../include/conversation.php:677
+msgid "Filed under:"
+msgstr "Gespeichert unter:"
-#: ../../include/text.php:346
-msgid "next"
-msgstr "nächste"
+#: ../../include/conversation.php:686 ../../include/ItemObject.php:226
+#, php-format
+msgid " from %s"
+msgstr "von %s"
-#: ../../include/text.php:358
-msgid "older"
-msgstr "älter"
+#: ../../include/conversation.php:689 ../../include/ItemObject.php:229
+#, php-format
+msgid "last edited: %s"
+msgstr "zuletzt bearbeitet: %s"
-#: ../../include/text.php:360
-msgid "newer"
-msgstr "neuer"
+#: ../../include/conversation.php:690 ../../include/ItemObject.php:230
+#, php-format
+msgid "Expires: %s"
+msgstr "Verfällt: %s"
-#: ../../include/text.php:651
-msgid "No connections"
-msgstr "Keine Verbindungen"
+#: ../../include/conversation.php:705
+msgid "View in context"
+msgstr "Im Zusammenhang anschauen"
-#: ../../include/text.php:662
-#, php-format
-msgid "%d Connection"
-msgid_plural "%d Connections"
-msgstr[0] "%d Verbindung"
-msgstr[1] "%d Verbindungen"
+#: ../../include/conversation.php:707 ../../include/conversation.php:1120
+#: ../../include/ItemObject.php:259 ../../mod/editpost.php:121
+#: ../../mod/mail.php:222 ../../mod/mail.php:336 ../../mod/editlayout.php:115
+#: ../../mod/editwebpage.php:153 ../../mod/editblock.php:129
+#: ../../mod/photos.php:975
+msgid "Please wait"
+msgstr "Bitte warten"
-#: ../../include/text.php:674
-msgid "View Connections"
-msgstr "Zeige Verbindungen"
+#: ../../include/conversation.php:834
+msgid "remove"
+msgstr "lösche"
-#: ../../include/text.php:733 ../../include/nav.php:135
-#: ../../mod/search.php:96
-msgid "Search"
-msgstr "Suche"
+#: ../../include/conversation.php:838
+msgid "Loading..."
+msgstr "Lädt ..."
-#: ../../include/text.php:735 ../../mod/filer.php:36
-msgid "Save"
-msgstr "Speichern"
+#: ../../include/conversation.php:839
+msgid "Delete Selected Items"
+msgstr "Lösche die ausgewählten Elemente"
-#: ../../include/text.php:773
-msgid "poke"
-msgstr "anstupsen"
+#: ../../include/conversation.php:930
+msgid "View Source"
+msgstr "Quelle anzeigen"
-#: ../../include/text.php:773 ../../include/conversation.php:236
-msgid "poked"
-msgstr "stupste"
+#: ../../include/conversation.php:931
+msgid "Follow Thread"
+msgstr "Unterhaltung folgen"
-#: ../../include/text.php:774
-msgid "ping"
-msgstr "anpingen"
+#: ../../include/conversation.php:932
+msgid "View Status"
+msgstr "Status ansehen"
-#: ../../include/text.php:774
-msgid "pinged"
-msgstr "pingte"
+#: ../../include/conversation.php:934
+msgid "View Photos"
+msgstr "Fotos ansehen"
-#: ../../include/text.php:775
-msgid "prod"
-msgstr "knuffen"
+#: ../../include/conversation.php:935
+msgid "Matrix Activity"
+msgstr "Matrix-Aktivität"
-#: ../../include/text.php:775
-msgid "prodded"
-msgstr "knuffte"
+#: ../../include/conversation.php:936
+msgid "Edit Contact"
+msgstr "Kontakt bearbeiten"
-#: ../../include/text.php:776
-msgid "slap"
-msgstr "ohrfeigen"
+#: ../../include/conversation.php:937
+msgid "Send PM"
+msgstr "Sende PN"
-#: ../../include/text.php:776
-msgid "slapped"
-msgstr "ohrfeigte"
+#: ../../include/conversation.php:938
+msgid "Poke"
+msgstr "Anstupsen"
-#: ../../include/text.php:777
-msgid "finger"
-msgstr "befummeln"
+#: ../../include/conversation.php:1000
+#, php-format
+msgid "%s likes this."
+msgstr "%s gefällt das."
-#: ../../include/text.php:777
-msgid "fingered"
-msgstr "befummelte"
+#: ../../include/conversation.php:1000
+#, php-format
+msgid "%s doesn't like this."
+msgstr "%s gefällt das nicht."
-#: ../../include/text.php:778
-msgid "rebuff"
-msgstr "eine Abfuhr erteilen"
+#: ../../include/conversation.php:1004
+#, php-format
+msgid "<span %1$s>%2$d people</span> like this."
+msgid_plural "<span %1$s>%2$d people</span> like this."
+msgstr[0] "<span %1$s>%2$d Person</span> gefällt das."
+msgstr[1] "<span %1$s>%2$d Leuten</span> gefällt das."
-#: ../../include/text.php:778
-msgid "rebuffed"
-msgstr "abfuhrerteilte"
+#: ../../include/conversation.php:1006
+#, php-format
+msgid "<span %1$s>%2$d people</span> don't like this."
+msgid_plural "<span %1$s>%2$d people</span> don't like this."
+msgstr[0] "<span %1$s>%2$d Person</span> gefällt das nicht."
+msgstr[1] "<span %1$s>%2$d Leuten</span> gefällt das nicht."
-#: ../../include/text.php:790
-msgid "happy"
-msgstr "glücklich"
+#: ../../include/conversation.php:1012
+msgid "and"
+msgstr "und"
-#: ../../include/text.php:791
-msgid "sad"
-msgstr "traurig"
+#: ../../include/conversation.php:1015
+#, php-format
+msgid ", and %d other people"
+msgid_plural ", and %d other people"
+msgstr[0] ""
+msgstr[1] ", und %d andere"
-#: ../../include/text.php:792
-msgid "mellow"
-msgstr "sanft"
+#: ../../include/conversation.php:1016
+#, php-format
+msgid "%s like this."
+msgstr "%s gefällt das."
-#: ../../include/text.php:793
-msgid "tired"
-msgstr "müde"
+#: ../../include/conversation.php:1016
+#, php-format
+msgid "%s don't like this."
+msgstr "%s gefällt das nicht."
-#: ../../include/text.php:794
-msgid "perky"
-msgstr "frech"
+#: ../../include/conversation.php:1066
+msgid "Visible to <strong>everybody</strong>"
+msgstr "Sichtbar für <strong>jeden</strong>"
-#: ../../include/text.php:795
-msgid "angry"
-msgstr "sauer"
+#: ../../include/conversation.php:1067 ../../mod/mail.php:171
+#: ../../mod/mail.php:269
+msgid "Please enter a link URL:"
+msgstr "Gib eine URL ein:"
-#: ../../include/text.php:796
-msgid "stupified"
-msgstr "verblüfft"
+#: ../../include/conversation.php:1068
+msgid "Please enter a video link/URL:"
+msgstr "Gib einen Video-Link/URL ein:"
-#: ../../include/text.php:797
-msgid "puzzled"
-msgstr "verwirrt"
+#: ../../include/conversation.php:1069
+msgid "Please enter an audio link/URL:"
+msgstr "Gib einen Audio-Link/URL ein:"
-#: ../../include/text.php:798
-msgid "interested"
-msgstr "interessiert"
+#: ../../include/conversation.php:1070
+msgid "Tag term:"
+msgstr "Schlagwort:"
-#: ../../include/text.php:799
-msgid "bitter"
-msgstr "verbittert"
+#: ../../include/conversation.php:1071 ../../mod/filer.php:35
+msgid "Save to Folder:"
+msgstr "Speichern in Ordner:"
-#: ../../include/text.php:800
-msgid "cheerful"
-msgstr "fröhlich"
+#: ../../include/conversation.php:1072
+msgid "Where are you right now?"
+msgstr "Wo bist Du jetzt grade?"
-#: ../../include/text.php:801
-msgid "alive"
-msgstr "lebendig"
+#: ../../include/conversation.php:1073 ../../mod/editpost.php:52
+#: ../../mod/mail.php:172 ../../mod/mail.php:270
+msgid "Expires YYYY-MM-DD HH:MM"
+msgstr "Verfällt YYYY-MM-DD HH;MM"
-#: ../../include/text.php:802
-msgid "annoyed"
-msgstr "verärgert"
+#: ../../include/conversation.php:1083 ../../include/ItemObject.php:557
+#: ../../mod/webpages.php:122 ../../mod/editpost.php:141
+#: ../../mod/editlayout.php:136 ../../mod/editwebpage.php:177
+#: ../../mod/editblock.php:151 ../../mod/photos.php:995
+msgid "Preview"
+msgstr "Vorschau"
-#: ../../include/text.php:803
-msgid "anxious"
-msgstr "unruhig"
+#: ../../include/conversation.php:1097 ../../mod/photos.php:974
+msgid "Share"
+msgstr "Teilen"
-#: ../../include/text.php:804
-msgid "cranky"
-msgstr "schrullig"
+#: ../../include/conversation.php:1099 ../../mod/editwebpage.php:140
+msgid "Page link title"
+msgstr "Seitentitel-Link"
-#: ../../include/text.php:805
-msgid "disturbed"
-msgstr "verstört"
+#: ../../include/conversation.php:1101 ../../mod/editpost.php:113
+#: ../../mod/mail.php:219 ../../mod/mail.php:332 ../../mod/editlayout.php:107
+#: ../../mod/editwebpage.php:145 ../../mod/editblock.php:121
+msgid "Upload photo"
+msgstr "Foto hochladen"
-#: ../../include/text.php:806
-msgid "frustrated"
-msgstr "frustriert"
+#: ../../include/conversation.php:1102
+msgid "upload photo"
+msgstr "Foto hochladen"
-#: ../../include/text.php:807
-msgid "motivated"
-msgstr "motiviert"
+#: ../../include/conversation.php:1103 ../../mod/editpost.php:114
+#: ../../mod/mail.php:220 ../../mod/mail.php:333 ../../mod/editlayout.php:108
+#: ../../mod/editwebpage.php:146 ../../mod/editblock.php:122
+msgid "Attach file"
+msgstr "Datei anhängen"
-#: ../../include/text.php:808
-msgid "relaxed"
-msgstr "entspannt"
+#: ../../include/conversation.php:1104
+msgid "attach file"
+msgstr "Datei anfügen"
-#: ../../include/text.php:809
-msgid "surprised"
-msgstr "überrascht"
+#: ../../include/conversation.php:1105 ../../mod/editpost.php:115
+#: ../../mod/mail.php:221 ../../mod/mail.php:334 ../../mod/editlayout.php:109
+#: ../../mod/editwebpage.php:147 ../../mod/editblock.php:123
+msgid "Insert web link"
+msgstr "Link einfügen"
-#: ../../include/text.php:973
-msgid "Monday"
-msgstr "Montag"
+#: ../../include/conversation.php:1106
+msgid "web link"
+msgstr "Web-Link"
-#: ../../include/text.php:973
-msgid "Tuesday"
-msgstr "Dienstag"
+#: ../../include/conversation.php:1107
+msgid "Insert video link"
+msgstr "Video-Link einfügen"
-#: ../../include/text.php:973
-msgid "Wednesday"
-msgstr "Mittwoch"
+#: ../../include/conversation.php:1108
+msgid "video link"
+msgstr "Video-Link"
-#: ../../include/text.php:973
-msgid "Thursday"
-msgstr "Donnerstag"
+#: ../../include/conversation.php:1109
+msgid "Insert audio link"
+msgstr "Audio-Link einfügen"
-#: ../../include/text.php:973
-msgid "Friday"
-msgstr "Freitag"
+#: ../../include/conversation.php:1110
+msgid "audio link"
+msgstr "Audio-Link"
-#: ../../include/text.php:973
-msgid "Saturday"
-msgstr "Samstag"
+#: ../../include/conversation.php:1111 ../../mod/editpost.php:119
+#: ../../mod/editlayout.php:113 ../../mod/editwebpage.php:151
+#: ../../mod/editblock.php:127
+msgid "Set your location"
+msgstr "Standort"
-#: ../../include/text.php:973
-msgid "Sunday"
-msgstr "Sonntag"
+#: ../../include/conversation.php:1112
+msgid "set location"
+msgstr "Standort"
-#: ../../include/text.php:977
-msgid "January"
-msgstr "Januar"
+#: ../../include/conversation.php:1113 ../../mod/editpost.php:120
+#: ../../mod/editlayout.php:114 ../../mod/editwebpage.php:152
+#: ../../mod/editblock.php:128
+msgid "Clear browser location"
+msgstr "Browser-Standort löschen"
-#: ../../include/text.php:977
-msgid "February"
-msgstr "Februar"
+#: ../../include/conversation.php:1114
+msgid "clear location"
+msgstr "Standort löschen"
-#: ../../include/text.php:977
-msgid "March"
-msgstr "März"
+#: ../../include/conversation.php:1116 ../../mod/editpost.php:133
+#: ../../mod/editlayout.php:127 ../../mod/editwebpage.php:169
+#: ../../mod/editblock.php:142
+msgid "Set title"
+msgstr "Titel"
-#: ../../include/text.php:977
-msgid "April"
-msgstr "April"
+#: ../../include/conversation.php:1119 ../../mod/editpost.php:135
+#: ../../mod/editlayout.php:130 ../../mod/editwebpage.php:171
+#: ../../mod/editblock.php:145
+msgid "Categories (comma-separated list)"
+msgstr "Kategorien (Kommagetrennte Liste)"
-#: ../../include/text.php:977
-msgid "May"
-msgstr "Mai"
+#: ../../include/conversation.php:1121 ../../mod/editpost.php:122
+#: ../../mod/editlayout.php:116 ../../mod/editwebpage.php:154
+#: ../../mod/editblock.php:130
+msgid "Permission settings"
+msgstr "Berechtigungs-Einstellungen"
-#: ../../include/text.php:977
-msgid "June"
-msgstr "Juni"
+#: ../../include/conversation.php:1122
+msgid "permissions"
+msgstr "Berechtigungen"
-#: ../../include/text.php:977
-msgid "July"
-msgstr "Juli"
+#: ../../include/conversation.php:1130 ../../mod/editpost.php:130
+#: ../../mod/editlayout.php:124 ../../mod/editwebpage.php:164
+#: ../../mod/editblock.php:139
+msgid "Public post"
+msgstr "Öffentlicher Beitrag"
-#: ../../include/text.php:977
-msgid "August"
-msgstr "August"
+#: ../../include/conversation.php:1132 ../../mod/editpost.php:136
+#: ../../mod/editlayout.php:131 ../../mod/editwebpage.php:172
+#: ../../mod/editblock.php:146
+msgid "Example: bob@example.com, mary@example.com"
+msgstr "Beispiel: bob@example.com, mary@example.com"
-#: ../../include/text.php:977
-msgid "September"
-msgstr "September"
+#: ../../include/conversation.php:1145 ../../mod/editpost.php:147
+#: ../../mod/mail.php:226 ../../mod/mail.php:339 ../../mod/editlayout.php:141
+#: ../../mod/editwebpage.php:182 ../../mod/editblock.php:156
+msgid "Set expiration date"
+msgstr "Verfallsdatum"
-#: ../../include/text.php:977
-msgid "October"
-msgstr "Oktober"
+#: ../../include/conversation.php:1147 ../../include/ItemObject.php:560
+#: ../../mod/editpost.php:149 ../../mod/mail.php:228 ../../mod/mail.php:341
+msgid "Encrypt text"
+msgstr "Text verschlüsseln"
-#: ../../include/text.php:977
-msgid "November"
-msgstr "November"
+#: ../../include/conversation.php:1149 ../../mod/editpost.php:151
+msgid "OK"
+msgstr "Ok"
-#: ../../include/text.php:977
-msgid "December"
-msgstr "Dezember"
+#: ../../include/conversation.php:1150 ../../mod/settings.php:517
+#: ../../mod/settings.php:543 ../../mod/tagrm.php:11 ../../mod/tagrm.php:94
+#: ../../mod/editpost.php:152 ../../mod/fbrowser.php:82
+#: ../../mod/fbrowser.php:117
+msgid "Cancel"
+msgstr "Abbrechen"
-#: ../../include/text.php:1055 ../../mod/message.php:453
-msgid "unknown.???"
-msgstr "unbekannt.???"
+#: ../../include/conversation.php:1381
+msgid "Commented Order"
+msgstr "Neueste Kommentare"
-#: ../../include/text.php:1056 ../../mod/message.php:454
-msgid "bytes"
-msgstr "Bytes"
+#: ../../include/conversation.php:1384
+msgid "Sort by Comment Date"
+msgstr "Nach Kommentardatum sortiert"
-#: ../../include/text.php:1091
-msgid "remove category"
-msgstr "Kategorie entfernen"
+#: ../../include/conversation.php:1387
+msgid "Posted Order"
+msgstr "Neueste Beiträge"
-#: ../../include/text.php:1113
-msgid "remove from file"
-msgstr "aus der Datei entfernen"
+#: ../../include/conversation.php:1390
+msgid "Sort by Post Date"
+msgstr "Nach Beitragsdatum sortiert"
-#: ../../include/text.php:1167 ../../include/text.php:1179
-msgid "Click to open/close"
-msgstr "Klicke zum Öffnen/Schließen"
+#: ../../include/conversation.php:1394
+msgid "Personal"
+msgstr "Persönlich"
-#: ../../include/text.php:1355 ../../mod/events.php:326
-msgid "link to source"
-msgstr "Link zum Originalbeitrag"
+#: ../../include/conversation.php:1397
+msgid "Posts that mention or involve you"
+msgstr "Beiträge mit Beteiligung Deinerseits"
-#: ../../include/text.php:1374
-msgid "Select a page layout: "
-msgstr "Ein Seiten-Layout auswählen"
+#: ../../include/conversation.php:1400 ../../mod/menu.php:61
+#: ../../mod/connections.php:211
+msgid "New"
+msgstr "Neu"
-#: ../../include/text.php:1377 ../../include/text.php:1442
-msgid "default"
-msgstr "Standard"
+#: ../../include/conversation.php:1403
+msgid "Activity Stream - by date"
+msgstr "Activity Stream – nach Datum sortiert"
-#: ../../include/text.php:1413
-msgid "Page content type: "
-msgstr "Content-Typ der Seite"
+#: ../../include/conversation.php:1410
+msgid "Starred"
+msgstr "Markiert"
-#: ../../include/text.php:1454
-msgid "Select an alternate language"
-msgstr "Wähle eine alternative Sprache"
+#: ../../include/conversation.php:1413
+msgid "Favourite Posts"
+msgstr "Markierte Beiträge"
-#: ../../include/text.php:1606 ../../include/conversation.php:117
-#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:45
-msgid "photo"
-msgstr "Foto"
+#: ../../include/conversation.php:1420
+msgid "Spam"
+msgstr "Spam"
-#: ../../include/text.php:1609 ../../include/conversation.php:120
-#: ../../mod/tagger.php:49
-msgid "event"
-msgstr "Ereignis"
+#: ../../include/conversation.php:1423
+msgid "Posts flagged as SPAM"
+msgstr "Nachrichten, die als SPAM markiert wurden"
-#: ../../include/text.php:1612 ../../include/conversation.php:145
-#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:53
-msgid "status"
-msgstr "Status"
+#: ../../include/conversation.php:1454
+msgid "Channel"
+msgstr "Kanal"
-#: ../../include/text.php:1614 ../../include/conversation.php:147
-#: ../../mod/tagger.php:55
-msgid "comment"
-msgstr "Kommentar"
+#: ../../include/conversation.php:1457
+msgid "Status Messages and Posts"
+msgstr "Statusnachrichten und Beiträge"
-#: ../../include/text.php:1619
-msgid "activity"
-msgstr "Aktivität"
+#: ../../include/conversation.php:1466
+msgid "About"
+msgstr "Ãœber"
-#: ../../include/text.php:1881
-msgid "Design"
-msgstr "Design"
+#: ../../include/conversation.php:1469
+msgid "Profile Details"
+msgstr "Profil-Details"
-#: ../../include/text.php:1883
-msgid "Blocks"
-msgstr "Blöcke"
+#: ../../include/conversation.php:1478 ../../include/photos.php:302
+msgid "Photo Albums"
+msgstr "Fotoalben"
-#: ../../include/text.php:1884
-msgid "Menus"
-msgstr "Menüs"
+#: ../../include/conversation.php:1487
+msgid "Files and Storage"
+msgstr "Dateien und Speicher"
-#: ../../include/text.php:1885
-msgid "Layouts"
-msgstr "Layouts"
+#: ../../include/conversation.php:1496 ../../include/conversation.php:1499
+msgid "Chatrooms"
+msgstr "Chaträume"
-#: ../../include/text.php:1886
-msgid "Pages"
-msgstr "Seiten"
+#: ../../include/conversation.php:1509
+msgid "Events and Calendar"
+msgstr "Veranstaltungen und Kalender"
-#: ../../include/api.php:972
-msgid "Public Timeline"
-msgstr "Öffentliche Zeitleiste"
+#: ../../include/conversation.php:1517
+msgid "Saved Bookmarks"
+msgstr "Gespeicherte Lesezeichen"
-#: ../../include/identity.php:14 ../../mod/item.php:1148
+#: ../../include/conversation.php:1528
+msgid "Manage Webpages"
+msgstr "Webseiten verwalten"
+
+#: ../../include/identity.php:30 ../../mod/item.php:1187
msgid "Unable to obtain identity information from database"
msgstr "Kann keine Identitäts-Informationen aus Datenbank beziehen"
-#: ../../include/identity.php:36
+#: ../../include/identity.php:63
msgid "Empty name"
msgstr "Namensfeld leer"
-#: ../../include/identity.php:38
+#: ../../include/identity.php:65
msgid "Name too long"
msgstr "Name ist zu lang"
-#: ../../include/identity.php:80
+#: ../../include/identity.php:147
msgid "No account identifier"
msgstr "Keine Account-Kennung"
-#: ../../include/identity.php:90
+#: ../../include/identity.php:157
msgid "Nickname is required."
msgstr "Spitzname ist erforderlich."
-#: ../../include/identity.php:104
+#: ../../include/identity.php:171
msgid ""
"Nickname has unsupported characters or is already being used on this site."
msgstr "Der Spitzname enthält nicht-unterstütze Zeichen oder wird bereits auf dieser Seite genutzt."
-#: ../../include/identity.php:163
+#: ../../include/identity.php:230
msgid "Unable to retrieve created identity"
msgstr "Kann die erstellte Identität nicht empfangen"
-#: ../../include/identity.php:220
+#: ../../include/identity.php:289
msgid "Default Profile"
msgstr "Standard-Profil"
-#: ../../include/identity.php:245 ../../include/profile_selectors.php:42
-#: ../../mod/network.php:387 ../../mod/connections.php:407
-msgid "Friends"
-msgstr "Freunde"
+#: ../../include/identity.php:481
+msgid "Requested channel is not available."
+msgstr "Angeforderte Kanal nicht verfügbar."
-#: ../../include/bbcode.php:94 ../../include/bbcode.php:494
-#: ../../include/bbcode.php:497
-msgid "Image/photo"
-msgstr "Bild/Foto"
+#: ../../include/identity.php:493
+msgid " Sorry, you don't have the permission to view this profile. "
+msgstr "Entschuldigung, Du besitzt nicht die nötigen Rechte, um dieses Profil zu betrachten."
-#: ../../include/bbcode.php:126 ../../include/bbcode.php:502
-msgid "Encrypted content"
-msgstr "Verschlüsselter Inhalt"
+#: ../../include/identity.php:528 ../../mod/webpages.php:8
+#: ../../mod/connect.php:13 ../../mod/layouts.php:8
+#: ../../mod/achievements.php:8 ../../mod/blocks.php:10
+#: ../../mod/profile.php:16 ../../mod/filestorage.php:40
+msgid "Requested profile is not available."
+msgstr "Erwünschte Profil ist nicht verfügbar."
+
+#: ../../include/identity.php:646 ../../mod/profiles.php:603
+msgid "Change profile photo"
+msgstr "Profilfoto ändern"
+
+#: ../../include/identity.php:652
+msgid "Profiles"
+msgstr "Profile"
+
+#: ../../include/identity.php:652
+msgid "Manage/edit profiles"
+msgstr "Verwalte/Bearbeite Profile"
+
+#: ../../include/identity.php:653 ../../mod/profiles.php:604
+msgid "Create New Profile"
+msgstr "Neues Profil erstellen"
+
+#: ../../include/identity.php:656
+msgid "Edit Profile"
+msgstr "Profile bearbeiten"
+
+#: ../../include/identity.php:667 ../../mod/profiles.php:615
+msgid "Profile Image"
+msgstr "Profilfoto:"
+
+#: ../../include/identity.php:670 ../../mod/profiles.php:618
+msgid "visible to everybody"
+msgstr "sichtbar für jeden"
+
+#: ../../include/identity.php:671 ../../mod/profiles.php:619
+msgid "Edit visibility"
+msgstr "Sichtbarkeit bearbeiten"
+
+#: ../../include/identity.php:685 ../../include/identity.php:912
+#: ../../mod/directory.php:159
+msgid "Gender:"
+msgstr "Geschlecht:"
+
+#: ../../include/identity.php:686 ../../include/identity.php:932
+#: ../../mod/directory.php:161
+msgid "Status:"
+msgstr "Status:"
+
+#: ../../include/identity.php:687 ../../include/identity.php:943
+#: ../../mod/directory.php:163
+msgid "Homepage:"
+msgstr "Homepage:"
+
+#: ../../include/identity.php:688 ../../mod/dirprofile.php:157
+msgid "Online Now"
+msgstr "gerade online"
+
+#: ../../include/identity.php:756 ../../include/identity.php:836
+#: ../../mod/ping.php:262
+msgid "g A l F d"
+msgstr "l, d. F G \\\\U\\\\h\\\\r"
+
+#: ../../include/identity.php:757 ../../include/identity.php:837
+msgid "F d"
+msgstr "d. F"
+
+#: ../../include/identity.php:802 ../../include/identity.php:877
+#: ../../mod/ping.php:284
+msgid "[today]"
+msgstr "[Heute]"
+
+#: ../../include/identity.php:814
+msgid "Birthday Reminders"
+msgstr "Geburtstags Erinnerungen"
+
+#: ../../include/identity.php:815
+msgid "Birthdays this week:"
+msgstr "Geburtstage in dieser Woche:"
+
+#: ../../include/identity.php:870
+msgid "[No description]"
+msgstr "[Keine Beschreibung]"
+
+#: ../../include/identity.php:888
+msgid "Event Reminders"
+msgstr "Veranstaltungs- Erinnerungen"
+
+#: ../../include/identity.php:889
+msgid "Events this week:"
+msgstr "Veranstaltungen in dieser Woche:"
+
+#: ../../include/identity.php:902 ../../include/identity.php:986
+#: ../../mod/profperm.php:107
+msgid "Profile"
+msgstr "Profil"
+
+#: ../../include/identity.php:910 ../../mod/settings.php:937
+msgid "Full Name:"
+msgstr "Voller Name:"
+
+#: ../../include/identity.php:917
+msgid "j F, Y"
+msgstr "j F, Y"
+
+#: ../../include/identity.php:918
+msgid "j F"
+msgstr "j F"
+
+#: ../../include/identity.php:925
+msgid "Birthday:"
+msgstr "Geburtstag:"
+
+#: ../../include/identity.php:929
+msgid "Age:"
+msgstr "Alter:"
-#: ../../include/bbcode.php:173
+#: ../../include/identity.php:938
#, php-format
-msgid "%1$s wrote the following %2$s %3$s"
-msgstr "%1$s schrieb den folgenden %2$s %3$s"
+msgid "for %1$d %2$s"
+msgstr "seit %1$d %2$s"
-#: ../../include/bbcode.php:175
-msgid "post"
-msgstr "Beitrag"
+#: ../../include/identity.php:941 ../../mod/profiles.php:526
+msgid "Sexual Preference:"
+msgstr "Sexuelle Orientierung:"
-#: ../../include/bbcode.php:454 ../../include/bbcode.php:474
-msgid "$1 wrote:"
-msgstr "$1 schrieb:"
+#: ../../include/identity.php:945 ../../mod/profiles.php:528
+msgid "Hometown:"
+msgstr "Heimatstadt:"
-#: ../../include/oembed.php:149
-msgid "Embedded content"
-msgstr "Eingebetteter Inhalt"
+#: ../../include/identity.php:947
+msgid "Tags:"
+msgstr "Schlagworte:"
-#: ../../include/oembed.php:158
-msgid "Embedding disabled"
-msgstr "Einbetten ausgeschaltet"
+#: ../../include/identity.php:949 ../../mod/profiles.php:529
+msgid "Political Views:"
+msgstr "Politische Ansichten:"
-#: ../../include/notify.php:23
-msgid "created a new post"
-msgstr "Neuer Beitrag wurde erzeugt"
+#: ../../include/identity.php:951
+msgid "Religion:"
+msgstr "Religion:"
-#: ../../include/notify.php:24
+#: ../../include/identity.php:953 ../../mod/directory.php:165
+msgid "About:"
+msgstr "Ãœber:"
+
+#: ../../include/identity.php:955
+msgid "Hobbies/Interests:"
+msgstr "Hobbys/Interessen:"
+
+#: ../../include/identity.php:957 ../../mod/profiles.php:532
+msgid "Likes:"
+msgstr "Gefällt:"
+
+#: ../../include/identity.php:959 ../../mod/profiles.php:533
+msgid "Dislikes:"
+msgstr "Gefällt nicht:"
+
+#: ../../include/identity.php:962
+msgid "Contact information and Social Networks:"
+msgstr "Kontaktinformation und soziale Netzwerke:"
+
+#: ../../include/identity.php:964
+msgid "My other channels:"
+msgstr "Meine anderen Kanäle:"
+
+#: ../../include/identity.php:966
+msgid "Musical interests:"
+msgstr "Musikalische Interessen:"
+
+#: ../../include/identity.php:968
+msgid "Books, literature:"
+msgstr "Bücher, Literatur:"
+
+#: ../../include/identity.php:970
+msgid "Television:"
+msgstr "Fernsehen:"
+
+#: ../../include/identity.php:972
+msgid "Film/dance/culture/entertainment:"
+msgstr "Film/Tanz/Kultur/Unterhaltung:"
+
+#: ../../include/identity.php:974
+msgid "Love/Romance:"
+msgstr "Liebe/Romantik:"
+
+#: ../../include/identity.php:976
+msgid "Work/employment:"
+msgstr "Arbeit/Anstellung:"
+
+#: ../../include/identity.php:978
+msgid "School/education:"
+msgstr "Schule/Ausbildung:"
+
+#: ../../include/ItemObject.php:89 ../../mod/photos.php:847
+msgid "Private Message"
+msgstr "Private Nachricht"
+
+#: ../../include/ItemObject.php:96 ../../include/page_widgets.php:8
+#: ../../include/menu.php:41 ../../mod/thing.php:235
+#: ../../mod/settings.php:578 ../../mod/menu.php:59 ../../mod/webpages.php:118
+#: ../../mod/editpost.php:112 ../../mod/layouts.php:102
+#: ../../mod/editlayout.php:106 ../../mod/blocks.php:93
+#: ../../mod/editwebpage.php:144 ../../mod/editblock.php:120
+#: ../../mod/filestorage.php:170
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: ../../include/ItemObject.php:118
+msgid "save to folder"
+msgstr "In Ordner speichern"
+
+#: ../../include/ItemObject.php:146
+msgid "add star"
+msgstr "markieren"
+
+#: ../../include/ItemObject.php:147
+msgid "remove star"
+msgstr "Markierung entfernen"
+
+#: ../../include/ItemObject.php:148
+msgid "toggle star status"
+msgstr "Markierung umschalten"
+
+#: ../../include/ItemObject.php:152
+msgid "starred"
+msgstr "markiert"
+
+#: ../../include/ItemObject.php:169
+msgid "add tag"
+msgstr "Schlagwort hinzufügen"
+
+#: ../../include/ItemObject.php:184 ../../mod/photos.php:972
+msgid "I like this (toggle)"
+msgstr "Mir gefällt das (Umschalter)"
+
+#: ../../include/ItemObject.php:184 ../../include/taxonomy.php:254
+msgid "like"
+msgstr "mag"
+
+#: ../../include/ItemObject.php:185 ../../mod/photos.php:973
+msgid "I don't like this (toggle)"
+msgstr "Mir gefällt das nicht (Umschalter)"
+
+#: ../../include/ItemObject.php:185 ../../include/taxonomy.php:255
+msgid "dislike"
+msgstr "verurteile"
+
+#: ../../include/ItemObject.php:187
+msgid "Share this"
+msgstr "Teile dies"
+
+#: ../../include/ItemObject.php:187
+msgid "share"
+msgstr "Teilen"
+
+#: ../../include/ItemObject.php:211 ../../include/ItemObject.php:212
#, php-format
-msgid "commented on %s's post"
-msgstr "hat %s's Beitrag kommentiert"
+msgid "View %s's profile - %s"
+msgstr "Schaue Dir %ss Profil an – %s"
-#: ../../include/photos.php:15 ../../include/attach.php:102
-#: ../../include/attach.php:133 ../../include/attach.php:189
-#: ../../include/attach.php:204 ../../include/attach.php:237
-#: ../../include/attach.php:251 ../../include/attach.php:272
-#: ../../include/attach.php:464 ../../include/attach.php:539
-#: ../../include/items.php:3608 ../../mod/common.php:43
-#: ../../mod/events.php:134 ../../mod/invite.php:13 ../../mod/invite.php:102
-#: ../../mod/allfriends.php:10 ../../mod/webpages.php:40 ../../mod/api.php:26
-#: ../../mod/api.php:31 ../../mod/lastpost.php:93 ../../mod/page.php:30
-#: ../../mod/page.php:80 ../../mod/setup.php:200 ../../mod/settings.php:628
-#: ../../mod/viewconnections.php:33 ../../mod/viewconnections.php:38
-#: ../../mod/delegate.php:6 ../../mod/sources.php:48 ../../mod/mitem.php:92
-#: ../../mod/group.php:15 ../../mod/photos.php:74 ../../mod/photos.php:654
-#: ../../mod/viewsrc.php:12 ../../mod/menu.php:40 ../../mod/message.php:208
-#: ../../mod/layouts.php:27 ../../mod/layouts.php:42 ../../mod/network.php:7
-#: ../../mod/intro.php:50 ../../mod/connections.php:197
-#: ../../mod/profiles.php:163 ../../mod/profiles.php:476
-#: ../../mod/new_channel.php:66 ../../mod/new_channel.php:97
-#: ../../mod/filestorage.php:26 ../../mod/manage.php:6
-#: ../../mod/crepair.php:115 ../../mod/editlayout.php:48
-#: ../../mod/nogroup.php:25 ../../mod/profile_photo.php:197
-#: ../../mod/profile_photo.php:210 ../../mod/editwebpage.php:42
-#: ../../mod/editwebpage.php:64 ../../mod/notifications.php:66
-#: ../../mod/blocks.php:29 ../../mod/blocks.php:44 ../../mod/editpost.php:13
-#: ../../mod/poke.php:128 ../../mod/channel.php:123 ../../mod/fsuggest.php:78
-#: ../../mod/editblock.php:48 ../../mod/item.php:181 ../../mod/item.php:189
-#: ../../mod/suggest.php:32 ../../mod/register.php:68 ../../mod/regmod.php:18
-#: ../../mod/mood.php:114 ../../index.php:178 ../../index.php:340
-msgid "Permission denied."
-msgstr "Zugang verweigert"
+#: ../../include/ItemObject.php:213
+msgid "to"
+msgstr "an"
+
+#: ../../include/ItemObject.php:214
+msgid "via"
+msgstr "via"
+
+#: ../../include/ItemObject.php:215
+msgid "Wall-to-Wall"
+msgstr "Wall-to-Wall"
+
+#: ../../include/ItemObject.php:216
+msgid "via Wall-To-Wall:"
+msgstr "via Wall-To-Wall:"
+
+#: ../../include/ItemObject.php:250
+msgid "Bookmark Links"
+msgstr "Setze Lesezeichen für die Links"
-#: ../../include/photos.php:88
+#: ../../include/ItemObject.php:280
#, php-format
-msgid "Image exceeds website size limit of %lu bytes"
-msgstr "Bild überschreitet das Limit der Webseite von %lu bytes"
+msgid "%d comment"
+msgid_plural "%d comments"
+msgstr[0] "%d Kommentar"
+msgstr[1] "%d Kommentare"
-#: ../../include/photos.php:95
-msgid "Image file is empty."
-msgstr "Bilddatei ist leer."
+#: ../../include/ItemObject.php:545 ../../mod/photos.php:991
+#: ../../mod/photos.php:1078
+msgid "This is you"
+msgstr "Das bist Du"
+
+#: ../../include/ItemObject.php:548 ../../mod/events.php:469
+#: ../../mod/thing.php:283 ../../mod/thing.php:326 ../../mod/invite.php:156
+#: ../../mod/settings.php:516 ../../mod/settings.php:628
+#: ../../mod/settings.php:656 ../../mod/settings.php:680
+#: ../../mod/settings.php:752 ../../mod/settings.php:929
+#: ../../mod/chat.php:162 ../../mod/chat.php:192 ../../mod/connect.php:92
+#: ../../mod/group.php:81 ../../mod/admin.php:431 ../../mod/admin.php:739
+#: ../../mod/admin.php:879 ../../mod/admin.php:1078 ../../mod/admin.php:1165
+#: ../../mod/connedit.php:437 ../../mod/profiles.php:506
+#: ../../mod/sources.php:104 ../../mod/sources.php:138 ../../mod/setup.php:304
+#: ../../mod/setup.php:347 ../../mod/import.php:387 ../../mod/mail.php:223
+#: ../../mod/mail.php:335 ../../mod/poke.php:166 ../../mod/fsuggest.php:108
+#: ../../mod/filestorage.php:131 ../../mod/photos.php:566
+#: ../../mod/photos.php:671 ../../mod/photos.php:954 ../../mod/photos.php:994
+#: ../../mod/photos.php:1081 ../../mod/mood.php:142
+#: ../../view/theme/redbasic/php/config.php:95
+#: ../../view/theme/apw/php/config.php:231
+#: ../../view/theme/blogga/view/theme/blog/config.php:67
+#: ../../view/theme/blogga/php/config.php:67
+msgid "Submit"
+msgstr "Bestätigen"
-#: ../../include/photos.php:124 ../../mod/profile_photo.php:157
-msgid "Unable to process image"
-msgstr "Kann Bild nicht verarbeiten"
+#: ../../include/ItemObject.php:549
+msgid "Bold"
+msgstr "Fett"
-#: ../../include/photos.php:186
-msgid "Photo storage failed."
-msgstr "Foto speichern schlug fehl"
+#: ../../include/ItemObject.php:550
+msgid "Italic"
+msgstr "Kursiv"
-#: ../../include/photos.php:288 ../../boot.php:2242
-msgid "Photo Albums"
-msgstr "Fotoalben"
+#: ../../include/ItemObject.php:551
+msgid "Underline"
+msgstr "Unterstrichen"
-#: ../../include/photos.php:292 ../../mod/photos.php:802
-#: ../../mod/photos.php:1276
-msgid "Upload New Photos"
-msgstr "Lade neue Fotos hoch"
+#: ../../include/ItemObject.php:552
+msgid "Quote"
+msgstr "Zitat"
+
+#: ../../include/ItemObject.php:553
+msgid "Code"
+msgstr "Code"
+
+#: ../../include/ItemObject.php:554
+msgid "Image"
+msgstr "Bild"
+
+#: ../../include/ItemObject.php:555
+msgid "Link"
+msgstr "Link"
+
+#: ../../include/ItemObject.php:556
+msgid "Video"
+msgstr "Video"
+
+#: ../../include/api.php:974
+msgid "Public Timeline"
+msgstr "Öffentliche Zeitleiste"
+
+#: ../../include/network.php:640
+msgid "view full size"
+msgstr "In Vollbildansicht anschauen"
+
+#: ../../include/notify.php:23
+msgid "created a new post"
+msgstr "Neuer Beitrag wurde erzeugt"
+
+#: ../../include/notify.php:24
+#, php-format
+msgid "commented on %s's post"
+msgstr "hat %s's Beitrag kommentiert"
#: ../../include/profile_selectors.php:6
msgid "Male"
@@ -1876,314 +2591,69 @@ msgstr "Interessiert mich nicht"
msgid "Ask me"
msgstr "Frag mich mal"
-#: ../../include/attach.php:184 ../../include/attach.php:232
-msgid "Item was not found."
-msgstr "Beitrag wurde nicht gefunden."
+#: ../../include/chat.php:10
+msgid "Missing room name"
+msgstr "Der Chatraum hat keinen Namen"
-#: ../../include/attach.php:285
-msgid "No source file."
-msgstr "Keine Quelldatei."
-
-#: ../../include/attach.php:302
-msgid "Cannot locate file to replace"
-msgstr "Kann Datei zum Ersetzen nicht finden"
-
-#: ../../include/attach.php:320
-msgid "Cannot locate file to revise/update"
-msgstr "Kann Datei zum Prüfen/Aktualisieren nicht finden"
+#: ../../include/chat.php:19
+msgid "Duplicate room name"
+msgstr "Name des Chatraums bereits vergeben"
-#: ../../include/attach.php:331
-#, php-format
-msgid "File exceeds size limit of %d"
-msgstr "Datei überschreitet das Größen-Limit von %d"
+#: ../../include/chat.php:68 ../../include/chat.php:76
+msgid "Invalid room specifier."
+msgstr "Ungültiger Raumbezeichner."
-#: ../../include/attach.php:342
-#, php-format
-msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
-msgstr "Die Größe deiner Datei-Anhänge haben das Maximum von %1$.0f MByte erreicht."
+#: ../../include/chat.php:102
+msgid "Room not found."
+msgstr "Chatraum konnte nicht gefunden werden."
-#: ../../include/attach.php:424
-msgid "File upload failed. Possible system limit or action terminated."
-msgstr "Datei-Upload fehlgeschlagen. Mögliche Systembegrenzung oder abgebrochener Prozess."
+#: ../../include/chat.php:123
+msgid "Room is full"
+msgstr "Der Raum ist voll"
-#: ../../include/attach.php:436
-msgid "Stored file could not be verified. Upload failed."
-msgstr "Gespeichert Datei konnte nicht verifiziert werden. Upload abgebrochen."
-
-#: ../../include/attach.php:480 ../../include/attach.php:497
-msgid "Path not available."
-msgstr "Pfad nicht verfügbar."
-
-#: ../../include/attach.php:544
-msgid "Empty pathname"
-msgstr "leere Pfadangabe"
-
-#: ../../include/attach.php:562
-msgid "duplicate filename or path"
-msgstr "doppelter Dateiname oder Pfad"
-
-#: ../../include/attach.php:584
-msgid "Path not found."
-msgstr "Pfad nicht gefunden."
-
-#: ../../include/attach.php:628
-msgid "mkdir failed."
-msgstr "mkdir fehlgeschlagen."
-
-#: ../../include/attach.php:632
-msgid "database storage failed."
-msgstr "Speichern in der Datenbank fehlgeschlagen."
-
-#: ../../include/zot.php:542
-msgid "Invalid data packet"
-msgstr "Ungültiges Datenpaket"
-
-#: ../../include/zot.php:552
-msgid "Unable to verify channel signature"
-msgstr "Konnte die Signatur des Kanals nicht verifizieren"
-
-#: ../../include/zot.php:697
-#, php-format
-msgid "Unable to verify site signature for %s"
-msgstr "Kann die Signatur der Seite von %s nicht verifizieren"
-
-#: ../../include/nav.php:72 ../../include/nav.php:87 ../../boot.php:1458
-msgid "Logout"
-msgstr "Abmelden"
-
-#: ../../include/nav.php:72 ../../include/nav.php:87
-msgid "End this session"
-msgstr "Beende diese Sitzung"
-
-#: ../../include/nav.php:75 ../../include/nav.php:121
-msgid "Home"
-msgstr "Home"
-
-#: ../../include/nav.php:75
-msgid "Your posts and conversations"
-msgstr "Deine Beiträge und Unterhaltungen"
-
-#: ../../include/nav.php:76
-msgid "Your profile page"
-msgstr "Deine Profilseite"
-
-#: ../../include/nav.php:78
-msgid "Edit Profiles"
-msgstr "Profile bearbeiten"
-
-#: ../../include/nav.php:78
-msgid "Manage/Edit Profiles"
-msgstr "Verwalte/Bearbeite Profile"
-
-#: ../../include/nav.php:79 ../../mod/fbrowser.php:25 ../../boot.php:2239
-msgid "Photos"
-msgstr "Fotos"
-
-#: ../../include/nav.php:79
-msgid "Your photos"
-msgstr "Deine Bilder"
-
-#: ../../include/nav.php:85 ../../boot.php:1459
-msgid "Login"
-msgstr "Anmelden"
-
-#: ../../include/nav.php:85
-msgid "Sign in"
-msgstr "Anmelden"
-
-#: ../../include/nav.php:102
-#, php-format
-msgid "%s - click to logout"
-msgstr "%s - Klick zum Abmelden"
-
-#: ../../include/nav.php:107
-msgid "Click to authenticate to your home hub"
-msgstr "Klick zum Authentifizieren bei Deinem Heimat-Hub"
-
-#: ../../include/nav.php:121
-msgid "Home Page"
-msgstr "Homepage"
-
-#: ../../include/nav.php:125 ../../mod/register.php:195 ../../boot.php:1435
-msgid "Register"
-msgstr "Registrieren"
-
-#: ../../include/nav.php:125
-msgid "Create an account"
-msgstr "Erzeuge ein Konto"
-
-#: ../../include/nav.php:130 ../../mod/help.php:45 ../../mod/help.php:49
-msgid "Help"
-msgstr "Hilfe"
-
-#: ../../include/nav.php:130
-msgid "Help and documentation"
-msgstr "Hilfe und Dokumentation"
-
-#: ../../include/nav.php:133
-msgid "Apps"
-msgstr "Apps"
-
-#: ../../include/nav.php:133
-msgid "Addon applications, utilities, games"
-msgstr "Addon Programme, Helferlein, Spiele"
-
-#: ../../include/nav.php:135
-msgid "Search site content"
-msgstr "Durchsuche Seiten-Inhalt"
-
-#: ../../include/nav.php:138 ../../mod/directory.php:225
-msgid "Directory"
-msgstr "Verzeichnis"
-
-#: ../../include/nav.php:138
-msgid "Channel Locator"
-msgstr "Kanal-Anzeiger"
-
-#: ../../include/nav.php:149
-msgid "Matrix"
-msgstr "Matrix"
-
-#: ../../include/nav.php:149
-msgid "Your matrix"
-msgstr "Deine Matrix"
-
-#: ../../include/nav.php:150
-msgid "See all matrix notifications"
-msgstr "Alle Matrix-Benachrichtigungen ansehen"
-
-#: ../../include/nav.php:151
-msgid "Mark all matrix notifications seen"
-msgstr "Markiere alle Matrix-Benachrichtigungen als angesehen"
-
-#: ../../include/nav.php:153
-msgid "Channel Home"
-msgstr "Mein Kanal"
-
-#: ../../include/nav.php:153
-msgid "Channel home"
-msgstr "Mein Kanal"
-
-#: ../../include/nav.php:154
-msgid "See all channel notifications"
-msgstr "Alle Kanal-Benachrichtigungen ansehen"
-
-#: ../../include/nav.php:155
-msgid "Mark all channel notifications seen"
-msgstr "Markiere alle Kanal-Benachrichtigungen als angesehen"
-
-#: ../../include/nav.php:158
-msgid "Intros"
-msgstr "Vorstellungen"
-
-#: ../../include/nav.php:158 ../../mod/connections.php:585
-msgid "New Connections"
-msgstr "Neue Verbindungen"
-
-#: ../../include/nav.php:159
-msgid "See all channel introductions"
-msgstr "Alle Kanal-Einladungen ansehen"
-
-#: ../../include/nav.php:162
-msgid "Notices"
-msgstr "Benachrichtigungen"
-
-#: ../../include/nav.php:162 ../../mod/notifications.php:218
-msgid "Notifications"
-msgstr "Benachrichtigungen"
-
-#: ../../include/nav.php:163
-msgid "See all notifications"
-msgstr "Alle Benachrichtigungen ansehen"
-
-#: ../../include/nav.php:164
-msgid "Mark all system notifications seen"
-msgstr "Markiere alle System-Benachrichtigungen als gesehen"
-
-#: ../../include/nav.php:166
-msgid "Mail"
-msgstr "Mail"
-
-#: ../../include/nav.php:166
-msgid "Private mail"
-msgstr "Persönliche Mail"
-
-#: ../../include/nav.php:167
-msgid "See all private messages"
-msgstr "Alle persönlichen Nachrichten ansehen"
-
-#: ../../include/nav.php:168
-msgid "Mark all private messages seen"
-msgstr "Markiere alle persönlichen Nachrichten als gesehen"
-
-#: ../../include/nav.php:169
-msgid "Inbox"
-msgstr "Eingang"
-
-#: ../../include/nav.php:170
-msgid "Outbox"
-msgstr "Ausgang"
-
-#: ../../include/nav.php:171 ../../mod/message.php:24
-msgid "New Message"
-msgstr "Neue Nachricht"
-
-#: ../../include/nav.php:174 ../../mod/events.php:348 ../../boot.php:2250
-msgid "Events"
-msgstr "Veranstaltungen"
-
-#: ../../include/nav.php:174
-msgid "Event Calendar"
-msgstr "Veranstaltungskalender"
-
-#: ../../include/nav.php:175
-msgid "See all events"
-msgstr "Alle Ereignisse ansehen"
-
-#: ../../include/nav.php:176
-msgid "Mark all events seen"
-msgstr "Markiere alle Ereignisse als gesehen"
+#: ../../include/taxonomy.php:210
+msgid "Tags"
+msgstr "Schlagwörter"
-#: ../../include/nav.php:178
-msgid "Channel Select"
-msgstr "Kanal-Auswahl"
+#: ../../include/taxonomy.php:227
+msgid "Keywords"
+msgstr "Schlüsselwörter"
-#: ../../include/nav.php:178
-msgid "Manage Your Channels"
-msgstr "Verwalte Deine Kanäle"
+#: ../../include/taxonomy.php:252
+msgid "have"
+msgstr "habe"
-#: ../../include/nav.php:180 ../../mod/settings.php:131
-#: ../../mod/admin.php:782 ../../mod/admin.php:987
-msgid "Settings"
-msgstr "Einstellungen"
+#: ../../include/taxonomy.php:252
+msgid "has"
+msgstr "hat"
-#: ../../include/nav.php:180
-msgid "Account/Channel Settings"
-msgstr "Konto-/Kanal-Einstellungen"
+#: ../../include/taxonomy.php:253
+msgid "want"
+msgstr "will"
-#: ../../include/nav.php:182 ../../mod/connections.php:691
-msgid "Connections"
-msgstr "Verbindungen"
+#: ../../include/taxonomy.php:253
+msgid "wants"
+msgstr "will"
-#: ../../include/nav.php:182
-msgid "Manage/Edit Friends and Connections"
-msgstr "Verwalte/Bearbeite Freunde und Verbindungen"
+#: ../../include/taxonomy.php:254
+msgid "likes"
+msgstr "gefällt"
-#: ../../include/nav.php:189 ../../mod/admin.php:111
-msgid "Admin"
-msgstr "Admin"
+#: ../../include/taxonomy.php:255
+msgid "dislikes"
+msgstr "missfällt"
-#: ../../include/nav.php:189
-msgid "Site Setup and Configuration"
-msgstr "Seiten-Einrichtung und -Konfiguration"
+#: ../../include/auth.php:76
+msgid "Logged out."
+msgstr "Ausgeloggt."
-#: ../../include/nav.php:215
-msgid "Nothing new here"
-msgstr "Nichts Neues hier"
+#: ../../include/auth.php:188
+msgid "Failed authentication"
+msgstr "Authentifizierung fehlgeschlagen"
-#: ../../include/nav.php:220
-msgid "Please wait..."
-msgstr "Bitte warten..."
+#: ../../include/auth.php:203 ../../mod/openid.php:185
+msgid "Login failed."
+msgstr "Login fehlgeschlagen."
#: ../../include/account.php:23
msgid "Not a valid email address"
@@ -2191,7 +2661,7 @@ msgstr "Ungültige E-Mail-Adresse"
#: ../../include/account.php:25
msgid "Your email domain is not among those allowed on this site"
-msgstr "Deine E-Mail-Adresse ist nicht unter denen, die auf dieser Seite erlaubt sind"
+msgstr "Deine E-Mail-Adresse ist dieser Seite nicht erlaubt"
#: ../../include/account.php:31
msgid "Your email address is already registered at this site."
@@ -2205,387 +2675,328 @@ msgstr "Eine Einladung wird benötigt"
msgid "Invitation could not be verified."
msgstr "Die Einladung konnte nicht bestätigt werden"
-#: ../../include/account.php:118
+#: ../../include/account.php:119
msgid "Please enter the required information."
msgstr "Bitte gib die benötigten Informationen ein."
-#: ../../include/account.php:186
+#: ../../include/account.php:187
msgid "Failed to store account information."
msgstr "Speichern der Account-Informationen fehlgeschlagen"
-#: ../../include/account.php:272
+#: ../../include/account.php:273
#, php-format
msgid "Registration request at %s"
msgstr "Registrierungsanfrage auf %s"
-#: ../../include/account.php:274 ../../include/account.php:301
-#: ../../include/account.php:358
+#: ../../include/account.php:275 ../../include/account.php:302
+#: ../../include/account.php:359
msgid "Administrator"
msgstr "Administrator"
-#: ../../include/account.php:296
+#: ../../include/account.php:297
msgid "your registration password"
-msgstr "dein Registrierungspasswort"
+msgstr "Dein Registrierungspasswort"
-#: ../../include/account.php:299 ../../include/account.php:356
+#: ../../include/account.php:300 ../../include/account.php:357
#, php-format
msgid "Registration details for %s"
msgstr "Registrierungsdetails für %s"
-#: ../../include/account.php:365
+#: ../../include/account.php:366
msgid "Account approved."
msgstr "Account bestätigt."
-#: ../../include/account.php:399
+#: ../../include/account.php:400
#, php-format
msgid "Registration revoked for %s"
msgstr "Registrierung für %s widerrufen"
-#: ../../include/conversation.php:123
-msgid "channel"
-msgstr "Kanal"
-
-#: ../../include/conversation.php:161 ../../mod/like.php:134
-#, php-format
-msgid "%1$s likes %2$s's %3$s"
-msgstr "%1$s mag %2$s's %3$s"
-
-#: ../../include/conversation.php:164 ../../mod/like.php:136
-#, php-format
-msgid "%1$s doesn't like %2$s's %3$s"
-msgstr "%1$s mag %2$s's %3$s nicht"
-
-#: ../../include/conversation.php:201
-#, php-format
-msgid "%1$s is now connected with %2$s"
-msgstr "%1$s ist jetzt mit %2$s verbunden"
-
-#: ../../include/conversation.php:232
-#, php-format
-msgid "%1$s poked %2$s"
-msgstr "%1$s stupste %2$s"
-
-#: ../../include/conversation.php:254 ../../mod/mood.php:63
-#, php-format
-msgid "%1$s is currently %2$s"
-msgstr "%1$s ist momentan %2$s"
+#: ../../include/dir_fns.php:15
+msgid "Sort Options"
+msgstr "Sortieroptionen"
-#: ../../include/conversation.php:658
-#, php-format
-msgid "View %s's profile @ %s"
-msgstr "Schaue Dir %s's Profil auf %s an."
+#: ../../include/dir_fns.php:16
+msgid "Alphabetic"
+msgstr "alphabetisch"
-#: ../../include/conversation.php:672
-msgid "Categories:"
-msgstr "Kategorien:"
+#: ../../include/dir_fns.php:17
+msgid "Reverse Alphabetic"
+msgstr "Entgegengesetzt alphabetisch"
-#: ../../include/conversation.php:673
-msgid "Filed under:"
-msgstr "Gespeichert unter:"
+#: ../../include/dir_fns.php:18
+msgid "Newest to Oldest"
+msgstr "Neueste zuerst"
-#: ../../include/conversation.php:700
-msgid "View in context"
-msgstr "Im Zusammenhang anschauen"
+#: ../../include/dir_fns.php:30
+msgid "Enable Safe Search"
+msgstr "Sichere Suche einschalten"
-#: ../../include/conversation.php:826
-msgid "remove"
-msgstr "lösche"
+#: ../../include/dir_fns.php:32
+msgid "Disable Safe Search"
+msgstr "Sichere Suche ausschalten"
-#: ../../include/conversation.php:830
-msgid "Loading..."
-msgstr "Lädt ..."
+#: ../../include/dir_fns.php:34
+msgid "Safe Mode"
+msgstr "Sicherer Modus"
-#: ../../include/conversation.php:831
-msgid "Delete Selected Items"
-msgstr "Lösche die ausgewählten Elemente"
+#: ../../include/enotify.php:40
+msgid "Red Matrix Notification"
+msgstr "Red Matrix Benachrichtigung"
-#: ../../include/conversation.php:922
-msgid "View Source"
-msgstr "Quelle anzeigen"
+#: ../../include/enotify.php:41
+msgid "redmatrix"
+msgstr "redmatrix"
-#: ../../include/conversation.php:923
-msgid "Follow Thread"
-msgstr "Unterhaltung folgen"
+#: ../../include/enotify.php:43
+msgid "Thank You,"
+msgstr "Danke."
-#: ../../include/conversation.php:927
-msgid "Matrix Activity"
-msgstr "Matrix Aktivität"
+#: ../../include/enotify.php:45
+#, php-format
+msgid "%s Administrator"
+msgstr "%s Administrator"
-#: ../../include/conversation.php:992
+#: ../../include/enotify.php:80
#, php-format
-msgid "%s likes this."
-msgstr "%s gefällt das."
+msgid "%s <!item_type!>"
+msgstr "%s <!item_type!>"
-#: ../../include/conversation.php:992
+#: ../../include/enotify.php:84
#, php-format
-msgid "%s doesn't like this."
-msgstr "%s gefällt das nicht."
+msgid "[Red:Notify] New mail received at %s"
+msgstr "[Red Notify] Neue Mail auf %s empfangen"
-#: ../../include/conversation.php:996
+#: ../../include/enotify.php:86
#, php-format
-msgid "<span %1$s>%2$d people</span> like this."
-msgid_plural "<span %1$s>%2$d people</span> like this."
-msgstr[0] ""
-msgstr[1] "<span %1$s>%2$d Personen</span> mögen dies."
+msgid "%1$s, %2$s sent you a new private message at %3$s."
+msgstr "%1$s, %2$s hat Dir eine private Nachricht auf %3$s gesendet."
-#: ../../include/conversation.php:998
+#: ../../include/enotify.php:87
#, php-format
-msgid "<span %1$s>%2$d people</span> don't like this."
-msgid_plural "<span %1$s>%2$d people</span> don't like this."
-msgstr[0] ""
-msgstr[1] "<span %1$s>%2$d Personen</span> mögen dies nicht."
+msgid "%1$s sent you %2$s."
+msgstr "%1$s hat Dir %2$s geschickt."
-#: ../../include/conversation.php:1004
-msgid "and"
-msgstr "und"
+#: ../../include/enotify.php:87
+msgid "a private message"
+msgstr "eine private Nachricht"
-#: ../../include/conversation.php:1007
+#: ../../include/enotify.php:88
#, php-format
-msgid ", and %d other people"
-msgid_plural ", and %d other people"
-msgstr[0] ""
-msgstr[1] ", und %d andere"
+msgid "Please visit %s to view and/or reply to your private messages."
+msgstr "Bitte besuche %s, um die private Nachricht anzusehen und/oder darauf zu antworten."
-#: ../../include/conversation.php:1008
+#: ../../include/enotify.php:142
#, php-format
-msgid "%s like this."
-msgstr "%s gefällt das."
+msgid "%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]"
+msgstr "%1$s, %2$s hat [zrl=%3$s]a %4$s[/zrl] kommentiert"
-#: ../../include/conversation.php:1008
+#: ../../include/enotify.php:150
#, php-format
-msgid "%s don't like this."
-msgstr "%s gefällt das nicht."
-
-#: ../../include/conversation.php:1058
-msgid "Visible to <strong>everybody</strong>"
-msgstr "Sichtbar für <strong>jeden</strong>"
+msgid "%1$s, %2$s commented on [zrl=%3$s]%4$s's %5$s[/zrl]"
+msgstr "%1$s, %2$s hat [zrl=%3$s]%4$ss %5$s[/zrl] kommentiert"
-#: ../../include/conversation.php:1059 ../../mod/message.php:281
-#: ../../mod/message.php:417
-msgid "Please enter a link URL:"
-msgstr "Gib eine URL ein:"
+#: ../../include/enotify.php:159
+#, php-format
+msgid "%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]"
+msgstr "%1$s, %2$s hat [zrl=%3$s]Deinen %4$s[/zrl] kommentiert"
-#: ../../include/conversation.php:1060
-msgid "Please enter a video link/URL:"
-msgstr "Gib einen Video-Link/URL ein:"
+#: ../../include/enotify.php:170
+#, php-format
+msgid "[Red:Notify] Comment to conversation #%1$d by %2$s"
+msgstr "[Red:Benachrichtigung] Kommentar in Unterhaltung #%1$d von %2$s"
-#: ../../include/conversation.php:1061
-msgid "Please enter an audio link/URL:"
-msgstr "Gib einen Audio-Link/URL ein:"
+#: ../../include/enotify.php:171
+#, php-format
+msgid "%1$s, %2$s commented on an item/conversation you have been following."
+msgstr "%1$s, %2$s hat eine Unterhaltung kommentiert, der Du folgst."
-#: ../../include/conversation.php:1062
-msgid "Tag term:"
-msgstr "Schlagwort:"
+#: ../../include/enotify.php:174 ../../include/enotify.php:189
+#: ../../include/enotify.php:215 ../../include/enotify.php:234
+#: ../../include/enotify.php:248
+#, php-format
+msgid "Please visit %s to view and/or reply to the conversation."
+msgstr "Bitte besuche %s, um die Unterhaltung anzusehen und/oder zu kommentieren."
-#: ../../include/conversation.php:1063 ../../mod/filer.php:35
-msgid "Save to Folder:"
-msgstr "Speichern in Ordner:"
+#: ../../include/enotify.php:180
+#, php-format
+msgid "[Red:Notify] %s posted to your profile wall"
+msgstr "[Red:Hinweis] %s schrieb auf Deine Pinnwand"
-#: ../../include/conversation.php:1064
-msgid "Where are you right now?"
-msgstr "Wo bist du jetzt grade?"
+#: ../../include/enotify.php:182
+#, php-format
+msgid "%1$s, %2$s posted to your profile wall at %3$s"
+msgstr "%1$s, %2$s hat auf Deine Pinnwand auf %3$s geschrieben"
-#: ../../include/conversation.php:1065 ../../mod/message.php:282
-#: ../../mod/message.php:418 ../../mod/editpost.php:52
-msgid "Expires YYYY-MM-DD HH:MM"
-msgstr "Verfällt YYYY-MM-DD HH;MM"
+#: ../../include/enotify.php:184
+#, php-format
+msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]"
+msgstr "%1$s, %2$s hat auf [zrl=%3$s]Deine Pinnwand[/zrl] geschrieben"
-#: ../../include/conversation.php:1089 ../../mod/photos.php:1060
-msgid "Share"
-msgstr "Teilen"
+#: ../../include/enotify.php:208
+#, php-format
+msgid "[Red:Notify] %s tagged you"
+msgstr "[Red Notify] %s hat Dich erwähnt"
-#: ../../include/conversation.php:1091
-msgid "Page link title"
-msgstr "Seitentitel-Link"
+#: ../../include/enotify.php:209
+#, php-format
+msgid "%1$s, %2$s tagged you at %3$s"
+msgstr "%1$s, %2$s hat Dich auf %3$s erwähnt"
-#: ../../include/conversation.php:1093 ../../mod/message.php:329
-#: ../../mod/message.php:512 ../../mod/editlayout.php:101
-#: ../../mod/editwebpage.php:120 ../../mod/editpost.php:98
-#: ../../mod/editblock.php:115
-msgid "Upload photo"
-msgstr "Foto hochladen"
+#: ../../include/enotify.php:210
+#, php-format
+msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]."
+msgstr "%1$s, %2$s [zrl=%3$s]hat Dich erwähnt[/zrl]."
-#: ../../include/conversation.php:1094
-msgid "upload photo"
-msgstr "Foto hochladen"
+#: ../../include/enotify.php:223
+#, php-format
+msgid "[Red:Notify] %1$s poked you"
+msgstr "[Red Notify] %1$s hat Dich angestupst"
-#: ../../include/conversation.php:1095 ../../mod/message.php:330
-#: ../../mod/message.php:513 ../../mod/editlayout.php:102
-#: ../../mod/editwebpage.php:121 ../../mod/editpost.php:99
-#: ../../mod/editblock.php:116
-msgid "Attach file"
-msgstr "Datei anhängen"
+#: ../../include/enotify.php:224
+#, php-format
+msgid "%1$s, %2$s poked you at %3$s"
+msgstr "%1$s, %2$s hat Dich auf %3$s angestupst"
-#: ../../include/conversation.php:1096
-msgid "attach file"
-msgstr "Datei anfügen"
+#: ../../include/enotify.php:225
+#, php-format
+msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]."
+msgstr "%1$s, %2$s [zrl=%2$s]hat Dich angestupst[/zrl]."
-#: ../../include/conversation.php:1097 ../../mod/message.php:331
-#: ../../mod/message.php:514 ../../mod/editlayout.php:103
-#: ../../mod/editwebpage.php:122 ../../mod/editpost.php:100
-#: ../../mod/editblock.php:117
-msgid "Insert web link"
-msgstr "Link einfügen"
+#: ../../include/enotify.php:241
+#, php-format
+msgid "[Red:Notify] %s tagged your post"
+msgstr "[Red:Hinweis] %s hat Deinen Beitrag verschlagwortet"
-#: ../../include/conversation.php:1098
-msgid "web link"
-msgstr "Web-Link"
+#: ../../include/enotify.php:242
+#, php-format
+msgid "%1$s, %2$s tagged your post at %3$s"
+msgstr "%1$s, %2$s hat Deinen Beitrag auf %3$s verschlagwortet"
-#: ../../include/conversation.php:1099
-msgid "Insert video link"
-msgstr "Video-Link einfügen"
+#: ../../include/enotify.php:243
+#, php-format
+msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]"
+msgstr "%1$s, %2$s hat [zrl=%3$s]Deinen Beitrag[/zrl] verschlagwortet"
-#: ../../include/conversation.php:1100
-msgid "video link"
-msgstr "Video-Link"
+#: ../../include/enotify.php:255
+msgid "[Red:Notify] Introduction received"
+msgstr "[Red:Notify] Vorstellung erhalten"
-#: ../../include/conversation.php:1101
-msgid "Insert audio link"
-msgstr "Audio-Link einfügen"
+#: ../../include/enotify.php:256
+#, php-format
+msgid "%1$s, you've received an introduction from '%2$s' at %3$s"
+msgstr "%1$s, Du hast eine Vorstellung von „%2$s“ auf %3$s erhalten"
-#: ../../include/conversation.php:1102
-msgid "audio link"
-msgstr "Audio-Link"
+#: ../../include/enotify.php:257
+#, php-format
+msgid "%1$s, you've received [zrl=%2$s]an introduction[/zrl] from %3$s."
+msgstr "%1$s, Du hast [zrl=%2$s]eine Vorstellung[/zrl] von %3$s erhalten."
-#: ../../include/conversation.php:1103 ../../mod/editlayout.php:107
-#: ../../mod/editwebpage.php:126 ../../mod/editpost.php:104
-#: ../../mod/editblock.php:121
-msgid "Set your location"
-msgstr "Standort"
+#: ../../include/enotify.php:261 ../../include/enotify.php:280
+#, php-format
+msgid "You may visit their profile at %s"
+msgstr "Du kannst Dir das Profil unter %s ansehen"
-#: ../../include/conversation.php:1104
-msgid "set location"
-msgstr "Standort"
+#: ../../include/enotify.php:263
+#, php-format
+msgid "Please visit %s to approve or reject the introduction."
+msgstr "Bitte besuche %s um sie anzunehmen oder abzulehnen."
-#: ../../include/conversation.php:1105 ../../mod/editlayout.php:108
-#: ../../mod/editwebpage.php:127 ../../mod/editpost.php:105
-#: ../../mod/editblock.php:122
-msgid "Clear browser location"
-msgstr "Browser-Standort löschen"
+#: ../../include/enotify.php:270
+msgid "[Red:Notify] Friend suggestion received"
+msgstr "[Red:Benachrichtigung] Freundschaftsvorschlag erhalten"
-#: ../../include/conversation.php:1106
-msgid "clear location"
-msgstr "Standort löschen"
+#: ../../include/enotify.php:271
+#, php-format
+msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s"
+msgstr "%1$s, Du hast einen Kontaktvorschlag von „%2$s“ auf %3$s erhalten"
-#: ../../include/conversation.php:1108 ../../mod/editlayout.php:121
-#: ../../mod/editwebpage.php:142 ../../mod/editpost.php:118
-#: ../../mod/editblock.php:136
-msgid "Set title"
-msgstr "Titel"
+#: ../../include/enotify.php:272
+#, php-format
+msgid ""
+"%1$s, you've received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from "
+"%4$s."
+msgstr "%1$s, Du hast [zrl=%2$s]einen Kontaktvorschlag[/zrl] für %3$s von %4$s erhalten."
-#: ../../include/conversation.php:1111 ../../mod/editlayout.php:123
-#: ../../mod/editwebpage.php:144 ../../mod/editpost.php:120
-#: ../../mod/editblock.php:138
-msgid "Categories (comma-separated list)"
-msgstr "Kategorien (Kommagetrennte Liste)"
+#: ../../include/enotify.php:278
+msgid "Name:"
+msgstr "Name:"
-#: ../../include/conversation.php:1113 ../../mod/editlayout.php:110
-#: ../../mod/editwebpage.php:129 ../../mod/editpost.php:107
-#: ../../mod/editblock.php:124
-msgid "Permission settings"
-msgstr "Berechtigungs-Einstellungen"
+#: ../../include/enotify.php:279
+msgid "Photo:"
+msgstr "Foto:"
-#: ../../include/conversation.php:1114
-msgid "permissions"
-msgstr "Berechtigungen"
+#: ../../include/enotify.php:282
+#, php-format
+msgid "Please visit %s to approve or reject the suggestion."
+msgstr "Bitte besuche %s um den Vorschlag zu akzeptieren oder abzulehnen."
-#: ../../include/conversation.php:1122 ../../mod/editlayout.php:118
-#: ../../mod/editwebpage.php:137 ../../mod/editpost.php:115
-#: ../../mod/editblock.php:133
-msgid "Public post"
-msgstr "Öffentlicher Beitrag"
+#: ../../include/photos.php:89
+#, php-format
+msgid "Image exceeds website size limit of %lu bytes"
+msgstr "Bild überschreitet das Limit der Webseite von %lu bytes"
-#: ../../include/conversation.php:1124 ../../mod/editlayout.php:124
-#: ../../mod/editwebpage.php:145 ../../mod/editpost.php:121
-#: ../../mod/editblock.php:139
-msgid "Example: bob@example.com, mary@example.com"
-msgstr "Beispiel: bob@example.com, mary@example.com"
+#: ../../include/photos.php:96
+msgid "Image file is empty."
+msgstr "Bilddatei ist leer."
-#: ../../include/conversation.php:1137 ../../mod/message.php:336
-#: ../../mod/message.php:519 ../../mod/editlayout.php:134
-#: ../../mod/editwebpage.php:155 ../../mod/editpost.php:132
-#: ../../mod/editblock.php:149
-msgid "Set expiration date"
-msgstr "Verfallsdatum"
+#: ../../include/photos.php:123 ../../mod/profile_photo.php:147
+msgid "Unable to process image"
+msgstr "Kann Bild nicht verarbeiten"
-#: ../../include/auth.php:67
-msgid "Logged out."
-msgstr "Ausgeloggt."
+#: ../../include/photos.php:185
+msgid "Photo storage failed."
+msgstr "Foto speichern schlug fehl"
-#: ../../include/auth.php:179
-msgid "Failed authentication"
-msgstr "Authentifizierung fehlgeschlagen"
+#: ../../include/photos.php:306 ../../mod/photos.php:694
+#: ../../mod/photos.php:1191
+msgid "Upload New Photos"
+msgstr "Lade neue Fotos hoch"
-#: ../../include/auth.php:188
-msgid "Login failed."
-msgstr "Login fehlgeschlagen."
+#: ../../include/reddav.php:1061
+msgid "Edit File properties"
+msgstr "Dateieigenschaften ändern"
#: ../../include/contact_widgets.php:14
#, php-format
-msgid "You have %1$.0f of %2$.0f allowed connections."
-msgstr "Du bist %1$.0f von %2$.0f erlaubten Verbindungen eingegangen."
-
-#: ../../include/contact_widgets.php:20
-msgid "Add New Connection"
-msgstr "Neue Verbindung hinzufügen"
-
-#: ../../include/contact_widgets.php:21
-msgid "Enter the channel address"
-msgstr "Adresse des Kanals eingeben"
-
-#: ../../include/contact_widgets.php:22
-msgid "Example: bob@example.com, http://example.com/barbara"
-msgstr "Beispiel: bob@beispiel.com, http://beispiel.com/barbara"
-
-#: ../../include/contact_widgets.php:38
-#, php-format
msgid "%d invitation available"
msgid_plural "%d invitations available"
msgstr[0] "%d Einladung verfügbar"
msgstr[1] "%d Einladungen verfügbar"
-#: ../../include/contact_widgets.php:44
+#: ../../include/contact_widgets.php:20
msgid "Find Channels"
msgstr "Finde Kanäle"
-#: ../../include/contact_widgets.php:45
+#: ../../include/contact_widgets.php:21
msgid "Enter name or interest"
msgstr "Name oder Interessen eingeben"
-#: ../../include/contact_widgets.php:46
+#: ../../include/contact_widgets.php:22
msgid "Connect/Follow"
msgstr "Verbinden/Folgen"
-#: ../../include/contact_widgets.php:47
+#: ../../include/contact_widgets.php:23
msgid "Examples: Robert Morgenstein, Fishing"
msgstr "Beispiele: Robert Morgenstein, Angeln"
-#: ../../include/contact_widgets.php:48 ../../mod/connections.php:697
-#: ../../mod/directory.php:221 ../../mod/directory.php:226
+#: ../../include/contact_widgets.php:24 ../../mod/directory.php:207
+#: ../../mod/directory.php:212 ../../mod/connections.php:357
msgid "Find"
msgstr "Finde"
-#: ../../include/contact_widgets.php:49 ../../mod/suggest.php:64
+#: ../../include/contact_widgets.php:25 ../../mod/suggest.php:59
msgid "Channel Suggestions"
msgstr "Kanal-Vorschläge"
-#: ../../include/contact_widgets.php:51
+#: ../../include/contact_widgets.php:27
msgid "Random Profile"
msgstr "Zufallsprofil"
-#: ../../include/contact_widgets.php:52
+#: ../../include/contact_widgets.php:28
msgid "Invite Friends"
msgstr "Lade Freunde ein"
-#: ../../include/contact_widgets.php:79 ../../include/contact_widgets.php:113
-msgid "Everything"
-msgstr "Alles"
-
-#: ../../include/contact_widgets.php:110 ../../include/widgets.php:26
-msgid "Categories"
-msgstr "Kategorien"
-
-#: ../../include/contact_widgets.php:143
+#: ../../include/contact_widgets.php:120
#, php-format
msgid "%d connection in common"
msgid_plural "%d connections in common"
@@ -2596,33 +3007,60 @@ msgstr[1] "%d gemeinsame Verbindungen"
msgid "New Page"
msgstr "Neue Seite"
-#: ../../include/follow.php:21
+#: ../../include/plugin.php:475 ../../include/plugin.php:477
+msgid "Click here to upgrade."
+msgstr "Klicke hier, um das Upgrade durchzuführen."
+
+#: ../../include/plugin.php:483
+msgid "This action exceeds the limits set by your subscription plan."
+msgstr "Diese Aktion überschreitet die Grenzen Ihres Abonnements."
+
+#: ../../include/plugin.php:488
+msgid "This action is not available under your subscription plan."
+msgstr "Diese Aktion ist in Ihrem Abonnement nicht verfügbar."
+
+#: ../../include/follow.php:23
msgid "Channel is blocked on this site."
msgstr "Der Kanal ist auf dieser Seite blockiert "
-#: ../../include/follow.php:26
+#: ../../include/follow.php:28
msgid "Channel location missing."
msgstr "Adresse des Kanals fehlt."
-#: ../../include/follow.php:43
-msgid "Channel discovery failed. Website may be down or misconfigured."
-msgstr "Auffinden des Kanals schlug fehl. Die Webseite könnte falsch konfiguriert oder abgeschaltet sein."
-
-#: ../../include/follow.php:51
-msgid "Response from remote channel was not understood."
-msgstr "Antwort des entfernten Kanals war unverständlich."
-
-#: ../../include/follow.php:58
+#: ../../include/follow.php:54
msgid "Response from remote channel was incomplete."
msgstr "Antwort des entfernten Kanals war unvollständig."
-#: ../../include/follow.php:129
+#: ../../include/follow.php:126
+msgid "Channel discovery failed."
+msgstr ""
+
+#: ../../include/follow.php:143
msgid "local account not found."
msgstr "Lokales Konto nicht gefunden."
-#: ../../include/follow.php:138
+#: ../../include/follow.php:152
msgid "Cannot connect to yourself."
-msgstr "Du kannst dich nicht mit dir selbst verbinden."
+msgstr "Du kannst Dich nicht mit Dir selbst verbinden."
+
+#: ../../include/security.php:291
+msgid ""
+"The form security token was not correct. This probably happened because the "
+"form has been opened for too long (>3 hours) before submitting it."
+msgstr "Das Security-Token des Formulars war nicht korrekt. Das ist wahrscheinlich passiert, weil das Formular zu lange (>3 Stunden) offen war, bevor es abgeschickt wurde."
+
+#: ../../include/comanche.php:35 ../../view/theme/redbasic/php/config.php:64
+#: ../../view/theme/apw/php/config.php:176
+msgid "Default"
+msgstr "Standard"
+
+#: ../../include/oembed.php:157
+msgid "Embedded content"
+msgstr "Eingebetteter Inhalt"
+
+#: ../../include/oembed.php:166
+msgid "Embedding disabled"
+msgstr "Einbetten ausgeschaltet"
#: ../../include/permissions.php:13
msgid "Can view my \"public\" stream and posts"
@@ -2680,10 +3118,6 @@ msgstr "Fortgeschritten - sinnvoll, um Gruppen-Kanäle/-Foren zu erstellen"
msgid "Can chat with me (when available)"
msgstr "Kann mit mir chatten (wenn verfügbar)"
-#: ../../include/permissions.php:27
-msgid "Requires compatible chat plugin"
-msgstr "Benötigt ein kompatibles Chat-Plugin"
-
#: ../../include/permissions.php:28
msgid "Can write to my \"public\" file storage"
msgstr "Kann in meinen öffentlichen Dateiordner schreiben"
@@ -2694,1254 +3128,988 @@ msgstr "Kann meine öffentlichen Seiten bearbeiten"
#: ../../include/permissions.php:31
msgid "Can source my \"public\" posts in derived channels"
-msgstr "Kann meine \"öffentlichen\" Beiträge als Quellen von Kanälen verwenden"
+msgstr "Kann meine „öffentlichen“ Beiträge als Quellen für andere Kanäle verwenden"
#: ../../include/permissions.php:31
msgid "Somewhat advanced - very useful in open communities"
-msgstr "Etwas Fortgeschritten - sehr nützlich in offenen Gemeinschaften."
+msgstr "Etwas fortgeschritten – sehr nützlich in offenen Gemeinschaften"
#: ../../include/permissions.php:32
+msgid "Can send me bookmarks"
+msgstr "Darf mir Lesezeichen senden"
+
+#: ../../include/permissions.php:33
msgid "Can administer my channel resources"
msgstr "Kann meine Kanäle administrieren"
-#: ../../include/permissions.php:32
+#: ../../include/permissions.php:33
msgid ""
"Extremely advanced. Leave this alone unless you know what you are doing"
-msgstr "Sehr fortgeschritten. Bearbeite dies nur, wenn du genau weißt, was du machst"
+msgstr "Sehr fortgeschritten. Bearbeite das nur, wenn Du genau weißt, was Du tust"
-#: ../../include/taxonomy.php:210
-msgid "Tags"
-msgstr "Tags"
-
-#: ../../include/taxonomy.php:224
-msgid "Keywords"
-msgstr "Schlüsselbegriffe"
-
-#: ../../include/taxonomy.php:249
-msgid "have"
-msgstr "habe"
-
-#: ../../include/taxonomy.php:249
-msgid "has"
-msgstr "hat"
-
-#: ../../include/taxonomy.php:250
-msgid "want"
-msgstr "will"
-
-#: ../../include/taxonomy.php:250
-msgid "wants"
-msgstr "will"
-
-#: ../../include/taxonomy.php:251
-msgid "likes"
-msgstr "Gefällt-mir"
-
-#: ../../include/taxonomy.php:252
-msgid "dislikes"
-msgstr "Gefällt-mir-nicht"
-
-#: ../../include/plugin.php:473 ../../include/plugin.php:475
-msgid "Click here to upgrade."
-msgstr "Klicke hier, um das Upgrade durchzuführen."
-
-#: ../../include/plugin.php:481
-msgid "This action exceeds the limits set by your subscription plan."
-msgstr "Diese Aktion überschreitet die Grenzen Ihres Abonnements."
-
-#: ../../include/plugin.php:486
-msgid "This action is not available under your subscription plan."
-msgstr "Diese Aktion ist in Ihrem Abonnement nicht verfügbar."
-
-#: ../../include/comanche.php:35 ../../view/theme/redbasic/php/config.php:62
-#: ../../view/theme/apw/php/config.php:176
-msgid "Default"
-msgstr "Standard"
-
-#: ../../include/security.php:49
-msgid "Welcome "
-msgstr "Willkommen"
-
-#: ../../include/security.php:50
-msgid "Please upload a profile photo."
-msgstr "Bitte lade ein Profilfoto hoch."
-
-#: ../../include/security.php:53
-msgid "Welcome back "
-msgstr "Willkommen zurück"
-
-#: ../../include/security.php:360
-msgid ""
-"The form security token was not correct. This probably happened because the "
-"form has been opened for too long (>3 hours) before submitting it."
-msgstr "Das Security-Token des Formulars war nicht korrekt. Das ist wahrscheinlich passiert, weil das Formular zu lange (>3 Stunden) offen war, bevor es abgeschickt wurde."
-
-#: ../../include/items.php:201 ../../mod/like.php:55 ../../mod/group.php:74
-#: ../../mod/profperm.php:28 ../../index.php:339
+#: ../../include/items.php:240 ../../mod/like.php:55 ../../mod/profperm.php:23
+#: ../../mod/group.php:68 ../../index.php:350
msgid "Permission denied"
msgstr "Keine Berechtigung"
-#: ../../include/items.php:3546 ../../mod/admin.php:150
-#: ../../mod/admin.php:727 ../../mod/admin.php:930 ../../mod/viewsrc.php:18
-#: ../../mod/home.php:64 ../../mod/display.php:32
+#: ../../include/items.php:756 ../../mod/connedit.php:395
+msgid "Unknown"
+msgstr "Unbekannt"
+
+#: ../../include/items.php:3513 ../../mod/thing.php:78 ../../mod/admin.php:151
+#: ../../mod/admin.php:783 ../../mod/admin.php:986 ../../mod/viewsrc.php:18
+#: ../../mod/home.php:63 ../../mod/display.php:32 ../../mod/filestorage.php:18
msgid "Item not found."
msgstr "Element nicht gefunden."
-#: ../../include/items.php:3729
-msgid "Archives"
-msgstr "Archive"
-
-#: ../../include/items.php:3895 ../../mod/group.php:44 ../../mod/group.php:146
+#: ../../include/items.php:3849 ../../mod/group.php:38 ../../mod/group.php:140
msgid "Collection not found."
msgstr "Sammlung nicht gefunden"
-#: ../../include/items.php:3911 ../../mod/network.php:469
-msgid "Group is empty"
-msgstr "Gruppe ist leer"
-
-#: ../../include/items.php:3927
-msgid "Connection not found."
-msgstr "Die Verbindung wurde nicht gefunden."
-
-#: ../../include/dir_fns.php:15
-msgid "Sort Options"
-msgstr "Sortieroptionen"
+#: ../../include/items.php:3864
+msgid "Collection is empty."
+msgstr "Sammlung ist leer."
-#: ../../include/dir_fns.php:16
-msgid "Alphabetic"
-msgstr "alphabetisch"
+#: ../../include/items.php:3871
+#, php-format
+msgid "Collection: %s"
+msgstr "Sammlung: %s"
-#: ../../include/dir_fns.php:17
-msgid "Reverse Alphabetic"
-msgstr "Entgegengesetzt alphabetisch"
+#: ../../include/items.php:3882
+#, php-format
+msgid "Connection: %s"
+msgstr "Verbindung: %s"
-#: ../../include/dir_fns.php:18
-msgid "Newest to Oldest"
-msgstr "Neueste zuerst"
+#: ../../include/items.php:3885
+msgid "Connection not found."
+msgstr "Die Verbindung wurde nicht gefunden."
-#: ../../include/dir_fns.php:29
-msgid "Enable Safe Search"
-msgstr "Sichere Suche einschalten"
+#: ../../include/zot.php:548
+msgid "Invalid data packet"
+msgstr "Ungültiges Datenpaket"
-#: ../../include/dir_fns.php:31
-msgid "Disable Safe Search"
-msgstr "Sichere Suche ausschalten"
+#: ../../include/zot.php:558
+msgid "Unable to verify channel signature"
+msgstr "Konnte die Signatur des Kanals nicht verifizieren"
-#: ../../include/dir_fns.php:33
-msgid "Safe Mode"
-msgstr "Sicherer Modus"
+#: ../../include/zot.php:735
+#, php-format
+msgid "Unable to verify site signature for %s"
+msgstr "Kann die Signatur der Seite von %s nicht verifizieren"
#: ../../mod/common.php:10
msgid "No channel."
-msgstr "Kein Channel."
+msgstr "Kein Kanal."
-#: ../../mod/common.php:47
+#: ../../mod/common.php:39
msgid "Common connections"
msgstr "Gemeinsame Verbindungen"
-#: ../../mod/common.php:52
+#: ../../mod/common.php:44
msgid "No connections in common."
msgstr "Keine gemeinsamen Verbindungen."
-#: ../../mod/events.php:66
+#: ../../mod/events.php:72
msgid "Event title and start time are required."
msgstr "Veranstaltungs- Titel und Startzeit sind erforderlich."
-#: ../../mod/events.php:281
+#: ../../mod/events.php:287
msgid "l, F j"
msgstr "l, F j"
-#: ../../mod/events.php:303
+#: ../../mod/events.php:309
msgid "Edit event"
msgstr "Veranstaltung bearbeiten"
-#: ../../mod/events.php:349
+#: ../../mod/events.php:355
msgid "Create New Event"
msgstr "Neue Veranstaltung erstellen"
-#: ../../mod/events.php:350
+#: ../../mod/events.php:356
msgid "Previous"
msgstr "Voriges"
-#: ../../mod/events.php:351 ../../mod/setup.php:256
+#: ../../mod/events.php:357 ../../mod/setup.php:258
msgid "Next"
msgstr "Nächste"
-#: ../../mod/events.php:425
+#: ../../mod/events.php:428
msgid "hour:minute"
msgstr "Stunde:Minute"
-#: ../../mod/events.php:435
+#: ../../mod/events.php:447
msgid "Event details"
msgstr "Veranstaltungs-Details"
-#: ../../mod/events.php:436
+#: ../../mod/events.php:448
#, php-format
msgid "Format is %s %s. Starting date and Title are required."
msgstr "Format ist %s %s. Startzeit und Titel sind erforderlich."
-#: ../../mod/events.php:438
+#: ../../mod/events.php:450
msgid "Event Starts:"
msgstr "Veranstaltung startet:"
-#: ../../mod/events.php:438 ../../mod/events.php:452
+#: ../../mod/events.php:450 ../../mod/events.php:464
msgid "Required"
msgstr "Benötigt"
-#: ../../mod/events.php:441
+#: ../../mod/events.php:453
msgid "Finish date/time is not known or not relevant"
msgstr "Ende Datum/Zeit sind unbekannt oder unwichtig"
-#: ../../mod/events.php:443
+#: ../../mod/events.php:455
msgid "Event Finishes:"
msgstr "Veranstaltung endet:"
-#: ../../mod/events.php:446
+#: ../../mod/events.php:458
msgid "Adjust for viewer timezone"
msgstr "An die Zeitzone des Betrachters anpassen"
-#: ../../mod/events.php:448
+#: ../../mod/events.php:460
msgid "Description:"
msgstr "Beschreibung:"
-#: ../../mod/events.php:452
+#: ../../mod/events.php:464
msgid "Title:"
msgstr "Titel:"
-#: ../../mod/events.php:454
+#: ../../mod/events.php:466
msgid "Share this event"
msgstr "Die Veranstaltung teilen"
-#: ../../mod/thing.php:109
+#: ../../mod/thing.php:98
+msgid "Thing updated"
+msgstr "Ding aktualisiert"
+
+#: ../../mod/thing.php:158
msgid "Object store: failed"
msgstr "Speichern des Objekts fehlgeschlagen"
-#: ../../mod/thing.php:113
-msgid "thing/stuff added"
-msgstr "Ding/Zeugs hinzugefügt"
+#: ../../mod/thing.php:162
+msgid "Thing added"
+msgstr "Ding hinzugefügt"
-#: ../../mod/thing.php:129
+#: ../../mod/thing.php:182
#, php-format
msgid "OBJ: %1$s %2$s %3$s"
msgstr "OBJ: %1$s %2$s %3$s"
-#: ../../mod/thing.php:175
-msgid "not yet implemented."
-msgstr "noch nicht eingebaut."
+#: ../../mod/thing.php:234
+msgid "Show Thing"
+msgstr "Ding anzeigen"
+
+#: ../../mod/thing.php:241
+msgid "item not found."
+msgstr "Eintrag nicht gefunden"
-#: ../../mod/thing.php:181
-msgid "Add Stuff to your Profile"
-msgstr "Füge Sachen zu deinem Profil hinzu"
+#: ../../mod/thing.php:269
+msgid "Edit Thing"
+msgstr "Ding bearbeiten"
-#: ../../mod/thing.php:183
+#: ../../mod/thing.php:271 ../../mod/thing.php:318
msgid "Select a profile"
msgstr "Wähle ein Profil"
-#: ../../mod/thing.php:185
+#: ../../mod/thing.php:273 ../../mod/thing.php:320
msgid "Select a category of stuff. e.g. I ______ something"
-msgstr "Wähle eine Kategorie für das Zeugs, z.B. Ich ______ etwas"
+msgstr "Wähle eine Kategorie/Art, z.B. Ich ______ etwas"
+
+#: ../../mod/thing.php:275 ../../mod/thing.php:321
+msgid "Post an activity"
+msgstr "Aktivitätsnachricht senden"
+
+#: ../../mod/thing.php:275 ../../mod/thing.php:321
+msgid "Only sends to viewers of the applicable profile"
+msgstr "Nur an Betrachter des ausgewählten Profils senden"
-#: ../../mod/thing.php:187
-msgid "Name of thing or stuff e.g. something"
-msgstr "Name des Dings/Zeugs, z.B. etwas"
+#: ../../mod/thing.php:277 ../../mod/thing.php:323
+msgid "Name of thing e.g. something"
+msgstr "Name des Dings, z.B. Etwas"
-#: ../../mod/thing.php:188
-msgid "URL of thing or stuff (optional)"
-msgstr "URL des Dings oder Zeugs (optional)"
+#: ../../mod/thing.php:279 ../../mod/thing.php:324
+msgid "URL of thing (optional)"
+msgstr "URL des Dings (optional)"
-#: ../../mod/thing.php:189
-msgid "URL for photo of thing or stuff (optional)"
-msgstr "URL eines Fotos von dem Ding oder Zeugs (optional)"
+#: ../../mod/thing.php:281 ../../mod/thing.php:325
+msgid "URL for photo of thing (optional)"
+msgstr "URL eines Fotos von dem Ding (optional)"
+
+#: ../../mod/thing.php:316
+msgid "Add Thing to your Profile"
+msgstr "Das Ding Deinem Profil hinzufügen"
#: ../../mod/invite.php:25
msgid "Total invitation limit exceeded."
-msgstr "Limit der maximalen Einladungen überschritten."
+msgstr "Einladungslimit überschritten."
-#: ../../mod/invite.php:47
+#: ../../mod/invite.php:49
#, php-format
msgid "%s : Not a valid email address."
msgstr "%s : Keine gültige Email Adresse."
-#: ../../mod/invite.php:74
+#: ../../mod/invite.php:76
msgid "Please join us on Red"
-msgstr "Bitte schließe Dich uns an und werde Teil der Red Matrix"
+msgstr "Schließe Dich uns an und werde Teil der Red-Matrix"
-#: ../../mod/invite.php:85
+#: ../../mod/invite.php:87
msgid "Invitation limit exceeded. Please contact your site administrator."
-msgstr "Einladungslimit überschritten. Bitte kontaktiere den Administrator deiner Seite."
+msgstr "Einladungslimit überschritten. Bitte kontaktiere den Administrator Deines Red-Servers."
-#: ../../mod/invite.php:90
+#: ../../mod/invite.php:92
#, php-format
msgid "%s : Message delivery failed."
msgstr "%s : Nachricht konnte nicht zugestellt werden."
-#: ../../mod/invite.php:94
+#: ../../mod/invite.php:96
#, php-format
msgid "%d message sent."
msgid_plural "%d messages sent."
msgstr[0] "%d Nachricht gesendet."
msgstr[1] "%d Nachrichten gesendet."
-#: ../../mod/invite.php:113
+#: ../../mod/invite.php:115
msgid "You have no more invitations available"
msgstr "Du hast keine weiteren verfügbare Einladungen"
-#: ../../mod/invite.php:139
+#: ../../mod/invite.php:141
msgid "Send invitations"
msgstr "Einladungen senden"
-#: ../../mod/invite.php:140
+#: ../../mod/invite.php:142
msgid "Enter email addresses, one per line:"
msgstr "Email-Adressen eintragen, eine pro Zeile:"
-#: ../../mod/invite.php:141 ../../mod/message.php:326
-#: ../../mod/message.php:508
+#: ../../mod/invite.php:143 ../../mod/mail.php:216 ../../mod/mail.php:328
msgid "Your message:"
msgstr "Deine Nachricht:"
-#: ../../mod/invite.php:142
+#: ../../mod/invite.php:144
msgid ""
"You are cordially invited to join me and some other close friends on the Red"
" Matrix - a revolutionary new decentralised communication and information "
"tool."
-msgstr "Du bist herzlich eingeladen, mir und einigen anderen guten Freunden in die Red-Matrix zu folgen – einem revolutionär neuen, dezentralisierten Kommunikations- und Informationsnetzwerk."
+msgstr "Du bist herzlich eingeladen, mir und einigen anderen guten Freunden in die Red-Matrix zu folgen – einem revolutionär neuen, dezentralen Kommunikations- und Informationsnetzwerk."
-#: ../../mod/invite.php:144
+#: ../../mod/invite.php:146
msgid "You will need to supply this invitation code: $invite_code"
msgstr "Du musst dann den folgenden Einladungs-Code angeben: $invite_code"
-#: ../../mod/invite.php:145
+#: ../../mod/invite.php:147
msgid "Please visit my channel at"
msgstr "Bitte besuche meinen Kanal auf"
-#: ../../mod/invite.php:149
+#: ../../mod/invite.php:151
msgid ""
"Once you have registered (on ANY Red Matrix site - they are all inter-"
"connected), please connect with my Red Matrix channel address:"
-msgstr "Wenn du dich registriert hast (egal auf welcher Seite in der Red Matrix, sie sind alle miteinander verbunden) verbinde dich bitte mit meinem Kanal in der Matrix. Adresse:"
+msgstr "Wenn Du Dich registriert hast (egal auf welchem Server in der Red-Matrix, sie sind alle miteinander verbunden) verbinde Dich bitte mit meinem Kanal in der Matrix. Adresse:"
-#: ../../mod/invite.php:151
+#: ../../mod/invite.php:153
msgid "Click the [Register] link on the following page to join."
msgstr "Klicke den [Registrieren]-Link auf der nächsten Seite, um dich anzumelden."
-#: ../../mod/invite.php:153
+#: ../../mod/invite.php:155
msgid ""
"For more information about the Red Matrix Project and why it has the "
"potential to change the internet as we know it, please visit "
"http://getzot.com"
-msgstr "Für weitere Informationen über das Red Matrix Projekt und warum es das Potential hat das Internet wie wir es kennen grundlegend zu verändern schau dir bitte http://getzot.com an"
-
-#: ../../mod/allfriends.php:35
-#, php-format
-msgid "Friends of %s"
-msgstr "Freunde von %s"
-
-#: ../../mod/allfriends.php:41
-msgid "No friends to display."
-msgstr "Keine Freunde zum Anzeigen."
-
-#: ../../mod/webpages.php:8 ../../mod/connect.php:13 ../../mod/layouts.php:8
-#: ../../mod/filestorage.php:8 ../../mod/blocks.php:10 ../../mod/profile.php:8
-#: ../../boot.php:1640
-msgid "Requested profile is not available."
-msgstr "Erwünschte Profil ist nicht verfügbar."
-
-#: ../../mod/webpages.php:104 ../../mod/layouts.php:105
-#: ../../mod/blocks.php:96
-msgid "View"
-msgstr "Ansicht"
-
-#: ../../mod/api.php:76 ../../mod/api.php:102
-msgid "Authorize application connection"
-msgstr "Zugriff der Anwendung authorizieren"
-
-#: ../../mod/api.php:77
-msgid "Return to your app and insert this Securty Code:"
-msgstr "Trage folgenden Sicherheitscode bei der Anwendung ein:"
-
-#: ../../mod/api.php:89
-msgid "Please login to continue."
-msgstr "Zum Weitermachen, bitte einloggen."
-
-#: ../../mod/api.php:104
-msgid ""
-"Do you want to authorize this application to access your posts and contacts,"
-" and/or create new posts for you?"
-msgstr "Möchtest du der Anwendung erlauben deine Nachrichten und Kontakte abzurufen und/oder neue Nachrichten für dich zu erstellen?"
-
-#: ../../mod/api.php:105 ../../mod/settings.php:1009
-#: ../../mod/settings.php:1014 ../../mod/settings.php:1037
-#: ../../mod/settings.php:1039 ../../mod/settings.php:1040
-#: ../../mod/settings.php:1041 ../../mod/profiles.php:506
-msgid "Yes"
-msgstr "Ja"
-
-#: ../../mod/api.php:106 ../../mod/settings.php:1009
-#: ../../mod/settings.php:1014 ../../mod/settings.php:1037
-#: ../../mod/settings.php:1039 ../../mod/settings.php:1040
-#: ../../mod/settings.php:1041 ../../mod/profiles.php:507
-msgid "No"
-msgstr "Nein"
-
-#: ../../mod/lastpost.php:16 ../../mod/channel.php:16
-msgid "You must be logged in to see this page."
-msgstr "Du musst angemeldet sein um diese Seite betrachten zu können."
-
-#: ../../mod/apps.php:8
-msgid "No installed applications."
-msgstr "Keine installierten Applikationen"
-
-#: ../../mod/apps.php:13
-msgid "Applications"
-msgstr "Anwendungen"
-
-#: ../../mod/page.php:35
-msgid "Invalid item."
-msgstr "Ungültiges Element."
-
-#: ../../mod/page.php:47 ../../mod/chanview.php:78 ../../mod/home.php:51
-#: ../../mod/magic.php:95 ../../mod/wall_upload.php:35
-msgid "Channel not found."
-msgstr "Kanal nicht gefunden."
-
-#: ../../mod/page.php:83 ../../mod/help.php:56 ../../mod/display.php:92
-#: ../../index.php:229
-msgid "Page not found."
-msgstr "Seite nicht gefunden."
-
-#: ../../mod/attach.php:9
-msgid "Item not available."
-msgstr "Element nicht verfügbar."
-
-#: ../../mod/setup.php:161
-msgid "Red Matrix Server - Setup"
-msgstr "Red Matrix Server - Installation"
-
-#: ../../mod/setup.php:167
-msgid "Could not connect to database."
-msgstr "Kann nicht mit der Datenbank verbinden."
-
-#: ../../mod/setup.php:171
-msgid ""
-"Could not connect to specified site URL. Possible SSL certificate or DNS "
-"issue."
-msgstr "Konnte die angegebene Webseiten URL nicht erreichen. Möglicherweise ein Problem mit dem SSL Zertifikat oder dem DNS."
-
-#: ../../mod/setup.php:176
-msgid "Could not create table."
-msgstr "Kann Tabelle nicht erstellen."
-
-#: ../../mod/setup.php:182
-msgid "Your site database has been installed."
-msgstr "Die Datenbank deiner Seite wurde installiert."
-
-#: ../../mod/setup.php:187
-msgid ""
-"You may need to import the file \"install/database.sql\" manually using "
-"phpmyadmin or mysql."
-msgstr "Eventuell musst du die Datei \"install/database.sql\" händisch mit phpmyadmin oder mysql importieren."
-
-#: ../../mod/setup.php:188 ../../mod/setup.php:255 ../../mod/setup.php:584
-msgid "Please see the file \"install/INSTALL.txt\"."
-msgstr "Lies die Datei \"install/INSTALL.txt\"."
-
-#: ../../mod/setup.php:252
-msgid "System check"
-msgstr "Systemprüfung"
-
-#: ../../mod/setup.php:257
-msgid "Check again"
-msgstr "Bitte nochmal prüfen"
-
-#: ../../mod/setup.php:279
-msgid "Database connection"
-msgstr "Datenbank Verbindung"
-
-#: ../../mod/setup.php:280
-msgid ""
-"In order to install Red Matrix we need to know how to connect to your "
-"database."
-msgstr "Um die Red Matrix installieren zu können, müssen wir wissen wie wir deine Datenbank kontaktieren können."
-
-#: ../../mod/setup.php:281
-msgid ""
-"Please contact your hosting provider or site administrator if you have "
-"questions about these settings."
-msgstr "Bitte kontaktiere deinen Hosting Provider oder den Administrator der Seite wenn du Fragen zu diesen Einstellungen haben solltest."
-
-#: ../../mod/setup.php:282
-msgid ""
-"The database you specify below should already exist. If it does not, please "
-"create it before continuing."
-msgstr "Die Datenbank, die du weiter unten angibst, sollte bereits existieren. Sollte das noch nicht der Fall sein, erzeuge sie bitte bevor du fortfährst."
-
-#: ../../mod/setup.php:286
-msgid "Database Server Name"
-msgstr "Datenbank-Servername"
-
-#: ../../mod/setup.php:286
-msgid "Default is localhost"
-msgstr "Standard ist localhost"
-
-#: ../../mod/setup.php:287
-msgid "Database Port"
-msgstr "Datenbank-Port"
-
-#: ../../mod/setup.php:287
-msgid "Communication port number - use 0 for default"
-msgstr "Port Nummer zur Kommunikation - verwende 0 für die Standardeinstellung:"
-
-#: ../../mod/setup.php:288
-msgid "Database Login Name"
-msgstr "Datenbank-Benutzername"
-
-#: ../../mod/setup.php:289
-msgid "Database Login Password"
-msgstr "Datenbank-Kennwort"
-
-#: ../../mod/setup.php:290
-msgid "Database Name"
-msgstr "Datenbank-Name"
-
-#: ../../mod/setup.php:292 ../../mod/setup.php:334
-msgid "Site administrator email address"
-msgstr "E-Mail Adresse des Seiten-Administrators"
-
-#: ../../mod/setup.php:292 ../../mod/setup.php:334
-msgid ""
-"Your account email address must match this in order to use the web admin "
-"panel."
-msgstr "Die Email-Adresse deines Accounts muss dieser Adresse entsprechen, damit du Zugriff zum Admin Panel erhältst."
-
-#: ../../mod/setup.php:293 ../../mod/setup.php:336
-msgid "Website URL"
-msgstr "Webseiten URL"
-
-#: ../../mod/setup.php:293 ../../mod/setup.php:336
-msgid "Please use SSL (https) URL if available."
-msgstr "Nutze wenn möglich eine SSL-URL (https)."
-
-#: ../../mod/setup.php:296 ../../mod/setup.php:339
-msgid "Please select a default timezone for your website"
-msgstr "Standard-Zeitzone für deine Website"
-
-#: ../../mod/setup.php:323
-msgid "Site settings"
-msgstr "Seiteneinstellungen"
-
-#: ../../mod/setup.php:379
-msgid "Could not find a command line version of PHP in the web server PATH."
-msgstr "Konnte die Kommandozeilen Version von PHP nicht im PATH des Servers finden."
-
-#: ../../mod/setup.php:380
-msgid ""
-"If you don't have a command line version of PHP installed on server, you "
-"will not be able to run background polling via cron."
-msgstr "Solltest du keine Kommandozeilen Version von PHP auf dem Server installiert haben wirst du nicht in der Lage sein Hintergrundprozesse via cron auszuführen."
-
-#: ../../mod/setup.php:384
-msgid "PHP executable path"
-msgstr "PHP Pfad zu ausführbarer Datei"
-
-#: ../../mod/setup.php:384
-msgid ""
-"Enter full path to php executable. You can leave this blank to continue the "
-"installation."
-msgstr "Gib den vollen Pfad zum PHP Interpreter an. Du kannst dieses Felds frei lassen und mit der Installation fortfahren."
-
-#: ../../mod/setup.php:389
-msgid "Command line PHP"
-msgstr "PHP Befehlszeile"
-
-#: ../../mod/setup.php:398
-msgid ""
-"The command line version of PHP on your system does not have "
-"\"register_argc_argv\" enabled."
-msgstr "Die Kommandozeilen Version von PHP auf deinem System hat \"register_argc_argv\" nicht aktiviert."
-
-#: ../../mod/setup.php:399
-msgid "This is required for message delivery to work."
-msgstr "Dies wird benötigt, damit die Auslieferung von Nachrichten funktioniert."
-
-#: ../../mod/setup.php:401
-msgid "PHP register_argc_argv"
-msgstr "PHP register_argc_argv"
-
-#: ../../mod/setup.php:422
-msgid ""
-"Error: the \"openssl_pkey_new\" function on this system is not able to "
-"generate encryption keys"
-msgstr "Fehler: Die \"openssl_pkey_new\" Funktion auf diesem System ist nicht in der Lage Schlüssel für die Verschlüsselung zu erzeugen."
-
-#: ../../mod/setup.php:423
-msgid ""
-"If running under Windows, please see "
-"\"http://www.php.net/manual/en/openssl.installation.php\"."
-msgstr "Wenn du Windows verwendest, siehe http://www.php.net/manual/en/openssl.installation.php für eine Installationsanleitung."
-
-#: ../../mod/setup.php:425
-msgid "Generate encryption keys"
-msgstr "Verschlüsselungsschlüssel generieren"
-
-#: ../../mod/setup.php:432
-msgid "libCurl PHP module"
-msgstr "libCurl PHP Modul"
-
-#: ../../mod/setup.php:433
-msgid "GD graphics PHP module"
-msgstr "GD Graphik PHP Modul"
-
-#: ../../mod/setup.php:434
-msgid "OpenSSL PHP module"
-msgstr "OpenSSL PHP Modul"
-
-#: ../../mod/setup.php:435
-msgid "mysqli PHP module"
-msgstr "mysqli PHP Modul"
-
-#: ../../mod/setup.php:436
-msgid "mb_string PHP module"
-msgstr "mb_string PHP Modul"
-
-#: ../../mod/setup.php:437
-msgid "mcrypt PHP module"
-msgstr "mcrypt PHP Modul"
-
-#: ../../mod/setup.php:442 ../../mod/setup.php:444
-msgid "Apache mod_rewrite module"
-msgstr "Apache mod_rewrite Modul"
-
-#: ../../mod/setup.php:442
-msgid ""
-"Error: Apache webserver mod-rewrite module is required but not installed."
-msgstr "Fehler: Das Apache Modul mod-rewrite wird benötigt ist aber nicht installiert."
-
-#: ../../mod/setup.php:448 ../../mod/setup.php:451
-msgid "proc_open"
-msgstr "proc_open"
-
-#: ../../mod/setup.php:448
-msgid ""
-"Error: proc_open is required but is either not installed or has been "
-"disabled in php.ini"
-msgstr "Fehler: proc_open wird benötigt ist aber entweder nicht installiert oder wurde in der php.ini deaktiviert"
-
-#: ../../mod/setup.php:456
-msgid "Error: libCURL PHP module required but not installed."
-msgstr "Fehler: das PHP Modul libCURL wird benütigt ist aber nicht installiert."
-
-#: ../../mod/setup.php:460
-msgid ""
-"Error: GD graphics PHP module with JPEG support required but not installed."
-msgstr "Fehler: das PHP Modul GD Grafik mit JPEG Unterstützung wird benötigt ist aber nicht installiert."
-
-#: ../../mod/setup.php:464
-msgid "Error: openssl PHP module required but not installed."
-msgstr "Fehler: das OpenSSL PHP Modul wird benötigt ist aber nicht installiert."
-
-#: ../../mod/setup.php:468
-msgid "Error: mysqli PHP module required but not installed."
-msgstr "Fehler: das PHP Modul mysqli wird benötigt ist aber nicht installiert."
-
-#: ../../mod/setup.php:472
-msgid "Error: mb_string PHP module required but not installed."
-msgstr "Fehler: das PHP Modul mb_string wird benötigt ist aber nicht installiert."
-
-#: ../../mod/setup.php:476
-msgid "Error: mcrypt PHP module required but not installed."
-msgstr "Fehler: das PHP Modul mcrypt wird benötigt ist aber nicht installiert."
-
-#: ../../mod/setup.php:492
-msgid ""
-"The web installer needs to be able to create a file called \".htconfig.php\""
-" in the top folder of your web server and it is unable to do so."
-msgstr "Der Installations-Assistent muss in der Lage sein die Datei \".htconfig.php\" im Stammverzeichnis des Web-Servers anzulegen, ist es aber nicht."
-
-#: ../../mod/setup.php:493
-msgid ""
-"This is most often a permission setting, as the web server may not be able "
-"to write files in your folder - even if you can."
-msgstr "Meist liegt dies daran, dass der Nutzer unter dem der Web-Server läuft keine Rechte zum Schreiben in dem Verzeichnis hat - selbst wenn du das kannst."
-
-#: ../../mod/setup.php:494
-msgid ""
-"At the end of this procedure, we will give you a text to save in a file "
-"named .htconfig.php in your Red top folder."
-msgstr "Am Schluss des Vorgangs wird ein Text generiert, den du unter dem Dateinamen .htconfig.php im Stammverzeichnis deiner Red Installation speichern."
-
-#: ../../mod/setup.php:495
-msgid ""
-"You can alternatively skip this procedure and perform a manual installation."
-" Please see the file \"install/INSTALL.txt\" for instructions."
-msgstr "Alternativ kannst du diesen Schritt überspringen und die Installation manuell vornehmen. Lies dazu die Datei install/INSTALL.txt."
-
-#: ../../mod/setup.php:498
-msgid ".htconfig.php is writable"
-msgstr ".htconfig.php ist beschreibbar"
-
-#: ../../mod/setup.php:508
-msgid ""
-"Red uses the Smarty3 template engine to render its web views. Smarty3 "
-"compiles templates to PHP to speed up rendering."
-msgstr "Red verwendet Smarty3 um Vorlagen für die Webdarstellung zu übersetzen. Smarty3 übersetzt diese Vorlagen nach PHP um die Darstellung zu beschleunigen."
-
-#: ../../mod/setup.php:509
-msgid ""
-"In order to store these compiled templates, the web server needs to have "
-"write access to the directory view/tpl/smarty3/ under the Red top level "
-"folder."
-msgstr "Um die übersetzten Vorlagen speichern zu können muss der Webserver schreib Zugriff auf das Verzeichnis view/tpl/smarty3/ unterhalb des Red Stammverzeichnisses haben."
-
-#: ../../mod/setup.php:510
-msgid ""
-"Please ensure that the user that your web server runs as (e.g. www-data) has"
-" write access to this folder."
-msgstr "Bitte stelle sicher, dass der Nutzer unter dem der Webserver läuft (z.B. www-data) Zugriff zum Schreiben auf dieses Verzeichnis hat."
-
-#: ../../mod/setup.php:511
-msgid ""
-"Note: as a security measure, you should give the web server write access to "
-"view/tpl/smarty3/ only--not the template files (.tpl) that it contains."
-msgstr "Hinweis: Als Sicherheitsvorkehrung solltest du dem Webserver nur Schreib-Zugriff auf das Verzeichnis view/tpl/smarty3 geben, nicht dem Vorlagen (.tpl) die in diesem Verzeichnis liegen."
-
-#: ../../mod/setup.php:514
-msgid "view/tpl/smarty3 is writable"
-msgstr "view/tpl/smarty3 ist beschreibbar"
-
-#: ../../mod/setup.php:528
-msgid "SSL certificate validation"
-msgstr "SSL Zertifikatverifizierung"
-
-#: ../../mod/setup.php:528
-msgid ""
-"SSL certificate cannot be validated. Fix certificate or disable https access"
-" to this site."
-msgstr "Das SSL Zertifikat konnte nicht validiert werden. Korrigiere das Zertifikat oder schalte HTTPS ab um auf diese Seite zuzugreifen."
-
-#: ../../mod/setup.php:535
-msgid ""
-"Url rewrite in .htaccess is not working. Check your server configuration."
-msgstr "URL rewrite funktioniert in der .htaccess nicht. Überprüfe deine Server-Konfiguration."
-
-#: ../../mod/setup.php:537
-msgid "Url rewrite is working"
-msgstr "Url rewrite funktioniert"
-
-#: ../../mod/setup.php:547
-msgid ""
-"The database configuration file \".htconfig.php\" could not be written. "
-"Please use the enclosed text to create a configuration file in your web "
-"server root."
-msgstr "Die Datenbank Konfigurationsdatei \".htconfig.php\" konnte nicht geschrieben werden. Bitte verwende den unten angegebenen Text um die Konfigurationsdatei im Stammverzeichnis des Webservers anzulegen."
-
-#: ../../mod/setup.php:571
-msgid "Errors encountered creating database tables."
-msgstr "Fehler während des Anlegens der Datenbank Tabellen aufgetreten."
-
-#: ../../mod/setup.php:582
-msgid "<h1>What next</h1>"
-msgstr "<h1>Was als Nächstes</h1>"
-
-#: ../../mod/setup.php:583
-msgid ""
-"IMPORTANT: You will need to [manually] setup a scheduled task for the "
-"poller."
-msgstr "WICHTIG: Du musst die geplanten Aufgaben für den Poller [manuell] einrichten."
-
-#: ../../mod/rpost.php:84 ../../mod/editpost.php:42
-msgid "Edit post"
-msgstr "Bearbeite Beitrag"
-
-#: ../../mod/subthread.php:105
-#, php-format
-msgid "%1$s is following %2$s's %3$s"
-msgstr "%1$s folgt nun %2$s's %3$s"
-
-#: ../../mod/update_network.php:23 ../../mod/update_channel.php:43
-#: ../../mod/update_search.php:46 ../../mod/update_display.php:25
-#: ../../mod/update_community.php:18
-msgid "[Embedded content - reload page to view]"
-msgstr "[Eingebetteter Inhalte - bitte lade die Seite zur Anzeige neu]"
-
-#: ../../mod/chanview.php:98
-msgid "toggle full screen mode"
-msgstr "auf Vollbildmodus umschalten"
-
-#: ../../mod/tagger.php:98
-#, php-format
-msgid "%1$s tagged %2$s's %3$s with %4$s"
-msgstr "%1$s hat %2$s's %3$s mit %4$s getaggt"
-
-#: ../../mod/settings.php:53
-msgid "Account settings"
-msgstr "Konto-Einstellungen"
-
-#: ../../mod/settings.php:59
-msgid "Channel settings"
-msgstr "Kanal-Einstellungen"
-
-#: ../../mod/settings.php:65
-msgid "Additional features"
-msgstr "Zusätzliche Funktionen"
+msgstr "Für weitere Informationen über das Red-Matrix-Projekt und warum es das Potential hat, das Internet, wie wir es kennen, grundlegend zu verändern, besuche http://getzot.com"
#: ../../mod/settings.php:71
-msgid "Feature settings"
-msgstr "Funktions-Einstellungen"
-
-#: ../../mod/settings.php:77
-msgid "Display settings"
-msgstr "Anzeige-Einstellungen"
-
-#: ../../mod/settings.php:83
-msgid "Connected apps"
-msgstr "Verbundene Apps"
-
-#: ../../mod/settings.php:89
-msgid "Export channel"
-msgstr "Kanal exportieren"
-
-#: ../../mod/settings.php:101
-msgid "Automatic Permissions (Advanced)"
-msgstr "Automatische Berechtigungen (Erweitert)"
-
-#: ../../mod/settings.php:111
-msgid "Premium Channel Settings"
-msgstr "Prämium-Kanal Einstellungen"
-
-#: ../../mod/settings.php:171
msgid "Name is required"
-msgstr "Name wird benötigt"
+msgstr "Name ist erforderlich"
-#: ../../mod/settings.php:175
+#: ../../mod/settings.php:75
msgid "Key and Secret are required"
msgstr "Schlüssel und Geheimnis werden benötigt"
-#: ../../mod/settings.php:179 ../../mod/settings.php:677
+#: ../../mod/settings.php:79 ../../mod/settings.php:542
msgid "Update"
-msgstr "Update"
+msgstr "Aktualisieren"
-#: ../../mod/settings.php:292
+#: ../../mod/settings.php:195
msgid "Passwords do not match. Password unchanged."
msgstr "Kennwörter stimmen nicht überein. Kennwort nicht verändert."
-#: ../../mod/settings.php:296
+#: ../../mod/settings.php:199
msgid "Empty passwords are not allowed. Password unchanged."
msgstr "Leere Kennwörter sind nicht erlaubt. Kennwort nicht verändert."
-#: ../../mod/settings.php:309
+#: ../../mod/settings.php:212
msgid "Password changed."
msgstr "Kennwort geändert."
-#: ../../mod/settings.php:311
+#: ../../mod/settings.php:214
msgid "Password update failed. Please try again."
msgstr "Kennwortänderung fehlgeschlagen. Bitte versuche es noch einmal."
-#: ../../mod/settings.php:325
+#: ../../mod/settings.php:228
msgid "Not valid email."
msgstr "Keine gültige E-Mail Adresse."
-#: ../../mod/settings.php:328
+#: ../../mod/settings.php:231
msgid "Protected email address. Cannot change to that email."
msgstr "Geschützte E-Mail Adresse. Diese kann nicht verändert werden."
-#: ../../mod/settings.php:337
+#: ../../mod/settings.php:240
msgid "System failure storing new email. Please try again."
msgstr "Systemfehler während des Speicherns der neuen Mail. Bitte versuche es noch einmal."
-#: ../../mod/settings.php:579
+#: ../../mod/settings.php:444
msgid "Settings updated."
msgstr "Einstellungen aktualisiert."
-#: ../../mod/settings.php:650 ../../mod/settings.php:676
-#: ../../mod/settings.php:712
+#: ../../mod/settings.php:515 ../../mod/settings.php:541
+#: ../../mod/settings.php:577
msgid "Add application"
msgstr "Anwendung hinzufügen"
-#: ../../mod/settings.php:652 ../../mod/settings.php:678
-#: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94 ../../mod/fbrowser.php:82
-#: ../../mod/fbrowser.php:117
-msgid "Cancel"
-msgstr "Abbrechen"
-
-#: ../../mod/settings.php:653 ../../mod/settings.php:679
-#: ../../mod/admin.php:686 ../../mod/crepair.php:148
+#: ../../mod/settings.php:518 ../../mod/settings.php:544
msgid "Name"
msgstr "Name"
-#: ../../mod/settings.php:653
+#: ../../mod/settings.php:518
msgid "Name of application"
msgstr "Name der Anwendung"
-#: ../../mod/settings.php:654 ../../mod/settings.php:680
+#: ../../mod/settings.php:519 ../../mod/settings.php:545
msgid "Consumer Key"
msgstr "Consumer Key"
-#: ../../mod/settings.php:654 ../../mod/settings.php:655
+#: ../../mod/settings.php:519 ../../mod/settings.php:520
msgid "Automatically generated - change if desired. Max length 20"
-msgstr "Automatisch erzeugt - ändern falls erwünscht. Maximale Länge 20"
+msgstr "Automatisch erzeugt – ändern, falls erwünscht. Maximale Länge 20"
-#: ../../mod/settings.php:655 ../../mod/settings.php:681
+#: ../../mod/settings.php:520 ../../mod/settings.php:546
msgid "Consumer Secret"
msgstr "Consumer Secret"
-#: ../../mod/settings.php:656 ../../mod/settings.php:682
+#: ../../mod/settings.php:521 ../../mod/settings.php:547
msgid "Redirect"
msgstr "Umleitung"
-#: ../../mod/settings.php:656
+#: ../../mod/settings.php:521
msgid ""
"Redirect URI - leave blank unless your application specifically requires "
"this"
-msgstr "Umleitungs-URl - lasse dies frei außer deine Anwendung erfordert dies explizit"
+msgstr "Umleitungs-URl – lasse das leer, wenn Deine Anwendung es nicht explizit erfordert"
-#: ../../mod/settings.php:657 ../../mod/settings.php:683
+#: ../../mod/settings.php:522 ../../mod/settings.php:548
msgid "Icon url"
msgstr "Symbol-URL"
-#: ../../mod/settings.php:657
+#: ../../mod/settings.php:522
msgid "Optional"
msgstr "Optional"
-#: ../../mod/settings.php:668
+#: ../../mod/settings.php:533
msgid "You can't edit this application."
msgstr "Diese Anwendung kann nicht bearbeitet werden."
-#: ../../mod/settings.php:711
+#: ../../mod/settings.php:576
msgid "Connected Apps"
msgstr "Verbundene Apps"
-#: ../../mod/settings.php:715
+#: ../../mod/settings.php:580
msgid "Client key starts with"
msgstr "Client key beginnt mit"
-#: ../../mod/settings.php:716
+#: ../../mod/settings.php:581
msgid "No name"
msgstr "Kein Name"
-#: ../../mod/settings.php:717
+#: ../../mod/settings.php:582
msgid "Remove authorization"
msgstr "Authorisierung aufheben"
-#: ../../mod/settings.php:728
+#: ../../mod/settings.php:593
msgid "No feature settings configured"
msgstr "Keine Funktions-Einstellungen konfiguriert"
-#: ../../mod/settings.php:736
+#: ../../mod/settings.php:601
msgid "Feature Settings"
msgstr "Funktions-Einstellungen"
-#: ../../mod/settings.php:759
+#: ../../mod/settings.php:624
msgid "Account Settings"
msgstr "Konto-Einstellungen"
-#: ../../mod/settings.php:760
+#: ../../mod/settings.php:625
msgid "Password Settings"
msgstr "Kennwort-Einstellungen"
-#: ../../mod/settings.php:761
+#: ../../mod/settings.php:626
msgid "New Password:"
msgstr "Neues Passwort:"
-#: ../../mod/settings.php:762
+#: ../../mod/settings.php:627
msgid "Confirm:"
msgstr "Bestätigen:"
-#: ../../mod/settings.php:762
+#: ../../mod/settings.php:627
msgid "Leave password fields blank unless changing"
-msgstr "Lasse die Passwort -Felder leer außer du möchtest das Passwort ändern"
+msgstr "Lasse die Passwort-Felder leer, außer Du möchtest das Passwort ändern"
-#: ../../mod/settings.php:764 ../../mod/settings.php:1063
+#: ../../mod/settings.php:629 ../../mod/settings.php:938
msgid "Email Address:"
msgstr "Email Adresse:"
-#: ../../mod/settings.php:765
+#: ../../mod/settings.php:630
msgid "Remove Account"
msgstr "Konto entfernen"
-#: ../../mod/settings.php:766
+#: ../../mod/settings.php:631
msgid "Warning: This action is permanent and cannot be reversed."
-msgstr "Achtung: Diese Aktion ist permanent und kann nicht rückgänging gemacht werden."
+msgstr "Achtung: Diese Aktion ist endgültig und kann nicht rückgängig gemacht werden."
-#: ../../mod/settings.php:782
+#: ../../mod/settings.php:647
msgid "Off"
msgstr "Aus"
-#: ../../mod/settings.php:782
+#: ../../mod/settings.php:647
msgid "On"
msgstr "An"
-#: ../../mod/settings.php:789
+#: ../../mod/settings.php:654
msgid "Additional Features"
msgstr "Zusätzliche Funktionen"
-#: ../../mod/settings.php:814
+#: ../../mod/settings.php:679
msgid "Connector Settings"
msgstr "Connector-Einstellungen"
-#: ../../mod/settings.php:844 ../../mod/admin.php:369
+#: ../../mod/settings.php:709 ../../mod/admin.php:379
msgid "No special theme for mobile devices"
msgstr "Keine spezielle Theme für mobile Geräte"
-#: ../../mod/settings.php:884
+#: ../../mod/settings.php:750
msgid "Display Settings"
msgstr "Anzeige-Einstellungen"
-#: ../../mod/settings.php:890
+#: ../../mod/settings.php:756
msgid "Display Theme:"
-msgstr "Anzeige Theme:"
+msgstr "Anzeige-Theme:"
-#: ../../mod/settings.php:891
+#: ../../mod/settings.php:757
msgid "Mobile Theme:"
msgstr "Mobile Theme:"
-#: ../../mod/settings.php:892
+#: ../../mod/settings.php:758
msgid "Update browser every xx seconds"
msgstr "Browser alle xx Sekunden aktualisieren"
-#: ../../mod/settings.php:892
+#: ../../mod/settings.php:758
msgid "Minimum of 10 seconds, no maximum"
-msgstr "Minimum von 10 Sekunden, kein Maximum"
+msgstr "Minimum 10 Sekunden, kein Maximum"
-#: ../../mod/settings.php:893
+#: ../../mod/settings.php:759
msgid "Maximum number of conversations to load at any time:"
-msgstr "Maximale Anzahl von Unterhaltungen die gleichzeitig geladen werden sollen:"
+msgstr "Maximale Anzahl von Unterhaltungen, die auf einmal geladen werden sollen:"
-#: ../../mod/settings.php:893
+#: ../../mod/settings.php:759
msgid "Maximum of 100 items"
-msgstr "Maximum von 100 Beiträgen"
+msgstr "Maximum: 100 Beiträge"
-#: ../../mod/settings.php:894
+#: ../../mod/settings.php:760
msgid "Don't show emoticons"
msgstr "Emoticons nicht zeigen"
-#: ../../mod/settings.php:930
+#: ../../mod/settings.php:761
+msgid "Do not view remote profiles in frames"
+msgstr "Profile/Kanäle direkt anzeigen"
+
+#: ../../mod/settings.php:761
+msgid "By default open in a sub-window of your own site"
+msgstr "Wenn dieser Haken nicht gesetzt ist, werden Profile in einem Unterfenster auf Deinem eigenen Server angezeigt."
+
+#: ../../mod/settings.php:796
msgid "Nobody except yourself"
-msgstr "Niemand außer du selbst"
+msgstr "Niemand außer Dir selbst"
-#: ../../mod/settings.php:931
+#: ../../mod/settings.php:797
msgid "Only those you specifically allow"
-msgstr "Nur die, denen du es explizit erlaubst"
+msgstr "Nur die, denen Du es explizit erlaubst"
-#: ../../mod/settings.php:932
+#: ../../mod/settings.php:798
msgid "Anybody in your address book"
msgstr "Jeder aus Ihrem Adressbuch"
-#: ../../mod/settings.php:933
+#: ../../mod/settings.php:799
msgid "Anybody on this website"
msgstr "Jeder auf dieser Website"
-#: ../../mod/settings.php:934
+#: ../../mod/settings.php:800
msgid "Anybody in this network"
msgstr "Jeder in diesem Netzwerk"
-#: ../../mod/settings.php:935
+#: ../../mod/settings.php:801
+msgid "Anybody authenticated"
+msgstr "Jeder authentifizierte"
+
+#: ../../mod/settings.php:802
msgid "Anybody on the internet"
msgstr "Jeder im Internet"
-#: ../../mod/settings.php:1009
+#: ../../mod/settings.php:879
msgid "Publish your default profile in the network directory"
-msgstr "Veröffentliche dein Standard-Profil im Netzwerk-Verzeichnis"
+msgstr "Standard-Profil im Netzwerk-Verzeichnis veröffentlichen"
-#: ../../mod/settings.php:1014
+#: ../../mod/settings.php:879 ../../mod/settings.php:884
+#: ../../mod/settings.php:955 ../../mod/api.php:106 ../../mod/profiles.php:484
+msgid "No"
+msgstr "Nein"
+
+#: ../../mod/settings.php:879 ../../mod/settings.php:884
+#: ../../mod/settings.php:955 ../../mod/api.php:105 ../../mod/profiles.php:483
+msgid "Yes"
+msgstr "Ja"
+
+#: ../../mod/settings.php:884
msgid "Allow us to suggest you as a potential friend to new members?"
-msgstr "Dürfen wir dich neuen Mitgliedern als potentiellen Kontakt vorschlagen?"
+msgstr "Dürfen wir Dich neuen Mitgliedern als potentiellen Kontakt vorschlagen?"
-#: ../../mod/settings.php:1018 ../../mod/profile_photo.php:298
+#: ../../mod/settings.php:888 ../../mod/profile_photo.php:288
msgid "or"
msgstr "oder"
-#: ../../mod/settings.php:1023
+#: ../../mod/settings.php:893
msgid "Your channel address is"
msgstr "Deine Kanal-Adresse lautet"
-#: ../../mod/settings.php:1034
-msgid "Automatically expire posts after this many days:"
-msgstr "Lösche Beiträge automatisch nach dieser Anzahl von Tagen:"
-
-#: ../../mod/settings.php:1034
-msgid "If empty, posts will not expire. Expired posts will be deleted"
-msgstr "Falls leer werden Beiträge nie verfallen. Verfallene Beiträge werden gelöscht"
-
-#: ../../mod/settings.php:1035
-msgid "Advanced expiration settings"
-msgstr "Erweitere Verfalls-Einstellungen"
-
-#: ../../mod/settings.php:1036
-msgid "Advanced Expiration"
-msgstr "Erweitertes Verfallen"
-
-#: ../../mod/settings.php:1037
-msgid "Expire posts:"
-msgstr "Beiträge verfallen lassen:"
-
-#: ../../mod/settings.php:1039
-msgid "Expire starred posts:"
-msgstr "Markierte Beiträge verfallen lassen:"
-
-#: ../../mod/settings.php:1040
-msgid "Expire photos:"
-msgstr "Fotos verfallen lassen:"
-
-#: ../../mod/settings.php:1041
-msgid "Only expire posts by others:"
-msgstr "Nur Beiträge anderer verfallen lassen:"
-
-#: ../../mod/settings.php:1052
+#: ../../mod/settings.php:927
msgid "Channel Settings"
-msgstr "Channel-Einstellungen"
+msgstr "Kanal-Einstellungen"
-#: ../../mod/settings.php:1061
+#: ../../mod/settings.php:936
msgid "Basic Settings"
msgstr "Grundeinstellungen"
-#: ../../mod/settings.php:1064
+#: ../../mod/settings.php:939
msgid "Your Timezone:"
msgstr "Ihre Zeitzone:"
-#: ../../mod/settings.php:1065
+#: ../../mod/settings.php:940
msgid "Default Post Location:"
msgstr "Standardstandort:"
-#: ../../mod/settings.php:1066
+#: ../../mod/settings.php:941
msgid "Use Browser Location:"
msgstr "Standort des Browsers verwenden:"
-#: ../../mod/settings.php:1068
+#: ../../mod/settings.php:943
msgid "Adult Content"
-msgstr "Nicht Jugendfreie-Inhalte"
+msgstr "Nicht jugendfreie Inhalte"
-#: ../../mod/settings.php:1068
-msgid "This channel publishes adult content."
-msgstr "Dieser Kanal veröffentlicht nicht Jugendfreie-Inhalte"
+#: ../../mod/settings.php:943
+msgid ""
+"This channel frequently or regularly publishes adult content. (Please tag "
+"any adult material and/or nudity with #NSFW)"
+msgstr "Dieser Kanal veröffentlicht regelmäßig Inhalte, die für Minderjährige ungeeignet sind. (Bitte markiere solche Inhalte mit dem Schlagwort #NSFW)"
-#: ../../mod/settings.php:1070
+#: ../../mod/settings.php:945
msgid "Security and Privacy Settings"
msgstr "Sicherheits- und Datenschutz-Einstellungen"
-#: ../../mod/settings.php:1072
-msgid "Quick Privacy Settings:"
-msgstr "Schnelle Datenschutz-Einstellungen:"
+#: ../../mod/settings.php:947
+msgid "Hide my online presence"
+msgstr "Meine Online-Präsenz verbergen"
+
+#: ../../mod/settings.php:947
+msgid "Prevents displaying in your profile that you are online"
+msgstr "Verhindert die Anzeige Deines Online-Status in deinem Profil"
+
+#: ../../mod/settings.php:949
+msgid "Simple Privacy Settings:"
+msgstr "Einfache Privatsphäre-Einstellungen"
+
+#: ../../mod/settings.php:950
+msgid ""
+"Very Public - <em>extremely permissive (should be used with caution)</em>"
+msgstr "Komplett offen – <em>extrem ungeschützt (mit großer Vorsicht verwenden!)</em>"
+
+#: ../../mod/settings.php:951
+msgid ""
+"Typical - <em>default public, privacy when desired (similar to social "
+"network permissions but with improved privacy)</em>"
+msgstr "Typisch – <em>Default öffentlich, Privatsphäre, wo sie erwünscht ist (ähnlich den Einstellungen in sozialen Netzwerken, aber mit besser geschützter Privatsphäre)</em>"
-#: ../../mod/settings.php:1073
-msgid "Very Public - extremely permissive"
-msgstr "Sehr offen - extrem freizügig"
+#: ../../mod/settings.php:952
+msgid "Private - <em>default private, never open or public</em>"
+msgstr "Private – <em>Default privat, nie offen oder öffentlich</em>"
-#: ../../mod/settings.php:1074
-msgid "Typical - default public, privacy when desired"
-msgstr "Typisch - Standard öffentlich, Privatheit wenn gewünscht"
+#: ../../mod/settings.php:953
+msgid "Blocked - <em>default blocked to/from everybody</em>"
+msgstr "Blockiert – <em>Alle per Default blockiert</em>"
-#: ../../mod/settings.php:1075
-msgid "Private - default private, rarely open or public"
-msgstr "Privat - Standard privat, selten offen oder öffentlich"
+#: ../../mod/settings.php:955
+msgid "Allow others to tag your posts"
+msgstr "Erlaube anderen deine Beiträge mit Schlagwörtern zu versehen"
-#: ../../mod/settings.php:1076
-msgid "Blocked - default blocked to/from everybody"
-msgstr "Geschlossen - Standard zu und von jedem geblockt"
+#: ../../mod/settings.php:955
+msgid ""
+"Often used by the community to retro-actively flag inappropriate content"
+msgstr ""
-#: ../../mod/settings.php:1079
+#: ../../mod/settings.php:957
+msgid "Advanced Privacy Settings"
+msgstr "Fortgeschrittene Privatsphäre-Einstellungen"
+
+#: ../../mod/settings.php:959
msgid "Maximum Friend Requests/Day:"
msgstr "Maximale Kontaktanfragen pro Tag:"
-#: ../../mod/settings.php:1079
+#: ../../mod/settings.php:959
msgid "May reduce spam activity"
msgstr "Kann die Spam-Aktivität verringern"
-#: ../../mod/settings.php:1080
+#: ../../mod/settings.php:960
msgid "Default Post Permissions"
-msgstr "Beitragszugriffrechte Standardeinstellungen"
+msgstr "Standardeinstellungen für Beitrags-Zugriffsrechte"
-#: ../../mod/settings.php:1081
+#: ../../mod/settings.php:961 ../../mod/mitem.php:134 ../../mod/mitem.php:177
msgid "(click to open/close)"
msgstr "(zum öffnen/schließen anklicken)"
-#: ../../mod/settings.php:1094
+#: ../../mod/settings.php:972
msgid "Maximum private messages per day from unknown people:"
msgstr "Maximale Anzahl privater Nachrichten pro Tag von unbekannten Leuten:"
-#: ../../mod/settings.php:1094
+#: ../../mod/settings.php:972
msgid "Useful to reduce spamming"
-msgstr "Nützlich um Spam zu verringern"
+msgstr "Nützlich, um Spam zu verringern"
-#: ../../mod/settings.php:1097
+#: ../../mod/settings.php:975
msgid "Notification Settings"
msgstr "Benachrichtigungs-Einstellungen"
-#: ../../mod/settings.php:1098
+#: ../../mod/settings.php:976
msgid "By default post a status message when:"
-msgstr "Sende standardmäßig Status-Nachrichten wenn:"
+msgstr "Sende standardmäßig Status-Nachrichten, wenn:"
-#: ../../mod/settings.php:1099
+#: ../../mod/settings.php:977
msgid "accepting a friend request"
-msgstr "einer Kontaktanfrage stattgegeben wurde"
+msgstr "Du eine Kontaktanfrage annimmst"
-#: ../../mod/settings.php:1100
+#: ../../mod/settings.php:978
msgid "joining a forum/community"
-msgstr "ein Forum beigetreten wurde"
+msgstr "Du einem Forum beitrittst"
-#: ../../mod/settings.php:1101
+#: ../../mod/settings.php:979
msgid "making an <em>interesting</em> profile change"
-msgstr "eine <em>interessante</em> Änderung am Profil vorgenommen wurde"
+msgstr "Du eine <em>interessante</em> Änderung an Deinem Profil vornimmst"
-#: ../../mod/settings.php:1102
+#: ../../mod/settings.php:980
msgid "Send a notification email when:"
-msgstr "Eine Email Benachrichtigung senden wenn:"
+msgstr "Eine E-Mail-Benachrichtigung senden, wenn:"
-#: ../../mod/settings.php:1103
+#: ../../mod/settings.php:981
msgid "You receive an introduction"
msgstr "Du eine Vorstellung erhältst"
-#: ../../mod/settings.php:1104
+#: ../../mod/settings.php:982
msgid "Your introductions are confirmed"
msgstr "Deine Vorstellung bestätigt wurde."
-#: ../../mod/settings.php:1105
+#: ../../mod/settings.php:983
msgid "Someone writes on your profile wall"
-msgstr "Jemand auf deine Pinnwand schreibt"
+msgstr "Jemand auf Deine Pinnwand schreibt"
-#: ../../mod/settings.php:1106
+#: ../../mod/settings.php:984
msgid "Someone writes a followup comment"
msgstr "Jemand einen Beitrag kommentiert"
-#: ../../mod/settings.php:1107
+#: ../../mod/settings.php:985
msgid "You receive a private message"
msgstr "Du eine private Nachricht erhältst"
-#: ../../mod/settings.php:1108
+#: ../../mod/settings.php:986
msgid "You receive a friend suggestion"
msgstr "Du einen Kontaktvorschlag erhältst"
-#: ../../mod/settings.php:1109
+#: ../../mod/settings.php:987
msgid "You are tagged in a post"
-msgstr "Du wurdest in einem Beitrag getaggt"
+msgstr "Du in einem Beitrag erwähnt wurdest"
-#: ../../mod/settings.php:1110
+#: ../../mod/settings.php:988
msgid "You are poked/prodded/etc. in a post"
-msgstr "Du in einer Nachricht angestupst/geknufft/o.ä. wirst"
+msgstr "Du in einem Beitrag angestupst/geknufft/o.ä. wurdest"
-#: ../../mod/settings.php:1113
+#: ../../mod/settings.php:991
msgid "Advanced Account/Page Type Settings"
-msgstr "Erweiterte Account / Seiten Arten Einstellungen"
+msgstr "Erweiterte Account- und Seitenart-Einstellungen"
-#: ../../mod/settings.php:1114
+#: ../../mod/settings.php:992
msgid "Change the behaviour of this account for special situations"
msgstr "Ändere das Verhalten dieses Accounts unter speziellen Umständen"
-#: ../../mod/viewconnections.php:28 ../../mod/search.php:80
-#: ../../mod/photos.php:576 ../../mod/display.php:9 ../../mod/community.php:18
-#: ../../mod/directory.php:32
+#: ../../mod/settings.php:995
+msgid ""
+"Please enable expert mode (in <a href=\"settings/features\">Settings > "
+"Additional features</a>) to adjust!"
+msgstr "Aktiviere den Expertenmodus (unter <a href=\"settings/features\">Settings > Zusätzliche Funktionen</a>), um hier Einstellungen vorzunehmen!"
+
+#: ../../mod/settings.php:996
+msgid "Miscellaneous Settings"
+msgstr ""
+
+#: ../../mod/settings.php:998
+msgid "Personal menu to display in your channel pages"
+msgstr "Persönliches Menü zur Anzeige auf den Seiten deines Kanals"
+
+#: ../../mod/menu.php:21
+msgid "Menu updated."
+msgstr "Menü aktualisiert."
+
+#: ../../mod/menu.php:25
+msgid "Unable to update menu."
+msgstr "Kann Menü nicht aktualisieren."
+
+#: ../../mod/menu.php:30
+msgid "Menu created."
+msgstr "Menü erstellt."
+
+#: ../../mod/menu.php:34
+msgid "Unable to create menu."
+msgstr "Kann Menü nicht erstellen."
+
+#: ../../mod/menu.php:57
+msgid "Manage Menus"
+msgstr "Menüs verwalten"
+
+#: ../../mod/menu.php:60
+msgid "Drop"
+msgstr "Löschen"
+
+#: ../../mod/menu.php:62
+msgid "Create a new menu"
+msgstr "Neues Menü erstellen"
+
+#: ../../mod/menu.php:63
+msgid "Delete this menu"
+msgstr "Lösche dieses Menü"
+
+#: ../../mod/menu.php:64 ../../mod/menu.php:109
+msgid "Edit menu contents"
+msgstr "Bearbeite Menü Inhalte"
+
+#: ../../mod/menu.php:65
+msgid "Edit this menu"
+msgstr "Dieses Menü bearbeiten"
+
+#: ../../mod/menu.php:80
+msgid "New Menu"
+msgstr "Neues Menü"
+
+#: ../../mod/menu.php:81 ../../mod/menu.php:110
+msgid "Menu name"
+msgstr "Menü Name"
+
+#: ../../mod/menu.php:81 ../../mod/menu.php:110
+msgid "Must be unique, only seen by you"
+msgstr "Muss eindeutig sein, ist aber nur für Dich sichtbar"
+
+#: ../../mod/menu.php:82 ../../mod/menu.php:111
+msgid "Menu title"
+msgstr "Menü Titel"
+
+#: ../../mod/menu.php:82 ../../mod/menu.php:111
+msgid "Menu title as seen by others"
+msgstr "Menü Titel wie er von anderen gesehen wird"
+
+#: ../../mod/menu.php:83 ../../mod/menu.php:112
+msgid "Allow bookmarks"
+msgstr "Erlaube Lesezeichen"
+
+#: ../../mod/menu.php:83 ../../mod/menu.php:112
+msgid "Menu may be used to store saved bookmarks"
+msgstr "Im Menü können gespeicherte Lesezeichen abgelegt werden"
+
+#: ../../mod/menu.php:84 ../../mod/mitem.php:142 ../../mod/new_channel.php:117
+msgid "Create"
+msgstr "Erstelle"
+
+#: ../../mod/menu.php:92 ../../mod/mitem.php:14
+msgid "Menu not found."
+msgstr "Menü nicht gefunden"
+
+#: ../../mod/menu.php:98
+msgid "Menu deleted."
+msgstr "Menü gelöscht."
+
+#: ../../mod/menu.php:100
+msgid "Menu could not be deleted."
+msgstr "Menü konnte nicht gelöscht werden."
+
+#: ../../mod/menu.php:106
+msgid "Edit Menu"
+msgstr "Menü bearbeiten"
+
+#: ../../mod/menu.php:108
+msgid "Add or remove entries to this menu"
+msgstr "Einträge zu diesem Menü hinzufügen oder entfernen"
+
+#: ../../mod/menu.php:114 ../../mod/mitem.php:186
+msgid "Modify"
+msgstr "Ändern"
+
+#: ../../mod/menu.php:120 ../../mod/mitem.php:78 ../../mod/xchan.php:27
+#: ../../mod/dirprofile.php:181
+msgid "Not found."
+msgstr "Nicht gefunden."
+
+#: ../../mod/webpages.php:121 ../../mod/layouts.php:105
+#: ../../mod/blocks.php:96
+msgid "View"
+msgstr "Ansicht"
+
+#: ../../mod/api.php:76 ../../mod/api.php:102
+msgid "Authorize application connection"
+msgstr "Zugriff für die Anwendung autorisieren"
+
+#: ../../mod/api.php:77
+msgid "Return to your app and insert this Securty Code:"
+msgstr "Trage folgenden Sicherheitscode in der Anwendung ein:"
+
+#: ../../mod/api.php:89
+msgid "Please login to continue."
+msgstr "Zum Weitermachen, bitte einloggen."
+
+#: ../../mod/api.php:104
+msgid ""
+"Do you want to authorize this application to access your posts and contacts,"
+" and/or create new posts for you?"
+msgstr "Möchtest Du dieser Anwendung erlauben, Deine Nachrichten und Kontakte abzurufen und/oder neue Nachrichten für Dich zu erstellen?"
+
+#: ../../mod/apps.php:8
+msgid "No installed applications."
+msgstr "Keine installierten Anwendungen."
+
+#: ../../mod/apps.php:13
+msgid "Applications"
+msgstr "Anwendungen"
+
+#: ../../mod/rpost.php:86 ../../mod/editpost.php:42
+msgid "Edit post"
+msgstr "Bearbeite Beitrag"
+
+#: ../../mod/cloud.php:112
+msgid "Red Matrix - Guests: Username: {your email address}, Password: +++"
+msgstr "Red-Matrix-Gäste: Nutzername: {Deine E-Mail-Adresse}; Passwort: +++"
+
+#: ../../mod/bookmarks.php:38
+msgid "Bookmark added"
+msgstr "Lesezeichen hinzugefügt"
+
+#: ../../mod/bookmarks.php:53
+msgid "My Bookmarks"
+msgstr "Meine Lesezeichen"
+
+#: ../../mod/bookmarks.php:64
+msgid "My Connections Bookmarks"
+msgstr "Lesezeichen meiner Kontakte"
+
+#: ../../mod/item.php:145
+msgid "Unable to locate original post."
+msgstr "Originalbeitrag nicht gefunden."
+
+#: ../../mod/item.php:346
+msgid "Empty post discarded."
+msgstr "Leeren Beitrag verworfen."
+
+#: ../../mod/item.php:388
+msgid "Executable content type not permitted to this channel."
+msgstr "Ausführbarer Content-Typ ist für diesen Kanal nicht freigegeben."
+
+#: ../../mod/item.php:845
+msgid "System error. Post not saved."
+msgstr "Systemfehler. Beitrag nicht gespeichert."
+
+#: ../../mod/item.php:1112 ../../mod/wall_upload.php:34
+msgid "Wall Photos"
+msgstr "Wall Fotos"
+
+#: ../../mod/item.php:1192
+#, php-format
+msgid "You have reached your limit of %1$.0f top level posts."
+msgstr "Du hast die maximale Anzahl von %1$.0f Beiträgen erreicht."
+
+#: ../../mod/item.php:1198
+#, php-format
+msgid "You have reached your limit of %1$.0f webpages."
+msgstr "Du hast die maximale Anzahl von %1$.0f Webseiten erreicht."
+
+#: ../../mod/subthread.php:105
+#, php-format
+msgid "%1$s is following %2$s's %3$s"
+msgstr "%1$s folgt nun %2$ss %3$s"
+
+#: ../../mod/update_network.php:23 ../../mod/update_channel.php:43
+#: ../../mod/update_search.php:46 ../../mod/update_display.php:25
+#: ../../mod/update_community.php:18
+msgid "[Embedded content - reload page to view]"
+msgstr "[Eingebettete Inhalte – lade die Seite neu, um sie anzuzeigen]"
+
+#: ../../mod/chanview.php:77 ../../mod/home.php:50 ../../mod/page.php:47
+#: ../../mod/wall_upload.php:28
+msgid "Channel not found."
+msgstr "Kanal nicht gefunden."
+
+#: ../../mod/chanview.php:93
+msgid "toggle full screen mode"
+msgstr "auf Vollbildmodus umschalten"
+
+#: ../../mod/tagger.php:98
+#, php-format
+msgid "%1$s tagged %2$s's %3$s with %4$s"
+msgstr "%1$s hat %2$ss %3$s mit %4$s verschlagwortet"
+
+#: ../../mod/chat.php:18 ../../mod/channel.php:25
+msgid "You must be logged in to see this page."
+msgstr "Du musst angemeldet sein, um diese Seite betrachten zu können."
+
+#: ../../mod/chat.php:163
+msgid "Leave Room"
+msgstr "Raum verlassen"
+
+#: ../../mod/chat.php:164
+msgid "I am away right now"
+msgstr "Ich bin gerade nicht da"
+
+#: ../../mod/chat.php:165
+msgid "I am online"
+msgstr "Ich bin online"
+
+#: ../../mod/chat.php:189 ../../mod/chat.php:209
+msgid "New Chatroom"
+msgstr "Neuer Chatraum"
+
+#: ../../mod/chat.php:190
+msgid "Chatroom Name"
+msgstr "Name des Chatraums"
+
+#: ../../mod/chat.php:205
+#, php-format
+msgid "%1$s's Chatrooms"
+msgstr "%1$ss Chaträume"
+
+#: ../../mod/viewconnections.php:17 ../../mod/search.php:13
+#: ../../mod/directory.php:15 ../../mod/display.php:9
+#: ../../mod/community.php:18 ../../mod/dirprofile.php:9
+#: ../../mod/photos.php:443
msgid "Public access denied."
msgstr "Öffentlicher Zugang verweigert."
-#: ../../mod/viewconnections.php:57
+#: ../../mod/viewconnections.php:43
msgid "No connections."
msgstr "Keine Verbindungen."
-#: ../../mod/viewconnections.php:69 ../../mod/nogroup.php:40
+#: ../../mod/viewconnections.php:55
#, php-format
msgid "Visit %s's profile [%s]"
-msgstr "Besuche %s's Profil [%s]"
+msgstr "%ss Profil [%s] besuchen"
-#: ../../mod/viewconnections.php:84
+#: ../../mod/viewconnections.php:70
msgid "View Connnections"
msgstr "Zeige Verbindungen"
@@ -3951,58 +4119,58 @@ msgstr "Schlagwort entfernt"
#: ../../mod/tagrm.php:79
msgid "Remove Item Tag"
-msgstr "Schlagwort des Beitrags entfernen"
+msgstr "Schlagwort entfernen"
#: ../../mod/tagrm.php:81
msgid "Select a tag to remove: "
-msgstr "Schlagwort zum entfernen auswählen:"
+msgstr "Schlagwort zum Entfernen auswählen:"
-#: ../../mod/tagrm.php:93 ../../mod/delegate.php:130
+#: ../../mod/tagrm.php:93 ../../mod/delegate.php:130 ../../mod/photos.php:909
msgid "Remove"
msgstr "Entferne"
-#: ../../mod/connect.php:59 ../../mod/connect.php:107
+#: ../../mod/connect.php:55 ../../mod/connect.php:103
msgid "Continue"
msgstr "Fortfahren"
-#: ../../mod/connect.php:88
+#: ../../mod/connect.php:84
msgid "Premium Channel Setup"
-msgstr "Prämium-Kanal Einrichtung"
+msgstr "Premium-Kanal-Einrichtung"
-#: ../../mod/connect.php:90
+#: ../../mod/connect.php:86
msgid "Enable premium channel connection restrictions"
-msgstr "Einschränkungen für den Prämium-Kanal aktivieren"
+msgstr "Einschränkungen für einen Premium-Kanal aktivieren"
-#: ../../mod/connect.php:91
+#: ../../mod/connect.php:87
msgid ""
"Please enter your restrictions or conditions, such as paypal receipt, usage "
"guidelines, etc."
-msgstr "Bitte gib deine Nutzungseinschränkungen ein, z.B. Paypal Quittung, Nutzungsbestimmungen etc."
+msgstr "Bitte gib Deine Nutzungsbedingungen ein, z.B. Paypal-Quittung, Richtlinien etc."
-#: ../../mod/connect.php:93 ../../mod/connect.php:113
+#: ../../mod/connect.php:89 ../../mod/connect.php:109
msgid ""
"This channel may require additional steps or acknowledgement of the "
"following conditions prior to connecting:"
-msgstr "Unter Umständen sind weitere Schritte oder die Bestätigung der folgenden Bedingungen, vor dem Verbinden mit diesem Kanal nötig."
+msgstr "Unter Umständen sind weitere Schritte oder die Bestätigung der folgenden Bedingungen vor dem Verbinden mit diesem Kanal nötig."
-#: ../../mod/connect.php:94
+#: ../../mod/connect.php:90
msgid ""
"Potential connections will then see the following text before proceeding:"
-msgstr "Potentielle Verbindungen werden den folgenden Text sehen bevor fortgefahren wird:"
+msgstr "Potentielle Kontakte werden den folgenden Text sehen, bevor fortgefahren wird:"
-#: ../../mod/connect.php:95 ../../mod/connect.php:116
+#: ../../mod/connect.php:91 ../../mod/connect.php:112
msgid ""
"By continuing, I certify that I have complied with any instructions provided"
" on this page."
-msgstr "Mit dem fortfahren bestätige ich die Erfüllung aller Anweisungen die vom Seitenbetreiber erteilt wurden."
+msgstr "Indem ich fortfahre, bestätige ich die Erfüllung aller Anweisungen aus dieser Seite."
-#: ../../mod/connect.php:104
+#: ../../mod/connect.php:100
msgid "(No specific instructions have been provided by the channel owner.)"
-msgstr "(Der Seitenbetreiber hat keine speziellen Anweisungen für Kanal-Betreiber hinterlegt.)"
+msgstr "(Der Kanal-Besitzer hat keine speziellen Anweisungen hinterlegt.)"
-#: ../../mod/connect.php:112
+#: ../../mod/connect.php:108
msgid "Restricted or Premium Channel"
-msgstr "Eingeschränkter oder Prämium-Kanal"
+msgstr "Eingeschränkter oder Premium-Kanal"
#: ../../mod/delegate.php:95
msgid "No potential page delegates located."
@@ -4010,14 +4178,14 @@ msgstr "Keine potentiellen Bevollmächtigten für die Seite gefunden."
#: ../../mod/delegate.php:121
msgid "Delegate Page Management"
-msgstr "Delegiere das Management für die Seite"
+msgstr "Delegiere das Management für diese Seite"
#: ../../mod/delegate.php:123
msgid ""
"Delegates are able to manage all aspects of this account/page except for "
"basic account settings. Please do not delegate your personal account to "
"anybody that you do not trust completely."
-msgstr "Bevollmächtigte sind in der Lage, alle Aspekte dieses Kontos/dieser Seite zu verwalten, abgesehen von den Grundeinstellungen des Kontos. Bitte gib niemandem eine Bevollmächtigung für deinen privaten Account, dem du nicht absolut vertraust!"
+msgstr "Bevollmächtigte sind in der Lage, alle Aspekte dieses Kontos/dieser Seite zu verwalten, abgesehen von den Grundeinstellungen des Kontos. Gib niemandem eine Bevollmächtigung für Deinen privaten Account, dem Du nicht absolut vertraust!"
#: ../../mod/delegate.php:124
msgid "Existing Page Managers"
@@ -4039,1647 +4207,1178 @@ msgstr "Hinzufügen"
msgid "No entries."
msgstr "Keine Einträge."
-#: ../../mod/sources.php:27
-msgid "Source created."
-msgstr "Quelle erstellt."
+#: ../../mod/chatsvc.php:102
+msgid "Away"
+msgstr "Abwesend"
-#: ../../mod/sources.php:39
-msgid "Source updated."
-msgstr "Quelle aktualisiert."
+#: ../../mod/chatsvc.php:106
+msgid "Online"
+msgstr "Online"
-#: ../../mod/sources.php:68
-msgid "Manage remote sources of content for your channel."
-msgstr "Entfernte Quellen von Inhalten deines Kanals verwalten."
+#: ../../mod/attach.php:9
+msgid "Item not available."
+msgstr "Element nicht verfügbar."
-#: ../../mod/sources.php:69 ../../mod/sources.php:79
-msgid "New Source"
-msgstr "Neue Quelle"
+#: ../../mod/mitem.php:47
+msgid "Menu element updated."
+msgstr "Menü-Element aktualisiert."
-#: ../../mod/sources.php:80 ../../mod/sources.php:106
-msgid ""
-"Import all or selected content from the following channel into this channel "
-"and distribute it according to your channel settings."
-msgstr "Importiere alle oder ausgewählte Inhalte des folgenden Kanals in diesen Kanal und verteile sie gemäß der Einstellungen dieses Kanals."
+#: ../../mod/mitem.php:51
+msgid "Unable to update menu element."
+msgstr "Kann Menü-Element nicht aktualisieren."
-#: ../../mod/sources.php:81 ../../mod/sources.php:107
-msgid "Only import content with these words (one per line)"
-msgstr "Importiere ausschließlich Beiträge, die folgende Wörter (eines pro Zeile) enthalten"
+#: ../../mod/mitem.php:57
+msgid "Menu element added."
+msgstr "Menü-Bestandteil hinzugefügt."
-#: ../../mod/sources.php:81 ../../mod/sources.php:107
-msgid "Leave blank to import all public content"
-msgstr "Leer lassen um alle öffentlichen Beiträge zu importieren"
+#: ../../mod/mitem.php:61
+msgid "Unable to add menu element."
+msgstr "Kann Menü-Bestandteil nicht hinzufügen."
-#: ../../mod/sources.php:82 ../../mod/sources.php:109
-#: ../../mod/new_channel.php:110
-msgid "Channel Name"
-msgstr "Channel-Name"
+#: ../../mod/mitem.php:96
+msgid "Manage Menu Elements"
+msgstr "Menü-Bestandteile verwalten"
-#: ../../mod/sources.php:96 ../../mod/sources.php:122
-msgid "Source not found."
-msgstr "Quelle nicht gefunden."
+#: ../../mod/mitem.php:99
+msgid "Edit menu"
+msgstr "Menü bearbeiten"
-#: ../../mod/sources.php:103
-msgid "Edit Source"
-msgstr "Quelle bearbeiten"
+#: ../../mod/mitem.php:102
+msgid "Edit element"
+msgstr "Bestandteil bearbeiten"
-#: ../../mod/sources.php:104
-msgid "Delete Source"
-msgstr "Quelle löschen"
+#: ../../mod/mitem.php:103
+msgid "Drop element"
+msgstr "Bestandteil löschen"
-#: ../../mod/sources.php:130
-msgid "Source removed"
-msgstr "Quelle gelöscht"
+#: ../../mod/mitem.php:104
+msgid "New element"
+msgstr "Neues Bestandteil"
-#: ../../mod/sources.php:132
-msgid "Unable to remove source."
-msgstr "Konnte die Quelle nicht löschen."
+#: ../../mod/mitem.php:105
+msgid "Edit this menu container"
+msgstr "Diesen Menü-Container bearbeiten"
+
+#: ../../mod/mitem.php:106
+msgid "Add menu element"
+msgstr "Menüelement hinzufügen"
+
+#: ../../mod/mitem.php:107
+msgid "Delete this menu item"
+msgstr "Lösche dieses Menü-Bestandteil"
+
+#: ../../mod/mitem.php:108
+msgid "Edit this menu item"
+msgstr "Bearbeite dieses Menü-Bestandteil"
+
+#: ../../mod/mitem.php:131
+msgid "New Menu Element"
+msgstr "Neues Menü-Bestandteil"
+
+#: ../../mod/mitem.php:133 ../../mod/mitem.php:176
+msgid "Menu Item Permissions"
+msgstr "Zugriffsrechte des Menü-Elements"
+
+#: ../../mod/mitem.php:136 ../../mod/mitem.php:180
+msgid "Link text"
+msgstr "Link Text"
+
+#: ../../mod/mitem.php:137 ../../mod/mitem.php:181
+msgid "URL of link"
+msgstr "URL des Links"
+
+#: ../../mod/mitem.php:138 ../../mod/mitem.php:182
+msgid "Use Red magic-auth if available"
+msgstr "Verwende Red Magic-Auth wenn verfügbar"
+
+#: ../../mod/mitem.php:139 ../../mod/mitem.php:183
+msgid "Open link in new window"
+msgstr "Öffne Link in neuem Fenster"
+
+#: ../../mod/mitem.php:141 ../../mod/mitem.php:185
+msgid "Order in list"
+msgstr "Reihenfolge in der Liste"
+
+#: ../../mod/mitem.php:141 ../../mod/mitem.php:185
+msgid "Higher numbers will sink to bottom of listing"
+msgstr "Größere Nummern werden weiter unten in der Auflistung einsortiert"
+
+#: ../../mod/mitem.php:154
+msgid "Menu item not found."
+msgstr "Menü-Bestandteil nicht gefunden."
+
+#: ../../mod/mitem.php:163
+msgid "Menu item deleted."
+msgstr "Menü-Bestandteil gelöscht."
+
+#: ../../mod/mitem.php:165
+msgid "Menu item could not be deleted."
+msgstr "Menü-Bestandteil kann nicht gelöscht werden."
+
+#: ../../mod/mitem.php:174
+msgid "Edit Menu Element"
+msgstr "Bearbeite Menü-Bestandteil"
+
+#: ../../mod/profperm.php:29 ../../mod/profperm.php:58
+msgid "Invalid profile identifier."
+msgstr "Ungültiger Profil-Identifikator"
+
+#: ../../mod/profperm.php:105
+msgid "Profile Visibility Editor"
+msgstr "Profil-Sichtbarkeits-Editor"
+
+#: ../../mod/profperm.php:109
+msgid "Click on a contact to add or remove."
+msgstr "Klicke auf einen Kontakt, um ihn hinzuzufügen oder zu entfernen."
+
+#: ../../mod/profperm.php:118
+msgid "Visible To"
+msgstr "Sichtbar für"
+
+#: ../../mod/profperm.php:134 ../../mod/connections.php:250
+msgid "All Connections"
+msgstr "Alle Verbindungen"
+
+#: ../../mod/group.php:20
+msgid "Collection created."
+msgstr "Sammlung erstellt."
+
+#: ../../mod/group.php:26
+msgid "Could not create collection."
+msgstr "Sammlung kann nicht erstellt werden."
+
+#: ../../mod/group.php:54
+msgid "Collection updated."
+msgstr "Sammlung aktualisiert."
+
+#: ../../mod/group.php:86
+msgid "Create a collection of channels."
+msgstr "Erstelle eine Sammlung von Kanälen."
+
+#: ../../mod/group.php:87 ../../mod/group.php:183
+msgid "Collection Name: "
+msgstr "Name der Sammlung:"
+
+#: ../../mod/group.php:89 ../../mod/group.php:186
+msgid "Members are visible to other channels"
+msgstr "Mitglieder sind sichtbar für andere Kanäle"
+
+#: ../../mod/group.php:107
+msgid "Collection removed."
+msgstr "Sammlung gelöscht."
+
+#: ../../mod/group.php:109
+msgid "Unable to remove collection."
+msgstr "Löschen der Sammlung nicht möglich."
+
+#: ../../mod/group.php:182
+msgid "Collection Editor"
+msgstr "Sammlung-Editor"
+
+#: ../../mod/group.php:196
+msgid "Members"
+msgstr "Mitglieder"
+
+#: ../../mod/group.php:198
+msgid "All Connected Channels"
+msgstr "Alle verbundenen Kanäle"
+
+#: ../../mod/group.php:231
+msgid "Click on a channel to add or remove."
+msgstr "Wähle einen Kanal zum hinzufügen oder entfernen aus."
#: ../../mod/admin.php:48
msgid "Theme settings updated."
msgstr "Theme-Einstellungen aktualisiert."
-#: ../../mod/admin.php:87 ../../mod/admin.php:417
+#: ../../mod/admin.php:88 ../../mod/admin.php:430
msgid "Site"
msgstr "Seite"
-#: ../../mod/admin.php:88 ../../mod/admin.php:682 ../../mod/admin.php:694
+#: ../../mod/admin.php:89 ../../mod/admin.php:738 ../../mod/admin.php:750
msgid "Users"
msgstr "Benutzer"
-#: ../../mod/admin.php:89 ../../mod/admin.php:780 ../../mod/admin.php:822
+#: ../../mod/admin.php:90 ../../mod/admin.php:836 ../../mod/admin.php:878
msgid "Plugins"
msgstr "Plug-Ins"
-#: ../../mod/admin.php:90 ../../mod/admin.php:985 ../../mod/admin.php:1021
+#: ../../mod/admin.php:91 ../../mod/admin.php:1041 ../../mod/admin.php:1077
msgid "Themes"
msgstr "Themes"
-#: ../../mod/admin.php:91 ../../mod/admin.php:475
+#: ../../mod/admin.php:92 ../../mod/admin.php:529
msgid "Server"
msgstr "Server"
-#: ../../mod/admin.php:92
+#: ../../mod/admin.php:93
msgid "DB updates"
msgstr "DB-Aktualisierungen"
-#: ../../mod/admin.php:106 ../../mod/admin.php:113 ../../mod/admin.php:1108
+#: ../../mod/admin.php:107 ../../mod/admin.php:114 ../../mod/admin.php:1164
msgid "Logs"
msgstr "Protokolle"
-#: ../../mod/admin.php:112
+#: ../../mod/admin.php:113
msgid "Plugin Features"
msgstr "Plug-In Funktionen"
-#: ../../mod/admin.php:114
+#: ../../mod/admin.php:115
msgid "User registrations waiting for confirmation"
-msgstr "Nutzer Anmeldungen die auf Bestätigung warten"
+msgstr "Nutzer-Anmeldungen, die auf Bestätigung warten"
-#: ../../mod/admin.php:188
+#: ../../mod/admin.php:189
msgid "Message queues"
-msgstr "Nachrichten Warteschlange"
+msgstr "Nachrichten-Warteschlangen"
-#: ../../mod/admin.php:193 ../../mod/admin.php:416 ../../mod/admin.php:474
-#: ../../mod/admin.php:681 ../../mod/admin.php:779 ../../mod/admin.php:821
-#: ../../mod/admin.php:984 ../../mod/admin.php:1020 ../../mod/admin.php:1107
+#: ../../mod/admin.php:194 ../../mod/admin.php:429 ../../mod/admin.php:528
+#: ../../mod/admin.php:737 ../../mod/admin.php:835 ../../mod/admin.php:877
+#: ../../mod/admin.php:1040 ../../mod/admin.php:1076 ../../mod/admin.php:1163
msgid "Administration"
msgstr "Administration"
-#: ../../mod/admin.php:194
+#: ../../mod/admin.php:195
msgid "Summary"
msgstr "Zusammenfassung"
-#: ../../mod/admin.php:196
+#: ../../mod/admin.php:197
msgid "Registered users"
msgstr "Registrierte Benutzer"
-#: ../../mod/admin.php:198 ../../mod/admin.php:478
+#: ../../mod/admin.php:199 ../../mod/admin.php:532
msgid "Pending registrations"
msgstr "Ausstehende Registrierungen"
-#: ../../mod/admin.php:199
+#: ../../mod/admin.php:200
msgid "Version"
msgstr "Version"
-#: ../../mod/admin.php:201 ../../mod/admin.php:479
+#: ../../mod/admin.php:202 ../../mod/admin.php:533
msgid "Active plugins"
msgstr "Aktive Plug-Ins"
-#: ../../mod/admin.php:340
+#: ../../mod/admin.php:350
msgid "Site settings updated."
msgstr "Site-Einstellungen aktualisiert."
-#: ../../mod/admin.php:371
+#: ../../mod/admin.php:381
msgid "No special theme for accessibility"
-msgstr "Kein spezielles Accessibility Theme vorhanden"
+msgstr "Kein spezielles Accessibility-Theme vorhanden"
-#: ../../mod/admin.php:396
+#: ../../mod/admin.php:409
msgid "Closed"
msgstr "Geschlossen"
-#: ../../mod/admin.php:397
+#: ../../mod/admin.php:410
msgid "Requires approval"
msgstr "Genehmigung erforderlich"
-#: ../../mod/admin.php:398
+#: ../../mod/admin.php:411
msgid "Open"
msgstr "Offen"
-#: ../../mod/admin.php:403
+#: ../../mod/admin.php:416
msgid "Private"
msgstr "Privat"
-#: ../../mod/admin.php:404
+#: ../../mod/admin.php:417
msgid "Paid Access"
msgstr "Kostenpflichtiger Zugang"
-#: ../../mod/admin.php:405
+#: ../../mod/admin.php:418
msgid "Free Access"
msgstr "Kostenloser Zugang"
-#: ../../mod/admin.php:406
+#: ../../mod/admin.php:419
msgid "Tiered Access"
msgstr "Abgestufter Zugang"
-#: ../../mod/admin.php:419 ../../mod/register.php:180
+#: ../../mod/admin.php:432 ../../mod/register.php:189
msgid "Registration"
msgstr "Registrierung"
-#: ../../mod/admin.php:420
+#: ../../mod/admin.php:433
msgid "File upload"
msgstr "Dateiupload"
-#: ../../mod/admin.php:421
+#: ../../mod/admin.php:434
msgid "Policies"
msgstr "Richtlinien"
-#: ../../mod/admin.php:422
+#: ../../mod/admin.php:435
msgid "Advanced"
msgstr "Fortgeschritten"
-#: ../../mod/admin.php:426
+#: ../../mod/admin.php:439
msgid "Site name"
msgstr "Seitenname"
-#: ../../mod/admin.php:427
+#: ../../mod/admin.php:440
msgid "Banner/Logo"
msgstr "Banner/Logo"
-#: ../../mod/admin.php:428
+#: ../../mod/admin.php:441
+msgid "Administrator Information"
+msgstr "Administrator-Informationen"
+
+#: ../../mod/admin.php:441
+msgid ""
+"Contact information for site administrators. Displayed on siteinfo page. "
+"BBCode can be used here"
+msgstr "Kontaktinformationen für Administratoren des Servers. Wird auf der siteinfo-Seite angezeigt. BBCode kann verwendet werden."
+
+#: ../../mod/admin.php:442
msgid "System language"
msgstr "System-Sprache"
-#: ../../mod/admin.php:429
+#: ../../mod/admin.php:443
msgid "System theme"
msgstr "System-Theme"
-#: ../../mod/admin.php:429
+#: ../../mod/admin.php:443
msgid ""
"Default system theme - may be over-ridden by user profiles - <a href='#' "
"id='cnftheme'>change theme settings</a>"
-msgstr "Standard System-Theme - kann durch Nutzerprofile überschieben werden - <a href='#' id='cnftheme'>Theme.Einstellungen ändern</a>"
+msgstr "Standard-System-Theme – kann durch Nutzerprofile überschieben werden – <a href='#' id='cnftheme'>Theme-Einstellungen ändern</a>"
-#: ../../mod/admin.php:430
+#: ../../mod/admin.php:444
msgid "Mobile system theme"
msgstr "Mobile System-Theme:"
-#: ../../mod/admin.php:430
+#: ../../mod/admin.php:444
msgid "Theme for mobile devices"
msgstr "Theme für mobile Geräte"
-#: ../../mod/admin.php:431
+#: ../../mod/admin.php:445
msgid "Accessibility system theme"
-msgstr "Accessibility System-Theme"
+msgstr "Accessibility-System-Theme"
-#: ../../mod/admin.php:431
+#: ../../mod/admin.php:445
msgid "Accessibility theme"
-msgstr "Accessibility Theme"
+msgstr "Accessibility-Theme"
-#: ../../mod/admin.php:432
+#: ../../mod/admin.php:446
msgid "Channel to use for this website's static pages"
msgstr "Kanal für die statischen Seiten dieser Webseite verwenden"
-#: ../../mod/admin.php:432
+#: ../../mod/admin.php:446
msgid "Site Channel"
msgstr "Seiten Kanal"
-#: ../../mod/admin.php:434
+#: ../../mod/admin.php:448
msgid "Maximum image size"
msgstr "Maximale Bildgröße"
-#: ../../mod/admin.php:434
+#: ../../mod/admin.php:448
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
-msgstr "Maximale Größe in Bytes von hochgeladenen Bildern. Standard ist 0, was keine Einschränkung bedeutet."
+msgstr "Maximale Größe hochgeladener Bilder in Bytes. Standard ist 0 (keine Einschränkung)."
-#: ../../mod/admin.php:435
+#: ../../mod/admin.php:449
msgid "Register policy"
-msgstr "Registrierungsmethode"
+msgstr "Registrierungsrichtlinie"
-#: ../../mod/admin.php:436
+#: ../../mod/admin.php:450
msgid "Access policy"
msgstr "Zugangsrichtlinien"
-#: ../../mod/admin.php:437
+#: ../../mod/admin.php:451
msgid "Register text"
msgstr "Registrierungstext"
-#: ../../mod/admin.php:437
+#: ../../mod/admin.php:451
msgid "Will be displayed prominently on the registration page."
-msgstr "Wird gut sichtbar auf der Registrierungsseite angezeigt."
+msgstr "Wird gut sichtbar auf der Registrierungs-Seite angezeigt."
-#: ../../mod/admin.php:438
+#: ../../mod/admin.php:452
msgid "Accounts abandoned after x days"
-msgstr "Accounts gelten nach X Tagen als unbenutzt"
+msgstr "Konten gelten nach X Tagen als unbenutzt"
-#: ../../mod/admin.php:438
+#: ../../mod/admin.php:452
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
-msgstr "Verschwende keine Systemressourchen auf das Pollen von externen Seiten wenn das Konto nicht mehr benutzt wird. Trage hier 0 für kein zeitliches Limit."
+msgstr "Verschwende keine Systemressourcen auf das Pollen von externen Seiten, wenn das Konto nicht mehr benutzt wird. Trage hier 0 für kein zeitliches Limit."
-#: ../../mod/admin.php:439
+#: ../../mod/admin.php:453
msgid "Allowed friend domains"
msgstr "Erlaubte Domains für Kontakte"
-#: ../../mod/admin.php:439
+#: ../../mod/admin.php:453
msgid ""
"Comma separated list of domains which are allowed to establish friendships "
"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr "Liste der Domains, die für Freundschaften erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben."
-#: ../../mod/admin.php:440
+#: ../../mod/admin.php:454
msgid "Allowed email domains"
msgstr "Erlaubte Domains für E-Mails"
-#: ../../mod/admin.php:440
+#: ../../mod/admin.php:454
msgid ""
"Comma separated list of domains which are allowed in email addresses for "
"registrations to this site. Wildcards are accepted. Empty to allow any "
"domains"
msgstr "Liste der Domains, die für E-Mail-Adressen bei der Registrierung erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben."
-#: ../../mod/admin.php:441
+#: ../../mod/admin.php:455
msgid "Block public"
msgstr "Öffentlichen Zugriff blockieren"
-#: ../../mod/admin.php:441
+#: ../../mod/admin.php:455
msgid ""
"Check to block public access to all otherwise public personal pages on this "
"site unless you are currently logged in."
-msgstr "Klicken, um öffentlichen Zugriff auf sonst öffentliche Profile zu blockieren, wenn man nicht eingeloggt ist."
+msgstr "Zugriff auf sonst öffentliche persönliche Seiten blockieren, wenn man nicht eingeloggt ist."
-#: ../../mod/admin.php:442
+#: ../../mod/admin.php:456
msgid "Force publish"
msgstr "Veröffentlichung erzwingen"
-#: ../../mod/admin.php:442
+#: ../../mod/admin.php:456
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
-msgstr "Klicken, um Anzeige aller Profile dieses Servers im Verzeichnis zu erzwingen."
+msgstr "Die Veröffentlichung aller Profile dieses Servers im Verzeichnis erzwingen."
-#: ../../mod/admin.php:444
+#: ../../mod/admin.php:457
+msgid "No login on Homepage"
+msgstr "Kein Login auf der Homepage"
+
+#: ../../mod/admin.php:457
+msgid ""
+"Check to hide the login form from your sites homepage when visitors arrive "
+"who are not logged in (e.g. when you put the content of the homepage in via "
+"the site channel)."
+msgstr "Ktivieren, um das Login-Formular auf der Startseite der Seite zu verbergen, z.B. weil es das Layout der Homepage des Seiten-Kanals stört."
+
+#: ../../mod/admin.php:459
msgid "Proxy user"
msgstr "Proxy Benutzer"
-#: ../../mod/admin.php:445
+#: ../../mod/admin.php:460
msgid "Proxy URL"
msgstr "Proxy URL"
-#: ../../mod/admin.php:446
+#: ../../mod/admin.php:461
msgid "Network timeout"
msgstr "Netzwerk-Timeout"
-#: ../../mod/admin.php:446
+#: ../../mod/admin.php:461
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
-msgstr "Der Wert ist in Sekunden. Setze 0 für unbegrenzt (nicht empfohlen)."
+msgstr "Wert in Sekunden. 0 für unbegrenzt (nicht empfohlen)."
-#: ../../mod/admin.php:447
+#: ../../mod/admin.php:462
msgid "Delivery interval"
msgstr "Auslieferung Intervall"
-#: ../../mod/admin.php:447
+#: ../../mod/admin.php:462
msgid ""
"Delay background delivery processes by this many seconds to reduce system "
"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
"for large dedicated servers."
-msgstr "Verzögere im Hintergrund laufende Auslieferungsprozesse um die angegebene Anzahl an Sekunden, um die Systemlast zu verringern. Empfehlungen: 4-5 für Shared-Hosts, 2-3 für VPS, 0-1 für große dedizierte Server."
+msgstr "Verzögere im Hintergrund laufende Auslieferungsprozesse um die angegebene Anzahl Sekunden, um die Systemlast zu verringern. Empfehlungen: 4-5 für Shared Hosts, 2-3 für VPS, 0-1 für große dedizierte Server."
-#: ../../mod/admin.php:448
+#: ../../mod/admin.php:463
msgid "Poll interval"
msgstr "Abfrageintervall"
-#: ../../mod/admin.php:448
+#: ../../mod/admin.php:463
msgid ""
"Delay background polling processes by this many seconds to reduce system "
"load. If 0, use delivery interval."
-msgstr "Verzögere Hintergrundprozesse, um diese Anzahl an Sekunden um die Systemlast zu reduzieren. Bei 0 Sekunden wird das Auslieferungsintervall verwendet."
+msgstr "Verzögere Hintergrundprozesse um diese Anzahl Sekunden, um die Systemlast zu reduzieren. Bei 0 wird das Auslieferungsintervall verwendet."
-#: ../../mod/admin.php:449
+#: ../../mod/admin.php:464
msgid "Maximum Load Average"
-msgstr "Maximum Load Average"
+msgstr "Maximales Load Average"
-#: ../../mod/admin.php:449
+#: ../../mod/admin.php:464
msgid ""
"Maximum system load before delivery and poll processes are deferred - "
"default 50."
-msgstr "Maximale Systemlast bevor Verteil- und Empfangsprozesse verschoben werden - Standard 50"
+msgstr "Maximale Systemlast, bevor Verteil- und Empfangsprozesse verschoben werden – Standard 50"
-#: ../../mod/admin.php:466
+#: ../../mod/admin.php:520
msgid "No server found"
msgstr "Kein Server gefunden"
-#: ../../mod/admin.php:473 ../../mod/admin.php:695
+#: ../../mod/admin.php:527 ../../mod/admin.php:751
msgid "ID"
msgstr "ID"
-#: ../../mod/admin.php:473
+#: ../../mod/admin.php:527
msgid "for channel"
msgstr "für Kanal"
-#: ../../mod/admin.php:473
+#: ../../mod/admin.php:527
msgid "on server"
msgstr "auf Server"
-#: ../../mod/admin.php:473
+#: ../../mod/admin.php:527
msgid "Status"
msgstr "Status"
-#: ../../mod/admin.php:493
+#: ../../mod/admin.php:548
msgid "Update has been marked successful"
msgstr "Update wurde als erfolgreich markiert"
-#: ../../mod/admin.php:503
+#: ../../mod/admin.php:558
#, php-format
msgid "Executing %s failed. Check system logs."
-msgstr "Aufrufen von %s fehlgeschlagen. Überprüfe die Systemlogs."
+msgstr "Ausführen von %s fehlgeschlagen. Überprüfe die Systemprotokolle."
-#: ../../mod/admin.php:506
+#: ../../mod/admin.php:561
#, php-format
msgid "Update %s was successfully applied."
-msgstr "Update %s wurde erfolgreich angewandt."
+msgstr "Update %s wurde erfolgreich ausgeführt."
-#: ../../mod/admin.php:510
+#: ../../mod/admin.php:565
#, php-format
msgid "Update %s did not return a status. Unknown if it succeeded."
-msgstr "Update %s liefert keinen Rückgabewert. Unbekannt ob es erfolgreich war."
+msgstr "Update %s lieferte keinen Rückgabewert. Erfolg unbekannt."
-#: ../../mod/admin.php:513
+#: ../../mod/admin.php:568
#, php-format
msgid "Update function %s could not be found."
-msgstr "Update Funktion %s konnte nicht gefunden werden."
+msgstr "Update-Funktion %s konnte nicht gefunden werden."
-#: ../../mod/admin.php:528
+#: ../../mod/admin.php:583
msgid "No failed updates."
msgstr "Keine fehlgeschlagenen Aktualisierungen."
-#: ../../mod/admin.php:532
+#: ../../mod/admin.php:587
msgid "Failed Updates"
msgstr "Fehlgeschlagene Aktualisierungen"
-#: ../../mod/admin.php:534
+#: ../../mod/admin.php:589
msgid "Mark success (if update was manually applied)"
-msgstr "Als erfolgreich markieren (wenn das Update manuell angewandt wurde)"
+msgstr "Als erfolgreich markieren (wenn das Update manuell ausgeführt wurde)"
-#: ../../mod/admin.php:535
+#: ../../mod/admin.php:590
msgid "Attempt to execute this update step automatically"
-msgstr "Versuche diesen Updateschritt automatisch anzuwenden"
+msgstr "Versuche, diesen Updateschritt automatisch auszuführen"
-#: ../../mod/admin.php:561
+#: ../../mod/admin.php:616
#, php-format
msgid "%s user blocked/unblocked"
msgid_plural "%s users blocked/unblocked"
msgstr[0] "%s Nutzer blockiert/freigegeben"
msgstr[1] "%s Nutzer blockiert/freigegeben"
-#: ../../mod/admin.php:568
+#: ../../mod/admin.php:623
#, php-format
msgid "%s user deleted"
msgid_plural "%s users deleted"
msgstr[0] "%s Nutzer gelöscht"
msgstr[1] "%s Nutzer gelöscht"
-#: ../../mod/admin.php:599
+#: ../../mod/admin.php:654
msgid "Account not found"
msgstr "Konto nicht gefunden"
-#: ../../mod/admin.php:610
+#: ../../mod/admin.php:665
#, php-format
msgid "User '%s' deleted"
msgstr "Benutzer '%s' gelöscht"
-#: ../../mod/admin.php:619
+#: ../../mod/admin.php:674
#, php-format
msgid "User '%s' unblocked"
msgstr "Benutzer '%s' freigegeben"
-#: ../../mod/admin.php:619
+#: ../../mod/admin.php:674
#, php-format
msgid "User '%s' blocked"
msgstr "Benutzer '%s' blockiert"
-#: ../../mod/admin.php:684
+#: ../../mod/admin.php:740
msgid "select all"
msgstr "Alle auswählen"
-#: ../../mod/admin.php:685
+#: ../../mod/admin.php:741
msgid "User registrations waiting for confirm"
-msgstr "Neuanmeldungen, die auf deine Bestätigung warten"
+msgstr "Neuanmeldungen, die auf Deine Bestätigung warten"
-#: ../../mod/admin.php:686
+#: ../../mod/admin.php:742
msgid "Request date"
msgstr "Antragsdatum"
-#: ../../mod/admin.php:687
+#: ../../mod/admin.php:743
msgid "No registrations."
msgstr "Keine Registrierungen."
-#: ../../mod/admin.php:688 ../../mod/intro.php:11 ../../mod/intro.php:98
-#: ../../mod/notifications.php:159 ../../mod/notifications.php:206
+#: ../../mod/admin.php:744
msgid "Approve"
msgstr "Genehmigen"
-#: ../../mod/admin.php:689
+#: ../../mod/admin.php:745
msgid "Deny"
msgstr "Verweigern"
-#: ../../mod/admin.php:691 ../../mod/intro.php:14 ../../mod/intro.php:99
-#: ../../mod/connections.php:348 ../../mod/connections.php:490
+#: ../../mod/admin.php:747 ../../mod/connedit.php:333
+#: ../../mod/connedit.php:475
msgid "Block"
msgstr "Blockieren"
-#: ../../mod/admin.php:692 ../../mod/connections.php:348
-#: ../../mod/connections.php:490
+#: ../../mod/admin.php:748 ../../mod/connedit.php:333
+#: ../../mod/connedit.php:475
msgid "Unblock"
msgstr "Freigeben"
-#: ../../mod/admin.php:695
+#: ../../mod/admin.php:751
msgid "Register date"
msgstr "Registrierungs-Datum"
-#: ../../mod/admin.php:695
+#: ../../mod/admin.php:751
msgid "Last login"
msgstr "Letzte Anmeldung"
-#: ../../mod/admin.php:695
+#: ../../mod/admin.php:751
msgid "Expires"
msgstr "Verfällt"
-#: ../../mod/admin.php:695
+#: ../../mod/admin.php:751
msgid "Service Class"
msgstr "Service-Klasse"
-#: ../../mod/admin.php:697
+#: ../../mod/admin.php:753
msgid ""
"Selected users will be deleted!\\n\\nEverything these users had posted on "
"this site will be permanently deleted!\\n\\nAre you sure?"
-msgstr "Markierte Nutzer werden gelöscht\\n\\nAlles was diese Nutzer auf dieser Seite veröffentlicht haben wird permanent gelöscht\\n\\nBist du sicher?"
+msgstr "Die markierten Nutzer werden gelöscht!\\n\\nAlles, was diese Nutzer auf dieser Seite veröffentlicht haben, wird endgültig gelöscht!\\n\\nBist Du sicher?"
-#: ../../mod/admin.php:698
+#: ../../mod/admin.php:754
msgid ""
"The user {0} will be deleted!\\n\\nEverything this user has posted on this "
"site will be permanently deleted!\\n\\nAre you sure?"
-msgstr "Der Nutzer {0} wird gelöscht\\n\\nAlles was dieser Nutzer auf dieser Seite veröffentlicht hat wird permanent gelöscht werden\\n\\nBist du sicher?"
+msgstr "Der Nutzer {0} wird gelöscht!\\n\\nAlles, was dieser Nutzer auf dieser Seite veröffentlicht hat, wird endgültig gelöscht werden!\\n\\nBist Du sicher?"
-#: ../../mod/admin.php:739
+#: ../../mod/admin.php:795
#, php-format
msgid "Plugin %s disabled."
msgstr "Plug-In %s deaktiviert."
-#: ../../mod/admin.php:743
+#: ../../mod/admin.php:799
#, php-format
msgid "Plugin %s enabled."
msgstr "Plug-In %s aktiviert."
-#: ../../mod/admin.php:753 ../../mod/admin.php:955
+#: ../../mod/admin.php:809 ../../mod/admin.php:1011
msgid "Disable"
msgstr "Deaktivieren"
-#: ../../mod/admin.php:755 ../../mod/admin.php:957
+#: ../../mod/admin.php:811 ../../mod/admin.php:1013
msgid "Enable"
msgstr "Aktivieren"
-#: ../../mod/admin.php:781 ../../mod/admin.php:986
+#: ../../mod/admin.php:837 ../../mod/admin.php:1042
msgid "Toggle"
msgstr "Umschalten"
-#: ../../mod/admin.php:789 ../../mod/admin.php:996
+#: ../../mod/admin.php:845 ../../mod/admin.php:1052
msgid "Author: "
msgstr "Autor: "
-#: ../../mod/admin.php:790 ../../mod/admin.php:997
+#: ../../mod/admin.php:846 ../../mod/admin.php:1053
msgid "Maintainer: "
msgstr "Betreuer:"
-#: ../../mod/admin.php:919
+#: ../../mod/admin.php:975
msgid "No themes found."
msgstr "Keine Theme gefunden."
-#: ../../mod/admin.php:978
+#: ../../mod/admin.php:1034
msgid "Screenshot"
msgstr "Bildschirmfoto"
-#: ../../mod/admin.php:1026
+#: ../../mod/admin.php:1082
msgid "[Experimental]"
msgstr "[Experimentell]"
-#: ../../mod/admin.php:1027
+#: ../../mod/admin.php:1083
msgid "[Unsupported]"
msgstr "[Nicht unterstützt]"
-#: ../../mod/admin.php:1054
+#: ../../mod/admin.php:1110
msgid "Log settings updated."
msgstr "Protokoll-Einstellungen aktualisiert."
-#: ../../mod/admin.php:1110
+#: ../../mod/admin.php:1166
msgid "Clear"
msgstr "Leeren"
-#: ../../mod/admin.php:1116
+#: ../../mod/admin.php:1172
msgid "Debugging"
msgstr "Debugging"
-#: ../../mod/admin.php:1117
+#: ../../mod/admin.php:1173
msgid "Log file"
msgstr "Protokolldatei"
-#: ../../mod/admin.php:1117
+#: ../../mod/admin.php:1173
msgid ""
"Must be writable by web server. Relative to your Red top-level directory."
-msgstr "Muss für den Web-Server schreibbar sein. Relativ zum Red Stammverzeichnis."
+msgstr "Muss für den Web-Server schreibbar sein. Relativ zum Red-Stammverzeichnis."
-#: ../../mod/admin.php:1118
+#: ../../mod/admin.php:1174
msgid "Log level"
msgstr "Protokollstufe"
-#: ../../mod/mitem.php:13 ../../mod/menu.php:87
-msgid "Menu not found."
-msgstr "Menü nicht gefunden"
-
-#: ../../mod/mitem.php:66
-msgid "Menu element updated."
-msgstr "Menü-Element aktualisiert."
-
-#: ../../mod/mitem.php:70
-msgid "Unable to update menu element."
-msgstr "Kann Menü-Element nicht aktualisieren."
-
-#: ../../mod/mitem.php:76
-msgid "Menu element added."
-msgstr "Menü-Bestandteil hinzugefügt."
-
-#: ../../mod/mitem.php:80
-msgid "Unable to add menu element."
-msgstr "Kann Menü-Bestandteil nicht hinzufügen."
-
-#: ../../mod/mitem.php:97 ../../mod/xchan.php:25 ../../mod/menu.php:113
-msgid "Not found."
-msgstr "Nicht gefunden."
-
-#: ../../mod/mitem.php:116
-msgid "Manage Menu Elements"
-msgstr "Menü-Bestandteile verwalten"
-
-#: ../../mod/mitem.php:119
-msgid "Edit menu"
-msgstr "Menü bearbeiten"
-
-#: ../../mod/mitem.php:122
-msgid "Edit element"
-msgstr "Bestandteil bearbeiten"
-
-#: ../../mod/mitem.php:123
-msgid "Drop element"
-msgstr "Bestandteil löschen"
-
-#: ../../mod/mitem.php:124
-msgid "New element"
-msgstr "Neues Bestandteil"
-
-#: ../../mod/mitem.php:125
-msgid "Edit this menu container"
-msgstr "Diesen Menü-Container bearbeiten"
-
-#: ../../mod/mitem.php:126
-msgid "Add menu element"
-msgstr "Menüelement hinzufügen"
-
-#: ../../mod/mitem.php:127
-msgid "Delete this menu item"
-msgstr "Lösche dieses Menü-Bestandteil"
-
-#: ../../mod/mitem.php:128
-msgid "Edit this menu item"
-msgstr "Bearbeite dieses Menü-Bestandteil"
-
-#: ../../mod/mitem.php:141
-msgid "New Menu Element"
-msgstr "Neues Menü-Bestandteil"
-
-#: ../../mod/mitem.php:143 ../../mod/mitem.php:184
-msgid "Link text"
-msgstr "Link Text"
-
-#: ../../mod/mitem.php:144 ../../mod/mitem.php:185
-msgid "URL of link"
-msgstr "URL des Links"
-
-#: ../../mod/mitem.php:145 ../../mod/mitem.php:186
-msgid "Use Red magic-auth if available"
-msgstr "Verwende Red Magic-Auth wenn verfügbar"
-
-#: ../../mod/mitem.php:146 ../../mod/mitem.php:187
-msgid "Open link in new window"
-msgstr "Öffne Link in neuem Fenster"
-
-#: ../../mod/mitem.php:148 ../../mod/mitem.php:189
-msgid "Order in list"
-msgstr "Reihenfolge in der Liste"
-
-#: ../../mod/mitem.php:148 ../../mod/mitem.php:189
-msgid "Higher numbers will sink to bottom of listing"
-msgstr "Größere Nummern werden weiter unten in der Auflistung einsortiert"
-
-#: ../../mod/mitem.php:149 ../../mod/menu.php:79 ../../mod/new_channel.php:117
-msgid "Create"
-msgstr "Erstelle"
-
-#: ../../mod/mitem.php:161
-msgid "Menu item not found."
-msgstr "Menü-Bestandteil nicht gefunden."
-
-#: ../../mod/mitem.php:170
-msgid "Menu item deleted."
-msgstr "Menü-Bestandteil gelöscht."
-
-#: ../../mod/mitem.php:172
-msgid "Menu item could not be deleted."
-msgstr "Menü-Bestandteil kann nicht gelöscht werden."
-
-#: ../../mod/mitem.php:181
-msgid "Edit Menu Element"
-msgstr "Bearbeite Menü-Bestandteil"
-
-#: ../../mod/mitem.php:190 ../../mod/menu.php:107
-msgid "Modify"
-msgstr "Ändern"
-
-#: ../../mod/group.php:26
-msgid "Collection created."
-msgstr "Sammlung erstellt."
-
-#: ../../mod/group.php:32
-msgid "Could not create collection."
-msgstr "Sammlung kann nicht erstellt werden."
-
-#: ../../mod/group.php:60
-msgid "Collection name changed."
-msgstr "Name der Sammlung geändert."
-
-#: ../../mod/group.php:92
-msgid "Create a collection of channels."
-msgstr "Erstelle eine Sammlung von Kanälen."
-
-#: ../../mod/group.php:93 ../../mod/group.php:189
-msgid "Collection Name: "
-msgstr "Name der Sammlung:"
-
-#: ../../mod/group.php:95 ../../mod/group.php:192
-msgid "Members are visible to other channels"
-msgstr "Mitglieder sind sichtbar für andere Kanäle"
-
-#: ../../mod/group.php:113
-msgid "Collection removed."
-msgstr "Sammlung gelöscht."
-
-#: ../../mod/group.php:115
-msgid "Unable to remove collection."
-msgstr "Löschen der Sammlung nicht möglich."
-
-#: ../../mod/group.php:188
-msgid "Collection Editor"
-msgstr "Sammlung-Editor"
-
-#: ../../mod/group.php:202
-msgid "Members"
-msgstr "Mitglieder"
-
-#: ../../mod/group.php:204
-msgid "All Connected Channels"
-msgstr "Alle verbundene Channels"
-
-#: ../../mod/group.php:237
-msgid "Click on a channel to add or remove."
-msgstr "Wähle einen Kanal zum hinzufügen oder entfernen aus."
-
-#: ../../mod/search.php:20 ../../mod/network.php:164
-msgid "Remove term"
-msgstr "Eintrag löschen"
-
-#: ../../mod/photos.php:83
-msgid "Page owner information could not be retrieved."
-msgstr "Informationen über den Betreiber der Seite konnten nicht gefunden werden."
-
-#: ../../mod/photos.php:103
-msgid "Album not found."
-msgstr "Album nicht gefunden."
-
-#: ../../mod/photos.php:125 ../../mod/photos.php:780
-msgid "Delete Album"
-msgstr "Album löschen"
-
-#: ../../mod/photos.php:165 ../../mod/photos.php:1041
-msgid "Delete Photo"
-msgstr "Foto löschen"
-
-#: ../../mod/photos.php:510
-#, php-format
-msgid "%1$s was tagged in %2$s by %3$s"
-msgstr "%1$s wurde auf %2$s von %3$s getaggt"
-
-#: ../../mod/photos.php:510
-msgid "a photo"
-msgstr "Foto"
-
-#: ../../mod/photos.php:586
-msgid "No photos selected"
-msgstr "Keine Fotos ausgewählt"
-
-#: ../../mod/photos.php:631
-msgid "Access to this item is restricted."
-msgstr "Zugriff auf dieses Foto wurde eingeschränkt."
-
-#: ../../mod/photos.php:696
-#, php-format
-msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."
-msgstr "Du benutzt %1$.2f MBytes deines %2$.2f MBytes großen Bilder-Speichers."
-
-#: ../../mod/photos.php:699
-#, php-format
-msgid "You have used %1$.2f Mbytes of photo storage."
-msgstr "Du verwendets %1$.2f MBytes deines Foto-Speichers."
-
-#: ../../mod/photos.php:707
-msgid "Upload Photos"
-msgstr "Fotos hochladen"
-
-#: ../../mod/photos.php:711 ../../mod/photos.php:775
-msgid "New album name: "
-msgstr "Name des neuen Albums:"
-
-#: ../../mod/photos.php:712
-msgid "or existing album name: "
-msgstr "oder bestehenden Album Namen:"
-
-#: ../../mod/photos.php:713
-msgid "Do not show a status post for this upload"
-msgstr "Keine Statusnachricht für diesen Upload senden"
-
-#: ../../mod/photos.php:715 ../../mod/photos.php:1036
-msgid "Permissions"
-msgstr "Berechtigungen"
-
-#: ../../mod/photos.php:764 ../../mod/photos.php:786 ../../mod/photos.php:1212
-#: ../../mod/photos.php:1227
-msgid "Contact Photos"
-msgstr "Kontakt Bilder"
-
-#: ../../mod/photos.php:790
-msgid "Edit Album"
-msgstr "Album bearbeiten"
-
-#: ../../mod/photos.php:796
-msgid "Show Newest First"
-msgstr "Zeige neueste zuerst"
-
-#: ../../mod/photos.php:798
-msgid "Show Oldest First"
-msgstr "Zeige älteste zuerst"
-
-#: ../../mod/photos.php:842 ../../mod/photos.php:1259
-msgid "View Photo"
-msgstr "Foto ansehen"
-
-#: ../../mod/photos.php:886
-msgid "Permission denied. Access to this item may be restricted."
-msgstr "Berechtigung verweigert. Der Zugriff ist wahrscheinlich eingeschränkt worden."
-
-#: ../../mod/photos.php:888
-msgid "Photo not available"
-msgstr "Foto nicht verfügbar"
-
-#: ../../mod/photos.php:946
-msgid "Use as profile photo"
-msgstr "Als Profilfoto verwenden"
-
-#: ../../mod/photos.php:970
-msgid "View Full Size"
-msgstr "In voller Größe anzeigen"
-
-#: ../../mod/photos.php:1024
-msgid "Edit photo"
-msgstr "Foto bearbeiten"
-
-#: ../../mod/photos.php:1026
-msgid "Rotate CW (right)"
-msgstr "Drehen US (rechts)"
-
-#: ../../mod/photos.php:1027
-msgid "Rotate CCW (left)"
-msgstr "Drehen EUS (links)"
-
-#: ../../mod/photos.php:1029
-msgid "New album name"
-msgstr "Name des neuen Albums:"
-
-#: ../../mod/photos.php:1032
-msgid "Caption"
-msgstr "Bildunterschrift"
-
-#: ../../mod/photos.php:1034
-msgid "Add a Tag"
-msgstr "Schlagwort hinzufügen"
-
-#: ../../mod/photos.php:1038
-msgid ""
-"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
-msgstr "Beispiel: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
-
-#: ../../mod/photos.php:1265
-msgid "View Album"
-msgstr "Album ansehen"
-
-#: ../../mod/photos.php:1274
-msgid "Recent Photos"
-msgstr "Neueste Fotos"
-
-#: ../../mod/ping.php:160
-msgid "sent you a private message"
-msgstr "eine private Nachricht schicken"
-
-#: ../../mod/ping.php:218
-msgid "added your channel"
-msgstr "hat deinen Kanal hinzugefügt"
-
-#: ../../mod/ping.php:230 ../../boot.php:1858 ../../boot.php:1938
-msgid "g A l F d"
-msgstr "l, d. F G \\\\U\\\\h\\\\r"
-
-#: ../../mod/ping.php:252 ../../boot.php:1904 ../../boot.php:1979
-msgid "[today]"
-msgstr "[Heute]"
-
-#: ../../mod/ping.php:262
-msgid "posted an event"
-msgstr "hat eine Veranstaltung veröffentlicht"
-
#: ../../mod/filer.php:35
msgid "- select -"
-msgstr "-auswählen-"
-
-#: ../../mod/menu.php:17
-msgid "Menu updated."
-msgstr "Menü aktualisiert."
-
-#: ../../mod/menu.php:21
-msgid "Unable to update menu."
-msgstr "Kann Menü nicht aktualisieren."
-
-#: ../../mod/menu.php:26
-msgid "Menu created."
-msgstr "Menü erstellt."
-
-#: ../../mod/menu.php:30
-msgid "Unable to create menu."
-msgstr "Kann Menü nicht erstellen."
-
-#: ../../mod/menu.php:53
-msgid "Manage Menus"
-msgstr "Menüs verwalten"
-
-#: ../../mod/menu.php:56
-msgid "Drop"
-msgstr "Löschen"
-
-#: ../../mod/menu.php:57 ../../mod/network.php:321
-#: ../../mod/connections.php:552
-msgid "New"
-msgstr "Neu"
-
-#: ../../mod/menu.php:58
-msgid "Create a new menu"
-msgstr "Neues Menü erstellen"
-
-#: ../../mod/menu.php:59
-msgid "Delete this menu"
-msgstr "Lösche dieses Menü"
-
-#: ../../mod/menu.php:60 ../../mod/menu.php:104
-msgid "Edit menu contents"
-msgstr "Bearbeite Menü Inhalte"
-
-#: ../../mod/menu.php:61
-msgid "Edit this menu"
-msgstr "Dieses Menü bearbeiten"
-
-#: ../../mod/menu.php:76
-msgid "New Menu"
-msgstr "Neues Menü"
-
-#: ../../mod/menu.php:77 ../../mod/menu.php:105
-msgid "Menu name"
-msgstr "Menü Name"
+msgstr "– auswählen –"
-#: ../../mod/menu.php:77 ../../mod/menu.php:105
-msgid "Must be unique, only seen by you"
-msgstr "Muss unverwechselbar sein, nur für dich sichtbar"
-
-#: ../../mod/menu.php:78 ../../mod/menu.php:106
-msgid "Menu title"
-msgstr "Menü Titel"
-
-#: ../../mod/menu.php:78 ../../mod/menu.php:106
-msgid "Menu title as seen by others"
-msgstr "Menü Titel wie er von anderen gesehen wird"
-
-#: ../../mod/menu.php:93
-msgid "Menu deleted."
-msgstr "Menü gelöscht."
-
-#: ../../mod/menu.php:95
-msgid "Menu could not be deleted."
-msgstr "Menü konnte nicht gelöscht werden."
-
-#: ../../mod/menu.php:101
-msgid "Edit Menu"
-msgstr "Menü bearbeiten"
-
-#: ../../mod/menu.php:103
-msgid "Add or remove entries to this menu"
-msgstr "Einträge zu diesem Menü hinzufügen oder entfernen"
-
-#: ../../mod/home.php:76
+#: ../../mod/home.php:89
#, php-format
msgid "Welcome to %s"
msgstr "Willkommen auf %s"
-#: ../../mod/message.php:19
-msgid "Check Mail"
-msgstr "E-Mails abrufen"
-
-#: ../../mod/message.php:56
-msgid "Unable to lookup recipient."
-msgstr "Konnte den Empfänger nicht finden."
-
-#: ../../mod/message.php:64
-msgid "Unable to communicate with requested channel."
-msgstr "Die Kommunikation mit dem ausgewählten Kanal ist fehlgeschlagen."
-
-#: ../../mod/message.php:71
-msgid "Cannot verify requested channel."
-msgstr "Verifizierung des angeforderten Kanals fehlgeschlagen."
-
-#: ../../mod/message.php:97
-msgid "Selected channel has private message restrictions. Send failed."
-msgstr "Der ausgewählte Kanal hat Einschränkungen bzgl. privater Nachrichten. Senden fehlgeschlagen."
-
-#: ../../mod/message.php:223 ../../mod/notifications.php:101
-msgid "Messages"
-msgstr "Nachrichten"
-
-#: ../../mod/message.php:234
-msgid "Message deleted."
-msgstr "Nachricht gelöscht."
-
-#: ../../mod/message.php:241
-msgid "Conversation removed."
-msgstr "Unterhaltung gelöscht."
-
-#: ../../mod/message.php:258
-msgid "Message recalled."
-msgstr "Nachricht widerrufen."
-
-#: ../../mod/message.php:316
-msgid "Send Private Message"
-msgstr "Private Nachricht senden"
-
-#: ../../mod/message.php:317 ../../mod/message.php:503
-msgid "To:"
-msgstr "An:"
-
-#: ../../mod/message.php:322 ../../mod/message.php:505
-msgid "Subject:"
-msgstr "Betreff:"
-
-#: ../../mod/message.php:359
-msgid "No messages."
-msgstr "Keine Nachrichten."
-
-#: ../../mod/message.php:375 ../../mod/message.php:472
-msgid "Delete message"
-msgstr "Nachricht löschen"
-
-#: ../../mod/message.php:377
-msgid "D, d M Y - g:i A"
-msgstr "D, d. M Y - g:i A"
-
-#: ../../mod/message.php:396
-msgid "Message not found."
-msgstr "Nachricht nicht gefunden."
-
-#: ../../mod/message.php:473
-msgid "Recall message"
-msgstr "Widerrufe die Nachricht"
-
-#: ../../mod/message.php:475
-msgid "Message has been recalled."
-msgstr "Die Nachricht wurde widerrufen."
-
-#: ../../mod/message.php:492
-msgid "Private Conversation"
-msgstr "Private Unterhaltung"
-
-#: ../../mod/message.php:496
-msgid "Delete conversation"
-msgstr "Unterhaltung löschen"
-
-#: ../../mod/message.php:498
-msgid ""
-"No secure communications available. You <strong>may</strong> be able to "
-"respond from the sender's profile page."
-msgstr "Keine sichere Kommunikation verfügbar. <strong>Eventuell</strong> kannst du von der Profilseite des Absenders antworten."
-
-#: ../../mod/message.php:502
-msgid "Send Reply"
-msgstr "Antwort senden"
-
-#: ../../mod/hcard.php:10
-msgid "No profile"
-msgstr "Kein Profil"
-
-#: ../../mod/layouts.php:52
-msgid "Layout Help"
-msgstr "Layout Hilfe"
-
-#: ../../mod/layouts.php:55
-msgid "Help with this feature"
-msgstr "Hilfe zu diesem Feature"
-
-#: ../../mod/layouts.php:74
-msgid "Layout Name"
-msgstr "Layout Name"
-
-#: ../../mod/help.php:41
-msgid "Help:"
-msgstr "Hilfe:"
-
-#: ../../mod/help.php:53 ../../index.php:226
-msgid "Not Found"
-msgstr "Nicht gefunden"
-
-#: ../../mod/rmagic.php:56
-msgid "Remote Authentication"
-msgstr "Entfernte Authentifizierung"
-
-#: ../../mod/rmagic.php:57
-msgid "Enter your channel address (e.g. channel@example.com)"
-msgstr "Deine Kanal-Adresse (z.B. channel@example.com)"
-
-#: ../../mod/rmagic.php:58
-msgid "Authenticate"
-msgstr "Authentifizieren"
-
-#: ../../mod/network.php:302
-msgid "Commented Order"
-msgstr "Neueste Kommentare"
-
-#: ../../mod/network.php:305
-msgid "Sort by Comment Date"
-msgstr "Nach Kommentardatum sortiert"
-
-#: ../../mod/network.php:308
-msgid "Posted Order"
-msgstr "Neueste Beiträge"
-
-#: ../../mod/network.php:311
-msgid "Sort by Post Date"
-msgstr "Nach Beitragsdatum sortiert"
-
-#: ../../mod/network.php:315 ../../mod/notifications.php:86
-msgid "Personal"
-msgstr "Persönlich"
-
-#: ../../mod/network.php:318
-msgid "Posts that mention or involve you"
-msgstr "Beiträge, in denen es um dich geht"
-
-#: ../../mod/network.php:324
-msgid "Activity Stream - by date"
-msgstr "Activity Stream - nach Datum sortiert"
-
-#: ../../mod/network.php:331
-msgid "Starred"
-msgstr "Markiert"
-
-#: ../../mod/network.php:334
-msgid "Favourite Posts"
-msgstr "Beiträge mit Sternchen"
-
-#: ../../mod/network.php:341
-msgid "Spam"
-msgstr "Spam"
+#: ../../mod/editpost.php:20 ../../mod/editlayout.php:36
+#: ../../mod/editwebpage.php:32 ../../mod/editblock.php:36
+msgid "Item not found"
+msgstr "Element nicht gefunden"
-#: ../../mod/network.php:344
-msgid "Posts flagged as SPAM"
-msgstr "Nachrichten die als SPAM markiert wurden"
+#: ../../mod/editpost.php:31
+msgid "Item is not editable"
+msgstr "Element kann nicht bearbeitet werden."
-#: ../../mod/network.php:384
-msgid "Refresh"
-msgstr "Aktualisieren"
+#: ../../mod/editpost.php:53
+msgid "Delete item?"
+msgstr "Eintrag löschen?"
-#: ../../mod/network.php:385 ../../mod/connections.php:404
-msgid "Me"
-msgstr "Ich"
+#: ../../mod/editpost.php:116 ../../mod/editlayout.php:110
+#: ../../mod/editwebpage.php:148 ../../mod/editblock.php:124
+msgid "Insert YouTube video"
+msgstr "YouTube-Video einfügen"
-#: ../../mod/network.php:386 ../../mod/connections.php:406
-msgid "Best Friends"
-msgstr "Beste Freunde"
+#: ../../mod/editpost.php:117 ../../mod/editlayout.php:111
+#: ../../mod/editwebpage.php:149 ../../mod/editblock.php:125
+msgid "Insert Vorbis [.ogg] video"
+msgstr "Vorbis [.ogg]-Video einfügen"
-#: ../../mod/network.php:388
-msgid "Co-workers"
-msgstr "Kollegen"
+#: ../../mod/editpost.php:118 ../../mod/editlayout.php:112
+#: ../../mod/editwebpage.php:150 ../../mod/editblock.php:126
+msgid "Insert Vorbis [.ogg] audio"
+msgstr "Vorbis [.ogg]-Audio einfügen"
-#: ../../mod/network.php:389 ../../mod/connections.php:408
-msgid "Former Friends"
-msgstr "ehem. Freunde"
+#: ../../mod/directory.php:144 ../../mod/profiles.php:561
+#: ../../mod/dirprofile.php:98
+msgid "Age: "
+msgstr "Alter:"
-#: ../../mod/network.php:390 ../../mod/connections.php:409
-msgid "Acquaintances"
-msgstr "Bekanntschaften"
+#: ../../mod/directory.php:147 ../../mod/dirprofile.php:101
+msgid "Gender: "
+msgstr "Geschlecht:"
-#: ../../mod/network.php:391
-msgid "Everybody"
-msgstr "Jeder"
+#: ../../mod/directory.php:208
+msgid "Finding:"
+msgstr "Ergebnisse:"
-#: ../../mod/network.php:408
-msgid "Search Results For:"
-msgstr "Suchergebnisse für:"
+#: ../../mod/directory.php:216
+msgid "next page"
+msgstr "nächste Seite"
-#: ../../mod/network.php:453
-msgid "No such group"
-msgstr "Gruppe existiert nicht"
+#: ../../mod/directory.php:216
+msgid "previous page"
+msgstr "vorige Seite"
-#: ../../mod/network.php:484
-msgid "Connection: "
-msgstr "Verbindung:"
+#: ../../mod/directory.php:223
+msgid "No entries (some entries may be hidden)."
+msgstr "Keine Einträge gefunden (einige könnten versteckt sein)."
-#: ../../mod/network.php:487
-msgid "Invalid connection."
-msgstr "Ungültige Verbindung."
+#: ../../mod/connedit.php:49 ../../mod/connections.php:37
+msgid "Could not access contact record."
+msgstr "Konnte nicht auf den Kontakteintrag zugreifen."
-#: ../../mod/intro.php:17 ../../mod/intro.php:100
-#: ../../mod/connections.php:355 ../../mod/connections.php:491
-#: ../../mod/notifications.php:51 ../../mod/notifications.php:162
-#: ../../mod/notifications.php:208
-msgid "Ignore"
-msgstr "Ignorieren"
+#: ../../mod/connedit.php:63 ../../mod/connections.php:51
+msgid "Could not locate selected profile."
+msgstr "Gewähltes Profil nicht gefunden."
-#: ../../mod/intro.php:29 ../../mod/connections.php:122
+#: ../../mod/connedit.php:107 ../../mod/connections.php:94
msgid "Connection updated."
msgstr "Verbindung aktualisiert."
-#: ../../mod/intro.php:31
-msgid "Connection update failed."
-msgstr "Aktualisierung der Verbindung fehlgeschlagen."
-
-#: ../../mod/intro.php:56
-msgid "Introductions and Connection Requests"
-msgstr "Vorstellungen und Kontaktanfragen"
-
-#: ../../mod/intro.php:67
-msgid "No pending introductions."
-msgstr "Keine wartenden Vorstellungen."
-
-#: ../../mod/intro.php:72
-msgid "System error. Please try again later."
-msgstr "Systemfehler. Bitte später erneut versuchen."
-
-#: ../../mod/intro.php:95 ../../mod/connections.php:496
-#: ../../mod/notifications.php:155 ../../mod/notifications.php:202
-msgid "Hide this contact from others"
-msgstr "Diese Verbindung vor den anderen verbergen."
-
-#: ../../mod/intro.php:96 ../../mod/notifications.php:156
-#: ../../mod/notifications.php:203
-msgid "Post a new friend activity"
-msgstr "Neue-Kontakt Nachricht senden"
-
-#: ../../mod/intro.php:96 ../../mod/notifications.php:156
-#: ../../mod/notifications.php:203
-msgid "if applicable"
-msgstr "falls anwendbar"
-
-#: ../../mod/intro.php:101 ../../mod/notifications.php:35
-#: ../../mod/notifications.php:163 ../../mod/notifications.php:209
-msgid "Discard"
-msgstr "Verwerfen"
-
-#: ../../mod/connections.php:67
-msgid "Could not access contact record."
-msgstr "Konnte auf den Kontakteintrag nicht zugreifen."
-
-#: ../../mod/connections.php:81
-msgid "Could not locate selected profile."
-msgstr "Konnte das gewählte Profil nicht finden."
-
-#: ../../mod/connections.php:124
+#: ../../mod/connedit.php:109 ../../mod/connections.php:96
msgid "Failed to update connection record."
msgstr "Konnte den Verbindungseintrag nicht aktualisieren."
-#: ../../mod/connections.php:219
+#: ../../mod/connedit.php:204
msgid "Could not access address book record."
-msgstr "Konnte nicht auf den Eintrag im Adressbuch zugreifen."
+msgstr "Konnte nicht auf den Adressbuch-Eintrag zugreifen."
-#: ../../mod/connections.php:233
+#: ../../mod/connedit.php:218
msgid "Refresh failed - channel is currently unavailable."
msgstr "Aktualisierung fehlgeschlagen – der Kanal ist im Moment nicht erreichbar."
-#: ../../mod/connections.php:240
+#: ../../mod/connedit.php:225
msgid "Channel has been unblocked"
msgstr "Kanal nicht mehr blockiert"
-#: ../../mod/connections.php:241
+#: ../../mod/connedit.php:226
msgid "Channel has been blocked"
msgstr "Kanal blockiert"
-#: ../../mod/connections.php:245 ../../mod/connections.php:257
-#: ../../mod/connections.php:269 ../../mod/connections.php:281
-#: ../../mod/connections.php:296
+#: ../../mod/connedit.php:230 ../../mod/connedit.php:242
+#: ../../mod/connedit.php:254 ../../mod/connedit.php:266
+#: ../../mod/connedit.php:281
msgid "Unable to set address book parameters."
-msgstr "Konnte die Adressbuch Parameter nicht setzen."
+msgstr "Konnte die Adressbuch-Parameter nicht setzen."
-#: ../../mod/connections.php:252
+#: ../../mod/connedit.php:237
msgid "Channel has been unignored"
msgstr "Kanal wird nicht mehr ignoriert"
-#: ../../mod/connections.php:253
+#: ../../mod/connedit.php:238
msgid "Channel has been ignored"
msgstr "Kanal wird ignoriert"
-#: ../../mod/connections.php:264
+#: ../../mod/connedit.php:249
msgid "Channel has been unarchived"
msgstr "Kanal wurde aus dem Archiv zurück geholt"
-#: ../../mod/connections.php:265
+#: ../../mod/connedit.php:250
msgid "Channel has been archived"
msgstr "Kanal wurde archiviert"
-#: ../../mod/connections.php:276
+#: ../../mod/connedit.php:261
msgid "Channel has been unhidden"
msgstr "Kanal wird nicht mehr versteckt"
-#: ../../mod/connections.php:277
+#: ../../mod/connedit.php:262
msgid "Channel has been hidden"
msgstr "Kanal wurde versteckt"
-#: ../../mod/connections.php:291
+#: ../../mod/connedit.php:276
msgid "Channel has been approved"
msgstr "Kanal wurde zugelassen"
-#: ../../mod/connections.php:292
+#: ../../mod/connedit.php:277
msgid "Channel has been unapproved"
msgstr "Zulassung des Kanals entfernt"
-#: ../../mod/connections.php:310
+#: ../../mod/connedit.php:295
msgid "Contact has been removed."
msgstr "Kontakt wurde entfernt."
-#: ../../mod/connections.php:330
+#: ../../mod/connedit.php:315
#, php-format
msgid "View %s's profile"
-msgstr "%s's Profil ansehen"
+msgstr "%ss Profil ansehen"
-#: ../../mod/connections.php:334
+#: ../../mod/connedit.php:319
msgid "Refresh Permissions"
-msgstr "Zugriffsrechte auffrischen"
+msgstr "Zugriffsrechte neu laden"
-#: ../../mod/connections.php:337
+#: ../../mod/connedit.php:322
msgid "Fetch updated permissions"
msgstr "Aktualisierte Zugriffsrechte abfragen"
-#: ../../mod/connections.php:341
+#: ../../mod/connedit.php:326
msgid "Recent Activity"
msgstr "Kürzliche Aktivitäten"
-#: ../../mod/connections.php:344
+#: ../../mod/connedit.php:329
msgid "View recent posts and comments"
msgstr "Betrachte die neuesten Beiträge und Kommentare"
-#: ../../mod/connections.php:351
+#: ../../mod/connedit.php:336
msgid "Block or Unblock this connection"
-msgstr "Verbindung blockieren oder frei geben"
+msgstr "Verbindung blockieren oder freigeben"
-#: ../../mod/connections.php:355 ../../mod/connections.php:491
+#: ../../mod/connedit.php:340 ../../mod/connedit.php:476
msgid "Unignore"
msgstr "Nicht ignorieren"
-#: ../../mod/connections.php:358
+#: ../../mod/connedit.php:340 ../../mod/connedit.php:476
+#: ../../mod/notifications.php:51
+msgid "Ignore"
+msgstr "Ignorieren"
+
+#: ../../mod/connedit.php:343
msgid "Ignore or Unignore this connection"
msgstr "Verbindung ignorieren oder wieder beachten"
-#: ../../mod/connections.php:361
+#: ../../mod/connedit.php:346
msgid "Unarchive"
msgstr "Aus Archiv zurückholen"
-#: ../../mod/connections.php:361
+#: ../../mod/connedit.php:346
msgid "Archive"
msgstr "Archivieren"
-#: ../../mod/connections.php:364
+#: ../../mod/connedit.php:349
msgid "Archive or Unarchive this connection"
-msgstr "Archiviere diese Verbindung oder hole sie aus dem Archiv zurück"
+msgstr "Verbindung archivieren oder aus dem Archiv zurückholen"
-#: ../../mod/connections.php:367
+#: ../../mod/connedit.php:352
msgid "Unhide"
-msgstr "aufdecken"
+msgstr "Wieder sichtbar machen"
-#: ../../mod/connections.php:367
+#: ../../mod/connedit.php:352
msgid "Hide"
-msgstr "Verbergen"
+msgstr "Verstecken"
-#: ../../mod/connections.php:370
+#: ../../mod/connedit.php:355
msgid "Hide or Unhide this connection"
-msgstr "Diese Verbindung verstecken oder aufdecken"
+msgstr "Diese Verbindung verstecken oder wieder sichtbar machen"
-#: ../../mod/connections.php:377
+#: ../../mod/connedit.php:362
msgid "Delete this connection"
msgstr "Verbindung löschen"
-#: ../../mod/connections.php:410
-msgid "Unknown"
-msgstr "Unbekannt"
-
-#: ../../mod/connections.php:420 ../../mod/connections.php:449
+#: ../../mod/connedit.php:405 ../../mod/connedit.php:434
msgid "Approve this connection"
msgstr "Verbindung genehmigen"
-#: ../../mod/connections.php:420
+#: ../../mod/connedit.php:405
msgid "Accept connection to allow communication"
-msgstr "Aktzeptiere die Verbindung um Kommunikation zu ermöglichen"
+msgstr "Akzeptiere die Verbindung, um Kommunikation zu ermöglichen"
-#: ../../mod/connections.php:436
+#: ../../mod/connedit.php:421
msgid "Automatic Permissions Settings"
msgstr "Automatische Berechtigungs-Einstellungen"
-#: ../../mod/connections.php:436
+#: ../../mod/connedit.php:421
#, php-format
msgid "Connections: settings for %s"
msgstr "Verbindungseinstellungen für %s"
-#: ../../mod/connections.php:440
+#: ../../mod/connedit.php:425
msgid ""
"When receiving a channel introduction, any permissions provided here will be"
" applied to the new connection automatically and the introduction approved. "
"Leave this page if you do not wish to use this feature."
-msgstr "Wenn eine Kanal-Vorstellung empfangen wird, werden die hier getroffenen Einstellungen automatisch angewandt und der Anfrage wird stattgegeben. Verlasse diese Seite, wenn du dieses Feature nicht verwanden möchtest."
+msgstr "Wenn eine Verbindungsanfrage empfangen wird, werden die hier getroffenen Einstellungen automatisch angewandt, und die Anfrage wird genehmigt. Verlasse diese Seite, wenn Du diese Funktion nicht verwenden möchtest."
-#: ../../mod/connections.php:442
+#: ../../mod/connedit.php:427
msgid "Slide to adjust your degree of friendship"
-msgstr "Schieben um den Grad der Freundschaft zu wählen"
+msgstr "Verschieben, um den Grad der Freundschaft zu einzustellen"
-#: ../../mod/connections.php:448
+#: ../../mod/connedit.php:433
msgid "inherited"
-msgstr "Geerbt"
+msgstr "geerbt"
-#: ../../mod/connections.php:450
+#: ../../mod/connedit.php:435
msgid "Connection has no individual permissions!"
-msgstr "Diese Verbindung hat keine individuellen Zugriffseinstellungen."
+msgstr "Diese Verbindung hat keine individuellen Zugriffsrechte!"
-#: ../../mod/connections.php:451
+#: ../../mod/connedit.php:436
msgid ""
"This may be appropriate based on your <a href=\"settings\">privacy "
"settings</a>, though you may wish to review the \"Advanced Permissions\"."
-msgstr "Abhängig von deinen <a href=\"settings\">Privatsphären Einstellungen</a> könnte dies angebracht sein, eventuell solltest du aber die \"Erweiterte Zugriffsrechte\" überprüfen."
+msgstr "Abhängig von Deinen <a href=\"settings\">Privatsphäre-Einstellungen</a> könnte das passen, eventuell solltest Du aber die „Zugriffsrechte für Fortgeschrittene“ überprüfen."
-#: ../../mod/connections.php:453
+#: ../../mod/connedit.php:438
msgid "Profile Visibility"
msgstr "Sichtbarkeit des Profils"
-#: ../../mod/connections.php:454
+#: ../../mod/connedit.php:439
#, php-format
msgid ""
"Please choose the profile you would like to display to %s when viewing your "
"profile securely."
-msgstr "Bitte wähle ein Profil, das wir %s zeigen sollen, wenn deine Profilseite über eine verifizierte Verbindung aufgerufen wird."
+msgstr "Bitte wähle ein Profil, das wir %s zeigen sollen, wenn Deine Profilseite über eine verifizierte Verbindung aufgerufen wird."
-#: ../../mod/connections.php:455
+#: ../../mod/connedit.php:440
msgid "Contact Information / Notes"
msgstr "Kontaktinformationen / Notizen"
-#: ../../mod/connections.php:456
+#: ../../mod/connedit.php:441
msgid "Edit contact notes"
-msgstr "Kontaktnotizen editieren"
+msgstr "Kontaktnotizen bearbeiten"
-#: ../../mod/connections.php:458
+#: ../../mod/connedit.php:443
msgid "Their Settings"
msgstr "Deren Einstellungen"
-#: ../../mod/connections.php:459
+#: ../../mod/connedit.php:444
msgid "My Settings"
msgstr "Meine Einstellungen"
-#: ../../mod/connections.php:461
+#: ../../mod/connedit.php:446
msgid "Forum Members"
msgstr "Forum Mitglieder"
-#: ../../mod/connections.php:462
+#: ../../mod/connedit.php:447
msgid "Soapbox"
msgstr "Marktschreier"
-#: ../../mod/connections.php:463
-msgid "Full Sharing"
-msgstr "Volles Teilen"
+#: ../../mod/connedit.php:448
+msgid "Full Sharing (typical social network permissions)"
+msgstr "Vollumfängliches Teilen (übliche Berechtigungen in sozialen Netzwerken)"
-#: ../../mod/connections.php:464
-msgid "Cautious Sharing"
+#: ../../mod/connedit.php:449
+msgid "Cautious Sharing "
msgstr "Vorsichtiges Teilen"
-#: ../../mod/connections.php:465
+#: ../../mod/connedit.php:450
msgid "Follow Only"
-msgstr "Nur Folgen"
+msgstr "Nur folgen"
-#: ../../mod/connections.php:466
+#: ../../mod/connedit.php:451
msgid "Individual Permissions"
-msgstr "Individuelle Zugriffseinstellungen"
+msgstr "Individuelle Zugriffsrechte"
-#: ../../mod/connections.php:467
+#: ../../mod/connedit.php:452
msgid ""
"Some permissions may be inherited from your channel <a "
-"href=\"settings\">privacy settings</a>, which have higher priority. Changing"
-" those inherited settings on this page will have no effect."
-msgstr "Einige Genehmigungen können von deinen <a href=\"settings\">Sicherheits- und Datenschutz-Einstellungen</a> geerbt sein (siehe Kennzeichnung), da diese eine höhere Priorität haben. Wenn du solche Genehmigungen hier änderst, hat das keine Auswirkungen."
+"href=\"settings\">privacy settings</a>, which have higher priority than "
+"individual settings. Changing those inherited settings on this page will "
+"have no effect."
+msgstr "Einige Berechtigungen werden von den <a href=\"settings\">Sicherheits- und Privatsphäre-Einstellungen</a> dieses Kanals geerbt, die eine höhere Priorität haben als die Einstellungen bei einer Verbindung. Werden geerbte Einstellungen hier geändert, hat das keine Auswirkungen."
-#: ../../mod/connections.php:468
+#: ../../mod/connedit.php:453
msgid "Advanced Permissions"
-msgstr "Erweiterte Zugriffsrechte"
+msgstr "Zugriffsrechte für Fortgeschrittene"
-#: ../../mod/connections.php:469
-msgid "Quick Links"
-msgstr "Quick Links"
+#: ../../mod/connedit.php:454
+msgid "Simple Permissions (select one and submit)"
+msgstr "Einfache Berechtigungs-Einstellungen (wähle eine aus und klicke auf Senden)"
-#: ../../mod/connections.php:473
+#: ../../mod/connedit.php:458
#, php-format
msgid "Visit %s's profile - %s"
-msgstr "%s's Profil besuchen - %s"
+msgstr "%ss Profil besuchen - %s"
-#: ../../mod/connections.php:474
+#: ../../mod/connedit.php:459
msgid "Block/Unblock contact"
-msgstr "Geblockt Status ein- / ausschalten"
+msgstr "Kontakt blockieren/freigeben"
-#: ../../mod/connections.php:475
+#: ../../mod/connedit.php:460
msgid "Ignore contact"
msgstr "Kontakt ignorieren"
-#: ../../mod/connections.php:476
+#: ../../mod/connedit.php:461
msgid "Repair URL settings"
-msgstr "URL Einstellungen reparieren"
+msgstr "URL-Einstellungen reparieren"
-#: ../../mod/connections.php:477
+#: ../../mod/connedit.php:462
msgid "View conversations"
msgstr "Unterhaltungen anzeigen"
-#: ../../mod/connections.php:479
+#: ../../mod/connedit.php:464
msgid "Delete contact"
msgstr "Kontakt löschen"
-#: ../../mod/connections.php:482
+#: ../../mod/connedit.php:467
msgid "Last update:"
msgstr "Letzte Aktualisierung:"
-#: ../../mod/connections.php:484
+#: ../../mod/connedit.php:469
msgid "Update public posts"
msgstr "Öffentliche Beiträge aktualisieren"
-#: ../../mod/connections.php:486
+#: ../../mod/connedit.php:471
msgid "Update now"
msgstr "Jetzt aktualisieren"
-#: ../../mod/connections.php:492
+#: ../../mod/connedit.php:477
msgid "Currently blocked"
msgstr "Derzeit blockiert"
-#: ../../mod/connections.php:493
+#: ../../mod/connedit.php:478
msgid "Currently ignored"
msgstr "Derzeit ignoriert"
-#: ../../mod/connections.php:494
+#: ../../mod/connedit.php:479
msgid "Currently archived"
msgstr "Derzeit archiviert"
-#: ../../mod/connections.php:495
+#: ../../mod/connedit.php:480
msgid "Currently pending"
msgstr "Derzeit anstehend"
-#: ../../mod/connections.php:496
+#: ../../mod/connedit.php:481
+msgid "Hide this contact from others"
+msgstr "Diese Verbindung vor den anderen verbergen."
+
+#: ../../mod/connedit.php:481
msgid ""
"Replies/likes to your public posts <strong>may</strong> still be visible"
msgstr "Antworten/Likes auf deine öffentlichen Beiträge <strong>können</strong> immer noch sichtbar sein"
-#: ../../mod/connections.php:532 ../../mod/connections.php:604
-msgid "Blocked"
-msgstr "Blockiert"
-
-#: ../../mod/connections.php:537 ../../mod/connections.php:611
-msgid "Ignored"
-msgstr "Ignoriert"
-
-#: ../../mod/connections.php:542 ../../mod/connections.php:625
-msgid "Hidden"
-msgstr "Versteckt"
+#: ../../mod/layouts.php:52
+msgid "Layout Help"
+msgstr "Layout-Hilfe"
-#: ../../mod/connections.php:547 ../../mod/connections.php:618
-msgid "Archived"
-msgstr "Archiviert"
+#: ../../mod/layouts.php:55
+msgid "Help with this feature"
+msgstr "Hilfe zu dieser Funktion"
-#: ../../mod/connections.php:558
-msgid "All"
-msgstr "Alle"
+#: ../../mod/layouts.php:74
+msgid "Layout Name"
+msgstr "Layout-Name"
-#: ../../mod/connections.php:579
-msgid "Suggestions"
-msgstr "Vorschläge"
+#: ../../mod/help.php:43 ../../mod/help.php:49 ../../mod/help.php:55
+msgid "Help:"
+msgstr "Hilfe:"
-#: ../../mod/connections.php:582
-msgid "Suggest new connections"
-msgstr "Neue Verbindungen vorschlagen"
+#: ../../mod/help.php:68 ../../index.php:223
+msgid "Not Found"
+msgstr "Nicht gefunden"
-#: ../../mod/connections.php:588
-msgid "Show pending (new) connections"
-msgstr "Zeige schwebende (neue) Verbindungen"
+#: ../../mod/help.php:71 ../../mod/page.php:83 ../../mod/display.php:100
+#: ../../index.php:226
+msgid "Page not found."
+msgstr "Seite nicht gefunden."
-#: ../../mod/connections.php:591
-msgid "All Connections"
-msgstr "Alle Verbindungen"
+#: ../../mod/rmagic.php:38
+msgid ""
+"We encountered a problem while logging in with the OpenID you provided. "
+"Please check the correct spelling of the ID."
+msgstr "Wir haben ein Problem mit der OpenID festgestellt, mit der du dich anmelden wolltest. Bitte überprüfe die Schreibweise der ID noch einmal."
-#: ../../mod/connections.php:594
-msgid "Show all connections"
-msgstr "Zeige alle Verbindungen"
+#: ../../mod/rmagic.php:38
+msgid "The error message was:"
+msgstr "Die Fehlermeldung lautet:"
-#: ../../mod/connections.php:597
-msgid "Unblocked"
-msgstr "Freigegeben"
+#: ../../mod/rmagic.php:42
+msgid "Authentication failed."
+msgstr "Authentifizierung fehlgeschlagen."
-#: ../../mod/connections.php:600
-msgid "Only show unblocked connections"
-msgstr "Zeige nur freigegebene Verbindungen"
+#: ../../mod/rmagic.php:78
+msgid "Remote Authentication"
+msgstr "Entfernte Authentifizierung"
-#: ../../mod/connections.php:607
-msgid "Only show blocked connections"
-msgstr "Zeige nur blockierte Verbindungen"
+#: ../../mod/rmagic.php:79
+msgid "Enter your channel address (e.g. channel@example.com)"
+msgstr "Deine Kanal-Adresse (z. B. channel@example.com)"
-#: ../../mod/connections.php:614
-msgid "Only show ignored connections"
-msgstr "Zeige nur ignorierte Verbindungen"
+#: ../../mod/rmagic.php:80
+msgid "Authenticate"
+msgstr "Authentifizieren"
-#: ../../mod/connections.php:621
-msgid "Only show archived connections"
-msgstr "Zeige nur archivierte Verbindungen"
+#: ../../mod/page.php:35
+msgid "Invalid item."
+msgstr "Ungültiges Element."
-#: ../../mod/connections.php:628
-msgid "Only show hidden connections"
-msgstr "Zeige nur versteckte Verbindungen"
+#: ../../mod/network.php:79
+msgid "No such group"
+msgstr "Gruppe existiert nicht"
-#: ../../mod/connections.php:670
-#, php-format
-msgid "%1$s [%2$s]"
-msgstr "%1$s [%2$s]"
+#: ../../mod/network.php:118
+msgid "Search Results For:"
+msgstr "Suchergebnisse für:"
-#: ../../mod/connections.php:671 ../../mod/nogroup.php:41
-msgid "Edit contact"
-msgstr "Kontakt bearbeiten"
+#: ../../mod/network.php:172
+msgid "Collection is empty"
+msgstr "Sammlung ist leer"
-#: ../../mod/connections.php:695
-msgid "Search your connections"
-msgstr "Verbindungen durchsuchen"
+#: ../../mod/network.php:180
+msgid "Collection: "
+msgstr "Sammlung:"
-#: ../../mod/connections.php:696
-msgid "Finding: "
-msgstr "Ergebnisse:"
-
-#: ../../mod/dirsearch.php:21
-msgid "This site is not a directory server"
-msgstr "Diese Website ist kein Verzeichnis-Server"
-
-#: ../../mod/lockview.php:34
-msgid "Remote privacy information not available."
-msgstr "Entfernte Privatsphären Einstellungen sind nicht verfügbar."
+#: ../../mod/network.php:193
+msgid "Connection: "
+msgstr "Verbindung:"
-#: ../../mod/lockview.php:43
-msgid "Visible to:"
-msgstr "Sichtbar für:"
+#: ../../mod/network.php:196
+msgid "Invalid connection."
+msgstr "Ungültige Verbindung."
#: ../../mod/profiles.php:18 ../../mod/profiles.php:138
-#: ../../mod/profiles.php:179 ../../mod/profiles.php:486
+#: ../../mod/profiles.php:168 ../../mod/profiles.php:463
msgid "Profile not found."
msgstr "Profil nicht gefunden."
@@ -5699,252 +5398,742 @@ msgstr "Neues Profil erstellt."
msgid "Profile unavailable to clone."
msgstr "Profil kann nicht geklont werden."
-#: ../../mod/profiles.php:189
+#: ../../mod/profiles.php:178
msgid "Profile Name is required."
msgstr "Profil-Name erforderlich."
-#: ../../mod/profiles.php:317
+#: ../../mod/profiles.php:294
msgid "Marital Status"
msgstr "Familienstand"
-#: ../../mod/profiles.php:321
+#: ../../mod/profiles.php:298
msgid "Romantic Partner"
msgstr "Romantische Partner"
-#: ../../mod/profiles.php:325
+#: ../../mod/profiles.php:302
msgid "Likes"
-msgstr "Gefällt-mir"
+msgstr "Gefällt"
-#: ../../mod/profiles.php:329
+#: ../../mod/profiles.php:306
msgid "Dislikes"
-msgstr "Gefällt-mir-nicht"
+msgstr "Gefällt nicht"
-#: ../../mod/profiles.php:333
+#: ../../mod/profiles.php:310
msgid "Work/Employment"
msgstr "Arbeit/Anstellung"
-#: ../../mod/profiles.php:336
+#: ../../mod/profiles.php:313
msgid "Religion"
msgstr "Religion"
-#: ../../mod/profiles.php:340
+#: ../../mod/profiles.php:317
msgid "Political Views"
-msgstr "Politische Anscihten"
+msgstr "Politische Ansichten"
-#: ../../mod/profiles.php:344
+#: ../../mod/profiles.php:321
msgid "Gender"
msgstr "Geschlecht"
-#: ../../mod/profiles.php:348
+#: ../../mod/profiles.php:325
msgid "Sexual Preference"
msgstr "Sexuelle Orientierung"
-#: ../../mod/profiles.php:352
+#: ../../mod/profiles.php:329
msgid "Homepage"
msgstr "Webseite"
-#: ../../mod/profiles.php:356
+#: ../../mod/profiles.php:333
msgid "Interests"
msgstr "Hobbys/Interessen"
-#: ../../mod/profiles.php:360
+#: ../../mod/profiles.php:337
msgid "Address"
msgstr "Adresse"
-#: ../../mod/profiles.php:367 ../../mod/pubsites.php:31
+#: ../../mod/profiles.php:344 ../../mod/pubsites.php:31
msgid "Location"
msgstr "Ort"
-#: ../../mod/profiles.php:450
+#: ../../mod/profiles.php:427
msgid "Profile updated."
msgstr "Profil aktualisiert."
-#: ../../mod/profiles.php:505
+#: ../../mod/profiles.php:482
msgid "Hide your contact/friend list from viewers of this profile?"
-msgstr "Verberge die Liste deiner Kontakte vor Betrachtern dieses Profils"
+msgstr "Deine Kontaktliste vor Betrachtern dieses Profils verbergen?"
-#: ../../mod/profiles.php:528
+#: ../../mod/profiles.php:505
msgid "Edit Profile Details"
msgstr "Bearbeite Profil-Details"
-#: ../../mod/profiles.php:530
+#: ../../mod/profiles.php:507
msgid "View this profile"
msgstr "Dieses Profil ansehen"
-#: ../../mod/profiles.php:531
+#: ../../mod/profiles.php:508
msgid "Change Profile Photo"
msgstr "Profilfoto ändern"
-#: ../../mod/profiles.php:532
+#: ../../mod/profiles.php:509
msgid "Create a new profile using these settings"
msgstr "Neues Profil anlegen und diese Einstellungen übernehmen"
-#: ../../mod/profiles.php:533
+#: ../../mod/profiles.php:510
msgid "Clone this profile"
msgstr "Dieses Profil klonen"
-#: ../../mod/profiles.php:534
+#: ../../mod/profiles.php:511
msgid "Delete this profile"
msgstr "Dieses Profil löschen"
-#: ../../mod/profiles.php:535
+#: ../../mod/profiles.php:512
msgid "Profile Name:"
msgstr "Profilname:"
-#: ../../mod/profiles.php:536
+#: ../../mod/profiles.php:513
msgid "Your Full Name:"
msgstr "Dein voller Name:"
-#: ../../mod/profiles.php:537
+#: ../../mod/profiles.php:514
msgid "Title/Description:"
-msgstr "Titel/Beschreibung:"
+msgstr "Titel/Stellenbeschreibung:"
-#: ../../mod/profiles.php:538
+#: ../../mod/profiles.php:515
msgid "Your Gender:"
msgstr "Dein Geschlecht:"
-#: ../../mod/profiles.php:539
+#: ../../mod/profiles.php:516
#, php-format
msgid "Birthday (%s):"
msgstr "Geburtstag (%s):"
-#: ../../mod/profiles.php:540
+#: ../../mod/profiles.php:517
msgid "Street Address:"
msgstr "Straße und Hausnummer:"
-#: ../../mod/profiles.php:541
+#: ../../mod/profiles.php:518
msgid "Locality/City:"
msgstr "Wohnort:"
-#: ../../mod/profiles.php:542
+#: ../../mod/profiles.php:519
msgid "Postal/Zip Code:"
msgstr "Postleitzahl:"
-#: ../../mod/profiles.php:543
+#: ../../mod/profiles.php:520
msgid "Country:"
msgstr "Land:"
-#: ../../mod/profiles.php:544
+#: ../../mod/profiles.php:521
msgid "Region/State:"
-msgstr "Region/Bundesstaat"
+msgstr "Region/Bundesstaat:"
-#: ../../mod/profiles.php:545
+#: ../../mod/profiles.php:522
msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
msgstr "<span class=\"heart\">&hearts;</span> Beziehungsstatus:"
-#: ../../mod/profiles.php:546
+#: ../../mod/profiles.php:523
msgid "Who: (if applicable)"
msgstr "Wer: (falls anwendbar)"
-#: ../../mod/profiles.php:547
+#: ../../mod/profiles.php:524
msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
msgstr "Beispiele: cathy123, Cathy Williams, cathy@example.com"
-#: ../../mod/profiles.php:548
+#: ../../mod/profiles.php:525
msgid "Since [date]:"
msgstr "Seit [Datum]:"
-#: ../../mod/profiles.php:550
+#: ../../mod/profiles.php:527
msgid "Homepage URL:"
msgstr "Homepage URL:"
-#: ../../mod/profiles.php:553
+#: ../../mod/profiles.php:530
msgid "Religious Views:"
msgstr "Religiöse Ansichten:"
-#: ../../mod/profiles.php:554
+#: ../../mod/profiles.php:531
msgid "Keywords:"
msgstr "Schlüsselwörter:"
-#: ../../mod/profiles.php:557
+#: ../../mod/profiles.php:534
msgid "Example: fishing photography software"
-msgstr "Beispiel: fischen Fotografie Software"
+msgstr "Beispiel: Angeln Fotografie Software"
-#: ../../mod/profiles.php:558
+#: ../../mod/profiles.php:535
msgid "Used in directory listings"
-msgstr "Wird in Verzeichnis Auflistungen verwendet"
+msgstr "Wird in Verzeichnis-Auflistungen verwendet"
-#: ../../mod/profiles.php:559
+#: ../../mod/profiles.php:536
msgid "Tell us about yourself..."
-msgstr "Erzähl uns ein wenig von Dir..."
+msgstr "Erzähle uns ein wenig von Dir …"
-#: ../../mod/profiles.php:560
+#: ../../mod/profiles.php:537
msgid "Hobbies/Interests"
msgstr "Hobbys/Interessen"
-#: ../../mod/profiles.php:561
+#: ../../mod/profiles.php:538
msgid "Contact information and Social Networks"
msgstr "Kontaktinformation und soziale Netzwerke"
-#: ../../mod/profiles.php:562
+#: ../../mod/profiles.php:539
msgid "My other channels"
-msgstr "Meine anderen Channels"
+msgstr "Meine anderen Kanäle"
-#: ../../mod/profiles.php:563
+#: ../../mod/profiles.php:540
msgid "Musical interests"
msgstr "Musikalische Interessen"
-#: ../../mod/profiles.php:564
+#: ../../mod/profiles.php:541
msgid "Books, literature"
msgstr "Bücher, Literatur"
-#: ../../mod/profiles.php:565
+#: ../../mod/profiles.php:542
msgid "Television"
msgstr "Fernsehen"
-#: ../../mod/profiles.php:566
+#: ../../mod/profiles.php:543
msgid "Film/dance/culture/entertainment"
msgstr "Film/Tanz/Kultur/Unterhaltung"
-#: ../../mod/profiles.php:567
+#: ../../mod/profiles.php:544
msgid "Love/romance"
msgstr "Liebe/Romantik"
-#: ../../mod/profiles.php:568
+#: ../../mod/profiles.php:545
msgid "Work/employment"
msgstr "Arbeit/Anstellung"
-#: ../../mod/profiles.php:569
+#: ../../mod/profiles.php:546
msgid "School/education"
msgstr "Schule/Ausbildung"
-#: ../../mod/profiles.php:574
+#: ../../mod/profiles.php:551
msgid ""
"This is your <strong>public</strong> profile.<br />It <strong>may</strong> "
"be visible to anybody using the internet."
-msgstr "Dies ist Dein <strong>öffentliches</strong> Profil.<br />Es <strong>könnte</strong> für jeden im Internet sichtbar sein."
+msgstr "Das ist Dein <strong>öffentliches</strong> Profil.<br />Es <strong>könnte</strong> für jeden im Internet sichtbar sein."
-#: ../../mod/profiles.php:584 ../../mod/directory.php:160
-msgid "Age: "
-msgstr "Alter:"
-
-#: ../../mod/profiles.php:623
+#: ../../mod/profiles.php:600
msgid "Edit/Manage Profiles"
msgstr "Bearbeite/Verwalte Profile"
-#: ../../mod/profiles.php:624 ../../boot.php:1755
-msgid "Change profile photo"
-msgstr "Ändere das Profilfoto"
+#: ../../mod/profiles.php:601
+msgid "Add profile things"
+msgstr "Profil-Dinge hinzufügen"
-#: ../../mod/profiles.php:625 ../../boot.php:1762
-msgid "Create New Profile"
-msgstr "Neues Profil erstellen"
+#: ../../mod/profiles.php:602
+msgid "Include desirable objects in your profile"
+msgstr "Binde begehrenswerte Dinge in Dein Profil ein"
-#: ../../mod/profiles.php:636 ../../boot.php:1776
-msgid "Profile Image"
-msgstr "Profilfoto:"
+#: ../../mod/follow.php:25
+msgid "Channel added."
+msgstr "Kanal hinzugefügt."
-#: ../../mod/profiles.php:639 ../../boot.php:1779
-msgid "visible to everybody"
-msgstr "sichtbar für jeden"
+#: ../../mod/post.php:226
+msgid ""
+"Remote authentication blocked. You are logged into this site locally. Please"
+" logout and retry."
+msgstr "Fern-Authentifizierung blockiert. Du bist lokal auf diesem Server angemeldet. Bitte melde Dich ab und versuche es erneut."
-#: ../../mod/profiles.php:640 ../../boot.php:1780
-msgid "Edit visibility"
-msgstr "Sichtbarkeit bearbeiten"
+#: ../../mod/post.php:256 ../../mod/openid.php:70 ../../mod/openid.php:175
+#, php-format
+msgid "Welcome %s. Remote authentication successful."
+msgstr "Willkommen %s. Entfernte Authentifizierung erfolgreich."
+
+#: ../../mod/dirsearch.php:21
+msgid "This site is not a directory server"
+msgstr "Diese Website ist kein Verzeichnis-Server"
+
+#: ../../mod/sources.php:32
+msgid "Failed to create source. No channel selected."
+msgstr "Konnte die Quelle nicht anlegen. Kein Kanal ausgewählt."
+
+#: ../../mod/sources.php:45
+msgid "Source created."
+msgstr "Quelle erstellt."
+
+#: ../../mod/sources.php:57
+msgid "Source updated."
+msgstr "Quelle aktualisiert."
+
+#: ../../mod/sources.php:82
+msgid "*"
+msgstr "*"
+
+#: ../../mod/sources.php:89
+msgid "Manage remote sources of content for your channel."
+msgstr "Quellen von Inhalten Deines Kanals verwalten."
+
+#: ../../mod/sources.php:90 ../../mod/sources.php:100
+msgid "New Source"
+msgstr "Neue Quelle"
+
+#: ../../mod/sources.php:101 ../../mod/sources.php:133
+msgid ""
+"Import all or selected content from the following channel into this channel "
+"and distribute it according to your channel settings."
+msgstr "Importiere alle oder ausgewählte Inhalte des folgenden Kanals in diesen Kanal und verteile sie gemäß der Einstellungen dieses Kanals."
+
+#: ../../mod/sources.php:102 ../../mod/sources.php:134
+msgid "Only import content with these words (one per line)"
+msgstr "Importiere nur Beiträge, die folgende Wörter (eines pro Zeile) enthalten"
+
+#: ../../mod/sources.php:102 ../../mod/sources.php:134
+msgid "Leave blank to import all public content"
+msgstr "Leer lassen, um alle öffentlichen Beiträge zu importieren"
+
+#: ../../mod/sources.php:103 ../../mod/sources.php:137
+#: ../../mod/new_channel.php:110
+msgid "Channel Name"
+msgstr "Name des Kanals"
+
+#: ../../mod/sources.php:123 ../../mod/sources.php:150
+msgid "Source not found."
+msgstr "Quelle nicht gefunden."
+
+#: ../../mod/sources.php:130
+msgid "Edit Source"
+msgstr "Quelle bearbeiten"
+
+#: ../../mod/sources.php:131
+msgid "Delete Source"
+msgstr "Quelle löschen"
+
+#: ../../mod/sources.php:158
+msgid "Source removed"
+msgstr "Quelle gelöscht"
+
+#: ../../mod/sources.php:160
+msgid "Unable to remove source."
+msgstr "Konnte die Quelle nicht löschen."
+
+#: ../../mod/lockview.php:34
+msgid "Remote privacy information not available."
+msgstr "Privatsphäre-Einstellungen anderer Nutzer sind nicht verfügbar."
+
+#: ../../mod/lockview.php:43
+msgid "Visible to:"
+msgstr "Sichtbar für:"
+
+#: ../../mod/magic.php:70
+msgid "Hub not found."
+msgstr "Server nicht gefunden."
+
+#: ../../mod/setup.php:161
+msgid "Red Matrix Server - Setup"
+msgstr "Red Matrix Server - Installation"
+
+#: ../../mod/setup.php:167
+msgid "Could not connect to database."
+msgstr "Kann nicht mit der Datenbank verbinden."
+
+#: ../../mod/setup.php:171
+msgid ""
+"Could not connect to specified site URL. Possible SSL certificate or DNS "
+"issue."
+msgstr "Konnte die angegebene Webseiten-URL nicht erreichen. Möglicherweise ein Problem mit dem SSL-Zertifikat oder dem DNS."
+
+#: ../../mod/setup.php:176
+msgid "Could not create table."
+msgstr "Kann Tabelle nicht erstellen."
+
+#: ../../mod/setup.php:182
+msgid "Your site database has been installed."
+msgstr "Die Datenbank Deines Servers wurde installiert."
+
+#: ../../mod/setup.php:187
+msgid ""
+"You may need to import the file \"install/database.sql\" manually using "
+"phpmyadmin or mysql."
+msgstr "Eventuell musst Du die Datei \"install/database.sql\" per Hand mit phpmyadmin oder mysql importieren."
+
+#: ../../mod/setup.php:188 ../../mod/setup.php:257 ../../mod/setup.php:609
+msgid "Please see the file \"install/INSTALL.txt\"."
+msgstr "Lies die Datei \"install/INSTALL.txt\"."
+
+#: ../../mod/setup.php:254
+msgid "System check"
+msgstr "Systemprüfung"
+
+#: ../../mod/setup.php:259
+msgid "Check again"
+msgstr "Bitte nochmal prüfen"
+
+#: ../../mod/setup.php:281
+msgid "Database connection"
+msgstr "Datenbank Verbindung"
+
+#: ../../mod/setup.php:282
+msgid ""
+"In order to install Red Matrix we need to know how to connect to your "
+"database."
+msgstr "Um die Red-Matrix installieren zu können, müssen wir wissen, wie wir eine Verbindung zu Deiner Datenbank aufbauen können."
+
+#: ../../mod/setup.php:283
+msgid ""
+"Please contact your hosting provider or site administrator if you have "
+"questions about these settings."
+msgstr "Bitte kontaktiere Deinen Hosting-Provider oder Administrator, falls Du Fragen zu diesen Einstellungen hast."
+
+#: ../../mod/setup.php:284
+msgid ""
+"The database you specify below should already exist. If it does not, please "
+"create it before continuing."
+msgstr "Die Datenbank, die Du weiter unten angibst, sollte bereits existieren. Sollte das noch nicht der Fall sein, erzeuge sie bitte bevor Du fortfährst."
+
+#: ../../mod/setup.php:288
+msgid "Database Server Name"
+msgstr "Datenbank-Servername"
+
+#: ../../mod/setup.php:288
+msgid "Default is localhost"
+msgstr "Standard ist localhost"
+
+#: ../../mod/setup.php:289
+msgid "Database Port"
+msgstr "Datenbank-Port"
+
+#: ../../mod/setup.php:289
+msgid "Communication port number - use 0 for default"
+msgstr "Port-Nummer für die Kommunikation – verwende 0 für die Standardeinstellung"
+
+#: ../../mod/setup.php:290
+msgid "Database Login Name"
+msgstr "Datenbank-Benutzername"
+
+#: ../../mod/setup.php:291
+msgid "Database Login Password"
+msgstr "Datenbank-Kennwort"
+
+#: ../../mod/setup.php:292
+msgid "Database Name"
+msgstr "Datenbank-Name"
+
+#: ../../mod/setup.php:294 ../../mod/setup.php:336
+msgid "Site administrator email address"
+msgstr "E-Mail Adresse des Seiten-Administrators"
+
+#: ../../mod/setup.php:294 ../../mod/setup.php:336
+msgid ""
+"Your account email address must match this in order to use the web admin "
+"panel."
+msgstr "Die E-Mail-Adresse Deines Accounts muss dieser Adresse entsprechen, damit Du Zugriff zur Administrations-Seite erhältst."
+
+#: ../../mod/setup.php:295 ../../mod/setup.php:338
+msgid "Website URL"
+msgstr "Server-URL"
+
+#: ../../mod/setup.php:295 ../../mod/setup.php:338
+msgid "Please use SSL (https) URL if available."
+msgstr "Nutze wenn möglich eine SSL-URL (https)."
+
+#: ../../mod/setup.php:298 ../../mod/setup.php:341
+msgid "Please select a default timezone for your website"
+msgstr "Standard-Zeitzone für Deinen Server"
+
+#: ../../mod/setup.php:325
+msgid "Site settings"
+msgstr "Seiteneinstellungen"
+
+#: ../../mod/setup.php:384
+msgid "Could not find a command line version of PHP in the web server PATH."
+msgstr "Konnte die Kommandozeilen-Version von PHP nicht im PATH des Web-Servers finden."
+
+#: ../../mod/setup.php:385
+msgid ""
+"If you don't have a command line version of PHP installed on server, you "
+"will not be able to run background polling via cron."
+msgstr "Ohne Kommandozeilen-Version von PHP auf dem Server wirst Du nicht in der Lage sein, Hintergrundprozesse via cron auszuführen."
+
+#: ../../mod/setup.php:389
+msgid "PHP executable path"
+msgstr "PHP Pfad zu ausführbarer Datei"
+
+#: ../../mod/setup.php:389
+msgid ""
+"Enter full path to php executable. You can leave this blank to continue the "
+"installation."
+msgstr "Gib den vollen Pfad zum PHP-Interpreter an. Du kannst dieses Feld frei lassen und mit der Installation fortfahren."
+
+#: ../../mod/setup.php:394
+msgid "Command line PHP"
+msgstr "PHP Befehlszeile"
+
+#: ../../mod/setup.php:403
+msgid ""
+"The command line version of PHP on your system does not have "
+"\"register_argc_argv\" enabled."
+msgstr "Bei der Kommandozeilen-Version von PHP auf Deinem System ist \"register_argc_argv\" nicht aktiviert."
+
+#: ../../mod/setup.php:404
+msgid "This is required for message delivery to work."
+msgstr "Das wird benötigt, damit die Auslieferung von Nachrichten funktioniert."
+
+#: ../../mod/setup.php:406
+msgid "PHP register_argc_argv"
+msgstr "PHP register_argc_argv"
+
+#: ../../mod/setup.php:427
+msgid ""
+"Error: the \"openssl_pkey_new\" function on this system is not able to "
+"generate encryption keys"
+msgstr "Fehler: Die „openssl_pkey_new“-Funktion auf diesem System ist nicht in der Lage, Schlüssel für die Verschlüsselung zu erzeugen."
+
+#: ../../mod/setup.php:428
+msgid ""
+"If running under Windows, please see "
+"\"http://www.php.net/manual/en/openssl.installation.php\"."
+msgstr "Wenn Du Windows verwendest, findest Du unter http://www.php.net/manual/en/openssl.installation.php eine Installationsanleitung."
+
+#: ../../mod/setup.php:430
+msgid "Generate encryption keys"
+msgstr "Verschlüsselungsschlüssel generieren"
+
+#: ../../mod/setup.php:437
+msgid "libCurl PHP module"
+msgstr "libCurl-PHP-Modul"
+
+#: ../../mod/setup.php:438
+msgid "GD graphics PHP module"
+msgstr "GD-Grafik-PHP-Modul"
+
+#: ../../mod/setup.php:439
+msgid "OpenSSL PHP module"
+msgstr "OpenSSL-PHP-Modul"
+
+#: ../../mod/setup.php:440
+msgid "mysqli PHP module"
+msgstr "mysqli-PHP-Modul"
+
+#: ../../mod/setup.php:441
+msgid "mb_string PHP module"
+msgstr "mb_string-PHP-Modul"
+
+#: ../../mod/setup.php:442
+msgid "mcrypt PHP module"
+msgstr "mcrypt-PHP-Modul"
+
+#: ../../mod/setup.php:447 ../../mod/setup.php:449
+msgid "Apache mod_rewrite module"
+msgstr "Apache-mod_rewrite-Modul"
+
+#: ../../mod/setup.php:447
+msgid ""
+"Error: Apache webserver mod-rewrite module is required but not installed."
+msgstr "Fehler: Das Apache-Modul mod-rewrite wird benötigt, ist aber nicht installiert."
+
+#: ../../mod/setup.php:453 ../../mod/setup.php:456
+msgid "proc_open"
+msgstr "proc_open"
+
+#: ../../mod/setup.php:453
+msgid ""
+"Error: proc_open is required but is either not installed or has been "
+"disabled in php.ini"
+msgstr "Fehler: proc_open wird benötigt, ist aber entweder nicht installiert oder wurde in der php.ini deaktiviert"
+
+#: ../../mod/setup.php:461
+msgid "Error: libCURL PHP module required but not installed."
+msgstr "Fehler: Das PHP-Modul libCURL wird benötigt, ist aber nicht installiert."
+
+#: ../../mod/setup.php:465
+msgid ""
+"Error: GD graphics PHP module with JPEG support required but not installed."
+msgstr "Fehler: Das PHP-Modul GD-Grafik mit JPEG-Unterstützung wird benötigt, ist aber nicht installiert."
+
+#: ../../mod/setup.php:469
+msgid "Error: openssl PHP module required but not installed."
+msgstr "Fehler: Das PHP-Modul openssl wird benötigt, ist aber nicht installiert."
+
+#: ../../mod/setup.php:473
+msgid "Error: mysqli PHP module required but not installed."
+msgstr "Fehler: Das PHP-Modul mysqli wird benötigt, ist aber nicht installiert."
+
+#: ../../mod/setup.php:477
+msgid "Error: mb_string PHP module required but not installed."
+msgstr "Fehler: Das PHP-Modul mb_string wird benötigt, ist aber nicht installiert."
+
+#: ../../mod/setup.php:481
+msgid "Error: mcrypt PHP module required but not installed."
+msgstr "Fehler: Das PHP-Modul mcrypt wird benötigt, ist aber nicht installiert."
+
+#: ../../mod/setup.php:497
+msgid ""
+"The web installer needs to be able to create a file called \".htconfig.php\""
+" in the top folder of your web server and it is unable to do so."
+msgstr "Der Installations-Assistent muss in der Lage sein, die Datei \".htconfig.php\" im Stammverzeichnis des Web-Servers anzulegen, ist er aber nicht."
+
+#: ../../mod/setup.php:498
+msgid ""
+"This is most often a permission setting, as the web server may not be able "
+"to write files in your folder - even if you can."
+msgstr "Meist liegt das daran, dass der Nutzer, unter dem der Web-Server läuft, keine Rechte Schreibrechte in dem Verzeichnis hat – selbst wenn Du selbst das darfst."
+
+#: ../../mod/setup.php:499
+msgid ""
+"At the end of this procedure, we will give you a text to save in a file "
+"named .htconfig.php in your Red top folder."
+msgstr "Am Schluss dieses Vorgangs wird ein Text generiert, den Du unter dem Dateinamen .htconfig.php im Stammverzeichnis Deiner Red-Installation speichern musst."
+
+#: ../../mod/setup.php:500
+msgid ""
+"You can alternatively skip this procedure and perform a manual installation."
+" Please see the file \"install/INSTALL.txt\" for instructions."
+msgstr "Alternativ kannst Du diesen Schritt überspringen und die Installation manuell vornehmen. Lies dazu die Datei install/INSTALL.txt."
+
+#: ../../mod/setup.php:503
+msgid ".htconfig.php is writable"
+msgstr ".htconfig.php ist beschreibbar"
+
+#: ../../mod/setup.php:513
+msgid ""
+"Red uses the Smarty3 template engine to render its web views. Smarty3 "
+"compiles templates to PHP to speed up rendering."
+msgstr "Red verwendet Smarty3 um Vorlagen für die Webdarstellung zu übersetzen. Smarty3 übersetzt diese Vorlagen nach PHP, um die Darstellung zu beschleunigen."
+
+#: ../../mod/setup.php:514
+msgid ""
+"In order to store these compiled templates, the web server needs to have "
+"write access to the directory view/tpl/smarty3/ under the Red top level "
+"folder."
+msgstr "Um die übersetzten Vorlagen speichern zu können muss der Webserver Schreibzugriff auf das Verzeichnis view/tpl/smarty3/ unterhalb des Red-Stammverzeichnisses haben."
+
+#: ../../mod/setup.php:515 ../../mod/setup.php:533
+msgid ""
+"Please ensure that the user that your web server runs as (e.g. www-data) has"
+" write access to this folder."
+msgstr "Bitte stelle sicher, dass der Nutzer, unter dem der Webserver läuft (z.B. www-data), Schreibzugriff auf dieses Verzeichnis hat."
+
+#: ../../mod/setup.php:516
+msgid ""
+"Note: as a security measure, you should give the web server write access to "
+"view/tpl/smarty3/ only--not the template files (.tpl) that it contains."
+msgstr "Hinweis: Als Sicherheitsvorkehrung solltest Du dem Webserver nur Schreib-Zugriff auf das Verzeichnis view/tpl/smarty3 geben, nicht auf die Vorlagen (.tpl-Dateien) in view/tpl/ ."
+
+#: ../../mod/setup.php:519
+msgid "view/tpl/smarty3 is writable"
+msgstr "view/tpl/smarty3 ist beschreibbar"
+
+#: ../../mod/setup.php:532
+msgid ""
+"Red uses the store directory to save uploaded files. The web server needs to"
+" have write access to the store directory under the Red top level folder"
+msgstr "Red benutzt das Verzeichnis store, um hochgeladene Dateien zu speichern. Der Web-Server benötigt Schreibrechte für dieses Verzeichnis direkt unterhalb des Red-Stammverzeichnisses"
+
+#: ../../mod/setup.php:536
+msgid "store is writable"
+msgstr "store ist schreibbar"
+
+#: ../../mod/setup.php:551
+msgid "SSL certificate validation"
+msgstr "SSL Zertifikatverifizierung"
+
+#: ../../mod/setup.php:551
+msgid ""
+"SSL certificate cannot be validated. Fix certificate or disable https access"
+" to this site."
+msgstr "Das SSL-Zertifikat konnte nicht validiert werden. Korrigiere das Zertifikat oder deaktiviere den HTTPS-Zugriff auf diesen Server."
+
+#: ../../mod/setup.php:558
+msgid ""
+"Url rewrite in .htaccess is not working. Check your server configuration."
+msgstr "URL rewrite via .htaccess funktioniert nicht. Überprüfe Deine Server-Konfiguration."
+
+#: ../../mod/setup.php:560
+msgid "Url rewrite is working"
+msgstr "Url rewrite funktioniert"
+
+#: ../../mod/setup.php:570
+msgid ""
+"The database configuration file \".htconfig.php\" could not be written. "
+"Please use the enclosed text to create a configuration file in your web "
+"server root."
+msgstr "Die Datenbank-Konfigurationsdatei „.htconfig.php“ konnte nicht geschrieben werden. Bitte verwende den unten angegebenen Text, um die Konfigurationsdatei im Stammverzeichnis des Webservers anzulegen."
+
+#: ../../mod/setup.php:594
+msgid "Errors encountered creating database tables."
+msgstr "Fehler beim Anlegen der Datenbank-Tabellen aufgetreten."
+
+#: ../../mod/setup.php:607
+msgid "<h1>What next</h1>"
+msgstr "<h1>Was als Nächstes</h1>"
+
+#: ../../mod/setup.php:608
+msgid ""
+"IMPORTANT: You will need to [manually] setup a scheduled task for the "
+"poller."
+msgstr "WICHTIG: Du musst [manuell] einen Cronjob für den Poller einrichten."
+
+#: ../../mod/siteinfo.php:57
+#, php-format
+msgid "Version %s"
+msgstr "Version %s"
+
+#: ../../mod/siteinfo.php:76
+msgid "Installed plugins/addons/apps:"
+msgstr "Installierte Plugins/Addons/Apps"
+
+#: ../../mod/siteinfo.php:89
+msgid "No installed plugins/addons/apps"
+msgstr "Keine installierten Plugins/Addons/Apps"
+
+#: ../../mod/siteinfo.php:93
+msgid "Project Donations"
+msgstr "Projekt Spenden"
+
+#: ../../mod/siteinfo.php:94
+msgid ""
+"<p>The Red Matrix is provided for you by volunteers working in their spare "
+"time. Your support will help us to build a better, freer, and privacy "
+"respecting web. Select the following option for a one-time donation of your "
+"choosing</p>"
+msgstr ""
+
+#: ../../mod/siteinfo.php:95
+msgid "<p>or</p>"
+msgstr "<p>oder</p>"
+
+#: ../../mod/siteinfo.php:96
+msgid "Recurring Donation Options"
+msgstr "Optionen für regelmäßige Spenden"
+
+#: ../../mod/siteinfo.php:115
+msgid "Red"
+msgstr "Red"
+
+#: ../../mod/siteinfo.php:116
+msgid ""
+"This is a hub of the Red Matrix - a global cooperative network of "
+"decentralised privacy enhanced websites."
+msgstr "Dieser Server ist Teil der Red-Matrix – einem global vernetzten Verbund aus dezentralen Websites mit Rücksicht auf die Privatsphäre."
+
+#: ../../mod/siteinfo.php:119
+msgid "Running at web location"
+msgstr "Erreichbar unter der Web-Adresse"
+
+#: ../../mod/siteinfo.php:120
+msgid ""
+"Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more "
+"about the Red Matrix."
+msgstr "Besuche <a href=\"http://getzot.com\">GetZot.com</a>, um mehr über die Red-Matrix zu erfahren."
+
+#: ../../mod/siteinfo.php:121
+msgid "Bug reports and issues: please visit"
+msgstr "Probleme oder Fehler gefunden? Bitte besuche"
+
+#: ../../mod/siteinfo.php:124
+msgid ""
+"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot "
+"com"
+msgstr "Vorschläge, Lob, usw.: E-Mail an 'redmatrix' at librelist - dot - com"
+
+#: ../../mod/siteinfo.php:126
+msgid "Site Administrators"
+msgstr "Administratoren"
#: ../../mod/new_channel.php:107
msgid "Add a Channel"
-msgstr "Channel hinzufügen"
+msgstr "Kanal hinzufügen"
#: ../../mod/new_channel.php:108
msgid ""
@@ -5952,45 +6141,25 @@ msgid ""
" to hold social network profiles, blogs, conversation groups and forums, "
"celebrity pages, and much more. You may create as many channels as your "
"service provider allows."
-msgstr "Ein Kanal ist deine eigene Sammlung von verbundenen Webseiten. Ein Kanal kann genutzt werden, um Social Network-Profile, Blogs, Gesprächsgruppen und Foren, Promi-Seiten und viel mehr zu erfassen. Du kannst so viele Kanäle erstellen, wie es der Betreiber deiner Seite zulässt."
+msgstr "Ein Kanal ist Deine eigene Sammlung von verbundenen Webseiten. Ein Kanal kann genutzt werden, um ein Social-Network-Profil, ein Blog, eine Gesprächsgruppe oder ein Forum, Promi-Seiten und vieles mehr zu erstellen. Du kannst so viele Kanäle erstellen, wie es der Betreiber Deiner Seite zulässt."
#: ../../mod/new_channel.php:111
msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "
-msgstr "Beispiele: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "
+msgstr "Beispiele: „Horst Weidinger“, „Lisa und ihr Meerschweinchen“, „Fußball“, „Segelflieger-Forum“ "
#: ../../mod/new_channel.php:112
msgid "Choose a short nickname"
-msgstr "Wähle einen kurzen Spitznahmen"
+msgstr "Wähle einen kurzen Spitznamen"
#: ../../mod/new_channel.php:113
msgid ""
"Your nickname will be used to create an easily remembered channel address "
"(like an email address) which you can share with others."
-msgstr "Dein Spitzname wird verwendet, um eine einfach zu erinnernde Kanal-Adresse (ähnlich einer E-Mail Adresse) zu erzeugen, die Du mit anderen austauschen kannst."
+msgstr "Dein Spitzname wird verwendet, um eine leicht zu merkende Kanal-Adresse (ähnlich einer E-Mail-Adresse) zu erzeugen, die Du mit anderen austauschen kannst."
#: ../../mod/new_channel.php:114
msgid "Or <a href=\"import\">import an existing channel</a> from another location"
-msgstr "Oder <a href=\"import\">importiere einen bestehenden Kanal</a> von einem anderen Ort"
-
-#: ../../mod/filestorage.php:35
-msgid "Permission Denied."
-msgstr "Zugriff verweigert."
-
-#: ../../mod/filestorage.php:42
-msgid "Permission denied. VS."
-msgstr "Zugriff verweigert. VS."
-
-#: ../../mod/filestorage.php:79
-msgid "Download"
-msgstr "Download"
-
-#: ../../mod/filestorage.php:84
-msgid "Used: "
-msgstr "Verwendet:"
-
-#: ../../mod/filestorage.php:86
-msgid "Limit: "
-msgstr "Limit:"
+msgstr "Oder <a href=\"import\">importiere einen bestehenden Kanal</a> von einem anderen Server"
#: ../../mod/lostpass.php:15
msgid "No valid account found."
@@ -5998,25 +6167,25 @@ msgstr "Kein gültiges Konto gefunden."
#: ../../mod/lostpass.php:29
msgid "Password reset request issued. Check your email."
-msgstr "Zurücksetzen des Passworts veranlasst. Rufe bitte Deine E-Mails ab."
+msgstr "Zurücksetzen des Passworts eingeleitet. Schau in Deine E-Mails."
#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:102
#, php-format
msgid "Site Member (%s)"
-msgstr "Seiten Mitglied (%s)"
+msgstr "Nutzer (%s)"
#: ../../mod/lostpass.php:40
#, php-format
msgid "Password reset requested at %s"
-msgstr "Passwort Rücksetzung auf %s angefordert"
+msgstr "Passwort-Rücksetzung auf %s angefordert"
#: ../../mod/lostpass.php:63
msgid ""
"Request could not be verified. (You may have previously submitted it.) "
"Password reset failed."
-msgstr "Die Anfrage konnte nicht verifiziert werden. (Es könnte sein, dass du vorher bereits eine Anfrage eingereicht hast.) Passwort Anforderung fehlgeschlagen."
+msgstr "Die Anfrage konnte nicht verifiziert werden. (Vielleicht hast Du schon einmal auf den Link in der E-Mail geklickt?) Passwort-Rücksetzung fehlgeschlagen."
-#: ../../mod/lostpass.php:85 ../../boot.php:1469
+#: ../../mod/lostpass.php:85 ../../boot.php:1436
msgid "Password Reset"
msgstr "Zurücksetzen des Kennworts"
@@ -6030,7 +6199,7 @@ msgstr "Dein neues Passwort lautet"
#: ../../mod/lostpass.php:88
msgid "Save or copy your new password - and then"
-msgstr "Speichere oder kopiere dein neues Passwort - und dann"
+msgstr "Speichere oder kopiere Dein neues Passwort – und dann"
#: ../../mod/lostpass.php:89
msgid "click here to login"
@@ -6045,7 +6214,7 @@ msgstr "Dein Passwort kann unter <em>Einstellungen</em> nach einer erfolgreichen
#: ../../mod/lostpass.php:107
#, php-format
msgid "Your password has changed at %s"
-msgstr "Auf %s wurde dein Passwort geändert"
+msgstr "Auf %s wurde Dein Passwort geändert"
#: ../../mod/lostpass.php:122
msgid "Forgot your Password?"
@@ -6055,7 +6224,7 @@ msgstr "Kennwort vergessen?"
msgid ""
"Enter your email address and submit to have your password reset. Then check "
"your email for further instructions."
-msgstr "Gib deine E-Mail-Adresse an und fordere ein neues Passwort an. Es werden dir dann weitere Informationen per Mail zugesendet."
+msgstr "Gib Deine E-Mail-Adresse ein, um Dein Passwort zurücksetzen zu lassen. Du erhältst dann weitere Anweisungen per E-Mail."
#: ../../mod/lostpass.php:124
msgid "Email Address"
@@ -6080,7 +6249,7 @@ msgstr "Die importierte Datei ist leer."
#: ../../mod/import.php:88
msgid ""
"Cannot create a duplicate channel identifier on this system. Import failed."
-msgstr "Kann auf diesem System keinen duplizierten Kanal-Identifikator erzeugen. Import fehlgeschlagen."
+msgstr "Kann keinen doppelten Kanal-Identifikator auf diesem System erzeugen (Spitzname oder Hash schon belegt). Import fehlgeschlagen."
#: ../../mod/import.php:106
msgid "Channel clone failed. Import failed."
@@ -6090,84 +6259,84 @@ msgstr "Klonen des Kanals fehlgeschlagen. Import fehlgeschlagen."
msgid "Cloned channel not found. Import failed."
msgstr "Geklonter Kanal nicht gefunden. Import fehlgeschlagen."
-#: ../../mod/import.php:356
+#: ../../mod/import.php:358
msgid "Import completed."
msgstr "Import abgeschlossen."
-#: ../../mod/import.php:369
+#: ../../mod/import.php:371
msgid "You must be logged in to use this feature."
msgstr "Du musst angemeldet sein um diese Funktion zu nutzen."
-#: ../../mod/import.php:374
+#: ../../mod/import.php:376
msgid "Import Channel"
msgstr "Kanal importieren"
-#: ../../mod/import.php:375
+#: ../../mod/import.php:377
msgid ""
"Use this form to import an existing channel from a different server/hub. You"
" may retrieve the channel identity from the old server/hub via the network "
"or provide an export file. Only identity and connections/relationships will "
"be imported. Importation of content is not yet available."
-msgstr "Verwende dieses Formular um einen existierenden Kanal von einem anderen Server/Hub zu importieren. Du kannst die Kanal-Identität vom alten Server/Hub über das Netzwerk erhalten oder über eine exportierte Sicherungskopie. Es werden ausschließlich die Identität und die Verbindungen/Beziehungen importiert. Das Importieren von Inhalten ist derzeit nicht möglich."
+msgstr "Verwende dieses Formular, um einen existierenden Kanal von einem anderen Red-Server zu importieren. Du kannst den Kanal direkt vom bisherigen Red-Server über das Netzwerk importieren oder eine exportierte Sicherheitskopie benutzen. Es werden ausschließlich die Identität und die Verbindungen/Beziehungen importiert. Das Importieren von Inhalten ist derzeit nicht möglich."
-#: ../../mod/import.php:376
+#: ../../mod/import.php:378
msgid "File to Upload"
msgstr "Hochzuladende Datei:"
-#: ../../mod/import.php:377
+#: ../../mod/import.php:379
msgid "Or provide the old server/hub details"
-msgstr "Oder gib die Deteils deines alten Server/Hubs an"
+msgstr "Oder gib die Details Deines bisherigen Red-Servers ein"
-#: ../../mod/import.php:378
+#: ../../mod/import.php:380
msgid "Your old identity address (xyz@example.com)"
-msgstr "Die alte Adresse der Identität (xyz@example.com)"
+msgstr "Bisherige Kanal-Adresse (xyz@example.com)"
-#: ../../mod/import.php:379
+#: ../../mod/import.php:381
msgid "Your old login email address"
msgstr "Ihre alte Login E-Mail Adresse"
-#: ../../mod/import.php:380
+#: ../../mod/import.php:382
msgid "Your old login password"
msgstr "Ihr altes Login Kennwort"
-#: ../../mod/import.php:381
+#: ../../mod/import.php:383
msgid ""
"For either option, please choose whether to make this hub your new primary "
"address, or whether your old location should continue this role. You will be"
" able to post from either location, but only one can be marked as the "
"primary location for files, photos, and media."
-msgstr "Egal welche Option du wählst, bitte lege fest, ob dieser Hub deine neue primäre Adresse sein soll oder ob dein alter Hub diese Rolle weiterhin wahrnimmt. Du kannst von beiden Orten aus neue Dinge posten, aber nur einer kann die primäre Adresse deiner Dateien, Fotos und anderen Mediendaten sein."
+msgstr "Egal welche Option Du wählst, bitte lege fest, ob dieser Server die neue primäre Adresse dieses Kanals sein soll, oder ob der bisherige Red-Server diese Rolle weiterhin wahrnimmt. Du kannst von beiden Servern aus posten, aber nur einer kann der primäre Ort Deiner Dateien, Fotos und Medien sein."
-#: ../../mod/import.php:382
+#: ../../mod/import.php:384
msgid "Make this hub my primary location"
-msgstr "Dieser Hub ist mein primärer Server."
+msgstr "Dieser Red-Server ist mein primärer Server."
-#: ../../mod/manage.php:63
+#: ../../mod/manage.php:64
#, php-format
msgid "You have created %1$.0f of %2$.0f allowed channels."
-msgstr "Du hast %1$.0f von %2$.0f erlaubten Kanälen eingerichtet."
+msgstr "Du hast %1$.0f von maximal %2$.0f erlaubten Kanälen eingerichtet."
-#: ../../mod/manage.php:71
+#: ../../mod/manage.php:72
msgid "Create a new channel"
msgstr "Erzeuge neues Kanal"
-#: ../../mod/manage.php:76
+#: ../../mod/manage.php:77
msgid "Channel Manager"
msgstr "Kanal-Manager"
-#: ../../mod/manage.php:77
+#: ../../mod/manage.php:78
msgid "Current Channel"
msgstr "Aktueller Kanal"
-#: ../../mod/manage.php:79
+#: ../../mod/manage.php:80
msgid "Attach to one of your channels by selecting it."
-msgstr "Wähle einen deiner Kanäle aus um ihn zu verwenden."
+msgstr "Wähle einen Deiner Kanäle aus, um ihn zu verwenden."
-#: ../../mod/manage.php:80
+#: ../../mod/manage.php:81
msgid "Default Channel"
msgstr "Standard Kanal"
-#: ../../mod/manage.php:81
+#: ../../mod/manage.php:82
msgid "Make Default"
msgstr "Zum Standard machen"
@@ -6177,370 +6346,314 @@ msgstr "Stimmen gesamt"
#: ../../mod/vote.php:98
msgid "Average Rating"
-msgstr "durchschnittliche Bewertung"
+msgstr "Durchschnittliche Bewertung"
-#: ../../mod/match.php:12
+#: ../../mod/match.php:16
msgid "Profile Match"
msgstr "Profil-Ãœbereinstimmungen"
-#: ../../mod/match.php:20
+#: ../../mod/match.php:24
msgid "No keywords to match. Please add keywords to your default profile."
-msgstr "Keine Schlüsselbegriffe für den Abgleich gefunden. Bitte füge Schlüsselbegriffe zu deinem Standardprofil hinzu."
+msgstr "Keine Schlüsselwörter für den Abgleich gefunden. Bitte füge Schlüsselwörter zu Deinem Standardprofil hinzu."
-#: ../../mod/match.php:57
+#: ../../mod/match.php:61
msgid "is interested in:"
msgstr "interessiert sich für:"
-#: ../../mod/match.php:65
+#: ../../mod/match.php:69
msgid "No matches"
msgstr "Keine Ãœbereinstimmungen"
-#: ../../mod/crepair.php:102
-msgid "Contact settings applied."
-msgstr "Kontakt Einstellungen angewandt."
+#: ../../mod/zfinger.php:23
+msgid "invalid target signature"
+msgstr "Ungültige Signatur des Ziels"
-#: ../../mod/crepair.php:104
-msgid "Contact update failed."
-msgstr "Kontakt Update fehlgeschlagen."
+#: ../../mod/mail.php:33
+msgid "Unable to lookup recipient."
+msgstr "Konnte den Empfänger nicht finden."
-#: ../../mod/crepair.php:129 ../../mod/fsuggest.php:20
-#: ../../mod/fsuggest.php:92
-msgid "Contact not found."
-msgstr "Kontakt nicht gefunden"
+#: ../../mod/mail.php:41
+msgid "Unable to communicate with requested channel."
+msgstr "Die Kommunikation mit dem ausgewählten Kanal ist fehlgeschlagen."
-#: ../../mod/crepair.php:135
-msgid "Repair Contact Settings"
-msgstr " Kontakt-Einstellungen reparieren"
+#: ../../mod/mail.php:48
+msgid "Cannot verify requested channel."
+msgstr "Verifizierung des angeforderten Kanals fehlgeschlagen."
-#: ../../mod/crepair.php:137
-msgid ""
-"<strong>WARNING: This is highly advanced</strong> and if you enter incorrect"
-" information your communications with this contact may stop working."
-msgstr "<strong>Warnung: Dies ist für weit fortgeschrittene Benutzer!</strong> Wenn du falsche Informationen eingibst, könnte die Kommunikation mit diesem Kontakt abbrechen."
+#: ../../mod/mail.php:74
+msgid "Selected channel has private message restrictions. Send failed."
+msgstr "Der ausgewählte Kanal hat Einschränkungen bzgl. privater Nachrichten. Senden fehlgeschlagen."
-#: ../../mod/crepair.php:138
-msgid ""
-"Please use your browser 'Back' button <strong>now</strong> if you are "
-"uncertain what to do on this page."
-msgstr "Bitte nutze den Zurück-Button deines Browsers <strong>jetzt</strong>, wenn du dir unsicher bist, was du tun willst."
+#: ../../mod/mail.php:121 ../../mod/message.php:31
+msgid "Messages"
+msgstr "Nachrichten"
-#: ../../mod/crepair.php:144
-msgid "Return to contact editor"
-msgstr "Zurück zum Kontakteditor"
+#: ../../mod/mail.php:132
+msgid "Message deleted."
+msgstr "Nachricht gelöscht."
-#: ../../mod/crepair.php:149
-msgid "Account Nickname"
-msgstr "Konto Spitzname"
+#: ../../mod/mail.php:149
+msgid "Message recalled."
+msgstr "Nachricht widerrufen."
-#: ../../mod/crepair.php:150
-msgid "@Tagname - overrides Name/Nickname"
-msgstr "@Tagname - überschreibt Name/Spitzname"
+#: ../../mod/mail.php:206
+msgid "Send Private Message"
+msgstr "Private Nachricht senden"
-#: ../../mod/crepair.php:151
-msgid "Account URL"
-msgstr "Konto URL"
+#: ../../mod/mail.php:207 ../../mod/mail.php:323
+msgid "To:"
+msgstr "An:"
-#: ../../mod/crepair.php:152
-msgid "Friend Request URL"
-msgstr "URL für Kontaktanfragen"
+#: ../../mod/mail.php:212 ../../mod/mail.php:325
+msgid "Subject:"
+msgstr "Betreff:"
-#: ../../mod/crepair.php:153
-msgid "Friend Confirm URL"
-msgstr "URL zum Bestätigen von Kontaktanfragen"
+#: ../../mod/mail.php:249
+msgid "Message not found."
+msgstr "Nachricht nicht gefunden."
-#: ../../mod/crepair.php:154
-msgid "Notification Endpoint URL"
-msgstr "URL-Endpunkt für Benachrichtigungen"
+#: ../../mod/mail.php:292 ../../mod/message.php:72
+msgid "Delete message"
+msgstr "Nachricht löschen"
-#: ../../mod/crepair.php:155
-msgid "Poll/Feed URL"
-msgstr "Poll/Feed URL"
+#: ../../mod/mail.php:293
+msgid "Recall message"
+msgstr "Nachricht widerrufen"
-#: ../../mod/crepair.php:156
-msgid "New photo from this URL"
-msgstr "Neues Foto von dieser URL"
+#: ../../mod/mail.php:295
+msgid "Message has been recalled."
+msgstr "Die Nachricht wurde widerrufen."
-#: ../../mod/zfinger.php:23
-msgid "invalid target signature"
-msgstr "Ungültige Signatur des Ziels"
+#: ../../mod/mail.php:312
+msgid "Private Conversation"
+msgstr "Private Unterhaltung"
-#: ../../mod/follow.php:25
-msgid "Channel added."
-msgstr "Kanal hinzugefügt."
+#: ../../mod/mail.php:316
+msgid "Delete conversation"
+msgstr "Unterhaltung löschen"
-#: ../../mod/editlayout.php:36 ../../mod/editwebpage.php:30
-#: ../../mod/editpost.php:20 ../../mod/editblock.php:36
-msgid "Item not found"
-msgstr "Element nicht gefunden"
+#: ../../mod/mail.php:318
+msgid ""
+"No secure communications available. You <strong>may</strong> be able to "
+"respond from the sender's profile page."
+msgstr "Keine sichere Kommunikation verfügbar. <strong>Eventuell</strong> kannst Du auf der Profilseite des Absenders antworten."
-#: ../../mod/editlayout.php:68
-msgid "Edit Layout"
-msgstr "Layout bearbeiten"
+#: ../../mod/mail.php:322
+msgid "Send Reply"
+msgstr "Antwort senden"
-#: ../../mod/editlayout.php:104 ../../mod/editwebpage.php:123
-#: ../../mod/editpost.php:101 ../../mod/editblock.php:118
-msgid "Insert YouTube video"
-msgstr "YouTube-Video einfügen"
+#: ../../mod/openid.php:26
+msgid "OpenID protocol error. No ID returned."
+msgstr "OpenID Protokollfehler. Keine ID zurückgegeben."
-#: ../../mod/editlayout.php:105 ../../mod/editwebpage.php:124
-#: ../../mod/editpost.php:102 ../../mod/editblock.php:119
-msgid "Insert Vorbis [.ogg] video"
-msgstr "Vorbis [.ogg]-Video einfügen"
+#: ../../mod/editlayout.php:72
+msgid "Edit Layout"
+msgstr "Layout bearbeiten"
-#: ../../mod/editlayout.php:106 ../../mod/editwebpage.php:125
-#: ../../mod/editpost.php:103 ../../mod/editblock.php:120
-msgid "Insert Vorbis [.ogg] audio"
-msgstr "Vorbis [.ogg]-Audio einfügen"
+#: ../../mod/editlayout.php:82
+msgid "Delete layout?"
+msgstr "Layout löschen?"
-#: ../../mod/editlayout.php:140
+#: ../../mod/editlayout.php:147
msgid "Delete Layout"
msgstr "Layout löschen"
-#: ../../mod/nogroup.php:58
-msgid "Contacts who are not members of a group"
-msgstr "Kanäle die in keiner Sammlung Mitglied sind"
-
-#: ../../mod/profile_photo.php:54
+#: ../../mod/profile_photo.php:44
msgid "Image uploaded but image cropping failed."
-msgstr "Bild hochgeladen, aber das zurecht schneiden schlug fehl."
+msgstr "Bild hochgeladen, aber das Zurechtschneiden schlug fehl."
-#: ../../mod/profile_photo.php:107
+#: ../../mod/profile_photo.php:97
msgid "Image resize failed."
msgstr "Bild-Anpassung fehlgeschlagen."
-#: ../../mod/profile_photo.php:151
+#: ../../mod/profile_photo.php:141
msgid ""
"Shift-reload the page or clear browser cache if the new photo does not "
"display immediately."
-msgstr "Leere den Browser Cache oder nutze Umschalten-Neu Laden sollte das neue Foto nicht sofort angezeigt werden."
+msgstr "Leere den Browser Cache oder nutze Umschalten-Neu Laden, falls das neue Foto nicht sofort angezeigt wird."
-#: ../../mod/profile_photo.php:173
+#: ../../mod/profile_photo.php:163
#, php-format
msgid "Image exceeds size limit of %d"
msgstr "Bild ist größer als das Limit von %d"
-#: ../../mod/profile_photo.php:182
+#: ../../mod/profile_photo.php:172
msgid "Unable to process image."
msgstr "Kann Bild nicht verarbeiten."
-#: ../../mod/profile_photo.php:224 ../../mod/profile_photo.php:272
+#: ../../mod/profile_photo.php:214 ../../mod/profile_photo.php:262
msgid "Photo not available."
msgstr "Foto nicht verfügbar."
-#: ../../mod/profile_photo.php:291
+#: ../../mod/profile_photo.php:281
msgid "Upload File:"
msgstr "Datei hochladen:"
-#: ../../mod/profile_photo.php:292
+#: ../../mod/profile_photo.php:282
msgid "Select a profile:"
msgstr "Wählen Sie ein Profil:"
-#: ../../mod/profile_photo.php:293
+#: ../../mod/profile_photo.php:283
msgid "Upload Profile Photo"
msgstr "Lade neues Profilfoto hoch"
-#: ../../mod/profile_photo.php:294
+#: ../../mod/profile_photo.php:284
msgid "Upload"
msgstr "Hochladen"
-#: ../../mod/profile_photo.php:298
+#: ../../mod/profile_photo.php:288
msgid "skip this step"
msgstr "diesen Schritt überspringen"
-#: ../../mod/profile_photo.php:298
+#: ../../mod/profile_photo.php:288
msgid "select a photo from your photo albums"
msgstr "ein Foto aus meinen Fotoalben"
-#: ../../mod/profile_photo.php:312
+#: ../../mod/profile_photo.php:302
msgid "Crop Image"
msgstr "Bild zuschneiden"
-#: ../../mod/profile_photo.php:313
+#: ../../mod/profile_photo.php:303
msgid "Please adjust the image cropping for optimum viewing."
-msgstr "Bitte passe das Bild zur optimalen Anzeige an."
+msgstr "Bitte schneide das Bild für eine optimale Anzeige passend zu."
-#: ../../mod/profile_photo.php:315
+#: ../../mod/profile_photo.php:305
msgid "Done Editing"
msgstr "Bearbeitung fertigstellen"
-#: ../../mod/profile_photo.php:350
+#: ../../mod/profile_photo.php:340
msgid "Image uploaded successfully."
msgstr "Bild erfolgreich hochgeladen."
-#: ../../mod/profile_photo.php:352
+#: ../../mod/profile_photo.php:342
msgid "Image upload failed."
msgstr "Hochladen des Bilds fehlgeschlagen."
-#: ../../mod/profile_photo.php:361
+#: ../../mod/profile_photo.php:351
#, php-format
msgid "Image size reduction [%s] failed."
msgstr "Reduzierung der Bildgröße [%s] fehlgeschlagen."
-#: ../../mod/editwebpage.php:87
-msgid "Edit Webpage"
-msgstr "Webseite bearbeiten"
-
-#: ../../mod/editwebpage.php:162
-msgid "Delete Webpage"
-msgstr "Webseite löschen"
-
-#: ../../mod/notifications.php:26
-msgid "Invalid request identifier."
-msgstr "Ungültige Anfrage Identifikator."
-
-#: ../../mod/notifications.php:76
-msgid "System"
-msgstr "System"
-
-#: ../../mod/notifications.php:96
-msgid "Introductions"
-msgstr "Vorstellungen"
-
-#: ../../mod/notifications.php:121
-msgid "Show Ignored Requests"
-msgstr "Zeige ignorierte Anfragen"
-
-#: ../../mod/notifications.php:121
-msgid "Hide Ignored Requests"
-msgstr "Verberge ignorierte Anfragen"
-
-#: ../../mod/notifications.php:147 ../../mod/notifications.php:193
-msgid "Notification type: "
-msgstr "Benachrichtigungstyp:"
+#: ../../mod/connections.php:191 ../../mod/connections.php:263
+msgid "Blocked"
+msgstr "Blockiert"
-#: ../../mod/notifications.php:148
-msgid "Friend Suggestion"
-msgstr "Freundschaft Vorschläge"
+#: ../../mod/connections.php:196 ../../mod/connections.php:270
+msgid "Ignored"
+msgstr "Ignoriert"
-#: ../../mod/notifications.php:150
-#, php-format
-msgid "suggested by %s"
-msgstr "vorgeschlagen von %s"
+#: ../../mod/connections.php:201 ../../mod/connections.php:284
+msgid "Hidden"
+msgstr "Versteckt"
-#: ../../mod/notifications.php:179
-msgid "Claims to be known to you: "
-msgstr "Behauptet dich zu kennen:"
+#: ../../mod/connections.php:206 ../../mod/connections.php:277
+msgid "Archived"
+msgstr "Archiviert"
-#: ../../mod/notifications.php:179
-msgid "yes"
-msgstr "ja"
+#: ../../mod/connections.php:217
+msgid "All"
+msgstr "Alle"
-#: ../../mod/notifications.php:179
-msgid "no"
-msgstr "nein"
+#: ../../mod/connections.php:241
+msgid "Suggest new connections"
+msgstr "Neue Verbindungen vorschlagen"
-#: ../../mod/notifications.php:186
-msgid "Approve as: "
-msgstr "Genehmigen als:"
+#: ../../mod/connections.php:247
+msgid "Show pending (new) connections"
+msgstr "Zeige ausstehende (neue) Verbindungsanfragen"
-#: ../../mod/notifications.php:187
-msgid "Friend"
-msgstr "Freund"
+#: ../../mod/connections.php:253
+msgid "Show all connections"
+msgstr "Zeige alle Verbindungen"
-#: ../../mod/notifications.php:188
-msgid "Sharer"
-msgstr "Teilenden"
+#: ../../mod/connections.php:256
+msgid "Unblocked"
+msgstr "Freigegeben"
-#: ../../mod/notifications.php:188
-msgid "Fan/Admirer"
-msgstr "Fan/Verehrer"
+#: ../../mod/connections.php:259
+msgid "Only show unblocked connections"
+msgstr "Zeige nur freigegebene Verbindungen"
-#: ../../mod/notifications.php:194
-msgid "Friend/Connect Request"
-msgstr "Kontakt-/Freundschaftsanfrage"
+#: ../../mod/connections.php:266
+msgid "Only show blocked connections"
+msgstr "Zeige nur blockierte Verbindungen"
-#: ../../mod/notifications.php:194
-msgid "New Follower"
-msgstr "Neuer Bewunderer"
+#: ../../mod/connections.php:273
+msgid "Only show ignored connections"
+msgstr "Zeige nur ignorierte Verbindungen"
-#: ../../mod/notifications.php:215
-msgid "No introductions."
-msgstr "Keine wartenden Vorstellungen."
+#: ../../mod/connections.php:280
+msgid "Only show archived connections"
+msgstr "Zeige nur archivierte Verbindungen"
-#: ../../mod/notifications.php:257 ../../mod/notifications.php:382
-#: ../../mod/notifications.php:465
-#, php-format
-msgid "%s liked %s's post"
-msgstr "%s gefällt %s's Beitrag"
+#: ../../mod/connections.php:287
+msgid "Only show hidden connections"
+msgstr "Zeige nur versteckte Verbindungen"
-#: ../../mod/notifications.php:266 ../../mod/notifications.php:391
-#: ../../mod/notifications.php:474
+#: ../../mod/connections.php:331
#, php-format
-msgid "%s disliked %s's post"
-msgstr "%s gefällt %s's Beitrag nicht"
+msgid "%1$s [%2$s]"
+msgstr "%1$s [%2$s]"
-#: ../../mod/notifications.php:280 ../../mod/notifications.php:405
-#: ../../mod/notifications.php:488
-#, php-format
-msgid "%s is now friends with %s"
-msgstr "%s ist nun mit %s befreundet"
+#: ../../mod/connections.php:332
+msgid "Edit contact"
+msgstr "Kontakt bearbeiten"
-#: ../../mod/notifications.php:287 ../../mod/notifications.php:412
-#, php-format
-msgid "%s created a new post"
-msgstr "%s hat einen neuen Beitrag verfasst"
+#: ../../mod/connections.php:355
+msgid "Search your connections"
+msgstr "Verbindungen durchsuchen"
-#: ../../mod/notifications.php:288 ../../mod/notifications.php:413
-#: ../../mod/notifications.php:497
-#, php-format
-msgid "%s commented on %s's post"
-msgstr "%s kommentierte %s Beitrag"
+#: ../../mod/connections.php:356
+msgid "Finding: "
+msgstr "Ergebnisse:"
-#: ../../mod/notifications.php:302
-msgid "No more network notifications."
-msgstr "Keine weiteren Netzwerk Benachrichtigungen."
+#: ../../mod/notifications.php:26
+msgid "Invalid request identifier."
+msgstr "Ungültiger Anfrage-Identifikator."
-#: ../../mod/notifications.php:306
-msgid "Network Notifications"
-msgstr "Netzwerk-Benachrichtigungen"
+#: ../../mod/notifications.php:35
+msgid "Discard"
+msgstr "Verwerfen"
-#: ../../mod/notifications.php:332 ../../mod/notify.php:54
+#: ../../mod/notifications.php:93 ../../mod/notify.php:54
msgid "No more system notifications."
msgstr "Keine System-Benachrichtigungen mehr."
-#: ../../mod/notifications.php:336 ../../mod/notify.php:58
+#: ../../mod/notifications.php:97 ../../mod/notify.php:58
msgid "System Notifications"
msgstr "System-Benachrichtigungen"
-#: ../../mod/notifications.php:427
-msgid "No more personal notifications."
-msgstr "Keine persönliche Benachrichtigungen mehr."
-
-#: ../../mod/notifications.php:431
-msgid "Personal Notifications"
-msgstr "Persönliche Benachrichtigungen"
-
-#: ../../mod/notifications.php:504
-msgid "No more home notifications."
-msgstr "Keine Pinwand-Benachrichtigungen mehr."
-
-#: ../../mod/notifications.php:508
-msgid "Home Notifications"
-msgstr "Pinwand-Benachrichtigungen"
-
#: ../../mod/blocks.php:65
msgid "Block Name"
-msgstr "Block Name"
+msgstr "Block-Name"
#: ../../mod/oexchange.php:23
msgid "Unable to find your hub."
-msgstr "Konnte den Hub nicht finden."
+msgstr "Konnte Deinen Server nicht finden."
#: ../../mod/oexchange.php:37
msgid "Post successful."
msgstr "Veröffentlichung erfolgreich."
-#: ../../mod/editpost.php:31
-msgid "Item is not editable"
-msgstr "Element kann nicht bearbeitet werden."
+#: ../../mod/editwebpage.php:106
+msgid "Edit Webpage"
+msgstr "Webseite bearbeiten"
+
+#: ../../mod/editwebpage.php:116
+msgid "Delete webpage?"
+msgstr "Webseite löschen?"
+
+#: ../../mod/editwebpage.php:189
+msgid "Delete Webpage"
+msgstr "Webseite löschen"
-#: ../../mod/profile.php:111
+#: ../../mod/profile.php:64 ../../mod/profile.php:72
msgid "Access to this profile has been restricted."
msgstr "Der Zugang zu diesem Profil ist begrenzt."
#: ../../mod/poke.php:159
msgid "Poke/Prod"
-msgstr "Anstupsen/Kuffen"
+msgstr "Anstupsen/Knuffen"
#: ../../mod/poke.php:160
msgid "poke, prod or do other things to somebody"
@@ -6552,17 +6665,13 @@ msgstr "Empfänger"
#: ../../mod/poke.php:162
msgid "Choose what you wish to do to recipient"
-msgstr "Wähle was du mit dem/r Empfänger/in tun willst"
+msgstr "Wähle, was Du mit dem/r Empfänger/in tun willst"
#: ../../mod/poke.php:165
msgid "Make this post private"
msgstr "Diesen Beitrag privat machen"
-#: ../../mod/wall_upload.php:41 ../../mod/item.php:1074
-msgid "Wall Photos"
-msgstr "Wall Fotos"
-
-#: ../../mod/channel.php:120
+#: ../../mod/channel.php:85
msgid "Insufficient permissions. Request redirected to profile page."
msgstr "Unzureichende Zugriffsrechte. Die Anfrage wurde zur Profil-Seite umgeleitet."
@@ -6578,9 +6687,9 @@ msgstr "Gemeinschaft"
msgid "No results."
msgstr "Keine Ergebnisse."
-#: ../../mod/fbrowser.php:114
-msgid "Files"
-msgstr "Dateien"
+#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92
+msgid "Contact not found."
+msgstr "Kontakt nicht gefunden"
#: ../../mod/fsuggest.php:63
msgid "Friend suggestion sent."
@@ -6588,123 +6697,119 @@ msgstr "Freundschaftsempfehlung senden."
#: ../../mod/fsuggest.php:97
msgid "Suggest Friends"
-msgstr "Kontakte Vorschlagen"
+msgstr "Kontakte vorschlagen"
#: ../../mod/fsuggest.php:99
#, php-format
msgid "Suggest a friend for %s"
msgstr "Schlage %s einen Kontakt vor"
-#: ../../mod/editblock.php:82
+#: ../../mod/editblock.php:86
msgid "Edit Block"
msgstr "Block bearbeiten"
-#: ../../mod/editblock.php:156
+#: ../../mod/editblock.php:96
+msgid "Delete block?"
+msgstr "Block löschen?"
+
+#: ../../mod/editblock.php:163
msgid "Delete Block"
msgstr "Block löschen"
-#: ../../mod/profperm.php:34 ../../mod/profperm.php:64
-msgid "Invalid profile identifier."
-msgstr "Ungültiger Profil Identifikator"
-
-#: ../../mod/profperm.php:110
-msgid "Profile Visibility Editor"
-msgstr "Profil-Sichtbarkeits Editor"
-
-#: ../../mod/profperm.php:114
-msgid "Click on a contact to add or remove."
-msgstr "Wähle einen Kontakt zum Hinzufügen oder Löschen aus."
+#: ../../mod/dirprofile.php:114
+msgid "Status: "
+msgstr "Status:"
-#: ../../mod/profperm.php:123
-msgid "Visible To"
-msgstr "Sichtbar für"
+#: ../../mod/dirprofile.php:115
+msgid "Sexual Preference: "
+msgstr "Sexuelle Ausrichtung:"
-#: ../../mod/profperm.php:139
-msgid "All Contacts (with secure profile access)"
-msgstr "Alle Kontakte (mit sicherem Zuging zum Profil)"
+#: ../../mod/dirprofile.php:117
+msgid "Homepage: "
+msgstr "Webseite:"
-#: ../../mod/item.php:144
-msgid "Unable to locate original post."
-msgstr "Originalbeitrag kann nicht gefunden werden."
+#: ../../mod/dirprofile.php:118
+msgid "Hometown: "
+msgstr "Wohnort:"
-#: ../../mod/item.php:341
-msgid "Empty post discarded."
-msgstr "Leerer Beitrag verworfen."
+#: ../../mod/dirprofile.php:120
+msgid "About: "
+msgstr "Ãœber:"
-#: ../../mod/item.php:383
-msgid "Executable content type not permitted to this channel."
-msgstr "Ausführbarer Content-Typ ist für diesen Kanal nicht freigegeben."
+#: ../../mod/dirprofile.php:168
+msgid "Keywords: "
+msgstr "Schlüsselwörter:"
-#: ../../mod/item.php:793
-msgid "System error. Post not saved."
-msgstr "Systemfehler. Beitrag nicht gespeichert."
+#: ../../mod/filestorage.php:68
+msgid "Permission Denied."
+msgstr "Zugriff verweigert."
-#: ../../mod/item.php:1153
-#, php-format
-msgid "You have reached your limit of %1$.0f top level posts."
-msgstr "Du hast die maximale Anzahl von %1$.0f Beiträgen erreicht."
+#: ../../mod/filestorage.php:85
+msgid "File not found."
+msgstr "Datei nicht gefunden."
-#: ../../mod/item.php:1159
-#, php-format
-msgid "You have reached your limit of %1$.0f webpages."
-msgstr "Du hast die maximale Anzahl von %1$.0f Webseiten erreicht."
+#: ../../mod/filestorage.php:119
+msgid "Edit file permissions"
+msgstr "Dateiberechtigungen bearbeiten"
-#: ../../mod/siteinfo.php:51
-#, php-format
-msgid "Version %s"
-msgstr "Version %s"
+#: ../../mod/filestorage.php:124 ../../mod/photos.php:607
+#: ../../mod/photos.php:950
+msgid "Permissions"
+msgstr "Berechtigungen"
-#: ../../mod/siteinfo.php:65
-msgid "Installed plugins/addons/apps:"
-msgstr "Installierte Plugins/Addons/Apps"
+#: ../../mod/filestorage.php:126
+msgid "Include all files and sub folders"
+msgstr "Alle Dateien und Unterverzeichnisse einbinden"
-#: ../../mod/siteinfo.php:78
-msgid "No installed plugins/addons/apps"
-msgstr "Keine installierten Plugins/Addons/Apps"
+#: ../../mod/filestorage.php:127
+msgid "Return to file list"
+msgstr "Zurück zur Dateiliste"
-#: ../../mod/siteinfo.php:81
-msgid "Red"
-msgstr "Red"
+#: ../../mod/filestorage.php:129
+msgid "Copy/paste this code to attach file to a post"
+msgstr "Diesen Code kopieren und einfügen, um die Datei an einen Beitrag anzuhängen"
-#: ../../mod/siteinfo.php:82
-msgid ""
-"This is a hub of the Red Matrix - a global cooperative network of "
-"decentralised privacy enhanced websites."
-msgstr "Dieser Server ist Teil der Red-Matrix – einem global vernetzten Verbund aus dezentralen Websites mit Rücksicht auf die Privatsphäre."
+#: ../../mod/filestorage.php:130
+msgid "Copy/paste this URL to link file from a web page"
+msgstr "Diese URL verwenden, um von einer Webseite aus auf die Datei zu verlinken"
-#: ../../mod/siteinfo.php:84
-msgid "Running at web location"
-msgstr "Erreichbar unter der Web-Adresse"
+#: ../../mod/filestorage.php:167
+msgid "Download"
+msgstr "Download"
-#: ../../mod/siteinfo.php:85
-msgid ""
-"Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more "
-"about the Red Matrix."
-msgstr "Besuche <a href=\"http://getzot.com\">GetZot.com</a> um mehr über die Red Matrix zu erfahren."
+#: ../../mod/filestorage.php:173
+msgid "Used: "
+msgstr "Verwendet:"
-#: ../../mod/siteinfo.php:86
-msgid "Bug reports and issues: please visit"
-msgstr "Probleme oder Fehler gefunden? Bitte besuche"
+#: ../../mod/filestorage.php:174
+msgid "[directory]"
+msgstr "[Verzeichnis]"
-#: ../../mod/siteinfo.php:89
-msgid ""
-"Suggestions, praise, donations, etc. - please email \"redmatrix\" at "
-"librelist - dot com"
-msgstr "Vorschläge, Lob, Spenden usw.: E-Mail an 'redmatrix' at librelist - dot - com"
+#: ../../mod/filestorage.php:176
+msgid "Limit: "
+msgstr "Limit:"
-#: ../../mod/suggest.php:41
+#: ../../mod/suggest.php:35
msgid ""
"No suggestions available. If this is a new site, please try again in 24 "
"hours."
-msgstr "Keine Vorschläge vorhanden. Wenn dies eine neue Seite ist versuche es bitte in 24 Stunden erneut."
+msgstr "Keine Vorschläge vorhanden. Wenn das ein neuer Server ist, versuche es in 24 Stunden noch einmal."
-#: ../../mod/suggest.php:58
-msgid "Ignore/Hide"
-msgstr "Ignorieren/Verstecken"
+#: ../../mod/message.php:41
+msgid "Conversation removed."
+msgstr "Unterhaltung gelöscht."
+
+#: ../../mod/message.php:56
+msgid "No messages."
+msgstr "Keine Nachrichten."
+
+#: ../../mod/message.php:74
+msgid "D, d M Y - g:i A"
+msgstr "D, d. M Y - g:i A"
#: ../../mod/pubsites.php:22
msgid "Public Sites"
-msgstr "Öffentliche Seiten"
+msgstr "Öffentliche Server"
#: ../../mod/pubsites.php:25
msgid ""
@@ -6713,15 +6818,15 @@ msgid ""
"in the matrix as a whole. Some sites may require subscription or provide "
"tiered service plans. The provider links <strong>may</strong> provide "
"additional details."
-msgstr "Die hier aufgeführten Seiten erlauben dir einen Account in der Red Matrix anzulegen. Alle Seiten der Matrix sind mit einander verbunden, so dass die Mitgliedschaft auf einer Seite die Mitgliedschaft auf einer beliebigen anderen Seite der Matrix beinhaltet. Es könnte sein, dass einige dieser Seiten Abonnements benötigen oder abgestufte Service-Pläne anbieten. Auf den jeweiligen Seiten <strong>könnten</strong> nähere Details diesbezüglich stehen."
+msgstr "Die hier aufgeführten Server erlauben Dir, einen Account in der Red-Matrix anzulegen. Alle Server der Matrix sind miteinander verbunden, so dass die Mitgliedschaft auf einem Server eine Verbindung zu beliebigen anderen Servern der Matrix ermöglicht. Es könnte sein, dass einige dieser Server kostenpflichtig sind oder abgestufte, je nach Umfang kostenpflichtige Mitgliedschaften anbieten. Auf den jeweiligen Seiten <strong>könnten</strong> nähere Details dazu stehen."
#: ../../mod/pubsites.php:31
msgid "Site URL"
-msgstr "URL der Seite"
+msgstr "Server-URL"
#: ../../mod/pubsites.php:31
msgid "Access Type"
-msgstr "Zugangs Typ"
+msgstr "Zugangstyp"
#: ../../mod/pubsites.php:31
msgid "Registration Policy"
@@ -6729,12 +6834,12 @@ msgstr "Registrierungsrichtlinien"
#: ../../mod/register.php:43
msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
-msgstr "Maximale Anzahl von Neuanmeldungen erreicht. Bitte versuche es morgen noch einmal."
+msgstr "Maximale Anzahl täglicher Neuanmeldungen erreicht. Bitte versuche es morgen noch einmal."
#: ../../mod/register.php:49
msgid ""
"Please indicate acceptance of the Terms of Service. Registration failed."
-msgstr "Bitte stimme den Nutzungsbedingungen zu. Anmeldung fehlgeschlagen."
+msgstr "Bitte stimme den Nutzungsbedingungen zu. Registrierung fehlgeschlagen."
#: ../../mod/register.php:77
msgid "Passwords do not match."
@@ -6744,7 +6849,7 @@ msgstr "Passwörter stimmen nicht überein."
msgid ""
"Registration successful. Please check your email for validation "
"instructions."
-msgstr "Registrierung erfolgreich. Eine E-Mail mit weiteren Anweisungen wurde an dich gesendet."
+msgstr "Registrierung erfolgreich. Eine E-Mail mit weiteren Anweisungen wurde an Dich gesendet."
#: ../../mod/register.php:111
msgid "Your registration is pending approval by the site owner."
@@ -6754,74 +6859,71 @@ msgstr "Deine Registrierung muss noch vom Betreiber der Seite freigegeben werden
msgid "Your registration can not be processed."
msgstr "Deine Registrierung konnte nicht verarbeitet werden."
-#: ../../mod/register.php:149
+#: ../../mod/register.php:147
+msgid "Registration on this site/hub is by approval only."
+msgstr "Anmeldungen auf diesem Server erfordern Zustimmung durch den Administrator"
+
+#: ../../mod/register.php:148
+msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>"
+msgstr "<a href=\"pubsites\">Registrierung auf einem anderen, angeschlossenen Server</a>"
+
+#: ../../mod/register.php:156
msgid ""
"This site has exceeded the number of allowed daily account registrations. "
"Please try again tomorrow."
-msgstr "Die maximale Anzahl täglicher Registrierungen auf dieser Seite wurde überschritten. Bitte versuche es morgen noch einmal."
+msgstr "Die maximale Anzahl täglicher Registrierungen auf diesem Server wurde überschritten. Bitte versuche es morgen noch einmal."
-#: ../../mod/register.php:160
+#: ../../mod/register.php:167
msgid "Terms of Service"
msgstr "Nutzungsbedingungen"
-#: ../../mod/register.php:166
+#: ../../mod/register.php:173
#, php-format
msgid "I accept the %s for this website"
msgstr "Ich akzeptiere die %s für diese Webseite"
-#: ../../mod/register.php:168
+#: ../../mod/register.php:175
#, php-format
msgid "I am over 13 years of age and accept the %s for this website"
msgstr "Ich bin älter als 13 Jahre und akzeptiere die %s dieser Webseite"
-#: ../../mod/register.php:183
+#: ../../mod/register.php:194
msgid "Membership on this site is by invitation only."
msgstr "Mitgliedschaft auf dieser Seite ist nur nach vorheriger Einladung möglich."
-#: ../../mod/register.php:184
+#: ../../mod/register.php:195
msgid "Please enter your invitation code"
-msgstr "Bitte trage deinen Einladungs-Code ein"
+msgstr "Bitte trage Deinen Einladungs-Code ein"
-#: ../../mod/register.php:187
+#: ../../mod/register.php:198
msgid "Your email address"
msgstr "Ihre E-Mail Adresse"
-#: ../../mod/register.php:188
+#: ../../mod/register.php:199
msgid "Choose a password"
msgstr "Passwort"
-#: ../../mod/register.php:189
+#: ../../mod/register.php:200
msgid "Please re-enter your password"
-msgstr "Bitte gib dein Passwort noch einmal ein"
+msgstr "Bitte gib Dein Passwort noch einmal ein"
#: ../../mod/regmod.php:12
msgid "Please login."
msgstr "Bitte melde dich an."
-#: ../../mod/post.php:119
-msgid ""
-"Remote authentication blocked. You are logged into this site locally. Please"
-" logout and retry."
-msgstr "Entfernte Authentifizierung blockiert. Du bist lokal auf dieser Seite angemeldet. Bitte melde dich ab und versuche es erneut."
-
-#: ../../mod/post.php:132
-#, php-format
-msgid "Welcome %s. Remote authentication successful."
-msgstr "Willkommen %s. Entfernte Authentifizierung erfolgreich."
-
#: ../../mod/removeme.php:49
msgid "Remove This Channel"
-msgstr "Diesen Kanal löschen!"
+msgstr "Diesen Kanal löschen"
#: ../../mod/removeme.php:50
msgid ""
"This will completely remove this channel from the network. Once this has "
"been done it is not recoverable."
-msgstr "Hiermit wird dieser Kanal komplett aus dem Netzwerk gelöscht. Einmal eingeleitet ist dieser Prozess nicht widerrufbar."
+msgstr "Hiermit wird dieser Kanal komplett aus dem Netzwerk gelöscht. Einmal eingeleitet kann dieser Prozess nicht rückgängig gemacht werden."
#: ../../mod/removeme.php:51
msgid "Please enter your password for verification:"
-msgstr "Bitte gib zur Bestätigung dein Passwort ein:"
+msgstr "Bitte gib zur Bestätigung Dein Passwort ein:"
#: ../../mod/removeme.php:52
msgid "Remove this channel and all its clones from the network"
@@ -6831,144 +6933,260 @@ msgstr "Lösche diesen Kanal und all seine Klone aus dem Netzwerk"
msgid ""
"By default only the instance of the channel located on this hub will be "
"removed from the network"
-msgstr "Standartmäßig wird der Kanal nur auf diesem Knoten gelöscht, seine Klone verbleiben im Netzwerk"
+msgstr "Standardmäßig wird der Kanal nur auf diesem Server gelöscht, seine Klone verbleiben im Netzwerk"
#: ../../mod/removeme.php:53
-msgid "Remove My Account"
-msgstr "Mein Konto entfernen"
+msgid "Remove Channel"
+msgstr "Kanal löschen"
-#: ../../mod/directory.php:163
-msgid "Gender: "
-msgstr "Geschlecht:"
+#: ../../mod/photos.php:77
+msgid "Page owner information could not be retrieved."
+msgstr "Informationen über den Besitzer der Seite konnten nicht gefunden werden."
-#: ../../mod/directory.php:222
-msgid "Finding:"
-msgstr "Ergebnisse:"
+#: ../../mod/photos.php:97
+msgid "Album not found."
+msgstr "Album nicht gefunden."
-#: ../../mod/directory.php:230
-msgid "next page"
-msgstr "nächste Seite"
+#: ../../mod/photos.php:119 ../../mod/photos.php:672
+msgid "Delete Album"
+msgstr "Album löschen"
-#: ../../mod/directory.php:230
-msgid "previous page"
-msgstr "vorige Seite"
+#: ../../mod/photos.php:159 ../../mod/photos.php:955
+msgid "Delete Photo"
+msgstr "Foto löschen"
-#: ../../mod/directory.php:237
-msgid "No entries (some entries may be hidden)."
-msgstr "Keine Einträge gefunden (einige könnten versteckt sein)."
+#: ../../mod/photos.php:453
+msgid "No photos selected"
+msgstr "Keine Fotos ausgewählt"
+
+#: ../../mod/photos.php:500
+msgid "Access to this item is restricted."
+msgstr "Der Zugriff auf dieses Foto ist eingeschränkt."
+
+#: ../../mod/photos.php:577
+#, php-format
+msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."
+msgstr "Du benutzt %1$.2f MBytes Deines %2$.2f MBytes großen Bilder-Speichers."
+
+#: ../../mod/photos.php:580
+#, php-format
+msgid "You have used %1$.2f Mbytes of photo storage."
+msgstr "Du verwendest %1$.2f MBytes Deines Foto-Speichers."
+
+#: ../../mod/photos.php:599
+msgid "Upload Photos"
+msgstr "Fotos hochladen"
+
+#: ../../mod/photos.php:603 ../../mod/photos.php:667
+msgid "New album name: "
+msgstr "Name des neuen Albums:"
+
+#: ../../mod/photos.php:604
+msgid "or existing album name: "
+msgstr "Oder bestehender Album-Name:"
+
+#: ../../mod/photos.php:605
+msgid "Do not show a status post for this upload"
+msgstr "Keine Statusnachricht für diesen Upload senden"
+
+#: ../../mod/photos.php:656 ../../mod/photos.php:678 ../../mod/photos.php:1127
+#: ../../mod/photos.php:1142
+msgid "Contact Photos"
+msgstr "Kontakt-Bilder"
+
+#: ../../mod/photos.php:682
+msgid "Edit Album"
+msgstr "Album bearbeiten"
+
+#: ../../mod/photos.php:688
+msgid "Show Newest First"
+msgstr "Zeige Neueste zuerst"
+
+#: ../../mod/photos.php:690
+msgid "Show Oldest First"
+msgstr "Zeige Älteste zuerst"
+
+#: ../../mod/photos.php:733 ../../mod/photos.php:1174
+msgid "View Photo"
+msgstr "Foto ansehen"
+
+#: ../../mod/photos.php:779
+msgid "Permission denied. Access to this item may be restricted."
+msgstr "Berechtigung verweigert. Der Zugriff ist wahrscheinlich eingeschränkt worden."
+
+#: ../../mod/photos.php:781
+msgid "Photo not available"
+msgstr "Foto nicht verfügbar"
+
+#: ../../mod/photos.php:841
+msgid "Use as profile photo"
+msgstr "Als Profilfoto verwenden"
+
+#: ../../mod/photos.php:865
+msgid "View Full Size"
+msgstr "In voller Größe anzeigen"
+
+#: ../../mod/photos.php:939
+msgid "Edit photo"
+msgstr "Foto bearbeiten"
+
+#: ../../mod/photos.php:941
+msgid "Rotate CW (right)"
+msgstr "Drehen im UZS (rechts)"
+
+#: ../../mod/photos.php:942
+msgid "Rotate CCW (left)"
+msgstr "Drehen gegen UZS (links)"
+
+#: ../../mod/photos.php:944
+msgid "New album name"
+msgstr "Name des neuen Albums:"
+
+#: ../../mod/photos.php:947
+msgid "Caption"
+msgstr "Bildunterschrift"
+
+#: ../../mod/photos.php:949
+msgid "Add a Tag"
+msgstr "Schlagwort hinzufügen"
+
+#: ../../mod/photos.php:952
+msgid ""
+"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
+msgstr "Beispiel: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
+
+#: ../../mod/photos.php:1105
+msgid "In This Photo:"
+msgstr "Auf diesem Foto:"
+
+#: ../../mod/photos.php:1180
+msgid "View Album"
+msgstr "Album ansehen"
+
+#: ../../mod/photos.php:1189
+msgid "Recent Photos"
+msgstr "Neueste Fotos"
-#: ../../mod/mood.php:133
+#: ../../mod/mood.php:138
msgid "Mood"
msgstr "Laune"
-#: ../../mod/mood.php:134
+#: ../../mod/mood.php:139
msgid "Set your current mood and tell your friends"
-msgstr "Wähle deine aktuelle Stimmung und erzähle sie deinen Freunden"
+msgstr "Wähle Deine aktuelle Stimmung und teile sie mit Deinen Freunden"
-#: ../../view/theme/redbasic/php/config.php:74
-msgid "Scheme Default"
-msgstr "Standard-Schema"
+#: ../../mod/ping.php:192
+msgid "sent you a private message"
+msgstr "eine private Nachricht schicken"
-#: ../../view/theme/redbasic/php/config.php:75
-msgid "red"
-msgstr "Rot"
+#: ../../mod/ping.php:250
+msgid "added your channel"
+msgstr "hat deinen Kanal hinzugefügt"
+
+#: ../../mod/ping.php:294
+msgid "posted an event"
+msgstr "hat eine Veranstaltung veröffentlicht"
#: ../../view/theme/redbasic/php/config.php:76
-msgid "black"
-msgstr "Schwarz"
+msgid "Scheme Default"
+msgstr "Standard-Schema"
-#: ../../view/theme/redbasic/php/config.php:77
+#: ../../view/theme/redbasic/php/config.php:87
msgid "silver"
-msgstr "Silber"
+msgstr "silbern"
-#: ../../view/theme/redbasic/php/config.php:88
+#: ../../view/theme/redbasic/php/config.php:98
#: ../../view/theme/apw/php/config.php:234
#: ../../view/theme/blogga/view/theme/blog/config.php:69
#: ../../view/theme/blogga/php/config.php:69
msgid "Theme settings"
msgstr "Theme-Einstellungen"
-#: ../../view/theme/redbasic/php/config.php:89
+#: ../../view/theme/redbasic/php/config.php:99
#: ../../view/theme/apw/php/config.php:235
msgid "Set scheme"
msgstr "Schema"
-#: ../../view/theme/redbasic/php/config.php:90
+#: ../../view/theme/redbasic/php/config.php:100
msgid "Navigation bar colour"
msgstr "Farbe der Navigationsleiste"
-#: ../../view/theme/redbasic/php/config.php:91
+#: ../../view/theme/redbasic/php/config.php:101
+msgid "link colour"
+msgstr "Farbe der Links"
+
+#: ../../view/theme/redbasic/php/config.php:102
msgid "Set font-colour for banner"
msgstr "Farbe des Banners"
-#: ../../view/theme/redbasic/php/config.php:92
+#: ../../view/theme/redbasic/php/config.php:103
msgid "Set the background colour"
msgstr "Hintergrundfarbe"
-#: ../../view/theme/redbasic/php/config.php:93
+#: ../../view/theme/redbasic/php/config.php:104
msgid "Set the background image"
msgstr "Hintergrundbild"
-#: ../../view/theme/redbasic/php/config.php:94
+#: ../../view/theme/redbasic/php/config.php:105
msgid "Set the background colour of items"
msgstr "Hintergrundfarbe von Beiträgen"
-#: ../../view/theme/redbasic/php/config.php:95
+#: ../../view/theme/redbasic/php/config.php:106
msgid "Set the opacity of items"
msgstr "Deckkraft von Beiträgen"
-#: ../../view/theme/redbasic/php/config.php:96
+#: ../../view/theme/redbasic/php/config.php:107
msgid "Set the basic colour for item icons"
msgstr "Basisfarbe der Beitrags-Icons"
-#: ../../view/theme/redbasic/php/config.php:97
+#: ../../view/theme/redbasic/php/config.php:108
msgid "Set the hover colour for item icons"
msgstr "Farbe für Beitrags-Icons unter dem Mauszeiger"
-#: ../../view/theme/redbasic/php/config.php:98
+#: ../../view/theme/redbasic/php/config.php:109
msgid "Set font-size for the entire application"
msgstr "Schriftgröße für die ganze Applikation"
-#: ../../view/theme/redbasic/php/config.php:99
+#: ../../view/theme/redbasic/php/config.php:110
#: ../../view/theme/apw/php/config.php:236
msgid "Set font-size for posts and comments"
-msgstr "Wähle die Schriftgröße für Beiträge und Kommentare"
+msgstr "Schriftgröße für Beiträge und Kommentare"
-#: ../../view/theme/redbasic/php/config.php:100
+#: ../../view/theme/redbasic/php/config.php:111
msgid "Set font-colour for posts and comments"
msgstr "Schriftfarbe für Beiträge und Kommentare"
-#: ../../view/theme/redbasic/php/config.php:101
+#: ../../view/theme/redbasic/php/config.php:112
msgid "Set radius of corners"
msgstr "Ecken-Radius"
-#: ../../view/theme/redbasic/php/config.php:102
+#: ../../view/theme/redbasic/php/config.php:113
msgid "Set shadow depth of photos"
msgstr "Schattentiefe von Fotos"
-#: ../../view/theme/redbasic/php/config.php:103
+#: ../../view/theme/redbasic/php/config.php:114
msgid "Set maximum width of conversation regions"
-msgstr "Maximalbreite der Konversationsbereiche"
+msgstr "Maximalbreite der Unterhaltungsbereiche"
-#: ../../view/theme/redbasic/php/config.php:104
+#: ../../view/theme/redbasic/php/config.php:115
msgid "Set minimum opacity of nav bar - to hide it"
msgstr "Mindest-Deckkraft der Navigationsleiste ( - versteckt sie)"
-#: ../../view/theme/redbasic/php/config.php:105
+#: ../../view/theme/redbasic/php/config.php:116
msgid "Set size of conversation author photo"
msgstr "Größe der Avatare von Themenstartern"
-#: ../../view/theme/redbasic/php/config.php:106
+#: ../../view/theme/redbasic/php/config.php:117
msgid "Set size of followup author photos"
msgstr "Größe der Avatare von Kommentatoren"
-#: ../../view/theme/redbasic/php/config.php:107
+#: ../../view/theme/redbasic/php/config.php:118
msgid "Sloppy photo albums"
msgstr "Schräge Fotoalben"
-#: ../../view/theme/redbasic/php/config.php:107
+#: ../../view/theme/redbasic/php/config.php:118
msgid "Are you a clean desk or a messy desk person?"
-msgstr "Bist du jemand der einen aufgeräumten Schreibtisch hat, oder eher einen chaotischen?"
+msgstr "Bist Du jemand, der einen aufgeräumten Schreibtisch hat, oder eher einen chaotischen?"
#: ../../view/theme/apw/php/config.php:193
#: ../../view/theme/apw/php/config.php:211
@@ -6989,7 +7207,7 @@ msgstr "Schriftart"
#: ../../view/theme/apw/php/config.php:238
msgid "Set iconset"
-msgstr "Iconset"
+msgstr "Icon-Set"
#: ../../view/theme/apw/php/config.php:239
msgid "Set big shadow size, default 15px 15px 15px"
@@ -7009,7 +7227,7 @@ msgstr "Ecken-Radius (Default 5px)"
#: ../../view/theme/apw/php/config.php:243
msgid "Set line-height for posts and comments"
-msgstr "Wähle die Zeilenhöhe in Beiträgen und Kommentaren"
+msgstr "Zeilenhöhe für Beiträge und Kommentare"
#: ../../view/theme/apw/php/config.php:244
msgid "Set background image"
@@ -7057,7 +7275,7 @@ msgstr "Größe des Hintergrund-Elements"
#: ../../view/theme/apw/php/config.php:255
msgid "Item opacity"
-msgstr "Opazität von Beiträgen"
+msgstr "Deckkraft von Beiträgen (z.B. 0.8)"
#: ../../view/theme/apw/php/config.php:256
msgid "Display post previews only"
@@ -7110,113 +7328,41 @@ msgstr "Titelbild"
msgid "Header image only on profile pages"
msgstr "Titelbild nur auf Profil-Seiten anzeigen"
-#: ../../boot.php:1274
+#: ../../boot.php:1234
#, php-format
msgid "Update %s failed. See error logs."
msgstr "Aktualisierung %s fehlgeschlagen. Details in den Fehlerprotokollen."
-#: ../../boot.php:1277
+#: ../../boot.php:1237
#, php-format
msgid "Update Error at %s"
msgstr "Aktualisierungsfehler auf %s"
-#: ../../boot.php:1434
+#: ../../boot.php:1401
msgid ""
"Create an account to access services and applications within the Red Matrix"
-msgstr "Erstelle einen Account um Anwendungen und Dienste innerhalb der Red Matrix verwenden zu können."
+msgstr "Erstelle einen Account, um Anwendungen und Dienste innerhalb der Red-Matrix verwenden zu können."
-#: ../../boot.php:1462
+#: ../../boot.php:1429
msgid "Password"
msgstr "Kennwort"
-#: ../../boot.php:1463
+#: ../../boot.php:1430
msgid "Remember me"
msgstr "Angaben speichern"
-#: ../../boot.php:1468
+#: ../../boot.php:1435
msgid "Forgot your password?"
msgstr "Passwort vergessen?"
-#: ../../boot.php:1533
+#: ../../boot.php:1500
msgid "permission denied"
msgstr "Zugriff verweigert"
-#: ../../boot.php:1534
+#: ../../boot.php:1501
msgid "Got Zot?"
msgstr "Haste schon Zot?"
-#: ../../boot.php:1593
-msgid "Requested channel is not available."
-msgstr "Angeforderte Kanal nicht verfügbar."
-
-#: ../../boot.php:1605
-msgid " Sorry, you don't have the permission to view this profile. "
-msgstr "Entschuldigung, aber du besitzt nicht die nötigen Rechte um dieses Profil ansehen zu dürfen."
-
-#: ../../boot.php:1761
-msgid "Profiles"
-msgstr "Profile"
-
-#: ../../boot.php:1761
-msgid "Manage/edit profiles"
-msgstr "Verwalte/Bearbeite Profile"
-
-#: ../../boot.php:1765
-msgid "Edit Profile"
-msgstr "Profile bearbeiten"
-
-#: ../../boot.php:1859 ../../boot.php:1939
-msgid "F d"
-msgstr "d. F"
-
-#: ../../boot.php:1916
-msgid "Birthday Reminders"
-msgstr "Geburtstags Erinnerungen"
-
-#: ../../boot.php:1917
-msgid "Birthdays this week:"
-msgstr "Geburtstage in dieser Woche:"
-
-#: ../../boot.php:1972
-msgid "[No description]"
-msgstr "[Keine Beschreibung]"
-
-#: ../../boot.php:1990
-msgid "Event Reminders"
-msgstr "Veranstaltungs- Erinnerungen"
-
-#: ../../boot.php:1991
-msgid "Events this week:"
-msgstr "Veranstaltungen in dieser Woche:"
-
-#: ../../boot.php:2225
-msgid "Channel"
-msgstr "Kanal"
-
-#: ../../boot.php:2228
-msgid "Status Messages and Posts"
-msgstr "Statusnachrichten und Beiträge"
-
-#: ../../boot.php:2232
-msgid "About"
-msgstr "Ãœber"
-
-#: ../../boot.php:2235
-msgid "Profile Details"
-msgstr "Profil-Details"
-
-#: ../../boot.php:2253
-msgid "Events and Calendar"
-msgstr "Veranstaltungen und Kalender"
-
-#: ../../boot.php:2258
-msgid "Webpages"
-msgstr "Webseiten"
-
-#: ../../boot.php:2261
-msgid "Manage Webpages"
-msgstr "Webseiten verwalten"
-
-#: ../../boot.php:2546
+#: ../../boot.php:1906
msgid "toggle mobile"
-msgstr "auf/von Mobile Ansicht wechseln"
+msgstr "auf/von mobile Ansicht wechseln"
diff --git a/view/de/strings.php b/view/de/strings.php
index 92360da79..ee694c324 100644
--- a/view/de/strings.php
+++ b/view/de/strings.php
@@ -4,6 +4,45 @@ function string_plural_select_de($n){
return ($n != 1);;
}
;
+$a->strings["Categories"] = "Kategorien";
+$a->strings["Connect"] = "Verbinden";
+$a->strings["Ignore/Hide"] = "Ignorieren/Verstecken";
+$a->strings["Suggestions"] = "Vorschläge";
+$a->strings["See more..."] = "Mehr anzeigen …";
+$a->strings["You have %1$.0f of %2$.0f allowed connections."] = "Du bist %1$.0f von maximal %2$.0f erlaubten Verbindungen eingegangen.";
+$a->strings["Add New Connection"] = "Neue Verbindung hinzufügen";
+$a->strings["Enter the channel address"] = "Adresse des Kanals eingeben";
+$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Beispiel: bob@beispiel.com, http://beispiel.com/barbara";
+$a->strings["Notes"] = "Notizen";
+$a->strings["Save"] = "Speichern";
+$a->strings["Remove term"] = "Eintrag löschen";
+$a->strings["Saved Searches"] = "Gesicherte Suchanfragen";
+$a->strings["add"] = "hinzufügen";
+$a->strings["Saved Folders"] = "Gesicherte Ordner";
+$a->strings["Everything"] = "Alles";
+$a->strings["Archives"] = "Archive";
+$a->strings["Refresh"] = "Aktualisieren";
+$a->strings["Me"] = "Ich";
+$a->strings["Best Friends"] = "Beste Freunde";
+$a->strings["Friends"] = "Freunde";
+$a->strings["Co-workers"] = "Kollegen";
+$a->strings["Former Friends"] = "ehem. Freunde";
+$a->strings["Acquaintances"] = "Bekannte";
+$a->strings["Everybody"] = "Jeder";
+$a->strings["Account settings"] = "Konto-Einstellungen";
+$a->strings["Channel settings"] = "Kanal-Einstellungen";
+$a->strings["Additional features"] = "Zusätzliche Funktionen";
+$a->strings["Feature settings"] = "Funktions-Einstellungen";
+$a->strings["Display settings"] = "Anzeige-Einstellungen";
+$a->strings["Connected apps"] = "Verbundene Apps";
+$a->strings["Export channel"] = "Kanal exportieren";
+$a->strings["Automatic Permissions (Advanced)"] = "Automatische Berechtigungen (Erweitert)";
+$a->strings["Premium Channel Settings"] = "Premium-Kanal-Einstellungen";
+$a->strings["Channel Sources"] = "Kanal-Quellen";
+$a->strings["Settings"] = "Einstellungen";
+$a->strings["Check Mail"] = "E-Mails abrufen";
+$a->strings["New Message"] = "Neue Nachricht";
+$a->strings["Chat Rooms"] = "Chaträume";
$a->strings["Visible to everybody"] = "Für jeden sichtbar";
$a->strings["show"] = "zeigen";
$a->strings["don't show"] = "Verbergen";
@@ -12,98 +51,213 @@ $a->strings["public profile"] = "öffentliches Profil";
$a->strings["%1\$s changed %2\$s to &ldquo;%3\$s&rdquo;"] = "%1\$s hat %2\$s auf &ldquo;%3\$s&rdquo; geändert";
$a->strings["Visit %1\$s's %2\$s"] = "Besuche %1\$s's %2\$s";
$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s hat ein aktualisiertes %2\$s, %3\$s wurde verändert.";
-$a->strings["Red Matrix Notification"] = "Red Matrix Benachrichtigung";
-$a->strings["redmatrix"] = "redmatrix";
-$a->strings["Thank You,"] = "Danke.";
-$a->strings["%s Administrator"] = "%s Administrator";
-$a->strings["%s <!item_type!>"] = "%s <!item_type!>";
-$a->strings["[Red:Notify] New mail received at %s"] = "[Red Notify] Neue Mail auf %s empfangen";
-$a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s hat dir eine private Nachricht auf %3\$s gesendet.";
-$a->strings["%1\$s sent you %2\$s."] = "%1\$s hat dir %2\$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 die private Nachricht anzusehen und/oder darauf zu antworten.";
-$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s hat [zrl=%3\$s]a %4\$s[/zrl] kommentiert";
-$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s hat [zrl=%3\$s]%4\$ss %5\$s[/zrl] kommentiert";
-$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s hat [zrl=%3\$s]deinen %4\$s[/zrl] kommentiert";
-$a->strings["[Red:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Red:Notify] Kommentar in Unterhaltung #%1\$d von %2\$s";
-$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s hat ein Thema kommentiert, dem du folgst.";
-$a->strings["Please visit %s to view and/or reply to the conversation."] = "Bitte besuche %s, um die Konversation anzusehen und/oder zu kommentieren.";
-$a->strings["[Red:Notify] %s posted to your profile wall"] = "[Red:Hinweis] %s schrieb auf Deine Pinnwand";
-$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s hat auf deine Pinnwand auf %3\$s geschrieben";
-$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s hat auf [zrl=%3\$s]deine Pinnwand[/zrl] geschrieben";
-$a->strings["[Red:Notify] %s tagged you"] = "[Red Notify] %s hat dich getaggt";
-$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s hat dich auf %3\$s getaggt";
-$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]hat dich erwähnt[/zrl].";
-$a->strings["[Red:Notify] %1\$s poked you"] = "[Red Notify] %1\$s hat dich angestupst";
-$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s hat dich auf %3\$s angestubst";
-$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]hat dich angestupst[/zrl].";
-$a->strings["[Red:Notify] %s tagged your post"] = "[Red:Hinweis] %s hat Dich getagged";
-$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s hat deinen Beitrag auf %3\$s getaggt";
-$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s hat [zrl=%3\$s]deinen Beitrag[/zrl] getaggt";
-$a->strings["[Red:Notify] Introduction received"] = "[Red:Notify] Vorstellung erhalten";
-$a->strings["%1\$s, you've received an introduction from '%2\$s' at %3\$s"] = "%1\$s, du hast eine Vorstellung von „%2\$s“ auf %3\$s erhalten";
-$a->strings["%1\$s, you've received [zrl=%2\$s]an introduction[/zrl] from %3\$s."] = "%1\$s, du hast [zrl=%2\$s]eine Vorstellung[/zrl] von %3\$s erhalten.";
-$a->strings["You may visit their profile at %s"] = "Du kannst Dir das Profil unter %s ansehen";
-$a->strings["Please visit %s to approve or reject the introduction."] = "Bitte besuche %s um sie anzunehmen oder abzulehnen.";
-$a->strings["[Red:Notify] Friend suggestion received"] = "[Red:Hinweis] Freundschaftsvorschlag erhalten";
-$a->strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, du hast einen Freundschaftsvorschlag von „%2\$s“ auf %3\$s erhalten";
-$a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, du hast [zrl=%2\$s]einen Freundschaftvorschlag[/zrl] für %3\$s von %4\$s erhalten.";
-$a->strings["Name:"] = "Name:";
-$a->strings["Photo:"] = "Foto:";
-$a->strings["Please visit %s to approve or reject the suggestion."] = "Bitte besuche %s um den Vorschlag zu akzeptieren oder abzulehnen.";
-$a->strings["Private Message"] = "Private Nachricht";
-$a->strings["Edit"] = "Bearbeiten";
-$a->strings["Delete"] = "Löschen";
-$a->strings["Select"] = "Auswählen";
-$a->strings["save to folder"] = "In Ordner speichern";
-$a->strings["add star"] = "markieren";
-$a->strings["remove star"] = "Markierung entfernen";
-$a->strings["toggle star status"] = "Stern-Status umschalten";
-$a->strings["starred"] = "markiert";
-$a->strings["Message is verified"] = "Nachricht überprüft";
-$a->strings["add tag"] = "Schlagwort hinzufügen";
-$a->strings["I like this (toggle)"] = "Ich mag das (Umschalter)";
-$a->strings["like"] = "Gefällt-mir";
-$a->strings["I don't like this (toggle)"] = "Ich mag das nicht (Umschalter)";
-$a->strings["dislike"] = "Gefällt-mir-nicht";
-$a->strings["Share this"] = "Teile dies";
-$a->strings["share"] = "Teilen";
-$a->strings["View %s's profile - %s"] = "Schaue dir %s's Profil an - %s";
-$a->strings["to"] = "zu";
-$a->strings["via"] = "via";
-$a->strings["Wall-to-Wall"] = "Wall-to-Wall";
-$a->strings["via Wall-To-Wall:"] = "via Wall-To-Wall:";
-$a->strings[" from %s"] = "von %s";
-$a->strings["last edited: %s"] = "zuletzt bearbeitet: %s";
-$a->strings["Please wait"] = "Bitte warten";
-$a->strings["%d comment"] = array(
- 0 => "%d Kommentar",
- 1 => "%d Kommentare",
+$a->strings["Logout"] = "Abmelden";
+$a->strings["End this session"] = "Beende diese Sitzung";
+$a->strings["Home"] = "Home";
+$a->strings["Your posts and conversations"] = "Deine Beiträge und Unterhaltungen";
+$a->strings["View Profile"] = "Profil ansehen";
+$a->strings["Your profile page"] = "Deine Profilseite";
+$a->strings["Edit Profiles"] = "Profile bearbeiten";
+$a->strings["Manage/Edit profiles"] = "Profile verwalten";
+$a->strings["Photos"] = "Fotos";
+$a->strings["Your photos"] = "Deine Bilder";
+$a->strings["Files"] = "Dateien";
+$a->strings["Your files"] = "Deine Dateien";
+$a->strings["Chat"] = "Chat";
+$a->strings["Your chatrooms"] = "Deine Chaträume";
+$a->strings["Events"] = "Veranstaltungen";
+$a->strings["Your events"] = "Deine Veranstaltungen";
+$a->strings["Bookmarks"] = "Lesezeichen";
+$a->strings["Your bookmarks"] = "Deine Lesezeichen";
+$a->strings["Webpages"] = "Webseiten";
+$a->strings["Your webpages"] = "Deine Webseiten";
+$a->strings["Login"] = "Anmelden";
+$a->strings["Sign in"] = "Anmelden";
+$a->strings["%s - click to logout"] = "%s - Klick zum Abmelden";
+$a->strings["Click to authenticate to your home hub"] = "Klicke, um Dich über Deinen Heimat-Server zu authentifizieren";
+$a->strings["Home Page"] = "Homepage";
+$a->strings["Register"] = "Registrieren";
+$a->strings["Create an account"] = "Erzeuge ein Konto";
+$a->strings["Help"] = "Hilfe";
+$a->strings["Help and documentation"] = "Hilfe und Dokumentation";
+$a->strings["Apps"] = "Apps";
+$a->strings["Addon applications, utilities, games"] = "Addon Programme, Helferlein, Spiele";
+$a->strings["Search"] = "Suche";
+$a->strings["Search site content"] = "Durchsuche Seiten-Inhalt";
+$a->strings["Directory"] = "Verzeichnis";
+$a->strings["Channel Locator"] = "Kanal-Anzeiger";
+$a->strings["Matrix"] = "Matrix";
+$a->strings["Your matrix"] = "Deine Matrix";
+$a->strings["Mark all matrix notifications seen"] = "Markiere alle Matrix-Benachrichtigungen als angesehen";
+$a->strings["Channel Home"] = "Mein Kanal";
+$a->strings["Channel home"] = "Mein Kanal";
+$a->strings["Mark all channel notifications seen"] = "Markiere alle Kanal-Benachrichtigungen als angesehen";
+$a->strings["Intros"] = "Vorstellungen";
+$a->strings["New Connections"] = "Neue Verbindungen";
+$a->strings["Notices"] = "Benachrichtigungen";
+$a->strings["Notifications"] = "Benachrichtigungen";
+$a->strings["See all notifications"] = "Alle Benachrichtigungen ansehen";
+$a->strings["Mark all system notifications seen"] = "Markiere alle System-Benachrichtigungen als gesehen";
+$a->strings["Mail"] = "Mail";
+$a->strings["Private mail"] = "Persönliche Mail";
+$a->strings["See all private messages"] = "Alle persönlichen Nachrichten ansehen";
+$a->strings["Mark all private messages seen"] = "Markiere alle persönlichen Nachrichten als gesehen";
+$a->strings["Inbox"] = "Eingang";
+$a->strings["Outbox"] = "Ausgang";
+$a->strings["Event Calendar"] = "Veranstaltungskalender";
+$a->strings["See all events"] = "Alle Ereignisse ansehen";
+$a->strings["Mark all events seen"] = "Markiere alle Ereignisse als gesehen";
+$a->strings["Channel Select"] = "Kanal-Auswahl";
+$a->strings["Manage Your Channels"] = "Verwalte Deine Kanäle";
+$a->strings["Account/Channel Settings"] = "Konto-/Kanal-Einstellungen";
+$a->strings["Connections"] = "Verbindungen";
+$a->strings["Manage/Edit Friends and Connections"] = "Freunde und Verbindungen verwalten";
+$a->strings["Admin"] = "Admin";
+$a->strings["Site Setup and Configuration"] = "Seiten-Einrichtung und -Konfiguration";
+$a->strings["Nothing new here"] = "Nichts Neues hier";
+$a->strings["Please wait..."] = "Bitte warten...";
+$a->strings["prev"] = "vorherige";
+$a->strings["first"] = "erste";
+$a->strings["last"] = "letzte";
+$a->strings["next"] = "nächste";
+$a->strings["older"] = "älter";
+$a->strings["newer"] = "neuer";
+$a->strings["No connections"] = "Keine Verbindungen";
+$a->strings["%d Connection"] = array(
+ 0 => "%d Verbindung",
+ 1 => "%d Verbindungen",
);
-$a->strings["show more"] = "mehr zeigen";
-$a->strings["This is you"] = "Das bist du";
-$a->strings["Comment"] = "Kommentar";
-$a->strings["Submit"] = "Bestätigen";
-$a->strings["Bold"] = "Fett";
-$a->strings["Italic"] = "Kursiv";
-$a->strings["Underline"] = "Unterstrichen";
-$a->strings["Quote"] = "Zitat";
-$a->strings["Code"] = "Code";
-$a->strings["Image"] = "Bild";
-$a->strings["Link"] = "Link";
-$a->strings["Video"] = "Video";
-$a->strings["Preview"] = "Vorschau";
-$a->strings["Encrypt text"] = "Text verschlüsseln";
-$a->strings["Connect"] = "Verbinden";
+$a->strings["View Connections"] = "Verbindungen anzeigen";
+$a->strings["poke"] = "anstupsen";
+$a->strings["poked"] = "stupste";
+$a->strings["ping"] = "anpingen";
+$a->strings["pinged"] = "pingte";
+$a->strings["prod"] = "knuffen";
+$a->strings["prodded"] = "knuffte";
+$a->strings["slap"] = "ohrfeigen";
+$a->strings["slapped"] = "ohrfeigte";
+$a->strings["finger"] = "befummeln";
+$a->strings["fingered"] = "befummelte";
+$a->strings["rebuff"] = "eine Abfuhr erteilen";
+$a->strings["rebuffed"] = "abfuhrerteilte";
+$a->strings["happy"] = "glücklich";
+$a->strings["sad"] = "traurig";
+$a->strings["mellow"] = "sanft";
+$a->strings["tired"] = "müde";
+$a->strings["perky"] = "frech";
+$a->strings["angry"] = "sauer";
+$a->strings["stupified"] = "verblüfft";
+$a->strings["puzzled"] = "verwirrt";
+$a->strings["interested"] = "interessiert";
+$a->strings["bitter"] = "verbittert";
+$a->strings["cheerful"] = "fröhlich";
+$a->strings["alive"] = "lebendig";
+$a->strings["annoyed"] = "verärgert";
+$a->strings["anxious"] = "unruhig";
+$a->strings["cranky"] = "schrullig";
+$a->strings["disturbed"] = "verstört";
+$a->strings["frustrated"] = "frustriert";
+$a->strings["motivated"] = "motiviert";
+$a->strings["relaxed"] = "entspannt";
+$a->strings["surprised"] = "überrascht";
+$a->strings["Monday"] = "Montag";
+$a->strings["Tuesday"] = "Dienstag";
+$a->strings["Wednesday"] = "Mittwoch";
+$a->strings["Thursday"] = "Donnerstag";
+$a->strings["Friday"] = "Freitag";
+$a->strings["Saturday"] = "Samstag";
+$a->strings["Sunday"] = "Sonntag";
+$a->strings["January"] = "Januar";
+$a->strings["February"] = "Februar";
+$a->strings["March"] = "März";
+$a->strings["April"] = "April";
+$a->strings["May"] = "Mai";
+$a->strings["June"] = "Juni";
+$a->strings["July"] = "Juli";
+$a->strings["August"] = "August";
+$a->strings["September"] = "September";
+$a->strings["October"] = "Oktober";
+$a->strings["November"] = "November";
+$a->strings["December"] = "Dezember";
+$a->strings["unknown.???"] = "unbekannt.???";
+$a->strings["bytes"] = "Bytes";
+$a->strings["remove category"] = "Kategorie entfernen";
+$a->strings["remove from file"] = "aus der Datei entfernen";
+$a->strings["Click to open/close"] = "Klicke zum Öffnen/Schließen";
+$a->strings["link to source"] = "Link zum Originalbeitrag";
+$a->strings["Select a page layout: "] = "Ein Seiten-Layout auswählen:";
+$a->strings["default"] = "Standard";
+$a->strings["Page content type: "] = "Content-Typ der Seite:";
+$a->strings["Select an alternate language"] = "Wähle eine alternative Sprache";
+$a->strings["photo"] = "Foto";
+$a->strings["event"] = "Ereignis";
+$a->strings["status"] = "Status";
+$a->strings["comment"] = "Kommentar";
+$a->strings["activity"] = "Aktivität";
+$a->strings["Design"] = "Design";
+$a->strings["Blocks"] = "Blöcke";
+$a->strings["Menus"] = "Menüs";
+$a->strings["Layouts"] = "Layouts";
+$a->strings["Pages"] = "Seiten";
+$a->strings["Image/photo"] = "Bild/Foto";
+$a->strings["Encrypted content"] = "Verschlüsselter Inhalt";
+$a->strings["QR code"] = "QR-Code";
+$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s schrieb den folgenden %2\$s %3\$s";
+$a->strings["post"] = "Beitrag";
+$a->strings["$1 wrote:"] = "$1 schrieb:";
$a->strings["New window"] = "Neues Fenster";
$a->strings["Open the selected location in a different window or browser tab"] = "Öffne die markierte Adresse in einem neuen Browser Fenster oder Tab";
-$a->strings["Poke"] = "Anstupsen";
-$a->strings["View Status"] = "Status ansehen";
-$a->strings["View Profile"] = "Profil ansehen";
-$a->strings["View Photos"] = "Fotos ansehen";
-$a->strings["Network Posts"] = "Netzwerkbeiträge";
-$a->strings["Edit Contact"] = "Kontakt bearbeiten";
-$a->strings["Send PM"] = "Sende PN";
+$a->strings["General Features"] = "Allgemeine Funktionen";
+$a->strings["Content Expiration"] = "Verfall von Inhalten";
+$a->strings["Remove posts/comments and/or private messages at a future time"] = "Lösche Beiträge, Kommentare und/oder private Nachrichten automatisch zu einem zukünftigen Datum.";
+$a->strings["Multiple Profiles"] = "Mehrfachprofile";
+$a->strings["Ability to create multiple profiles"] = "Mehrfachprofile anlegen können";
+$a->strings["Web Pages"] = "Webseiten";
+$a->strings["Provide managed web pages on your channel"] = "Stelle verwaltete Webseiten in Deinem Kanal zur Verfügung";
+$a->strings["Private Notes"] = "Private Notizen";
+$a->strings["Enables a tool to store notes and reminders"] = "Werkzeug zum Speichern von Notizen und Erinnerungen aktivieren";
+$a->strings["Extended Identity Sharing"] = "Erweitertes Teilen von Identitäten";
+$a->strings["Share your identity with all websites on the internet. When disabled, identity is only shared with sites in the matrix."] = "Teile Deine Identität mit allen Webseiten im Internet. Ist dies deaktiviert, wird Deine Identität nur mit Red-Servern geteilt.";
+$a->strings["Expert Mode"] = "Expertenmodus";
+$a->strings["Enable Expert Mode to provide advanced configuration options"] = "Aktiviere den Expertenmodus, um fortgeschrittene Konfigurationsoptionen zu aktivieren";
+$a->strings["Premium Channel"] = "Premium-Kanal";
+$a->strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Ermöglicht Einschränkungen und Bedingungen für Kontakte dieses Kanals";
+$a->strings["Post Composition Features"] = "Nachbearbeitungsfunktionen";
+$a->strings["Richtext Editor"] = "Formatierungseditor";
+$a->strings["Enable richtext editor"] = "Aktiviere Formatierungseditor";
+$a->strings["Post Preview"] = "Voransicht";
+$a->strings["Allow previewing posts and comments before publishing them"] = "Erlaube Voransicht von Beiträgen und Kommentaren vor Veröffentlichung";
+$a->strings["Automatically import channel content from other channels or feeds"] = "Importiere automatisch Inhalte für diesen Kanal von anderen Kanälen oder Feeds";
+$a->strings["Even More Encryption"] = "Noch mehr Verschlüsselung";
+$a->strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Erlaube optionale Verschlüsselung von Inhalten (Ende-zu-Ende mit geteiltem Sicherheitsschlüssel)";
+$a->strings["Network and Stream Filtering"] = "Netzwerk- und Stream-Filter";
+$a->strings["Search by Date"] = "Suche nach Datum";
+$a->strings["Ability to select posts by date ranges"] = "Möglichkeit, Beiträge nach Zeiträumen auszuwählen";
+$a->strings["Collections Filter"] = "Filter für Sammlung";
+$a->strings["Enable widget to display Network posts only from selected collections"] = "Aktiviere nur Netzwerk-Beiträge von ausgewählten Sammlungen";
+$a->strings["Save search terms for re-use"] = "Gesicherte Suchbegriffe zur Wiederverwendung";
+$a->strings["Network Personal Tab"] = "Persönlicher Netzwerkreiter";
+$a->strings["Enable tab to display only Network posts that you've interacted on"] = "Aktiviere Reiter nur für die Netzwerk-Beiträge, mit denen Du interagiert hast";
+$a->strings["Network New Tab"] = "Netzwerkreiter Neu";
+$a->strings["Enable tab to display all new Network activity"] = "Aktiviere Reiter, um alle neuen Netzwerkaktivitäten zu zeigen";
+$a->strings["Affinity Tool"] = "Beziehungs-Tool";
+$a->strings["Filter stream activity by depth of relationships"] = "Filter Aktivitätenstream nach Tiefe der Beziehung";
+$a->strings["Suggest Channels"] = "Kanäle vorschlagen";
+$a->strings["Show channel suggestions"] = "Kanal-Vorschläge anzeigen";
+$a->strings["Post/Comment Tools"] = "Beitrag-/Kommentar-Tools";
+$a->strings["Edit Sent Posts"] = "Bearbeite gesendete Beiträge";
+$a->strings["Edit and correct posts and comments after sending"] = "Bearbeite und korrigiere Beiträge und Kommentare nach dem Senden";
+$a->strings["Tagging"] = "Verschlagworten";
+$a->strings["Ability to tag existing posts"] = "Möglichkeit, um existierende Beiträge zu verschlagworten";
+$a->strings["Post Categories"] = "Beitrags-Kategorien";
+$a->strings["Add categories to your posts"] = "Kategorien für Beiträge";
+$a->strings["Ability to file posts under folders"] = "Möglichkeit, Beiträge in Verzeichnissen zu sammeln";
+$a->strings["Dislike Posts"] = "Gefällt-mir-nicht Beiträge";
+$a->strings["Ability to dislike posts/comments"] = "„Gefällt mir nicht“ ermöglichen";
+$a->strings["Star Posts"] = "Beiträge mit Sternchen versehen";
+$a->strings["Ability to mark special posts with a star indicator"] = "Möglichkeit, spezielle Beiträge mit Sternchen-Symbol zu markieren";
+$a->strings["Tag Cloud"] = "Schlagwort-Wolke";
+$a->strings["Provide a personal tag cloud on your channel page"] = "Persönliche Schlagwort-Wolke auf Deiner Kanal-Seite anzeigen";
$a->strings["Unknown | Not categorised"] = "Unbekannt | Nicht kategorisiert";
$a->strings["Block immediately"] = "Sofort blockieren";
$a->strings["Shady, spammer, self-marketer"] = "Zwielichtig, Spammer, Selbstdarsteller";
@@ -144,63 +298,11 @@ $a->strings["minutes"] = "Minuten";
$a->strings["second"] = "Sekunde";
$a->strings["seconds"] = "Sekunden";
$a->strings["%1\$d %2\$s ago"] = "vor %1\$d %2\$s";
-$a->strings["Cannot locate DNS info for database server '%s'"] = "Kann die DNS Information für den Datenbank Server '%s' nicht finden";
+$a->strings["Cannot locate DNS info for database server '%s'"] = "Kann die DNS-Informationen für den Datenbank-Server '%s' nicht finden";
$a->strings["l F d, Y \\@ g:i A"] = "l, d. F Y\\\\, H:i";
$a->strings["Starts:"] = "Beginnt:";
$a->strings["Finishes:"] = "Endet:";
$a->strings["Location:"] = "Ort:";
-$a->strings["General Features"] = "Allgemeine Funktionen";
-$a->strings["Content Expiration"] = "Verfall von Inhalten";
-$a->strings["Remove posts/comments and/or private messages at a future time"] = "Lösche Beiträge, Kommentare und/oder private Nachrichten automatisch zu einem zukünftigen Datum.";
-$a->strings["Multiple Profiles"] = "Mehrfachprofile";
-$a->strings["Ability to create multiple profiles"] = "Mehrfachprofile anlegen können";
-$a->strings["Web Pages"] = "Webseiten";
-$a->strings["Provide managed web pages on your channel"] = "Stelle verwaltete Webseiten in Deinem Kanal zur Verfügung";
-$a->strings["Enhanced Photo Albums"] = "Erweitertes Fotoalbum";
-$a->strings["Enable photo album with enhanced features"] = "Aktiviere Fotoalbum mit erweiterten Funktionen";
-$a->strings["Extended Identity Sharing"] = "Erweitertes Teilen von Identitäten";
-$a->strings[" "] = " ";
-$a->strings["Expert Mode"] = "Expertenmodus";
-$a->strings["Enable Expert Mode to provide advanced configuration options"] = "Aktiviere Expertenmodus, um fortgeschrittene Konfiguration zur Verfügung zu stellen";
-$a->strings["Premium Channel"] = "Premium-Kanal";
-$a->strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Erlaubt es dir Einschränkungen für Kontakte und bestimmte Bedingungen an Kontakte zu diesem Kanal zu stellen";
-$a->strings["Post Composition Features"] = "Nachbearbeitungsfunktionen";
-$a->strings["Richtext Editor"] = "Formatierungseditor";
-$a->strings["Enable richtext editor"] = "Aktiviere Formatierungseditor";
-$a->strings["Post Preview"] = "Voransicht";
-$a->strings["Allow previewing posts and comments before publishing them"] = "Erlaube Voransicht von Beiträgen und Kommentaren vor Veröffentlichung";
-$a->strings["Channel Sources"] = "Kanal Quellen";
-$a->strings["Automatically import channel content from other channels or feeds"] = "Importiere automatisch Inhalte für diesen Kanal von anderen Kanälen oder Feeds.";
-$a->strings["Even More Encryption"] = "Noch mehr Verschlüsselung";
-$a->strings["Allow encryption of content end-to-end with a shared secret key"] = "Erlaube Ende-zu-Ende Verschlüsselung von Inhalten, mit einem geteilten geheimen Schlüssel";
-$a->strings["Network and Stream Filtering"] = "Netzwerk- und Stream-Filter";
-$a->strings["Search by Date"] = "Suche nach Datum";
-$a->strings["Ability to select posts by date ranges"] = "Möglichkeit, Beiträge nach Zeiträumen auszuwählen";
-$a->strings["Collections Filter"] = "Filter für Sammlung";
-$a->strings["Enable widget to display Network posts only from selected collections"] = "Aktiviere nur Netzwerk-Beiträge von ausgewählten Sammlungen";
-$a->strings["Saved Searches"] = "Gesicherte Suchanfragen";
-$a->strings["Save search terms for re-use"] = "Gesicherte Suchbegriffe zur Wiederverwendung";
-$a->strings["Network Personal Tab"] = "Persönlicher Netzwerkreiter";
-$a->strings["Enable tab to display only Network posts that you've interacted on"] = "Aktiviere Reiter nur für die Netzwerk-Beiträge, mit denen Du interagiert hast";
-$a->strings["Network New Tab"] = "Netzwerkreiter Neu";
-$a->strings["Enable tab to display all new Network activity"] = "Aktiviere Reiter, um alle neuen Netzwerkaktivitäten zu zeigen";
-$a->strings["Affinity Tool"] = "Beziehungs-Tool";
-$a->strings["Filter stream activity by depth of relationships"] = "Filter Aktivitätenstream nach Tiefe der Beziehung";
-$a->strings["Post/Comment Tools"] = "Beitrag-/Kommentar-Tools";
-$a->strings["Edit Sent Posts"] = "Bearbeite gesendete Beiträge";
-$a->strings["Edit and correct posts and comments after sending"] = "Bearbeite und korrigiere Beiträge und Kommentare nach dem Senden";
-$a->strings["Tagging"] = "Verschlagworten";
-$a->strings["Ability to tag existing posts"] = "Möglichkeit, um existierende Beiträge zu verschlagworten";
-$a->strings["Post Categories"] = "Beitrags-Kategorien";
-$a->strings["Add categories to your posts"] = "Kategorien für Beiträge";
-$a->strings["Saved Folders"] = "Gesicherte Ordner";
-$a->strings["Ability to file posts under folders"] = "Möglichkeit, Beiträge in Verzeichnissen zu sammeln";
-$a->strings["Dislike Posts"] = "Gefällt-mir-nicht Beiträge";
-$a->strings["Ability to dislike posts/comments"] = "Möglichkeit für Gefällt-mir-nicht für Beiträge/Kommentare";
-$a->strings["Star Posts"] = "Beiträge mit Sternchen versehen";
-$a->strings["Ability to mark special posts with a star indicator"] = "Möglichkeit, spezielle Beiträge mit Sternchen-Symbol zu markieren";
-$a->strings["Tag Cloud"] = "Tag Wolke";
-$a->strings["Provide a personal tag cloud on your channel page"] = "Persönliche Schlagwort-Wolke für deine Kanal-Seite anlegen";
$a->strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Ein gelöschte Gruppe mit diesem Namen wurde gefunden. Existierende Zugangsregeln für Elemente <strong>könnten</strong> für diese Gruppe angewendet werden, sowie für alle zukünftigen Elemente.";
$a->strings["Default privacy group for new contacts"] = "Standard-Privatsphärengruppe für neue Kontakte";
$a->strings["All Channels"] = "Alle Kanäle";
@@ -209,14 +311,15 @@ $a->strings["Collections"] = "Sammlungen";
$a->strings["Edit collection"] = "Bearbeite Sammlungen";
$a->strings["Create a new collection"] = "Neue Sammlung erzeugen";
$a->strings["Channels not in any collection"] = "Kanäle, die nicht in einer Sammlung sind";
-$a->strings["add"] = "hinzufügen";
$a->strings["Delete this item?"] = "Dieses Element löschen?";
+$a->strings["Comment"] = "Kommentar";
+$a->strings["show more"] = "mehr zeigen";
$a->strings["show fewer"] = "Zeige weniger";
$a->strings["Password too short"] = "Kennwort zu kurz";
$a->strings["Passwords do not match"] = "Kennwörter stimmen nicht überein";
$a->strings["everybody"] = "alle";
-$a->strings["Secret Passphrase"] = "geheime Passwort-Phrase";
-$a->strings["Passphrase hint"] = "Hinweis zur Phrase";
+$a->strings["Secret Passphrase"] = "geheime Passphrase";
+$a->strings["Passphrase hint"] = "Hinweis zur Passphrase";
$a->strings["timeago.prefixAgo"] = "timeago.prefixAgo";
$a->strings["timeago.suffixAgo"] = "timeago.suffixAgo";
$a->strings["ago"] = "her";
@@ -232,33 +335,180 @@ $a->strings["about a month"] = "ungefähr ein Monat";
$a->strings["%d months"] = "%d Monate";
$a->strings["about a year"] = "ungefähr ein Jahr";
$a->strings["%d years"] = "%d Jahre";
+$a->strings[" "] = " ";
$a->strings["timeago.numbers"] = "timeago.numbers";
$a->strings["No recipient provided."] = "Kein Empfänger angegeben";
$a->strings["[no subject]"] = "[no subject]";
$a->strings["Unable to determine sender."] = "Kann Absender nicht bestimmen.";
$a->strings["Stored post could not be verified."] = "Gespeicherter Beitrag konnten nicht überprüft werden.";
-$a->strings["view full size"] = "In Vollbildansicht anschauen";
$a->strings["Profile Photos"] = "Profilfotos";
+$a->strings["Permission denied."] = "Zugang verweigert";
+$a->strings["Item was not found."] = "Beitrag wurde nicht gefunden.";
+$a->strings["No source file."] = "Keine Quelldatei.";
+$a->strings["Cannot locate file to replace"] = "Kann Datei zum Ersetzen nicht finden";
+$a->strings["Cannot locate file to revise/update"] = "Kann Datei zum Prüfen/Aktualisieren nicht finden";
+$a->strings["File exceeds size limit of %d"] = "Datei überschreitet das Größen-Limit von %d";
+$a->strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Die Größe Deiner Datei-Anhänge hat das Maximum von %1$.0f MByte erreicht.";
+$a->strings["File upload failed. Possible system limit or action terminated."] = "Datei-Upload fehlgeschlagen. Mögliche Systembegrenzung oder abgebrochener Prozess.";
+$a->strings["Stored file could not be verified. Upload failed."] = "Gespeichert Datei konnte nicht verifiziert werden. Upload abgebrochen.";
+$a->strings["Path not available."] = "Pfad nicht verfügbar.";
+$a->strings["Empty pathname"] = "Leere Pfadangabe";
+$a->strings["duplicate filename or path"] = "doppelter Dateiname oder Pfad";
+$a->strings["Path not found."] = "Pfad nicht gefunden.";
+$a->strings["mkdir failed."] = "mkdir fehlgeschlagen.";
+$a->strings["database storage failed."] = "Speichern in der Datenbank fehlgeschlagen.";
+$a->strings["%1\$s's bookmarks"] = "%1\$ss Lesezeichen";
+$a->strings["channel"] = "Kanal";
+$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s gefällt %2\$ss %3\$s";
+$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s gefällt %2\$ss %3\$s nicht";
+$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s ist jetzt mit %2\$s verbunden";
+$a->strings["%1\$s poked %2\$s"] = "%1\$s stupste %2\$s an";
+$a->strings["%1\$s is currently %2\$s"] = "%1\$s ist momentan %2\$s";
+$a->strings["Select"] = "Auswählen";
+$a->strings["Delete"] = "Löschen";
+$a->strings["Message is verified"] = "Nachricht überprüft";
+$a->strings["View %s's profile @ %s"] = "%ss Profil auf %s ansehen";
+$a->strings["Categories:"] = "Kategorien:";
+$a->strings["Filed under:"] = "Gespeichert unter:";
+$a->strings[" from %s"] = "von %s";
+$a->strings["last edited: %s"] = "zuletzt bearbeitet: %s";
+$a->strings["Expires: %s"] = "Verfällt: %s";
+$a->strings["View in context"] = "Im Zusammenhang anschauen";
+$a->strings["Please wait"] = "Bitte warten";
+$a->strings["remove"] = "lösche";
+$a->strings["Loading..."] = "Lädt ...";
+$a->strings["Delete Selected Items"] = "Lösche die ausgewählten Elemente";
+$a->strings["View Source"] = "Quelle anzeigen";
+$a->strings["Follow Thread"] = "Unterhaltung folgen";
+$a->strings["View Status"] = "Status ansehen";
+$a->strings["View Photos"] = "Fotos ansehen";
+$a->strings["Matrix Activity"] = "Matrix-Aktivität";
+$a->strings["Edit Contact"] = "Kontakt bearbeiten";
+$a->strings["Send PM"] = "Sende PN";
+$a->strings["Poke"] = "Anstupsen";
+$a->strings["%s likes this."] = "%s gefällt das.";
+$a->strings["%s doesn't like this."] = "%s gefällt das nicht.";
+$a->strings["<span %1\$s>%2\$d people</span> like this."] = array(
+ 0 => "<span %1\$s>%2\$d Person</span> gefällt das.",
+ 1 => "<span %1\$s>%2\$d Leuten</span> gefällt das.",
+);
+$a->strings["<span %1\$s>%2\$d people</span> don't like this."] = array(
+ 0 => "<span %1\$s>%2\$d Person</span> gefällt das nicht.",
+ 1 => "<span %1\$s>%2\$d Leuten</span> gefällt das nicht.",
+);
+$a->strings["and"] = "und";
+$a->strings[", and %d other people"] = array(
+ 0 => "",
+ 1 => ", und %d andere",
+);
+$a->strings["%s like this."] = "%s gefällt das.";
+$a->strings["%s don't like this."] = "%s gefällt das nicht.";
+$a->strings["Visible to <strong>everybody</strong>"] = "Sichtbar für <strong>jeden</strong>";
+$a->strings["Please enter a link URL:"] = "Gib eine URL ein:";
+$a->strings["Please enter a video link/URL:"] = "Gib einen Video-Link/URL ein:";
+$a->strings["Please enter an audio link/URL:"] = "Gib einen Audio-Link/URL ein:";
+$a->strings["Tag term:"] = "Schlagwort:";
+$a->strings["Save to Folder:"] = "Speichern in Ordner:";
+$a->strings["Where are you right now?"] = "Wo bist Du jetzt grade?";
+$a->strings["Expires YYYY-MM-DD HH:MM"] = "Verfällt YYYY-MM-DD HH;MM";
+$a->strings["Preview"] = "Vorschau";
+$a->strings["Share"] = "Teilen";
+$a->strings["Page link title"] = "Seitentitel-Link";
+$a->strings["Upload photo"] = "Foto hochladen";
+$a->strings["upload photo"] = "Foto hochladen";
+$a->strings["Attach file"] = "Datei anhängen";
+$a->strings["attach file"] = "Datei anfügen";
+$a->strings["Insert web link"] = "Link einfügen";
+$a->strings["web link"] = "Web-Link";
+$a->strings["Insert video link"] = "Video-Link einfügen";
+$a->strings["video link"] = "Video-Link";
+$a->strings["Insert audio link"] = "Audio-Link einfügen";
+$a->strings["audio link"] = "Audio-Link";
+$a->strings["Set your location"] = "Standort";
+$a->strings["set location"] = "Standort";
+$a->strings["Clear browser location"] = "Browser-Standort löschen";
+$a->strings["clear location"] = "Standort löschen";
+$a->strings["Set title"] = "Titel";
+$a->strings["Categories (comma-separated list)"] = "Kategorien (Kommagetrennte Liste)";
+$a->strings["Permission settings"] = "Berechtigungs-Einstellungen";
+$a->strings["permissions"] = "Berechtigungen";
+$a->strings["Public post"] = "Öffentlicher Beitrag";
+$a->strings["Example: bob@example.com, mary@example.com"] = "Beispiel: bob@example.com, mary@example.com";
+$a->strings["Set expiration date"] = "Verfallsdatum";
+$a->strings["Encrypt text"] = "Text verschlüsseln";
+$a->strings["OK"] = "Ok";
+$a->strings["Cancel"] = "Abbrechen";
+$a->strings["Commented Order"] = "Neueste Kommentare";
+$a->strings["Sort by Comment Date"] = "Nach Kommentardatum sortiert";
+$a->strings["Posted Order"] = "Neueste Beiträge";
+$a->strings["Sort by Post Date"] = "Nach Beitragsdatum sortiert";
+$a->strings["Personal"] = "Persönlich";
+$a->strings["Posts that mention or involve you"] = "Beiträge mit Beteiligung Deinerseits";
+$a->strings["New"] = "Neu";
+$a->strings["Activity Stream - by date"] = "Activity Stream – nach Datum sortiert";
+$a->strings["Starred"] = "Markiert";
+$a->strings["Favourite Posts"] = "Markierte Beiträge";
+$a->strings["Spam"] = "Spam";
+$a->strings["Posts flagged as SPAM"] = "Nachrichten, die als SPAM markiert wurden";
+$a->strings["Channel"] = "Kanal";
+$a->strings["Status Messages and Posts"] = "Statusnachrichten und Beiträge";
+$a->strings["About"] = "Ãœber";
+$a->strings["Profile Details"] = "Profil-Details";
+$a->strings["Photo Albums"] = "Fotoalben";
+$a->strings["Files and Storage"] = "Dateien und Speicher";
+$a->strings["Chatrooms"] = "Chaträume";
+$a->strings["Events and Calendar"] = "Veranstaltungen und Kalender";
+$a->strings["Saved Bookmarks"] = "Gespeicherte Lesezeichen";
+$a->strings["Manage Webpages"] = "Webseiten verwalten";
+$a->strings["Unable to obtain identity information from database"] = "Kann keine Identitäts-Informationen aus Datenbank beziehen";
+$a->strings["Empty name"] = "Namensfeld leer";
+$a->strings["Name too long"] = "Name ist zu lang";
+$a->strings["No account identifier"] = "Keine Account-Kennung";
+$a->strings["Nickname is required."] = "Spitzname ist erforderlich.";
+$a->strings["Nickname has unsupported characters or is already being used on this site."] = "Der Spitzname enthält nicht-unterstütze Zeichen oder wird bereits auf dieser Seite genutzt.";
+$a->strings["Unable to retrieve created identity"] = "Kann die erstellte Identität nicht empfangen";
+$a->strings["Default Profile"] = "Standard-Profil";
+$a->strings["Requested channel is not available."] = "Angeforderte Kanal nicht verfügbar.";
+$a->strings[" Sorry, you don't have the permission to view this profile. "] = "Entschuldigung, Du besitzt nicht die nötigen Rechte, um dieses Profil zu betrachten.";
+$a->strings["Requested profile is not available."] = "Erwünschte Profil ist nicht verfügbar.";
+$a->strings["Change profile photo"] = "Profilfoto ändern";
+$a->strings["Profiles"] = "Profile";
+$a->strings["Manage/edit profiles"] = "Verwalte/Bearbeite Profile";
+$a->strings["Create New Profile"] = "Neues Profil erstellen";
+$a->strings["Edit Profile"] = "Profile bearbeiten";
+$a->strings["Profile Image"] = "Profilfoto:";
+$a->strings["visible to everybody"] = "sichtbar für jeden";
+$a->strings["Edit visibility"] = "Sichtbarkeit bearbeiten";
+$a->strings["Gender:"] = "Geschlecht:";
+$a->strings["Status:"] = "Status:";
+$a->strings["Homepage:"] = "Homepage:";
+$a->strings["Online Now"] = "gerade online";
+$a->strings["g A l F d"] = "l, d. F G \\\\U\\\\h\\\\r";
+$a->strings["F d"] = "d. F";
+$a->strings["[today]"] = "[Heute]";
+$a->strings["Birthday Reminders"] = "Geburtstags Erinnerungen";
+$a->strings["Birthdays this week:"] = "Geburtstage in dieser Woche:";
+$a->strings["[No description]"] = "[Keine Beschreibung]";
+$a->strings["Event Reminders"] = "Veranstaltungs- Erinnerungen";
+$a->strings["Events this week:"] = "Veranstaltungen in dieser Woche:";
$a->strings["Profile"] = "Profil";
$a->strings["Full Name:"] = "Voller Name:";
-$a->strings["Gender:"] = "Geschlecht:";
$a->strings["j F, Y"] = "j F, Y";
$a->strings["j F"] = "j F";
$a->strings["Birthday:"] = "Geburtstag:";
$a->strings["Age:"] = "Alter:";
-$a->strings["Status:"] = "Status:";
-$a->strings["for %1\$d %2\$s"] = "für %1\$d %2\$s";
+$a->strings["for %1\$d %2\$s"] = "seit %1\$d %2\$s";
$a->strings["Sexual Preference:"] = "Sexuelle Orientierung:";
-$a->strings["Homepage:"] = "Homepage:";
$a->strings["Hometown:"] = "Heimatstadt:";
$a->strings["Tags:"] = "Schlagworte:";
$a->strings["Political Views:"] = "Politische Ansichten:";
$a->strings["Religion:"] = "Religion:";
$a->strings["About:"] = "Ãœber:";
$a->strings["Hobbies/Interests:"] = "Hobbys/Interessen:";
-$a->strings["Likes:"] = "Gefällt-mir:";
-$a->strings["Dislikes:"] = "Gefällt-mir-nicht:";
+$a->strings["Likes:"] = "Gefällt:";
+$a->strings["Dislikes:"] = "Gefällt nicht:";
$a->strings["Contact information and Social Networks:"] = "Kontaktinformation und soziale Netzwerke:";
+$a->strings["My other channels:"] = "Meine anderen Kanäle:";
$a->strings["Musical interests:"] = "Musikalische Interessen:";
$a->strings["Books, literature:"] = "Bücher, Literatur:";
$a->strings["Television:"] = "Fernsehen:";
@@ -266,117 +516,44 @@ $a->strings["Film/dance/culture/entertainment:"] = "Film/Tanz/Kultur/Unterhaltun
$a->strings["Love/Romance:"] = "Liebe/Romantik:";
$a->strings["Work/employment:"] = "Arbeit/Anstellung:";
$a->strings["School/education:"] = "Schule/Ausbildung:";
-$a->strings["prev"] = "vorherige";
-$a->strings["first"] = "erste";
-$a->strings["last"] = "letzte";
-$a->strings["next"] = "nächste";
-$a->strings["older"] = "älter";
-$a->strings["newer"] = "neuer";
-$a->strings["No connections"] = "Keine Verbindungen";
-$a->strings["%d Connection"] = array(
- 0 => "%d Verbindung",
- 1 => "%d Verbindungen",
+$a->strings["Private Message"] = "Private Nachricht";
+$a->strings["Edit"] = "Bearbeiten";
+$a->strings["save to folder"] = "In Ordner speichern";
+$a->strings["add star"] = "markieren";
+$a->strings["remove star"] = "Markierung entfernen";
+$a->strings["toggle star status"] = "Markierung umschalten";
+$a->strings["starred"] = "markiert";
+$a->strings["add tag"] = "Schlagwort hinzufügen";
+$a->strings["I like this (toggle)"] = "Mir gefällt das (Umschalter)";
+$a->strings["like"] = "mag";
+$a->strings["I don't like this (toggle)"] = "Mir gefällt das nicht (Umschalter)";
+$a->strings["dislike"] = "verurteile";
+$a->strings["Share this"] = "Teile dies";
+$a->strings["share"] = "Teilen";
+$a->strings["View %s's profile - %s"] = "Schaue Dir %ss Profil an – %s";
+$a->strings["to"] = "an";
+$a->strings["via"] = "via";
+$a->strings["Wall-to-Wall"] = "Wall-to-Wall";
+$a->strings["via Wall-To-Wall:"] = "via Wall-To-Wall:";
+$a->strings["Bookmark Links"] = "Setze Lesezeichen für die Links";
+$a->strings["%d comment"] = array(
+ 0 => "%d Kommentar",
+ 1 => "%d Kommentare",
);
-$a->strings["View Connections"] = "Zeige Verbindungen";
-$a->strings["Search"] = "Suche";
-$a->strings["Save"] = "Speichern";
-$a->strings["poke"] = "anstupsen";
-$a->strings["poked"] = "stupste";
-$a->strings["ping"] = "anpingen";
-$a->strings["pinged"] = "pingte";
-$a->strings["prod"] = "knuffen";
-$a->strings["prodded"] = "knuffte";
-$a->strings["slap"] = "ohrfeigen";
-$a->strings["slapped"] = "ohrfeigte";
-$a->strings["finger"] = "befummeln";
-$a->strings["fingered"] = "befummelte";
-$a->strings["rebuff"] = "eine Abfuhr erteilen";
-$a->strings["rebuffed"] = "abfuhrerteilte";
-$a->strings["happy"] = "glücklich";
-$a->strings["sad"] = "traurig";
-$a->strings["mellow"] = "sanft";
-$a->strings["tired"] = "müde";
-$a->strings["perky"] = "frech";
-$a->strings["angry"] = "sauer";
-$a->strings["stupified"] = "verblüfft";
-$a->strings["puzzled"] = "verwirrt";
-$a->strings["interested"] = "interessiert";
-$a->strings["bitter"] = "verbittert";
-$a->strings["cheerful"] = "fröhlich";
-$a->strings["alive"] = "lebendig";
-$a->strings["annoyed"] = "verärgert";
-$a->strings["anxious"] = "unruhig";
-$a->strings["cranky"] = "schrullig";
-$a->strings["disturbed"] = "verstört";
-$a->strings["frustrated"] = "frustriert";
-$a->strings["motivated"] = "motiviert";
-$a->strings["relaxed"] = "entspannt";
-$a->strings["surprised"] = "überrascht";
-$a->strings["Monday"] = "Montag";
-$a->strings["Tuesday"] = "Dienstag";
-$a->strings["Wednesday"] = "Mittwoch";
-$a->strings["Thursday"] = "Donnerstag";
-$a->strings["Friday"] = "Freitag";
-$a->strings["Saturday"] = "Samstag";
-$a->strings["Sunday"] = "Sonntag";
-$a->strings["January"] = "Januar";
-$a->strings["February"] = "Februar";
-$a->strings["March"] = "März";
-$a->strings["April"] = "April";
-$a->strings["May"] = "Mai";
-$a->strings["June"] = "Juni";
-$a->strings["July"] = "Juli";
-$a->strings["August"] = "August";
-$a->strings["September"] = "September";
-$a->strings["October"] = "Oktober";
-$a->strings["November"] = "November";
-$a->strings["December"] = "Dezember";
-$a->strings["unknown.???"] = "unbekannt.???";
-$a->strings["bytes"] = "Bytes";
-$a->strings["remove category"] = "Kategorie entfernen";
-$a->strings["remove from file"] = "aus der Datei entfernen";
-$a->strings["Click to open/close"] = "Klicke zum Öffnen/Schließen";
-$a->strings["link to source"] = "Link zum Originalbeitrag";
-$a->strings["Select a page layout: "] = "Ein Seiten-Layout auswählen";
-$a->strings["default"] = "Standard";
-$a->strings["Page content type: "] = "Content-Typ der Seite";
-$a->strings["Select an alternate language"] = "Wähle eine alternative Sprache";
-$a->strings["photo"] = "Foto";
-$a->strings["event"] = "Ereignis";
-$a->strings["status"] = "Status";
-$a->strings["comment"] = "Kommentar";
-$a->strings["activity"] = "Aktivität";
-$a->strings["Design"] = "Design";
-$a->strings["Blocks"] = "Blöcke";
-$a->strings["Menus"] = "Menüs";
-$a->strings["Layouts"] = "Layouts";
-$a->strings["Pages"] = "Seiten";
+$a->strings["This is you"] = "Das bist Du";
+$a->strings["Submit"] = "Bestätigen";
+$a->strings["Bold"] = "Fett";
+$a->strings["Italic"] = "Kursiv";
+$a->strings["Underline"] = "Unterstrichen";
+$a->strings["Quote"] = "Zitat";
+$a->strings["Code"] = "Code";
+$a->strings["Image"] = "Bild";
+$a->strings["Link"] = "Link";
+$a->strings["Video"] = "Video";
$a->strings["Public Timeline"] = "Öffentliche Zeitleiste";
-$a->strings["Unable to obtain identity information from database"] = "Kann keine Identitäts-Informationen aus Datenbank beziehen";
-$a->strings["Empty name"] = "Namensfeld leer";
-$a->strings["Name too long"] = "Name ist zu lang";
-$a->strings["No account identifier"] = "Keine Account-Kennung";
-$a->strings["Nickname is required."] = "Spitzname ist erforderlich.";
-$a->strings["Nickname has unsupported characters or is already being used on this site."] = "Der Spitzname enthält nicht-unterstütze Zeichen oder wird bereits auf dieser Seite genutzt.";
-$a->strings["Unable to retrieve created identity"] = "Kann die erstellte Identität nicht empfangen";
-$a->strings["Default Profile"] = "Standard-Profil";
-$a->strings["Friends"] = "Freunde";
-$a->strings["Image/photo"] = "Bild/Foto";
-$a->strings["Encrypted content"] = "Verschlüsselter Inhalt";
-$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s schrieb den folgenden %2\$s %3\$s";
-$a->strings["post"] = "Beitrag";
-$a->strings["$1 wrote:"] = "$1 schrieb:";
-$a->strings["Embedded content"] = "Eingebetteter Inhalt";
-$a->strings["Embedding disabled"] = "Einbetten ausgeschaltet";
+$a->strings["view full size"] = "In Vollbildansicht anschauen";
$a->strings["created a new post"] = "Neuer Beitrag wurde erzeugt";
$a->strings["commented on %s's post"] = "hat %s's Beitrag kommentiert";
-$a->strings["Permission denied."] = "Zugang verweigert";
-$a->strings["Image exceeds website size limit of %lu bytes"] = "Bild überschreitet das Limit der Webseite von %lu bytes";
-$a->strings["Image file is empty."] = "Bilddatei ist leer.";
-$a->strings["Unable to process image"] = "Kann Bild nicht verarbeiten";
-$a->strings["Photo storage failed."] = "Foto speichern schlug fehl";
-$a->strings["Photo Albums"] = "Fotoalben";
-$a->strings["Upload New Photos"] = "Lade neue Fotos hoch";
$a->strings["Male"] = "Männlich";
$a->strings["Female"] = "Weiblich";
$a->strings["Currently Male"] = "Momentan männlich";
@@ -434,84 +611,24 @@ $a->strings["Uncertain"] = "Ungewiss";
$a->strings["It's complicated"] = "Es ist kompliziert";
$a->strings["Don't care"] = "Interessiert mich nicht";
$a->strings["Ask me"] = "Frag mich mal";
-$a->strings["Item was not found."] = "Beitrag wurde nicht gefunden.";
-$a->strings["No source file."] = "Keine Quelldatei.";
-$a->strings["Cannot locate file to replace"] = "Kann Datei zum Ersetzen nicht finden";
-$a->strings["Cannot locate file to revise/update"] = "Kann Datei zum Prüfen/Aktualisieren nicht finden";
-$a->strings["File exceeds size limit of %d"] = "Datei überschreitet das Größen-Limit von %d";
-$a->strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Die Größe deiner Datei-Anhänge haben das Maximum von %1$.0f MByte erreicht.";
-$a->strings["File upload failed. Possible system limit or action terminated."] = "Datei-Upload fehlgeschlagen. Mögliche Systembegrenzung oder abgebrochener Prozess.";
-$a->strings["Stored file could not be verified. Upload failed."] = "Gespeichert Datei konnte nicht verifiziert werden. Upload abgebrochen.";
-$a->strings["Path not available."] = "Pfad nicht verfügbar.";
-$a->strings["Empty pathname"] = "leere Pfadangabe";
-$a->strings["duplicate filename or path"] = "doppelter Dateiname oder Pfad";
-$a->strings["Path not found."] = "Pfad nicht gefunden.";
-$a->strings["mkdir failed."] = "mkdir fehlgeschlagen.";
-$a->strings["database storage failed."] = "Speichern in der Datenbank fehlgeschlagen.";
-$a->strings["Invalid data packet"] = "Ungültiges Datenpaket";
-$a->strings["Unable to verify channel signature"] = "Konnte die Signatur des Kanals nicht verifizieren";
-$a->strings["Unable to verify site signature for %s"] = "Kann die Signatur der Seite von %s nicht verifizieren";
-$a->strings["Logout"] = "Abmelden";
-$a->strings["End this session"] = "Beende diese Sitzung";
-$a->strings["Home"] = "Home";
-$a->strings["Your posts and conversations"] = "Deine Beiträge und Unterhaltungen";
-$a->strings["Your profile page"] = "Deine Profilseite";
-$a->strings["Edit Profiles"] = "Profile bearbeiten";
-$a->strings["Manage/Edit Profiles"] = "Verwalte/Bearbeite Profile";
-$a->strings["Photos"] = "Fotos";
-$a->strings["Your photos"] = "Deine Bilder";
-$a->strings["Login"] = "Anmelden";
-$a->strings["Sign in"] = "Anmelden";
-$a->strings["%s - click to logout"] = "%s - Klick zum Abmelden";
-$a->strings["Click to authenticate to your home hub"] = "Klick zum Authentifizieren bei Deinem Heimat-Hub";
-$a->strings["Home Page"] = "Homepage";
-$a->strings["Register"] = "Registrieren";
-$a->strings["Create an account"] = "Erzeuge ein Konto";
-$a->strings["Help"] = "Hilfe";
-$a->strings["Help and documentation"] = "Hilfe und Dokumentation";
-$a->strings["Apps"] = "Apps";
-$a->strings["Addon applications, utilities, games"] = "Addon Programme, Helferlein, Spiele";
-$a->strings["Search site content"] = "Durchsuche Seiten-Inhalt";
-$a->strings["Directory"] = "Verzeichnis";
-$a->strings["Channel Locator"] = "Kanal-Anzeiger";
-$a->strings["Matrix"] = "Matrix";
-$a->strings["Your matrix"] = "Deine Matrix";
-$a->strings["See all matrix notifications"] = "Alle Matrix-Benachrichtigungen ansehen";
-$a->strings["Mark all matrix notifications seen"] = "Markiere alle Matrix-Benachrichtigungen als angesehen";
-$a->strings["Channel Home"] = "Mein Kanal";
-$a->strings["Channel home"] = "Mein Kanal";
-$a->strings["See all channel notifications"] = "Alle Kanal-Benachrichtigungen ansehen";
-$a->strings["Mark all channel notifications seen"] = "Markiere alle Kanal-Benachrichtigungen als angesehen";
-$a->strings["Intros"] = "Vorstellungen";
-$a->strings["New Connections"] = "Neue Verbindungen";
-$a->strings["See all channel introductions"] = "Alle Kanal-Einladungen ansehen";
-$a->strings["Notices"] = "Benachrichtigungen";
-$a->strings["Notifications"] = "Benachrichtigungen";
-$a->strings["See all notifications"] = "Alle Benachrichtigungen ansehen";
-$a->strings["Mark all system notifications seen"] = "Markiere alle System-Benachrichtigungen als gesehen";
-$a->strings["Mail"] = "Mail";
-$a->strings["Private mail"] = "Persönliche Mail";
-$a->strings["See all private messages"] = "Alle persönlichen Nachrichten ansehen";
-$a->strings["Mark all private messages seen"] = "Markiere alle persönlichen Nachrichten als gesehen";
-$a->strings["Inbox"] = "Eingang";
-$a->strings["Outbox"] = "Ausgang";
-$a->strings["New Message"] = "Neue Nachricht";
-$a->strings["Events"] = "Veranstaltungen";
-$a->strings["Event Calendar"] = "Veranstaltungskalender";
-$a->strings["See all events"] = "Alle Ereignisse ansehen";
-$a->strings["Mark all events seen"] = "Markiere alle Ereignisse als gesehen";
-$a->strings["Channel Select"] = "Kanal-Auswahl";
-$a->strings["Manage Your Channels"] = "Verwalte Deine Kanäle";
-$a->strings["Settings"] = "Einstellungen";
-$a->strings["Account/Channel Settings"] = "Konto-/Kanal-Einstellungen";
-$a->strings["Connections"] = "Verbindungen";
-$a->strings["Manage/Edit Friends and Connections"] = "Verwalte/Bearbeite Freunde und Verbindungen";
-$a->strings["Admin"] = "Admin";
-$a->strings["Site Setup and Configuration"] = "Seiten-Einrichtung und -Konfiguration";
-$a->strings["Nothing new here"] = "Nichts Neues hier";
-$a->strings["Please wait..."] = "Bitte warten...";
+$a->strings["Missing room name"] = "Der Chatraum hat keinen Namen";
+$a->strings["Duplicate room name"] = "Name des Chatraums bereits vergeben";
+$a->strings["Invalid room specifier."] = "Ungültiger Raumbezeichner.";
+$a->strings["Room not found."] = "Chatraum konnte nicht gefunden werden.";
+$a->strings["Room is full"] = "Der Raum ist voll";
+$a->strings["Tags"] = "Schlagwörter";
+$a->strings["Keywords"] = "Schlüsselwörter";
+$a->strings["have"] = "habe";
+$a->strings["has"] = "hat";
+$a->strings["want"] = "will";
+$a->strings["wants"] = "will";
+$a->strings["likes"] = "gefällt";
+$a->strings["dislikes"] = "missfällt";
+$a->strings["Logged out."] = "Ausgeloggt.";
+$a->strings["Failed authentication"] = "Authentifizierung fehlgeschlagen";
+$a->strings["Login failed."] = "Login fehlgeschlagen.";
$a->strings["Not a valid email address"] = "Ungültige E-Mail-Adresse";
-$a->strings["Your email domain is not among those allowed on this site"] = "Deine E-Mail-Adresse ist nicht unter denen, die auf dieser Seite erlaubt sind";
+$a->strings["Your email domain is not among those allowed on this site"] = "Deine E-Mail-Adresse ist dieser Seite nicht erlaubt";
$a->strings["Your email address is already registered at this site."] = "Deine E-Mail-Adresse ist auf dieser Seite bereits registriert.";
$a->strings["An invitation is required."] = "Eine Einladung wird benötigt";
$a->strings["Invitation could not be verified."] = "Die Einladung konnte nicht bestätigt werden";
@@ -519,81 +636,62 @@ $a->strings["Please enter the required information."] = "Bitte gib die benötigt
$a->strings["Failed to store account information."] = "Speichern der Account-Informationen fehlgeschlagen";
$a->strings["Registration request at %s"] = "Registrierungsanfrage auf %s";
$a->strings["Administrator"] = "Administrator";
-$a->strings["your registration password"] = "dein Registrierungspasswort";
+$a->strings["your registration password"] = "Dein Registrierungspasswort";
$a->strings["Registration details for %s"] = "Registrierungsdetails für %s";
$a->strings["Account approved."] = "Account bestätigt.";
$a->strings["Registration revoked for %s"] = "Registrierung für %s widerrufen";
-$a->strings["channel"] = "Kanal";
-$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s mag %2\$s's %3\$s";
-$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s mag %2\$s's %3\$s nicht";
-$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s ist jetzt mit %2\$s verbunden";
-$a->strings["%1\$s poked %2\$s"] = "%1\$s stupste %2\$s";
-$a->strings["%1\$s is currently %2\$s"] = "%1\$s ist momentan %2\$s";
-$a->strings["View %s's profile @ %s"] = "Schaue Dir %s's Profil auf %s an.";
-$a->strings["Categories:"] = "Kategorien:";
-$a->strings["Filed under:"] = "Gespeichert unter:";
-$a->strings["View in context"] = "Im Zusammenhang anschauen";
-$a->strings["remove"] = "lösche";
-$a->strings["Loading..."] = "Lädt ...";
-$a->strings["Delete Selected Items"] = "Lösche die ausgewählten Elemente";
-$a->strings["View Source"] = "Quelle anzeigen";
-$a->strings["Follow Thread"] = "Unterhaltung folgen";
-$a->strings["Matrix Activity"] = "Matrix Aktivität";
-$a->strings["%s likes this."] = "%s gefällt das.";
-$a->strings["%s doesn't like this."] = "%s gefällt das nicht.";
-$a->strings["<span %1\$s>%2\$d people</span> like this."] = array(
- 0 => "",
- 1 => "<span %1\$s>%2\$d Personen</span> mögen dies.",
-);
-$a->strings["<span %1\$s>%2\$d people</span> don't like this."] = array(
- 0 => "",
- 1 => "<span %1\$s>%2\$d Personen</span> mögen dies nicht.",
-);
-$a->strings["and"] = "und";
-$a->strings[", and %d other people"] = array(
- 0 => "",
- 1 => ", und %d andere",
-);
-$a->strings["%s like this."] = "%s gefällt das.";
-$a->strings["%s don't like this."] = "%s gefällt das nicht.";
-$a->strings["Visible to <strong>everybody</strong>"] = "Sichtbar für <strong>jeden</strong>";
-$a->strings["Please enter a link URL:"] = "Gib eine URL ein:";
-$a->strings["Please enter a video link/URL:"] = "Gib einen Video-Link/URL ein:";
-$a->strings["Please enter an audio link/URL:"] = "Gib einen Audio-Link/URL ein:";
-$a->strings["Tag term:"] = "Schlagwort:";
-$a->strings["Save to Folder:"] = "Speichern in Ordner:";
-$a->strings["Where are you right now?"] = "Wo bist du jetzt grade?";
-$a->strings["Expires YYYY-MM-DD HH:MM"] = "Verfällt YYYY-MM-DD HH;MM";
-$a->strings["Share"] = "Teilen";
-$a->strings["Page link title"] = "Seitentitel-Link";
-$a->strings["Upload photo"] = "Foto hochladen";
-$a->strings["upload photo"] = "Foto hochladen";
-$a->strings["Attach file"] = "Datei anhängen";
-$a->strings["attach file"] = "Datei anfügen";
-$a->strings["Insert web link"] = "Link einfügen";
-$a->strings["web link"] = "Web-Link";
-$a->strings["Insert video link"] = "Video-Link einfügen";
-$a->strings["video link"] = "Video-Link";
-$a->strings["Insert audio link"] = "Audio-Link einfügen";
-$a->strings["audio link"] = "Audio-Link";
-$a->strings["Set your location"] = "Standort";
-$a->strings["set location"] = "Standort";
-$a->strings["Clear browser location"] = "Browser-Standort löschen";
-$a->strings["clear location"] = "Standort löschen";
-$a->strings["Set title"] = "Titel";
-$a->strings["Categories (comma-separated list)"] = "Kategorien (Kommagetrennte Liste)";
-$a->strings["Permission settings"] = "Berechtigungs-Einstellungen";
-$a->strings["permissions"] = "Berechtigungen";
-$a->strings["Public post"] = "Öffentlicher Beitrag";
-$a->strings["Example: bob@example.com, mary@example.com"] = "Beispiel: bob@example.com, mary@example.com";
-$a->strings["Set expiration date"] = "Verfallsdatum";
-$a->strings["Logged out."] = "Ausgeloggt.";
-$a->strings["Failed authentication"] = "Authentifizierung fehlgeschlagen";
-$a->strings["Login failed."] = "Login fehlgeschlagen.";
-$a->strings["You have %1$.0f of %2$.0f allowed connections."] = "Du bist %1$.0f von %2$.0f erlaubten Verbindungen eingegangen.";
-$a->strings["Add New Connection"] = "Neue Verbindung hinzufügen";
-$a->strings["Enter the channel address"] = "Adresse des Kanals eingeben";
-$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Beispiel: bob@beispiel.com, http://beispiel.com/barbara";
+$a->strings["Sort Options"] = "Sortieroptionen";
+$a->strings["Alphabetic"] = "alphabetisch";
+$a->strings["Reverse Alphabetic"] = "Entgegengesetzt alphabetisch";
+$a->strings["Newest to Oldest"] = "Neueste zuerst";
+$a->strings["Enable Safe Search"] = "Sichere Suche einschalten";
+$a->strings["Disable Safe Search"] = "Sichere Suche ausschalten";
+$a->strings["Safe Mode"] = "Sicherer Modus";
+$a->strings["Red Matrix Notification"] = "Red Matrix Benachrichtigung";
+$a->strings["redmatrix"] = "redmatrix";
+$a->strings["Thank You,"] = "Danke.";
+$a->strings["%s Administrator"] = "%s Administrator";
+$a->strings["%s <!item_type!>"] = "%s <!item_type!>";
+$a->strings["[Red:Notify] New mail received at %s"] = "[Red Notify] Neue Mail auf %s empfangen";
+$a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s hat Dir eine private Nachricht auf %3\$s gesendet.";
+$a->strings["%1\$s sent you %2\$s."] = "%1\$s hat Dir %2\$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 die private Nachricht anzusehen und/oder darauf zu antworten.";
+$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s hat [zrl=%3\$s]a %4\$s[/zrl] kommentiert";
+$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s hat [zrl=%3\$s]%4\$ss %5\$s[/zrl] kommentiert";
+$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s hat [zrl=%3\$s]Deinen %4\$s[/zrl] kommentiert";
+$a->strings["[Red:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Red:Benachrichtigung] Kommentar in Unterhaltung #%1\$d von %2\$s";
+$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s hat eine Unterhaltung kommentiert, der Du folgst.";
+$a->strings["Please visit %s to view and/or reply to the conversation."] = "Bitte besuche %s, um die Unterhaltung anzusehen und/oder zu kommentieren.";
+$a->strings["[Red:Notify] %s posted to your profile wall"] = "[Red:Hinweis] %s schrieb auf Deine Pinnwand";
+$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s hat auf Deine Pinnwand auf %3\$s geschrieben";
+$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s hat auf [zrl=%3\$s]Deine Pinnwand[/zrl] geschrieben";
+$a->strings["[Red:Notify] %s tagged you"] = "[Red Notify] %s hat Dich erwähnt";
+$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s hat Dich auf %3\$s erwähnt";
+$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]hat Dich erwähnt[/zrl].";
+$a->strings["[Red:Notify] %1\$s poked you"] = "[Red Notify] %1\$s hat Dich angestupst";
+$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s hat Dich auf %3\$s angestupst";
+$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]hat Dich angestupst[/zrl].";
+$a->strings["[Red:Notify] %s tagged your post"] = "[Red:Hinweis] %s hat Deinen Beitrag verschlagwortet";
+$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s hat Deinen Beitrag auf %3\$s verschlagwortet";
+$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s hat [zrl=%3\$s]Deinen Beitrag[/zrl] verschlagwortet";
+$a->strings["[Red:Notify] Introduction received"] = "[Red:Notify] Vorstellung erhalten";
+$a->strings["%1\$s, you've received an introduction from '%2\$s' at %3\$s"] = "%1\$s, Du hast eine Vorstellung von „%2\$s“ auf %3\$s erhalten";
+$a->strings["%1\$s, you've received [zrl=%2\$s]an introduction[/zrl] from %3\$s."] = "%1\$s, Du hast [zrl=%2\$s]eine Vorstellung[/zrl] von %3\$s erhalten.";
+$a->strings["You may visit their profile at %s"] = "Du kannst Dir das Profil unter %s ansehen";
+$a->strings["Please visit %s to approve or reject the introduction."] = "Bitte besuche %s um sie anzunehmen oder abzulehnen.";
+$a->strings["[Red:Notify] Friend suggestion received"] = "[Red:Benachrichtigung] Freundschaftsvorschlag erhalten";
+$a->strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, Du hast einen Kontaktvorschlag von „%2\$s“ auf %3\$s erhalten";
+$a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, Du hast [zrl=%2\$s]einen Kontaktvorschlag[/zrl] für %3\$s von %4\$s erhalten.";
+$a->strings["Name:"] = "Name:";
+$a->strings["Photo:"] = "Foto:";
+$a->strings["Please visit %s to approve or reject the suggestion."] = "Bitte besuche %s um den Vorschlag zu akzeptieren oder abzulehnen.";
+$a->strings["Image exceeds website size limit of %lu bytes"] = "Bild überschreitet das Limit der Webseite von %lu bytes";
+$a->strings["Image file is empty."] = "Bilddatei ist leer.";
+$a->strings["Unable to process image"] = "Kann Bild nicht verarbeiten";
+$a->strings["Photo storage failed."] = "Foto speichern schlug fehl";
+$a->strings["Upload New Photos"] = "Lade neue Fotos hoch";
+$a->strings["Edit File properties"] = "Dateieigenschaften ändern";
$a->strings["%d invitation available"] = array(
0 => "%d Einladung verfügbar",
1 => "%d Einladungen verfügbar",
@@ -606,20 +704,24 @@ $a->strings["Find"] = "Finde";
$a->strings["Channel Suggestions"] = "Kanal-Vorschläge";
$a->strings["Random Profile"] = "Zufallsprofil";
$a->strings["Invite Friends"] = "Lade Freunde ein";
-$a->strings["Everything"] = "Alles";
-$a->strings["Categories"] = "Kategorien";
$a->strings["%d connection in common"] = array(
0 => "%d gemeinsame Verbindung",
1 => "%d gemeinsame Verbindungen",
);
$a->strings["New Page"] = "Neue Seite";
+$a->strings["Click here to upgrade."] = "Klicke hier, um das Upgrade durchzuführen.";
+$a->strings["This action exceeds the limits set by your subscription plan."] = "Diese Aktion überschreitet die Grenzen Ihres Abonnements.";
+$a->strings["This action is not available under your subscription plan."] = "Diese Aktion ist in Ihrem Abonnement nicht verfügbar.";
$a->strings["Channel is blocked on this site."] = "Der Kanal ist auf dieser Seite blockiert ";
$a->strings["Channel location missing."] = "Adresse des Kanals fehlt.";
-$a->strings["Channel discovery failed. Website may be down or misconfigured."] = "Auffinden des Kanals schlug fehl. Die Webseite könnte falsch konfiguriert oder abgeschaltet sein.";
-$a->strings["Response from remote channel was not understood."] = "Antwort des entfernten Kanals war unverständlich.";
$a->strings["Response from remote channel was incomplete."] = "Antwort des entfernten Kanals war unvollständig.";
+$a->strings["Channel discovery failed."] = "";
$a->strings["local account not found."] = "Lokales Konto nicht gefunden.";
-$a->strings["Cannot connect to yourself."] = "Du kannst dich nicht mit dir selbst verbinden.";
+$a->strings["Cannot connect to yourself."] = "Du kannst Dich nicht mit Dir selbst verbinden.";
+$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "Das Security-Token des Formulars war nicht korrekt. Das ist wahrscheinlich passiert, weil das Formular zu lange (>3 Stunden) offen war, bevor es abgeschickt wurde.";
+$a->strings["Default"] = "Standard";
+$a->strings["Embedded content"] = "Eingebetteter Inhalt";
+$a->strings["Embedding disabled"] = "Einbetten ausgeschaltet";
$a->strings["Can view my \"public\" stream and posts"] = "Kann meinen öffentlichen Stream und Beiträge sehen";
$a->strings["Can view my \"public\" channel profile"] = "Kann meinen öffentliches Kanal-Profil sehen";
$a->strings["Can view my \"public\" photo albums"] = "Kann meine öffentlichen Fotoalben sehen";
@@ -634,43 +736,25 @@ $a->strings["Can post photos to my photo albums"] = "Kann Fotos in meinen Fotoal
$a->strings["Can forward to all my channel contacts via post @mentions"] = "Kann an alle meine Kontakte via @-Erwähnung Nachrichten weiterleiten";
$a->strings["Advanced - useful for creating group forum channels"] = "Fortgeschritten - sinnvoll, um Gruppen-Kanäle/-Foren zu erstellen";
$a->strings["Can chat with me (when available)"] = "Kann mit mir chatten (wenn verfügbar)";
-$a->strings["Requires compatible chat plugin"] = "Benötigt ein kompatibles Chat-Plugin";
$a->strings["Can write to my \"public\" file storage"] = "Kann in meinen öffentlichen Dateiordner schreiben";
$a->strings["Can edit my \"public\" pages"] = "Kann meine öffentlichen Seiten bearbeiten";
-$a->strings["Can source my \"public\" posts in derived channels"] = "Kann meine \"öffentlichen\" Beiträge als Quellen von Kanälen verwenden";
-$a->strings["Somewhat advanced - very useful in open communities"] = "Etwas Fortgeschritten - sehr nützlich in offenen Gemeinschaften.";
+$a->strings["Can source my \"public\" posts in derived channels"] = "Kann meine „öffentlichen“ Beiträge als Quellen für andere Kanäle verwenden";
+$a->strings["Somewhat advanced - very useful in open communities"] = "Etwas fortgeschritten – sehr nützlich in offenen Gemeinschaften";
+$a->strings["Can send me bookmarks"] = "Darf mir Lesezeichen senden";
$a->strings["Can administer my channel resources"] = "Kann meine Kanäle administrieren";
-$a->strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Sehr fortgeschritten. Bearbeite dies nur, wenn du genau weißt, was du machst";
-$a->strings["Tags"] = "Tags";
-$a->strings["Keywords"] = "Schlüsselbegriffe";
-$a->strings["have"] = "habe";
-$a->strings["has"] = "hat";
-$a->strings["want"] = "will";
-$a->strings["wants"] = "will";
-$a->strings["likes"] = "Gefällt-mir";
-$a->strings["dislikes"] = "Gefällt-mir-nicht";
-$a->strings["Click here to upgrade."] = "Klicke hier, um das Upgrade durchzuführen.";
-$a->strings["This action exceeds the limits set by your subscription plan."] = "Diese Aktion überschreitet die Grenzen Ihres Abonnements.";
-$a->strings["This action is not available under your subscription plan."] = "Diese Aktion ist in Ihrem Abonnement nicht verfügbar.";
-$a->strings["Default"] = "Standard";
-$a->strings["Welcome "] = "Willkommen";
-$a->strings["Please upload a profile photo."] = "Bitte lade ein Profilfoto hoch.";
-$a->strings["Welcome back "] = "Willkommen zurück";
-$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "Das Security-Token des Formulars war nicht korrekt. Das ist wahrscheinlich passiert, weil das Formular zu lange (>3 Stunden) offen war, bevor es abgeschickt wurde.";
+$a->strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Sehr fortgeschritten. Bearbeite das nur, wenn Du genau weißt, was Du tust";
$a->strings["Permission denied"] = "Keine Berechtigung";
+$a->strings["Unknown"] = "Unbekannt";
$a->strings["Item not found."] = "Element nicht gefunden.";
-$a->strings["Archives"] = "Archive";
$a->strings["Collection not found."] = "Sammlung nicht gefunden";
-$a->strings["Group is empty"] = "Gruppe ist leer";
+$a->strings["Collection is empty."] = "Sammlung ist leer.";
+$a->strings["Collection: %s"] = "Sammlung: %s";
+$a->strings["Connection: %s"] = "Verbindung: %s";
$a->strings["Connection not found."] = "Die Verbindung wurde nicht gefunden.";
-$a->strings["Sort Options"] = "Sortieroptionen";
-$a->strings["Alphabetic"] = "alphabetisch";
-$a->strings["Reverse Alphabetic"] = "Entgegengesetzt alphabetisch";
-$a->strings["Newest to Oldest"] = "Neueste zuerst";
-$a->strings["Enable Safe Search"] = "Sichere Suche einschalten";
-$a->strings["Disable Safe Search"] = "Sichere Suche ausschalten";
-$a->strings["Safe Mode"] = "Sicherer Modus";
-$a->strings["No channel."] = "Kein Channel.";
+$a->strings["Invalid data packet"] = "Ungültiges Datenpaket";
+$a->strings["Unable to verify channel signature"] = "Konnte die Signatur des Kanals nicht verifizieren";
+$a->strings["Unable to verify site signature for %s"] = "Kann die Signatur der Seite von %s nicht verifizieren";
+$a->strings["No channel."] = "Kein Kanal.";
$a->strings["Common connections"] = "Gemeinsame Verbindungen";
$a->strings["No connections in common."] = "Keine gemeinsamen Verbindungen.";
$a->strings["Event title and start time are required."] = "Veranstaltungs- Titel und Startzeit sind erforderlich.";
@@ -690,20 +774,25 @@ $a->strings["Adjust for viewer timezone"] = "An die Zeitzone des Betrachters anp
$a->strings["Description:"] = "Beschreibung:";
$a->strings["Title:"] = "Titel:";
$a->strings["Share this event"] = "Die Veranstaltung teilen";
+$a->strings["Thing updated"] = "Ding aktualisiert";
$a->strings["Object store: failed"] = "Speichern des Objekts fehlgeschlagen";
-$a->strings["thing/stuff added"] = "Ding/Zeugs hinzugefügt";
+$a->strings["Thing added"] = "Ding hinzugefügt";
$a->strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s";
-$a->strings["not yet implemented."] = "noch nicht eingebaut.";
-$a->strings["Add Stuff to your Profile"] = "Füge Sachen zu deinem Profil hinzu";
+$a->strings["Show Thing"] = "Ding anzeigen";
+$a->strings["item not found."] = "Eintrag nicht gefunden";
+$a->strings["Edit Thing"] = "Ding bearbeiten";
$a->strings["Select a profile"] = "Wähle ein Profil";
-$a->strings["Select a category of stuff. e.g. I ______ something"] = "Wähle eine Kategorie für das Zeugs, z.B. Ich ______ etwas";
-$a->strings["Name of thing or stuff e.g. something"] = "Name des Dings/Zeugs, z.B. etwas";
-$a->strings["URL of thing or stuff (optional)"] = "URL des Dings oder Zeugs (optional)";
-$a->strings["URL for photo of thing or stuff (optional)"] = "URL eines Fotos von dem Ding oder Zeugs (optional)";
-$a->strings["Total invitation limit exceeded."] = "Limit der maximalen Einladungen überschritten.";
+$a->strings["Select a category of stuff. e.g. I ______ something"] = "Wähle eine Kategorie/Art, z.B. Ich ______ etwas";
+$a->strings["Post an activity"] = "Aktivitätsnachricht senden";
+$a->strings["Only sends to viewers of the applicable profile"] = "Nur an Betrachter des ausgewählten Profils senden";
+$a->strings["Name of thing e.g. something"] = "Name des Dings, z.B. Etwas";
+$a->strings["URL of thing (optional)"] = "URL des Dings (optional)";
+$a->strings["URL for photo of thing (optional)"] = "URL eines Fotos von dem Ding (optional)";
+$a->strings["Add Thing to your Profile"] = "Das Ding Deinem Profil hinzufügen";
+$a->strings["Total invitation limit exceeded."] = "Einladungslimit überschritten.";
$a->strings["%s : Not a valid email address."] = "%s : Keine gültige Email Adresse.";
-$a->strings["Please join us on Red"] = "Bitte schließe Dich uns an und werde Teil der Red Matrix";
-$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Einladungslimit überschritten. Bitte kontaktiere den Administrator deiner Seite.";
+$a->strings["Please join us on Red"] = "Schließe Dich uns an und werde Teil der Red-Matrix";
+$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Einladungslimit überschritten. Bitte kontaktiere den Administrator Deines Red-Servers.";
$a->strings["%s : Message delivery failed."] = "%s : Nachricht konnte nicht zugestellt werden.";
$a->strings["%d message sent."] = array(
0 => "%d Nachricht gesendet.",
@@ -713,117 +802,15 @@ $a->strings["You have no more invitations available"] = "Du hast keine weiteren
$a->strings["Send invitations"] = "Einladungen senden";
$a->strings["Enter email addresses, one per line:"] = "Email-Adressen eintragen, eine pro Zeile:";
$a->strings["Your message:"] = "Deine Nachricht:";
-$a->strings["You are cordially invited to join me and some other close friends on the Red Matrix - a revolutionary new decentralised communication and information tool."] = "Du bist herzlich eingeladen, mir und einigen anderen guten Freunden in die Red-Matrix zu folgen – einem revolutionär neuen, dezentralisierten Kommunikations- und Informationsnetzwerk.";
+$a->strings["You are cordially invited to join me and some other close friends on the Red Matrix - a revolutionary new decentralised communication and information tool."] = "Du bist herzlich eingeladen, mir und einigen anderen guten Freunden in die Red-Matrix zu folgen – einem revolutionär neuen, dezentralen Kommunikations- und Informationsnetzwerk.";
$a->strings["You will need to supply this invitation code: \$invite_code"] = "Du musst dann den folgenden Einladungs-Code angeben: \$invite_code";
$a->strings["Please visit my channel at"] = "Bitte besuche meinen Kanal auf";
-$a->strings["Once you have registered (on ANY Red Matrix site - they are all inter-connected), please connect with my Red Matrix channel address:"] = "Wenn du dich registriert hast (egal auf welcher Seite in der Red Matrix, sie sind alle miteinander verbunden) verbinde dich bitte mit meinem Kanal in der Matrix. Adresse:";
+$a->strings["Once you have registered (on ANY Red Matrix site - they are all inter-connected), please connect with my Red Matrix channel address:"] = "Wenn Du Dich registriert hast (egal auf welchem Server in der Red-Matrix, sie sind alle miteinander verbunden) verbinde Dich bitte mit meinem Kanal in der Matrix. Adresse:";
$a->strings["Click the [Register] link on the following page to join."] = "Klicke den [Registrieren]-Link auf der nächsten Seite, um dich anzumelden.";
-$a->strings["For more information about the Red Matrix Project and why it has the potential to change the internet as we know it, please visit http://getzot.com"] = "Für weitere Informationen über das Red Matrix Projekt und warum es das Potential hat das Internet wie wir es kennen grundlegend zu verändern schau dir bitte http://getzot.com an";
-$a->strings["Friends of %s"] = "Freunde von %s";
-$a->strings["No friends to display."] = "Keine Freunde zum Anzeigen.";
-$a->strings["Requested profile is not available."] = "Erwünschte Profil ist nicht verfügbar.";
-$a->strings["View"] = "Ansicht";
-$a->strings["Authorize application connection"] = "Zugriff der Anwendung authorizieren";
-$a->strings["Return to your app and insert this Securty Code:"] = "Trage folgenden Sicherheitscode bei der Anwendung ein:";
-$a->strings["Please login to continue."] = "Zum Weitermachen, bitte einloggen.";
-$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Möchtest du der Anwendung erlauben deine Nachrichten und Kontakte abzurufen und/oder neue Nachrichten für dich zu erstellen?";
-$a->strings["Yes"] = "Ja";
-$a->strings["No"] = "Nein";
-$a->strings["You must be logged in to see this page."] = "Du musst angemeldet sein um diese Seite betrachten zu können.";
-$a->strings["No installed applications."] = "Keine installierten Applikationen";
-$a->strings["Applications"] = "Anwendungen";
-$a->strings["Invalid item."] = "Ungültiges Element.";
-$a->strings["Channel not found."] = "Kanal nicht gefunden.";
-$a->strings["Page not found."] = "Seite nicht gefunden.";
-$a->strings["Item not available."] = "Element nicht verfügbar.";
-$a->strings["Red Matrix Server - Setup"] = "Red Matrix Server - Installation";
-$a->strings["Could not connect to database."] = "Kann nicht mit der Datenbank verbinden.";
-$a->strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Konnte die angegebene Webseiten URL nicht erreichen. Möglicherweise ein Problem mit dem SSL Zertifikat oder dem DNS.";
-$a->strings["Could not create table."] = "Kann Tabelle nicht erstellen.";
-$a->strings["Your site database has been installed."] = "Die Datenbank deiner Seite wurde installiert.";
-$a->strings["You may need to import the file \"install/database.sql\" manually using phpmyadmin or mysql."] = "Eventuell musst du die Datei \"install/database.sql\" händisch mit phpmyadmin oder mysql importieren.";
-$a->strings["Please see the file \"install/INSTALL.txt\"."] = "Lies die Datei \"install/INSTALL.txt\".";
-$a->strings["System check"] = "Systemprüfung";
-$a->strings["Check again"] = "Bitte nochmal prüfen";
-$a->strings["Database connection"] = "Datenbank Verbindung";
-$a->strings["In order to install Red Matrix we need to know how to connect to your database."] = "Um die Red Matrix installieren zu können, müssen wir wissen wie wir deine Datenbank kontaktieren können.";
-$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Bitte kontaktiere deinen Hosting Provider oder den Administrator der Seite wenn du Fragen zu diesen Einstellungen haben solltest.";
-$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "Die Datenbank, die du weiter unten angibst, sollte bereits existieren. Sollte das noch nicht der Fall sein, erzeuge sie bitte bevor du fortfährst.";
-$a->strings["Database Server Name"] = "Datenbank-Servername";
-$a->strings["Default is localhost"] = "Standard ist localhost";
-$a->strings["Database Port"] = "Datenbank-Port";
-$a->strings["Communication port number - use 0 for default"] = "Port Nummer zur Kommunikation - verwende 0 für die Standardeinstellung:";
-$a->strings["Database Login Name"] = "Datenbank-Benutzername";
-$a->strings["Database Login Password"] = "Datenbank-Kennwort";
-$a->strings["Database Name"] = "Datenbank-Name";
-$a->strings["Site administrator email address"] = "E-Mail Adresse des Seiten-Administrators";
-$a->strings["Your account email address must match this in order to use the web admin panel."] = "Die Email-Adresse deines Accounts muss dieser Adresse entsprechen, damit du Zugriff zum Admin Panel erhältst.";
-$a->strings["Website URL"] = "Webseiten URL";
-$a->strings["Please use SSL (https) URL if available."] = "Nutze wenn möglich eine SSL-URL (https).";
-$a->strings["Please select a default timezone for your website"] = "Standard-Zeitzone für deine Website";
-$a->strings["Site settings"] = "Seiteneinstellungen";
-$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Konnte die Kommandozeilen Version von PHP nicht im PATH des Servers finden.";
-$a->strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron."] = "Solltest du keine Kommandozeilen Version von PHP auf dem Server installiert haben wirst du nicht in der Lage sein Hintergrundprozesse via cron auszuführen.";
-$a->strings["PHP executable path"] = "PHP Pfad zu ausführbarer Datei";
-$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Gib den vollen Pfad zum PHP Interpreter an. Du kannst dieses Felds frei lassen und mit der Installation fortfahren.";
-$a->strings["Command line PHP"] = "PHP Befehlszeile";
-$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "Die Kommandozeilen Version von PHP auf deinem System hat \"register_argc_argv\" nicht aktiviert.";
-$a->strings["This is required for message delivery to work."] = "Dies wird benötigt, damit die Auslieferung von Nachrichten funktioniert.";
-$a->strings["PHP register_argc_argv"] = "PHP register_argc_argv";
-$a->strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Fehler: Die \"openssl_pkey_new\" Funktion auf diesem System ist nicht in der Lage Schlüssel für die Verschlüsselung zu erzeugen.";
-$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Wenn du Windows verwendest, siehe http://www.php.net/manual/en/openssl.installation.php für eine Installationsanleitung.";
-$a->strings["Generate encryption keys"] = "Verschlüsselungsschlüssel generieren";
-$a->strings["libCurl PHP module"] = "libCurl PHP Modul";
-$a->strings["GD graphics PHP module"] = "GD Graphik PHP Modul";
-$a->strings["OpenSSL PHP module"] = "OpenSSL PHP Modul";
-$a->strings["mysqli PHP module"] = "mysqli PHP Modul";
-$a->strings["mb_string PHP module"] = "mb_string PHP Modul";
-$a->strings["mcrypt PHP module"] = "mcrypt PHP Modul";
-$a->strings["Apache mod_rewrite module"] = "Apache mod_rewrite Modul";
-$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Fehler: Das Apache Modul mod-rewrite wird benötigt ist aber nicht installiert.";
-$a->strings["proc_open"] = "proc_open";
-$a->strings["Error: proc_open is required but is either not installed or has been disabled in php.ini"] = "Fehler: proc_open wird benötigt ist aber entweder nicht installiert oder wurde in der php.ini deaktiviert";
-$a->strings["Error: libCURL PHP module required but not installed."] = "Fehler: das PHP Modul libCURL wird benütigt ist aber nicht installiert.";
-$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Fehler: das PHP Modul GD Grafik mit JPEG Unterstützung wird benötigt ist aber nicht installiert.";
-$a->strings["Error: openssl PHP module required but not installed."] = "Fehler: das OpenSSL PHP Modul wird benötigt ist aber nicht installiert.";
-$a->strings["Error: mysqli PHP module required but not installed."] = "Fehler: das PHP Modul mysqli wird benötigt ist aber nicht installiert.";
-$a->strings["Error: mb_string PHP module required but not installed."] = "Fehler: das PHP Modul mb_string wird benötigt ist aber nicht installiert.";
-$a->strings["Error: mcrypt PHP module required but not installed."] = "Fehler: das PHP Modul mcrypt wird benötigt ist aber nicht installiert.";
-$a->strings["The web installer needs to be able to create a file called \".htconfig.php\ in the top folder of your web server and it is unable to do so."] = "Der Installations-Assistent muss in der Lage sein die Datei \".htconfig.php\" im Stammverzeichnis des Web-Servers anzulegen, ist es aber nicht.";
-$a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "Meist liegt dies daran, dass der Nutzer unter dem der Web-Server läuft keine Rechte zum Schreiben in dem Verzeichnis hat - selbst wenn du das kannst.";
-$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."] = "Am Schluss des Vorgangs wird ein Text generiert, den du unter dem Dateinamen .htconfig.php im Stammverzeichnis deiner Red Installation speichern.";
-$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Alternativ kannst du diesen Schritt überspringen und die Installation manuell vornehmen. Lies dazu die Datei install/INSTALL.txt.";
-$a->strings[".htconfig.php is writable"] = ".htconfig.php ist beschreibbar";
-$a->strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Red verwendet Smarty3 um Vorlagen für die Webdarstellung zu übersetzen. Smarty3 übersetzt diese Vorlagen nach PHP um die Darstellung zu beschleunigen.";
-$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory view/tpl/smarty3/ under the Red top level folder."] = "Um die übersetzten Vorlagen speichern zu können muss der Webserver schreib Zugriff auf das Verzeichnis view/tpl/smarty3/ unterhalb des Red Stammverzeichnisses haben.";
-$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Bitte stelle sicher, dass der Nutzer unter dem der Webserver läuft (z.B. www-data) Zugriff zum Schreiben auf dieses Verzeichnis hat.";
-$a->strings["Note: as a security measure, you should give the web server write access to view/tpl/smarty3/ only--not the template files (.tpl) that it contains."] = "Hinweis: Als Sicherheitsvorkehrung solltest du dem Webserver nur Schreib-Zugriff auf das Verzeichnis view/tpl/smarty3 geben, nicht dem Vorlagen (.tpl) die in diesem Verzeichnis liegen.";
-$a->strings["view/tpl/smarty3 is writable"] = "view/tpl/smarty3 ist beschreibbar";
-$a->strings["SSL certificate validation"] = "SSL Zertifikatverifizierung";
-$a->strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "Das SSL Zertifikat konnte nicht validiert werden. Korrigiere das Zertifikat oder schalte HTTPS ab um auf diese Seite zuzugreifen.";
-$a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = "URL rewrite funktioniert in der .htaccess nicht. Überprüfe deine Server-Konfiguration.";
-$a->strings["Url rewrite is working"] = "Url rewrite funktioniert";
-$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "Die Datenbank Konfigurationsdatei \".htconfig.php\" konnte nicht geschrieben werden. Bitte verwende den unten angegebenen Text um die Konfigurationsdatei im Stammverzeichnis des Webservers anzulegen.";
-$a->strings["Errors encountered creating database tables."] = "Fehler während des Anlegens der Datenbank Tabellen aufgetreten.";
-$a->strings["<h1>What next</h1>"] = "<h1>Was als Nächstes</h1>";
-$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "WICHTIG: Du musst die geplanten Aufgaben für den Poller [manuell] einrichten.";
-$a->strings["Edit post"] = "Bearbeite Beitrag";
-$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s folgt nun %2\$s's %3\$s";
-$a->strings["[Embedded content - reload page to view]"] = "[Eingebetteter Inhalte - bitte lade die Seite zur Anzeige neu]";
-$a->strings["toggle full screen mode"] = "auf Vollbildmodus umschalten";
-$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s hat %2\$s's %3\$s mit %4\$s getaggt";
-$a->strings["Account settings"] = "Konto-Einstellungen";
-$a->strings["Channel settings"] = "Kanal-Einstellungen";
-$a->strings["Additional features"] = "Zusätzliche Funktionen";
-$a->strings["Feature settings"] = "Funktions-Einstellungen";
-$a->strings["Display settings"] = "Anzeige-Einstellungen";
-$a->strings["Connected apps"] = "Verbundene Apps";
-$a->strings["Export channel"] = "Kanal exportieren";
-$a->strings["Automatic Permissions (Advanced)"] = "Automatische Berechtigungen (Erweitert)";
-$a->strings["Premium Channel Settings"] = "Prämium-Kanal Einstellungen";
-$a->strings["Name is required"] = "Name wird benötigt";
+$a->strings["For more information about the Red Matrix Project and why it has the potential to change the internet as we know it, please visit http://getzot.com"] = "Für weitere Informationen über das Red-Matrix-Projekt und warum es das Potential hat, das Internet, wie wir es kennen, grundlegend zu verändern, besuche http://getzot.com";
+$a->strings["Name is required"] = "Name ist erforderlich";
$a->strings["Key and Secret are required"] = "Schlüssel und Geheimnis werden benötigt";
-$a->strings["Update"] = "Update";
+$a->strings["Update"] = "Aktualisieren";
$a->strings["Passwords do not match. Password unchanged."] = "Kennwörter stimmen nicht überein. Kennwort nicht verändert.";
$a->strings["Empty passwords are not allowed. Password unchanged."] = "Leere Kennwörter sind nicht erlaubt. Kennwort nicht verändert.";
$a->strings["Password changed."] = "Kennwort geändert.";
@@ -833,14 +820,13 @@ $a->strings["Protected email address. Cannot change to that email."] = "Geschüt
$a->strings["System failure storing new email. Please try again."] = "Systemfehler während des Speicherns der neuen Mail. Bitte versuche es noch einmal.";
$a->strings["Settings updated."] = "Einstellungen aktualisiert.";
$a->strings["Add application"] = "Anwendung hinzufügen";
-$a->strings["Cancel"] = "Abbrechen";
$a->strings["Name"] = "Name";
$a->strings["Name of application"] = "Name der Anwendung";
$a->strings["Consumer Key"] = "Consumer Key";
-$a->strings["Automatically generated - change if desired. Max length 20"] = "Automatisch erzeugt - ändern falls erwünscht. Maximale Länge 20";
+$a->strings["Automatically generated - change if desired. Max length 20"] = "Automatisch erzeugt – ändern, falls erwünscht. Maximale Länge 20";
$a->strings["Consumer Secret"] = "Consumer Secret";
$a->strings["Redirect"] = "Umleitung";
-$a->strings["Redirect URI - leave blank unless your application specifically requires this"] = "Umleitungs-URl - lasse dies frei außer deine Anwendung erfordert dies explizit";
+$a->strings["Redirect URI - leave blank unless your application specifically requires this"] = "Umleitungs-URl – lasse das leer, wenn Deine Anwendung es nicht explizit erfordert";
$a->strings["Icon url"] = "Symbol-URL";
$a->strings["Optional"] = "Optional";
$a->strings["You can't edit this application."] = "Diese Anwendung kann nicht bearbeitet werden.";
@@ -854,114 +840,207 @@ $a->strings["Account Settings"] = "Konto-Einstellungen";
$a->strings["Password Settings"] = "Kennwort-Einstellungen";
$a->strings["New Password:"] = "Neues Passwort:";
$a->strings["Confirm:"] = "Bestätigen:";
-$a->strings["Leave password fields blank unless changing"] = "Lasse die Passwort -Felder leer außer du möchtest das Passwort ändern";
+$a->strings["Leave password fields blank unless changing"] = "Lasse die Passwort-Felder leer, außer Du möchtest das Passwort ändern";
$a->strings["Email Address:"] = "Email Adresse:";
$a->strings["Remove Account"] = "Konto entfernen";
-$a->strings["Warning: This action is permanent and cannot be reversed."] = "Achtung: Diese Aktion ist permanent und kann nicht rückgänging gemacht werden.";
+$a->strings["Warning: This action is permanent and cannot be reversed."] = "Achtung: Diese Aktion ist endgültig und kann nicht rückgängig gemacht werden.";
$a->strings["Off"] = "Aus";
$a->strings["On"] = "An";
$a->strings["Additional Features"] = "Zusätzliche Funktionen";
$a->strings["Connector Settings"] = "Connector-Einstellungen";
$a->strings["No special theme for mobile devices"] = "Keine spezielle Theme für mobile Geräte";
$a->strings["Display Settings"] = "Anzeige-Einstellungen";
-$a->strings["Display Theme:"] = "Anzeige Theme:";
+$a->strings["Display Theme:"] = "Anzeige-Theme:";
$a->strings["Mobile Theme:"] = "Mobile Theme:";
$a->strings["Update browser every xx seconds"] = "Browser alle xx Sekunden aktualisieren";
-$a->strings["Minimum of 10 seconds, no maximum"] = "Minimum von 10 Sekunden, kein Maximum";
-$a->strings["Maximum number of conversations to load at any time:"] = "Maximale Anzahl von Unterhaltungen die gleichzeitig geladen werden sollen:";
-$a->strings["Maximum of 100 items"] = "Maximum von 100 Beiträgen";
+$a->strings["Minimum of 10 seconds, no maximum"] = "Minimum 10 Sekunden, kein Maximum";
+$a->strings["Maximum number of conversations to load at any time:"] = "Maximale Anzahl von Unterhaltungen, die auf einmal geladen werden sollen:";
+$a->strings["Maximum of 100 items"] = "Maximum: 100 Beiträge";
$a->strings["Don't show emoticons"] = "Emoticons nicht zeigen";
-$a->strings["Nobody except yourself"] = "Niemand außer du selbst";
-$a->strings["Only those you specifically allow"] = "Nur die, denen du es explizit erlaubst";
+$a->strings["Do not view remote profiles in frames"] = "Profile/Kanäle direkt anzeigen";
+$a->strings["By default open in a sub-window of your own site"] = "Wenn dieser Haken nicht gesetzt ist, werden Profile in einem Unterfenster auf Deinem eigenen Server angezeigt.";
+$a->strings["Nobody except yourself"] = "Niemand außer Dir selbst";
+$a->strings["Only those you specifically allow"] = "Nur die, denen Du es explizit erlaubst";
$a->strings["Anybody in your address book"] = "Jeder aus Ihrem Adressbuch";
$a->strings["Anybody on this website"] = "Jeder auf dieser Website";
$a->strings["Anybody in this network"] = "Jeder in diesem Netzwerk";
+$a->strings["Anybody authenticated"] = "Jeder authentifizierte";
$a->strings["Anybody on the internet"] = "Jeder im Internet";
-$a->strings["Publish your default profile in the network directory"] = "Veröffentliche dein Standard-Profil im Netzwerk-Verzeichnis";
-$a->strings["Allow us to suggest you as a potential friend to new members?"] = "Dürfen wir dich neuen Mitgliedern als potentiellen Kontakt vorschlagen?";
+$a->strings["Publish your default profile in the network directory"] = "Standard-Profil im Netzwerk-Verzeichnis veröffentlichen";
+$a->strings["No"] = "Nein";
+$a->strings["Yes"] = "Ja";
+$a->strings["Allow us to suggest you as a potential friend to new members?"] = "Dürfen wir Dich neuen Mitgliedern als potentiellen Kontakt vorschlagen?";
$a->strings["or"] = "oder";
$a->strings["Your channel address is"] = "Deine Kanal-Adresse lautet";
-$a->strings["Automatically expire posts after this many days:"] = "Lösche Beiträge automatisch nach dieser Anzahl von Tagen:";
-$a->strings["If empty, posts will not expire. Expired posts will be deleted"] = "Falls leer werden Beiträge nie verfallen. Verfallene Beiträge werden gelöscht";
-$a->strings["Advanced expiration settings"] = "Erweitere Verfalls-Einstellungen";
-$a->strings["Advanced Expiration"] = "Erweitertes Verfallen";
-$a->strings["Expire posts:"] = "Beiträge verfallen lassen:";
-$a->strings["Expire starred posts:"] = "Markierte Beiträge verfallen lassen:";
-$a->strings["Expire photos:"] = "Fotos verfallen lassen:";
-$a->strings["Only expire posts by others:"] = "Nur Beiträge anderer verfallen lassen:";
-$a->strings["Channel Settings"] = "Channel-Einstellungen";
+$a->strings["Channel Settings"] = "Kanal-Einstellungen";
$a->strings["Basic Settings"] = "Grundeinstellungen";
$a->strings["Your Timezone:"] = "Ihre Zeitzone:";
$a->strings["Default Post Location:"] = "Standardstandort:";
$a->strings["Use Browser Location:"] = "Standort des Browsers verwenden:";
-$a->strings["Adult Content"] = "Nicht Jugendfreie-Inhalte";
-$a->strings["This channel publishes adult content."] = "Dieser Kanal veröffentlicht nicht Jugendfreie-Inhalte";
+$a->strings["Adult Content"] = "Nicht jugendfreie Inhalte";
+$a->strings["This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)"] = "Dieser Kanal veröffentlicht regelmäßig Inhalte, die für Minderjährige ungeeignet sind. (Bitte markiere solche Inhalte mit dem Schlagwort #NSFW)";
$a->strings["Security and Privacy Settings"] = "Sicherheits- und Datenschutz-Einstellungen";
-$a->strings["Quick Privacy Settings:"] = "Schnelle Datenschutz-Einstellungen:";
-$a->strings["Very Public - extremely permissive"] = "Sehr offen - extrem freizügig";
-$a->strings["Typical - default public, privacy when desired"] = "Typisch - Standard öffentlich, Privatheit wenn gewünscht";
-$a->strings["Private - default private, rarely open or public"] = "Privat - Standard privat, selten offen oder öffentlich";
-$a->strings["Blocked - default blocked to/from everybody"] = "Geschlossen - Standard zu und von jedem geblockt";
+$a->strings["Hide my online presence"] = "Meine Online-Präsenz verbergen";
+$a->strings["Prevents displaying in your profile that you are online"] = "Verhindert die Anzeige Deines Online-Status in deinem Profil";
+$a->strings["Simple Privacy Settings:"] = "Einfache Privatsphäre-Einstellungen";
+$a->strings["Very Public - <em>extremely permissive (should be used with caution)</em>"] = "Komplett offen – <em>extrem ungeschützt (mit großer Vorsicht verwenden!)</em>";
+$a->strings["Typical - <em>default public, privacy when desired (similar to social network permissions but with improved privacy)</em>"] = "Typisch – <em>Default öffentlich, Privatsphäre, wo sie erwünscht ist (ähnlich den Einstellungen in sozialen Netzwerken, aber mit besser geschützter Privatsphäre)</em>";
+$a->strings["Private - <em>default private, never open or public</em>"] = "Private – <em>Default privat, nie offen oder öffentlich</em>";
+$a->strings["Blocked - <em>default blocked to/from everybody</em>"] = "Blockiert – <em>Alle per Default blockiert</em>";
+$a->strings["Allow others to tag your posts"] = "Erlaube anderen deine Beiträge mit Schlagwörtern zu versehen";
+$a->strings["Often used by the community to retro-actively flag inappropriate content"] = "";
+$a->strings["Advanced Privacy Settings"] = "Fortgeschrittene Privatsphäre-Einstellungen";
$a->strings["Maximum Friend Requests/Day:"] = "Maximale Kontaktanfragen pro Tag:";
$a->strings["May reduce spam activity"] = "Kann die Spam-Aktivität verringern";
-$a->strings["Default Post Permissions"] = "Beitragszugriffrechte Standardeinstellungen";
+$a->strings["Default Post Permissions"] = "Standardeinstellungen für Beitrags-Zugriffsrechte";
$a->strings["(click to open/close)"] = "(zum öffnen/schließen anklicken)";
$a->strings["Maximum private messages per day from unknown people:"] = "Maximale Anzahl privater Nachrichten pro Tag von unbekannten Leuten:";
-$a->strings["Useful to reduce spamming"] = "Nützlich um Spam zu verringern";
+$a->strings["Useful to reduce spamming"] = "Nützlich, um Spam zu verringern";
$a->strings["Notification Settings"] = "Benachrichtigungs-Einstellungen";
-$a->strings["By default post a status message when:"] = "Sende standardmäßig Status-Nachrichten wenn:";
-$a->strings["accepting a friend request"] = "einer Kontaktanfrage stattgegeben wurde";
-$a->strings["joining a forum/community"] = "ein Forum beigetreten wurde";
-$a->strings["making an <em>interesting</em> profile change"] = "eine <em>interessante</em> Änderung am Profil vorgenommen wurde";
-$a->strings["Send a notification email when:"] = "Eine Email Benachrichtigung senden wenn:";
+$a->strings["By default post a status message when:"] = "Sende standardmäßig Status-Nachrichten, wenn:";
+$a->strings["accepting a friend request"] = "Du eine Kontaktanfrage annimmst";
+$a->strings["joining a forum/community"] = "Du einem Forum beitrittst";
+$a->strings["making an <em>interesting</em> profile change"] = "Du eine <em>interessante</em> Änderung an Deinem Profil vornimmst";
+$a->strings["Send a notification email when:"] = "Eine E-Mail-Benachrichtigung senden, wenn:";
$a->strings["You receive an introduction"] = "Du eine Vorstellung erhältst";
$a->strings["Your introductions are confirmed"] = "Deine Vorstellung bestätigt wurde.";
-$a->strings["Someone writes on your profile wall"] = "Jemand auf deine Pinnwand schreibt";
+$a->strings["Someone writes on your profile wall"] = "Jemand auf Deine Pinnwand schreibt";
$a->strings["Someone writes a followup comment"] = "Jemand einen Beitrag kommentiert";
$a->strings["You receive a private message"] = "Du eine private Nachricht erhältst";
$a->strings["You receive a friend suggestion"] = "Du einen Kontaktvorschlag erhältst";
-$a->strings["You are tagged in a post"] = "Du wurdest in einem Beitrag getaggt";
-$a->strings["You are poked/prodded/etc. in a post"] = "Du in einer Nachricht angestupst/geknufft/o.ä. wirst";
-$a->strings["Advanced Account/Page Type Settings"] = "Erweiterte Account / Seiten Arten Einstellungen";
+$a->strings["You are tagged in a post"] = "Du in einem Beitrag erwähnt wurdest";
+$a->strings["You are poked/prodded/etc. in a post"] = "Du in einem Beitrag angestupst/geknufft/o.ä. wurdest";
+$a->strings["Advanced Account/Page Type Settings"] = "Erweiterte Account- und Seitenart-Einstellungen";
$a->strings["Change the behaviour of this account for special situations"] = "Ändere das Verhalten dieses Accounts unter speziellen Umständen";
+$a->strings["Please enable expert mode (in <a href=\"settings/features\">Settings > Additional features</a>) to adjust!"] = "Aktiviere den Expertenmodus (unter <a href=\"settings/features\">Settings > Zusätzliche Funktionen</a>), um hier Einstellungen vorzunehmen!";
+$a->strings["Miscellaneous Settings"] = "";
+$a->strings["Personal menu to display in your channel pages"] = "Persönliches Menü zur Anzeige auf den Seiten deines Kanals";
+$a->strings["Menu updated."] = "Menü aktualisiert.";
+$a->strings["Unable to update menu."] = "Kann Menü nicht aktualisieren.";
+$a->strings["Menu created."] = "Menü erstellt.";
+$a->strings["Unable to create menu."] = "Kann Menü nicht erstellen.";
+$a->strings["Manage Menus"] = "Menüs verwalten";
+$a->strings["Drop"] = "Löschen";
+$a->strings["Create a new menu"] = "Neues Menü erstellen";
+$a->strings["Delete this menu"] = "Lösche dieses Menü";
+$a->strings["Edit menu contents"] = "Bearbeite Menü Inhalte";
+$a->strings["Edit this menu"] = "Dieses Menü bearbeiten";
+$a->strings["New Menu"] = "Neues Menü";
+$a->strings["Menu name"] = "Menü Name";
+$a->strings["Must be unique, only seen by you"] = "Muss eindeutig sein, ist aber nur für Dich sichtbar";
+$a->strings["Menu title"] = "Menü Titel";
+$a->strings["Menu title as seen by others"] = "Menü Titel wie er von anderen gesehen wird";
+$a->strings["Allow bookmarks"] = "Erlaube Lesezeichen";
+$a->strings["Menu may be used to store saved bookmarks"] = "Im Menü können gespeicherte Lesezeichen abgelegt werden";
+$a->strings["Create"] = "Erstelle";
+$a->strings["Menu not found."] = "Menü nicht gefunden";
+$a->strings["Menu deleted."] = "Menü gelöscht.";
+$a->strings["Menu could not be deleted."] = "Menü konnte nicht gelöscht werden.";
+$a->strings["Edit Menu"] = "Menü bearbeiten";
+$a->strings["Add or remove entries to this menu"] = "Einträge zu diesem Menü hinzufügen oder entfernen";
+$a->strings["Modify"] = "Ändern";
+$a->strings["Not found."] = "Nicht gefunden.";
+$a->strings["View"] = "Ansicht";
+$a->strings["Authorize application connection"] = "Zugriff für die Anwendung autorisieren";
+$a->strings["Return to your app and insert this Securty Code:"] = "Trage folgenden Sicherheitscode in der Anwendung ein:";
+$a->strings["Please login to continue."] = "Zum Weitermachen, bitte einloggen.";
+$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Möchtest Du dieser Anwendung erlauben, Deine Nachrichten und Kontakte abzurufen und/oder neue Nachrichten für Dich zu erstellen?";
+$a->strings["No installed applications."] = "Keine installierten Anwendungen.";
+$a->strings["Applications"] = "Anwendungen";
+$a->strings["Edit post"] = "Bearbeite Beitrag";
+$a->strings["Red Matrix - Guests: Username: {your email address}, Password: +++"] = "Red-Matrix-Gäste: Nutzername: {Deine E-Mail-Adresse}; Passwort: +++";
+$a->strings["Bookmark added"] = "Lesezeichen hinzugefügt";
+$a->strings["My Bookmarks"] = "Meine Lesezeichen";
+$a->strings["My Connections Bookmarks"] = "Lesezeichen meiner Kontakte";
+$a->strings["Unable to locate original post."] = "Originalbeitrag nicht gefunden.";
+$a->strings["Empty post discarded."] = "Leeren Beitrag verworfen.";
+$a->strings["Executable content type not permitted to this channel."] = "Ausführbarer Content-Typ ist für diesen Kanal nicht freigegeben.";
+$a->strings["System error. Post not saved."] = "Systemfehler. Beitrag nicht gespeichert.";
+$a->strings["Wall Photos"] = "Wall Fotos";
+$a->strings["You have reached your limit of %1$.0f top level posts."] = "Du hast die maximale Anzahl von %1$.0f Beiträgen erreicht.";
+$a->strings["You have reached your limit of %1$.0f webpages."] = "Du hast die maximale Anzahl von %1$.0f Webseiten erreicht.";
+$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s folgt nun %2\$ss %3\$s";
+$a->strings["[Embedded content - reload page to view]"] = "[Eingebettete Inhalte – lade die Seite neu, um sie anzuzeigen]";
+$a->strings["Channel not found."] = "Kanal nicht gefunden.";
+$a->strings["toggle full screen mode"] = "auf Vollbildmodus umschalten";
+$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s hat %2\$ss %3\$s mit %4\$s verschlagwortet";
+$a->strings["You must be logged in to see this page."] = "Du musst angemeldet sein, um diese Seite betrachten zu können.";
+$a->strings["Leave Room"] = "Raum verlassen";
+$a->strings["I am away right now"] = "Ich bin gerade nicht da";
+$a->strings["I am online"] = "Ich bin online";
+$a->strings["New Chatroom"] = "Neuer Chatraum";
+$a->strings["Chatroom Name"] = "Name des Chatraums";
+$a->strings["%1\$s's Chatrooms"] = "%1\$ss Chaträume";
$a->strings["Public access denied."] = "Öffentlicher Zugang verweigert.";
$a->strings["No connections."] = "Keine Verbindungen.";
-$a->strings["Visit %s's profile [%s]"] = "Besuche %s's Profil [%s]";
+$a->strings["Visit %s's profile [%s]"] = "%ss Profil [%s] besuchen";
$a->strings["View Connnections"] = "Zeige Verbindungen";
$a->strings["Tag removed"] = "Schlagwort entfernt";
-$a->strings["Remove Item Tag"] = "Schlagwort des Beitrags entfernen";
-$a->strings["Select a tag to remove: "] = "Schlagwort zum entfernen auswählen:";
+$a->strings["Remove Item Tag"] = "Schlagwort entfernen";
+$a->strings["Select a tag to remove: "] = "Schlagwort zum Entfernen auswählen:";
$a->strings["Remove"] = "Entferne";
$a->strings["Continue"] = "Fortfahren";
-$a->strings["Premium Channel Setup"] = "Prämium-Kanal Einrichtung";
-$a->strings["Enable premium channel connection restrictions"] = "Einschränkungen für den Prämium-Kanal aktivieren";
-$a->strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Bitte gib deine Nutzungseinschränkungen ein, z.B. Paypal Quittung, Nutzungsbestimmungen etc.";
-$a->strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Unter Umständen sind weitere Schritte oder die Bestätigung der folgenden Bedingungen, vor dem Verbinden mit diesem Kanal nötig.";
-$a->strings["Potential connections will then see the following text before proceeding:"] = "Potentielle Verbindungen werden den folgenden Text sehen bevor fortgefahren wird:";
-$a->strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Mit dem fortfahren bestätige ich die Erfüllung aller Anweisungen die vom Seitenbetreiber erteilt wurden.";
-$a->strings["(No specific instructions have been provided by the channel owner.)"] = "(Der Seitenbetreiber hat keine speziellen Anweisungen für Kanal-Betreiber hinterlegt.)";
-$a->strings["Restricted or Premium Channel"] = "Eingeschränkter oder Prämium-Kanal";
+$a->strings["Premium Channel Setup"] = "Premium-Kanal-Einrichtung";
+$a->strings["Enable premium channel connection restrictions"] = "Einschränkungen für einen Premium-Kanal aktivieren";
+$a->strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Bitte gib Deine Nutzungsbedingungen ein, z.B. Paypal-Quittung, Richtlinien etc.";
+$a->strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Unter Umständen sind weitere Schritte oder die Bestätigung der folgenden Bedingungen vor dem Verbinden mit diesem Kanal nötig.";
+$a->strings["Potential connections will then see the following text before proceeding:"] = "Potentielle Kontakte werden den folgenden Text sehen, bevor fortgefahren wird:";
+$a->strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Indem ich fortfahre, bestätige ich die Erfüllung aller Anweisungen aus dieser Seite.";
+$a->strings["(No specific instructions have been provided by the channel owner.)"] = "(Der Kanal-Besitzer hat keine speziellen Anweisungen hinterlegt.)";
+$a->strings["Restricted or Premium Channel"] = "Eingeschränkter oder Premium-Kanal";
$a->strings["No potential page delegates located."] = "Keine potentiellen Bevollmächtigten für die Seite gefunden.";
-$a->strings["Delegate Page Management"] = "Delegiere das Management für die Seite";
-$a->strings["Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely."] = "Bevollmächtigte sind in der Lage, alle Aspekte dieses Kontos/dieser Seite zu verwalten, abgesehen von den Grundeinstellungen des Kontos. Bitte gib niemandem eine Bevollmächtigung für deinen privaten Account, dem du nicht absolut vertraust!";
+$a->strings["Delegate Page Management"] = "Delegiere das Management für diese Seite";
+$a->strings["Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely."] = "Bevollmächtigte sind in der Lage, alle Aspekte dieses Kontos/dieser Seite zu verwalten, abgesehen von den Grundeinstellungen des Kontos. Gib niemandem eine Bevollmächtigung für Deinen privaten Account, dem Du nicht absolut vertraust!";
$a->strings["Existing Page Managers"] = "Vorhandene Seitenmanager";
$a->strings["Existing Page Delegates"] = "Vorhandene Bevollmächtigte für die Seite";
$a->strings["Potential Delegates"] = "Potentielle Bevollmächtigte";
$a->strings["Add"] = "Hinzufügen";
$a->strings["No entries."] = "Keine Einträge.";
-$a->strings["Source created."] = "Quelle erstellt.";
-$a->strings["Source updated."] = "Quelle aktualisiert.";
-$a->strings["Manage remote sources of content for your channel."] = "Entfernte Quellen von Inhalten deines Kanals verwalten.";
-$a->strings["New Source"] = "Neue Quelle";
-$a->strings["Import all or selected content from the following channel into this channel and distribute it according to your channel settings."] = "Importiere alle oder ausgewählte Inhalte des folgenden Kanals in diesen Kanal und verteile sie gemäß der Einstellungen dieses Kanals.";
-$a->strings["Only import content with these words (one per line)"] = "Importiere ausschließlich Beiträge, die folgende Wörter (eines pro Zeile) enthalten";
-$a->strings["Leave blank to import all public content"] = "Leer lassen um alle öffentlichen Beiträge zu importieren";
-$a->strings["Channel Name"] = "Channel-Name";
-$a->strings["Source not found."] = "Quelle nicht gefunden.";
-$a->strings["Edit Source"] = "Quelle bearbeiten";
-$a->strings["Delete Source"] = "Quelle löschen";
-$a->strings["Source removed"] = "Quelle gelöscht";
-$a->strings["Unable to remove source."] = "Konnte die Quelle nicht löschen.";
+$a->strings["Away"] = "Abwesend";
+$a->strings["Online"] = "Online";
+$a->strings["Item not available."] = "Element nicht verfügbar.";
+$a->strings["Menu element updated."] = "Menü-Element aktualisiert.";
+$a->strings["Unable to update menu element."] = "Kann Menü-Element nicht aktualisieren.";
+$a->strings["Menu element added."] = "Menü-Bestandteil hinzugefügt.";
+$a->strings["Unable to add menu element."] = "Kann Menü-Bestandteil nicht hinzufügen.";
+$a->strings["Manage Menu Elements"] = "Menü-Bestandteile verwalten";
+$a->strings["Edit menu"] = "Menü bearbeiten";
+$a->strings["Edit element"] = "Bestandteil bearbeiten";
+$a->strings["Drop element"] = "Bestandteil löschen";
+$a->strings["New element"] = "Neues Bestandteil";
+$a->strings["Edit this menu container"] = "Diesen Menü-Container bearbeiten";
+$a->strings["Add menu element"] = "Menüelement hinzufügen";
+$a->strings["Delete this menu item"] = "Lösche dieses Menü-Bestandteil";
+$a->strings["Edit this menu item"] = "Bearbeite dieses Menü-Bestandteil";
+$a->strings["New Menu Element"] = "Neues Menü-Bestandteil";
+$a->strings["Menu Item Permissions"] = "Zugriffsrechte des Menü-Elements";
+$a->strings["Link text"] = "Link Text";
+$a->strings["URL of link"] = "URL des Links";
+$a->strings["Use Red magic-auth if available"] = "Verwende Red Magic-Auth wenn verfügbar";
+$a->strings["Open link in new window"] = "Öffne Link in neuem Fenster";
+$a->strings["Order in list"] = "Reihenfolge in der Liste";
+$a->strings["Higher numbers will sink to bottom of listing"] = "Größere Nummern werden weiter unten in der Auflistung einsortiert";
+$a->strings["Menu item not found."] = "Menü-Bestandteil nicht gefunden.";
+$a->strings["Menu item deleted."] = "Menü-Bestandteil gelöscht.";
+$a->strings["Menu item could not be deleted."] = "Menü-Bestandteil kann nicht gelöscht werden.";
+$a->strings["Edit Menu Element"] = "Bearbeite Menü-Bestandteil";
+$a->strings["Invalid profile identifier."] = "Ungültiger Profil-Identifikator";
+$a->strings["Profile Visibility Editor"] = "Profil-Sichtbarkeits-Editor";
+$a->strings["Click on a contact to add or remove."] = "Klicke auf einen Kontakt, um ihn hinzuzufügen oder zu entfernen.";
+$a->strings["Visible To"] = "Sichtbar für";
+$a->strings["All Connections"] = "Alle Verbindungen";
+$a->strings["Collection created."] = "Sammlung erstellt.";
+$a->strings["Could not create collection."] = "Sammlung kann nicht erstellt werden.";
+$a->strings["Collection updated."] = "Sammlung aktualisiert.";
+$a->strings["Create a collection of channels."] = "Erstelle eine Sammlung von Kanälen.";
+$a->strings["Collection Name: "] = "Name der Sammlung:";
+$a->strings["Members are visible to other channels"] = "Mitglieder sind sichtbar für andere Kanäle";
+$a->strings["Collection removed."] = "Sammlung gelöscht.";
+$a->strings["Unable to remove collection."] = "Löschen der Sammlung nicht möglich.";
+$a->strings["Collection Editor"] = "Sammlung-Editor";
+$a->strings["Members"] = "Mitglieder";
+$a->strings["All Connected Channels"] = "Alle verbundenen Kanäle";
+$a->strings["Click on a channel to add or remove."] = "Wähle einen Kanal zum hinzufügen oder entfernen aus.";
$a->strings["Theme settings updated."] = "Theme-Einstellungen aktualisiert.";
$a->strings["Site"] = "Seite";
$a->strings["Users"] = "Benutzer";
@@ -971,8 +1050,8 @@ $a->strings["Server"] = "Server";
$a->strings["DB updates"] = "DB-Aktualisierungen";
$a->strings["Logs"] = "Protokolle";
$a->strings["Plugin Features"] = "Plug-In Funktionen";
-$a->strings["User registrations waiting for confirmation"] = "Nutzer Anmeldungen die auf Bestätigung warten";
-$a->strings["Message queues"] = "Nachrichten Warteschlange";
+$a->strings["User registrations waiting for confirmation"] = "Nutzer-Anmeldungen, die auf Bestätigung warten";
+$a->strings["Message queues"] = "Nachrichten-Warteschlangen";
$a->strings["Administration"] = "Administration";
$a->strings["Summary"] = "Zusammenfassung";
$a->strings["Registered users"] = "Registrierte Benutzer";
@@ -980,7 +1059,7 @@ $a->strings["Pending registrations"] = "Ausstehende Registrierungen";
$a->strings["Version"] = "Version";
$a->strings["Active plugins"] = "Aktive Plug-Ins";
$a->strings["Site settings updated."] = "Site-Einstellungen aktualisiert.";
-$a->strings["No special theme for accessibility"] = "Kein spezielles Accessibility Theme vorhanden";
+$a->strings["No special theme for accessibility"] = "Kein spezielles Accessibility-Theme vorhanden";
$a->strings["Closed"] = "Geschlossen";
$a->strings["Requires approval"] = "Genehmigung erforderlich";
$a->strings["Open"] = "Offen";
@@ -994,55 +1073,59 @@ $a->strings["Policies"] = "Richtlinien";
$a->strings["Advanced"] = "Fortgeschritten";
$a->strings["Site name"] = "Seitenname";
$a->strings["Banner/Logo"] = "Banner/Logo";
+$a->strings["Administrator Information"] = "Administrator-Informationen";
+$a->strings["Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here"] = "Kontaktinformationen für Administratoren des Servers. Wird auf der siteinfo-Seite angezeigt. BBCode kann verwendet werden.";
$a->strings["System language"] = "System-Sprache";
$a->strings["System theme"] = "System-Theme";
-$a->strings["Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"] = "Standard System-Theme - kann durch Nutzerprofile überschieben werden - <a href='#' id='cnftheme'>Theme.Einstellungen ändern</a>";
+$a->strings["Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"] = "Standard-System-Theme – kann durch Nutzerprofile überschieben werden – <a href='#' id='cnftheme'>Theme-Einstellungen ändern</a>";
$a->strings["Mobile system theme"] = "Mobile System-Theme:";
$a->strings["Theme for mobile devices"] = "Theme für mobile Geräte";
-$a->strings["Accessibility system theme"] = "Accessibility System-Theme";
-$a->strings["Accessibility theme"] = "Accessibility Theme";
+$a->strings["Accessibility system theme"] = "Accessibility-System-Theme";
+$a->strings["Accessibility theme"] = "Accessibility-Theme";
$a->strings["Channel to use for this website's static pages"] = "Kanal für die statischen Seiten dieser Webseite verwenden";
$a->strings["Site Channel"] = "Seiten Kanal";
$a->strings["Maximum image size"] = "Maximale Bildgröße";
-$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Maximale Größe in Bytes von hochgeladenen Bildern. Standard ist 0, was keine Einschränkung bedeutet.";
-$a->strings["Register policy"] = "Registrierungsmethode";
+$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Maximale Größe hochgeladener Bilder in Bytes. Standard ist 0 (keine Einschränkung).";
+$a->strings["Register policy"] = "Registrierungsrichtlinie";
$a->strings["Access policy"] = "Zugangsrichtlinien";
$a->strings["Register text"] = "Registrierungstext";
-$a->strings["Will be displayed prominently on the registration page."] = "Wird gut sichtbar auf der Registrierungsseite angezeigt.";
-$a->strings["Accounts abandoned after x days"] = "Accounts gelten nach X Tagen als unbenutzt";
-$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Verschwende keine Systemressourchen auf das Pollen von externen Seiten wenn das Konto nicht mehr benutzt wird. Trage hier 0 für kein zeitliches Limit.";
+$a->strings["Will be displayed prominently on the registration page."] = "Wird gut sichtbar auf der Registrierungs-Seite angezeigt.";
+$a->strings["Accounts abandoned after x days"] = "Konten gelten nach X Tagen als unbenutzt";
+$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Verschwende keine Systemressourcen auf das Pollen von externen Seiten, wenn das Konto nicht mehr benutzt wird. Trage hier 0 für kein zeitliches Limit.";
$a->strings["Allowed friend domains"] = "Erlaubte Domains für Kontakte";
$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Liste der Domains, die für Freundschaften erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben.";
$a->strings["Allowed email domains"] = "Erlaubte Domains für E-Mails";
$a->strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = "Liste der Domains, die für E-Mail-Adressen bei der Registrierung erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben.";
$a->strings["Block public"] = "Öffentlichen Zugriff blockieren";
-$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Klicken, um öffentlichen Zugriff auf sonst öffentliche Profile zu blockieren, wenn man nicht eingeloggt ist.";
+$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Zugriff auf sonst öffentliche persönliche Seiten blockieren, wenn man nicht eingeloggt ist.";
$a->strings["Force publish"] = "Veröffentlichung erzwingen";
-$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Klicken, um Anzeige aller Profile dieses Servers im Verzeichnis zu erzwingen.";
+$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Die Veröffentlichung aller Profile dieses Servers im Verzeichnis erzwingen.";
+$a->strings["No login on Homepage"] = "Kein Login auf der Homepage";
+$a->strings["Check to hide the login form from your sites homepage when visitors arrive who are not logged in (e.g. when you put the content of the homepage in via the site channel)."] = "Ktivieren, um das Login-Formular auf der Startseite der Seite zu verbergen, z.B. weil es das Layout der Homepage des Seiten-Kanals stört.";
$a->strings["Proxy user"] = "Proxy Benutzer";
$a->strings["Proxy URL"] = "Proxy URL";
$a->strings["Network timeout"] = "Netzwerk-Timeout";
-$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Der Wert ist in Sekunden. Setze 0 für unbegrenzt (nicht empfohlen).";
+$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Wert in Sekunden. 0 für unbegrenzt (nicht empfohlen).";
$a->strings["Delivery interval"] = "Auslieferung Intervall";
-$a->strings["Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers."] = "Verzögere im Hintergrund laufende Auslieferungsprozesse um die angegebene Anzahl an Sekunden, um die Systemlast zu verringern. Empfehlungen: 4-5 für Shared-Hosts, 2-3 für VPS, 0-1 für große dedizierte Server.";
+$a->strings["Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers."] = "Verzögere im Hintergrund laufende Auslieferungsprozesse um die angegebene Anzahl Sekunden, um die Systemlast zu verringern. Empfehlungen: 4-5 für Shared Hosts, 2-3 für VPS, 0-1 für große dedizierte Server.";
$a->strings["Poll interval"] = "Abfrageintervall";
-$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "Verzögere Hintergrundprozesse, um diese Anzahl an Sekunden um die Systemlast zu reduzieren. Bei 0 Sekunden wird das Auslieferungsintervall verwendet.";
-$a->strings["Maximum Load Average"] = "Maximum Load Average";
-$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Maximale Systemlast bevor Verteil- und Empfangsprozesse verschoben werden - Standard 50";
+$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "Verzögere Hintergrundprozesse um diese Anzahl Sekunden, um die Systemlast zu reduzieren. Bei 0 wird das Auslieferungsintervall verwendet.";
+$a->strings["Maximum Load Average"] = "Maximales Load Average";
+$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Maximale Systemlast, bevor Verteil- und Empfangsprozesse verschoben werden – Standard 50";
$a->strings["No server found"] = "Kein Server gefunden";
$a->strings["ID"] = "ID";
$a->strings["for channel"] = "für Kanal";
$a->strings["on server"] = "auf Server";
$a->strings["Status"] = "Status";
$a->strings["Update has been marked successful"] = "Update wurde als erfolgreich markiert";
-$a->strings["Executing %s failed. Check system logs."] = "Aufrufen von %s fehlgeschlagen. Überprüfe die Systemlogs.";
-$a->strings["Update %s was successfully applied."] = "Update %s wurde erfolgreich angewandt.";
-$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "Update %s liefert keinen Rückgabewert. Unbekannt ob es erfolgreich war.";
-$a->strings["Update function %s could not be found."] = "Update Funktion %s konnte nicht gefunden werden.";
+$a->strings["Executing %s failed. Check system logs."] = "Ausführen von %s fehlgeschlagen. Überprüfe die Systemprotokolle.";
+$a->strings["Update %s was successfully applied."] = "Update %s wurde erfolgreich ausgeführt.";
+$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "Update %s lieferte keinen Rückgabewert. Erfolg unbekannt.";
+$a->strings["Update function %s could not be found."] = "Update-Funktion %s konnte nicht gefunden werden.";
$a->strings["No failed updates."] = "Keine fehlgeschlagenen Aktualisierungen.";
$a->strings["Failed Updates"] = "Fehlgeschlagene Aktualisierungen";
-$a->strings["Mark success (if update was manually applied)"] = "Als erfolgreich markieren (wenn das Update manuell angewandt wurde)";
-$a->strings["Attempt to execute this update step automatically"] = "Versuche diesen Updateschritt automatisch anzuwenden";
+$a->strings["Mark success (if update was manually applied)"] = "Als erfolgreich markieren (wenn das Update manuell ausgeführt wurde)";
+$a->strings["Attempt to execute this update step automatically"] = "Versuche, diesen Updateschritt automatisch auszuführen";
$a->strings["%s user blocked/unblocked"] = array(
0 => "%s Nutzer blockiert/freigegeben",
1 => "%s Nutzer blockiert/freigegeben",
@@ -1056,7 +1139,7 @@ $a->strings["User '%s' deleted"] = "Benutzer '%s' gelöscht";
$a->strings["User '%s' unblocked"] = "Benutzer '%s' freigegeben";
$a->strings["User '%s' blocked"] = "Benutzer '%s' blockiert";
$a->strings["select all"] = "Alle auswählen";
-$a->strings["User registrations waiting for confirm"] = "Neuanmeldungen, die auf deine Bestätigung warten";
+$a->strings["User registrations waiting for confirm"] = "Neuanmeldungen, die auf Deine Bestätigung warten";
$a->strings["Request date"] = "Antragsdatum";
$a->strings["No registrations."] = "Keine Registrierungen.";
$a->strings["Approve"] = "Genehmigen";
@@ -1067,8 +1150,8 @@ $a->strings["Register date"] = "Registrierungs-Datum";
$a->strings["Last login"] = "Letzte Anmeldung";
$a->strings["Expires"] = "Verfällt";
$a->strings["Service Class"] = "Service-Klasse";
-$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Markierte Nutzer werden gelöscht\\n\\nAlles was diese Nutzer auf dieser Seite veröffentlicht haben wird permanent gelöscht\\n\\nBist du sicher?";
-$a->strings["The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Der Nutzer {0} wird gelöscht\\n\\nAlles was dieser Nutzer auf dieser Seite veröffentlicht hat wird permanent gelöscht werden\\n\\nBist du sicher?";
+$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Die markierten Nutzer werden gelöscht!\\n\\nAlles, was diese Nutzer auf dieser Seite veröffentlicht haben, wird endgültig gelöscht!\\n\\nBist Du sicher?";
+$a->strings["The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Der Nutzer {0} wird gelöscht!\\n\\nAlles, was dieser Nutzer auf dieser Seite veröffentlicht hat, wird endgültig gelöscht werden!\\n\\nBist Du sicher?";
$a->strings["Plugin %s disabled."] = "Plug-In %s deaktiviert.";
$a->strings["Plugin %s enabled."] = "Plug-In %s aktiviert.";
$a->strings["Disable"] = "Deaktivieren";
@@ -1084,180 +1167,31 @@ $a->strings["Log settings updated."] = "Protokoll-Einstellungen aktualisiert.";
$a->strings["Clear"] = "Leeren";
$a->strings["Debugging"] = "Debugging";
$a->strings["Log file"] = "Protokolldatei";
-$a->strings["Must be writable by web server. Relative to your Red top-level directory."] = "Muss für den Web-Server schreibbar sein. Relativ zum Red Stammverzeichnis.";
+$a->strings["Must be writable by web server. Relative to your Red top-level directory."] = "Muss für den Web-Server schreibbar sein. Relativ zum Red-Stammverzeichnis.";
$a->strings["Log level"] = "Protokollstufe";
-$a->strings["Menu not found."] = "Menü nicht gefunden";
-$a->strings["Menu element updated."] = "Menü-Element aktualisiert.";
-$a->strings["Unable to update menu element."] = "Kann Menü-Element nicht aktualisieren.";
-$a->strings["Menu element added."] = "Menü-Bestandteil hinzugefügt.";
-$a->strings["Unable to add menu element."] = "Kann Menü-Bestandteil nicht hinzufügen.";
-$a->strings["Not found."] = "Nicht gefunden.";
-$a->strings["Manage Menu Elements"] = "Menü-Bestandteile verwalten";
-$a->strings["Edit menu"] = "Menü bearbeiten";
-$a->strings["Edit element"] = "Bestandteil bearbeiten";
-$a->strings["Drop element"] = "Bestandteil löschen";
-$a->strings["New element"] = "Neues Bestandteil";
-$a->strings["Edit this menu container"] = "Diesen Menü-Container bearbeiten";
-$a->strings["Add menu element"] = "Menüelement hinzufügen";
-$a->strings["Delete this menu item"] = "Lösche dieses Menü-Bestandteil";
-$a->strings["Edit this menu item"] = "Bearbeite dieses Menü-Bestandteil";
-$a->strings["New Menu Element"] = "Neues Menü-Bestandteil";
-$a->strings["Link text"] = "Link Text";
-$a->strings["URL of link"] = "URL des Links";
-$a->strings["Use Red magic-auth if available"] = "Verwende Red Magic-Auth wenn verfügbar";
-$a->strings["Open link in new window"] = "Öffne Link in neuem Fenster";
-$a->strings["Order in list"] = "Reihenfolge in der Liste";
-$a->strings["Higher numbers will sink to bottom of listing"] = "Größere Nummern werden weiter unten in der Auflistung einsortiert";
-$a->strings["Create"] = "Erstelle";
-$a->strings["Menu item not found."] = "Menü-Bestandteil nicht gefunden.";
-$a->strings["Menu item deleted."] = "Menü-Bestandteil gelöscht.";
-$a->strings["Menu item could not be deleted."] = "Menü-Bestandteil kann nicht gelöscht werden.";
-$a->strings["Edit Menu Element"] = "Bearbeite Menü-Bestandteil";
-$a->strings["Modify"] = "Ändern";
-$a->strings["Collection created."] = "Sammlung erstellt.";
-$a->strings["Could not create collection."] = "Sammlung kann nicht erstellt werden.";
-$a->strings["Collection name changed."] = "Name der Sammlung geändert.";
-$a->strings["Create a collection of channels."] = "Erstelle eine Sammlung von Kanälen.";
-$a->strings["Collection Name: "] = "Name der Sammlung:";
-$a->strings["Members are visible to other channels"] = "Mitglieder sind sichtbar für andere Kanäle";
-$a->strings["Collection removed."] = "Sammlung gelöscht.";
-$a->strings["Unable to remove collection."] = "Löschen der Sammlung nicht möglich.";
-$a->strings["Collection Editor"] = "Sammlung-Editor";
-$a->strings["Members"] = "Mitglieder";
-$a->strings["All Connected Channels"] = "Alle verbundene Channels";
-$a->strings["Click on a channel to add or remove."] = "Wähle einen Kanal zum hinzufügen oder entfernen aus.";
-$a->strings["Remove term"] = "Eintrag löschen";
-$a->strings["Page owner information could not be retrieved."] = "Informationen über den Betreiber der Seite konnten nicht gefunden werden.";
-$a->strings["Album not found."] = "Album nicht gefunden.";
-$a->strings["Delete Album"] = "Album löschen";
-$a->strings["Delete Photo"] = "Foto löschen";
-$a->strings["%1\$s was tagged in %2\$s by %3\$s"] = "%1\$s wurde auf %2\$s von %3\$s getaggt";
-$a->strings["a photo"] = "Foto";
-$a->strings["No photos selected"] = "Keine Fotos ausgewählt";
-$a->strings["Access to this item is restricted."] = "Zugriff auf dieses Foto wurde eingeschränkt.";
-$a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = "Du benutzt %1$.2f MBytes deines %2$.2f MBytes großen Bilder-Speichers.";
-$a->strings["You have used %1$.2f Mbytes of photo storage."] = "Du verwendets %1$.2f MBytes deines Foto-Speichers.";
-$a->strings["Upload Photos"] = "Fotos hochladen";
-$a->strings["New album name: "] = "Name des neuen Albums:";
-$a->strings["or existing album name: "] = "oder bestehenden Album Namen:";
-$a->strings["Do not show a status post for this upload"] = "Keine Statusnachricht für diesen Upload senden";
-$a->strings["Permissions"] = "Berechtigungen";
-$a->strings["Contact Photos"] = "Kontakt Bilder";
-$a->strings["Edit Album"] = "Album bearbeiten";
-$a->strings["Show Newest First"] = "Zeige neueste zuerst";
-$a->strings["Show Oldest First"] = "Zeige älteste zuerst";
-$a->strings["View Photo"] = "Foto ansehen";
-$a->strings["Permission denied. Access to this item may be restricted."] = "Berechtigung verweigert. Der Zugriff ist wahrscheinlich eingeschränkt worden.";
-$a->strings["Photo not available"] = "Foto nicht verfügbar";
-$a->strings["Use as profile photo"] = "Als Profilfoto verwenden";
-$a->strings["View Full Size"] = "In voller Größe anzeigen";
-$a->strings["Edit photo"] = "Foto bearbeiten";
-$a->strings["Rotate CW (right)"] = "Drehen US (rechts)";
-$a->strings["Rotate CCW (left)"] = "Drehen EUS (links)";
-$a->strings["New album name"] = "Name des neuen Albums:";
-$a->strings["Caption"] = "Bildunterschrift";
-$a->strings["Add a Tag"] = "Schlagwort hinzufügen";
-$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Beispiel: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping";
-$a->strings["View Album"] = "Album ansehen";
-$a->strings["Recent Photos"] = "Neueste Fotos";
-$a->strings["sent you a private message"] = "eine private Nachricht schicken";
-$a->strings["added your channel"] = "hat deinen Kanal hinzugefügt";
-$a->strings["g A l F d"] = "l, d. F G \\\\U\\\\h\\\\r";
-$a->strings["[today]"] = "[Heute]";
-$a->strings["posted an event"] = "hat eine Veranstaltung veröffentlicht";
-$a->strings["- select -"] = "-auswählen-";
-$a->strings["Menu updated."] = "Menü aktualisiert.";
-$a->strings["Unable to update menu."] = "Kann Menü nicht aktualisieren.";
-$a->strings["Menu created."] = "Menü erstellt.";
-$a->strings["Unable to create menu."] = "Kann Menü nicht erstellen.";
-$a->strings["Manage Menus"] = "Menüs verwalten";
-$a->strings["Drop"] = "Löschen";
-$a->strings["New"] = "Neu";
-$a->strings["Create a new menu"] = "Neues Menü erstellen";
-$a->strings["Delete this menu"] = "Lösche dieses Menü";
-$a->strings["Edit menu contents"] = "Bearbeite Menü Inhalte";
-$a->strings["Edit this menu"] = "Dieses Menü bearbeiten";
-$a->strings["New Menu"] = "Neues Menü";
-$a->strings["Menu name"] = "Menü Name";
-$a->strings["Must be unique, only seen by you"] = "Muss unverwechselbar sein, nur für dich sichtbar";
-$a->strings["Menu title"] = "Menü Titel";
-$a->strings["Menu title as seen by others"] = "Menü Titel wie er von anderen gesehen wird";
-$a->strings["Menu deleted."] = "Menü gelöscht.";
-$a->strings["Menu could not be deleted."] = "Menü konnte nicht gelöscht werden.";
-$a->strings["Edit Menu"] = "Menü bearbeiten";
-$a->strings["Add or remove entries to this menu"] = "Einträge zu diesem Menü hinzufügen oder entfernen";
+$a->strings["- select -"] = "– auswählen –";
$a->strings["Welcome to %s"] = "Willkommen auf %s";
-$a->strings["Check Mail"] = "E-Mails abrufen";
-$a->strings["Unable to lookup recipient."] = "Konnte den Empfänger nicht finden.";
-$a->strings["Unable to communicate with requested channel."] = "Die Kommunikation mit dem ausgewählten Kanal ist fehlgeschlagen.";
-$a->strings["Cannot verify requested channel."] = "Verifizierung des angeforderten Kanals fehlgeschlagen.";
-$a->strings["Selected channel has private message restrictions. Send failed."] = "Der ausgewählte Kanal hat Einschränkungen bzgl. privater Nachrichten. Senden fehlgeschlagen.";
-$a->strings["Messages"] = "Nachrichten";
-$a->strings["Message deleted."] = "Nachricht gelöscht.";
-$a->strings["Conversation removed."] = "Unterhaltung gelöscht.";
-$a->strings["Message recalled."] = "Nachricht widerrufen.";
-$a->strings["Send Private Message"] = "Private Nachricht senden";
-$a->strings["To:"] = "An:";
-$a->strings["Subject:"] = "Betreff:";
-$a->strings["No messages."] = "Keine Nachrichten.";
-$a->strings["Delete message"] = "Nachricht löschen";
-$a->strings["D, d M Y - g:i A"] = "D, d. M Y - g:i A";
-$a->strings["Message not found."] = "Nachricht nicht gefunden.";
-$a->strings["Recall message"] = "Widerrufe die Nachricht";
-$a->strings["Message has been recalled."] = "Die Nachricht wurde widerrufen.";
-$a->strings["Private Conversation"] = "Private Unterhaltung";
-$a->strings["Delete conversation"] = "Unterhaltung löschen";
-$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Keine sichere Kommunikation verfügbar. <strong>Eventuell</strong> kannst du von der Profilseite des Absenders antworten.";
-$a->strings["Send Reply"] = "Antwort senden";
-$a->strings["No profile"] = "Kein Profil";
-$a->strings["Layout Help"] = "Layout Hilfe";
-$a->strings["Help with this feature"] = "Hilfe zu diesem Feature";
-$a->strings["Layout Name"] = "Layout Name";
-$a->strings["Help:"] = "Hilfe:";
-$a->strings["Not Found"] = "Nicht gefunden";
-$a->strings["Remote Authentication"] = "Entfernte Authentifizierung";
-$a->strings["Enter your channel address (e.g. channel@example.com)"] = "Deine Kanal-Adresse (z.B. channel@example.com)";
-$a->strings["Authenticate"] = "Authentifizieren";
-$a->strings["Commented Order"] = "Neueste Kommentare";
-$a->strings["Sort by Comment Date"] = "Nach Kommentardatum sortiert";
-$a->strings["Posted Order"] = "Neueste Beiträge";
-$a->strings["Sort by Post Date"] = "Nach Beitragsdatum sortiert";
-$a->strings["Personal"] = "Persönlich";
-$a->strings["Posts that mention or involve you"] = "Beiträge, in denen es um dich geht";
-$a->strings["Activity Stream - by date"] = "Activity Stream - nach Datum sortiert";
-$a->strings["Starred"] = "Markiert";
-$a->strings["Favourite Posts"] = "Beiträge mit Sternchen";
-$a->strings["Spam"] = "Spam";
-$a->strings["Posts flagged as SPAM"] = "Nachrichten die als SPAM markiert wurden";
-$a->strings["Refresh"] = "Aktualisieren";
-$a->strings["Me"] = "Ich";
-$a->strings["Best Friends"] = "Beste Freunde";
-$a->strings["Co-workers"] = "Kollegen";
-$a->strings["Former Friends"] = "ehem. Freunde";
-$a->strings["Acquaintances"] = "Bekanntschaften";
-$a->strings["Everybody"] = "Jeder";
-$a->strings["Search Results For:"] = "Suchergebnisse für:";
-$a->strings["No such group"] = "Gruppe existiert nicht";
-$a->strings["Connection: "] = "Verbindung:";
-$a->strings["Invalid connection."] = "Ungültige Verbindung.";
-$a->strings["Ignore"] = "Ignorieren";
+$a->strings["Item not found"] = "Element nicht gefunden";
+$a->strings["Item is not editable"] = "Element kann nicht bearbeitet werden.";
+$a->strings["Delete item?"] = "Eintrag löschen?";
+$a->strings["Insert YouTube video"] = "YouTube-Video einfügen";
+$a->strings["Insert Vorbis [.ogg] video"] = "Vorbis [.ogg]-Video einfügen";
+$a->strings["Insert Vorbis [.ogg] audio"] = "Vorbis [.ogg]-Audio einfügen";
+$a->strings["Age: "] = "Alter:";
+$a->strings["Gender: "] = "Geschlecht:";
+$a->strings["Finding:"] = "Ergebnisse:";
+$a->strings["next page"] = "nächste Seite";
+$a->strings["previous page"] = "vorige Seite";
+$a->strings["No entries (some entries may be hidden)."] = "Keine Einträge gefunden (einige könnten versteckt sein).";
+$a->strings["Could not access contact record."] = "Konnte nicht auf den Kontakteintrag zugreifen.";
+$a->strings["Could not locate selected profile."] = "Gewähltes Profil nicht gefunden.";
$a->strings["Connection updated."] = "Verbindung aktualisiert.";
-$a->strings["Connection update failed."] = "Aktualisierung der Verbindung fehlgeschlagen.";
-$a->strings["Introductions and Connection Requests"] = "Vorstellungen und Kontaktanfragen";
-$a->strings["No pending introductions."] = "Keine wartenden Vorstellungen.";
-$a->strings["System error. Please try again later."] = "Systemfehler. Bitte später erneut versuchen.";
-$a->strings["Hide this contact from others"] = "Diese Verbindung vor den anderen verbergen.";
-$a->strings["Post a new friend activity"] = "Neue-Kontakt Nachricht senden";
-$a->strings["if applicable"] = "falls anwendbar";
-$a->strings["Discard"] = "Verwerfen";
-$a->strings["Could not access contact record."] = "Konnte auf den Kontakteintrag nicht zugreifen.";
-$a->strings["Could not locate selected profile."] = "Konnte das gewählte Profil nicht finden.";
$a->strings["Failed to update connection record."] = "Konnte den Verbindungseintrag nicht aktualisieren.";
-$a->strings["Could not access address book record."] = "Konnte nicht auf den Eintrag im Adressbuch zugreifen.";
+$a->strings["Could not access address book record."] = "Konnte nicht auf den Adressbuch-Eintrag zugreifen.";
$a->strings["Refresh failed - channel is currently unavailable."] = "Aktualisierung fehlgeschlagen – der Kanal ist im Moment nicht erreichbar.";
$a->strings["Channel has been unblocked"] = "Kanal nicht mehr blockiert";
$a->strings["Channel has been blocked"] = "Kanal blockiert";
-$a->strings["Unable to set address book parameters."] = "Konnte die Adressbuch Parameter nicht setzen.";
+$a->strings["Unable to set address book parameters."] = "Konnte die Adressbuch-Parameter nicht setzen.";
$a->strings["Channel has been unignored"] = "Kanal wird nicht mehr ignoriert";
$a->strings["Channel has been ignored"] = "Kanal wird ignoriert";
$a->strings["Channel has been unarchived"] = "Kanal wurde aus dem Archiv zurück geholt";
@@ -1267,50 +1201,50 @@ $a->strings["Channel has been hidden"] = "Kanal wurde versteckt";
$a->strings["Channel has been approved"] = "Kanal wurde zugelassen";
$a->strings["Channel has been unapproved"] = "Zulassung des Kanals entfernt";
$a->strings["Contact has been removed."] = "Kontakt wurde entfernt.";
-$a->strings["View %s's profile"] = "%s's Profil ansehen";
-$a->strings["Refresh Permissions"] = "Zugriffsrechte auffrischen";
+$a->strings["View %s's profile"] = "%ss Profil ansehen";
+$a->strings["Refresh Permissions"] = "Zugriffsrechte neu laden";
$a->strings["Fetch updated permissions"] = "Aktualisierte Zugriffsrechte abfragen";
$a->strings["Recent Activity"] = "Kürzliche Aktivitäten";
$a->strings["View recent posts and comments"] = "Betrachte die neuesten Beiträge und Kommentare";
-$a->strings["Block or Unblock this connection"] = "Verbindung blockieren oder frei geben";
+$a->strings["Block or Unblock this connection"] = "Verbindung blockieren oder freigeben";
$a->strings["Unignore"] = "Nicht ignorieren";
+$a->strings["Ignore"] = "Ignorieren";
$a->strings["Ignore or Unignore this connection"] = "Verbindung ignorieren oder wieder beachten";
$a->strings["Unarchive"] = "Aus Archiv zurückholen";
$a->strings["Archive"] = "Archivieren";
-$a->strings["Archive or Unarchive this connection"] = "Archiviere diese Verbindung oder hole sie aus dem Archiv zurück";
-$a->strings["Unhide"] = "aufdecken";
-$a->strings["Hide"] = "Verbergen";
-$a->strings["Hide or Unhide this connection"] = "Diese Verbindung verstecken oder aufdecken";
+$a->strings["Archive or Unarchive this connection"] = "Verbindung archivieren oder aus dem Archiv zurückholen";
+$a->strings["Unhide"] = "Wieder sichtbar machen";
+$a->strings["Hide"] = "Verstecken";
+$a->strings["Hide or Unhide this connection"] = "Diese Verbindung verstecken oder wieder sichtbar machen";
$a->strings["Delete this connection"] = "Verbindung löschen";
-$a->strings["Unknown"] = "Unbekannt";
$a->strings["Approve this connection"] = "Verbindung genehmigen";
-$a->strings["Accept connection to allow communication"] = "Aktzeptiere die Verbindung um Kommunikation zu ermöglichen";
+$a->strings["Accept connection to allow communication"] = "Akzeptiere die Verbindung, um Kommunikation zu ermöglichen";
$a->strings["Automatic Permissions Settings"] = "Automatische Berechtigungs-Einstellungen";
$a->strings["Connections: settings for %s"] = "Verbindungseinstellungen für %s";
-$a->strings["When receiving a channel introduction, any permissions provided here will be applied to the new connection automatically and the introduction approved. Leave this page if you do not wish to use this feature."] = "Wenn eine Kanal-Vorstellung empfangen wird, werden die hier getroffenen Einstellungen automatisch angewandt und der Anfrage wird stattgegeben. Verlasse diese Seite, wenn du dieses Feature nicht verwanden möchtest.";
-$a->strings["Slide to adjust your degree of friendship"] = "Schieben um den Grad der Freundschaft zu wählen";
-$a->strings["inherited"] = "Geerbt";
-$a->strings["Connection has no individual permissions!"] = "Diese Verbindung hat keine individuellen Zugriffseinstellungen.";
-$a->strings["This may be appropriate based on your <a href=\"settings\">privacy settings</a>, though you may wish to review the \"Advanced Permissions\"."] = "Abhängig von deinen <a href=\"settings\">Privatsphären Einstellungen</a> könnte dies angebracht sein, eventuell solltest du aber die \"Erweiterte Zugriffsrechte\" überprüfen.";
+$a->strings["When receiving a channel introduction, any permissions provided here will be applied to the new connection automatically and the introduction approved. Leave this page if you do not wish to use this feature."] = "Wenn eine Verbindungsanfrage empfangen wird, werden die hier getroffenen Einstellungen automatisch angewandt, und die Anfrage wird genehmigt. Verlasse diese Seite, wenn Du diese Funktion nicht verwenden möchtest.";
+$a->strings["Slide to adjust your degree of friendship"] = "Verschieben, um den Grad der Freundschaft zu einzustellen";
+$a->strings["inherited"] = "geerbt";
+$a->strings["Connection has no individual permissions!"] = "Diese Verbindung hat keine individuellen Zugriffsrechte!";
+$a->strings["This may be appropriate based on your <a href=\"settings\">privacy settings</a>, though you may wish to review the \"Advanced Permissions\"."] = "Abhängig von Deinen <a href=\"settings\">Privatsphäre-Einstellungen</a> könnte das passen, eventuell solltest Du aber die „Zugriffsrechte für Fortgeschrittene“ überprüfen.";
$a->strings["Profile Visibility"] = "Sichtbarkeit des Profils";
-$a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Bitte wähle ein Profil, das wir %s zeigen sollen, wenn deine Profilseite über eine verifizierte Verbindung aufgerufen wird.";
+$a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Bitte wähle ein Profil, das wir %s zeigen sollen, wenn Deine Profilseite über eine verifizierte Verbindung aufgerufen wird.";
$a->strings["Contact Information / Notes"] = "Kontaktinformationen / Notizen";
-$a->strings["Edit contact notes"] = "Kontaktnotizen editieren";
+$a->strings["Edit contact notes"] = "Kontaktnotizen bearbeiten";
$a->strings["Their Settings"] = "Deren Einstellungen";
$a->strings["My Settings"] = "Meine Einstellungen";
$a->strings["Forum Members"] = "Forum Mitglieder";
$a->strings["Soapbox"] = "Marktschreier";
-$a->strings["Full Sharing"] = "Volles Teilen";
-$a->strings["Cautious Sharing"] = "Vorsichtiges Teilen";
-$a->strings["Follow Only"] = "Nur Folgen";
-$a->strings["Individual Permissions"] = "Individuelle Zugriffseinstellungen";
-$a->strings["Some permissions may be inherited from your channel <a href=\"settings\">privacy settings</a>, which have higher priority. Changing those inherited settings on this page will have no effect."] = "Einige Genehmigungen können von deinen <a href=\"settings\">Sicherheits- und Datenschutz-Einstellungen</a> geerbt sein (siehe Kennzeichnung), da diese eine höhere Priorität haben. Wenn du solche Genehmigungen hier änderst, hat das keine Auswirkungen.";
-$a->strings["Advanced Permissions"] = "Erweiterte Zugriffsrechte";
-$a->strings["Quick Links"] = "Quick Links";
-$a->strings["Visit %s's profile - %s"] = "%s's Profil besuchen - %s";
-$a->strings["Block/Unblock contact"] = "Geblockt Status ein- / ausschalten";
+$a->strings["Full Sharing (typical social network permissions)"] = "Vollumfängliches Teilen (übliche Berechtigungen in sozialen Netzwerken)";
+$a->strings["Cautious Sharing "] = "Vorsichtiges Teilen";
+$a->strings["Follow Only"] = "Nur folgen";
+$a->strings["Individual Permissions"] = "Individuelle Zugriffsrechte";
+$a->strings["Some permissions may be inherited from your channel <a href=\"settings\">privacy settings</a>, which have higher priority than individual settings. Changing those inherited settings on this page will have no effect."] = "Einige Berechtigungen werden von den <a href=\"settings\">Sicherheits- und Privatsphäre-Einstellungen</a> dieses Kanals geerbt, die eine höhere Priorität haben als die Einstellungen bei einer Verbindung. Werden geerbte Einstellungen hier geändert, hat das keine Auswirkungen.";
+$a->strings["Advanced Permissions"] = "Zugriffsrechte für Fortgeschrittene";
+$a->strings["Simple Permissions (select one and submit)"] = "Einfache Berechtigungs-Einstellungen (wähle eine aus und klicke auf Senden)";
+$a->strings["Visit %s's profile - %s"] = "%ss Profil besuchen - %s";
+$a->strings["Block/Unblock contact"] = "Kontakt blockieren/freigeben";
$a->strings["Ignore contact"] = "Kontakt ignorieren";
-$a->strings["Repair URL settings"] = "URL Einstellungen reparieren";
+$a->strings["Repair URL settings"] = "URL-Einstellungen reparieren";
$a->strings["View conversations"] = "Unterhaltungen anzeigen";
$a->strings["Delete contact"] = "Kontakt löschen";
$a->strings["Last update:"] = "Letzte Aktualisierung:";
@@ -1320,30 +1254,27 @@ $a->strings["Currently blocked"] = "Derzeit blockiert";
$a->strings["Currently ignored"] = "Derzeit ignoriert";
$a->strings["Currently archived"] = "Derzeit archiviert";
$a->strings["Currently pending"] = "Derzeit anstehend";
+$a->strings["Hide this contact from others"] = "Diese Verbindung vor den anderen verbergen.";
$a->strings["Replies/likes to your public posts <strong>may</strong> still be visible"] = "Antworten/Likes auf deine öffentlichen Beiträge <strong>können</strong> immer noch sichtbar sein";
-$a->strings["Blocked"] = "Blockiert";
-$a->strings["Ignored"] = "Ignoriert";
-$a->strings["Hidden"] = "Versteckt";
-$a->strings["Archived"] = "Archiviert";
-$a->strings["All"] = "Alle";
-$a->strings["Suggestions"] = "Vorschläge";
-$a->strings["Suggest new connections"] = "Neue Verbindungen vorschlagen";
-$a->strings["Show pending (new) connections"] = "Zeige schwebende (neue) Verbindungen";
-$a->strings["All Connections"] = "Alle Verbindungen";
-$a->strings["Show all connections"] = "Zeige alle Verbindungen";
-$a->strings["Unblocked"] = "Freigegeben";
-$a->strings["Only show unblocked connections"] = "Zeige nur freigegebene Verbindungen";
-$a->strings["Only show blocked connections"] = "Zeige nur blockierte Verbindungen";
-$a->strings["Only show ignored connections"] = "Zeige nur ignorierte Verbindungen";
-$a->strings["Only show archived connections"] = "Zeige nur archivierte Verbindungen";
-$a->strings["Only show hidden connections"] = "Zeige nur versteckte Verbindungen";
-$a->strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]";
-$a->strings["Edit contact"] = "Kontakt bearbeiten";
-$a->strings["Search your connections"] = "Verbindungen durchsuchen";
-$a->strings["Finding: "] = "Ergebnisse:";
-$a->strings["This site is not a directory server"] = "Diese Website ist kein Verzeichnis-Server";
-$a->strings["Remote privacy information not available."] = "Entfernte Privatsphären Einstellungen sind nicht verfügbar.";
-$a->strings["Visible to:"] = "Sichtbar für:";
+$a->strings["Layout Help"] = "Layout-Hilfe";
+$a->strings["Help with this feature"] = "Hilfe zu dieser Funktion";
+$a->strings["Layout Name"] = "Layout-Name";
+$a->strings["Help:"] = "Hilfe:";
+$a->strings["Not Found"] = "Nicht gefunden";
+$a->strings["Page not found."] = "Seite nicht gefunden.";
+$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Wir haben ein Problem mit der OpenID festgestellt, mit der du dich anmelden wolltest. Bitte überprüfe die Schreibweise der ID noch einmal.";
+$a->strings["The error message was:"] = "Die Fehlermeldung lautet:";
+$a->strings["Authentication failed."] = "Authentifizierung fehlgeschlagen.";
+$a->strings["Remote Authentication"] = "Entfernte Authentifizierung";
+$a->strings["Enter your channel address (e.g. channel@example.com)"] = "Deine Kanal-Adresse (z. B. channel@example.com)";
+$a->strings["Authenticate"] = "Authentifizieren";
+$a->strings["Invalid item."] = "Ungültiges Element.";
+$a->strings["No such group"] = "Gruppe existiert nicht";
+$a->strings["Search Results For:"] = "Suchergebnisse für:";
+$a->strings["Collection is empty"] = "Sammlung ist leer";
+$a->strings["Collection: "] = "Sammlung:";
+$a->strings["Connection: "] = "Verbindung:";
+$a->strings["Invalid connection."] = "Ungültige Verbindung.";
$a->strings["Profile not found."] = "Profil nicht gefunden.";
$a->strings["Profile deleted."] = "Profil gelöscht.";
$a->strings["Profile-"] = "Profil-";
@@ -1352,11 +1283,11 @@ $a->strings["Profile unavailable to clone."] = "Profil kann nicht geklont werden
$a->strings["Profile Name is required."] = "Profil-Name erforderlich.";
$a->strings["Marital Status"] = "Familienstand";
$a->strings["Romantic Partner"] = "Romantische Partner";
-$a->strings["Likes"] = "Gefällt-mir";
-$a->strings["Dislikes"] = "Gefällt-mir-nicht";
+$a->strings["Likes"] = "Gefällt";
+$a->strings["Dislikes"] = "Gefällt nicht";
$a->strings["Work/Employment"] = "Arbeit/Anstellung";
$a->strings["Religion"] = "Religion";
-$a->strings["Political Views"] = "Politische Anscihten";
+$a->strings["Political Views"] = "Politische Ansichten";
$a->strings["Gender"] = "Geschlecht";
$a->strings["Sexual Preference"] = "Sexuelle Orientierung";
$a->strings["Homepage"] = "Webseite";
@@ -1364,7 +1295,7 @@ $a->strings["Interests"] = "Hobbys/Interessen";
$a->strings["Address"] = "Adresse";
$a->strings["Location"] = "Ort";
$a->strings["Profile updated."] = "Profil aktualisiert.";
-$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Verberge die Liste deiner Kontakte vor Betrachtern dieses Profils";
+$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Deine Kontaktliste vor Betrachtern dieses Profils verbergen?";
$a->strings["Edit Profile Details"] = "Bearbeite Profil-Details";
$a->strings["View this profile"] = "Dieses Profil ansehen";
$a->strings["Change Profile Photo"] = "Profilfoto ändern";
@@ -1373,14 +1304,14 @@ $a->strings["Clone this profile"] = "Dieses Profil klonen";
$a->strings["Delete this profile"] = "Dieses Profil löschen";
$a->strings["Profile Name:"] = "Profilname:";
$a->strings["Your Full Name:"] = "Dein voller Name:";
-$a->strings["Title/Description:"] = "Titel/Beschreibung:";
+$a->strings["Title/Description:"] = "Titel/Stellenbeschreibung:";
$a->strings["Your Gender:"] = "Dein Geschlecht:";
$a->strings["Birthday (%s):"] = "Geburtstag (%s):";
$a->strings["Street Address:"] = "Straße und Hausnummer:";
$a->strings["Locality/City:"] = "Wohnort:";
$a->strings["Postal/Zip Code:"] = "Postleitzahl:";
$a->strings["Country:"] = "Land:";
-$a->strings["Region/State:"] = "Region/Bundesstaat";
+$a->strings["Region/State:"] = "Region/Bundesstaat:";
$a->strings["<span class=\"heart\">&hearts;</span> Marital Status:"] = "<span class=\"heart\">&hearts;</span> Beziehungsstatus:";
$a->strings["Who: (if applicable)"] = "Wer: (falls anwendbar)";
$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Beispiele: cathy123, Cathy Williams, cathy@example.com";
@@ -1388,12 +1319,12 @@ $a->strings["Since [date]:"] = "Seit [Datum]:";
$a->strings["Homepage URL:"] = "Homepage URL:";
$a->strings["Religious Views:"] = "Religiöse Ansichten:";
$a->strings["Keywords:"] = "Schlüsselwörter:";
-$a->strings["Example: fishing photography software"] = "Beispiel: fischen Fotografie Software";
-$a->strings["Used in directory listings"] = "Wird in Verzeichnis Auflistungen verwendet";
-$a->strings["Tell us about yourself..."] = "Erzähl uns ein wenig von Dir...";
+$a->strings["Example: fishing photography software"] = "Beispiel: Angeln Fotografie Software";
+$a->strings["Used in directory listings"] = "Wird in Verzeichnis-Auflistungen verwendet";
+$a->strings["Tell us about yourself..."] = "Erzähle uns ein wenig von Dir …";
$a->strings["Hobbies/Interests"] = "Hobbys/Interessen";
$a->strings["Contact information and Social Networks"] = "Kontaktinformation und soziale Netzwerke";
-$a->strings["My other channels"] = "Meine anderen Channels";
+$a->strings["My other channels"] = "Meine anderen Kanäle";
$a->strings["Musical interests"] = "Musikalische Interessen";
$a->strings["Books, literature"] = "Bücher, Literatur";
$a->strings["Television"] = "Fernsehen";
@@ -1401,98 +1332,197 @@ $a->strings["Film/dance/culture/entertainment"] = "Film/Tanz/Kultur/Unterhaltung
$a->strings["Love/romance"] = "Liebe/Romantik";
$a->strings["Work/employment"] = "Arbeit/Anstellung";
$a->strings["School/education"] = "Schule/Ausbildung";
-$a->strings["This is your <strong>public</strong> profile.<br />It <strong>may</strong> be visible to anybody using the internet."] = "Dies ist Dein <strong>öffentliches</strong> Profil.<br />Es <strong>könnte</strong> für jeden im Internet sichtbar sein.";
-$a->strings["Age: "] = "Alter:";
+$a->strings["This is your <strong>public</strong> profile.<br />It <strong>may</strong> be visible to anybody using the internet."] = "Das ist Dein <strong>öffentliches</strong> Profil.<br />Es <strong>könnte</strong> für jeden im Internet sichtbar sein.";
$a->strings["Edit/Manage Profiles"] = "Bearbeite/Verwalte Profile";
-$a->strings["Change profile photo"] = "Ändere das Profilfoto";
-$a->strings["Create New Profile"] = "Neues Profil erstellen";
-$a->strings["Profile Image"] = "Profilfoto:";
-$a->strings["visible to everybody"] = "sichtbar für jeden";
-$a->strings["Edit visibility"] = "Sichtbarkeit bearbeiten";
-$a->strings["Add a Channel"] = "Channel hinzufügen";
-$a->strings["A channel is your own collection of related web pages. A channel can be used to hold social network profiles, blogs, conversation groups and forums, celebrity pages, and much more. You may create as many channels as your service provider allows."] = "Ein Kanal ist deine eigene Sammlung von verbundenen Webseiten. Ein Kanal kann genutzt werden, um Social Network-Profile, Blogs, Gesprächsgruppen und Foren, Promi-Seiten und viel mehr zu erfassen. Du kannst so viele Kanäle erstellen, wie es der Betreiber deiner Seite zulässt.";
-$a->strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "] = "Beispiele: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" ";
-$a->strings["Choose a short nickname"] = "Wähle einen kurzen Spitznahmen";
-$a->strings["Your nickname will be used to create an easily remembered channel address (like an email address) which you can share with others."] = "Dein Spitzname wird verwendet, um eine einfach zu erinnernde Kanal-Adresse (ähnlich einer E-Mail Adresse) zu erzeugen, die Du mit anderen austauschen kannst.";
-$a->strings["Or <a href=\"import\">import an existing channel</a> from another location"] = "Oder <a href=\"import\">importiere einen bestehenden Kanal</a> von einem anderen Ort";
-$a->strings["Permission Denied."] = "Zugriff verweigert.";
-$a->strings["Permission denied. VS."] = "Zugriff verweigert. VS.";
-$a->strings["Download"] = "Download";
-$a->strings["Used: "] = "Verwendet:";
-$a->strings["Limit: "] = "Limit:";
+$a->strings["Add profile things"] = "Profil-Dinge hinzufügen";
+$a->strings["Include desirable objects in your profile"] = "Binde begehrenswerte Dinge in Dein Profil ein";
+$a->strings["Channel added."] = "Kanal hinzugefügt.";
+$a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "Fern-Authentifizierung blockiert. Du bist lokal auf diesem Server angemeldet. Bitte melde Dich ab und versuche es erneut.";
+$a->strings["Welcome %s. Remote authentication successful."] = "Willkommen %s. Entfernte Authentifizierung erfolgreich.";
+$a->strings["This site is not a directory server"] = "Diese Website ist kein Verzeichnis-Server";
+$a->strings["Failed to create source. No channel selected."] = "Konnte die Quelle nicht anlegen. Kein Kanal ausgewählt.";
+$a->strings["Source created."] = "Quelle erstellt.";
+$a->strings["Source updated."] = "Quelle aktualisiert.";
+$a->strings["*"] = "*";
+$a->strings["Manage remote sources of content for your channel."] = "Quellen von Inhalten Deines Kanals verwalten.";
+$a->strings["New Source"] = "Neue Quelle";
+$a->strings["Import all or selected content from the following channel into this channel and distribute it according to your channel settings."] = "Importiere alle oder ausgewählte Inhalte des folgenden Kanals in diesen Kanal und verteile sie gemäß der Einstellungen dieses Kanals.";
+$a->strings["Only import content with these words (one per line)"] = "Importiere nur Beiträge, die folgende Wörter (eines pro Zeile) enthalten";
+$a->strings["Leave blank to import all public content"] = "Leer lassen, um alle öffentlichen Beiträge zu importieren";
+$a->strings["Channel Name"] = "Name des Kanals";
+$a->strings["Source not found."] = "Quelle nicht gefunden.";
+$a->strings["Edit Source"] = "Quelle bearbeiten";
+$a->strings["Delete Source"] = "Quelle löschen";
+$a->strings["Source removed"] = "Quelle gelöscht";
+$a->strings["Unable to remove source."] = "Konnte die Quelle nicht löschen.";
+$a->strings["Remote privacy information not available."] = "Privatsphäre-Einstellungen anderer Nutzer sind nicht verfügbar.";
+$a->strings["Visible to:"] = "Sichtbar für:";
+$a->strings["Hub not found."] = "Server nicht gefunden.";
+$a->strings["Red Matrix Server - Setup"] = "Red Matrix Server - Installation";
+$a->strings["Could not connect to database."] = "Kann nicht mit der Datenbank verbinden.";
+$a->strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Konnte die angegebene Webseiten-URL nicht erreichen. Möglicherweise ein Problem mit dem SSL-Zertifikat oder dem DNS.";
+$a->strings["Could not create table."] = "Kann Tabelle nicht erstellen.";
+$a->strings["Your site database has been installed."] = "Die Datenbank Deines Servers wurde installiert.";
+$a->strings["You may need to import the file \"install/database.sql\" manually using phpmyadmin or mysql."] = "Eventuell musst Du die Datei \"install/database.sql\" per Hand mit phpmyadmin oder mysql importieren.";
+$a->strings["Please see the file \"install/INSTALL.txt\"."] = "Lies die Datei \"install/INSTALL.txt\".";
+$a->strings["System check"] = "Systemprüfung";
+$a->strings["Check again"] = "Bitte nochmal prüfen";
+$a->strings["Database connection"] = "Datenbank Verbindung";
+$a->strings["In order to install Red Matrix we need to know how to connect to your database."] = "Um die Red-Matrix installieren zu können, müssen wir wissen, wie wir eine Verbindung zu Deiner Datenbank aufbauen können.";
+$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Bitte kontaktiere Deinen Hosting-Provider oder Administrator, falls Du Fragen zu diesen Einstellungen hast.";
+$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "Die Datenbank, die Du weiter unten angibst, sollte bereits existieren. Sollte das noch nicht der Fall sein, erzeuge sie bitte bevor Du fortfährst.";
+$a->strings["Database Server Name"] = "Datenbank-Servername";
+$a->strings["Default is localhost"] = "Standard ist localhost";
+$a->strings["Database Port"] = "Datenbank-Port";
+$a->strings["Communication port number - use 0 for default"] = "Port-Nummer für die Kommunikation – verwende 0 für die Standardeinstellung";
+$a->strings["Database Login Name"] = "Datenbank-Benutzername";
+$a->strings["Database Login Password"] = "Datenbank-Kennwort";
+$a->strings["Database Name"] = "Datenbank-Name";
+$a->strings["Site administrator email address"] = "E-Mail Adresse des Seiten-Administrators";
+$a->strings["Your account email address must match this in order to use the web admin panel."] = "Die E-Mail-Adresse Deines Accounts muss dieser Adresse entsprechen, damit Du Zugriff zur Administrations-Seite erhältst.";
+$a->strings["Website URL"] = "Server-URL";
+$a->strings["Please use SSL (https) URL if available."] = "Nutze wenn möglich eine SSL-URL (https).";
+$a->strings["Please select a default timezone for your website"] = "Standard-Zeitzone für Deinen Server";
+$a->strings["Site settings"] = "Seiteneinstellungen";
+$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Konnte die Kommandozeilen-Version von PHP nicht im PATH des Web-Servers finden.";
+$a->strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron."] = "Ohne Kommandozeilen-Version von PHP auf dem Server wirst Du nicht in der Lage sein, Hintergrundprozesse via cron auszuführen.";
+$a->strings["PHP executable path"] = "PHP Pfad zu ausführbarer Datei";
+$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Gib den vollen Pfad zum PHP-Interpreter an. Du kannst dieses Feld frei lassen und mit der Installation fortfahren.";
+$a->strings["Command line PHP"] = "PHP Befehlszeile";
+$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "Bei der Kommandozeilen-Version von PHP auf Deinem System ist \"register_argc_argv\" nicht aktiviert.";
+$a->strings["This is required for message delivery to work."] = "Das wird benötigt, damit die Auslieferung von Nachrichten funktioniert.";
+$a->strings["PHP register_argc_argv"] = "PHP register_argc_argv";
+$a->strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Fehler: Die „openssl_pkey_new“-Funktion auf diesem System ist nicht in der Lage, Schlüssel für die Verschlüsselung zu erzeugen.";
+$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Wenn Du Windows verwendest, findest Du unter http://www.php.net/manual/en/openssl.installation.php eine Installationsanleitung.";
+$a->strings["Generate encryption keys"] = "Verschlüsselungsschlüssel generieren";
+$a->strings["libCurl PHP module"] = "libCurl-PHP-Modul";
+$a->strings["GD graphics PHP module"] = "GD-Grafik-PHP-Modul";
+$a->strings["OpenSSL PHP module"] = "OpenSSL-PHP-Modul";
+$a->strings["mysqli PHP module"] = "mysqli-PHP-Modul";
+$a->strings["mb_string PHP module"] = "mb_string-PHP-Modul";
+$a->strings["mcrypt PHP module"] = "mcrypt-PHP-Modul";
+$a->strings["Apache mod_rewrite module"] = "Apache-mod_rewrite-Modul";
+$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Fehler: Das Apache-Modul mod-rewrite wird benötigt, ist aber nicht installiert.";
+$a->strings["proc_open"] = "proc_open";
+$a->strings["Error: proc_open is required but is either not installed or has been disabled in php.ini"] = "Fehler: proc_open wird benötigt, ist aber entweder nicht installiert oder wurde in der php.ini deaktiviert";
+$a->strings["Error: libCURL PHP module required but not installed."] = "Fehler: Das PHP-Modul libCURL wird benötigt, ist aber nicht installiert.";
+$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Fehler: Das PHP-Modul GD-Grafik mit JPEG-Unterstützung wird benötigt, ist aber nicht installiert.";
+$a->strings["Error: openssl PHP module required but not installed."] = "Fehler: Das PHP-Modul openssl wird benötigt, ist aber nicht installiert.";
+$a->strings["Error: mysqli PHP module required but not installed."] = "Fehler: Das PHP-Modul mysqli wird benötigt, ist aber nicht installiert.";
+$a->strings["Error: mb_string PHP module required but not installed."] = "Fehler: Das PHP-Modul mb_string wird benötigt, ist aber nicht installiert.";
+$a->strings["Error: mcrypt PHP module required but not installed."] = "Fehler: Das PHP-Modul mcrypt wird benötigt, ist aber nicht installiert.";
+$a->strings["The web installer needs to be able to create a file called \".htconfig.php\ in the top folder of your web server and it is unable to do so."] = "Der Installations-Assistent muss in der Lage sein, die Datei \".htconfig.php\" im Stammverzeichnis des Web-Servers anzulegen, ist er aber nicht.";
+$a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "Meist liegt das daran, dass der Nutzer, unter dem der Web-Server läuft, keine Rechte Schreibrechte in dem Verzeichnis hat – selbst wenn Du selbst das darfst.";
+$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."] = "Am Schluss dieses Vorgangs wird ein Text generiert, den Du unter dem Dateinamen .htconfig.php im Stammverzeichnis Deiner Red-Installation speichern musst.";
+$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Alternativ kannst Du diesen Schritt überspringen und die Installation manuell vornehmen. Lies dazu die Datei install/INSTALL.txt.";
+$a->strings[".htconfig.php is writable"] = ".htconfig.php ist beschreibbar";
+$a->strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Red verwendet Smarty3 um Vorlagen für die Webdarstellung zu übersetzen. Smarty3 übersetzt diese Vorlagen nach PHP, um die Darstellung zu beschleunigen.";
+$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory view/tpl/smarty3/ under the Red top level folder."] = "Um die übersetzten Vorlagen speichern zu können muss der Webserver Schreibzugriff auf das Verzeichnis view/tpl/smarty3/ unterhalb des Red-Stammverzeichnisses haben.";
+$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Bitte stelle sicher, dass der Nutzer, unter dem der Webserver läuft (z.B. www-data), Schreibzugriff auf dieses Verzeichnis hat.";
+$a->strings["Note: as a security measure, you should give the web server write access to view/tpl/smarty3/ only--not the template files (.tpl) that it contains."] = "Hinweis: Als Sicherheitsvorkehrung solltest Du dem Webserver nur Schreib-Zugriff auf das Verzeichnis view/tpl/smarty3 geben, nicht auf die Vorlagen (.tpl-Dateien) in view/tpl/ .";
+$a->strings["view/tpl/smarty3 is writable"] = "view/tpl/smarty3 ist beschreibbar";
+$a->strings["Red uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder"] = "Red benutzt das Verzeichnis store, um hochgeladene Dateien zu speichern. Der Web-Server benötigt Schreibrechte für dieses Verzeichnis direkt unterhalb des Red-Stammverzeichnisses";
+$a->strings["store is writable"] = "store ist schreibbar";
+$a->strings["SSL certificate validation"] = "SSL Zertifikatverifizierung";
+$a->strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "Das SSL-Zertifikat konnte nicht validiert werden. Korrigiere das Zertifikat oder deaktiviere den HTTPS-Zugriff auf diesen Server.";
+$a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = "URL rewrite via .htaccess funktioniert nicht. Überprüfe Deine Server-Konfiguration.";
+$a->strings["Url rewrite is working"] = "Url rewrite funktioniert";
+$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "Die Datenbank-Konfigurationsdatei „.htconfig.php“ konnte nicht geschrieben werden. Bitte verwende den unten angegebenen Text, um die Konfigurationsdatei im Stammverzeichnis des Webservers anzulegen.";
+$a->strings["Errors encountered creating database tables."] = "Fehler beim Anlegen der Datenbank-Tabellen aufgetreten.";
+$a->strings["<h1>What next</h1>"] = "<h1>Was als Nächstes</h1>";
+$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "WICHTIG: Du musst [manuell] einen Cronjob für den Poller einrichten.";
+$a->strings["Version %s"] = "Version %s";
+$a->strings["Installed plugins/addons/apps:"] = "Installierte Plugins/Addons/Apps";
+$a->strings["No installed plugins/addons/apps"] = "Keine installierten Plugins/Addons/Apps";
+$a->strings["Project Donations"] = "Projekt Spenden";
+$a->strings["<p>The Red Matrix is provided for you by volunteers working in their spare time. Your support will help us to build a better, freer, and privacy respecting web. Select the following option for a one-time donation of your choosing</p>"] = "";
+$a->strings["<p>or</p>"] = "<p>oder</p>";
+$a->strings["Recurring Donation Options"] = "Optionen für regelmäßige Spenden";
+$a->strings["Red"] = "Red";
+$a->strings["This is a hub of the Red Matrix - a global cooperative network of decentralised privacy enhanced websites."] = "Dieser Server ist Teil der Red-Matrix – einem global vernetzten Verbund aus dezentralen Websites mit Rücksicht auf die Privatsphäre.";
+$a->strings["Running at web location"] = "Erreichbar unter der Web-Adresse";
+$a->strings["Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more about the Red Matrix."] = "Besuche <a href=\"http://getzot.com\">GetZot.com</a>, um mehr über die Red-Matrix zu erfahren.";
+$a->strings["Bug reports and issues: please visit"] = "Probleme oder Fehler gefunden? Bitte besuche";
+$a->strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Vorschläge, Lob, usw.: E-Mail an 'redmatrix' at librelist - dot - com";
+$a->strings["Site Administrators"] = "Administratoren";
+$a->strings["Add a Channel"] = "Kanal hinzufügen";
+$a->strings["A channel is your own collection of related web pages. A channel can be used to hold social network profiles, blogs, conversation groups and forums, celebrity pages, and much more. You may create as many channels as your service provider allows."] = "Ein Kanal ist Deine eigene Sammlung von verbundenen Webseiten. Ein Kanal kann genutzt werden, um ein Social-Network-Profil, ein Blog, eine Gesprächsgruppe oder ein Forum, Promi-Seiten und vieles mehr zu erstellen. Du kannst so viele Kanäle erstellen, wie es der Betreiber Deiner Seite zulässt.";
+$a->strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "] = "Beispiele: „Horst Weidinger“, „Lisa und ihr Meerschweinchen“, „Fußball“, „Segelflieger-Forum“ ";
+$a->strings["Choose a short nickname"] = "Wähle einen kurzen Spitznamen";
+$a->strings["Your nickname will be used to create an easily remembered channel address (like an email address) which you can share with others."] = "Dein Spitzname wird verwendet, um eine leicht zu merkende Kanal-Adresse (ähnlich einer E-Mail-Adresse) zu erzeugen, die Du mit anderen austauschen kannst.";
+$a->strings["Or <a href=\"import\">import an existing channel</a> from another location"] = "Oder <a href=\"import\">importiere einen bestehenden Kanal</a> von einem anderen Server";
$a->strings["No valid account found."] = "Kein gültiges Konto gefunden.";
-$a->strings["Password reset request issued. Check your email."] = "Zurücksetzen des Passworts veranlasst. Rufe bitte Deine E-Mails ab.";
-$a->strings["Site Member (%s)"] = "Seiten Mitglied (%s)";
-$a->strings["Password reset requested at %s"] = "Passwort Rücksetzung auf %s angefordert";
-$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Die Anfrage konnte nicht verifiziert werden. (Es könnte sein, dass du vorher bereits eine Anfrage eingereicht hast.) Passwort Anforderung fehlgeschlagen.";
+$a->strings["Password reset request issued. Check your email."] = "Zurücksetzen des Passworts eingeleitet. Schau in Deine E-Mails.";
+$a->strings["Site Member (%s)"] = "Nutzer (%s)";
+$a->strings["Password reset requested at %s"] = "Passwort-Rücksetzung auf %s angefordert";
+$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Die Anfrage konnte nicht verifiziert werden. (Vielleicht hast Du schon einmal auf den Link in der E-Mail geklickt?) Passwort-Rücksetzung fehlgeschlagen.";
$a->strings["Password Reset"] = "Zurücksetzen des Kennworts";
$a->strings["Your password has been reset as requested."] = "Dein Passwort wurde wie angefordert neu erstellt.";
$a->strings["Your new password is"] = "Dein neues Passwort lautet";
-$a->strings["Save or copy your new password - and then"] = "Speichere oder kopiere dein neues Passwort - und dann";
+$a->strings["Save or copy your new password - and then"] = "Speichere oder kopiere Dein neues Passwort – und dann";
$a->strings["click here to login"] = "Klicke hier, um dich anzumelden";
$a->strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Dein Passwort kann unter <em>Einstellungen</em> nach einer erfolgreichen Anmeldung geändert werden.";
-$a->strings["Your password has changed at %s"] = "Auf %s wurde dein Passwort geändert";
+$a->strings["Your password has changed at %s"] = "Auf %s wurde Dein Passwort geändert";
$a->strings["Forgot your Password?"] = "Kennwort vergessen?";
-$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Gib deine E-Mail-Adresse an und fordere ein neues Passwort an. Es werden dir dann weitere Informationen per Mail zugesendet.";
+$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Gib Deine E-Mail-Adresse ein, um Dein Passwort zurücksetzen zu lassen. Du erhältst dann weitere Anweisungen per E-Mail.";
$a->strings["Email Address"] = "E-Mail Adresse";
$a->strings["Reset"] = "Zurücksetzen";
$a->strings["Nothing to import."] = "Nichts zu importieren.";
$a->strings["Unable to download data from old server"] = "Daten können vom alten Server nicht heruntergeladen werden";
$a->strings["Imported file is empty."] = "Die importierte Datei ist leer.";
-$a->strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Kann auf diesem System keinen duplizierten Kanal-Identifikator erzeugen. Import fehlgeschlagen.";
+$a->strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Kann keinen doppelten Kanal-Identifikator auf diesem System erzeugen (Spitzname oder Hash schon belegt). Import fehlgeschlagen.";
$a->strings["Channel clone failed. Import failed."] = "Klonen des Kanals fehlgeschlagen. Import fehlgeschlagen.";
$a->strings["Cloned channel not found. Import failed."] = "Geklonter Kanal nicht gefunden. Import fehlgeschlagen.";
$a->strings["Import completed."] = "Import abgeschlossen.";
$a->strings["You must be logged in to use this feature."] = "Du musst angemeldet sein um diese Funktion zu nutzen.";
$a->strings["Import Channel"] = "Kanal importieren";
-$a->strings["Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file. Only identity and connections/relationships will be imported. Importation of content is not yet available."] = "Verwende dieses Formular um einen existierenden Kanal von einem anderen Server/Hub zu importieren. Du kannst die Kanal-Identität vom alten Server/Hub über das Netzwerk erhalten oder über eine exportierte Sicherungskopie. Es werden ausschließlich die Identität und die Verbindungen/Beziehungen importiert. Das Importieren von Inhalten ist derzeit nicht möglich.";
+$a->strings["Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file. Only identity and connections/relationships will be imported. Importation of content is not yet available."] = "Verwende dieses Formular, um einen existierenden Kanal von einem anderen Red-Server zu importieren. Du kannst den Kanal direkt vom bisherigen Red-Server über das Netzwerk importieren oder eine exportierte Sicherheitskopie benutzen. Es werden ausschließlich die Identität und die Verbindungen/Beziehungen importiert. Das Importieren von Inhalten ist derzeit nicht möglich.";
$a->strings["File to Upload"] = "Hochzuladende Datei:";
-$a->strings["Or provide the old server/hub details"] = "Oder gib die Deteils deines alten Server/Hubs an";
-$a->strings["Your old identity address (xyz@example.com)"] = "Die alte Adresse der Identität (xyz@example.com)";
+$a->strings["Or provide the old server/hub details"] = "Oder gib die Details Deines bisherigen Red-Servers ein";
+$a->strings["Your old identity address (xyz@example.com)"] = "Bisherige Kanal-Adresse (xyz@example.com)";
$a->strings["Your old login email address"] = "Ihre alte Login E-Mail Adresse";
$a->strings["Your old login password"] = "Ihr altes Login Kennwort";
-$a->strings["For either option, please choose whether to make this hub your new primary address, or whether your old location should continue this role. You will be able to post from either location, but only one can be marked as the primary location for files, photos, and media."] = "Egal welche Option du wählst, bitte lege fest, ob dieser Hub deine neue primäre Adresse sein soll oder ob dein alter Hub diese Rolle weiterhin wahrnimmt. Du kannst von beiden Orten aus neue Dinge posten, aber nur einer kann die primäre Adresse deiner Dateien, Fotos und anderen Mediendaten sein.";
-$a->strings["Make this hub my primary location"] = "Dieser Hub ist mein primärer Server.";
-$a->strings["You have created %1$.0f of %2$.0f allowed channels."] = "Du hast %1$.0f von %2$.0f erlaubten Kanälen eingerichtet.";
+$a->strings["For either option, please choose whether to make this hub your new primary address, or whether your old location should continue this role. You will be able to post from either location, but only one can be marked as the primary location for files, photos, and media."] = "Egal welche Option Du wählst, bitte lege fest, ob dieser Server die neue primäre Adresse dieses Kanals sein soll, oder ob der bisherige Red-Server diese Rolle weiterhin wahrnimmt. Du kannst von beiden Servern aus posten, aber nur einer kann der primäre Ort Deiner Dateien, Fotos und Medien sein.";
+$a->strings["Make this hub my primary location"] = "Dieser Red-Server ist mein primärer Server.";
+$a->strings["You have created %1$.0f of %2$.0f allowed channels."] = "Du hast %1$.0f von maximal %2$.0f erlaubten Kanälen eingerichtet.";
$a->strings["Create a new channel"] = "Erzeuge neues Kanal";
$a->strings["Channel Manager"] = "Kanal-Manager";
$a->strings["Current Channel"] = "Aktueller Kanal";
-$a->strings["Attach to one of your channels by selecting it."] = "Wähle einen deiner Kanäle aus um ihn zu verwenden.";
+$a->strings["Attach to one of your channels by selecting it."] = "Wähle einen Deiner Kanäle aus, um ihn zu verwenden.";
$a->strings["Default Channel"] = "Standard Kanal";
$a->strings["Make Default"] = "Zum Standard machen";
$a->strings["Total votes"] = "Stimmen gesamt";
-$a->strings["Average Rating"] = "durchschnittliche Bewertung";
+$a->strings["Average Rating"] = "Durchschnittliche Bewertung";
$a->strings["Profile Match"] = "Profil-Ãœbereinstimmungen";
-$a->strings["No keywords to match. Please add keywords to your default profile."] = "Keine Schlüsselbegriffe für den Abgleich gefunden. Bitte füge Schlüsselbegriffe zu deinem Standardprofil hinzu.";
+$a->strings["No keywords to match. Please add keywords to your default profile."] = "Keine Schlüsselwörter für den Abgleich gefunden. Bitte füge Schlüsselwörter zu Deinem Standardprofil hinzu.";
$a->strings["is interested in:"] = "interessiert sich für:";
$a->strings["No matches"] = "Keine Ãœbereinstimmungen";
-$a->strings["Contact settings applied."] = "Kontakt Einstellungen angewandt.";
-$a->strings["Contact update failed."] = "Kontakt Update fehlgeschlagen.";
-$a->strings["Contact not found."] = "Kontakt nicht gefunden";
-$a->strings["Repair Contact Settings"] = " Kontakt-Einstellungen reparieren";
-$a->strings["<strong>WARNING: This is highly advanced</strong> and if you enter incorrect information your communications with this contact may stop working."] = "<strong>Warnung: Dies ist für weit fortgeschrittene Benutzer!</strong> Wenn du falsche Informationen eingibst, könnte die Kommunikation mit diesem Kontakt abbrechen.";
-$a->strings["Please use your browser 'Back' button <strong>now</strong> if you are uncertain what to do on this page."] = "Bitte nutze den Zurück-Button deines Browsers <strong>jetzt</strong>, wenn du dir unsicher bist, was du tun willst.";
-$a->strings["Return to contact editor"] = "Zurück zum Kontakteditor";
-$a->strings["Account Nickname"] = "Konto Spitzname";
-$a->strings["@Tagname - overrides Name/Nickname"] = "@Tagname - überschreibt Name/Spitzname";
-$a->strings["Account URL"] = "Konto URL";
-$a->strings["Friend Request URL"] = "URL für Kontaktanfragen";
-$a->strings["Friend Confirm URL"] = "URL zum Bestätigen von Kontaktanfragen";
-$a->strings["Notification Endpoint URL"] = "URL-Endpunkt für Benachrichtigungen";
-$a->strings["Poll/Feed URL"] = "Poll/Feed URL";
-$a->strings["New photo from this URL"] = "Neues Foto von dieser URL";
$a->strings["invalid target signature"] = "Ungültige Signatur des Ziels";
-$a->strings["Channel added."] = "Kanal hinzugefügt.";
-$a->strings["Item not found"] = "Element nicht gefunden";
+$a->strings["Unable to lookup recipient."] = "Konnte den Empfänger nicht finden.";
+$a->strings["Unable to communicate with requested channel."] = "Die Kommunikation mit dem ausgewählten Kanal ist fehlgeschlagen.";
+$a->strings["Cannot verify requested channel."] = "Verifizierung des angeforderten Kanals fehlgeschlagen.";
+$a->strings["Selected channel has private message restrictions. Send failed."] = "Der ausgewählte Kanal hat Einschränkungen bzgl. privater Nachrichten. Senden fehlgeschlagen.";
+$a->strings["Messages"] = "Nachrichten";
+$a->strings["Message deleted."] = "Nachricht gelöscht.";
+$a->strings["Message recalled."] = "Nachricht widerrufen.";
+$a->strings["Send Private Message"] = "Private Nachricht senden";
+$a->strings["To:"] = "An:";
+$a->strings["Subject:"] = "Betreff:";
+$a->strings["Message not found."] = "Nachricht nicht gefunden.";
+$a->strings["Delete message"] = "Nachricht löschen";
+$a->strings["Recall message"] = "Nachricht widerrufen";
+$a->strings["Message has been recalled."] = "Die Nachricht wurde widerrufen.";
+$a->strings["Private Conversation"] = "Private Unterhaltung";
+$a->strings["Delete conversation"] = "Unterhaltung löschen";
+$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Keine sichere Kommunikation verfügbar. <strong>Eventuell</strong> kannst Du auf der Profilseite des Absenders antworten.";
+$a->strings["Send Reply"] = "Antwort senden";
+$a->strings["OpenID protocol error. No ID returned."] = "OpenID Protokollfehler. Keine ID zurückgegeben.";
$a->strings["Edit Layout"] = "Layout bearbeiten";
-$a->strings["Insert YouTube video"] = "YouTube-Video einfügen";
-$a->strings["Insert Vorbis [.ogg] video"] = "Vorbis [.ogg]-Video einfügen";
-$a->strings["Insert Vorbis [.ogg] audio"] = "Vorbis [.ogg]-Audio einfügen";
+$a->strings["Delete layout?"] = "Layout löschen?";
$a->strings["Delete Layout"] = "Layout löschen";
-$a->strings["Contacts who are not members of a group"] = "Kanäle die in keiner Sammlung Mitglied sind";
-$a->strings["Image uploaded but image cropping failed."] = "Bild hochgeladen, aber das zurecht schneiden schlug fehl.";
+$a->strings["Image uploaded but image cropping failed."] = "Bild hochgeladen, aber das Zurechtschneiden schlug fehl.";
$a->strings["Image resize failed."] = "Bild-Anpassung fehlgeschlagen.";
-$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Leere den Browser Cache oder nutze Umschalten-Neu Laden sollte das neue Foto nicht sofort angezeigt werden.";
+$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Leere den Browser Cache oder nutze Umschalten-Neu Laden, falls das neue Foto nicht sofort angezeigt wird.";
$a->strings["Image exceeds size limit of %d"] = "Bild ist größer als das Limit von %d";
$a->strings["Unable to process image."] = "Kann Bild nicht verarbeiten.";
$a->strings["Photo not available."] = "Foto nicht verfügbar.";
@@ -1503,130 +1533,149 @@ $a->strings["Upload"] = "Hochladen";
$a->strings["skip this step"] = "diesen Schritt überspringen";
$a->strings["select a photo from your photo albums"] = "ein Foto aus meinen Fotoalben";
$a->strings["Crop Image"] = "Bild zuschneiden";
-$a->strings["Please adjust the image cropping for optimum viewing."] = "Bitte passe das Bild zur optimalen Anzeige an.";
+$a->strings["Please adjust the image cropping for optimum viewing."] = "Bitte schneide das Bild für eine optimale Anzeige passend zu.";
$a->strings["Done Editing"] = "Bearbeitung fertigstellen";
$a->strings["Image uploaded successfully."] = "Bild erfolgreich hochgeladen.";
$a->strings["Image upload failed."] = "Hochladen des Bilds fehlgeschlagen.";
$a->strings["Image size reduction [%s] failed."] = "Reduzierung der Bildgröße [%s] fehlgeschlagen.";
-$a->strings["Edit Webpage"] = "Webseite bearbeiten";
-$a->strings["Delete Webpage"] = "Webseite löschen";
-$a->strings["Invalid request identifier."] = "Ungültige Anfrage Identifikator.";
-$a->strings["System"] = "System";
-$a->strings["Introductions"] = "Vorstellungen";
-$a->strings["Show Ignored Requests"] = "Zeige ignorierte Anfragen";
-$a->strings["Hide Ignored Requests"] = "Verberge ignorierte Anfragen";
-$a->strings["Notification type: "] = "Benachrichtigungstyp:";
-$a->strings["Friend Suggestion"] = "Freundschaft Vorschläge";
-$a->strings["suggested by %s"] = "vorgeschlagen von %s";
-$a->strings["Claims to be known to you: "] = "Behauptet dich zu kennen:";
-$a->strings["yes"] = "ja";
-$a->strings["no"] = "nein";
-$a->strings["Approve as: "] = "Genehmigen als:";
-$a->strings["Friend"] = "Freund";
-$a->strings["Sharer"] = "Teilenden";
-$a->strings["Fan/Admirer"] = "Fan/Verehrer";
-$a->strings["Friend/Connect Request"] = "Kontakt-/Freundschaftsanfrage";
-$a->strings["New Follower"] = "Neuer Bewunderer";
-$a->strings["No introductions."] = "Keine wartenden Vorstellungen.";
-$a->strings["%s liked %s's post"] = "%s gefällt %s's Beitrag";
-$a->strings["%s disliked %s's post"] = "%s gefällt %s's Beitrag nicht";
-$a->strings["%s is now friends with %s"] = "%s ist nun mit %s befreundet";
-$a->strings["%s created a new post"] = "%s hat einen neuen Beitrag verfasst";
-$a->strings["%s commented on %s's post"] = "%s kommentierte %s Beitrag";
-$a->strings["No more network notifications."] = "Keine weiteren Netzwerk Benachrichtigungen.";
-$a->strings["Network Notifications"] = "Netzwerk-Benachrichtigungen";
+$a->strings["Blocked"] = "Blockiert";
+$a->strings["Ignored"] = "Ignoriert";
+$a->strings["Hidden"] = "Versteckt";
+$a->strings["Archived"] = "Archiviert";
+$a->strings["All"] = "Alle";
+$a->strings["Suggest new connections"] = "Neue Verbindungen vorschlagen";
+$a->strings["Show pending (new) connections"] = "Zeige ausstehende (neue) Verbindungsanfragen";
+$a->strings["Show all connections"] = "Zeige alle Verbindungen";
+$a->strings["Unblocked"] = "Freigegeben";
+$a->strings["Only show unblocked connections"] = "Zeige nur freigegebene Verbindungen";
+$a->strings["Only show blocked connections"] = "Zeige nur blockierte Verbindungen";
+$a->strings["Only show ignored connections"] = "Zeige nur ignorierte Verbindungen";
+$a->strings["Only show archived connections"] = "Zeige nur archivierte Verbindungen";
+$a->strings["Only show hidden connections"] = "Zeige nur versteckte Verbindungen";
+$a->strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]";
+$a->strings["Edit contact"] = "Kontakt bearbeiten";
+$a->strings["Search your connections"] = "Verbindungen durchsuchen";
+$a->strings["Finding: "] = "Ergebnisse:";
+$a->strings["Invalid request identifier."] = "Ungültiger Anfrage-Identifikator.";
+$a->strings["Discard"] = "Verwerfen";
$a->strings["No more system notifications."] = "Keine System-Benachrichtigungen mehr.";
$a->strings["System Notifications"] = "System-Benachrichtigungen";
-$a->strings["No more personal notifications."] = "Keine persönliche Benachrichtigungen mehr.";
-$a->strings["Personal Notifications"] = "Persönliche Benachrichtigungen";
-$a->strings["No more home notifications."] = "Keine Pinwand-Benachrichtigungen mehr.";
-$a->strings["Home Notifications"] = "Pinwand-Benachrichtigungen";
-$a->strings["Block Name"] = "Block Name";
-$a->strings["Unable to find your hub."] = "Konnte den Hub nicht finden.";
+$a->strings["Block Name"] = "Block-Name";
+$a->strings["Unable to find your hub."] = "Konnte Deinen Server nicht finden.";
$a->strings["Post successful."] = "Veröffentlichung erfolgreich.";
-$a->strings["Item is not editable"] = "Element kann nicht bearbeitet werden.";
+$a->strings["Edit Webpage"] = "Webseite bearbeiten";
+$a->strings["Delete webpage?"] = "Webseite löschen?";
+$a->strings["Delete Webpage"] = "Webseite löschen";
$a->strings["Access to this profile has been restricted."] = "Der Zugang zu diesem Profil ist begrenzt.";
-$a->strings["Poke/Prod"] = "Anstupsen/Kuffen";
+$a->strings["Poke/Prod"] = "Anstupsen/Knuffen";
$a->strings["poke, prod or do other things to somebody"] = "Stupse Leute an oder mache anderes mit ihnen";
$a->strings["Recipient"] = "Empfänger";
-$a->strings["Choose what you wish to do to recipient"] = "Wähle was du mit dem/r Empfänger/in tun willst";
+$a->strings["Choose what you wish to do to recipient"] = "Wähle, was Du mit dem/r Empfänger/in tun willst";
$a->strings["Make this post private"] = "Diesen Beitrag privat machen";
-$a->strings["Wall Photos"] = "Wall Fotos";
$a->strings["Insufficient permissions. Request redirected to profile page."] = "Unzureichende Zugriffsrechte. Die Anfrage wurde zur Profil-Seite umgeleitet.";
$a->strings["Not available."] = "Nicht verfügbar.";
$a->strings["Community"] = "Gemeinschaft";
$a->strings["No results."] = "Keine Ergebnisse.";
-$a->strings["Files"] = "Dateien";
+$a->strings["Contact not found."] = "Kontakt nicht gefunden";
$a->strings["Friend suggestion sent."] = "Freundschaftsempfehlung senden.";
-$a->strings["Suggest Friends"] = "Kontakte Vorschlagen";
+$a->strings["Suggest Friends"] = "Kontakte vorschlagen";
$a->strings["Suggest a friend for %s"] = "Schlage %s einen Kontakt vor";
$a->strings["Edit Block"] = "Block bearbeiten";
+$a->strings["Delete block?"] = "Block löschen?";
$a->strings["Delete Block"] = "Block löschen";
-$a->strings["Invalid profile identifier."] = "Ungültiger Profil Identifikator";
-$a->strings["Profile Visibility Editor"] = "Profil-Sichtbarkeits Editor";
-$a->strings["Click on a contact to add or remove."] = "Wähle einen Kontakt zum Hinzufügen oder Löschen aus.";
-$a->strings["Visible To"] = "Sichtbar für";
-$a->strings["All Contacts (with secure profile access)"] = "Alle Kontakte (mit sicherem Zuging zum Profil)";
-$a->strings["Unable to locate original post."] = "Originalbeitrag kann nicht gefunden werden.";
-$a->strings["Empty post discarded."] = "Leerer Beitrag verworfen.";
-$a->strings["Executable content type not permitted to this channel."] = "Ausführbarer Content-Typ ist für diesen Kanal nicht freigegeben.";
-$a->strings["System error. Post not saved."] = "Systemfehler. Beitrag nicht gespeichert.";
-$a->strings["You have reached your limit of %1$.0f top level posts."] = "Du hast die maximale Anzahl von %1$.0f Beiträgen erreicht.";
-$a->strings["You have reached your limit of %1$.0f webpages."] = "Du hast die maximale Anzahl von %1$.0f Webseiten erreicht.";
-$a->strings["Version %s"] = "Version %s";
-$a->strings["Installed plugins/addons/apps:"] = "Installierte Plugins/Addons/Apps";
-$a->strings["No installed plugins/addons/apps"] = "Keine installierten Plugins/Addons/Apps";
-$a->strings["Red"] = "Red";
-$a->strings["This is a hub of the Red Matrix - a global cooperative network of decentralised privacy enhanced websites."] = "Dieser Server ist Teil der Red-Matrix – einem global vernetzten Verbund aus dezentralen Websites mit Rücksicht auf die Privatsphäre.";
-$a->strings["Running at web location"] = "Erreichbar unter der Web-Adresse";
-$a->strings["Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more about the Red Matrix."] = "Besuche <a href=\"http://getzot.com\">GetZot.com</a> um mehr über die Red Matrix zu erfahren.";
-$a->strings["Bug reports and issues: please visit"] = "Probleme oder Fehler gefunden? Bitte besuche";
-$a->strings["Suggestions, praise, donations, etc. - please email \"redmatrix\" at librelist - dot com"] = "Vorschläge, Lob, Spenden usw.: E-Mail an 'redmatrix' at librelist - dot - com";
-$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Keine Vorschläge vorhanden. Wenn dies eine neue Seite ist versuche es bitte in 24 Stunden erneut.";
-$a->strings["Ignore/Hide"] = "Ignorieren/Verstecken";
-$a->strings["Public Sites"] = "Öffentliche Seiten";
-$a->strings["The listed sites allow public registration into the Red Matrix. All sites in the matrix are interlinked so membership on any of them conveys membership in the matrix as a whole. Some sites may require subscription or provide tiered service plans. The provider links <strong>may</strong> provide additional details."] = "Die hier aufgeführten Seiten erlauben dir einen Account in der Red Matrix anzulegen. Alle Seiten der Matrix sind mit einander verbunden, so dass die Mitgliedschaft auf einer Seite die Mitgliedschaft auf einer beliebigen anderen Seite der Matrix beinhaltet. Es könnte sein, dass einige dieser Seiten Abonnements benötigen oder abgestufte Service-Pläne anbieten. Auf den jeweiligen Seiten <strong>könnten</strong> nähere Details diesbezüglich stehen.";
-$a->strings["Site URL"] = "URL der Seite";
-$a->strings["Access Type"] = "Zugangs Typ";
+$a->strings["Status: "] = "Status:";
+$a->strings["Sexual Preference: "] = "Sexuelle Ausrichtung:";
+$a->strings["Homepage: "] = "Webseite:";
+$a->strings["Hometown: "] = "Wohnort:";
+$a->strings["About: "] = "Ãœber:";
+$a->strings["Keywords: "] = "Schlüsselwörter:";
+$a->strings["Permission Denied."] = "Zugriff verweigert.";
+$a->strings["File not found."] = "Datei nicht gefunden.";
+$a->strings["Edit file permissions"] = "Dateiberechtigungen bearbeiten";
+$a->strings["Permissions"] = "Berechtigungen";
+$a->strings["Include all files and sub folders"] = "Alle Dateien und Unterverzeichnisse einbinden";
+$a->strings["Return to file list"] = "Zurück zur Dateiliste";
+$a->strings["Copy/paste this code to attach file to a post"] = "Diesen Code kopieren und einfügen, um die Datei an einen Beitrag anzuhängen";
+$a->strings["Copy/paste this URL to link file from a web page"] = "Diese URL verwenden, um von einer Webseite aus auf die Datei zu verlinken";
+$a->strings["Download"] = "Download";
+$a->strings["Used: "] = "Verwendet:";
+$a->strings["[directory]"] = "[Verzeichnis]";
+$a->strings["Limit: "] = "Limit:";
+$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Keine Vorschläge vorhanden. Wenn das ein neuer Server ist, versuche es in 24 Stunden noch einmal.";
+$a->strings["Conversation removed."] = "Unterhaltung gelöscht.";
+$a->strings["No messages."] = "Keine Nachrichten.";
+$a->strings["D, d M Y - g:i A"] = "D, d. M Y - g:i A";
+$a->strings["Public Sites"] = "Öffentliche Server";
+$a->strings["The listed sites allow public registration into the Red Matrix. All sites in the matrix are interlinked so membership on any of them conveys membership in the matrix as a whole. Some sites may require subscription or provide tiered service plans. The provider links <strong>may</strong> provide additional details."] = "Die hier aufgeführten Server erlauben Dir, einen Account in der Red-Matrix anzulegen. Alle Server der Matrix sind miteinander verbunden, so dass die Mitgliedschaft auf einem Server eine Verbindung zu beliebigen anderen Servern der Matrix ermöglicht. Es könnte sein, dass einige dieser Server kostenpflichtig sind oder abgestufte, je nach Umfang kostenpflichtige Mitgliedschaften anbieten. Auf den jeweiligen Seiten <strong>könnten</strong> nähere Details dazu stehen.";
+$a->strings["Site URL"] = "Server-URL";
+$a->strings["Access Type"] = "Zugangstyp";
$a->strings["Registration Policy"] = "Registrierungsrichtlinien";
-$a->strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Maximale Anzahl von Neuanmeldungen erreicht. Bitte versuche es morgen noch einmal.";
-$a->strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Bitte stimme den Nutzungsbedingungen zu. Anmeldung fehlgeschlagen.";
+$a->strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Maximale Anzahl täglicher Neuanmeldungen erreicht. Bitte versuche es morgen noch einmal.";
+$a->strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Bitte stimme den Nutzungsbedingungen zu. Registrierung fehlgeschlagen.";
$a->strings["Passwords do not match."] = "Passwörter stimmen nicht überein.";
-$a->strings["Registration successful. Please check your email for validation instructions."] = "Registrierung erfolgreich. Eine E-Mail mit weiteren Anweisungen wurde an dich gesendet.";
+$a->strings["Registration successful. Please check your email for validation instructions."] = "Registrierung erfolgreich. Eine E-Mail mit weiteren Anweisungen wurde an Dich gesendet.";
$a->strings["Your registration is pending approval by the site owner."] = "Deine Registrierung muss noch vom Betreiber der Seite freigegeben werden.";
$a->strings["Your registration can not be processed."] = "Deine Registrierung konnte nicht verarbeitet werden.";
-$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Die maximale Anzahl täglicher Registrierungen auf dieser Seite wurde überschritten. Bitte versuche es morgen noch einmal.";
+$a->strings["Registration on this site/hub is by approval only."] = "Anmeldungen auf diesem Server erfordern Zustimmung durch den Administrator";
+$a->strings["<a href=\"pubsites\">Register at another affiliated site/hub</a>"] = "<a href=\"pubsites\">Registrierung auf einem anderen, angeschlossenen Server</a>";
+$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Die maximale Anzahl täglicher Registrierungen auf diesem Server wurde überschritten. Bitte versuche es morgen noch einmal.";
$a->strings["Terms of Service"] = "Nutzungsbedingungen";
$a->strings["I accept the %s for this website"] = "Ich akzeptiere die %s für diese Webseite";
$a->strings["I am over 13 years of age and accept the %s for this website"] = "Ich bin älter als 13 Jahre und akzeptiere die %s dieser Webseite";
$a->strings["Membership on this site is by invitation only."] = "Mitgliedschaft auf dieser Seite ist nur nach vorheriger Einladung möglich.";
-$a->strings["Please enter your invitation code"] = "Bitte trage deinen Einladungs-Code ein";
+$a->strings["Please enter your invitation code"] = "Bitte trage Deinen Einladungs-Code ein";
$a->strings["Your email address"] = "Ihre E-Mail Adresse";
$a->strings["Choose a password"] = "Passwort";
-$a->strings["Please re-enter your password"] = "Bitte gib dein Passwort noch einmal ein";
+$a->strings["Please re-enter your password"] = "Bitte gib Dein Passwort noch einmal ein";
$a->strings["Please login."] = "Bitte melde dich an.";
-$a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "Entfernte Authentifizierung blockiert. Du bist lokal auf dieser Seite angemeldet. Bitte melde dich ab und versuche es erneut.";
-$a->strings["Welcome %s. Remote authentication successful."] = "Willkommen %s. Entfernte Authentifizierung erfolgreich.";
-$a->strings["Remove This Channel"] = "Diesen Kanal löschen!";
-$a->strings["This will completely remove this channel from the network. Once this has been done it is not recoverable."] = "Hiermit wird dieser Kanal komplett aus dem Netzwerk gelöscht. Einmal eingeleitet ist dieser Prozess nicht widerrufbar.";
-$a->strings["Please enter your password for verification:"] = "Bitte gib zur Bestätigung dein Passwort ein:";
+$a->strings["Remove This Channel"] = "Diesen Kanal löschen";
+$a->strings["This will completely remove this channel from the network. Once this has been done it is not recoverable."] = "Hiermit wird dieser Kanal komplett aus dem Netzwerk gelöscht. Einmal eingeleitet kann dieser Prozess nicht rückgängig gemacht werden.";
+$a->strings["Please enter your password for verification:"] = "Bitte gib zur Bestätigung Dein Passwort ein:";
$a->strings["Remove this channel and all its clones from the network"] = "Lösche diesen Kanal und all seine Klone aus dem Netzwerk";
-$a->strings["By default only the instance of the channel located on this hub will be removed from the network"] = "Standartmäßig wird der Kanal nur auf diesem Knoten gelöscht, seine Klone verbleiben im Netzwerk";
-$a->strings["Remove My Account"] = "Mein Konto entfernen";
-$a->strings["Gender: "] = "Geschlecht:";
-$a->strings["Finding:"] = "Ergebnisse:";
-$a->strings["next page"] = "nächste Seite";
-$a->strings["previous page"] = "vorige Seite";
-$a->strings["No entries (some entries may be hidden)."] = "Keine Einträge gefunden (einige könnten versteckt sein).";
+$a->strings["By default only the instance of the channel located on this hub will be removed from the network"] = "Standardmäßig wird der Kanal nur auf diesem Server gelöscht, seine Klone verbleiben im Netzwerk";
+$a->strings["Remove Channel"] = "Kanal löschen";
+$a->strings["Page owner information could not be retrieved."] = "Informationen über den Besitzer der Seite konnten nicht gefunden werden.";
+$a->strings["Album not found."] = "Album nicht gefunden.";
+$a->strings["Delete Album"] = "Album löschen";
+$a->strings["Delete Photo"] = "Foto löschen";
+$a->strings["No photos selected"] = "Keine Fotos ausgewählt";
+$a->strings["Access to this item is restricted."] = "Der Zugriff auf dieses Foto ist eingeschränkt.";
+$a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = "Du benutzt %1$.2f MBytes Deines %2$.2f MBytes großen Bilder-Speichers.";
+$a->strings["You have used %1$.2f Mbytes of photo storage."] = "Du verwendest %1$.2f MBytes Deines Foto-Speichers.";
+$a->strings["Upload Photos"] = "Fotos hochladen";
+$a->strings["New album name: "] = "Name des neuen Albums:";
+$a->strings["or existing album name: "] = "Oder bestehender Album-Name:";
+$a->strings["Do not show a status post for this upload"] = "Keine Statusnachricht für diesen Upload senden";
+$a->strings["Contact Photos"] = "Kontakt-Bilder";
+$a->strings["Edit Album"] = "Album bearbeiten";
+$a->strings["Show Newest First"] = "Zeige Neueste zuerst";
+$a->strings["Show Oldest First"] = "Zeige Älteste zuerst";
+$a->strings["View Photo"] = "Foto ansehen";
+$a->strings["Permission denied. Access to this item may be restricted."] = "Berechtigung verweigert. Der Zugriff ist wahrscheinlich eingeschränkt worden.";
+$a->strings["Photo not available"] = "Foto nicht verfügbar";
+$a->strings["Use as profile photo"] = "Als Profilfoto verwenden";
+$a->strings["View Full Size"] = "In voller Größe anzeigen";
+$a->strings["Edit photo"] = "Foto bearbeiten";
+$a->strings["Rotate CW (right)"] = "Drehen im UZS (rechts)";
+$a->strings["Rotate CCW (left)"] = "Drehen gegen UZS (links)";
+$a->strings["New album name"] = "Name des neuen Albums:";
+$a->strings["Caption"] = "Bildunterschrift";
+$a->strings["Add a Tag"] = "Schlagwort hinzufügen";
+$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Beispiel: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping";
+$a->strings["In This Photo:"] = "Auf diesem Foto:";
+$a->strings["View Album"] = "Album ansehen";
+$a->strings["Recent Photos"] = "Neueste Fotos";
$a->strings["Mood"] = "Laune";
-$a->strings["Set your current mood and tell your friends"] = "Wähle deine aktuelle Stimmung und erzähle sie deinen Freunden";
+$a->strings["Set your current mood and tell your friends"] = "Wähle Deine aktuelle Stimmung und teile sie mit Deinen Freunden";
+$a->strings["sent you a private message"] = "eine private Nachricht schicken";
+$a->strings["added your channel"] = "hat deinen Kanal hinzugefügt";
+$a->strings["posted an event"] = "hat eine Veranstaltung veröffentlicht";
$a->strings["Scheme Default"] = "Standard-Schema";
-$a->strings["red"] = "Rot";
-$a->strings["black"] = "Schwarz";
-$a->strings["silver"] = "Silber";
+$a->strings["silver"] = "silbern";
$a->strings["Theme settings"] = "Theme-Einstellungen";
$a->strings["Set scheme"] = "Schema";
$a->strings["Navigation bar colour"] = "Farbe der Navigationsleiste";
+$a->strings["link colour"] = "Farbe der Links";
$a->strings["Set font-colour for banner"] = "Farbe des Banners";
$a->strings["Set the background colour"] = "Hintergrundfarbe";
$a->strings["Set the background image"] = "Hintergrundbild";
@@ -1635,26 +1684,26 @@ $a->strings["Set the opacity of items"] = "Deckkraft von Beiträgen";
$a->strings["Set the basic colour for item icons"] = "Basisfarbe der Beitrags-Icons";
$a->strings["Set the hover colour for item icons"] = "Farbe für Beitrags-Icons unter dem Mauszeiger";
$a->strings["Set font-size for the entire application"] = "Schriftgröße für die ganze Applikation";
-$a->strings["Set font-size for posts and comments"] = "Wähle die Schriftgröße für Beiträge und Kommentare";
+$a->strings["Set font-size for posts and comments"] = "Schriftgröße für Beiträge und Kommentare";
$a->strings["Set font-colour for posts and comments"] = "Schriftfarbe für Beiträge und Kommentare";
$a->strings["Set radius of corners"] = "Ecken-Radius";
$a->strings["Set shadow depth of photos"] = "Schattentiefe von Fotos";
-$a->strings["Set maximum width of conversation regions"] = "Maximalbreite der Konversationsbereiche";
+$a->strings["Set maximum width of conversation regions"] = "Maximalbreite der Unterhaltungsbereiche";
$a->strings["Set minimum opacity of nav bar - to hide it"] = "Mindest-Deckkraft der Navigationsleiste ( - versteckt sie)";
$a->strings["Set size of conversation author photo"] = "Größe der Avatare von Themenstartern";
$a->strings["Set size of followup author photos"] = "Größe der Avatare von Kommentatoren";
$a->strings["Sloppy photo albums"] = "Schräge Fotoalben";
-$a->strings["Are you a clean desk or a messy desk person?"] = "Bist du jemand der einen aufgeräumten Schreibtisch hat, oder eher einen chaotischen?";
+$a->strings["Are you a clean desk or a messy desk person?"] = "Bist Du jemand, der einen aufgeräumten Schreibtisch hat, oder eher einen chaotischen?";
$a->strings["Schema Default"] = "Standard-Schema";
$a->strings["Sans-Serif"] = "Sans-Serif";
$a->strings["Monospace"] = "Monospace";
$a->strings["Set font face"] = "Schriftart";
-$a->strings["Set iconset"] = "Iconset";
+$a->strings["Set iconset"] = "Icon-Set";
$a->strings["Set big shadow size, default 15px 15px 15px"] = "Ausmaß der großen Schatten (Default 15px 15px 15px)";
$a->strings["Set small shadow size, default 5px 5px 5px"] = "Ausmaß der kleinen Schatten (Default 5px 5px 5px)";
$a->strings["Set shadow colour, default #000"] = "Farbe der Schatten (Default #000)";
$a->strings["Set radius size, default 5px"] = "Ecken-Radius (Default 5px)";
-$a->strings["Set line-height for posts and comments"] = "Wähle die Zeilenhöhe in Beiträgen und Kommentaren";
+$a->strings["Set line-height for posts and comments"] = "Zeilenhöhe für Beiträge und Kommentare";
$a->strings["Set background image"] = "Hintergrundbild";
$a->strings["Set background colour"] = "Hintergrundfarbe";
$a->strings["Set section background image"] = "Hintergrundbild des mittleren Bereichs";
@@ -1666,7 +1715,7 @@ $a->strings["Set min-width for items. Default 240px"] = "Minimalbreite von Beit
$a->strings["Set the generic content wrapper width. Default 48%"] = "Breite des „generic content wrapper“ (Default 48%)";
$a->strings["Set colour of fonts - use hex"] = "Schriftfarbe (HEX)";
$a->strings["Set background-size element"] = "Größe des Hintergrund-Elements";
-$a->strings["Item opacity"] = "Opazität von Beiträgen";
+$a->strings["Item opacity"] = "Deckkraft von Beiträgen (z.B. 0.8)";
$a->strings["Display post previews only"] = "Nur Beitragsvorschau anzeigen";
$a->strings["Display side bar on channel page"] = "Zeige die Seitenleiste auf der Kanal-Seite";
$a->strings["Colour of the navigation bar"] = "Farbe der Navigationsleiste";
@@ -1681,28 +1730,10 @@ $a->strings["Header image"] = "Titelbild";
$a->strings["Header image only on profile pages"] = "Titelbild nur auf Profil-Seiten anzeigen";
$a->strings["Update %s failed. See error logs."] = "Aktualisierung %s fehlgeschlagen. Details in den Fehlerprotokollen.";
$a->strings["Update Error at %s"] = "Aktualisierungsfehler auf %s";
-$a->strings["Create an account to access services and applications within the Red Matrix"] = "Erstelle einen Account um Anwendungen und Dienste innerhalb der Red Matrix verwenden zu können.";
+$a->strings["Create an account to access services and applications within the Red Matrix"] = "Erstelle einen Account, um Anwendungen und Dienste innerhalb der Red-Matrix verwenden zu können.";
$a->strings["Password"] = "Kennwort";
$a->strings["Remember me"] = "Angaben speichern";
$a->strings["Forgot your password?"] = "Passwort vergessen?";
$a->strings["permission denied"] = "Zugriff verweigert";
$a->strings["Got Zot?"] = "Haste schon Zot?";
-$a->strings["Requested channel is not available."] = "Angeforderte Kanal nicht verfügbar.";
-$a->strings[" Sorry, you don't have the permission to view this profile. "] = "Entschuldigung, aber du besitzt nicht die nötigen Rechte um dieses Profil ansehen zu dürfen.";
-$a->strings["Profiles"] = "Profile";
-$a->strings["Manage/edit profiles"] = "Verwalte/Bearbeite Profile";
-$a->strings["Edit Profile"] = "Profile bearbeiten";
-$a->strings["F d"] = "d. F";
-$a->strings["Birthday Reminders"] = "Geburtstags Erinnerungen";
-$a->strings["Birthdays this week:"] = "Geburtstage in dieser Woche:";
-$a->strings["[No description]"] = "[Keine Beschreibung]";
-$a->strings["Event Reminders"] = "Veranstaltungs- Erinnerungen";
-$a->strings["Events this week:"] = "Veranstaltungen in dieser Woche:";
-$a->strings["Channel"] = "Kanal";
-$a->strings["Status Messages and Posts"] = "Statusnachrichten und Beiträge";
-$a->strings["About"] = "Ãœber";
-$a->strings["Profile Details"] = "Profil-Details";
-$a->strings["Events and Calendar"] = "Veranstaltungen und Kalender";
-$a->strings["Webpages"] = "Webseiten";
-$a->strings["Manage Webpages"] = "Webseiten verwalten";
-$a->strings["toggle mobile"] = "auf/von Mobile Ansicht wechseln";
+$a->strings["toggle mobile"] = "auf/von mobile Ansicht wechseln";
diff --git a/view/en/htconfig.tpl b/view/en/htconfig.tpl
index 28fdd04f0..840e7a124 100644
--- a/view/en/htconfig.tpl
+++ b/view/en/htconfig.tpl
@@ -65,12 +65,13 @@ $a->config['system']['access_policy'] = ACCESS_PRIVATE;
$a->config['system']['sellpage'] = '';
// Maximum size of an imported message, 0 is unlimited
+// FIXME - NOT currently implemented.
$a->config['system']['max_import_size'] = 200000;
// maximum size of uploaded photos
-$a->config['system']['maximagesize'] = 3000000;
+$a->config['system']['maximagesize'] = 12000000;
// Location of PHP command line processor
diff --git a/view/fr/messages.po b/view/fr/messages.po
index 2d3909ca2..8eecf1ddd 100644
--- a/view/fr/messages.po
+++ b/view/fr/messages.po
@@ -1,2788 +1,3543 @@
-# FRIENDICA Distributed Social Network
-# Copyright (C) 2010, 2011 Mike Macgirvin
-# This file is distributed under the same license as the Friendika package.
+# Red Matrix Project
+# Copyright (C) 2012-2014 the Red Matrix Project
+# This file is distributed under the same license as the Red package.
#
# Translators:
-# Olivier <olivier+transifex@migeot.org>, 2011.
+# Olivier <olivier+transifex@migeot.org>, 2013-2014
msgid ""
msgstr ""
-"Project-Id-Version: friendica\n"
-"Report-Msgid-Bugs-To: http://bugs.friendica.com/\n"
-"POT-Creation-Date: 2011-11-15 17:20+0100\n"
-"PO-Revision-Date: 2011-11-17 08:22+0000\n"
-"Last-Translator: olivierm <olivier+transifex@migeot.org>\n"
-"Language-Team: French (http://www.transifex.net/projects/p/friendica/team/fr/)\n"
+"Project-Id-Version: Red Matrix\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-14 00:02-0800\n"
+"PO-Revision-Date: 2014-02-20 09:28+0000\n"
+"Last-Translator: fabrixxm <fabrix.xm@gmail.com>\n"
+"Language-Team: French (http://www.transifex.com/projects/p/red-matrix/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: ../../index.php:213 ../../mod/help.php:38
-msgid "Not Found"
-msgstr "Non trouvé"
+#: ../../include/widgets.php:29 ../../include/contact_widgets.php:87
+msgid "Categories"
+msgstr "Catégories"
-#: ../../index.php:216 ../../mod/help.php:41
-msgid "Page not found."
-msgstr "Page introuvable."
+#: ../../include/widgets.php:115 ../../include/widgets.php:155
+#: ../../include/Contact.php:104 ../../include/identity.php:628
+#: ../../mod/directory.php:184 ../../mod/match.php:62
+#: ../../mod/dirprofile.php:170 ../../mod/suggest.php:51
+msgid "Connect"
+msgstr "Relier"
-#: ../../index.php:279 ../../mod/profperm.php:19 ../../mod/group.php:67
-msgid "Permission denied"
-msgstr "Permission refusée"
-
-#: ../../index.php:280 ../../mod/manage.php:75 ../../mod/wall_upload.php:42
-#: ../../mod/follow.php:8 ../../mod/profile_photo.php:19
-#: ../../mod/profile_photo.php:137 ../../mod/profile_photo.php:148
-#: ../../mod/profile_photo.php:159 ../../mod/wall_attach.php:43
-#: ../../mod/suggest.php:28 ../../mod/regmod.php:111 ../../mod/profiles.php:7
-#: ../../mod/profiles.php:229 ../../mod/settings.php:41
-#: ../../mod/settings.php:46 ../../mod/settings.php:376
-#: ../../mod/photos.php:123 ../../mod/photos.php:858 ../../mod/display.php:111
-#: ../../mod/editpost.php:10 ../../mod/invite.php:13 ../../mod/invite.php:81
-#: ../../mod/contacts.php:115 ../../mod/register.php:27
-#: ../../mod/allfriends.php:9 ../../mod/install.php:96 ../../mod/network.php:6
-#: ../../mod/events.php:109 ../../mod/notifications.php:62
-#: ../../mod/crepair.php:113 ../../mod/api.php:26 ../../mod/api.php:31
-#: ../../mod/notes.php:20 ../../mod/fsuggest.php:78 ../../mod/item.php:113
-#: ../../mod/message.php:9 ../../mod/message.php:42
-#: ../../mod/dfrn_confirm.php:53 ../../mod/viewconnections.php:21
-#: ../../mod/group.php:19 ../../mod/attach.php:33 ../../mod/common.php:9
-#: ../../addon/facebook/facebook.php:331 ../../include/items.php:2874
-msgid "Permission denied."
-msgstr "Permission refusée."
+#: ../../include/widgets.php:117 ../../mod/suggest.php:53
+msgid "Ignore/Hide"
+msgstr "Ignorer/Cacher"
-#: ../../boot.php:419
-msgid "Delete this item?"
-msgstr "Effacer cet élément?"
+#: ../../include/widgets.php:123 ../../mod/connections.php:238
+msgid "Suggestions"
+msgstr "Suggestion"
-#: ../../boot.php:420 ../../mod/photos.php:1202 ../../mod/photos.php:1241
-#: ../../mod/photos.php:1272 ../../include/conversation.php:433
-msgid "Comment"
-msgstr "Commenter"
+#: ../../include/widgets.php:124
+msgid "See more..."
+msgstr "Voir plus..."
-#: ../../boot.php:662
-msgid "Create a New Account"
-msgstr "Créer un nouveau compte"
+#: ../../include/widgets.php:146
+#, php-format
+msgid "You have %1$.0f of %2$.0f allowed connections."
+msgstr "Vous avez %1$.0f des %2$.0f relations autorisées."
-#: ../../boot.php:663 ../../mod/register.php:530 ../../include/nav.php:77
-msgid "Register"
-msgstr "S'inscrire"
+#: ../../include/widgets.php:152
+msgid "Add New Connection"
+msgstr "Ajouter une nouvelle relation"
-#: ../../boot.php:679 ../../include/nav.php:44
-msgid "Logout"
-msgstr "Se déconnecter"
+#: ../../include/widgets.php:153
+msgid "Enter the channel address"
+msgstr "Adresse du canal"
-#: ../../boot.php:680 ../../addon/communityhome/communityhome.php:28
-#: ../../addon/communityhome/communityhome.php:34 ../../include/nav.php:62
-msgid "Login"
-msgstr "Connexion"
+#: ../../include/widgets.php:154
+msgid "Example: bob@example.com, http://example.com/barbara"
+msgstr "Exemple&nbsp;: bob@exemple.com, http://exemple.com/barbara"
-#: ../../boot.php:682
-msgid "Nickname or Email address: "
-msgstr "Pseudo ou courriel: "
+#: ../../include/widgets.php:171
+msgid "Notes"
+msgstr "Notes"
-#: ../../boot.php:683
-msgid "Password: "
-msgstr "Mot de passe: "
+#: ../../include/widgets.php:173 ../../include/text.php:754
+#: ../../include/text.php:768 ../../mod/filer.php:36
+msgid "Save"
+msgstr "Sauver"
-#: ../../boot.php:686
-msgid "OpenID: "
-msgstr "OpenID: "
+#: ../../include/widgets.php:243
+msgid "Remove term"
+msgstr "Retirer le terme"
-#: ../../boot.php:692
-msgid "Forgot your password?"
-msgstr "Mot de passe oublié?"
+#: ../../include/widgets.php:252 ../../include/features.php:52
+msgid "Saved Searches"
+msgstr "Recherches sauvées"
-#: ../../boot.php:693 ../../mod/lostpass.php:82
-msgid "Password Reset"
-msgstr "Réinitialiser le mot de passe"
+#: ../../include/widgets.php:253 ../../include/group.php:290
+msgid "add"
+msgstr "ajouter"
-#: ../../boot.php:815 ../../mod/profile.php:10 ../../mod/hcard.php:10
-msgid "No profile"
-msgstr "Aucun profil"
+#: ../../include/widgets.php:283 ../../include/features.php:66
+#: ../../include/contact_widgets.php:53
+msgid "Saved Folders"
+msgstr "Dossiers sauvegardés"
-#: ../../boot.php:839
-msgid "Edit profile"
-msgstr "Editer le profil"
+#: ../../include/widgets.php:286 ../../include/contact_widgets.php:56
+#: ../../include/contact_widgets.php:90
+msgid "Everything"
+msgstr "Tout"
-#: ../../boot.php:890 ../../include/contact_widgets.php:9
-msgid "Connect"
-msgstr "Relier"
+#: ../../include/widgets.php:318 ../../include/items.php:3636
+msgid "Archives"
+msgstr "Archives"
-#: ../../boot.php:900 ../../include/nav.php:129
-msgid "Profiles"
-msgstr "Profils"
+#: ../../include/widgets.php:370
+msgid "Refresh"
+msgstr "Actualiser"
-#: ../../boot.php:900 ../../include/nav.php:129
-msgid "Manage/edit profiles"
-msgstr "Gérer/éditer les profils"
+#: ../../include/widgets.php:371 ../../mod/connedit.php:389
+msgid "Me"
+msgstr "Moi"
-#: ../../boot.php:906 ../../mod/profiles.php:462
-msgid "Change profile photo"
-msgstr "Changer de photo de profil"
+#: ../../include/widgets.php:372 ../../mod/connedit.php:391
+msgid "Best Friends"
+msgstr "Mes meilleurs amis"
-#: ../../boot.php:907 ../../mod/profiles.php:463
-msgid "Create New Profile"
-msgstr "Créer un nouveau profil"
+#: ../../include/widgets.php:373 ../../include/identity.php:310
+#: ../../include/profile_selectors.php:42 ../../mod/connedit.php:392
+msgid "Friends"
+msgstr "Amis"
-#: ../../boot.php:917 ../../mod/profiles.php:473
-msgid "Profile Image"
-msgstr "Image du profil"
+#: ../../include/widgets.php:374
+msgid "Co-workers"
+msgstr "Mes collègues"
-#: ../../boot.php:920 ../../mod/profiles.php:475
-msgid "visible to everybody"
-msgstr "visible par tous"
+#: ../../include/widgets.php:375 ../../mod/connedit.php:393
+msgid "Former Friends"
+msgstr "Mes anciens amis"
-#: ../../boot.php:921 ../../mod/profiles.php:476
-msgid "Edit visibility"
-msgstr "Changer la visibilité"
+#: ../../include/widgets.php:376 ../../mod/connedit.php:394
+msgid "Acquaintances"
+msgstr "Mes accointances"
-#: ../../boot.php:940 ../../mod/events.php:325 ../../include/event.php:37
-#: ../../include/bb2diaspora.php:249
-msgid "Location:"
-msgstr "Localisation:"
+#: ../../include/widgets.php:377
+msgid "Everybody"
+msgstr "Tout le monde"
-#: ../../boot.php:942 ../../include/profile_advanced.php:17
-msgid "Gender:"
-msgstr "Genre:"
+#: ../../include/widgets.php:409
+msgid "Account settings"
+msgstr "Compte"
-#: ../../boot.php:945 ../../include/profile_advanced.php:37
-msgid "Status:"
-msgstr "Statut:"
+#: ../../include/widgets.php:415
+msgid "Channel settings"
+msgstr "Canal"
-#: ../../boot.php:947 ../../include/profile_advanced.php:45
-msgid "Homepage:"
-msgstr "Page personnelle:"
+#: ../../include/widgets.php:421
+msgid "Additional features"
+msgstr "Fonc. supplémentaires"
-#: ../../boot.php:1006 ../../boot.php:1068
-msgid "g A l F d"
-msgstr "g A | F d"
+#: ../../include/widgets.php:427
+msgid "Feature settings"
+msgstr "Fonctionnalités"
-#: ../../boot.php:1007 ../../boot.php:1069
-msgid "F d"
-msgstr "F d"
+#: ../../include/widgets.php:433
+msgid "Display settings"
+msgstr "Affichage"
-#: ../../boot.php:1030
-msgid "Birthday Reminders"
-msgstr "Rappels d'anniversaires"
+#: ../../include/widgets.php:439
+msgid "Connected apps"
+msgstr "Applications"
-#: ../../boot.php:1031
-msgid "Birthdays this week:"
-msgstr "Anniversaires cette semaine:"
+#: ../../include/widgets.php:445
+msgid "Export channel"
+msgstr "Exporter canal"
-#: ../../boot.php:1047 ../../boot.php:1111
-msgid "[today]"
-msgstr "[aujourd'hui]"
+#: ../../include/widgets.php:457
+msgid "Automatic Permissions (Advanced)"
+msgstr "Permissions automatiques (avancé)"
-#: ../../boot.php:1092
-msgid "Event Reminders"
-msgstr "Rappels d'événements"
+#: ../../include/widgets.php:467
+msgid "Premium Channel Settings"
+msgstr "Canal Premium"
-#: ../../boot.php:1093
-msgid "Events this week:"
-msgstr "Evénements cette semaine:"
+#: ../../include/widgets.php:476 ../../include/features.php:43
+#: ../../mod/sources.php:88
+msgid "Channel Sources"
+msgstr "Canaux sources"
-#: ../../boot.php:1105
-msgid "[No description]"
-msgstr "[Sans description]"
+#: ../../include/widgets.php:487 ../../include/nav.php:181
+#: ../../mod/admin.php:837 ../../mod/admin.php:1042
+msgid "Settings"
+msgstr "Réglages"
-#: ../../boot.php:1282 ../../include/nav.php:47
-msgid "Status"
-msgstr "Statut"
+#: ../../include/widgets.php:504
+msgid "Check Mail"
+msgstr "Vérifier courriel"
-#: ../../boot.php:1287 ../../mod/profperm.php:103
-#: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:74
-#: ../../include/nav.php:48
-msgid "Profile"
-msgstr "Profil"
+#: ../../include/widgets.php:509 ../../include/nav.php:172
+msgid "New Message"
+msgstr "Nouveau message"
-#: ../../boot.php:1292 ../../include/nav.php:49
-msgid "Photos"
-msgstr "Photos"
+#: ../../include/widgets.php:585
+msgid "Chat Rooms"
+msgstr "Salons"
-#: ../../boot.php:1300 ../../mod/events.php:117 ../../include/nav.php:50
-msgid "Events"
-msgstr "Evènements"
+#: ../../include/acl_selectors.php:235
+msgid "Visible to everybody"
+msgstr "Visible par tous"
-#: ../../boot.php:1305 ../../mod/notes.php:44
-msgid "Personal Notes"
-msgstr "Notes personnelles"
+#: ../../include/acl_selectors.php:236
+msgid "show"
+msgstr "montrer"
-#: ../../mod/manage.php:37
-#, php-format
-msgid "Welcome back %s"
-msgstr "Bienvenue à nouveau, %s"
+#: ../../include/acl_selectors.php:237
+msgid "don't show"
+msgstr "cacher"
-#: ../../mod/manage.php:87
-msgid "Manage Identities and/or Pages"
-msgstr "Gérer les identités et/ou les pages"
+#: ../../include/activities.php:39
+msgid " and "
+msgstr "et"
-#: ../../mod/manage.php:90
-msgid ""
-"(Toggle between different identities or community/group pages which share "
-"your account details.)"
-msgstr ""
-"(Bascule entre les différentes identités ou pages qui se partagent votre "
-"compte.)"
-
-#: ../../mod/manage.php:92
-msgid "Select an identity to manage: "
-msgstr "Choisir une identité à gérer: "
-
-#: ../../mod/manage.php:106 ../../mod/profiles.php:375
-#: ../../mod/settings.php:420 ../../mod/settings.php:559
-#: ../../mod/settings.php:707 ../../mod/photos.php:886
-#: ../../mod/photos.php:944 ../../mod/photos.php:1163
-#: ../../mod/photos.php:1203 ../../mod/photos.php:1242
-#: ../../mod/photos.php:1273 ../../mod/localtime.php:45
-#: ../../mod/invite.php:106 ../../mod/contacts.php:306
-#: ../../mod/install.php:137 ../../mod/events.php:330
-#: ../../mod/crepair.php:162 ../../mod/fsuggest.php:107
-#: ../../mod/admin.php:296 ../../mod/admin.php:461 ../../mod/admin.php:587
-#: ../../mod/admin.php:652 ../../mod/group.php:84 ../../mod/group.php:167
-#: ../../addon/tumblr/tumblr.php:89 ../../addon/twitter/twitter.php:179
-#: ../../addon/twitter/twitter.php:202 ../../addon/twitter/twitter.php:299
-#: ../../addon/statusnet/statusnet.php:282
-#: ../../addon/statusnet/statusnet.php:296
-#: ../../addon/statusnet/statusnet.php:322
-#: ../../addon/statusnet/statusnet.php:329
-#: ../../addon/statusnet/statusnet.php:351
-#: ../../addon/statusnet/statusnet.php:486 ../../addon/oembed/oembed.php:41
-#: ../../addon/uhremotestorage/uhremotestorage.php:58
-#: ../../addon/impressum/impressum.php:69
-#: ../../addon/facebook/facebook.php:404 ../../addon/nsfw/nsfw.php:53
-#: ../../addon/randplace/randplace.php:178 ../../addon/piwik/piwik.php:81
-#: ../../addon/wppost/wppost.php:101 ../../include/conversation.php:434
-msgid "Submit"
-msgstr "Envoyer"
+#: ../../include/activities.php:47
+msgid "public profile"
+msgstr "profil public"
-#: ../../mod/dirfind.php:23
-msgid "People Search"
-msgstr "Recherche de personnes"
+#: ../../include/activities.php:52
+#, php-format
+msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
+msgstr "%1$s a changé %2$s en &ldquo;%3$s&rdquo;"
-#: ../../mod/dirfind.php:57 ../../mod/match.php:57
-msgid "No matches"
-msgstr "Aucune correspondance"
+#: ../../include/activities.php:53
+#, php-format
+msgid "Visit %1$s's %2$s"
+msgstr "Visiter %1$s de %2$s"
-#: ../../mod/wall_upload.php:56 ../../mod/profile_photo.php:113
+#: ../../include/activities.php:56
#, php-format
-msgid "Image exceeds size limit of %d"
-msgstr "L'image dépasse la taille limite de %d"
+msgid "%1$s has an updated %2$s, changing %3$s."
+msgstr "%1$s a mis-à-jour %2$s, modifiant %3$s."
-#: ../../mod/wall_upload.php:65 ../../mod/profile_photo.php:122
-#: ../../mod/photos.php:647
-msgid "Unable to process image."
-msgstr "Impossible de traiter l'image."
+#: ../../include/nav.php:72 ../../include/nav.php:91 ../../boot.php:1423
+msgid "Logout"
+msgstr "Déconnexion"
-#: ../../mod/wall_upload.php:81 ../../mod/wall_upload.php:90
-#: ../../mod/wall_upload.php:97 ../../mod/item.php:299
-#: ../../include/message.php:82
-msgid "Wall Photos"
-msgstr "Photos du mur"
+#: ../../include/nav.php:72 ../../include/nav.php:91
+msgid "End this session"
+msgstr "Mettre fin à la session"
-#: ../../mod/wall_upload.php:84 ../../mod/profile_photo.php:251
-#: ../../mod/photos.php:667
-msgid "Image upload failed."
-msgstr "Le téléversement de l'image a échoué."
+#: ../../include/nav.php:75 ../../include/nav.php:125
+msgid "Home"
+msgstr "Canal"
-#: ../../mod/profile.php:105 ../../mod/display.php:66
-msgid "Access to this profile has been restricted."
-msgstr "L'accès au profil a été restreint."
+#: ../../include/nav.php:75
+msgid "Your posts and conversations"
+msgstr "Vos publications et conversations"
+
+#: ../../include/nav.php:76 ../../include/conversation.php:933
+#: ../../mod/connedit.php:312 ../../mod/connedit.php:426
+msgid "View Profile"
+msgstr "Voir profil"
-#: ../../mod/profile.php:127
-msgid "Tips for New Members"
-msgstr "Conseils aux nouveaux"
+#: ../../include/nav.php:76
+msgid "Your profile page"
+msgstr "Votre profil"
-#: ../../mod/follow.php:20 ../../mod/dfrn_request.php:340
-msgid "Disallowed profile URL."
-msgstr "URL de profil interdite."
+#: ../../include/nav.php:78
+msgid "Edit Profiles"
+msgstr "Éditer profils"
-#: ../../mod/follow.php:39
-msgid ""
-"This site is not configured to allow communications with other networks."
-msgstr "Ce site n'est pas configuré pour dialoguer avec d'autres réseaux."
+#: ../../include/nav.php:78
+msgid "Manage/Edit profiles"
+msgstr "Gérer/éditer profils"
-#: ../../mod/follow.php:40 ../../mod/follow.php:50
-msgid "No compatible communication protocols or feeds were discovered."
-msgstr "Aucun protocole de communication ni aucun flux n'a pu être découvert."
+#: ../../include/nav.php:79 ../../include/conversation.php:1475
+#: ../../mod/fbrowser.php:25
+msgid "Photos"
+msgstr "Photos"
-#: ../../mod/follow.php:48
-msgid "The profile address specified does not provide adequate information."
-msgstr ""
-"L'adresse de profil indiquée ne fournit par les informations adéquates."
+#: ../../include/nav.php:79
+msgid "Your photos"
+msgstr "Vos photos"
-#: ../../mod/follow.php:52
-msgid "An author or name was not found."
-msgstr "Aucun auteur ou nom d'auteur n'a pu être trouvé."
+#: ../../include/nav.php:80 ../../include/conversation.php:1484
+#: ../../mod/fbrowser.php:114
+msgid "Files"
+msgstr "Fichiers"
-#: ../../mod/follow.php:54
-msgid "No browser URL could be matched to this address."
-msgstr "Aucune URL de navigation ne correspond à cette adresse."
+#: ../../include/nav.php:80
+msgid "Your files"
+msgstr "Vos fichiers"
-#: ../../mod/follow.php:61
-msgid ""
-"The profile address specified belongs to a network which has been disabled "
-"on this site."
-msgstr ""
-"L'adresse de profil spécifiée correspond à un réseau qui a été désactivé sur"
-" ce site."
+#: ../../include/nav.php:81
+msgid "Chat"
+msgstr "Discussion"
-#: ../../mod/follow.php:66
-msgid ""
-"Limited profile. This person will be unable to receive direct/personal "
-"notifications from you."
-msgstr ""
-"Profil limité. Cette personne ne sera pas capable de recevoir des "
-"notifications directes/personnelles de votre part."
+#: ../../include/nav.php:81
+msgid "Your chatrooms"
+msgstr "Vos salons"
-#: ../../mod/follow.php:133
-msgid "Unable to retrieve contact information."
-msgstr "Impossible de récupérer les informations du contact."
+#: ../../include/nav.php:82 ../../include/nav.php:175
+#: ../../include/conversation.php:1506 ../../mod/events.php:354
+msgid "Events"
+msgstr "Événements"
-#: ../../mod/follow.php:179
-msgid "following"
-msgstr "following"
+#: ../../include/nav.php:82
+msgid "Your events"
+msgstr "Vos événements"
-#: ../../mod/profile_photo.php:28
-msgid "Image uploaded but image cropping failed."
-msgstr "Image envoyée, mais impossible de la retailler."
-
-#: ../../mod/profile_photo.php:58 ../../mod/profile_photo.php:65
-#: ../../mod/profile_photo.php:72 ../../mod/profile_photo.php:170
-#: ../../mod/profile_photo.php:246 ../../mod/profile_photo.php:255
-#: ../../mod/photos.php:144 ../../mod/photos.php:591 ../../mod/photos.php:936
-#: ../../mod/photos.php:951 ../../mod/register.php:318
-#: ../../mod/register.php:325 ../../mod/register.php:332
-#: ../../addon/communityhome/communityhome.php:111
-msgid "Profile Photos"
-msgstr "Photos du profil"
+#: ../../include/nav.php:83 ../../include/conversation.php:1514
+msgid "Bookmarks"
+msgstr "Marque-pages"
+
+#: ../../include/nav.php:83
+msgid "Your bookmarks"
+msgstr "Vos marque-pages"
+
+#: ../../include/nav.php:85 ../../include/conversation.php:1525
+msgid "Webpages"
+msgstr "Pages web"
+
+#: ../../include/nav.php:85
+msgid "Your webpages"
+msgstr "Vos pages web"
+
+#: ../../include/nav.php:89 ../../boot.php:1424
+msgid "Login"
+msgstr "Connexion"
-#: ../../mod/profile_photo.php:61 ../../mod/profile_photo.php:68
-#: ../../mod/profile_photo.php:75 ../../mod/profile_photo.php:258
+#: ../../include/nav.php:89
+msgid "Sign in"
+msgstr "Connexion"
+
+#: ../../include/nav.php:106
#, php-format
-msgid "Image size reduction [%s] failed."
-msgstr "Réduction de la taille de l'image [%s] échouée."
+msgid "%s - click to logout"
+msgstr "%s - cliquer pour déconnecter"
-#: ../../mod/profile_photo.php:89
-msgid ""
-"Shift-reload the page or clear browser cache if the new photo does not "
-"display immediately."
-msgstr ""
-"Rechargez la page avec la touche Maj pressée, ou bien effacez le cache du "
-"navigateur, si d'aventure la nouvelle photo n'apparaissait pas "
-"immédiatement."
+#: ../../include/nav.php:111
+msgid "Click to authenticate to your home hub"
+msgstr "S'authentifier auprès de son hébergement"
-#: ../../mod/profile_photo.php:99
-msgid "Unable to process image"
-msgstr "Impossible de traiter l'image"
+#: ../../include/nav.php:125
+msgid "Home Page"
+msgstr "Page d'accueil"
-#: ../../mod/profile_photo.php:203
-msgid "Upload File:"
-msgstr "Fichier à téléverser:"
+#: ../../include/nav.php:129 ../../mod/register.php:206 ../../boot.php:1400
+msgid "Register"
+msgstr "Inscription"
-#: ../../mod/profile_photo.php:204
-msgid "Upload Profile Photo"
-msgstr "Téléverser une photo de profil"
+#: ../../include/nav.php:129
+msgid "Create an account"
+msgstr "Créer un compte"
-#: ../../mod/profile_photo.php:205
-msgid "Upload"
-msgstr "Téléverser"
+#: ../../include/nav.php:134 ../../mod/help.php:60 ../../mod/help.php:64
+msgid "Help"
+msgstr "Aide"
-#: ../../mod/profile_photo.php:206 ../../mod/settings.php:686
-msgid "or"
-msgstr "ou"
+#: ../../include/nav.php:134
+msgid "Help and documentation"
+msgstr "Aide et documentation"
-#: ../../mod/profile_photo.php:206
-msgid "skip this step"
-msgstr "ignorer cette étape"
+#: ../../include/nav.php:137
+msgid "Apps"
+msgstr "Applications"
-#: ../../mod/profile_photo.php:206
-msgid "select a photo from your photo albums"
-msgstr "choisissez une photo depuis vos albums"
+#: ../../include/nav.php:137
+msgid "Addon applications, utilities, games"
+msgstr "Applications supplémentaires, jeux, utilitaires"
-#: ../../mod/profile_photo.php:219
-msgid "Crop Image"
-msgstr "(Re)cadrer l'image"
+#: ../../include/nav.php:139 ../../include/text.php:752
+#: ../../include/text.php:766 ../../mod/search.php:29
+msgid "Search"
+msgstr "Recherche"
-#: ../../mod/profile_photo.php:220
-msgid "Please adjust the image cropping for optimum viewing."
-msgstr "Ajustez le cadre de l'image pour une visualisation optimale."
+#: ../../include/nav.php:139
+msgid "Search site content"
+msgstr "Recherche parmi le contenu du site"
-#: ../../mod/profile_photo.php:221
-msgid "Done Editing"
-msgstr "Édition terminée"
+#: ../../include/nav.php:142 ../../mod/directory.php:211
+msgid "Directory"
+msgstr "Annuaire"
-#: ../../mod/profile_photo.php:249
-msgid "Image uploaded successfully."
-msgstr "Image téléversée avec succès."
+#: ../../include/nav.php:142
+msgid "Channel Locator"
+msgstr "Localisation de canaux"
-#: ../../mod/home.php:23 ../../addon/communityhome/communityhome.php:179
-#, php-format
-msgid "Welcome to %s"
-msgstr "Bienvenue sur %s"
+#: ../../include/nav.php:153
+msgid "Matrix"
+msgstr "Matrice"
-#: ../../mod/update_community.php:18 ../../mod/update_network.php:22
-#: ../../mod/update_profile.php:41 ../../mod/update_notes.php:41
-msgid "[Embedded content - reload page to view]"
-msgstr "[contenu incorporé - rechargez la page pour le voir]"
+#: ../../include/nav.php:153
+msgid "Your matrix"
+msgstr "Votre matrice"
-#: ../../mod/wall_attach.php:57
-#, php-format
-msgid "File exceeds size limit of %d"
-msgstr "La taille du fichier dépasse la limite de %d"
+#: ../../include/nav.php:154
+msgid "Mark all matrix notifications seen"
+msgstr "Marquer toutes les notifications de la matrice comme vues"
-#: ../../mod/wall_attach.php:87 ../../mod/wall_attach.php:98
-msgid "File upload failed."
-msgstr "Le téléversement a échoué."
+#: ../../include/nav.php:156
+msgid "Channel Home"
+msgstr "Mon canal"
-#: ../../mod/suggest.php:36 ../../include/contact_widgets.php:35
-msgid "Friend Suggestions"
-msgstr "Suggestions d'amitiés/contacts"
+#: ../../include/nav.php:156
+msgid "Channel home"
+msgstr "Mon canal"
-#: ../../mod/suggest.php:42
-msgid ""
-"No suggestions. This works best when you have more than one contact/friend."
-msgstr ""
-"Pas de suggestion. Ceci fonctionne mieux quand vous avez plus d'un "
-"ami/contact."
+#: ../../include/nav.php:157
+msgid "Mark all channel notifications seen"
+msgstr "Marquer toutes les notifications du canal comme vues"
-#: ../../mod/suggest.php:55
-msgid "Ignore/Hide"
-msgstr "Ignorer/cacher"
+#: ../../include/nav.php:160
+msgid "Intros"
+msgstr "Introductions"
-#: ../../mod/regmod.php:52 ../../mod/register.php:369
-#, php-format
-msgid "Registration details for %s"
-msgstr "Détails d'inscription pour %s"
+#: ../../include/nav.php:160 ../../mod/connections.php:244
+msgid "New Connections"
+msgstr "Nouvelles relations"
-#: ../../mod/regmod.php:54 ../../mod/register.php:371
-#: ../../mod/register.php:425 ../../mod/dfrn_request.php:553
-#: ../../mod/lostpass.php:44 ../../mod/lostpass.php:106
-#: ../../mod/dfrn_confirm.php:703 ../../include/items.php:1767
-#: ../../include/items.php:2114 ../../include/items.php:2440
-msgid "Administrator"
-msgstr "Administrateur"
+#: ../../include/nav.php:163
+msgid "Notices"
+msgstr "Notifications"
-#: ../../mod/regmod.php:61
-msgid "Account approved."
-msgstr "Inscription validée."
+#: ../../include/nav.php:163
+msgid "Notifications"
+msgstr "Notifications"
-#: ../../mod/regmod.php:93
-#, php-format
-msgid "Registration revoked for %s"
-msgstr "Inscription révoquée pour %s"
+#: ../../include/nav.php:164
+msgid "See all notifications"
+msgstr "Voir toutes les notifications"
-#: ../../mod/regmod.php:105
-msgid "Please login."
-msgstr "Merci de vous connecter."
+#: ../../include/nav.php:165
+msgid "Mark all system notifications seen"
+msgstr "Marquer toutes les notifications système comme vues"
-#: ../../mod/profiles.php:21 ../../mod/profiles.php:239
-#: ../../mod/profiles.php:344 ../../mod/dfrn_confirm.php:62
-msgid "Profile not found."
-msgstr "Profil introuvable."
+#: ../../include/nav.php:167
+msgid "Mail"
+msgstr "Messages"
-#: ../../mod/profiles.php:28
-msgid "Profile Name is required."
-msgstr "Le nom du profil est requis."
+#: ../../include/nav.php:167
+msgid "Private mail"
+msgstr "Messages privés"
-#: ../../mod/profiles.php:198
-msgid "Profile updated."
-msgstr "Profil mis à jour."
+#: ../../include/nav.php:168
+msgid "See all private messages"
+msgstr "Voir tous les messages privés"
-#: ../../mod/profiles.php:256
-msgid "Profile deleted."
-msgstr "Profil supprimé."
+#: ../../include/nav.php:169
+msgid "Mark all private messages seen"
+msgstr "Marquer tous les messages privés comme vus"
-#: ../../mod/profiles.php:272 ../../mod/profiles.php:303
-msgid "Profile-"
-msgstr "Profil-"
+#: ../../include/nav.php:170
+msgid "Inbox"
+msgstr "Boîte de réception"
-#: ../../mod/profiles.php:291 ../../mod/profiles.php:330
-msgid "New profile created."
-msgstr "Nouveau profil créé."
+#: ../../include/nav.php:171
+msgid "Outbox"
+msgstr "Boîte d'envoi"
-#: ../../mod/profiles.php:309
-msgid "Profile unavailable to clone."
-msgstr "Ce profil ne peut être cloné."
+#: ../../include/nav.php:175
+msgid "Event Calendar"
+msgstr "Calendrier des événements"
-#: ../../mod/profiles.php:356
-msgid "Hide your contact/friend list from viewers of this profile?"
-msgstr "Cacher ma liste d'amis/contacts des visiteurs de ce profil?"
+#: ../../include/nav.php:176
+msgid "See all events"
+msgstr "Voir tous les événements"
-#: ../../mod/profiles.php:357 ../../mod/settings.php:629
-#: ../../mod/settings.php:635 ../../mod/settings.php:643
-#: ../../mod/settings.php:647 ../../mod/settings.php:652
-#: ../../mod/settings.php:658 ../../mod/register.php:500
-#: ../../mod/dfrn_request.php:645 ../../mod/api.php:105
-msgid "Yes"
-msgstr "Oui"
+#: ../../include/nav.php:177
+msgid "Mark all events seen"
+msgstr "Marquer tous les événements comme vus"
-#: ../../mod/profiles.php:358 ../../mod/settings.php:629
-#: ../../mod/settings.php:635 ../../mod/settings.php:643
-#: ../../mod/settings.php:647 ../../mod/settings.php:652
-#: ../../mod/settings.php:658 ../../mod/register.php:501
-#: ../../mod/dfrn_request.php:646 ../../mod/api.php:106
-msgid "No"
-msgstr "Non"
+#: ../../include/nav.php:179
+msgid "Channel Select"
+msgstr "Changer de canal"
-#: ../../mod/profiles.php:374
-msgid "Edit Profile Details"
-msgstr "Éditer les détails du profil"
+#: ../../include/nav.php:179
+msgid "Manage Your Channels"
+msgstr "Gérer vos canaux"
-#: ../../mod/profiles.php:376
-msgid "View this profile"
-msgstr "Voir ce profil"
+#: ../../include/nav.php:181
+msgid "Account/Channel Settings"
+msgstr "Compte/Canal"
-#: ../../mod/profiles.php:377
-msgid "Create a new profile using these settings"
-msgstr "Créer un nouveau profil en utilisant ces réglages"
+#: ../../include/nav.php:183 ../../mod/connections.php:351
+msgid "Connections"
+msgstr "Relations"
-#: ../../mod/profiles.php:378
-msgid "Clone this profile"
-msgstr "Cloner ce profil"
+#: ../../include/nav.php:183
+msgid "Manage/Edit Friends and Connections"
+msgstr "Gérer les amis et relations"
-#: ../../mod/profiles.php:379
-msgid "Delete this profile"
-msgstr "Supprimer ce profil"
+#: ../../include/nav.php:190 ../../mod/admin.php:112
+msgid "Admin"
+msgstr "Admin"
-#: ../../mod/profiles.php:380
-msgid "Profile Name:"
-msgstr "Nom du profil:"
+#: ../../include/nav.php:190
+msgid "Site Setup and Configuration"
+msgstr "Configuration du site"
-#: ../../mod/profiles.php:381
-msgid "Your Full Name:"
-msgstr "Votre nom complet:"
+#: ../../include/nav.php:216
+msgid "Nothing new here"
+msgstr "Rien de neuf ici"
-#: ../../mod/profiles.php:382
-msgid "Title/Description:"
-msgstr "Titre/Description:"
+#: ../../include/nav.php:221
+msgid "Please wait..."
+msgstr "Merci de patienter..."
-#: ../../mod/profiles.php:383
-msgid "Your Gender:"
-msgstr "Votre genre:"
+#: ../../include/text.php:315
+msgid "prev"
+msgstr "préc."
+
+#: ../../include/text.php:317
+msgid "first"
+msgstr "premier"
+
+#: ../../include/text.php:346
+msgid "last"
+msgstr "dernier"
+
+#: ../../include/text.php:349
+msgid "next"
+msgstr "suiv."
+
+#: ../../include/text.php:361
+msgid "older"
+msgstr "plus ancien"
+
+#: ../../include/text.php:363
+msgid "newer"
+msgstr "plus récent"
-#: ../../mod/profiles.php:384
+#: ../../include/text.php:670
+msgid "No connections"
+msgstr "Sans relations"
+
+#: ../../include/text.php:681
#, php-format
-msgid "Birthday (%s):"
-msgstr "Anniversaire (%s):"
+msgid "%d Connection"
+msgid_plural "%d Connections"
+msgstr[0] "%d relation"
+msgstr[1] "%d relations"
-#: ../../mod/profiles.php:385
-msgid "Street Address:"
-msgstr "Adresse postale:"
+#: ../../include/text.php:693
+msgid "View Connections"
+msgstr "Voir les relations"
-#: ../../mod/profiles.php:386
-msgid "Locality/City:"
-msgstr "Ville/Localité:"
+#: ../../include/text.php:834
+msgid "poke"
+msgstr "tapoter"
-#: ../../mod/profiles.php:387
-msgid "Postal/Zip Code:"
-msgstr "Code postal:"
+#: ../../include/text.php:834 ../../include/conversation.php:240
+msgid "poked"
+msgstr "tapoté"
-#: ../../mod/profiles.php:388
-msgid "Country:"
-msgstr "Pays:"
+#: ../../include/text.php:835
+msgid "ping"
+msgstr "solliciter"
-#: ../../mod/profiles.php:389
-msgid "Region/State:"
-msgstr "Région/État:"
+#: ../../include/text.php:835
+msgid "pinged"
+msgstr "sollicité"
-#: ../../mod/profiles.php:390
-msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
-msgstr "<span class=\"heart\">&hearts;</span> Statut marital:"
+#: ../../include/text.php:836
+msgid "prod"
+msgstr "aiguillonner"
-#: ../../mod/profiles.php:391
-msgid "Who: (if applicable)"
-msgstr "Qui: (si pertinent)"
+#: ../../include/text.php:836
+msgid "prodded"
+msgstr "aiguillonné"
-#: ../../mod/profiles.php:392
-msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
-msgstr "Exemples: cathy123, Cathy Williams, cathy@example.com"
+#: ../../include/text.php:837
+msgid "slap"
+msgstr "baffer"
-#: ../../mod/profiles.php:393 ../../include/profile_advanced.php:43
-msgid "Sexual Preference:"
-msgstr "Préférence sexuelle:"
+#: ../../include/text.php:837
+msgid "slapped"
+msgstr "baffé"
-#: ../../mod/profiles.php:394
-msgid "Homepage URL:"
-msgstr "Page personnelle:"
+#: ../../include/text.php:838
+msgid "finger"
+msgstr "pointer"
-#: ../../mod/profiles.php:395 ../../include/profile_advanced.php:47
-msgid "Political Views:"
-msgstr "Opinions politiques:"
+#: ../../include/text.php:838
+msgid "fingered"
+msgstr "pointé"
-#: ../../mod/profiles.php:396
-msgid "Religious Views:"
-msgstr "Opinions religieuses:"
+#: ../../include/text.php:839
+msgid "rebuff"
+msgstr "rejetter"
-#: ../../mod/profiles.php:397
-msgid "Public Keywords:"
-msgstr "Mots-clés publics:"
+#: ../../include/text.php:839
+msgid "rebuffed"
+msgstr "rejetté"
-#: ../../mod/profiles.php:398
-msgid "Private Keywords:"
-msgstr "Mots-clés privés:"
+#: ../../include/text.php:851
+msgid "happy"
+msgstr "bonheur"
-#: ../../mod/profiles.php:399
-msgid "Example: fishing photography software"
-msgstr "Exemple: football dessin programmation"
+#: ../../include/text.php:852
+msgid "sad"
+msgstr "triste"
-#: ../../mod/profiles.php:400
-msgid "(Used for suggesting potential friends, can be seen by others)"
-msgstr ""
-"(Utilisés pour vous suggérer des amis potentiels, peuvent être vus par "
-"autrui)"
+#: ../../include/text.php:853
+msgid "mellow"
+msgstr "mélancolie"
-#: ../../mod/profiles.php:401
-msgid "(Used for searching profiles, never shown to others)"
-msgstr ""
-"(Utilisés pour rechercher dans les profils, ne seront jamais montrés à "
-"autrui)"
+#: ../../include/text.php:854
+msgid "tired"
+msgstr "fatigue"
-#: ../../mod/profiles.php:402
-msgid "Tell us about yourself..."
-msgstr "Parlez-nous de vous..."
+#: ../../include/text.php:855
+msgid "perky"
+msgstr "impertinence"
-#: ../../mod/profiles.php:403
-msgid "Hobbies/Interests"
-msgstr "Passe-temps/Centres d'intérêt"
+#: ../../include/text.php:856
+msgid "angry"
+msgstr "colère"
-#: ../../mod/profiles.php:404
-msgid "Contact information and Social Networks"
-msgstr "Coordonées/Réseaux sociaux"
+#: ../../include/text.php:857
+msgid "stupified"
+msgstr "stupeur"
-#: ../../mod/profiles.php:405
-msgid "Musical interests"
-msgstr "Goûts musicaux"
+#: ../../include/text.php:858
+msgid "puzzled"
+msgstr "perplexité"
-#: ../../mod/profiles.php:406
-msgid "Books, literature"
-msgstr "Lectures"
+#: ../../include/text.php:859
+msgid "interested"
+msgstr "intérêt"
-#: ../../mod/profiles.php:407
-msgid "Television"
-msgstr "Télévision"
+#: ../../include/text.php:860
+msgid "bitter"
+msgstr "amertune"
-#: ../../mod/profiles.php:408
-msgid "Film/dance/culture/entertainment"
-msgstr "Cinéma/Danse/Culture/Divertissement"
+#: ../../include/text.php:861
+msgid "cheerful"
+msgstr "entrain"
-#: ../../mod/profiles.php:409
-msgid "Love/romance"
-msgstr "Amour/Romance"
+#: ../../include/text.php:862
+msgid "alive"
+msgstr "vivacité"
-#: ../../mod/profiles.php:410
-msgid "Work/employment"
-msgstr "Activité professionnelle/Occupation"
+#: ../../include/text.php:863
+msgid "annoyed"
+msgstr "agaçement"
-#: ../../mod/profiles.php:411
-msgid "School/education"
-msgstr "Études/Formation"
+#: ../../include/text.php:864
+msgid "anxious"
+msgstr "anxiété"
-#: ../../mod/profiles.php:416
-msgid ""
-"This is your <strong>public</strong> profile.<br />It <strong>may</strong> "
-"be visible to anybody using the internet."
-msgstr ""
-"Ceci est votre profil <strong>public</strong>.<br />Il <strong>peut</strong>"
-" être visible par n'importe quel utilisateur d'Internet."
+#: ../../include/text.php:865
+msgid "cranky"
+msgstr "mauvais poil"
-#: ../../mod/profiles.php:426 ../../mod/directory.php:122
-msgid "Age: "
-msgstr "Age: "
+#: ../../include/text.php:866
+msgid "disturbed"
+msgstr "perturbation"
-#: ../../mod/profiles.php:461
-msgid "Edit/Manage Profiles"
-msgstr "Editer/gérer les profils"
+#: ../../include/text.php:867
+msgid "frustrated"
+msgstr "frustration"
-#: ../../mod/notice.php:15 ../../mod/display.php:28 ../../mod/display.php:115
-#: ../../mod/viewsrc.php:15 ../../mod/admin.php:111 ../../mod/admin.php:502
-#: ../../include/items.php:2786
-msgid "Item not found."
-msgstr "Élément introuvable."
+#: ../../include/text.php:868
+msgid "motivated"
+msgstr "motivation"
-#: ../../mod/settings.php:9 ../../mod/photos.php:62
-msgid "everybody"
-msgstr "tout le monde"
+#: ../../include/text.php:869
+msgid "relaxed"
+msgstr "détente"
-#: ../../mod/settings.php:67
-msgid "Missing some important data!"
-msgstr "Il manque certaines informations importantes!"
+#: ../../include/text.php:870
+msgid "surprised"
+msgstr "surprise"
-#: ../../mod/settings.php:70 ../../mod/settings.php:446 ../../mod/admin.php:62
-msgid "Update"
-msgstr "Mises-à-jour"
+#: ../../include/text.php:1031
+msgid "Monday"
+msgstr "Lundi"
-#: ../../mod/settings.php:165
-msgid "Failed to connect with email account using the settings provided."
-msgstr "Impossible de se connecter au compte courriel configuré."
+#: ../../include/text.php:1031
+msgid "Tuesday"
+msgstr "Mardi"
-#: ../../mod/settings.php:170
-msgid "Email settings updated."
-msgstr "Réglages de courriel mis-à-jour."
+#: ../../include/text.php:1031
+msgid "Wednesday"
+msgstr "Mercredi"
-#: ../../mod/settings.php:188
-msgid "Passwords do not match. Password unchanged."
-msgstr "Les mots de passe ne correspondent pas. Aucun changement appliqué."
+#: ../../include/text.php:1031
+msgid "Thursday"
+msgstr "Jeudi"
-#: ../../mod/settings.php:193
-msgid "Empty passwords are not allowed. Password unchanged."
-msgstr "Les mots de passe vides sont interdits. Aucun changement appliqué."
+#: ../../include/text.php:1031
+msgid "Friday"
+msgstr "Vendredi"
-#: ../../mod/settings.php:204
-msgid "Password changed."
-msgstr "Mots de passe changés."
+#: ../../include/text.php:1031
+msgid "Saturday"
+msgstr "Samedi"
-#: ../../mod/settings.php:206
-msgid "Password update failed. Please try again."
-msgstr "Le changement de mot de passe a échoué. Merci de recommencer."
+#: ../../include/text.php:1031
+msgid "Sunday"
+msgstr "Dimanche"
-#: ../../mod/settings.php:253
-msgid " Please use a shorter name."
-msgstr " Merci d'utiliser un nom plus court."
+#: ../../include/text.php:1035
+msgid "January"
+msgstr "Janvier"
-#: ../../mod/settings.php:255
-msgid " Name too short."
-msgstr " Nom trop court."
+#: ../../include/text.php:1035
+msgid "February"
+msgstr "Février"
-#: ../../mod/settings.php:261
-msgid " Not valid email."
-msgstr " Email invalide."
+#: ../../include/text.php:1035
+msgid "March"
+msgstr "Mars"
-#: ../../mod/settings.php:263
-msgid " Cannot change to that email."
-msgstr " Impossible de changer pour cet email."
+#: ../../include/text.php:1035
+msgid "April"
+msgstr "Avril"
-#: ../../mod/settings.php:323 ../../addon/twitter/twitter.php:294
-#: ../../addon/impressum/impressum.php:64
-#: ../../addon/facebook/facebook.php:320 ../../addon/piwik/piwik.php:94
-msgid "Settings updated."
-msgstr "Réglages mis à jour."
+#: ../../include/text.php:1035
+msgid "May"
+msgstr "Mai"
-#: ../../mod/settings.php:382 ../../include/nav.php:128
-msgid "Account settings"
-msgstr "Réglages du compte"
+#: ../../include/text.php:1035
+msgid "June"
+msgstr "Juin"
-#: ../../mod/settings.php:387
-msgid "Connector settings"
-msgstr "Réglages des connecteurs"
+#: ../../include/text.php:1035
+msgid "July"
+msgstr "Juillet"
-#: ../../mod/settings.php:392
-msgid "Plugin settings"
-msgstr "Réglages des extensions"
+#: ../../include/text.php:1035
+msgid "August"
+msgstr "Août"
-#: ../../mod/settings.php:397
-msgid "Connections"
-msgstr "Connexions"
+#: ../../include/text.php:1035
+msgid "September"
+msgstr "Septembre"
-#: ../../mod/settings.php:402
-msgid "Export personal data"
-msgstr "Exporter les données personnelles"
+#: ../../include/text.php:1035
+msgid "October"
+msgstr "Octobre"
-#: ../../mod/settings.php:419 ../../mod/settings.php:445
-#: ../../mod/settings.php:478
-msgid "Add application"
-msgstr "Ajouter une application"
+#: ../../include/text.php:1035
+msgid "November"
+msgstr "Novembre"
-#: ../../mod/settings.php:421 ../../mod/settings.php:447
-#: ../../mod/dfrn_request.php:655 ../../mod/tagrm.php:11
-#: ../../mod/tagrm.php:94 ../../addon/js_upload/js_upload.php:45
-msgid "Cancel"
-msgstr "Annuler"
+#: ../../include/text.php:1035
+msgid "December"
+msgstr "Décembre"
-#: ../../mod/settings.php:422 ../../mod/settings.php:448
-#: ../../mod/crepair.php:144 ../../mod/admin.php:464 ../../mod/admin.php:473
-msgid "Name"
-msgstr "Nom"
+#: ../../include/text.php:1113
+msgid "unknown.???"
+msgstr "inconnu.???"
-#: ../../mod/settings.php:423 ../../mod/settings.php:449
-#: ../../addon/statusnet/statusnet.php:480
-msgid "Consumer Key"
-msgstr "Clé utilisateur"
+#: ../../include/text.php:1114
+msgid "bytes"
+msgstr "octets"
-#: ../../mod/settings.php:424 ../../mod/settings.php:450
-#: ../../addon/statusnet/statusnet.php:479
-msgid "Consumer Secret"
-msgstr "Secret utilisateur"
+#: ../../include/text.php:1149
+msgid "remove category"
+msgstr "suppr. catégorie"
-#: ../../mod/settings.php:425 ../../mod/settings.php:451
-msgid "Redirect"
-msgstr "Rediriger"
+#: ../../include/text.php:1171
+msgid "remove from file"
+msgstr "supprimer du fichier"
-#: ../../mod/settings.php:426 ../../mod/settings.php:452
-msgid "Icon url"
-msgstr "URL de l'icône"
+#: ../../include/text.php:1229 ../../include/text.php:1241
+msgid "Click to open/close"
+msgstr "Cliquer pour ouvrir/fermer"
-#: ../../mod/settings.php:437
-msgid "You can't edit this application."
-msgstr "Vous ne pouvez pas éditer cette application."
+#: ../../include/text.php:1417 ../../mod/events.php:332
+msgid "link to source"
+msgstr "lien vers source"
-#: ../../mod/settings.php:477
-msgid "Connected Apps"
-msgstr "Applications connectées"
+#: ../../include/text.php:1436
+msgid "Select a page layout: "
+msgstr "Choisir une mise en page&nbsp;:"
-#: ../../mod/settings.php:479 ../../mod/editpost.php:90
-#: ../../include/conversation.php:441 ../../include/group.php:190
-msgid "Edit"
-msgstr "Éditer"
+#: ../../include/text.php:1439 ../../include/text.php:1504
+msgid "default"
+msgstr "défaut"
-#: ../../mod/settings.php:480 ../../mod/photos.php:1300
-#: ../../mod/admin.php:468 ../../mod/group.php:154
-#: ../../include/conversation.php:211 ../../include/conversation.php:454
-msgid "Delete"
-msgstr "Supprimer"
+#: ../../include/text.php:1475
+msgid "Page content type: "
+msgstr "Type de contenu&nbsp;:"
-#: ../../mod/settings.php:481
-msgid "Client key starts with"
-msgstr "La clé cliente commence par"
+#: ../../include/text.php:1516
+msgid "Select an alternate language"
+msgstr "Choisir une langue alternative"
-#: ../../mod/settings.php:482
-msgid "No name"
-msgstr "Sans nom"
+#: ../../include/text.php:1637 ../../include/conversation.php:117
+#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:45
+msgid "photo"
+msgstr "photo"
-#: ../../mod/settings.php:483
-msgid "Remove authorization"
-msgstr "Révoquer l'autorisation"
+#: ../../include/text.php:1640 ../../include/conversation.php:120
+#: ../../mod/tagger.php:49
+msgid "event"
+msgstr "événement"
+
+#: ../../include/text.php:1643 ../../include/conversation.php:145
+#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:53
+msgid "status"
+msgstr "le statut"
-#: ../../mod/settings.php:495
-msgid "No Plugin settings configured"
-msgstr "Pas de réglages d'extensions configurés"
+#: ../../include/text.php:1645 ../../include/conversation.php:147
+#: ../../mod/tagger.php:55
+msgid "comment"
+msgstr "commentaire"
+
+#: ../../include/text.php:1650
+msgid "activity"
+msgstr "activité"
+
+#: ../../include/text.php:1907
+msgid "Design"
+msgstr "Conception"
+
+#: ../../include/text.php:1909
+msgid "Blocks"
+msgstr "Blocs"
+
+#: ../../include/text.php:1910
+msgid "Menus"
+msgstr "Menus"
+
+#: ../../include/text.php:1911
+msgid "Layouts"
+msgstr "Mises-en-page"
+
+#: ../../include/text.php:1912
+msgid "Pages"
+msgstr "Pages"
+
+#: ../../include/bbcode.php:128 ../../include/bbcode.php:594
+#: ../../include/bbcode.php:597 ../../include/bbcode.php:602
+#: ../../include/bbcode.php:605 ../../include/bbcode.php:608
+#: ../../include/bbcode.php:611 ../../include/bbcode.php:616
+#: ../../include/bbcode.php:619 ../../include/bbcode.php:624
+#: ../../include/bbcode.php:627 ../../include/bbcode.php:630
+#: ../../include/bbcode.php:633
+msgid "Image/photo"
+msgstr "Image/photo"
+
+#: ../../include/bbcode.php:163 ../../include/bbcode.php:644
+msgid "Encrypted content"
+msgstr "Contenu chiffré"
-#: ../../mod/settings.php:502 ../../addon/widgets/widgets.php:122
-msgid "Plugin Settings"
-msgstr "Réglages des extensions"
+#: ../../include/bbcode.php:170
+msgid "QR code"
+msgstr "QR code"
-#: ../../mod/settings.php:515 ../../mod/settings.php:516
+#: ../../include/bbcode.php:213
#, php-format
-msgid "Built-in support for %s connectivity is %s"
-msgstr "Le support natif pour la connectivité %s est %s"
+msgid "%1$s wrote the following %2$s %3$s"
+msgstr "%1$s a écrit %2$s qui suit %3$s"
-#: ../../mod/settings.php:515 ../../mod/dfrn_request.php:651
-#: ../../include/contact_selectors.php:78
-msgid "Diaspora"
-msgstr "Diaspora"
+#: ../../include/bbcode.php:215
+msgid "post"
+msgstr "l'article"
-#: ../../mod/settings.php:515 ../../mod/settings.php:516
-msgid "enabled"
-msgstr "activé"
+#: ../../include/bbcode.php:562 ../../include/bbcode.php:582
+msgid "$1 wrote:"
+msgstr "$1 a écrit&nbsp;:"
-#: ../../mod/settings.php:515 ../../mod/settings.php:516
-msgid "disabled"
-msgstr "désactivé"
+#: ../../include/Contact.php:120
+msgid "New window"
+msgstr "Nouvelle fenêtre"
-#: ../../mod/settings.php:516
-msgid "StatusNet"
-msgstr "StatusNet"
+#: ../../include/Contact.php:121
+msgid "Open the selected location in a different window or browser tab"
+msgstr "Ouvrir l'emplacement dans une fenêtre (ou un onglet) différent"
-#: ../../mod/settings.php:542
-msgid "Connector Settings"
-msgstr "Réglages des connecteurs"
+#: ../../include/features.php:23
+msgid "General Features"
+msgstr "Fonctionnalités générales"
-#: ../../mod/settings.php:548
-msgid "Email/Mailbox Setup"
-msgstr "Réglages de courriel/boîte à lettre"
+#: ../../include/features.php:25
+msgid "Content Expiration"
+msgstr "Expiration de contenu"
-#: ../../mod/settings.php:549
-msgid ""
-"If you wish to communicate with email contacts using this service "
-"(optional), please specify how to connect to your mailbox."
-msgstr ""
-"Si vous souhaitez communiquer avec vos contacts \"courriel\" (facultatif), "
-"merci de nous indiquer comment vous connecter à votre boîte."
+#: ../../include/features.php:25
+msgid "Remove posts/comments and/or private messages at a future time"
+msgstr "Supprimer les contributions/commentaires et/ou messages privés à un moment futur"
-#: ../../mod/settings.php:550
-msgid "Last successful email check:"
-msgstr "Dernière vérification réussie des courriels:"
+#: ../../include/features.php:26
+msgid "Multiple Profiles"
+msgstr "Profils multiples"
-#: ../../mod/settings.php:551
-msgid "Email access is disabled on this site."
-msgstr "L'accès courriel est désactivé sur ce site."
+#: ../../include/features.php:26
+msgid "Ability to create multiple profiles"
+msgstr "Possibilité de créer plusieurs profils"
-#: ../../mod/settings.php:552
-msgid "IMAP server name:"
-msgstr "Nom du serveur IMAP:"
+#: ../../include/features.php:27
+msgid "Web Pages"
+msgstr "Pages web"
-#: ../../mod/settings.php:553
-msgid "IMAP port:"
-msgstr "Port IMAP:"
+#: ../../include/features.php:27
+msgid "Provide managed web pages on your channel"
+msgstr "Fournir des pages web, sous votre contrôle, sur votre canal"
-#: ../../mod/settings.php:554
-msgid "Security:"
-msgstr "Sécurité:"
+#: ../../include/features.php:28
+msgid "Private Notes"
+msgstr "Notes privées"
-#: ../../mod/settings.php:554
-msgid "None"
-msgstr "Aucun(e)"
+#: ../../include/features.php:28
+msgid "Enables a tool to store notes and reminders"
+msgstr "Active un outil pour stocker notes et mémos"
-#: ../../mod/settings.php:555
-msgid "Email login name:"
-msgstr "Nom de connexion:"
+#: ../../include/features.php:33
+msgid "Extended Identity Sharing"
+msgstr "Partage d'identité étendue"
-#: ../../mod/settings.php:556
-msgid "Email password:"
-msgstr "Mot de passe:"
+#: ../../include/features.php:33
+msgid ""
+"Share your identity with all websites on the internet. When disabled, "
+"identity is only shared with sites in the matrix."
+msgstr "Partage votre identité avec tous les sites web du Monde. Si décoché, l'identité sera seulement partagée avec les sites de la matrice."
-#: ../../mod/settings.php:557
-msgid "Reply-to address:"
-msgstr "Adresse de réponse:"
+#: ../../include/features.php:34
+msgid "Expert Mode"
+msgstr "Mode expert"
-#: ../../mod/settings.php:558
-msgid "Send public posts to all email contacts:"
-msgstr "Les notices publiques vont à tous les contacts courriel:"
+#: ../../include/features.php:34
+msgid "Enable Expert Mode to provide advanced configuration options"
+msgstr "Activer le mode expert pour accéder aux options avancées"
-#: ../../mod/settings.php:596 ../../mod/admin.php:126 ../../mod/admin.php:443
-msgid "Normal Account"
-msgstr "Compte normal"
+#: ../../include/features.php:35
+msgid "Premium Channel"
+msgstr "Canal Premium"
-#: ../../mod/settings.php:597
-msgid "This account is a normal personal profile"
-msgstr ""
-"Ce compte correspond à un profil normal, pour une seule personne (physique, "
-"généralement)"
+#: ../../include/features.php:35
+msgid ""
+"Allows you to set restrictions and terms on those that connect with your "
+"channel"
+msgstr "Vous permet d'appliquer des règles et restrictions aux relations de votre canal"
-#: ../../mod/settings.php:600 ../../mod/admin.php:127 ../../mod/admin.php:444
-msgid "Soapbox Account"
-msgstr "Compte \"boîte à savon\""
+#: ../../include/features.php:40
+msgid "Post Composition Features"
+msgstr "Fonctionnalités de composition"
-#: ../../mod/settings.php:601
-msgid "Automatically approve all connection/friend requests as read-only fans"
-msgstr ""
-"Accepter automatiquement toutes les demandes d'amitié/connexion comme étant "
-"des fans 'en lecture seule'"
+#: ../../include/features.php:41
+msgid "Richtext Editor"
+msgstr "Éditeur enrichi"
-#: ../../mod/settings.php:604 ../../mod/admin.php:128 ../../mod/admin.php:445
-msgid "Community/Celebrity Account"
-msgstr "Compte de communauté/célébrité"
+#: ../../include/features.php:41
+msgid "Enable richtext editor"
+msgstr "Activer l'éditeur de texte enrichi"
-#: ../../mod/settings.php:605
-msgid ""
-"Automatically approve all connection/friend requests as read-write fans"
-msgstr ""
-"Accepter automatiquement toutes les demandes d'amitié/connexion comme étant "
-"des fans en 'lecture/écriture'"
+#: ../../include/features.php:42
+msgid "Post Preview"
+msgstr "Aperçu avant publication"
-#: ../../mod/settings.php:608 ../../mod/admin.php:129 ../../mod/admin.php:446
-msgid "Automatic Friend Account"
-msgstr "Compte auto-amical"
+#: ../../include/features.php:42
+msgid "Allow previewing posts and comments before publishing them"
+msgstr "Permettre de voir les publications/commentaires avant de les valider"
-#: ../../mod/settings.php:609
-msgid "Automatically approve all connection/friend requests as friends"
-msgstr ""
-"Accepter automatiquement toutes les demandes d'amitié/connexion comme étant "
-"des amis"
+#: ../../include/features.php:43
+msgid "Automatically import channel content from other channels or feeds"
+msgstr "Importe automatiquement le contenus d'autres canaux ou flux dans le canal en cours"
-#: ../../mod/settings.php:619
-msgid "OpenID:"
-msgstr "OpenID:"
+#: ../../include/features.php:44
+msgid "Even More Encryption"
+msgstr "Encore plus de chiffrement"
-#: ../../mod/settings.php:619
-msgid "(Optional) Allow this OpenID to login to this account."
-msgstr ""
-"&amp;nbsp;(Facultatif) Autoriser cet OpenID à se connecter à ce compte."
+#: ../../include/features.php:44
+msgid ""
+"Allow optional encryption of content end-to-end with a shared secret key"
+msgstr "Permettre le chiffrement - optionnel - du contenu de bout-en-bout au moyen d'un secret partagé"
-#: ../../mod/settings.php:629
-msgid "Publish your default profile in your local site directory?"
-msgstr "Publier votre profil par défaut sur l'annuaire local de ce site?"
+#: ../../include/features.php:49
+msgid "Network and Stream Filtering"
+msgstr "Filtrage du réseau et des flux"
-#: ../../mod/settings.php:635
-msgid "Publish your default profile in the global social directory?"
-msgstr "Publier votre profil par défaut sur l'annuaire social global?"
+#: ../../include/features.php:50
+msgid "Search by Date"
+msgstr "Chercher par date"
-#: ../../mod/settings.php:643
-msgid "Hide your contact/friend list from viewers of your default profile?"
-msgstr ""
-"Cacher votre liste de contacts/amis des visiteurs de votre profil par "
-"défaut?"
+#: ../../include/features.php:50
+msgid "Ability to select posts by date ranges"
+msgstr "Pouvoir choisir des publications par date"
-#: ../../mod/settings.php:647
-msgid "Hide profile details and all your messages from unknown viewers?"
-msgstr ""
-"Masquer les détails du profil ainsi que tous vos messages aux visiteurs "
-"inconnus?"
+#: ../../include/features.php:51
+msgid "Collections Filter"
+msgstr "Filtre des collections"
-#: ../../mod/settings.php:652
-msgid "Allow friends to post to your profile page?"
-msgstr "Autoriser vos amis à publier sur votre profil?"
+#: ../../include/features.php:51
+msgid "Enable widget to display Network posts only from selected collections"
+msgstr "Activer une boîte qui permet de filtrer les publications du réseau parmi les collections selectionnées"
-#: ../../mod/settings.php:658
-msgid "Allow friends to tag your posts?"
-msgstr "Autoriser vos amis à tagguer vos notices?"
+#: ../../include/features.php:52
+msgid "Save search terms for re-use"
+msgstr "Sauver des termes de recherche pour utilisation ultérieure"
-#: ../../mod/settings.php:667
-msgid "Profile is <strong>not published</strong>."
-msgstr "Ce profil n'est <strong>pas publié</strong>."
+#: ../../include/features.php:53
+msgid "Network Personal Tab"
+msgstr "Onglet \"réseau personnel\""
-#: ../../mod/settings.php:691
-msgid "Your Identity Address is"
-msgstr "L'adresse de votre identité est"
+#: ../../include/features.php:53
+msgid "Enable tab to display only Network posts that you've interacted on"
+msgstr "Activer un onglet affichant seulement les publications du réseau sur lesquelles vous êtes intervenu"
-#: ../../mod/settings.php:705
-msgid "Account Settings"
-msgstr "Réglages du compte"
+#: ../../include/features.php:54
+msgid "Network New Tab"
+msgstr "Onglet \"nouveautés réseau\""
-#: ../../mod/settings.php:713
-msgid "Password Settings"
-msgstr "Réglages de mot de passe"
+#: ../../include/features.php:54
+msgid "Enable tab to display all new Network activity"
+msgstr "Activer un onglet avec toute activité récente sur le réseau"
-#: ../../mod/settings.php:714
-msgid "New Password:"
-msgstr "Nouveau mot de passe:"
+#: ../../include/features.php:55
+msgid "Affinity Tool"
+msgstr "Gérer l'affinité"
-#: ../../mod/settings.php:715
-msgid "Confirm:"
-msgstr "Confirmer:"
+#: ../../include/features.php:55
+msgid "Filter stream activity by depth of relationships"
+msgstr "Filtrer le flux d'activité en fonction de la profondeur des relations"
-#: ../../mod/settings.php:715
-msgid "Leave password fields blank unless changing"
-msgstr ""
-"Laissez les champs de mot de passe vierges, sauf si vous désirez les changer"
+#: ../../include/features.php:56
+msgid "Suggest Channels"
+msgstr "Suggérer des canaux"
-#: ../../mod/settings.php:719
-msgid "Basic Settings"
-msgstr "Réglages basiques"
+#: ../../include/features.php:56
+msgid "Show channel suggestions"
+msgstr "Montrer les suggestions de canaux"
-#: ../../mod/settings.php:720 ../../include/profile_advanced.php:15
-msgid "Full Name:"
-msgstr "Nom complet:"
+#: ../../include/features.php:61
+msgid "Post/Comment Tools"
+msgstr "Gérer les publications/commentaires"
-#: ../../mod/settings.php:721
-msgid "Email Address:"
-msgstr "Adresse courriel:"
+#: ../../include/features.php:63
+msgid "Edit Sent Posts"
+msgstr "Éditer les publications envoyées"
-#: ../../mod/settings.php:722
-msgid "Your Timezone:"
-msgstr "Votre fuseau horaire:"
+#: ../../include/features.php:63
+msgid "Edit and correct posts and comments after sending"
+msgstr "Permettre d'éditer/corriger les publications/commentaires après envoi"
-#: ../../mod/settings.php:723
-msgid "Default Post Location:"
-msgstr "Publication par défaut depuis :"
+#: ../../include/features.php:64
+msgid "Tagging"
+msgstr "Marquage"
-#: ../../mod/settings.php:724
-msgid "Use Browser Location:"
-msgstr "Utiliser la localisation géographique du navigateur:"
+#: ../../include/features.php:64
+msgid "Ability to tag existing posts"
+msgstr "Permettre de marquer les publications existantes"
-#: ../../mod/settings.php:725
-msgid "Display Theme:"
-msgstr "Thème d'affichage:"
+#: ../../include/features.php:65
+msgid "Post Categories"
+msgstr "Catégoriser les publications"
-#: ../../mod/settings.php:729
-msgid "Security and Privacy Settings"
-msgstr "Réglages de sécurité et vie privée"
+#: ../../include/features.php:65
+msgid "Add categories to your posts"
+msgstr "Ajouter des catégories à vos publications"
-#: ../../mod/settings.php:731
-msgid "Maximum Friend Requests/Day:"
-msgstr "Nombre maximal de requêtes d'amitié/jour:"
+#: ../../include/features.php:66
+msgid "Ability to file posts under folders"
+msgstr "Permettre de classer les publications dans des dossiers"
-#: ../../mod/settings.php:731
-msgid "(to prevent spam abuse)"
-msgstr "(pour limiter l'impact du spam)"
+#: ../../include/features.php:67
+msgid "Dislike Posts"
+msgstr "Détester une publication"
-#: ../../mod/settings.php:732
-msgid "Default Post Permissions"
-msgstr "Permissions par défaut sur les articles"
+#: ../../include/features.php:67
+msgid "Ability to dislike posts/comments"
+msgstr "Pouvoir détester les publications/commentaires"
-#: ../../mod/settings.php:733
-msgid "(click to open/close)"
-msgstr "(cliquer pour ouvrir/fermer)"
+#: ../../include/features.php:68
+msgid "Star Posts"
+msgstr "Mettre en avant les publications"
-#: ../../mod/settings.php:739
-msgid "Automatically expire posts after days:"
-msgstr "Les notices expirent automatiquement au bout de (en jours):"
+#: ../../include/features.php:68
+msgid "Ability to mark special posts with a star indicator"
+msgstr "Pouvoir marquer certaines publications d'une étoile"
-#: ../../mod/settings.php:739
-msgid "If empty, posts will not expire. Expired posts will be deleted"
-msgstr ""
-"Si elles sont vides, les notices n'expireront pas. Les notices expirées "
-"seront supprimées"
+#: ../../include/features.php:69
+msgid "Tag Cloud"
+msgstr "Nuage de tags"
-#: ../../mod/settings.php:748
-msgid "Notification Settings"
-msgstr "Réglages de notification"
+#: ../../include/features.php:69
+msgid "Provide a personal tag cloud on your channel page"
+msgstr "Afficher un nuage de vos tags sur votre canal"
-#: ../../mod/settings.php:749
-msgid "Send a notification email when:"
-msgstr "Envoyer un courriel de notification quand:"
+#: ../../include/contact_selectors.php:30
+msgid "Unknown | Not categorised"
+msgstr "Inconnu / Non-classé"
-#: ../../mod/settings.php:750
-msgid "You receive an introduction"
-msgstr "Vous recevez une introduction"
+#: ../../include/contact_selectors.php:31
+msgid "Block immediately"
+msgstr "Bloquer directement"
-#: ../../mod/settings.php:751
-msgid "Your introductions are confirmed"
-msgstr "Vos introductions sont confirmées"
+#: ../../include/contact_selectors.php:32
+msgid "Shady, spammer, self-marketer"
+msgstr "Douteux, spammeur, donne dans l'auto-promotion"
-#: ../../mod/settings.php:752
-msgid "Someone writes on your profile wall"
-msgstr "Quelqu'un écrit sur votre mur"
+#: ../../include/contact_selectors.php:33
+msgid "Known to me, but no opinion"
+msgstr "M'est connu, n'ai pas d'opinion à son sujet"
-#: ../../mod/settings.php:753
-msgid "Someone writes a followup comment"
-msgstr "Quelqu'un vous commente"
+#: ../../include/contact_selectors.php:34
+msgid "OK, probably harmless"
+msgstr "OK, probablement anodin"
-#: ../../mod/settings.php:754
-msgid "You receive a private message"
-msgstr "Vous recevez un message privé"
+#: ../../include/contact_selectors.php:35
+msgid "Reputable, has my trust"
+msgstr "Réputé, je lui fais confiance"
-#: ../../mod/settings.php:758
-msgid "Advanced Page Settings"
-msgstr "Réglages avancés"
+#: ../../include/contact_selectors.php:54
+msgid "Frequently"
+msgstr "Constamment"
-#: ../../mod/search.php:13 ../../mod/network.php:75
-msgid "Saved Searches"
-msgstr "Recherches"
+#: ../../include/contact_selectors.php:55
+msgid "Hourly"
+msgstr "Chaque heure"
-#: ../../mod/search.php:16 ../../mod/network.php:81
-msgid "Remove term"
-msgstr "Retirer le terme"
+#: ../../include/contact_selectors.php:56
+msgid "Twice daily"
+msgstr "Deux fois par jour"
-#: ../../mod/search.php:71 ../../mod/photos.php:752 ../../mod/display.php:7
-#: ../../mod/dfrn_request.php:594 ../../mod/directory.php:31
-#: ../../mod/viewconnections.php:16 ../../mod/community.php:16
-msgid "Public access denied."
-msgstr "Accès public refusé."
+#: ../../include/contact_selectors.php:57
+msgid "Daily"
+msgstr "Chaque jour"
-#: ../../mod/search.php:83
-msgid "Search This Site"
-msgstr "Rechercher sur ce site"
+#: ../../include/contact_selectors.php:58
+msgid "Weekly"
+msgstr "Chaque semaine"
-#: ../../mod/search.php:125 ../../mod/community.php:60
-msgid "No results."
-msgstr "Aucun résultat."
+#: ../../include/contact_selectors.php:59
+msgid "Monthly"
+msgstr "Chaque mois"
-#: ../../mod/photos.php:42
-msgid "Photo Albums"
-msgstr "Albums photo"
+#: ../../include/contact_selectors.php:74
+msgid "Friendica"
+msgstr "Friendica"
-#: ../../mod/photos.php:50 ../../mod/photos.php:144 ../../mod/photos.php:866
-#: ../../mod/photos.php:936 ../../mod/photos.php:951 ../../mod/photos.php:1351
-#: ../../mod/photos.php:1363 ../../addon/communityhome/communityhome.php:110
-msgid "Contact Photos"
-msgstr "Photos du contact"
+#: ../../include/contact_selectors.php:75
+msgid "OStatus"
+msgstr "OStatus"
-#: ../../mod/photos.php:133
-msgid "Contact information unavailable"
-msgstr "Informations de contact indisponibles"
+#: ../../include/contact_selectors.php:76
+msgid "RSS/Atom"
+msgstr "RSS/Atom"
-#: ../../mod/photos.php:154
-msgid "Album not found."
-msgstr "Album introuvable."
+#: ../../include/contact_selectors.php:77 ../../mod/admin.php:741
+#: ../../mod/admin.php:750 ../../boot.php:1426
+msgid "Email"
+msgstr "Courriel"
-#: ../../mod/photos.php:172 ../../mod/photos.php:945
-msgid "Delete Album"
-msgstr "Effacer l'album"
+#: ../../include/contact_selectors.php:78
+msgid "Diaspora"
+msgstr "Diaspora"
-#: ../../mod/photos.php:235 ../../mod/photos.php:1164
-msgid "Delete Photo"
-msgstr "Effacer la photo"
+#: ../../include/contact_selectors.php:79
+msgid "Facebook"
+msgstr "Facebook"
-#: ../../mod/photos.php:522
-msgid "was tagged in a"
-msgstr "a été identifié dans"
+#: ../../include/contact_selectors.php:80
+msgid "Zot!"
+msgstr "Zot!"
-#: ../../mod/photos.php:522 ../../mod/tagger.php:70 ../../mod/like.php:127
-#: ../../addon/communityhome/communityhome.php:163
-#: ../../include/conversation.php:31 ../../include/diaspora.php:1211
-msgid "photo"
-msgstr "photo"
+#: ../../include/contact_selectors.php:81
+msgid "LinkedIn"
+msgstr "Linkedin"
-#: ../../mod/photos.php:522
-msgid "by"
-msgstr "par"
+#: ../../include/contact_selectors.php:82
+msgid "XMPP/IM"
+msgstr "XMPP/IM"
-#: ../../mod/photos.php:625 ../../addon/js_upload/js_upload.php:312
-msgid "Image exceeds size limit of "
-msgstr "L'image dépasse la taille maximale de "
+#: ../../include/contact_selectors.php:83
+msgid "MySpace"
+msgstr "MySpace"
-#: ../../mod/photos.php:633
-msgid "Image file is empty."
-msgstr "Fichier image vide."
+#: ../../include/datetime.php:43 ../../include/datetime.php:45
+msgid "Miscellaneous"
+msgstr "Divers"
-#: ../../mod/photos.php:762
-msgid "No photos selected"
-msgstr "Aucune photo sélectionnée"
+#: ../../include/datetime.php:152 ../../include/datetime.php:284
+msgid "year"
+msgstr "année"
-#: ../../mod/photos.php:839
-msgid "Access to this item is restricted."
-msgstr "Accès restreint à cet élément."
+#: ../../include/datetime.php:157 ../../include/datetime.php:285
+msgid "month"
+msgstr "mois"
-#: ../../mod/photos.php:893
-msgid "Upload Photos"
-msgstr "Téléverser des photos"
+#: ../../include/datetime.php:162 ../../include/datetime.php:287
+msgid "day"
+msgstr "jour"
-#: ../../mod/photos.php:896 ../../mod/photos.php:940
-msgid "New album name: "
-msgstr "Nom du nouvel album: "
+#: ../../include/datetime.php:275
+msgid "never"
+msgstr "jamais"
-#: ../../mod/photos.php:897
-msgid "or existing album name: "
-msgstr "ou nom d'un album existant: "
+#: ../../include/datetime.php:281
+msgid "less than a second ago"
+msgstr "à l'instant"
-#: ../../mod/photos.php:898
-msgid "Do not show a status post for this upload"
-msgstr "Ne pas publier de notice pour cet envoi"
+#: ../../include/datetime.php:284
+msgid "years"
+msgstr "années"
-#: ../../mod/photos.php:900 ../../mod/photos.php:1159
-msgid "Permissions"
-msgstr "Permissions"
+#: ../../include/datetime.php:285
+msgid "months"
+msgstr "mois"
-#: ../../mod/photos.php:955
-msgid "Edit Album"
-msgstr "Éditer l'album"
+#: ../../include/datetime.php:286
+msgid "week"
+msgstr "semaine"
-#: ../../mod/photos.php:965 ../../mod/photos.php:1381
-msgid "View Photo"
-msgstr "Voir la photo"
+#: ../../include/datetime.php:286
+msgid "weeks"
+msgstr "semaines"
-#: ../../mod/photos.php:1000
-msgid "Permission denied. Access to this item may be restricted."
-msgstr "Interdit. L'accès à cet élément peut avoir été restreint."
+#: ../../include/datetime.php:287
+msgid "days"
+msgstr "jours"
-#: ../../mod/photos.php:1002
-msgid "Photo not available"
-msgstr "Photo indisponible"
+#: ../../include/datetime.php:288
+msgid "hour"
+msgstr "heure"
-#: ../../mod/photos.php:1052
-msgid "View photo"
-msgstr "Voir photo"
+#: ../../include/datetime.php:288
+msgid "hours"
+msgstr "heures"
-#: ../../mod/photos.php:1052
-msgid "Edit photo"
-msgstr "Éditer la photo"
+#: ../../include/datetime.php:289
+msgid "minute"
+msgstr "minute"
-#: ../../mod/photos.php:1053
-msgid "Use as profile photo"
-msgstr "Utiliser comme photo de profil"
+#: ../../include/datetime.php:289
+msgid "minutes"
+msgstr "minutes"
-#: ../../mod/photos.php:1059 ../../include/conversation.php:369
-msgid "Private Message"
-msgstr "Message privé"
+#: ../../include/datetime.php:290
+msgid "second"
+msgstr "seconde"
-#: ../../mod/photos.php:1070
-msgid "View Full Size"
-msgstr "Voir en taille réelle"
+#: ../../include/datetime.php:290
+msgid "seconds"
+msgstr "secondes"
-#: ../../mod/photos.php:1138
-msgid "Tags: "
-msgstr "Étiquettes: "
+#: ../../include/datetime.php:299
+#, php-format
+msgid "%1$d %2$s ago"
+msgstr "il y a %1$d %2$s"
-#: ../../mod/photos.php:1141
-msgid "[Remove any tag]"
-msgstr "[Retirer toutes les étiquettes]"
+#: ../../include/dba/dba_driver.php:50
+#, php-format
+msgid "Cannot locate DNS info for database server '%s'"
+msgstr "Impossible de trouver les infos DNS du serveur de DB '%s'"
-#: ../../mod/photos.php:1152
-msgid "New album name"
-msgstr "Nom du nouvel album"
+#: ../../include/event.php:11 ../../include/bb2diaspora.php:433
+msgid "l F d, Y \\@ g:i A"
+msgstr "l d F Y \\à G\\hi"
-#: ../../mod/photos.php:1155
-msgid "Caption"
-msgstr "Titre"
+#: ../../include/event.php:20 ../../include/bb2diaspora.php:439
+msgid "Starts:"
+msgstr "Début&nbsp;:"
-#: ../../mod/photos.php:1157
-msgid "Add a Tag"
-msgstr "Ajouter une étiquette"
+#: ../../include/event.php:30 ../../include/bb2diaspora.php:447
+msgid "Finishes:"
+msgstr "Fin&nbsp;:"
+
+#: ../../include/event.php:40 ../../include/identity.php:679
+#: ../../include/bb2diaspora.php:455 ../../mod/events.php:462
+#: ../../mod/directory.php:157 ../../mod/dirprofile.php:111
+msgid "Location:"
+msgstr "Localisation&nbsp;:"
-#: ../../mod/photos.php:1161
+#: ../../include/group.php:25
msgid ""
-"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
-msgstr ""
-"Exemples: @bob, @Barbara_Jensen, @jim@example.com, #Californie, #vacances"
+"A deleted group with this name was revived. Existing item permissions "
+"<strong>may</strong> apply to this group and any future members. If this is "
+"not what you intended, please create another group with a different name."
+msgstr "Un groupe supprimé portant ce nom a été ressuscité. Les permissions liées aux éléments existants <strong>peuvent</strong> s'appliquer au groupe et aux membres futurs. Si ce n'est pas ce que vous attendiez, merci de recréer un nouveau groupe avec un nom différent."
-#: ../../mod/photos.php:1181 ../../include/conversation.php:416
-msgid "I like this (toggle)"
-msgstr "I like this (bascule)"
+#: ../../include/group.php:223
+msgid "Default privacy group for new contacts"
+msgstr "Groupe de confidentialité par défaut pour les nouveaux contacts"
-#: ../../mod/photos.php:1182 ../../include/conversation.php:417
-msgid "I don't like this (toggle)"
-msgstr "I don't like this (bascule)"
+#: ../../include/group.php:242 ../../mod/admin.php:750
+msgid "All Channels"
+msgstr "Tous canaux"
-#: ../../mod/photos.php:1183 ../../include/conversation.php:814
-msgid "Share"
-msgstr "Partager"
+#: ../../include/group.php:264
+msgid "edit"
+msgstr "éditer"
-#: ../../mod/photos.php:1184 ../../mod/editpost.php:99
-#: ../../mod/message.php:137 ../../mod/message.php:270
-#: ../../include/conversation.php:251 ../../include/conversation.php:578
-#: ../../include/conversation.php:823
-msgid "Please wait"
-msgstr "Patientez"
+#: ../../include/group.php:285
+msgid "Collections"
+msgstr "Collections"
-#: ../../mod/photos.php:1200 ../../mod/photos.php:1239
-#: ../../mod/photos.php:1270 ../../include/conversation.php:431
-msgid "This is you"
-msgstr "C'est vous"
+#: ../../include/group.php:286
+msgid "Edit collection"
+msgstr "Éditer collection"
-#: ../../mod/photos.php:1368
-msgid "Recent Photos"
-msgstr "Photos récentes"
+#: ../../include/group.php:287
+msgid "Create a new collection"
+msgstr "Créer collection"
-#: ../../mod/photos.php:1372
-msgid "Upload New Photos"
-msgstr "Téléverser de nouvelles photos"
+#: ../../include/group.php:288
+msgid "Channels not in any collection"
+msgstr "Canaux dans aucune collection"
-#: ../../mod/photos.php:1385
-msgid "View Album"
-msgstr "Voir l'album"
+#: ../../include/js_strings.php:5
+msgid "Delete this item?"
+msgstr "Supprimer cet élément?"
-#: ../../mod/newmember.php:6
-msgid "Welcome to Friendika"
-msgstr "Bienvenue sur Friendica"
+#: ../../include/js_strings.php:6 ../../include/ItemObject.php:547
+#: ../../mod/photos.php:993 ../../mod/photos.php:1080
+msgid "Comment"
+msgstr "Commenter"
-#: ../../mod/newmember.php:8
-msgid "New Member Checklist"
-msgstr "Checklist du nouvel utilisateur"
+#: ../../include/js_strings.php:7 ../../include/ItemObject.php:281
+#: ../../include/contact_widgets.php:125
+msgid "show more"
+msgstr "montrer plus"
-#: ../../mod/newmember.php:12
-msgid ""
-"We would like to offer some tips and links to help make your experience "
-"enjoyable. Click any item to visit the relevant page."
-msgstr ""
-"Nous souhaiterions vous donner quelques astuces et pointeurs pour rendre "
-"votre expérience la plus plaisante possible. Cliquez sur n'importe quel "
-"élément pour visiter la page correspondante."
+#: ../../include/js_strings.php:8
+msgid "show fewer"
+msgstr "montrer moins"
-#: ../../mod/newmember.php:16
-msgid ""
-"On your <em>Settings</em> page - change your initial password. Also make a "
-"note of your Identity Address. This will be useful in making friends."
-msgstr ""
-"Sur votre page <em>Réglages</em> - changez votre mot de passe originel. "
-"Profitez-en pour prendre note de votre Adresse d'Identité. Elle vous sera "
-"utile pour vous faire de nouveaux amis."
+#: ../../include/js_strings.php:9
+msgid "Password too short"
+msgstr "Mot de passe trop court"
-#: ../../mod/newmember.php:18
-msgid ""
-"Review the other settings, particularly the privacy settings. An unpublished"
-" directory listing is like having an unlisted phone number. In general, you "
-"should probably publish your listing - unless all of your friends and "
-"potential friends know exactly how to find you."
-msgstr ""
-"Vérifiez les autres réglages, tout particulièrement ceux liés à la vie "
-"privée. Un profil non listé, c'est un peu comme un numéro sur liste rouge. "
-"En général, vous devriez probablement publier votre profil - à moins que "
-"tous vos amis (potentiels) sachent déjà comment vous trouver."
+#: ../../include/js_strings.php:10
+msgid "Passwords do not match"
+msgstr "Les mots de passe ne correspondent pas"
-#: ../../mod/newmember.php:20
-msgid ""
-"Upload a profile photo if you have not done so already. Studies have shown "
-"that people with real photos of themselves are ten times more likely to make"
-" friends than people who do not."
-msgstr ""
-"Téléversez (envoyez) une photo de profil si vous n'en avez pas déjà une. Les"
-" études montrent que les gens qui affichent de vraies photos d'eux sont dix "
-"fois plus susceptibles de se faire des amis."
+#: ../../include/js_strings.php:11 ../../mod/photos.php:39
+msgid "everybody"
+msgstr "tout le monde"
-#: ../../mod/newmember.php:23
-msgid ""
-"Authorise the Facebook Connector if you currently have a Facebook account "
-"and we will (optionally) import all your Facebook friends and conversations."
-msgstr ""
-"Activez et paramétrez le connecteur Facebook si vous avez un compte Facebook"
-" et nous pourrons (de manière facultative) importer tous vos amis et "
-"conversations Facebook."
+#: ../../include/js_strings.php:12
+msgid "Secret Passphrase"
+msgstr "Phrase de passe secrète"
-#: ../../mod/newmember.php:28
-msgid ""
-"Enter your email access information on your Settings page if you wish to "
-"import and interact with friends or mailing lists from your email INBOX"
-msgstr ""
-"Entrez les paramètres de votre adresse de courriel sur la page des Réglages "
-"si vous souhaitez importer et interagir avec vos contacts conventionnels."
+#: ../../include/js_strings.php:13
+msgid "Passphrase hint"
+msgstr "Indice pour la phrase de passe"
-#: ../../mod/newmember.php:30
-msgid ""
-"Edit your <strong>default</strong> profile to your liking. Review the "
-"settings for hiding your list of friends and hiding the profile from unknown"
-" visitors."
-msgstr ""
-"Éditez votre profil <strong>par défaut</strong> à votre convenance. Vérifiez"
-" les réglages concernant la visibilité de votre liste d'amis par les "
-"visiteurs inconnus."
+#: ../../include/js_strings.php:15
+msgid "timeago.prefixAgo"
+msgstr "timeago.prefixAgo"
-#: ../../mod/newmember.php:32
-msgid ""
-"Set some public keywords for your default profile which describe your "
-"interests. We may be able to find other people with similar interests and "
-"suggest friendships."
-msgstr ""
-"Choisissez quelques mots-clé publics pour votre profil par défaut. Ils "
-"pourront ainsi décrire vos centres d'intérêt, et nous pourrons vous proposer"
-" des contacts qui les partagent."
+#: ../../include/js_strings.php:16
+msgid "timeago.suffixAgo"
+msgstr "timeago.suffixAgo"
-#: ../../mod/newmember.php:34
-msgid ""
-"Your Contacts page is your gateway to managing friendships and connecting "
-"with friends on other networks. Typically you enter their address or site "
-"URL in the <em>Connect</em> dialog."
-msgstr ""
-"Votre page Contacts est l'endroit rêvé pour gérer vos relations et contacts,"
-" et vous relier à des amis issus d'autres réseaux. En général, il suffit "
-"d'entrer leur adresse d'identité ou l'URL de leur site dans le champ "
-"<em>Relier</em>"
+#: ../../include/js_strings.php:17
+msgid "ago"
+msgstr "auparavant"
-#: ../../mod/newmember.php:36
-msgid ""
-"The Directory page lets you find other people in this network or other "
-"federated sites. Look for a <em>Connect</em> or <em>Follow</em> link on "
-"their profile page. Provide your own Identity Address if requested."
-msgstr ""
-"La page Annuaire vous permet de trouver d'autres personnes au sein de ce "
-"réseaux ou parmi d'autres sites fédérés. Cherchez un lien <em>Relier</em> ou"
-" <em>Suivre</em> sur leur profil. Vous pourrez avoir besoin d'indiquer votre"
-" adresse d'identité."
+#: ../../include/js_strings.php:18
+msgid "from now"
+msgstr "de maintenant"
-#: ../../mod/newmember.php:38
-msgid ""
-"Once you have made some friends, organize them into private conversation "
-"groups from the sidebar of your Contacts page and then you can interact with"
-" each group privately on your Network page."
-msgstr ""
-"Une fois que vous avez trouvé quelques amis, organisez-les en groupes de "
-"conversation privés depuis le panneau latéral de la page Contacts. Vous "
-"pourrez ensuite interagir avec chaque groupe de manière privée depuis la "
-"page Réseau."
+#: ../../include/js_strings.php:19
+msgid "less than a minute"
+msgstr "moins d'une minute"
-#: ../../mod/newmember.php:40
-msgid ""
-"Our <strong>help</strong> pages may be consulted for detail on other program"
-" features and resources."
-msgstr ""
-"Nos pages d'<strong>aide</strong> peuvent être consultées pour davantage de "
-"détails sur les fonctionnalités ou les ressources."
+#: ../../include/js_strings.php:20
+msgid "about a minute"
+msgstr "environ une minute"
-#: ../../mod/localtime.php:12 ../../include/event.php:11
-#: ../../include/bb2diaspora.php:227
-msgid "l F d, Y \\@ g:i A"
-msgstr "l F d, Y \\@ g:i A"
+#: ../../include/js_strings.php:21
+#, php-format
+msgid "%d minutes"
+msgstr "%d minutes"
-#: ../../mod/localtime.php:24
-msgid "Time Conversion"
-msgstr "Conversion temporelle"
+#: ../../include/js_strings.php:22
+msgid "about an hour"
+msgstr "environ une heure"
-#: ../../mod/localtime.php:26
-msgid ""
-"Friendika provides this service for sharing events with other networks and "
-"friends in unknown timezones."
-msgstr ""
-"Friendica fournit ce service pour partager des événements avec d'autres "
-"réseaux et amis indépendament de leur fuseau horaire."
+#: ../../include/js_strings.php:23
+#, php-format
+msgid "about %d hours"
+msgstr "environ %d heures"
-#: ../../mod/localtime.php:30
+#: ../../include/js_strings.php:24
+msgid "a day"
+msgstr "un jour"
+
+#: ../../include/js_strings.php:25
#, php-format
-msgid "UTC time: %s"
-msgstr "Temps UTC : %s"
+msgid "%d days"
+msgstr "%d jours"
+
+#: ../../include/js_strings.php:26
+msgid "about a month"
+msgstr "environ un mois"
-#: ../../mod/localtime.php:33
+#: ../../include/js_strings.php:27
#, php-format
-msgid "Current timezone: %s"
-msgstr "Zone de temps courante : %s"
+msgid "%d months"
+msgstr "%d mois"
+
+#: ../../include/js_strings.php:28
+msgid "about a year"
+msgstr "environ un an"
-#: ../../mod/localtime.php:36
+#: ../../include/js_strings.php:29
#, php-format
-msgid "Converted localtime: %s"
-msgstr "Temps local converti : %s"
+msgid "%d years"
+msgstr "%d années"
-#: ../../mod/localtime.php:41
-msgid "Please select your timezone:"
-msgstr "Sélectionner votre zone :"
+#: ../../include/js_strings.php:30
+msgid " "
+msgstr " "
-#: ../../mod/display.php:108
-msgid "Item has been removed."
-msgstr "Cet élément a été enlevé."
+#: ../../include/js_strings.php:31
+msgid "timeago.numbers"
+msgstr "timeago.numbers"
-#: ../../mod/editpost.php:17 ../../mod/editpost.php:27
-msgid "Item not found"
-msgstr "Élément introuvable"
+#: ../../include/message.php:18
+msgid "No recipient provided."
+msgstr "Pas de destinataire."
-#: ../../mod/editpost.php:32
-msgid "Edit post"
-msgstr "Éditer la publication"
+#: ../../include/message.php:23
+msgid "[no subject]"
+msgstr "[sans objet]"
-#: ../../mod/editpost.php:75 ../../include/conversation.php:800
-msgid "Post to Email"
-msgstr "Publier aussi par courriel"
+#: ../../include/message.php:42
+msgid "Unable to determine sender."
+msgstr "Impossible de déterminer l'émetteur."
-#: ../../mod/editpost.php:91 ../../mod/message.php:135
-#: ../../mod/message.php:268 ../../include/conversation.php:815
-msgid "Upload photo"
-msgstr "Joindre photo"
+#: ../../include/message.php:143
+msgid "Stored post could not be verified."
+msgstr "Le message stocké n'a pas pu être vérifié."
-#: ../../mod/editpost.php:92 ../../include/conversation.php:816
-msgid "Attach file"
-msgstr "Joindre fichier"
+#: ../../include/photo/photo_driver.php:637 ../../include/photos.php:51
+#: ../../mod/profile_photo.php:78 ../../mod/profile_photo.php:225
+#: ../../mod/profile_photo.php:336 ../../mod/photos.php:91
+#: ../../mod/photos.php:656 ../../mod/photos.php:678
+msgid "Profile Photos"
+msgstr "Photos du profil"
-#: ../../mod/editpost.php:93 ../../mod/message.php:136
-#: ../../mod/message.php:269 ../../include/conversation.php:817
-msgid "Insert web link"
-msgstr "Insérer lien web"
+#: ../../include/attach.php:98 ../../include/attach.php:129
+#: ../../include/attach.php:185 ../../include/attach.php:200
+#: ../../include/attach.php:233 ../../include/attach.php:247
+#: ../../include/attach.php:268 ../../include/attach.php:463
+#: ../../include/attach.php:541 ../../include/chat.php:113
+#: ../../include/photos.php:15 ../../include/items.php:3515
+#: ../../mod/common.php:35 ../../mod/events.php:140 ../../mod/thing.php:247
+#: ../../mod/thing.php:263 ../../mod/thing.php:298 ../../mod/invite.php:13
+#: ../../mod/invite.php:104 ../../mod/item.php:182 ../../mod/item.php:190
+#: ../../mod/menu.php:44 ../../mod/webpages.php:40 ../../mod/api.php:26
+#: ../../mod/api.php:31 ../../mod/bookmarks.php:46 ../../mod/chat.php:87
+#: ../../mod/chat.php:92 ../../mod/viewconnections.php:22
+#: ../../mod/viewconnections.php:27 ../../mod/delegate.php:6
+#: ../../mod/mitem.php:73 ../../mod/group.php:9 ../../mod/viewsrc.php:12
+#: ../../mod/editpost.php:13 ../../mod/connedit.php:182
+#: ../../mod/layouts.php:27 ../../mod/layouts.php:42 ../../mod/page.php:30
+#: ../../mod/page.php:80 ../../mod/network.php:12 ../../mod/profiles.php:152
+#: ../../mod/profiles.php:453 ../../mod/sources.php:66 ../../mod/setup.php:200
+#: ../../mod/new_channel.php:66 ../../mod/new_channel.php:97
+#: ../../mod/achievements.php:27 ../../mod/settings.php:493
+#: ../../mod/manage.php:6 ../../mod/mail.php:108 ../../mod/editlayout.php:48
+#: ../../mod/profile_photo.php:187 ../../mod/profile_photo.php:200
+#: ../../mod/connections.php:169 ../../mod/notifications.php:66
+#: ../../mod/blocks.php:29 ../../mod/blocks.php:44
+#: ../../mod/editwebpage.php:44 ../../mod/editwebpage.php:83
+#: ../../mod/poke.php:128 ../../mod/channel.php:88 ../../mod/channel.php:188
+#: ../../mod/channel.php:231 ../../mod/fsuggest.php:78
+#: ../../mod/editblock.php:48 ../../mod/filestorage.php:10
+#: ../../mod/filestorage.php:59 ../../mod/filestorage.php:75
+#: ../../mod/filestorage.php:98 ../../mod/suggest.php:26
+#: ../../mod/message.php:16 ../../mod/register.php:68 ../../mod/regmod.php:18
+#: ../../mod/authtest.php:13 ../../mod/photos.php:68 ../../mod/photos.php:526
+#: ../../mod/mood.php:119 ../../index.php:176 ../../index.php:351
+msgid "Permission denied."
+msgstr "Permission refusée."
-#: ../../mod/editpost.php:94
-msgid "Insert YouTube video"
-msgstr "Insérer une vidéo Youtube"
+#: ../../include/attach.php:180 ../../include/attach.php:228
+msgid "Item was not found."
+msgstr "Élément introuvable."
-#: ../../mod/editpost.php:95
-msgid "Insert Vorbis [.ogg] video"
-msgstr "Insérer un lien vidéo Vorbis [.ogg]"
+#: ../../include/attach.php:281
+msgid "No source file."
+msgstr "Pas de fichier source."
-#: ../../mod/editpost.php:96
-msgid "Insert Vorbis [.ogg] audio"
-msgstr "Insérer un lien audio Vorbis [.ogg]"
+#: ../../include/attach.php:298
+msgid "Cannot locate file to replace"
+msgstr "Impossible de trouver le fichier à remplacer."
-#: ../../mod/editpost.php:97 ../../include/conversation.php:820
-msgid "Set your location"
-msgstr "Définir votre localisation"
+#: ../../include/attach.php:316
+msgid "Cannot locate file to revise/update"
+msgstr "Impossible de trouver le fichier à corriger/mettre-à-jour"
-#: ../../mod/editpost.php:98 ../../include/conversation.php:821
-msgid "Clear browser location"
-msgstr "Effacer la localisation du navigateur"
+#: ../../include/attach.php:327
+#, php-format
+msgid "File exceeds size limit of %d"
+msgstr "Le fichier dépasse la taille limite de %d"
-#: ../../mod/editpost.php:100 ../../include/conversation.php:824
-msgid "Permission settings"
-msgstr "Réglages des permissions"
+#: ../../include/attach.php:339
+#, php-format
+msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
+msgstr "Vous avez atteint votre limite de %1$.0f méga-octets autorisés pour le stockage des pièces-jointes"
-#: ../../mod/editpost.php:108 ../../include/conversation.php:832
-msgid "CC: email addresses"
-msgstr "CC: adresses de courriel"
+#: ../../include/attach.php:423
+msgid "File upload failed. Possible system limit or action terminated."
+msgstr "Envoi du fichier impossible. Limite système ou action avortée."
-#: ../../mod/editpost.php:109 ../../include/conversation.php:833
-msgid "Public post"
-msgstr "Notice publique"
+#: ../../include/attach.php:435
+msgid "Stored file could not be verified. Upload failed."
+msgstr "Le fichier stocké n'a pu être vérifié. Envoi impossible."
-#: ../../mod/editpost.php:111 ../../include/conversation.php:835
-msgid "Example: bob@example.com, mary@example.com"
-msgstr "Exemple: bob@exemple.com, mary@exemple.com"
+#: ../../include/attach.php:479 ../../include/attach.php:496
+msgid "Path not available."
+msgstr "Chemin non disponible."
+
+#: ../../include/attach.php:546
+msgid "Empty pathname"
+msgstr "Chemin vide"
+
+#: ../../include/attach.php:564
+msgid "duplicate filename or path"
+msgstr "doublon de chemin ou de fichier"
+
+#: ../../include/attach.php:589
+msgid "Path not found."
+msgstr "Chemin introuvable."
-#: ../../mod/invite.php:35
+#: ../../include/attach.php:634
+msgid "mkdir failed."
+msgstr "mkdir a échoué."
+
+#: ../../include/attach.php:638
+msgid "database storage failed."
+msgstr "le stockage en BD a échoué"
+
+#: ../../include/bookmarks.php:31
#, php-format
-msgid "%s : Not a valid email address."
-msgstr "%s : Adresse de courriel invalide."
+msgid "%1$s's bookmarks"
+msgstr "Marque-pages de %1$s"
-#: ../../mod/invite.php:59
+#: ../../include/conversation.php:123
+msgid "channel"
+msgstr "canal"
+
+#: ../../include/conversation.php:161 ../../mod/like.php:134
#, php-format
-msgid "Please join my network on %s"
-msgstr "Vous pouvez rejoindre mon réseau sur %s"
+msgid "%1$s likes %2$s's %3$s"
+msgstr "%1$s aime %3$s de %2$s"
-#: ../../mod/invite.php:69
+#: ../../include/conversation.php:164 ../../mod/like.php:136
#, php-format
-msgid "%s : Message delivery failed."
-msgstr "%s : L'envoi du message a échoué."
+msgid "%1$s doesn't like %2$s's %3$s"
+msgstr "%1$s déteste %3$s de %2$s"
-#: ../../mod/invite.php:73
+#: ../../include/conversation.php:201
#, php-format
-msgid "%d message sent."
-msgid_plural "%d messages sent."
-msgstr[0] "%d message envoyé."
-msgstr[1] "%d messages envoyés."
+msgid "%1$s is now connected with %2$s"
+msgstr "%1$s est désormais relié à %2$s"
-#: ../../mod/invite.php:92
-msgid "You have no more invitations available"
-msgstr "Vous n'avez plus d'invitations disponibles"
+#: ../../include/conversation.php:236
+#, php-format
+msgid "%1$s poked %2$s"
+msgstr "%1$s a tapoté %2$s"
-#: ../../mod/invite.php:99
-msgid "Send invitations"
-msgstr "Envoyer des invitations"
+#: ../../include/conversation.php:258 ../../mod/mood.php:63
+#, php-format
+msgid "%1$s is currently %2$s"
+msgstr "%1$s est actuellement %2$s"
-#: ../../mod/invite.php:100
-msgid "Enter email addresses, one per line:"
-msgstr "Entrez les adresses email, une par ligne:"
+#: ../../include/conversation.php:631 ../../include/ItemObject.php:114
+msgid "Select"
+msgstr "Sélectionner"
-#: ../../mod/invite.php:101 ../../mod/message.php:132
-#: ../../mod/message.php:265
-msgid "Your message:"
-msgstr "Votre message:"
+#: ../../include/conversation.php:632 ../../include/ItemObject.php:108
+#: ../../mod/thing.php:236 ../../mod/group.php:176 ../../mod/admin.php:745
+#: ../../mod/connedit.php:359 ../../mod/settings.php:579
+#: ../../mod/filestorage.php:171 ../../mod/photos.php:1044
+msgid "Delete"
+msgstr "Supprimer"
+
+#: ../../include/conversation.php:642 ../../include/ItemObject.php:161
+msgid "Message is verified"
+msgstr "Message vérifié"
-#: ../../mod/invite.php:102
+#: ../../include/conversation.php:662
#, php-format
-msgid "Please join my social network on %s"
-msgstr "Vous pouvez rejoindre mon réseau social sur %s"
+msgid "View %s's profile @ %s"
+msgstr "Voir le profil de %s @ %s"
-#: ../../mod/invite.php:103
-msgid "To accept this invitation, please visit:"
-msgstr "Pour accepter cette invitation, rendez vous sur:"
+#: ../../include/conversation.php:676
+msgid "Categories:"
+msgstr "Catégories&nbsp;:"
-#: ../../mod/invite.php:104
-msgid "You will need to supply this invitation code: $invite_code"
-msgstr "Vous devrez fournir ce code d'invitation: $invite_code"
+#: ../../include/conversation.php:677
+msgid "Filed under:"
+msgstr "Classé sous&nbsp;:"
-#: ../../mod/invite.php:104
-msgid ""
-"Once you have registered, please connect with me via my profile page at:"
-msgstr "Une fois inscrit, connectez-vous à la page de mon profil sur:"
+#: ../../include/conversation.php:686 ../../include/ItemObject.php:226
+#, php-format
+msgid " from %s"
+msgstr "de %s"
+
+#: ../../include/conversation.php:689 ../../include/ItemObject.php:229
+#, php-format
+msgid "last edited: %s"
+msgstr "dernière édition&nbsp;: %s"
+
+#: ../../include/conversation.php:690 ../../include/ItemObject.php:230
+#, php-format
+msgid "Expires: %s"
+msgstr "Expire&nbsp;: %s"
+
+#: ../../include/conversation.php:705
+msgid "View in context"
+msgstr "Voir en contexte"
+
+#: ../../include/conversation.php:707 ../../include/conversation.php:1120
+#: ../../include/ItemObject.php:259 ../../mod/editpost.php:112
+#: ../../mod/mail.php:222 ../../mod/mail.php:336 ../../mod/editlayout.php:115
+#: ../../mod/editwebpage.php:153 ../../mod/editblock.php:129
+#: ../../mod/photos.php:975
+msgid "Please wait"
+msgstr "Merci de patienter"
-#: ../../mod/ping.php:146
-msgid "{0} wants to be your friend"
-msgstr "{0} souhaite être votre ami(e)"
+#: ../../include/conversation.php:834
+msgid "remove"
+msgstr "supprimer"
+
+#: ../../include/conversation.php:838
+msgid "Loading..."
+msgstr "Chargement..."
+
+#: ../../include/conversation.php:839
+msgid "Delete Selected Items"
+msgstr "Supprimer les éléments selectionnés"
-#: ../../mod/ping.php:151
-msgid "{0} sent you a message"
-msgstr "{0} vous a envoyé un message"
+#: ../../include/conversation.php:930
+msgid "View Source"
+msgstr "Voir source"
-#: ../../mod/ping.php:156
-msgid "{0} requested registration"
-msgstr "{0} a demandé à s'inscrire"
+#: ../../include/conversation.php:931
+msgid "Follow Thread"
+msgstr "Suivre discussion"
-#: ../../mod/ping.php:162
+#: ../../include/conversation.php:932
+msgid "View Status"
+msgstr "Voir état"
+
+#: ../../include/conversation.php:934
+msgid "View Photos"
+msgstr "Voir photos"
+
+#: ../../include/conversation.php:935
+msgid "Matrix Activity"
+msgstr "Activité de la matrice"
+
+#: ../../include/conversation.php:936
+msgid "Edit Contact"
+msgstr "Éditer contact"
+
+#: ../../include/conversation.php:937
+msgid "Send PM"
+msgstr "Message privé"
+
+#: ../../include/conversation.php:938
+msgid "Poke"
+msgstr "Tapoter"
+
+#: ../../include/conversation.php:1000
#, php-format
-msgid "{0} commented %s's post"
-msgstr "{0} a commenté une notice de %s"
+msgid "%s likes this."
+msgstr "%s aime ça."
-#: ../../mod/ping.php:167
+#: ../../include/conversation.php:1000
#, php-format
-msgid "{0} liked %s's post"
-msgstr "{0} a aimé une notice de %s"
+msgid "%s doesn't like this."
+msgstr "%s déteste ça."
-#: ../../mod/ping.php:172
+#: ../../include/conversation.php:1004
#, php-format
-msgid "{0} disliked %s's post"
-msgstr "{0} n'a pas aimé une notice de %s"
+msgid "<span %1$s>%2$d people</span> like this."
+msgid_plural "<span %1$s>%2$d people</span> like this."
+msgstr[0] ""
+msgstr[1] "<span %1$s>%2$d personne(s)</span> aime(nt) ça."
-#: ../../mod/ping.php:177
+#: ../../include/conversation.php:1006
#, php-format
-msgid "{0} is now friends with %s"
-msgstr "{0} est désormais ami(e) avec %s"
+msgid "<span %1$s>%2$d people</span> don't like this."
+msgid_plural "<span %1$s>%2$d people</span> don't like this."
+msgstr[0] ""
+msgstr[1] "<span %1$s>%2$d personne(s)</span> déteste(nt) ça."
-#: ../../mod/ping.php:182
-msgid "{0} posted"
-msgstr "{0} a posté"
+#: ../../include/conversation.php:1012
+msgid "and"
+msgstr "et"
-#: ../../mod/ping.php:187
+#: ../../include/conversation.php:1015
#, php-format
-msgid "{0} tagged %s's post with #%s"
-msgstr "{0} a taggué la notice de %s avec #%s"
+msgid ", and %d other people"
+msgid_plural ", and %d other people"
+msgstr[0] ""
+msgstr[1] ", et %d autre(s) personne(s)"
-#: ../../mod/contacts.php:62 ../../mod/contacts.php:133
-msgid "Could not access contact record."
-msgstr "Impossible d'accéder à l'enregistrement du contact."
+#: ../../include/conversation.php:1016
+#, php-format
+msgid "%s like this."
+msgstr "%s aime ça."
-#: ../../mod/contacts.php:76
-msgid "Could not locate selected profile."
-msgstr "Impossible de localiser le profil séléctionné."
+#: ../../include/conversation.php:1016
+#, php-format
+msgid "%s don't like this."
+msgstr "%s déteste ça."
-#: ../../mod/contacts.php:97
-msgid "Contact updated."
-msgstr "Contact mis-à-jour."
+#: ../../include/conversation.php:1066
+msgid "Visible to <strong>everybody</strong>"
+msgstr "Visible par <strong>tout le monde</strong>"
-#: ../../mod/contacts.php:99 ../../mod/dfrn_request.php:409
-msgid "Failed to update contact record."
-msgstr "Échec de mise-à-jour du contact."
+#: ../../include/conversation.php:1067 ../../mod/mail.php:171
+#: ../../mod/mail.php:269
+msgid "Please enter a link URL:"
+msgstr "Merci d'entrer l'URL d'un lien&nbsp;:"
-#: ../../mod/contacts.php:155
-msgid "Contact has been blocked"
-msgstr "Le contact a été bloqué"
+#: ../../include/conversation.php:1068
+msgid "Please enter a video link/URL:"
+msgstr "Merci d'entrer l'URL d'une video&nbsp;:"
-#: ../../mod/contacts.php:155
-msgid "Contact has been unblocked"
-msgstr "Le contact n'est plus bloqué"
+#: ../../include/conversation.php:1069
+msgid "Please enter an audio link/URL:"
+msgstr "Merci d'entrer l'URL d'un contenu audio&nsbp;:"
-#: ../../mod/contacts.php:169
-msgid "Contact has been ignored"
-msgstr "Le contact a été ignoré"
+#: ../../include/conversation.php:1070
+msgid "Tag term:"
+msgstr "Étiquette&nbsp;:"
-#: ../../mod/contacts.php:169
-msgid "Contact has been unignored"
-msgstr "Le contact n'est plus ignoré"
+#: ../../include/conversation.php:1071 ../../mod/filer.php:35
+msgid "Save to Folder:"
+msgstr "Classer dans Dossier&nbsp;:"
-#: ../../mod/contacts.php:190
-msgid "stopped following"
-msgstr "retiré de la liste de suivi"
+#: ../../include/conversation.php:1072
+msgid "Where are you right now?"
+msgstr "Où êtes-vous présentement?"
-#: ../../mod/contacts.php:211
-msgid "Contact has been removed."
-msgstr "Ce contact a été retiré."
+#: ../../include/conversation.php:1073 ../../mod/editpost.php:52
+#: ../../mod/mail.php:172 ../../mod/mail.php:270
+msgid "Expires YYYY-MM-DD HH:MM"
+msgstr "Expire YYYY-MM-DD HH:MM"
-#: ../../mod/contacts.php:232
-#, php-format
-msgid "You are mutual friends with %s"
-msgstr "Vous êtes ami (et réciproquement) avec %s"
+#: ../../include/conversation.php:1083 ../../include/ItemObject.php:557
+#: ../../mod/webpages.php:122 ../../mod/editpost.php:132
+#: ../../mod/editlayout.php:136 ../../mod/editwebpage.php:177
+#: ../../mod/editblock.php:151 ../../mod/photos.php:995
+msgid "Preview"
+msgstr "Aperçu"
-#: ../../mod/contacts.php:236
-#, php-format
-msgid "You are sharing with %s"
-msgstr "Vous partagez avec %s"
+#: ../../include/conversation.php:1097 ../../mod/photos.php:974
+msgid "Share"
+msgstr "Partager"
-#: ../../mod/contacts.php:241
-#, php-format
-msgid "%s is sharing with you"
-msgstr "%s partage avec vous"
+#: ../../include/conversation.php:1099 ../../mod/editwebpage.php:140
+msgid "Page link title"
+msgstr "Titre de la page liée"
-#: ../../mod/contacts.php:258
-msgid "Private communications are not available for this contact."
-msgstr "Les communications privées ne sont pas disponibles pour ce contact."
+#: ../../include/conversation.php:1101 ../../mod/editpost.php:104
+#: ../../mod/mail.php:219 ../../mod/mail.php:332 ../../mod/editlayout.php:107
+#: ../../mod/editwebpage.php:145 ../../mod/editblock.php:121
+msgid "Upload photo"
+msgstr "Téléverser photo"
-#: ../../mod/contacts.php:261
-msgid "Never"
-msgstr "Jamais"
+#: ../../include/conversation.php:1102
+msgid "upload photo"
+msgstr "téléverser photo"
-#: ../../mod/contacts.php:265
-msgid "(Update was successful)"
-msgstr "(Mise à jour effectuée avec succès)"
+#: ../../include/conversation.php:1103 ../../mod/editpost.php:105
+#: ../../mod/mail.php:220 ../../mod/mail.php:333 ../../mod/editlayout.php:108
+#: ../../mod/editwebpage.php:146 ../../mod/editblock.php:122
+msgid "Attach file"
+msgstr "Attacher fichier"
-#: ../../mod/contacts.php:265
-msgid "(Update was not successful)"
-msgstr "(Mise à jour échouée)"
+#: ../../include/conversation.php:1104
+msgid "attach file"
+msgstr "attacher fichier"
-#: ../../mod/contacts.php:267
-msgid "Suggest friends"
-msgstr "Suggérer amitié/contact"
+#: ../../include/conversation.php:1105 ../../mod/editpost.php:106
+#: ../../mod/mail.php:221 ../../mod/mail.php:334 ../../mod/editlayout.php:109
+#: ../../mod/editwebpage.php:147 ../../mod/editblock.php:123
+msgid "Insert web link"
+msgstr "Insérer lien web"
-#: ../../mod/contacts.php:271
-#, php-format
-msgid "Network type: %s"
-msgstr "Type de réseau %s"
+#: ../../include/conversation.php:1106
+msgid "web link"
+msgstr "lien web"
-#: ../../mod/contacts.php:274
-#, php-format
-msgid "%d contact in common"
-msgid_plural "%d contacts in common"
-msgstr[0] "%d contact en commun"
-msgstr[1] "%d contacts en commun"
+#: ../../include/conversation.php:1107
+msgid "Insert video link"
+msgstr "Insérer lien vidéo"
-#: ../../mod/contacts.php:279
-msgid "View all contacts"
-msgstr "Voir tous les contacts"
+#: ../../include/conversation.php:1108
+msgid "video link"
+msgstr "lien vidéo"
-#: ../../mod/contacts.php:284 ../../mod/contacts.php:331
-#: ../../mod/admin.php:470
-msgid "Unblock"
-msgstr "Débloquer"
+#: ../../include/conversation.php:1109
+msgid "Insert audio link"
+msgstr "Insérer lien audio"
-#: ../../mod/contacts.php:284 ../../mod/contacts.php:331
-#: ../../mod/admin.php:469
-msgid "Block"
-msgstr "Bloquer"
+#: ../../include/conversation.php:1110
+msgid "audio link"
+msgstr "lien audio"
-#: ../../mod/contacts.php:289 ../../mod/contacts.php:332
-msgid "Unignore"
-msgstr "Ne plus ignorer"
+#: ../../include/conversation.php:1111 ../../mod/editpost.php:110
+#: ../../mod/editlayout.php:113 ../../mod/editwebpage.php:151
+#: ../../mod/editblock.php:127
+msgid "Set your location"
+msgstr "Spécifier votre localisation"
-#: ../../mod/contacts.php:289 ../../mod/contacts.php:332
-#: ../../mod/notifications.php:47 ../../mod/notifications.php:143
-#: ../../mod/notifications.php:187
-msgid "Ignore"
-msgstr "Ignorer"
+#: ../../include/conversation.php:1112
+msgid "set location"
+msgstr "spécifier localisation"
-#: ../../mod/contacts.php:294
-msgid "Repair"
-msgstr "Réparer"
+#: ../../include/conversation.php:1113 ../../mod/editpost.php:111
+#: ../../mod/editlayout.php:114 ../../mod/editwebpage.php:152
+#: ../../mod/editblock.php:128
+msgid "Clear browser location"
+msgstr "Nettoyer la localisation du navigateur"
-#: ../../mod/contacts.php:304
-msgid "Contact Editor"
-msgstr "Éditeur de contact"
+#: ../../include/conversation.php:1114
+msgid "clear location"
+msgstr "nettoyer localisation"
-#: ../../mod/contacts.php:307
-msgid "Profile Visibility"
-msgstr "Visibilité du profil"
+#: ../../include/conversation.php:1116 ../../mod/editpost.php:124
+#: ../../mod/editlayout.php:127 ../../mod/editwebpage.php:169
+#: ../../mod/editblock.php:142
+msgid "Set title"
+msgstr "Spécifier le titre"
-#: ../../mod/contacts.php:308
-#, php-format
+#: ../../include/conversation.php:1119 ../../mod/editpost.php:126
+#: ../../mod/editlayout.php:130 ../../mod/editwebpage.php:171
+#: ../../mod/editblock.php:145
+msgid "Categories (comma-separated list)"
+msgstr "Catégories (séparées par des virgules)"
+
+#: ../../include/conversation.php:1121 ../../mod/editpost.php:113
+#: ../../mod/editlayout.php:116 ../../mod/editwebpage.php:154
+#: ../../mod/editblock.php:130
+msgid "Permission settings"
+msgstr "Permissions"
+
+#: ../../include/conversation.php:1122
+msgid "permissions"
+msgstr "permissions"
+
+#: ../../include/conversation.php:1130 ../../mod/editpost.php:121
+#: ../../mod/editlayout.php:124 ../../mod/editwebpage.php:164
+#: ../../mod/editblock.php:139
+msgid "Public post"
+msgstr "Contenu public"
+
+#: ../../include/conversation.php:1132 ../../mod/editpost.php:127
+#: ../../mod/editlayout.php:131 ../../mod/editwebpage.php:172
+#: ../../mod/editblock.php:146
+msgid "Example: bob@example.com, mary@example.com"
+msgstr "Exemple: robert@exemple.com, marie@exemple.com"
+
+#: ../../include/conversation.php:1145 ../../mod/editpost.php:138
+#: ../../mod/mail.php:226 ../../mod/mail.php:339 ../../mod/editlayout.php:141
+#: ../../mod/editwebpage.php:182 ../../mod/editblock.php:156
+msgid "Set expiration date"
+msgstr "Définir la date d'expiration"
+
+#: ../../include/conversation.php:1147 ../../include/ItemObject.php:560
+#: ../../mod/editpost.php:140 ../../mod/mail.php:228 ../../mod/mail.php:341
+msgid "Encrypt text"
+msgstr "Chiffrer le texte"
+
+#: ../../include/conversation.php:1149 ../../mod/editpost.php:142
+msgid "OK"
+msgstr "Ok"
+
+#: ../../include/conversation.php:1150 ../../mod/tagrm.php:11
+#: ../../mod/tagrm.php:94 ../../mod/editpost.php:143
+#: ../../mod/settings.php:517 ../../mod/settings.php:543
+#: ../../mod/fbrowser.php:82 ../../mod/fbrowser.php:117
+msgid "Cancel"
+msgstr "Annuler"
+
+#: ../../include/conversation.php:1381
+msgid "Commented Order"
+msgstr "Dans l'ordre des commentaires"
+
+#: ../../include/conversation.php:1384
+msgid "Sort by Comment Date"
+msgstr "Trier par date de dernier commentaire"
+
+#: ../../include/conversation.php:1387
+msgid "Posted Order"
+msgstr "Dans l'ordre des publications"
+
+#: ../../include/conversation.php:1390
+msgid "Sort by Post Date"
+msgstr "Trier par date de publication"
+
+#: ../../include/conversation.php:1394
+msgid "Personal"
+msgstr "Personnel"
+
+#: ../../include/conversation.php:1397
+msgid "Posts that mention or involve you"
+msgstr "Publications qui vous mentionnent ou vous concernent d'une manière ou d'une autre"
+
+#: ../../include/conversation.php:1400 ../../mod/menu.php:61
+#: ../../mod/connections.php:211
+msgid "New"
+msgstr "Nouveautés"
+
+#: ../../include/conversation.php:1403
+msgid "Activity Stream - by date"
+msgstr "Flux d'activité - par date"
+
+#: ../../include/conversation.php:1410
+msgid "Starred"
+msgstr "Mis en avant"
+
+#: ../../include/conversation.php:1413
+msgid "Favourite Posts"
+msgstr "Publications préférées"
+
+#: ../../include/conversation.php:1420
+msgid "Spam"
+msgstr "Spam"
+
+#: ../../include/conversation.php:1423
+msgid "Posts flagged as SPAM"
+msgstr "Publications marquées comme indésirables"
+
+#: ../../include/conversation.php:1454
+msgid "Channel"
+msgstr "Canal"
+
+#: ../../include/conversation.php:1457
+msgid "Status Messages and Posts"
+msgstr "Messages d'état et contributions"
+
+#: ../../include/conversation.php:1466
+msgid "About"
+msgstr "À propos"
+
+#: ../../include/conversation.php:1469
+msgid "Profile Details"
+msgstr "Détails du profil"
+
+#: ../../include/conversation.php:1478 ../../include/photos.php:302
+msgid "Photo Albums"
+msgstr "Albums photo"
+
+#: ../../include/conversation.php:1487
+msgid "Files and Storage"
+msgstr "Fichiers et Stockage"
+
+#: ../../include/conversation.php:1496 ../../include/conversation.php:1499
+msgid "Chatrooms"
+msgstr "Salons"
+
+#: ../../include/conversation.php:1509
+msgid "Events and Calendar"
+msgstr "Événements et agenda"
+
+#: ../../include/conversation.php:1517
+msgid "Saved Bookmarks"
+msgstr "Marque-pages sauvegardés"
+
+#: ../../include/conversation.php:1528
+msgid "Manage Webpages"
+msgstr "Gérer les pages web"
+
+#: ../../include/identity.php:29 ../../mod/item.php:1177
+msgid "Unable to obtain identity information from database"
+msgstr "Impossible d'obtenir les données d'identité depuis la base de données"
+
+#: ../../include/identity.php:62
+msgid "Empty name"
+msgstr "Nom vide"
+
+#: ../../include/identity.php:64
+msgid "Name too long"
+msgstr "Nom trop long"
+
+#: ../../include/identity.php:143
+msgid "No account identifier"
+msgstr "Pas d'identifiant de compte"
+
+#: ../../include/identity.php:153
+msgid "Nickname is required."
+msgstr "Un surnom est requis."
+
+#: ../../include/identity.php:167
msgid ""
-"Please choose the profile you would like to display to %s when viewing your "
-"profile securely."
-msgstr ""
-"Merci de choisir le profil que vous souhaitez montrer à %s lorsqu'il vous "
-"rend visite de manière sécurisée."
+"Nickname has unsupported characters or is already being used on this site."
+msgstr "Le surnom contient des caractères interdits, ou est déjà pris sur ce site."
-#: ../../mod/contacts.php:309
-msgid "Contact Information / Notes"
-msgstr "Informations de contact / Notes"
+#: ../../include/identity.php:226
+msgid "Unable to retrieve created identity"
+msgstr "Impossible de récupérer l'identité créée"
-#: ../../mod/contacts.php:310
-msgid "Edit contact notes"
-msgstr "Editer les notes des contacts"
+#: ../../include/identity.php:285
+msgid "Default Profile"
+msgstr "Profil par défaut"
-#: ../../mod/contacts.php:315 ../../mod/contacts.php:430
-#: ../../mod/viewconnections.php:61
-#, php-format
-msgid "Visit %s's profile [%s]"
-msgstr "Visiter le profil de %s [%s]"
+#: ../../include/identity.php:477
+msgid "Requested channel is not available."
+msgstr "Canal demandé non-disponible."
-#: ../../mod/contacts.php:316
-msgid "Block/Unblock contact"
-msgstr "Bloquer/débloquer ce contact"
+#: ../../include/identity.php:489
+msgid " Sorry, you don't have the permission to view this profile. "
+msgstr "Désolé, mais vous n'avez pas l'autorisation de voir ce profil."
-#: ../../mod/contacts.php:317
-msgid "Ignore contact"
-msgstr "Ignorer ce contact"
+#: ../../include/identity.php:524 ../../mod/webpages.php:8
+#: ../../mod/connect.php:13 ../../mod/layouts.php:8
+#: ../../mod/achievements.php:8 ../../mod/blocks.php:10
+#: ../../mod/profile.php:16 ../../mod/filestorage.php:40
+msgid "Requested profile is not available."
+msgstr "Profil demandé inaccessible."
-#: ../../mod/contacts.php:318
-msgid "Repair URL settings"
-msgstr "Réparer les réglages d'URL"
+#: ../../include/identity.php:642 ../../mod/profiles.php:603
+msgid "Change profile photo"
+msgstr "Changer la photo du profil"
-#: ../../mod/contacts.php:319
-msgid "View conversations"
-msgstr "Voir les conversations"
+#: ../../include/identity.php:648
+msgid "Profiles"
+msgstr "Profils"
-#: ../../mod/contacts.php:321
-msgid "Delete contact"
-msgstr "Effacer ce contact"
+#: ../../include/identity.php:648
+msgid "Manage/edit profiles"
+msgstr "Gérer/éditer profils"
-#: ../../mod/contacts.php:325
-msgid "Last update:"
-msgstr "Dernière mise-à-jour :"
+#: ../../include/identity.php:649 ../../mod/profiles.php:604
+msgid "Create New Profile"
+msgstr "Créer un nouveau profil"
-#: ../../mod/contacts.php:326
-msgid "Update public posts"
-msgstr "Met ses entrées publiques à jour: "
+#: ../../include/identity.php:652
+msgid "Edit Profile"
+msgstr "Éditer profil"
-#: ../../mod/contacts.php:328 ../../mod/admin.php:701
-msgid "Update now"
-msgstr "Mettre à jour"
+#: ../../include/identity.php:663 ../../mod/profiles.php:615
+msgid "Profile Image"
+msgstr "Image du profil"
-#: ../../mod/contacts.php:335
-msgid "Currently blocked"
-msgstr "Actuellement bloqué"
+#: ../../include/identity.php:666 ../../mod/profiles.php:618
+msgid "visible to everybody"
+msgstr "visible par tous"
-#: ../../mod/contacts.php:336
-msgid "Currently ignored"
-msgstr "Actuellement ignoré"
+#: ../../include/identity.php:667 ../../mod/profiles.php:619
+msgid "Edit visibility"
+msgstr "Éditer la visibilité"
-#: ../../mod/contacts.php:364 ../../include/nav.php:130
-msgid "Contacts"
-msgstr "Contacts"
+#: ../../include/identity.php:681 ../../include/identity.php:908
+#: ../../mod/directory.php:159
+msgid "Gender:"
+msgstr "Sexe&nbsp;:"
-#: ../../mod/contacts.php:366
-msgid "Show Blocked Connections"
-msgstr "Montrer les connexions bloquées"
+#: ../../include/identity.php:682 ../../include/identity.php:928
+#: ../../mod/directory.php:161
+msgid "Status:"
+msgstr "État&nbsp;:"
-#: ../../mod/contacts.php:366
-msgid "Hide Blocked Connections"
-msgstr "Cacher les connexion bloquées"
+#: ../../include/identity.php:683 ../../include/identity.php:939
+#: ../../mod/directory.php:163
+msgid "Homepage:"
+msgstr "Site web&nbsp;:"
-#: ../../mod/contacts.php:368
-msgid "Search your contacts"
-msgstr "Rechercher dans vos contacts"
+#: ../../include/identity.php:684 ../../mod/dirprofile.php:157
+msgid "Online Now"
+msgstr "Connecté"
-#: ../../mod/contacts.php:369 ../../mod/directory.php:65
-msgid "Finding: "
-msgstr "Trouvé: "
+#: ../../include/identity.php:752 ../../include/identity.php:832
+#: ../../mod/ping.php:262
+msgid "g A l F d"
+msgstr "H:i l d F"
-#: ../../mod/contacts.php:370 ../../mod/directory.php:67
-#: ../../include/contact_widgets.php:34
-msgid "Find"
-msgstr "Trouver"
+#: ../../include/identity.php:753 ../../include/identity.php:833
+msgid "F d"
+msgstr "d F"
-#: ../../mod/contacts.php:406
-msgid "Mutual Friendship"
-msgstr "Relation réciproque"
+#: ../../include/identity.php:798 ../../include/identity.php:873
+#: ../../mod/ping.php:284
+msgid "[today]"
+msgstr "[aujourd'hui]"
-#: ../../mod/contacts.php:410
-msgid "is a fan of yours"
-msgstr "est un fan de vous"
+#: ../../include/identity.php:810
+msgid "Birthday Reminders"
+msgstr "Rappels d'anniversaires"
-#: ../../mod/contacts.php:414
-msgid "you are a fan of"
-msgstr "vous êtes un fan de"
+#: ../../include/identity.php:811
+msgid "Birthdays this week:"
+msgstr "Anniversaires cette semaine&nbsp;:"
-#: ../../mod/contacts.php:431 ../../include/Contact.php:129
-#: ../../include/conversation.php:679
-msgid "Edit contact"
-msgstr "Éditer le contact"
+#: ../../include/identity.php:866
+msgid "[No description]"
+msgstr "[Pas de description]"
-#: ../../mod/lockview.php:39
-msgid "Remote privacy information not available."
-msgstr "Informations de confidentialité indisponibles."
+#: ../../include/identity.php:884
+msgid "Event Reminders"
+msgstr "Rappels d'événements"
-#: ../../mod/lockview.php:43
-msgid "Visible to:"
-msgstr "Visible par:"
+#: ../../include/identity.php:885
+msgid "Events this week:"
+msgstr "Événements cette semaine&nbsp;:"
-#: ../../mod/register.php:53
-msgid "An invitation is required."
-msgstr "Une invitation est requise."
+#: ../../include/identity.php:898 ../../include/identity.php:982
+#: ../../mod/profperm.php:107
+msgid "Profile"
+msgstr "Profil"
-#: ../../mod/register.php:58
-msgid "Invitation could not be verified."
-msgstr "L'invitation fournie n'a pu être validée."
+#: ../../include/identity.php:906 ../../mod/settings.php:924
+msgid "Full Name:"
+msgstr "Nom complet&nbsp;:"
-#: ../../mod/register.php:66
-msgid "Invalid OpenID url"
-msgstr "Adresse OpenID invalide"
+#: ../../include/identity.php:913
+msgid "j F, Y"
+msgstr "j F Y"
-#: ../../mod/register.php:81
-msgid "Please enter the required information."
-msgstr "Entrez les informations requises."
+#: ../../include/identity.php:914
+msgid "j F"
+msgstr "j F"
-#: ../../mod/register.php:95
-msgid "Please use a shorter name."
-msgstr "Utilisez un nom plus court."
+#: ../../include/identity.php:921
+msgid "Birthday:"
+msgstr "Date de naissance&nbsp;:"
-#: ../../mod/register.php:97
-msgid "Name too short."
-msgstr "Nom trop court."
+#: ../../include/identity.php:925
+msgid "Age:"
+msgstr "Age&nbsp;:"
-#: ../../mod/register.php:112
-msgid "That doesn't appear to be your full (First Last) name."
-msgstr "Ceci ne semble pas être votre nom complet (Prénom Nom)."
+#: ../../include/identity.php:934
+#, php-format
+msgid "for %1$d %2$s"
+msgstr "depuis %1$d %2$s"
-#: ../../mod/register.php:117
-msgid "Your email domain is not among those allowed on this site."
-msgstr "Votre domaine de courriel n'est pas autorisé sur ce site."
+#: ../../include/identity.php:937 ../../mod/profiles.php:526
+msgid "Sexual Preference:"
+msgstr "Orientation sexuelle&nbsp;:"
-#: ../../mod/register.php:120
-msgid "Not a valid email address."
-msgstr "Ceci n'est pas une adresse courriel valide."
+#: ../../include/identity.php:941 ../../mod/profiles.php:528
+msgid "Hometown:"
+msgstr "Ville natale&nbsp;:"
-#: ../../mod/register.php:130
-msgid "Cannot use that email."
-msgstr "Impossible d'utiliser ce courriel."
+#: ../../include/identity.php:943
+msgid "Tags:"
+msgstr "Tags:"
-#: ../../mod/register.php:136
-msgid ""
-"Your \"nickname\" can only contain \"a-z\", \"0-9\", \"-\", and \"_\", and "
-"must also begin with a letter."
-msgstr ""
-"Votre \"pseudo\" peut seulement contenir les caractères \"a-z\", \"0-9\", "
-"\"-\", and \"_\", et doit commencer par une lettre."
+#: ../../include/identity.php:945 ../../mod/profiles.php:529
+msgid "Political Views:"
+msgstr "Opinions politiques&nbsp;:"
-#: ../../mod/register.php:142 ../../mod/register.php:243
-msgid "Nickname is already registered. Please choose another."
-msgstr "Pseudo déjà utilisé. Merci d'en choisir un autre."
+#: ../../include/identity.php:947
+msgid "Religion:"
+msgstr "Religion&nbsp;:"
-#: ../../mod/register.php:161
-msgid "SERIOUS ERROR: Generation of security keys failed."
-msgstr "ERREUR SÉRIEUSE: La génération des clés de sécurité a échoué."
+#: ../../include/identity.php:949 ../../mod/directory.php:165
+msgid "About:"
+msgstr "À propos&nbsp;:"
-#: ../../mod/register.php:229
-msgid "An error occurred during registration. Please try again."
-msgstr "Une erreur est survenue lors de l'inscription. Merci de recommencer."
+#: ../../include/identity.php:951
+msgid "Hobbies/Interests:"
+msgstr "Occupations/Centres d'intérêt&nbsp;:"
-#: ../../mod/register.php:265
-msgid "An error occurred creating your default profile. Please try again."
-msgstr ""
-"Une erreur est survenue lors de la création de votre profil par défaut. "
-"Merci de recommencer."
+#: ../../include/identity.php:953 ../../mod/profiles.php:532
+msgid "Likes:"
+msgstr "Aime&nbsp;:"
-#: ../../mod/register.php:377
-msgid ""
-"Registration successful. Please check your email for further instructions."
-msgstr ""
-"Inscription réussie. Vérifiez vos emails pour la suite des instructions."
+#: ../../include/identity.php:955 ../../mod/profiles.php:533
+msgid "Dislikes:"
+msgstr "N'aime pas&nbsp;:"
-#: ../../mod/register.php:381
-msgid "Failed to send email message. Here is the message that failed."
-msgstr "Impossible d'envoyer un email. Voici le message qui a échoué."
+#: ../../include/identity.php:958
+msgid "Contact information and Social Networks:"
+msgstr "Coordonnées et réseaux sociaux&nbsp;:"
-#: ../../mod/register.php:386
-msgid "Your registration can not be processed."
-msgstr "Votre inscription ne peut être traitée."
+#: ../../include/identity.php:960
+msgid "My other channels:"
+msgstr "Mes autres canaux&nbsp;:"
+
+#: ../../include/identity.php:962
+msgid "Musical interests:"
+msgstr "Goûts musicaux&nbsp;:"
+
+#: ../../include/identity.php:964
+msgid "Books, literature:"
+msgstr "Lectures, goûts littéraires&nbsp;:"
+
+#: ../../include/identity.php:966
+msgid "Television:"
+msgstr "Télévision&nbsp;:"
+
+#: ../../include/identity.php:968
+msgid "Film/dance/culture/entertainment:"
+msgstr "Cinéma/danse/culture/divertissement&nsbp;:"
+
+#: ../../include/identity.php:970
+msgid "Love/Romance:"
+msgstr "Vie sentimentale/amoureuse&nbsp;:"
+
+#: ../../include/identity.php:972
+msgid "Work/employment:"
+msgstr "Travail&nbsp;:"
+
+#: ../../include/identity.php:974
+msgid "School/education:"
+msgstr "Cursus&nbsp;:"
+
+#: ../../include/ItemObject.php:89 ../../mod/photos.php:847
+msgid "Private Message"
+msgstr "Message Privé"
+
+#: ../../include/ItemObject.php:96 ../../include/page_widgets.php:8
+#: ../../mod/thing.php:235 ../../mod/menu.php:59 ../../mod/webpages.php:118
+#: ../../mod/editpost.php:103 ../../mod/layouts.php:102
+#: ../../mod/settings.php:578 ../../mod/editlayout.php:106
+#: ../../mod/blocks.php:93 ../../mod/editwebpage.php:144
+#: ../../mod/editblock.php:120 ../../mod/filestorage.php:170
+msgid "Edit"
+msgstr "Éditer"
+
+#: ../../include/ItemObject.php:118
+msgid "save to folder"
+msgstr "classer dans un dossier"
-#: ../../mod/register.php:423
+#: ../../include/ItemObject.php:146
+msgid "add star"
+msgstr "mettre en avant"
+
+#: ../../include/ItemObject.php:147
+msgid "remove star"
+msgstr "ne plus mettre en avant"
+
+#: ../../include/ItemObject.php:148
+msgid "toggle star status"
+msgstr "(dé)marquer"
+
+#: ../../include/ItemObject.php:152
+msgid "starred"
+msgstr "mis en avant"
+
+#: ../../include/ItemObject.php:169
+msgid "add tag"
+msgstr "étiquetter"
+
+#: ../../include/ItemObject.php:184 ../../mod/photos.php:972
+msgid "I like this (toggle)"
+msgstr "J'aime (oui/non)"
+
+#: ../../include/ItemObject.php:184 ../../include/taxonomy.php:254
+msgid "like"
+msgstr "aime"
+
+#: ../../include/ItemObject.php:185 ../../mod/photos.php:973
+msgid "I don't like this (toggle)"
+msgstr "Je déteste (oui/non)"
+
+#: ../../include/ItemObject.php:185 ../../include/taxonomy.php:255
+msgid "dislike"
+msgstr "déteste"
+
+#: ../../include/ItemObject.php:187
+msgid "Share this"
+msgstr "Partager ça"
+
+#: ../../include/ItemObject.php:187
+msgid "share"
+msgstr "partage"
+
+#: ../../include/ItemObject.php:211 ../../include/ItemObject.php:212
#, php-format
-msgid "Registration request at %s"
-msgstr "Demande d'inscription à %s"
+msgid "View %s's profile - %s"
+msgstr "Voir le profil de %s - %s"
-#: ../../mod/register.php:432
-msgid "Your registration is pending approval by the site owner."
-msgstr "Votre inscription attend une validation du propriétaire du site."
+#: ../../include/ItemObject.php:213
+msgid "to"
+msgstr "à"
-#: ../../mod/register.php:481
-msgid ""
-"You may (optionally) fill in this form via OpenID by supplying your OpenID "
-"and clicking 'Register'."
-msgstr ""
-"Vous pouvez (si vous le souhaitez) remplir ce formulaire via OpenID. "
-"Fournissez votre OpenID et cliquez \"S'inscrire\"."
+#: ../../include/ItemObject.php:214
+msgid "via"
+msgstr "via"
-#: ../../mod/register.php:482
-msgid ""
-"If you are not familiar with OpenID, please leave that field blank and fill "
-"in the rest of the items."
-msgstr ""
-"Si vous n'êtes pas familier avec OpenID, laissez ce champ vide et remplissez"
-" le reste."
+#: ../../include/ItemObject.php:215
+msgid "Wall-to-Wall"
+msgstr "Mur-mur"
-#: ../../mod/register.php:483
-msgid "Your OpenID (optional): "
-msgstr "Votre OpenID (facultatif): "
+#: ../../include/ItemObject.php:216
+msgid "via Wall-To-Wall:"
+msgstr "par Mur-mur&nbsp;:"
-#: ../../mod/register.php:497
-msgid "Include your profile in member directory?"
-msgstr "Inclure votre profil dans l'annuaire des membres?"
+#: ../../include/ItemObject.php:250
+msgid "Bookmark Links"
+msgstr "Transformer les liens en marque-pages"
-#: ../../mod/register.php:512
-msgid "Membership on this site is by invitation only."
-msgstr "L'inscription à ce site se fait uniquement sur invitation."
+#: ../../include/ItemObject.php:280
+#, php-format
+msgid "%d comment"
+msgid_plural "%d comments"
+msgstr[0] "%d commentaire"
+msgstr[1] "%d commentaires"
-#: ../../mod/register.php:513
-msgid "Your invitation ID: "
-msgstr "Votre ID d'invitation: "
+#: ../../include/ItemObject.php:545 ../../mod/photos.php:991
+#: ../../mod/photos.php:1078
+msgid "This is you"
+msgstr "C'est vous"
-#: ../../mod/register.php:516 ../../mod/admin.php:297
-msgid "Registration"
-msgstr "Inscription"
+#: ../../include/ItemObject.php:548 ../../mod/events.php:469
+#: ../../mod/thing.php:283 ../../mod/thing.php:326 ../../mod/invite.php:156
+#: ../../mod/chat.php:162 ../../mod/chat.php:192 ../../mod/connect.php:92
+#: ../../mod/group.php:81 ../../mod/admin.php:431 ../../mod/admin.php:738
+#: ../../mod/admin.php:878 ../../mod/admin.php:1077 ../../mod/admin.php:1164
+#: ../../mod/connedit.php:437 ../../mod/profiles.php:506
+#: ../../mod/sources.php:104 ../../mod/sources.php:138 ../../mod/setup.php:304
+#: ../../mod/setup.php:347 ../../mod/settings.php:516
+#: ../../mod/settings.php:628 ../../mod/settings.php:656
+#: ../../mod/settings.php:680 ../../mod/settings.php:752
+#: ../../mod/settings.php:916 ../../mod/import.php:387 ../../mod/mail.php:223
+#: ../../mod/mail.php:335 ../../mod/poke.php:166 ../../mod/fsuggest.php:108
+#: ../../mod/filestorage.php:131 ../../mod/photos.php:566
+#: ../../mod/photos.php:671 ../../mod/photos.php:954 ../../mod/photos.php:994
+#: ../../mod/photos.php:1081 ../../mod/mood.php:142
+#: ../../view/theme/redbasic/php/config.php:95
+#: ../../view/theme/apw/php/config.php:231
+#: ../../view/theme/blogga/view/theme/blog/config.php:67
+#: ../../view/theme/blogga/php/config.php:67
+msgid "Submit"
+msgstr "Envoyer"
-#: ../../mod/register.php:524
-msgid "Your Full Name (e.g. Joe Smith): "
-msgstr "Votre nom complet (p.ex. Michel Dupont): "
+#: ../../include/ItemObject.php:549
+msgid "Bold"
+msgstr "Gras"
-#: ../../mod/register.php:525
-msgid "Your Email Address: "
-msgstr "Votre adresse courriel: "
+#: ../../include/ItemObject.php:550
+msgid "Italic"
+msgstr "Italique"
-#: ../../mod/register.php:526
-msgid ""
-"Choose a profile nickname. This must begin with a text character. Your "
-"profile address on this site will then be "
-"'<strong>nickname@$sitename</strong>'."
-msgstr ""
-"Choisissez un pseudo. Celui devra commencer par une lettre. L'adresse de "
-"votre profil en découlera sous la forme "
-"'&lt;strong&gt;pseudo@$sitename&lt;/strong&gt;'."
+#: ../../include/ItemObject.php:551
+msgid "Underline"
+msgstr "Souligné"
-#: ../../mod/register.php:527
-msgid "Choose a nickname: "
-msgstr "Choisir un pseudo: "
+#: ../../include/ItemObject.php:552
+msgid "Quote"
+msgstr "Citation"
-#: ../../mod/oexchange.php:27
-msgid "Post successful."
-msgstr "Publication réussie."
+#: ../../include/ItemObject.php:553
+msgid "Code"
+msgstr "Code"
+
+#: ../../include/ItemObject.php:554
+msgid "Image"
+msgstr "Image"
+
+#: ../../include/ItemObject.php:555
+msgid "Link"
+msgstr "Lien/URL"
+
+#: ../../include/ItemObject.php:556
+msgid "Video"
+msgstr "Vidéo"
-#: ../../mod/allfriends.php:34
+#: ../../include/api.php:974
+msgid "Public Timeline"
+msgstr "Fil public"
+
+#: ../../include/network.php:640
+msgid "view full size"
+msgstr "pleine taille"
+
+#: ../../include/notify.php:23
+msgid "created a new post"
+msgstr "a publié"
+
+#: ../../include/notify.php:24
#, php-format
-msgid "Friends of %s"
-msgstr "Amis de %s"
+msgid "commented on %s's post"
+msgstr "a commenté la publication de %s"
-#: ../../mod/allfriends.php:40
-msgid "No friends to display."
-msgstr "Pas d'amis à afficher."
+#: ../../include/profile_selectors.php:6
+msgid "Male"
+msgstr "Masculin"
-#: ../../mod/help.php:30
-msgid "Help:"
-msgstr "Aide:"
+#: ../../include/profile_selectors.php:6
+msgid "Female"
+msgstr "Féminin"
-#: ../../mod/help.php:34 ../../include/nav.php:82
-msgid "Help"
-msgstr "Aide"
+#: ../../include/profile_selectors.php:6
+msgid "Currently Male"
+msgstr "Actuellement masculin"
-#: ../../mod/install.php:34
-msgid "Could not create/connect to database."
-msgstr "Impossible de créer/atteindre la base de données."
+#: ../../include/profile_selectors.php:6
+msgid "Currently Female"
+msgstr "Actuellement féminin"
-#: ../../mod/install.php:39
-msgid "Connected to database."
-msgstr "Connecté à la base de données."
+#: ../../include/profile_selectors.php:6
+msgid "Mostly Male"
+msgstr "Surtout masculin"
-#: ../../mod/install.php:75
-msgid "Proceed with Installation"
-msgstr "Commencer l'installation"
+#: ../../include/profile_selectors.php:6
+msgid "Mostly Female"
+msgstr "Surtout féminin"
-#: ../../mod/install.php:77
-msgid "Your Friendika site database has been installed."
-msgstr "La base de données de votre site Friendika a été installée."
+#: ../../include/profile_selectors.php:6
+msgid "Transgender"
+msgstr "Transgenre"
-#: ../../mod/install.php:78
-msgid ""
-"IMPORTANT: You will need to [manually] setup a scheduled task for the "
-"poller."
-msgstr ""
-"IMPORTANT: Vous devez configurer [manuellement] une tâche programmée pour le"
-" 'poller'."
+#: ../../include/profile_selectors.php:6
+msgid "Intersex"
+msgstr "Intersexuel"
-#: ../../mod/install.php:79 ../../mod/install.php:89 ../../mod/install.php:207
-msgid "Please see the file \"INSTALL.txt\"."
-msgstr "Référez-vous au fichier \"INSTALL.txt\"."
+#: ../../include/profile_selectors.php:6
+msgid "Transsexual"
+msgstr "Transsexuel"
-#: ../../mod/install.php:81
-msgid "Proceed to registration"
-msgstr "Commencer l'inscription"
+#: ../../include/profile_selectors.php:6
+msgid "Hermaphrodite"
+msgstr "Hermaphrodite"
-#: ../../mod/install.php:87
-msgid "Database import failed."
-msgstr "Import de base échoué."
+#: ../../include/profile_selectors.php:6
+msgid "Neuter"
+msgstr "Neutre"
-#: ../../mod/install.php:88
-msgid ""
-"You may need to import the file \"database.sql\" manually using phpmyadmin "
-"or mysql."
-msgstr ""
-"Vous pourriez avoir besoin d'importer le fichier \"database.sql\" "
-"manuellement au moyen de phpmyadmin ou de la commande mysql."
+#: ../../include/profile_selectors.php:6
+msgid "Non-specific"
+msgstr "Rien de spécifique"
-#: ../../mod/install.php:101
-msgid "Welcome to Friendika."
-msgstr "Bienvenue sur Friendika."
+#: ../../include/profile_selectors.php:6
+msgid "Other"
+msgstr "Autre"
-#: ../../mod/install.php:124
-msgid "Friendika Social Network"
-msgstr "Réseau social Friendika"
+#: ../../include/profile_selectors.php:6
+msgid "Undecided"
+msgstr "Indécis"
-#: ../../mod/install.php:125
-msgid "Installation"
-msgstr "Installation"
+#: ../../include/profile_selectors.php:23
+msgid "Males"
+msgstr "Hommes"
-#: ../../mod/install.php:126
-msgid ""
-"In order to install Friendika we need to know how to connect to your "
-"database."
-msgstr ""
-"Pour installer Friendika, nous avons besoin de contacter votre base de "
-"données."
+#: ../../include/profile_selectors.php:23
+msgid "Females"
+msgstr "Femmes"
-#: ../../mod/install.php:127
-msgid ""
-"Please contact your hosting provider or site administrator if you have "
-"questions about these settings."
-msgstr ""
-"Merci de vous tourner vers votre hébergeur et/ou administrateur pour toute "
-"question concernant ces réglages."
+#: ../../include/profile_selectors.php:23
+msgid "Gay"
+msgstr "Gay"
-#: ../../mod/install.php:128
-msgid ""
-"The database you specify below should already exist. If it does not, please "
-"create it before continuing."
-msgstr ""
-"La base de données que vous spécifierez doit exister. Si ce n'est pas encore"
-" le cas, merci de la créer avant de continuer."
+#: ../../include/profile_selectors.php:23
+msgid "Lesbian"
+msgstr "Lesbienne"
-#: ../../mod/install.php:129
-msgid "Database Server Name"
-msgstr "Serveur de base de données"
+#: ../../include/profile_selectors.php:23
+msgid "No Preference"
+msgstr "Sans préférence"
-#: ../../mod/install.php:130
-msgid "Database Login Name"
-msgstr "Nom d'utilisateur de la base"
+#: ../../include/profile_selectors.php:23
+msgid "Bisexual"
+msgstr "Bisexuel"
-#: ../../mod/install.php:131
-msgid "Database Login Password"
-msgstr "Mot de passe de la base"
+#: ../../include/profile_selectors.php:23
+msgid "Autosexual"
+msgstr "Autosexuel"
-#: ../../mod/install.php:132
-msgid "Database Name"
-msgstr "Nom de la base"
+#: ../../include/profile_selectors.php:23
+msgid "Abstinent"
+msgstr "Abstinent"
-#: ../../mod/install.php:133
-msgid "Please select a default timezone for your website"
-msgstr "Sélectionner un fuseau horaire par défaut pour votre site"
+#: ../../include/profile_selectors.php:23
+msgid "Virgin"
+msgstr "Vierge"
-#: ../../mod/install.php:134
-msgid ""
-"Site administrator email address. Your account email address must match this"
-" in order to use the web admin panel."
-msgstr ""
-"Adresse courriel de l'administrateur du site. L'adresse courriel de votre "
-"compte doit correspondre si vous voulez utiliser l'administration web."
+#: ../../include/profile_selectors.php:23
+msgid "Deviant"
+msgstr "Déviant"
-#: ../../mod/install.php:153
-msgid "Could not find a command line version of PHP in the web server PATH."
-msgstr ""
-"Impossible de trouver la version \"ligne de commande\" de PHP dans le PATH "
-"du serveur web."
+#: ../../include/profile_selectors.php:23
+msgid "Fetish"
+msgstr "Fétichiste"
-#: ../../mod/install.php:154
-msgid ""
-"This is required. Please adjust the configuration file .htconfig.php "
-"accordingly."
-msgstr ""
-"Ceci est requis. Merci d'ajuster la configuration dans le fichier "
-".htconfig.php en conséquence."
+#: ../../include/profile_selectors.php:23
+msgid "Oodles"
+msgstr "Une floppée"
-#: ../../mod/install.php:161
-msgid ""
-"The command line version of PHP on your system does not have "
-"\"register_argc_argv\" enabled."
-msgstr ""
-"La version \"ligne de commande\" de PHP de votre système n'a pas "
-"\"register_argc_argv\" d'activé."
+#: ../../include/profile_selectors.php:23
+msgid "Nonsexual"
+msgstr "Nonsexuel"
-#: ../../mod/install.php:162
-msgid "This is required for message delivery to work."
-msgstr "Ceci est requis pour que la livraison des messages fonctionne."
+#: ../../include/profile_selectors.php:42
+msgid "Single"
+msgstr "Célibataire"
-#: ../../mod/install.php:184
-msgid ""
-"Error: the \"openssl_pkey_new\" function on this system is not able to "
-"generate encryption keys"
-msgstr ""
-"Erreur: la fonction \"openssl_pkey_new\" de ce système ne permet pas de "
-"générer des clés de chiffrement"
+#: ../../include/profile_selectors.php:42
+msgid "Lonely"
+msgstr "Esseulé"
-#: ../../mod/install.php:185
-msgid ""
-"If running under Windows, please see "
-"\"http://www.php.net/manual/en/openssl.installation.php\"."
-msgstr ""
-"Si vous utilisez Windows, merci de vous réferer à "
-"\"http://www.php.net/manual/en/openssl.installation.php\"."
+#: ../../include/profile_selectors.php:42
+msgid "Available"
+msgstr "Disponible"
-#: ../../mod/install.php:194
-msgid ""
-"Error: Apache webserver mod-rewrite module is required but not installed."
-msgstr ""
-"Erreur: Le module \"rewrite\" du serveur web Apache est requis mais pas "
-"installé."
+#: ../../include/profile_selectors.php:42
+msgid "Unavailable"
+msgstr "Indisponible"
-#: ../../mod/install.php:196
-msgid "Error: libCURL PHP module required but not installed."
-msgstr "Erreur: Le module PHP \"libCURL\" est requis mais pas installé."
+#: ../../include/profile_selectors.php:42
+msgid "Has crush"
+msgstr "A un béguin"
-#: ../../mod/install.php:198
-msgid ""
-"Error: GD graphics PHP module with JPEG support required but not installed."
-msgstr ""
-"Erreur: Le module PHP \"GD\" disposant du support JPEG est requis mais pas "
-"installé."
+#: ../../include/profile_selectors.php:42
+msgid "Infatuated"
+msgstr "Amoureux transi"
-#: ../../mod/install.php:200
-msgid "Error: openssl PHP module required but not installed."
-msgstr "Erreur: Le module PHP \"openssl\" est requis mais pas installé."
+#: ../../include/profile_selectors.php:42
+msgid "Dating"
+msgstr "Sort avec quelqu'un"
-#: ../../mod/install.php:202
-msgid "Error: mysqli PHP module required but not installed."
-msgstr "Erreur: Le module PHP \"mysqli\" est requis mais pas installé."
+#: ../../include/profile_selectors.php:42
+msgid "Unfaithful"
+msgstr "Infidèle"
-#: ../../mod/install.php:204
-msgid "Error: mb_string PHP module required but not installed."
-msgstr "Erreur: le module PHP mb_string est requis mais pas installé."
+#: ../../include/profile_selectors.php:42
+msgid "Sex Addict"
+msgstr "Accro au sexe"
-#: ../../mod/install.php:216
-msgid ""
-"The web installer needs to be able to create a file called \".htconfig.php\""
-" in the top folder of your web server and it is unable to do so."
-msgstr ""
-"L'installeur web doit être en mesure de créer un fichier \".htconfig.php\" à"
-" la racine de votre serveur web, mais il en est incapable."
+#: ../../include/profile_selectors.php:42
+msgid "Friends/Benefits"
+msgstr "Amis avec bénéfices"
-#: ../../mod/install.php:217
-msgid ""
-"This is most often a permission setting, as the web server may not be able "
-"to write files in your folder - even if you can."
-msgstr ""
-"Le plus souvent, il s'agit d'un problème de permission. Le serveur web peut "
-"ne pas être capable d'écrire dans votre répertoire - alors que vous-même le "
-"pouvez."
+#: ../../include/profile_selectors.php:42
+msgid "Casual"
+msgstr "Sans engagement"
-#: ../../mod/install.php:218
-msgid ""
-"Please check with your site documentation or support people to see if this "
-"situation can be corrected."
-msgstr ""
-"Merci de vérifier - avec la documentation ou le support de votre hébergement"
-" - que la situation peut être corrigée."
+#: ../../include/profile_selectors.php:42
+msgid "Engaged"
+msgstr "Fiancé(e)"
-#: ../../mod/install.php:219
-msgid ""
-"If not, you may be required to perform a manual installation. Please see the"
-" file \"INSTALL.txt\" for instructions."
-msgstr ""
-"Dans le cas contraire, vous pouvez pratiquer une installation manuelle. "
-"Référez-vous au fichier \"INSTALL.txt\" pour les instructions."
+#: ../../include/profile_selectors.php:42
+msgid "Married"
+msgstr "Marié(e)"
-#: ../../mod/install.php:228
-msgid ""
-"The database configuration file \".htconfig.php\" could not be written. "
-"Please use the enclosed text to create a configuration file in your web "
-"server root."
-msgstr ""
-"Le fichier de configuration de la base (\".htconfig.php\") ne peut être "
-"créé. Merci d'utiliser le texte ci-joint pour créer ce fichier à la racine "
-"de votre hébergement."
+#: ../../include/profile_selectors.php:42
+msgid "Imaginarily married"
+msgstr "Marié(e) dans ses rêves"
-#: ../../mod/install.php:243
-msgid "Errors encountered creating database tables."
-msgstr "Des erreurs ont été signalées lors de la création des tables."
+#: ../../include/profile_selectors.php:42
+msgid "Partners"
+msgstr "Partenaires"
-#: ../../mod/network.php:148
-msgid "Commented Order"
-msgstr "Dans l'ordre des commentaires"
+#: ../../include/profile_selectors.php:42
+msgid "Cohabiting"
+msgstr "En cohabitation"
-#: ../../mod/network.php:153
-msgid "Posted Order"
-msgstr "Dans l'ordre des notices"
+#: ../../include/profile_selectors.php:42
+msgid "Common law"
+msgstr "Conjoints de fait"
-#: ../../mod/network.php:159
-msgid "New"
-msgstr "Nouveau"
+#: ../../include/profile_selectors.php:42
+msgid "Happy"
+msgstr "Heureux"
-#: ../../mod/network.php:164
-msgid "Starred"
-msgstr "Mis en avant"
+#: ../../include/profile_selectors.php:42
+msgid "Not looking"
+msgstr "Pas en recherche"
-#: ../../mod/network.php:169
-msgid "Bookmarks"
-msgstr "Marqué"
+#: ../../include/profile_selectors.php:42
+msgid "Swinger"
+msgstr "Infidèle"
-#: ../../mod/network.php:216
-#, php-format
-msgid "Warning: This group contains %s member from an insecure network."
-msgid_plural ""
-"Warning: This group contains %s members from an insecure network."
-msgstr[0] "Attention: Ce groupe contient %s membre d'un réseau non-sûr."
-msgstr[1] "Attention: Ce groupe contient %s membres d'un réseau non-sûr."
-
-#: ../../mod/network.php:219
-msgid "Private messages to this group are at risk of public disclosure."
-msgstr ""
-"Les messages privés envoyés à ce groupe s'exposent à une diffusion "
-"incontrôlée."
+#: ../../include/profile_selectors.php:42
+msgid "Betrayed"
+msgstr "Trahi(e)"
-#: ../../mod/network.php:292
-msgid "No such group"
-msgstr "Groupe inexistant"
+#: ../../include/profile_selectors.php:42
+msgid "Separated"
+msgstr "Séparé(e)"
-#: ../../mod/network.php:303
-msgid "Group is empty"
-msgstr "Groupe vide"
+#: ../../include/profile_selectors.php:42
+msgid "Unstable"
+msgstr "Instable"
-#: ../../mod/network.php:308
-msgid "Group: "
-msgstr "Groupe: "
+#: ../../include/profile_selectors.php:42
+msgid "Divorced"
+msgstr "Divorcé(e)"
-#: ../../mod/network.php:318
-msgid "Contact: "
-msgstr "Contact: "
+#: ../../include/profile_selectors.php:42
+msgid "Imaginarily divorced"
+msgstr "Divorcé(e) dans ses rêves"
-#: ../../mod/network.php:320
-msgid "Private messages to this person are at risk of public disclosure."
-msgstr ""
-"Les messages privés envoyés à ce contact s'exposent à une diffusion "
-"incontrôlée."
+#: ../../include/profile_selectors.php:42
+msgid "Widowed"
+msgstr "Veuf/veuve"
-#: ../../mod/network.php:325
-msgid "Invalid contact."
-msgstr "Contact invalide."
+#: ../../include/profile_selectors.php:42
+msgid "Uncertain"
+msgstr "Incertain"
-#: ../../mod/profperm.php:25 ../../mod/profperm.php:55
-msgid "Invalid profile identifier."
-msgstr "Identifiant de profil invalide."
+#: ../../include/profile_selectors.php:42
+msgid "It's complicated"
+msgstr "C'est compliqué"
-#: ../../mod/profperm.php:101
-msgid "Profile Visibility Editor"
-msgstr "Éditer la visibilité du profil"
+#: ../../include/profile_selectors.php:42
+msgid "Don't care"
+msgstr "S'en fiche"
-#: ../../mod/profperm.php:105 ../../mod/group.php:164
-msgid "Click on a contact to add or remove."
-msgstr "Cliquez sur un contact pour l'ajouter ou le supprimer."
+#: ../../include/profile_selectors.php:42
+msgid "Ask me"
+msgstr "Me demander"
-#: ../../mod/profperm.php:114
-msgid "Visible To"
-msgstr "Visible par"
+#: ../../include/chat.php:10
+msgid "Missing room name"
+msgstr "Il manque le nom du salon"
-#: ../../mod/profperm.php:130
-msgid "All Contacts (with secure profile access)"
-msgstr "Tous les contacts (ayant un accès sécurisé)"
+#: ../../include/chat.php:19
+msgid "Duplicate room name"
+msgstr "Un salon de ce nom existe déjà"
-#: ../../mod/events.php:61
-msgid "Event description and start time are required."
-msgstr "Une description et une heure de début sont requises."
+#: ../../include/chat.php:68 ../../include/chat.php:76
+msgid "Invalid room specifier."
+msgstr "Identifiant de salon invalide."
-#: ../../mod/events.php:207
-msgid "Create New Event"
-msgstr "Créer un nouvel événement"
+#: ../../include/chat.php:102
+msgid "Room not found."
+msgstr "Salon introuvable."
-#: ../../mod/events.php:210
-msgid "Previous"
-msgstr "Précédent"
+#: ../../include/chat.php:123
+msgid "Room is full"
+msgstr "Le salon est plein"
-#: ../../mod/events.php:213
-msgid "Next"
-msgstr "Suivant"
+#: ../../include/taxonomy.php:210
+msgid "Tags"
+msgstr "Étiquettes"
-#: ../../mod/events.php:220
-msgid "l, F j"
-msgstr "l, F j"
+#: ../../include/taxonomy.php:227
+msgid "Keywords"
+msgstr "Mots-clefs"
-#: ../../mod/events.php:232
-msgid "Edit event"
-msgstr "Editer l'événement"
+#: ../../include/taxonomy.php:252
+msgid "have"
+msgstr "ont"
-#: ../../mod/events.php:234 ../../include/text.php:857
-msgid "link to source"
-msgstr "lien original"
+#: ../../include/taxonomy.php:252
+msgid "has"
+msgstr "a"
-#: ../../mod/events.php:302
-msgid "hour:minute"
-msgstr "heures:minutes"
+#: ../../include/taxonomy.php:253
+msgid "want"
+msgstr "veulent"
-#: ../../mod/events.php:311
-msgid "Event details"
-msgstr "Détails de l'événement"
+#: ../../include/taxonomy.php:253
+msgid "wants"
+msgstr "veut"
+
+#: ../../include/taxonomy.php:254
+msgid "likes"
+msgstr "aime"
+
+#: ../../include/taxonomy.php:255
+msgid "dislikes"
+msgstr "déteste"
+
+#: ../../include/auth.php:76
+msgid "Logged out."
+msgstr "Deconnecté."
+
+#: ../../include/auth.php:188
+msgid "Failed authentication"
+msgstr "Échec de l'authentification"
+
+#: ../../include/auth.php:203
+msgid "Login failed."
+msgstr "Échec de la connexion."
+
+#: ../../include/account.php:23
+msgid "Not a valid email address"
+msgstr "Ce n'est pas une adresse de courriel valide"
+
+#: ../../include/account.php:25
+msgid "Your email domain is not among those allowed on this site"
+msgstr "Votre domaine de courriel ne fait pas partie de ceux autorisés par ce site"
+
+#: ../../include/account.php:31
+msgid "Your email address is already registered at this site."
+msgstr "Votre adresse de courriel est déjà inscrite sur ce site."
+
+#: ../../include/account.php:64
+msgid "An invitation is required."
+msgstr "Une invitation est requise."
-#: ../../mod/events.php:312
+#: ../../include/account.php:68
+msgid "Invitation could not be verified."
+msgstr "Votre invitation n'a pas pu être vérifiée."
+
+#: ../../include/account.php:119
+msgid "Please enter the required information."
+msgstr "Merci d'entrer les informations requises."
+
+#: ../../include/account.php:187
+msgid "Failed to store account information."
+msgstr "Impossible de stocker les informations liées au compte."
+
+#: ../../include/account.php:273
#, php-format
-msgid "Format is %s %s. Starting date and Description are required."
-msgstr ""
-"Le format est %s %s. Une date de début et une description sont requises."
+msgid "Registration request at %s"
+msgstr "Demande d'inscription sur %s"
-#: ../../mod/events.php:313
-msgid "Event Starts:"
-msgstr "Début de l'événement:"
+#: ../../include/account.php:275 ../../include/account.php:302
+#: ../../include/account.php:359
+msgid "Administrator"
+msgstr "Administrateur"
-#: ../../mod/events.php:316
-msgid "Finish date/time is not known or not relevant"
-msgstr "Date/heure de fin inconnue ou sans objet"
+#: ../../include/account.php:297
+msgid "your registration password"
+msgstr "votre mot de passe d'inscription"
-#: ../../mod/events.php:318
-msgid "Event Finishes:"
-msgstr "Fin de l'événement:"
+#: ../../include/account.php:300 ../../include/account.php:357
+#, php-format
+msgid "Registration details for %s"
+msgstr "Détails de l'inscription à %s"
-#: ../../mod/events.php:321
-msgid "Adjust for viewer timezone"
-msgstr "Ajuster à la zone horaire du visiteur"
+#: ../../include/account.php:366
+msgid "Account approved."
+msgstr "Compte approuvé."
-#: ../../mod/events.php:323
-msgid "Description:"
-msgstr "Description:"
+#: ../../include/account.php:400
+#, php-format
+msgid "Registration revoked for %s"
+msgstr "Inscription révoquée pour %s"
-#: ../../mod/events.php:327
-msgid "Share this event"
-msgstr "Partager cet événement"
+#: ../../include/dir_fns.php:15
+msgid "Sort Options"
+msgstr "Options de tri"
-#: ../../mod/notifications.php:26
-msgid "Invalid request identifier."
-msgstr "Identifiant de demande invalide."
+#: ../../include/dir_fns.php:16
+msgid "Alphabetic"
+msgstr "Alphabétique"
-#: ../../mod/notifications.php:35 ../../mod/notifications.php:144
-#: ../../mod/notifications.php:188
-msgid "Discard"
-msgstr "Défausser"
+#: ../../include/dir_fns.php:17
+msgid "Reverse Alphabetic"
+msgstr "Alphabétique inversé"
-#: ../../mod/notifications.php:71 ../../include/nav.php:109
-msgid "Network"
-msgstr "Réseau"
+#: ../../include/dir_fns.php:18
+msgid "Newest to Oldest"
+msgstr "Anté-chronologique"
-#: ../../mod/notifications.php:76 ../../include/nav.php:73
-#: ../../include/nav.php:111
-msgid "Home"
-msgstr "Accueil"
+#: ../../include/dir_fns.php:30
+msgid "Enable Safe Search"
+msgstr "Activer la recherche sûre"
-#: ../../mod/notifications.php:81 ../../include/nav.php:117
-msgid "Introductions"
-msgstr "Introductions"
+#: ../../include/dir_fns.php:32
+msgid "Disable Safe Search"
+msgstr "Désactiver la recherche sûre"
-#: ../../mod/notifications.php:86 ../../mod/message.php:72
-#: ../../include/nav.php:122
-msgid "Messages"
-msgstr "Messages"
+#: ../../include/dir_fns.php:34
+msgid "Safe Mode"
+msgstr "Mode sûr"
-#: ../../mod/notifications.php:105
-msgid "Show Ignored Requests"
-msgstr "Voir les demandes ignorées"
+#: ../../include/enotify.php:40
+msgid "Red Matrix Notification"
+msgstr "Notification Red Matrix"
-#: ../../mod/notifications.php:105
-msgid "Hide Ignored Requests"
-msgstr "Cacher les demandes ignorées"
+#: ../../include/enotify.php:41
+msgid "redmatrix"
+msgstr "redmatrix"
-#: ../../mod/notifications.php:131 ../../mod/notifications.php:174
-msgid "Notification type: "
-msgstr "Type de notification: "
+#: ../../include/enotify.php:43
+msgid "Thank You,"
+msgstr "Merci,"
-#: ../../mod/notifications.php:132
-msgid "Friend Suggestion"
-msgstr "Suggestion d'amitié/contact"
+#: ../../include/enotify.php:45
+#, php-format
+msgid "%s Administrator"
+msgstr "l'administrateur de %s"
-#: ../../mod/notifications.php:134
+#: ../../include/enotify.php:80
#, php-format
-msgid "suggested by %s"
-msgstr "suggéré(e) par %s"
+msgid "%s <!item_type!>"
+msgstr "%s <!item_type!>"
-#: ../../mod/notifications.php:140 ../../mod/notifications.php:185
-#: ../../mod/admin.php:466
-msgid "Approve"
-msgstr "Approuver"
+#: ../../include/enotify.php:84
+#, php-format
+msgid "[Red:Notify] New mail received at %s"
+msgstr "[Red:Notification] Nouveau message reçu sur %s"
+
+#: ../../include/enotify.php:86
+#, php-format
+msgid "%1$s, %2$s sent you a new private message at %3$s."
+msgstr "%1$s, vous avez reçu un message privé sur %3$s, de la part de %2$s."
+
+#: ../../include/enotify.php:87
+#, php-format
+msgid "%1$s sent you %2$s."
+msgstr "%1$s vous a envoyé %2$s."
-#: ../../mod/notifications.php:160
-msgid "Claims to be known to you: "
-msgstr "Prétend que vous le connaissez: "
+#: ../../include/enotify.php:87
+msgid "a private message"
+msgstr "un message privé"
-#: ../../mod/notifications.php:160
-msgid "yes"
-msgstr "oui"
+#: ../../include/enotify.php:88
+#, php-format
+msgid "Please visit %s to view and/or reply to your private messages."
+msgstr "Merci de visiter %s pour voir et/ou répondre à vos messages privés."
-#: ../../mod/notifications.php:160
-msgid "no"
-msgstr "non"
+#: ../../include/enotify.php:142
+#, php-format
+msgid "%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]"
+msgstr "%1$s, %2$s a commenté [zrl=%3$s]%4$s[/zrl]"
-#: ../../mod/notifications.php:167
-msgid "Approve as: "
-msgstr "Approuver en tant que: "
+#: ../../include/enotify.php:150
+#, php-format
+msgid "%1$s, %2$s commented on [zrl=%3$s]%4$s's %5$s[/zrl]"
+msgstr "%1$s, %2$s a commenté [zrl=%3$s]%5$s de %4$s[/zrl]"
-#: ../../mod/notifications.php:168
-msgid "Friend"
-msgstr "Ami"
+#: ../../include/enotify.php:159
+#, php-format
+msgid "%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]"
+msgstr "%1$s, %2$s a commenté [zrl=%3$s]votre %4$s[/zrl]"
-#: ../../mod/notifications.php:169
-msgid "Sharer"
-msgstr "Initiateur du partage"
+#: ../../include/enotify.php:170
+#, php-format
+msgid "[Red:Notify] Comment to conversation #%1$d by %2$s"
+msgstr "[Red:Notification] Commentaire de %2$s sur conversation #%1$d"
-#: ../../mod/notifications.php:169
-msgid "Fan/Admirer"
-msgstr "Fan/Admirateur"
+#: ../../include/enotify.php:171
+#, php-format
+msgid "%1$s, %2$s commented on an item/conversation you have been following."
+msgstr "%1$s, %2$s a commenté un élément de conversation que vous suivez."
-#: ../../mod/notifications.php:175
-msgid "Friend/Connect Request"
-msgstr "Demande de connexion/relation"
+#: ../../include/enotify.php:174 ../../include/enotify.php:189
+#: ../../include/enotify.php:215 ../../include/enotify.php:234
+#: ../../include/enotify.php:248
+#, php-format
+msgid "Please visit %s to view and/or reply to the conversation."
+msgstr "Merci de visiter %s pour voir et/ou répondre sur cette conversation."
-#: ../../mod/notifications.php:175
-msgid "New Follower"
-msgstr "Nouvel abonné"
+#: ../../include/enotify.php:180
+#, php-format
+msgid "[Red:Notify] %s posted to your profile wall"
+msgstr "[Red:Notification] %s a publié sur votre profil"
-#: ../../mod/notifications.php:194
-msgid "No notifications."
-msgstr "Pas de notification."
+#: ../../include/enotify.php:182
+#, php-format
+msgid "%1$s, %2$s posted to your profile wall at %3$s"
+msgstr "%1$s, %2$s a posté sur votre profil à %3$s"
-#: ../../mod/notifications.php:197 ../../mod/notifications.php:283
-#: ../../mod/notifications.php:359 ../../include/nav.php:118
-msgid "Notifications"
-msgstr "Notifications"
+#: ../../include/enotify.php:184
+#, php-format
+msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]"
+msgstr "%1$s, %2$s a posté sur [zrl=%3$s]votre profil[/zrl]"
-#: ../../mod/notifications.php:234 ../../mod/notifications.php:316
+#: ../../include/enotify.php:208
#, php-format
-msgid "%s liked %s's post"
-msgstr "%s a aimé la notice de %s"
+msgid "[Red:Notify] %s tagged you"
+msgstr "[Red:Notification] %s vous a marqué"
-#: ../../mod/notifications.php:243 ../../mod/notifications.php:325
+#: ../../include/enotify.php:209
#, php-format
-msgid "%s disliked %s's post"
-msgstr "%s n'a pas aimé la notice de %s"
+msgid "%1$s, %2$s tagged you at %3$s"
+msgstr "%1$s, vous avez été étiqueté sur %3$s par %2$s"
-#: ../../mod/notifications.php:257 ../../mod/notifications.php:339
+#: ../../include/enotify.php:210
#, php-format
-msgid "%s is now friends with %s"
-msgstr "%s est désormais ami(e) avec %s"
+msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]."
+msgstr "%1$s, %2$s [zrl=%3$s]vous a tagué[/zrl]."
-#: ../../mod/notifications.php:264
+#: ../../include/enotify.php:223
#, php-format
-msgid "%s created a new post"
-msgstr "%s a publié une notice"
+msgid "[Red:Notify] %1$s poked you"
+msgstr "[Red:Notification] %1$s vous a tapoté"
-#: ../../mod/notifications.php:265 ../../mod/notifications.php:348
+#: ../../include/enotify.php:224
#, php-format
-msgid "%s commented on %s's post"
-msgstr "%s a commenté une notice de %s"
+msgid "%1$s, %2$s poked you at %3$s"
+msgstr "%1$s, vous avez été tapoté/pointé/sollicité par %2$s sur %3$s"
-#: ../../mod/notifications.php:279 ../../mod/notifications.php:355
-msgid "Nothing new!"
-msgstr "Rien de neuf!"
+#: ../../include/enotify.php:225
+#, php-format
+msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]."
+msgstr "%1$s, %2$s [zrl=%2$s]vous a tapoté[/zrl]."
-#: ../../mod/crepair.php:100
-msgid "Contact settings applied."
-msgstr "Réglages du contact appliqués."
+#: ../../include/enotify.php:241
+#, php-format
+msgid "[Red:Notify] %s tagged your post"
+msgstr "[Red:Notification] %s a marqué votre publication"
-#: ../../mod/crepair.php:102
-msgid "Contact update failed."
-msgstr "Impossible d'appliquer les réglages."
+#: ../../include/enotify.php:242
+#, php-format
+msgid "%1$s, %2$s tagged your post at %3$s"
+msgstr "%1$s, %2$s a tagué votre publication sur %3$s"
-#: ../../mod/crepair.php:127 ../../mod/fsuggest.php:20
-#: ../../mod/fsuggest.php:92 ../../mod/dfrn_confirm.php:114
-msgid "Contact not found."
-msgstr "Contact introuvable."
+#: ../../include/enotify.php:243
+#, php-format
+msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]"
+msgstr "%1$s, %2$s a tagué [zrl=%3$s]votre publication[/zrl]"
-#: ../../mod/crepair.php:133
-msgid "Repair Contact Settings"
-msgstr "Réglages du réparateur de contacts"
+#: ../../include/enotify.php:255
+msgid "[Red:Notify] Introduction received"
+msgstr "[Red:Notification] Nouvelle introduction"
-#: ../../mod/crepair.php:135
+#: ../../include/enotify.php:256
+#, php-format
+msgid "%1$s, you've received an introduction from '%2$s' at %3$s"
+msgstr "%1$s, vous avez reçu une introduction de '%2$s' sur %3$s"
+
+#: ../../include/enotify.php:257
+#, php-format
+msgid "%1$s, you've received [zrl=%2$s]an introduction[/zrl] from %3$s."
+msgstr "%1$s, vous avez reçu [zrl=%2$s]une introduction[/zrl] de %3$s."
+
+#: ../../include/enotify.php:261 ../../include/enotify.php:280
+#, php-format
+msgid "You may visit their profile at %s"
+msgstr "Vous pouvez visiter leur profil sur %s"
+
+#: ../../include/enotify.php:263
+#, php-format
+msgid "Please visit %s to approve or reject the introduction."
+msgstr "Merci de visiter %s avant d'approuver (ou non) son introduction."
+
+#: ../../include/enotify.php:270
+msgid "[Red:Notify] Friend suggestion received"
+msgstr "[Red:Notification] Nouvelle suggestion d'amitié"
+
+#: ../../include/enotify.php:271
+#, php-format
+msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s"
+msgstr "%1$s, vous avez reçu une suggestion de relation de '%2$s' à %3$s"
+
+#: ../../include/enotify.php:272
+#, php-format
msgid ""
-"<strong>WARNING: This is highly advanced</strong> and if you enter incorrect"
-" information your communications with this contact may stop working."
-msgstr ""
-"<strong>ATTENTION: Manipulation réservée aux experts</strong>, toute "
-"information incorrecte pourrait empêcher la communication avec ce contact."
+"%1$s, you've received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from "
+"%4$s."
+msgstr "%1$s, avez reçu %3$s comme [zrl=%2$s]une suggestion de relation[/zrl] de %4$s."
+
+#: ../../include/enotify.php:278
+msgid "Name:"
+msgstr "Nom&nbsp;:"
+
+#: ../../include/enotify.php:279
+msgid "Photo:"
+msgstr "Photo&nbsp;:"
+
+#: ../../include/enotify.php:282
+#, php-format
+msgid "Please visit %s to approve or reject the suggestion."
+msgstr "Merci de visiter %s pour donner suite (ou non) à cette suggestion."
+
+#: ../../include/photos.php:89
+#, php-format
+msgid "Image exceeds website size limit of %lu bytes"
+msgstr "L'image dépasse la taille limite de %lu octets"
+
+#: ../../include/photos.php:96
+msgid "Image file is empty."
+msgstr "L'image est vide."
+
+#: ../../include/photos.php:123 ../../mod/profile_photo.php:147
+msgid "Unable to process image"
+msgstr "Impossible de traiter l'image"
+
+#: ../../include/photos.php:185
+msgid "Photo storage failed."
+msgstr "Le stockage de l'image a échoué."
+
+#: ../../include/photos.php:306 ../../mod/photos.php:694
+#: ../../mod/photos.php:1191
+msgid "Upload New Photos"
+msgstr "Ajouter des photos"
+
+#: ../../include/reddav.php:1061
+msgid "Edit File properties"
+msgstr "Éditer les propriétés du fichier"
+
+#: ../../include/contact_widgets.php:14
+#, php-format
+msgid "%d invitation available"
+msgid_plural "%d invitations available"
+msgstr[0] "%d invitation disponible"
+msgstr[1] "%d invitations disponibles"
+
+#: ../../include/contact_widgets.php:20
+msgid "Find Channels"
+msgstr "Trouver des canaux"
+
+#: ../../include/contact_widgets.php:21
+msgid "Enter name or interest"
+msgstr "Saisir nom ou centre d'intérêt"
+
+#: ../../include/contact_widgets.php:22
+msgid "Connect/Follow"
+msgstr "Relier/Suivre"
+
+#: ../../include/contact_widgets.php:23
+msgid "Examples: Robert Morgenstein, Fishing"
+msgstr "Exemples: Robert Morgenstein, Course à pieds"
+
+#: ../../include/contact_widgets.php:24 ../../mod/directory.php:207
+#: ../../mod/directory.php:212 ../../mod/connections.php:357
+msgid "Find"
+msgstr "Trouver"
-#: ../../mod/crepair.php:136
+#: ../../include/contact_widgets.php:25 ../../mod/suggest.php:59
+msgid "Channel Suggestions"
+msgstr "Canaux suggérés"
+
+#: ../../include/contact_widgets.php:27
+msgid "Random Profile"
+msgstr "Un profil au hasard"
+
+#: ../../include/contact_widgets.php:28
+msgid "Invite Friends"
+msgstr "Inviter des amis"
+
+#: ../../include/contact_widgets.php:120
+#, php-format
+msgid "%d connection in common"
+msgid_plural "%d connections in common"
+msgstr[0] "%d relation en commun"
+msgstr[1] "%d relations en commun"
+
+#: ../../include/page_widgets.php:6
+msgid "New Page"
+msgstr "Nouvelle page"
+
+#: ../../include/plugin.php:475 ../../include/plugin.php:477
+msgid "Click here to upgrade."
+msgstr "Cliquez ici pour mettre à jour."
+
+#: ../../include/plugin.php:483
+msgid "This action exceeds the limits set by your subscription plan."
+msgstr "Cette action outrepasserait les limites prévues par votre forfait."
+
+#: ../../include/plugin.php:488
+msgid "This action is not available under your subscription plan."
+msgstr "Cette action n'est pas possible avec la formule choisie."
+
+#: ../../include/follow.php:21
+msgid "Channel is blocked on this site."
+msgstr "Ce canal est bloqué sur ce site."
+
+#: ../../include/follow.php:26
+msgid "Channel location missing."
+msgstr "Localisation du canal manquante."
+
+#: ../../include/follow.php:43
+msgid "Channel discovery failed. Website may be down or misconfigured."
+msgstr "Découverte du canal impossible. Le site est peut-être en dérangement ou mal configuré."
+
+#: ../../include/follow.php:51
+msgid "Response from remote channel was not understood."
+msgstr "La réponse du canal distant n'a pas été comprise."
+
+#: ../../include/follow.php:58
+msgid "Response from remote channel was incomplete."
+msgstr "La réponse du canal distant était incomplète."
+
+#: ../../include/follow.php:129
+msgid "local account not found."
+msgstr "compte local introuvable."
+
+#: ../../include/follow.php:138
+msgid "Cannot connect to yourself."
+msgstr "Ne peut pas se connecter à vous."
+
+#: ../../include/security.php:280
msgid ""
-"Please use your browser 'Back' button <strong>now</strong> if you are "
-"uncertain what to do on this page."
-msgstr "une photo"
+"The form security token was not correct. This probably happened because the "
+"form has been opened for too long (>3 hours) before submitting it."
+msgstr "Le formulaire n'est plus sécurisé, probablement parce qu'il est ouvert depuis trop longtemps (plus de 3 heures)."
-#: ../../mod/crepair.php:145
-msgid "Account Nickname"
-msgstr "Pseudo du compte"
+#: ../../include/comanche.php:35 ../../view/theme/redbasic/php/config.php:64
+#: ../../view/theme/apw/php/config.php:176
+msgid "Default"
+msgstr "Défaut"
-#: ../../mod/crepair.php:146
-msgid "@Tagname - overrides Name/Nickname"
-msgstr "@NomDuTag - prend le pas sur Nom/Pseudo"
+#: ../../include/oembed.php:157
+msgid "Embedded content"
+msgstr "Contenu imbriqué"
-#: ../../mod/crepair.php:147
-msgid "Account URL"
-msgstr "URL du compte"
+#: ../../include/oembed.php:166
+msgid "Embedding disabled"
+msgstr "Imbrication désactivée"
-#: ../../mod/crepair.php:148
-msgid "Friend Request URL"
-msgstr "Echec du téléversement de l'image."
+#: ../../include/permissions.php:13
+msgid "Can view my \"public\" stream and posts"
+msgstr "Peut voir mon flux et mes publications \"publiques\""
-#: ../../mod/crepair.php:149
-msgid "Friend Confirm URL"
-msgstr "Accès public refusé."
+#: ../../include/permissions.php:14
+msgid "Can view my \"public\" channel profile"
+msgstr "Peut voir mon le canal \"public\" de mon profil"
-#: ../../mod/crepair.php:150
-msgid "Notification Endpoint URL"
-msgstr "Aucune photo sélectionnée"
+#: ../../include/permissions.php:15
+msgid "Can view my \"public\" photo albums"
+msgstr "Peut voir mes albums photos \"publics\""
-#: ../../mod/crepair.php:151
-msgid "Poll/Feed URL"
-msgstr "Téléverser des photos"
+#: ../../include/permissions.php:16
+msgid "Can view my \"public\" address book"
+msgstr "Peut voir mes contacts \"publics\""
-#: ../../mod/crepair.php:152
-msgid "New photo from this URL"
-msgstr "Nouvelle photo depuis cette URL"
+#: ../../include/permissions.php:17
+msgid "Can view my \"public\" file storage"
+msgstr "Peut voir mes fichiers \"publics\""
-#: ../../mod/dfrn_request.php:92
-msgid "This introduction has already been accepted."
-msgstr "Cette introduction a déjà été acceptée."
+#: ../../include/permissions.php:18
+msgid "Can view my \"public\" pages"
+msgstr "Peut voir mes pages \"publiques\""
-#: ../../mod/dfrn_request.php:116 ../../mod/dfrn_request.php:351
-msgid "Profile location is not valid or does not contain profile information."
-msgstr ""
-"L'emplacement du profil est invalide ou ne contient pas de profil valide."
+#: ../../include/permissions.php:21
+msgid "Can send me their channel stream and posts"
+msgstr "Peut m'envoyer le flux et les publications de leur canal"
+
+#: ../../include/permissions.php:22
+msgid "Can post on my channel page (\"wall\")"
+msgstr "Peut poster sur la page de mon canal (\"mur\")"
+
+#: ../../include/permissions.php:23
+msgid "Can comment on my posts"
+msgstr "Peut commenter mes publications"
+
+#: ../../include/permissions.php:24
+msgid "Can send me private mail messages"
+msgstr "Peut m'envoyer des messages privés"
+
+#: ../../include/permissions.php:25
+msgid "Can post photos to my photo albums"
+msgstr "Peut ajouter des photos à mes albums"
+
+#: ../../include/permissions.php:26
+msgid "Can forward to all my channel contacts via post @mentions"
+msgstr "Peut faire suivre à tous les contacts du mon canal via @truc"
+
+#: ../../include/permissions.php:26
+msgid "Advanced - useful for creating group forum channels"
+msgstr "Avancé - utile seulement pour les canaux de type \"forum/groupe\""
+
+#: ../../include/permissions.php:27
+msgid "Can chat with me (when available)"
+msgstr "Peut discuter avec moi (sous réserve de disponibilité)"
+
+#: ../../include/permissions.php:28
+msgid "Can write to my \"public\" file storage"
+msgstr "Peut écrire dans mon stockage \"public\" de fichiers"
+
+#: ../../include/permissions.php:29
+msgid "Can edit my \"public\" pages"
+msgstr "Peut éditer mes pages \"publiques\""
+
+#: ../../include/permissions.php:31
+msgid "Can source my \"public\" posts in derived channels"
+msgstr "Peut utiliser mes contributions \"publiques\" comme source de canaux dérivés"
+
+#: ../../include/permissions.php:31
+msgid "Somewhat advanced - very useful in open communities"
+msgstr "Plutôt avancé - très utile dans les communautés ouvertes"
+
+#: ../../include/permissions.php:32
+msgid "Can send me bookmarks"
+msgstr "Peut m'envoyer des marque-pages"
+
+#: ../../include/permissions.php:33
+msgid "Can administer my channel resources"
+msgstr "Peut administrer les ressources de mon canal"
+
+#: ../../include/permissions.php:33
+msgid ""
+"Extremely advanced. Leave this alone unless you know what you are doing"
+msgstr "Très avancé. Ne pas toucher, sauf si vous savez VRAIMENT ce que vous faites"
+
+#: ../../include/items.php:231 ../../mod/like.php:55 ../../mod/profperm.php:23
+#: ../../mod/group.php:68 ../../index.php:350
+msgid "Permission denied"
+msgstr "Accès refusé"
+
+#: ../../include/items.php:3453 ../../mod/thing.php:78 ../../mod/admin.php:151
+#: ../../mod/admin.php:782 ../../mod/admin.php:985 ../../mod/viewsrc.php:18
+#: ../../mod/home.php:63 ../../mod/display.php:32 ../../mod/filestorage.php:18
+msgid "Item not found."
+msgstr "Élément introuvable."
+
+#: ../../include/items.php:3809 ../../mod/group.php:38 ../../mod/group.php:140
+msgid "Collection not found."
+msgstr "Collection introuvable."
-#: ../../mod/dfrn_request.php:121 ../../mod/dfrn_request.php:356
-msgid "Warning: profile location has no identifiable owner name."
-msgstr "Attention: l'emplacement du profil n'a pas de nom identifiable."
+#: ../../include/items.php:3824
+msgid "Collection is empty."
+msgstr "Collection vide."
-#: ../../mod/dfrn_request.php:123 ../../mod/dfrn_request.php:358
-msgid "Warning: profile location has no profile photo."
-msgstr "Attention: l'emplacement du profil n'a pas de photo de profil."
+#: ../../include/items.php:3831
+#, php-format
+msgid "Collection: %s"
+msgstr "Collection&nbsp;: %s"
-#: ../../mod/dfrn_request.php:126 ../../mod/dfrn_request.php:361
+#: ../../include/items.php:3842
#, php-format
-msgid "%d required parameter was not found at the given location"
-msgid_plural "%d required parameters were not found at the given location"
-msgstr[0] "%d paramètre requis n'a pas été trouvé à l'endroit indiqué"
-msgstr[1] "%d paramètres requis n'ont pas été trouvés à l'endroit indiqué"
+msgid "Connection: %s"
+msgstr "Relation&nbsp;: %s"
-#: ../../mod/dfrn_request.php:167
-msgid "Introduction complete."
-msgstr "Phase de présentation achevée."
+#: ../../include/items.php:3845
+msgid "Connection not found."
+msgstr "Relation introuvable."
-#: ../../mod/dfrn_request.php:191
-msgid "Unrecoverable protocol error."
-msgstr "Erreur de protocole non-récupérable."
+#: ../../include/zot.php:548
+msgid "Invalid data packet"
+msgstr "Paquet de données invalide"
-#: ../../mod/dfrn_request.php:219
-msgid "Profile unavailable."
-msgstr "Profil indisponible."
+#: ../../include/zot.php:558
+msgid "Unable to verify channel signature"
+msgstr "Impossible de vérifier la signature du canal"
-#: ../../mod/dfrn_request.php:244
+#: ../../include/zot.php:735
#, php-format
-msgid "%s has received too many connection requests today."
-msgstr "%s a reçu trop de demande d'introduction aujourd'hui."
+msgid "Unable to verify site signature for %s"
+msgstr "Impossible de vérifier la signature de site pour %s"
-#: ../../mod/dfrn_request.php:245
-msgid "Spam protection measures have been invoked."
-msgstr "Des mesures de protection contre le spam ont été déclenchées."
+#: ../../mod/common.php:10
+msgid "No channel."
+msgstr "Pas de canal."
-#: ../../mod/dfrn_request.php:246
-msgid "Friends are advised to please try again in 24 hours."
-msgstr "Les relations sont encouragées à attendre 24 heures pour recommencer."
+#: ../../mod/common.php:39
+msgid "Common connections"
+msgstr "Relations communes"
-#: ../../mod/dfrn_request.php:276
-msgid "Invalid locator"
-msgstr "Localisateur invalide"
+#: ../../mod/common.php:44
+msgid "No connections in common."
+msgstr "Pas de relations en commun."
-#: ../../mod/dfrn_request.php:296
-msgid "Unable to resolve your name at the provided location."
-msgstr "Impossible de résoudre votre nom à l'emplacement fourni."
+#: ../../mod/events.php:72
+msgid "Event title and start time are required."
+msgstr "Un titre et une date de début sont requises pour l'événement."
-#: ../../mod/dfrn_request.php:309
-msgid "You have already introduced yourself here."
-msgstr "Vous vous êtes déjà présenté ici."
+#: ../../mod/events.php:287
+msgid "l, F j"
+msgstr "l j F"
-#: ../../mod/dfrn_request.php:313
+#: ../../mod/events.php:309
+msgid "Edit event"
+msgstr "Éditer événement"
+
+#: ../../mod/events.php:355
+msgid "Create New Event"
+msgstr "Créer événement"
+
+#: ../../mod/events.php:356
+msgid "Previous"
+msgstr "Précédent"
+
+#: ../../mod/events.php:357 ../../mod/setup.php:258
+msgid "Next"
+msgstr "Suivant"
+
+#: ../../mod/events.php:428
+msgid "hour:minute"
+msgstr "heure:minute"
+
+#: ../../mod/events.php:447
+msgid "Event details"
+msgstr "Détails de l'événement"
+
+#: ../../mod/events.php:448
#, php-format
-msgid "Apparently you are already friends with %s."
-msgstr "Il semblerait que vous soyez déjà ami avec %s."
+msgid "Format is %s %s. Starting date and Title are required."
+msgstr "Le format est %s %s. Date de début et titre obligatoires."
-#: ../../mod/dfrn_request.php:334
-msgid "Invalid profile URL."
-msgstr "URL de profil invalide."
+#: ../../mod/events.php:450
+msgid "Event Starts:"
+msgstr "L'événement débute&nbsp;:"
-#: ../../mod/dfrn_request.php:430
-msgid "Your introduction has been sent."
-msgstr "Votre présentation a été envoyée."
+#: ../../mod/events.php:450 ../../mod/events.php:464
+msgid "Required"
+msgstr "Requis"
-#: ../../mod/dfrn_request.php:483
-msgid "Please login to confirm introduction."
-msgstr "Connectez-vous pour confirmer l'introduction."
+#: ../../mod/events.php:453
+msgid "Finish date/time is not known or not relevant"
+msgstr "Date/heure de fin inconnue ou sans objet"
-#: ../../mod/dfrn_request.php:497
-msgid ""
-"Incorrect identity currently logged in. Please login to "
-"<strong>this</strong> profile."
-msgstr ""
-"Identité incorrecte actuellement connectée. Merci de vous connecter à "
-"<strong>ce</strong> profil."
+#: ../../mod/events.php:455
+msgid "Event Finishes:"
+msgstr "L'événement termine&nbsp;:"
+
+#: ../../mod/events.php:458
+msgid "Adjust for viewer timezone"
+msgstr "Ajuster au fuseau horaire du visiteur"
+
+#: ../../mod/events.php:460
+msgid "Description:"
+msgstr "Description:"
-#: ../../mod/dfrn_request.php:509
+#: ../../mod/events.php:464
+msgid "Title:"
+msgstr "Titre:"
+
+#: ../../mod/events.php:466
+msgid "Share this event"
+msgstr "Partager cet événement"
+
+#: ../../mod/thing.php:98
+msgid "Thing updated"
+msgstr "Chose mise-à-jour"
+
+#: ../../mod/thing.php:158
+msgid "Object store: failed"
+msgstr "Stockage de l'objet&nbsp;: échec"
+
+#: ../../mod/thing.php:162
+msgid "Thing added"
+msgstr "Chose ajoutée"
+
+#: ../../mod/thing.php:182
#, php-format
-msgid "Welcome home %s."
-msgstr "Bienvenue chez vous, %s."
+msgid "OBJ: %1$s %2$s %3$s"
+msgstr "OBJ: %1$s %2$s %3$s"
+
+#: ../../mod/thing.php:234
+msgid "Show Thing"
+msgstr "Montrer chose"
+
+#: ../../mod/thing.php:241
+msgid "item not found."
+msgstr "élément introuvable."
+
+#: ../../mod/thing.php:269
+msgid "Edit Thing"
+msgstr "Éditer chose"
-#: ../../mod/dfrn_request.php:510
+#: ../../mod/thing.php:271 ../../mod/thing.php:318
+msgid "Select a profile"
+msgstr "Choisissez un profil"
+
+#: ../../mod/thing.php:273 ../../mod/thing.php:320
+msgid "Select a category of stuff. e.g. I ______ something"
+msgstr "Choisissez une catégorie de choses. p.ex. Je ______ quelque-chose"
+
+#: ../../mod/thing.php:275 ../../mod/thing.php:321
+msgid "Post an activity"
+msgstr "Publier une activité"
+
+#: ../../mod/thing.php:275 ../../mod/thing.php:321
+msgid "Only sends to viewers of the applicable profile"
+msgstr ""
+
+#: ../../mod/thing.php:277 ../../mod/thing.php:323
+msgid "Name of thing e.g. something"
+msgstr "Nom de la chose, p.ex. quelque-chose"
+
+#: ../../mod/thing.php:279 ../../mod/thing.php:324
+msgid "URL of thing (optional)"
+msgstr "URL de la chose (optionnel)"
+
+#: ../../mod/thing.php:281 ../../mod/thing.php:325
+msgid "URL for photo of thing (optional)"
+msgstr "URL de l'image de la chose (optionnel)"
+
+#: ../../mod/thing.php:316
+msgid "Add Thing to your Profile"
+msgstr "Ajouter la chose à votre profil"
+
+#: ../../mod/invite.php:25
+msgid "Total invitation limit exceeded."
+msgstr "Limite du nombre total d'invitation dépassée."
+
+#: ../../mod/invite.php:49
#, php-format
-msgid "Please confirm your introduction/connection request to %s."
-msgstr "Merci de confirmer votre demande d'introduction auprès de %s."
+msgid "%s : Not a valid email address."
+msgstr "%s&nbsp: adresse courriel invalide."
-#: ../../mod/dfrn_request.php:511
-msgid "Confirm"
-msgstr "Confirmer"
+#: ../../mod/invite.php:76
+msgid "Please join us on Red"
+msgstr "Rejoignez-nous sur Red"
-#: ../../mod/dfrn_request.php:544 ../../include/items.php:2431
-msgid "[Name Withheld]"
-msgstr "[Nom non-publié]"
+#: ../../mod/invite.php:87
+msgid "Invitation limit exceeded. Please contact your site administrator."
+msgstr "Limite d'invitations dépassée. Merci de contacter l'administration de votre site."
-#: ../../mod/dfrn_request.php:551
-msgid "Introduction received at "
-msgstr "Introduction reçue sur "
+#: ../../mod/invite.php:92
+#, php-format
+msgid "%s : Message delivery failed."
+msgstr "%s&nbsp;: Échec dans la livraison du message."
-#: ../../mod/dfrn_request.php:635
+#: ../../mod/invite.php:96
#, php-format
+msgid "%d message sent."
+msgid_plural "%d messages sent."
+msgstr[0] "%d message envoyé."
+msgstr[1] "%d messages envoyés."
+
+#: ../../mod/invite.php:115
+msgid "You have no more invitations available"
+msgstr "Vous ne disposez plus d'aucune invitation"
+
+#: ../../mod/invite.php:141
+msgid "Send invitations"
+msgstr "Envoyer des invitations"
+
+#: ../../mod/invite.php:142
+msgid "Enter email addresses, one per line:"
+msgstr "Entrez les adresses de courriel, une par ligne&nbsp;:"
+
+#: ../../mod/invite.php:143 ../../mod/mail.php:216 ../../mod/mail.php:328
+msgid "Your message:"
+msgstr "Votre message&nbsp;:"
+
+#: ../../mod/invite.php:144
msgid ""
-"Diaspora members: Please do not use this form. Instead, enter \"%s\" into "
-"your Diaspora search bar."
-msgstr ""
-"Membres de Diaspora : N'utilisez pas ce formulaire. Entrez plutôt \"%s\" "
-"dans votre barre de recherche Diaspora."
+"You are cordially invited to join me and some other close friends on the Red"
+" Matrix - a revolutionary new decentralised communication and information "
+"tool."
+msgstr "Vous êtes cordialement invité à me rejoindre, ainsi que d'autres amis proches, sur la Matrice Red - un nouvel outil de communication acentré/décentralisé et révolutionnaire."
+
+#: ../../mod/invite.php:146
+msgid "You will need to supply this invitation code: $invite_code"
+msgstr "Vous devrez fournir ce code d'invitation&nbsp;: $invite_code"
+
+#: ../../mod/invite.php:147
+msgid "Please visit my channel at"
+msgstr "Merci de me rendre visite sur"
-#: ../../mod/dfrn_request.php:638
+#: ../../mod/invite.php:151
msgid ""
-"Please enter your 'Identity Address' from one of the following supported "
-"social networks:"
-msgstr ""
-"Saisissez votre \"Adresse d'identité\" de l'un des réseaux sociaux suivants:"
+"Once you have registered (on ANY Red Matrix site - they are all inter-"
+"connected), please connect with my Red Matrix channel address:"
+msgstr "Une fois inscrit (sur N'IMPORTE QUEL site Red Matrix - ils sont tous inter-connectés), merci de vous relier à l'adresse de mon canal&nbsp;:"
-#: ../../mod/dfrn_request.php:641
-msgid "Friend/Connection Request"
-msgstr "Requête de relation/amitié"
+#: ../../mod/invite.php:153
+msgid "Click the [Register] link on the following page to join."
+msgstr "Cliquez le lien [Inscription] sur la page suivante pour nous rejoindre."
-#: ../../mod/dfrn_request.php:642
+#: ../../mod/invite.php:155
msgid ""
-"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, "
-"testuser@identi.ca"
-msgstr ""
-"Exemples : jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, "
-"testuser@identi.ca"
+"For more information about the Red Matrix Project and why it has the "
+"potential to change the internet as we know it, please visit "
+"http://getzot.com"
+msgstr "Pour plus d'information sur le projet Red Matrix, et sa capacité à remodeler Internet, merci de visiter http://getzot.com"
+
+#: ../../mod/item.php:145
+msgid "Unable to locate original post."
+msgstr "Impossible de localiser la publication initiale."
+
+#: ../../mod/item.php:346
+msgid "Empty post discarded."
+msgstr "Publication vide défaussée."
+
+#: ../../mod/item.php:388
+msgid "Executable content type not permitted to this channel."
+msgstr "Les contenus de type 'exécutable' ne sont pas autorisés sur ce canal."
-#: ../../mod/dfrn_request.php:643
-msgid "Please answer the following:"
-msgstr "Merci de répondre à ce qui suit:"
+#: ../../mod/item.php:835
+msgid "System error. Post not saved."
+msgstr "Erreur système. Publication non sauvegardée."
-#: ../../mod/dfrn_request.php:644
+#: ../../mod/item.php:1102 ../../mod/wall_upload.php:41
+msgid "Wall Photos"
+msgstr "Photos du mur"
+
+#: ../../mod/item.php:1182
#, php-format
-msgid "Does %s know you?"
-msgstr "Est-ce que %s vous connaît?"
+msgid "You have reached your limit of %1$.0f top level posts."
+msgstr "Vous avez atteint votre limite de %1$.0f contributions \"racine\"."
-#: ../../mod/dfrn_request.php:647
-msgid "Add a personal note:"
-msgstr "Ajouter une note personnelle:"
+#: ../../mod/item.php:1188
+#, php-format
+msgid "You have reached your limit of %1$.0f webpages."
+msgstr "Vous avez atteint votre limite de %1$.0f pages web."
-#: ../../mod/dfrn_request.php:649 ../../include/contact_selectors.php:78
-msgid "Friendica"
-msgstr "Friendica"
+#: ../../mod/menu.php:21
+msgid "Menu updated."
+msgstr "Menu mis à jour."
+
+#: ../../mod/menu.php:25
+msgid "Unable to update menu."
+msgstr "Impossible de mettre le menu à jour."
+
+#: ../../mod/menu.php:30
+msgid "Menu created."
+msgstr "Menu créé."
+
+#: ../../mod/menu.php:34
+msgid "Unable to create menu."
+msgstr "Impossible de créer le menu."
+
+#: ../../mod/menu.php:57
+msgid "Manage Menus"
+msgstr "Gérer les menus"
+
+#: ../../mod/menu.php:60
+msgid "Drop"
+msgstr "Supprimer"
+
+#: ../../mod/menu.php:62
+msgid "Create a new menu"
+msgstr "Créer un nouveau menu"
+
+#: ../../mod/menu.php:63
+msgid "Delete this menu"
+msgstr "Supprimer ce menu"
+
+#: ../../mod/menu.php:64 ../../mod/menu.php:109
+msgid "Edit menu contents"
+msgstr "Éditer le contenu du menu"
+
+#: ../../mod/menu.php:65
+msgid "Edit this menu"
+msgstr "Éditer le menu"
+
+#: ../../mod/menu.php:80
+msgid "New Menu"
+msgstr "Nouveau menu"
+
+#: ../../mod/menu.php:81 ../../mod/menu.php:110
+msgid "Menu name"
+msgstr "Nom du menu"
+
+#: ../../mod/menu.php:81 ../../mod/menu.php:110
+msgid "Must be unique, only seen by you"
+msgstr "Doit être unique, ne sera vu que par vous"
+
+#: ../../mod/menu.php:82 ../../mod/menu.php:111
+msgid "Menu title"
+msgstr "Titre du menu"
+
+#: ../../mod/menu.php:82 ../../mod/menu.php:111
+msgid "Menu title as seen by others"
+msgstr "Titre du menu tel que vu par les visiteurs"
+
+#: ../../mod/menu.php:83 ../../mod/menu.php:112
+msgid "Allow bookmarks"
+msgstr "Autoriser les marque-pages"
+
+#: ../../mod/menu.php:83 ../../mod/menu.php:112
+msgid "Menu may be used to store saved bookmarks"
+msgstr "Le menu pourra être utilisé pour stocker des marque-pages"
-#: ../../mod/dfrn_request.php:650
-msgid "StatusNet/Federated Social Web"
-msgstr "StatusNet/Federated Social Web"
+#: ../../mod/menu.php:84 ../../mod/mitem.php:142 ../../mod/new_channel.php:117
+msgid "Create"
+msgstr "Créer"
-#: ../../mod/dfrn_request.php:652
-msgid "- please share from your own site as noted above"
-msgstr "- partagez depuis votre propre site comme indiqué ci-dessus"
+#: ../../mod/menu.php:92 ../../mod/mitem.php:14
+msgid "Menu not found."
+msgstr "Menu introuvable."
-#: ../../mod/dfrn_request.php:653
-msgid "Your Identity Address:"
-msgstr "Votre adresse d'identité:"
+#: ../../mod/menu.php:98
+msgid "Menu deleted."
+msgstr "Menu supprimé."
-#: ../../mod/dfrn_request.php:654
-msgid "Submit Request"
-msgstr "Envoyer la requête"
+#: ../../mod/menu.php:100
+msgid "Menu could not be deleted."
+msgstr "Impossible de supprimer le menu."
+
+#: ../../mod/menu.php:106
+msgid "Edit Menu"
+msgstr "Éditer le menu"
+
+#: ../../mod/menu.php:108
+msgid "Add or remove entries to this menu"
+msgstr "Ajouter/supprimer des entrées à ce menu"
+
+#: ../../mod/menu.php:114 ../../mod/mitem.php:186
+msgid "Modify"
+msgstr "Modifier"
+
+#: ../../mod/menu.php:120 ../../mod/mitem.php:78 ../../mod/xchan.php:27
+#: ../../mod/dirprofile.php:181
+msgid "Not found."
+msgstr "Introuvable."
+
+#: ../../mod/webpages.php:121 ../../mod/layouts.php:105
+#: ../../mod/blocks.php:96
+msgid "View"
+msgstr "Vue"
#: ../../mod/api.php:76 ../../mod/api.php:102
msgid "Authorize application connection"
@@ -2790,7 +3545,7 @@ msgstr "Autoriser l'application à se connecter"
#: ../../mod/api.php:77
msgid "Return to your app and insert this Securty Code:"
-msgstr "Retournez à votre application et saisissez ce Code de Sécurité : "
+msgstr "Merci de retourner vers votre application, et d'y insérer ce Code de Sécurité&nbsp;:"
#: ../../mod/api.php:89
msgid "Please login to continue."
@@ -2800,2502 +3555,3764 @@ msgstr "Merci de vous connecter pour continuer."
msgid ""
"Do you want to authorize this application to access your posts and contacts,"
" and/or create new posts for you?"
-msgstr ""
-"Voulez-vous autoriser cette application à accéder à vos notices et contacts,"
-" et/ou à créer des notices à votre place?"
-
-#: ../../mod/tagger.php:70 ../../mod/like.php:127
-#: ../../addon/facebook/facebook.php:1024
-#: ../../addon/communityhome/communityhome.php:158
-#: ../../addon/communityhome/communityhome.php:167
-#: ../../include/conversation.php:26 ../../include/conversation.php:35
-#: ../../include/diaspora.php:1211
-msgid "status"
-msgstr "le statut"
+msgstr "Voulez-vous autoriser cette application à accéder à vos publications et contacts, et/ou à publier en votre nom?"
+
+#: ../../mod/api.php:105 ../../mod/profiles.php:483 ../../mod/settings.php:878
+#: ../../mod/settings.php:883
+msgid "Yes"
+msgstr "Oui"
+
+#: ../../mod/api.php:106 ../../mod/profiles.php:484 ../../mod/settings.php:878
+#: ../../mod/settings.php:883
+msgid "No"
+msgstr "Non"
+
+#: ../../mod/apps.php:8
+msgid "No installed applications."
+msgstr "Aucune application installée."
+
+#: ../../mod/apps.php:13
+msgid "Applications"
+msgstr "Applications"
+
+#: ../../mod/rpost.php:86 ../../mod/editpost.php:42
+msgid "Edit post"
+msgstr "Éditer la contribution"
+
+#: ../../mod/cloud.php:112
+msgid "Red Matrix - Guests: Username: {your email address}, Password: +++"
+msgstr "Red Matrix - Pour les invités: Username={votre courriel}, MDP=+++"
+
+#: ../../mod/bookmarks.php:38
+msgid "Bookmark added"
+msgstr "Marque-page ajouté"
-#: ../../mod/tagger.php:103
+#: ../../mod/bookmarks.php:53
+msgid "My Bookmarks"
+msgstr "Mes marque-pages"
+
+#: ../../mod/bookmarks.php:64
+msgid "My Connections Bookmarks"
+msgstr "Marque-pages de mes relations"
+
+#: ../../mod/subthread.php:105
#, php-format
-msgid "%1$s tagged %2$s's %3$s with %4$s"
-msgstr "%1$s a taggué %3$s de %2$s avec %4$s"
+msgid "%1$s is following %2$s's %3$s"
+msgstr "%1$s suit %3$s de %2$s"
-#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1028
-#: ../../addon/communityhome/communityhome.php:172
-#: ../../include/conversation.php:43 ../../include/diaspora.php:1227
+#: ../../mod/update_network.php:23 ../../mod/update_channel.php:43
+#: ../../mod/update_search.php:46 ../../mod/update_display.php:25
+#: ../../mod/update_community.php:18
+msgid "[Embedded content - reload page to view]"
+msgstr "[Contenu embarqué - rechargez la page pour le voir]"
+
+#: ../../mod/chanview.php:77 ../../mod/home.php:50 ../../mod/page.php:47
+#: ../../mod/wall_upload.php:35
+msgid "Channel not found."
+msgstr "Canal introuvable."
+
+#: ../../mod/chanview.php:93
+msgid "toggle full screen mode"
+msgstr "(dés)activer le mode plein-écran"
+
+#: ../../mod/tagger.php:98
#, php-format
-msgid "%1$s likes %2$s's %3$s"
-msgstr "%1$s aime %3$s de %2$s"
+msgid "%1$s tagged %2$s's %3$s with %4$s"
+msgstr "%1$s a étiqueté le %3$s de %2$s par %4$s"
+
+#: ../../mod/chat.php:18 ../../mod/channel.php:25
+msgid "You must be logged in to see this page."
+msgstr "Vous devez vous connecter pour voir cette page."
+
+#: ../../mod/chat.php:163
+msgid "Leave Room"
+msgstr "Quitter le salon"
+
+#: ../../mod/chat.php:164
+msgid "I am away right now"
+msgstr "Je suis momentanément absent"
-#: ../../mod/like.php:146 ../../include/conversation.php:46
+#: ../../mod/chat.php:165
+msgid "I am online"
+msgstr "Je suis en ligne"
+
+#: ../../mod/chat.php:189 ../../mod/chat.php:209
+msgid "New Chatroom"
+msgstr "Nouveau salon"
+
+#: ../../mod/chat.php:190
+msgid "Chatroom Name"
+msgstr "Nom du salon"
+
+#: ../../mod/chat.php:205
#, php-format
-msgid "%1$s doesn't like %2$s's %3$s"
-msgstr "%1$s n'aime pas %3$s de %2$s"
+msgid "%1$s's Chatrooms"
+msgstr "Salons de %1$s"
-#: ../../mod/lostpass.php:16
-msgid "No valid account found."
-msgstr "Impossible de trouver un compte valide."
+#: ../../mod/viewconnections.php:17 ../../mod/search.php:13
+#: ../../mod/directory.php:15 ../../mod/display.php:9
+#: ../../mod/community.php:18 ../../mod/dirprofile.php:9
+#: ../../mod/photos.php:443
+msgid "Public access denied."
+msgstr "Accès public refusé."
-#: ../../mod/lostpass.php:31
-msgid "Password reset request issued. Check your email."
-msgstr "Réinitialisation du mot de passe en cours. Vérifiez votre courriel."
+#: ../../mod/viewconnections.php:43
+msgid "No connections."
+msgstr "Pas de relations."
-#: ../../mod/lostpass.php:42
+#: ../../mod/viewconnections.php:55
#, php-format
-msgid "Password reset requested at %s"
-msgstr "Requête de réinitialisation de mot de passe à %s"
+msgid "Visit %s's profile [%s]"
+msgstr "Visiter le profil de %s [%s]"
-#: ../../mod/lostpass.php:64
-msgid ""
-"Request could not be verified. (You may have previously submitted it.) "
-"Password reset failed."
-msgstr ""
-"Impossible d'honorer cette demande. (Vous l'avez peut-être déjà utilisée par"
-" le passé.) La réinitialisation a échoué."
+#: ../../mod/viewconnections.php:70
+msgid "View Connnections"
+msgstr "Voir les relations"
-#: ../../mod/lostpass.php:83
-msgid "Your password has been reset as requested."
-msgstr "Votre mot de passe a bien été réinitialisé."
+#: ../../mod/tagrm.php:41
+msgid "Tag removed"
+msgstr "Étiquette retirée"
-#: ../../mod/lostpass.php:84
-msgid "Your new password is"
-msgstr "Votre nouveau mot de passe est "
+#: ../../mod/tagrm.php:79
+msgid "Remove Item Tag"
+msgstr "Retirer une étiquette à l'élément"
-#: ../../mod/lostpass.php:85
-msgid "Save or copy your new password - and then"
-msgstr "Sauvez ou copiez ce nouveau mot de passe - puis"
+#: ../../mod/tagrm.php:81
+msgid "Select a tag to remove: "
+msgstr "Étiquette à retirer&nbsp;:"
-#: ../../mod/lostpass.php:86
-msgid "click here to login"
-msgstr "cliquez ici pour vous connecter"
+#: ../../mod/tagrm.php:93 ../../mod/delegate.php:130 ../../mod/photos.php:909
+msgid "Remove"
+msgstr "Retirer"
-#: ../../mod/lostpass.php:87
+#: ../../mod/connect.php:55 ../../mod/connect.php:103
+msgid "Continue"
+msgstr "Continuer"
+
+#: ../../mod/connect.php:84
+msgid "Premium Channel Setup"
+msgstr "Configuration du canal Premium"
+
+#: ../../mod/connect.php:86
+msgid "Enable premium channel connection restrictions"
+msgstr "Activer les restrictions liées au canal premium"
+
+#: ../../mod/connect.php:87
msgid ""
-"Your password may be changed from the <em>Settings</em> page after "
-"successful login."
-msgstr ""
-"Votre mot de passe peut être changé depuis la page "
-"&lt;em&gt;Réglages&lt;/em&gt;, une fois que vous serez connecté."
+"Please enter your restrictions or conditions, such as paypal receipt, usage "
+"guidelines, etc."
+msgstr "Merci de saisir les restrictions et/ou conditions - reçu Paypal, transaction Bitcoin, ligne de conduite, ..."
-#: ../../mod/lostpass.php:118
-msgid "Forgot your Password?"
-msgstr "Mot de passe oublié?"
+#: ../../mod/connect.php:89 ../../mod/connect.php:109
+msgid ""
+"This channel may require additional steps or acknowledgement of the "
+"following conditions prior to connecting:"
+msgstr "Avant d'autoriser la mise en relation, ce canal attire votre attention sur les conditions suivantes&nbsp;:"
-#: ../../mod/lostpass.php:119
+#: ../../mod/connect.php:90
msgid ""
-"Enter your email address and submit to have your password reset. Then check "
-"your email for further instructions."
-msgstr ""
-"Entrez votre adresse de courriel et validez pour réinitialiser votre mot de "
-"passe. Vous recevrez la suite des instructions par courriel."
+"Potential connections will then see the following text before proceeding:"
+msgstr "Les relations potentielles verront ce qui suit avant de pouvoir continuer&nbsp;:"
-#: ../../mod/lostpass.php:120
-msgid "Nickname or Email: "
-msgstr "Pseudo ou Courriel: "
+#: ../../mod/connect.php:91 ../../mod/connect.php:112
+msgid ""
+"By continuing, I certify that I have complied with any instructions provided"
+" on this page."
+msgstr "En continuant, je certifie que je me suis acquitté de toutes les instructions indiquées sur cette page."
-#: ../../mod/lostpass.php:121
-msgid "Reset"
-msgstr "Réinitialiser"
+#: ../../mod/connect.php:100
+msgid "(No specific instructions have been provided by the channel owner.)"
+msgstr "(Aucune instruction spécifique n'a été établie par le propriétaire du canal.)"
-#: ../../mod/friendica.php:43
-msgid "This is Friendica, version"
-msgstr "Motorisé par Friendica version"
+#: ../../mod/connect.php:108
+msgid "Restricted or Premium Channel"
+msgstr "Canal Premium ou restreint"
-#: ../../mod/friendica.php:44
-msgid "running at web location"
-msgstr "hébergé sur"
+#: ../../mod/delegate.php:95
+msgid "No potential page delegates located."
+msgstr "Aucun délégué potentiel n'a été trouvé pour cette page."
-#: ../../mod/friendica.php:46
+#: ../../mod/delegate.php:121
+msgid "Delegate Page Management"
+msgstr "Gestion des délégués de la page"
+
+#: ../../mod/delegate.php:123
msgid ""
-"Please visit <a "
-"href=\"http://project.friendika.com\">Project.Friendika.com</a> to learn "
-"more about the Friendica project."
-msgstr ""
-"Pour en savoir plus, vous pouvez nous rendre visite sur &lt;a "
-"href=\"http://project.friendica.com\"&gt;Project.Friendica.com&lt;/a&gt;"
+"Delegates are able to manage all aspects of this account/page except for "
+"basic account settings. Please do not delegate your personal account to "
+"anybody that you do not trust completely."
+msgstr "Les délégués sont capables de gérer tous les aspects de ce compte ou de cette page, à l'exception des réglages basiques du compte. Merci de ne déléguer votre compte personnel qu'à quelqu'un en qui vous avez une confiance aveugle."
-#: ../../mod/friendica.php:48
-msgid "Bug reports and issues: please visit"
-msgstr "Pour les rapports de bugs: rendez vous sur"
+#: ../../mod/delegate.php:124
+msgid "Existing Page Managers"
+msgstr "Actuels gestionnaires de pages"
-#: ../../mod/friendica.php:49
-msgid ""
-"Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - "
-"dot com"
-msgstr ""
-"Suggestions, remerciements, donations, etc. - écrivez à \"Info\" arob. "
-"Friendica - point com"
+#: ../../mod/delegate.php:126
+msgid "Existing Page Delegates"
+msgstr "Actuels délégués"
-#: ../../mod/friendica.php:54
-msgid "Installed plugins/addons/apps"
-msgstr "Extensions/greffons/applications installées"
+#: ../../mod/delegate.php:128
+msgid "Potential Delegates"
+msgstr "Délégués potentiels"
-#: ../../mod/friendica.php:62
-msgid "No installed plugins/addons/apps"
-msgstr "Aucune extension/greffon/application installée"
+#: ../../mod/delegate.php:131
+msgid "Add"
+msgstr "Ajouter"
-#: ../../mod/removeme.php:42 ../../mod/removeme.php:45
-msgid "Remove My Account"
-msgstr "Supprimer mon compte"
+#: ../../mod/delegate.php:132
+msgid "No entries."
+msgstr "Aucune entrée."
-#: ../../mod/removeme.php:43
-msgid ""
-"This will completely remove your account. Once this has been done it is not "
-"recoverable."
-msgstr ""
-"Ceci supprimera totalement votre compte. Cette opération est irréversible."
+#: ../../mod/chatsvc.php:102
+msgid "Away"
+msgstr "Absent"
-#: ../../mod/removeme.php:44
-msgid "Please enter your password for verification:"
-msgstr "Merci de saisir votre mot de passe pour vérification:"
+#: ../../mod/chatsvc.php:106
+msgid "Online"
+msgstr "En ligne"
-#: ../../mod/apps.php:4
-msgid "Applications"
-msgstr "Applications"
+#: ../../mod/attach.php:9
+msgid "Item not available."
+msgstr "Élément indisponible."
-#: ../../mod/apps.php:7
-msgid "No installed applications."
-msgstr "Pas d'application installée."
+#: ../../mod/mitem.php:47
+msgid "Menu element updated."
+msgstr "Entrée de menu mis-à-jour."
-#: ../../mod/notes.php:63 ../../include/text.php:628
-msgid "Save"
-msgstr "Sauver"
+#: ../../mod/mitem.php:51
+msgid "Unable to update menu element."
+msgstr "Impossible de mettre l'entrée de menu à jour."
-#: ../../mod/fsuggest.php:63
-msgid "Friend suggestion sent."
-msgstr "Suggestion d'amitié/contact envoyée."
+#: ../../mod/mitem.php:57
+msgid "Menu element added."
+msgstr "Entrée de menu ajouté."
-#: ../../mod/fsuggest.php:97
-msgid "Suggest Friends"
-msgstr "Suggérer des amis/contacts"
+#: ../../mod/mitem.php:61
+msgid "Unable to add menu element."
+msgstr "Impossible d'ajouter l'entrée de menu."
-#: ../../mod/fsuggest.php:99
-#, php-format
-msgid "Suggest a friend for %s"
-msgstr "Suggérer un ami/contact pour %s"
+#: ../../mod/mitem.php:96
+msgid "Manage Menu Elements"
+msgstr "Gérer les entrées de menu"
-#: ../../mod/viewsrc.php:7
-msgid "Access denied."
-msgstr "Accès refusé."
+#: ../../mod/mitem.php:99
+msgid "Edit menu"
+msgstr "Éditer le menu"
-#: ../../mod/directory.php:49
-msgid "Global Directory"
-msgstr "Annuaire global"
+#: ../../mod/mitem.php:102
+msgid "Edit element"
+msgstr "Éditer l'entrée"
-#: ../../mod/directory.php:55
-msgid "Normal site view"
-msgstr "Vue normale"
+#: ../../mod/mitem.php:103
+msgid "Drop element"
+msgstr "Supprimer l'entrée"
-#: ../../mod/directory.php:57
-msgid "Admin - View all site entries"
-msgstr "Admin - voir toutes les entrées"
+#: ../../mod/mitem.php:104
+msgid "New element"
+msgstr "Nouvelle entrée"
-#: ../../mod/directory.php:63
-msgid "Find on this site"
-msgstr "Trouver sur ce site"
+#: ../../mod/mitem.php:105
+msgid "Edit this menu container"
+msgstr "Éditer ce bloc de menu"
-#: ../../mod/directory.php:66
-msgid "Site Directory"
-msgstr "Annuaire local"
+#: ../../mod/mitem.php:106
+msgid "Add menu element"
+msgstr "Ajouter une entrée au menu"
-#: ../../mod/directory.php:125
-msgid "Gender: "
-msgstr "Genre: "
+#: ../../mod/mitem.php:107
+msgid "Delete this menu item"
+msgstr "Supprimer cet entrée du menu"
-#: ../../mod/directory.php:151
-msgid "No entries (some entries may be hidden)."
-msgstr "Aucune entrée (certaines peuvent être cachées)."
+#: ../../mod/mitem.php:108
+msgid "Edit this menu item"
+msgstr "Éditer cette entrée du menu"
+
+#: ../../mod/mitem.php:131
+msgid "New Menu Element"
+msgstr "Nouvelle entrée de menu"
+
+#: ../../mod/mitem.php:133 ../../mod/mitem.php:176
+msgid "Menu Item Permissions"
+msgstr "Permissions de l'entrée de menu"
+
+#: ../../mod/mitem.php:134 ../../mod/mitem.php:177 ../../mod/settings.php:947
+msgid "(click to open/close)"
+msgstr "(cliquer pour ouvrir/fermer)"
+
+#: ../../mod/mitem.php:136 ../../mod/mitem.php:180
+msgid "Link text"
+msgstr "Texte du lien"
+
+#: ../../mod/mitem.php:137 ../../mod/mitem.php:181
+msgid "URL of link"
+msgstr "URL du lien"
+
+#: ../../mod/mitem.php:138 ../../mod/mitem.php:182
+msgid "Use Red magic-auth if available"
+msgstr "Utiliser l'authentification automagique de Red, si possible"
+
+#: ../../mod/mitem.php:139 ../../mod/mitem.php:183
+msgid "Open link in new window"
+msgstr "Ouvrir le lien dans une nouvelle fenêtre"
+
+#: ../../mod/mitem.php:141 ../../mod/mitem.php:185
+msgid "Order in list"
+msgstr "Ordre dans la liste"
+
+#: ../../mod/mitem.php:141 ../../mod/mitem.php:185
+msgid "Higher numbers will sink to bottom of listing"
+msgstr "Les nombres les plus élevés seront descendus au bas de la liste"
+
+#: ../../mod/mitem.php:154
+msgid "Menu item not found."
+msgstr "Entrée de menu introuvable."
+
+#: ../../mod/mitem.php:163
+msgid "Menu item deleted."
+msgstr "Entrée de menu supprimée."
+
+#: ../../mod/mitem.php:165
+msgid "Menu item could not be deleted."
+msgstr "Impossible de supprimer l'entrée de menu."
+
+#: ../../mod/mitem.php:174
+msgid "Edit Menu Element"
+msgstr "Éditer l'entrée de menu"
+
+#: ../../mod/profperm.php:29 ../../mod/profperm.php:58
+msgid "Invalid profile identifier."
+msgstr "Identifiant de profil invalide."
+
+#: ../../mod/profperm.php:105
+msgid "Profile Visibility Editor"
+msgstr "Éditeur de visibilité de profil"
+
+#: ../../mod/profperm.php:109
+msgid "Click on a contact to add or remove."
+msgstr "Cliquez sur un contact pour l'ajouter ou le retirer."
+
+#: ../../mod/profperm.php:118
+msgid "Visible To"
+msgstr "Visible par"
+
+#: ../../mod/profperm.php:134 ../../mod/connections.php:250
+msgid "All Connections"
+msgstr "Toutes les relations"
+
+#: ../../mod/group.php:20
+msgid "Collection created."
+msgstr "Collection créée."
+
+#: ../../mod/group.php:26
+msgid "Could not create collection."
+msgstr "Impossible de créer la collection."
+
+#: ../../mod/group.php:54
+msgid "Collection updated."
+msgstr "Collection mise-à-jour."
+
+#: ../../mod/group.php:86
+msgid "Create a collection of channels."
+msgstr "Créez une collection de canaux."
+
+#: ../../mod/group.php:87 ../../mod/group.php:183
+msgid "Collection Name: "
+msgstr "Nom de la collection&nbsp;:"
+
+#: ../../mod/group.php:89 ../../mod/group.php:186
+msgid "Members are visible to other channels"
+msgstr "Les membres sont visibles par les autres canaux"
+
+#: ../../mod/group.php:107
+msgid "Collection removed."
+msgstr "Collection supprimée."
+
+#: ../../mod/group.php:109
+msgid "Unable to remove collection."
+msgstr "Impossible de supprimer la collection."
+
+#: ../../mod/group.php:182
+msgid "Collection Editor"
+msgstr "Éditeur de collection"
+
+#: ../../mod/group.php:196
+msgid "Members"
+msgstr "Membres"
+
+#: ../../mod/group.php:198
+msgid "All Connected Channels"
+msgstr "Tous canaux connectés"
+
+#: ../../mod/group.php:231
+msgid "Click on a channel to add or remove."
+msgstr "Cliquer sur un canal pour ajouter ou supprimer"
-#: ../../mod/admin.php:59 ../../mod/admin.php:295
+#: ../../mod/admin.php:48
+msgid "Theme settings updated."
+msgstr "Réglages du thème sauvegardés."
+
+#: ../../mod/admin.php:88 ../../mod/admin.php:430
msgid "Site"
msgstr "Site"
-#: ../../mod/admin.php:60 ../../mod/admin.php:460 ../../mod/admin.php:472
+#: ../../mod/admin.php:89 ../../mod/admin.php:737 ../../mod/admin.php:749
msgid "Users"
msgstr "Utilisateurs"
-#: ../../mod/admin.php:61 ../../mod/admin.php:549 ../../mod/admin.php:586
+#: ../../mod/admin.php:90 ../../mod/admin.php:835 ../../mod/admin.php:877
msgid "Plugins"
msgstr "Extensions"
-#: ../../mod/admin.php:76 ../../mod/admin.php:651
+#: ../../mod/admin.php:91 ../../mod/admin.php:1040 ../../mod/admin.php:1076
+msgid "Themes"
+msgstr "Thèmes"
+
+#: ../../mod/admin.php:92 ../../mod/admin.php:529
+msgid "Server"
+msgstr "Serveur"
+
+#: ../../mod/admin.php:93
+msgid "DB updates"
+msgstr "MàJ BD"
+
+#: ../../mod/admin.php:107 ../../mod/admin.php:114 ../../mod/admin.php:1163
msgid "Logs"
msgstr "Journaux"
-#: ../../mod/admin.php:81
+#: ../../mod/admin.php:113
+msgid "Plugin Features"
+msgstr "Fonctionnalités liées aux extensions"
+
+#: ../../mod/admin.php:115
msgid "User registrations waiting for confirmation"
-msgstr "Inscriptions en attente de confirmation"
+msgstr "Inscriptions en attente"
-#: ../../mod/admin.php:144 ../../mod/admin.php:294 ../../mod/admin.php:459
-#: ../../mod/admin.php:548 ../../mod/admin.php:585 ../../mod/admin.php:650
+#: ../../mod/admin.php:189
+msgid "Message queues"
+msgstr "File des messages"
+
+#: ../../mod/admin.php:194 ../../mod/admin.php:429 ../../mod/admin.php:528
+#: ../../mod/admin.php:736 ../../mod/admin.php:834 ../../mod/admin.php:876
+#: ../../mod/admin.php:1039 ../../mod/admin.php:1075 ../../mod/admin.php:1162
msgid "Administration"
msgstr "Administration"
-#: ../../mod/admin.php:145
+#: ../../mod/admin.php:195
msgid "Summary"
msgstr "Résumé"
-#: ../../mod/admin.php:146
+#: ../../mod/admin.php:197
msgid "Registered users"
msgstr "Utilisateurs inscrits"
-#: ../../mod/admin.php:148
+#: ../../mod/admin.php:199 ../../mod/admin.php:532
msgid "Pending registrations"
msgstr "Inscriptions en attente"
-#: ../../mod/admin.php:149
+#: ../../mod/admin.php:200
msgid "Version"
-msgstr "Versio"
+msgstr "Version"
-#: ../../mod/admin.php:151
+#: ../../mod/admin.php:202 ../../mod/admin.php:533
msgid "Active plugins"
-msgstr "Extensions activés"
+msgstr "Extensions actives"
-#: ../../mod/admin.php:243
+#: ../../mod/admin.php:350
msgid "Site settings updated."
-msgstr "Réglages du site mis-à-jour."
+msgstr "Réglages du site sauvegardés."
+
+#: ../../mod/admin.php:379 ../../mod/settings.php:709
+msgid "No special theme for mobile devices"
+msgstr "Pas de thème spécifique aux périphériques mobiles"
+
+#: ../../mod/admin.php:381
+msgid "No special theme for accessibility"
+msgstr "Pas de thème spécifique pour l'accessibilité"
-#: ../../mod/admin.php:287
+#: ../../mod/admin.php:409
msgid "Closed"
msgstr "Fermé"
-#: ../../mod/admin.php:288
+#: ../../mod/admin.php:410
msgid "Requires approval"
-msgstr "Demande une apptrobation"
+msgstr "Après approbation"
-#: ../../mod/admin.php:289
+#: ../../mod/admin.php:411
msgid "Open"
msgstr "Ouvert"
-#: ../../mod/admin.php:298
+#: ../../mod/admin.php:416
+msgid "Private"
+msgstr "Privé"
+
+#: ../../mod/admin.php:417
+msgid "Paid Access"
+msgstr "Accès payant"
+
+#: ../../mod/admin.php:418
+msgid "Free Access"
+msgstr "Accès gratuit"
+
+#: ../../mod/admin.php:419
+msgid "Tiered Access"
+msgstr "Accès par paliers"
+
+#: ../../mod/admin.php:432 ../../mod/register.php:189
+msgid "Registration"
+msgstr "Inscription"
+
+#: ../../mod/admin.php:433
msgid "File upload"
-msgstr "Téléversement de fichier"
+msgstr "Envoi de fichier"
-#: ../../mod/admin.php:299
+#: ../../mod/admin.php:434
msgid "Policies"
-msgstr "Politiques"
+msgstr "Stratégies"
-#: ../../mod/admin.php:300
+#: ../../mod/admin.php:435
msgid "Advanced"
msgstr "Avancé"
-#: ../../mod/admin.php:304 ../../addon/statusnet/statusnet.php:477
+#: ../../mod/admin.php:439
msgid "Site name"
msgstr "Nom du site"
-#: ../../mod/admin.php:305
+#: ../../mod/admin.php:440
msgid "Banner/Logo"
-msgstr "Bannière/Logo"
+msgstr "Bannière/logo"
-#: ../../mod/admin.php:306
+#: ../../mod/admin.php:441
+msgid "Administrator Information"
+msgstr "Information sur l'administration"
+
+#: ../../mod/admin.php:441
+msgid ""
+"Contact information for site administrators. Displayed on siteinfo page. "
+"BBCode can be used here"
+msgstr "Coordonnées de l'administration du site. Affichée sur la page 'siteinfo'. Vous pouvez utiliser du BBCode ici"
+
+#: ../../mod/admin.php:442
msgid "System language"
msgstr "Langue du système"
-#: ../../mod/admin.php:307
+#: ../../mod/admin.php:443
msgid "System theme"
msgstr "Thème du système"
-#: ../../mod/admin.php:309
+#: ../../mod/admin.php:443
+msgid ""
+"Default system theme - may be over-ridden by user profiles - <a href='#' "
+"id='cnftheme'>change theme settings</a>"
+msgstr "Thème par défaut - il peut être changé pour chaque profil utilisateur - <a href='#' id='cnftheme'>modifier le thème</a>"
+
+#: ../../mod/admin.php:444
+msgid "Mobile system theme"
+msgstr "Thème système pour mobile"
+
+#: ../../mod/admin.php:444
+msgid "Theme for mobile devices"
+msgstr "Thème dédié aux périphériques mobiles"
+
+#: ../../mod/admin.php:445
+msgid "Accessibility system theme"
+msgstr "Thème système pour l'accessibilité"
+
+#: ../../mod/admin.php:445
+msgid "Accessibility theme"
+msgstr "Thème pour l'accessibilité"
+
+#: ../../mod/admin.php:446
+msgid "Channel to use for this website's static pages"
+msgstr "Canal à utiliser pour les pages statiques de ce site"
+
+#: ../../mod/admin.php:446
+msgid "Site Channel"
+msgstr "Canal du site"
+
+#: ../../mod/admin.php:448
msgid "Maximum image size"
msgstr "Taille maximale des images"
-#: ../../mod/admin.php:311
+#: ../../mod/admin.php:448
+msgid ""
+"Maximum size in bytes of uploaded images. Default is 0, which means no "
+"limits."
+msgstr "Taille maximum, en octets, des images envoyées. Par défaut 0, soit sans limite."
+
+#: ../../mod/admin.php:449
msgid "Register policy"
msgstr "Politique d'inscription"
-#: ../../mod/admin.php:312
+#: ../../mod/admin.php:450
+msgid "Access policy"
+msgstr "Politique d'accès"
+
+#: ../../mod/admin.php:451
msgid "Register text"
msgstr "Texte d'inscription"
-#: ../../mod/admin.php:313
+#: ../../mod/admin.php:451
+msgid "Will be displayed prominently on the registration page."
+msgstr "Sera affiché de manière bien visible sur le formulaire d'inscription."
+
+#: ../../mod/admin.php:452
msgid "Accounts abandoned after x days"
msgstr "Les comptes sont abandonnés après x jours"
-#: ../../mod/admin.php:313
+#: ../../mod/admin.php:452
msgid ""
-"Will not waste system resources polling external sites for abandoned "
+"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
-msgstr ""
-"Pour ne pas gaspiller les ressources système, on cesse d'interroger les "
-"sites distants pour les comptes abandonnés. Mettre 0 pour désactiver cette "
-"fonction."
+msgstr "Pour éviter de gaspiller les ressources du système en essayer de mettre à jour des comptes abandonnés. Mettez 0 pour ne pas avoir de limite de temps."
-#: ../../mod/admin.php:314
+#: ../../mod/admin.php:453
msgid "Allowed friend domains"
-msgstr "Domaines autorisés"
+msgstr "Domaines amicaux"
+
+#: ../../mod/admin.php:453
+msgid ""
+"Comma separated list of domains which are allowed to establish friendships "
+"with this site. Wildcards are accepted. Empty to allow any domains"
+msgstr "Liste de noms de domaines - séparés par des virgules - pour lesquels ce site acceptera les demandes d'amitié ou de mise en relation. Les caractères génériques (*) sont acceptés. Laissez vide pour accepter tous les domaines."
-#: ../../mod/admin.php:315
+#: ../../mod/admin.php:454
msgid "Allowed email domains"
-msgstr "Domaines courriel autorisés"
+msgstr "Domaines de courriels amicaux"
+
+#: ../../mod/admin.php:454
+msgid ""
+"Comma separated list of domains which are allowed in email addresses for "
+"registrations to this site. Wildcards are accepted. Empty to allow any "
+"domains"
+msgstr "Liste de noms de domaines - séparés par des virgules - dont les adresses de courriel seront autorisées lors de l'inscription à ce site. Les caractères génériques (*) sont acceptés. Laissez vide pour accepter tous les domaines."
-#: ../../mod/admin.php:316
+#: ../../mod/admin.php:455
msgid "Block public"
-msgstr "Interdire la publication globale"
+msgstr "Bloquer public"
-#: ../../mod/admin.php:317
+#: ../../mod/admin.php:455
+msgid ""
+"Check to block public access to all otherwise public personal pages on this "
+"site unless you are currently logged in."
+msgstr "Cocher pour interdire tout accès public, y compris aux pages marquées comme publiques, aux visiteurs anonymes."
+
+#: ../../mod/admin.php:456
msgid "Force publish"
-msgstr "Forcer la publication globale"
+msgstr "Forcer publication"
-#: ../../mod/admin.php:318
-msgid "Global directory update URL"
-msgstr "URL de mise-à-jour de l'annuaire global"
+#: ../../mod/admin.php:456
+msgid ""
+"Check to force all profiles on this site to be listed in the site directory."
+msgstr "Cocher pour forcer la publication de tous les profils du site dans l'annuaire."
-#: ../../mod/admin.php:320
-msgid "Block multiple registrations"
-msgstr "Interdire les inscriptions multiples"
+#: ../../mod/admin.php:457
+msgid "No login on Homepage"
+msgstr "Pas de connexion depuis la page d'accueil"
-#: ../../mod/admin.php:321
-msgid "OpenID support"
-msgstr "Support OpenID"
+#: ../../mod/admin.php:457
+msgid ""
+"Check to hide the login form from your sites homepage when visitors arrive "
+"who are not logged in (e.g. when you put the content of the homepage in via "
+"the site channel)."
+msgstr "Cocher pour ne pas montrer le formulaire de connexion sur la page d'accueil (typiquement, pour quand vous utilisez la page d'accueil pour afficher du contenu via le canal du site)."
-#: ../../mod/admin.php:322
-msgid "Gravatar support"
-msgstr "Support Gravatar"
+#: ../../mod/admin.php:459
+msgid "Proxy user"
+msgstr "Utilisateurs du proxy"
-#: ../../mod/admin.php:323
-msgid "Fullname check"
-msgstr "Vérification du \"Prénom Nom\""
+#: ../../mod/admin.php:460
+msgid "Proxy URL"
+msgstr "URL du proxy"
-#: ../../mod/admin.php:324
-msgid "UTF-8 Regular expressions"
-msgstr "Regex UTF-8"
+#: ../../mod/admin.php:461
+msgid "Network timeout"
+msgstr "Délai maximal du réseau"
-#: ../../mod/admin.php:325
-msgid "Show Community Page"
-msgstr "Montrer la \"Place publique\""
+#: ../../mod/admin.php:461
+msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
+msgstr "En secondes. Mettre à 0 pour ne pas avoir de délai maximal (pas recommandé)."
-#: ../../mod/admin.php:326
-msgid "Enable OStatus support"
-msgstr "Activer le support d'OStatus"
+#: ../../mod/admin.php:462
+msgid "Delivery interval"
+msgstr "Intervalle de distribution"
-#: ../../mod/admin.php:327
-msgid "Enable Diaspora support"
-msgstr "Activer le support de Diaspora"
+#: ../../mod/admin.php:462
+msgid ""
+"Delay background delivery processes by this many seconds to reduce system "
+"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
+"for large dedicated servers."
+msgstr "Temporise le processus de distribution de tant de secondes pour réduire la charge sur le système. Valeurs recommandées&nbsp;: 4-5 pour les serveurs mutualisés, 2-3 pour les VPS. 0-1 pour les gros serveurs dédiés."
-#: ../../mod/admin.php:328
-msgid "Only allow Friendika contacts"
-msgstr "N'autoriser que les contacts Friendica"
+#: ../../mod/admin.php:463
+msgid "Poll interval"
+msgstr "Intervalle de scrutation"
-#: ../../mod/admin.php:329
-msgid "Verify SSL"
-msgstr "Vérifier SSL"
+#: ../../mod/admin.php:463
+msgid ""
+"Delay background polling processes by this many seconds to reduce system "
+"load. If 0, use delivery interval."
+msgstr "Temporise le processus de scrutation en tâche de fond de tant de secondes, pour réduire la charge. Si 0, utilise l'intervalle de distribution."
-#: ../../mod/admin.php:330
-msgid "Proxy user"
-msgstr "Utilisateur du proxy"
+#: ../../mod/admin.php:464
+msgid "Maximum Load Average"
+msgstr "Charge moyenne maximale"
-#: ../../mod/admin.php:331
-msgid "Proxy URL"
-msgstr "URL du proxy"
+#: ../../mod/admin.php:464
+msgid ""
+"Maximum system load before delivery and poll processes are deferred - "
+"default 50."
+msgstr "Charge système maximale au-delà de laquelle distribution et scrutation sont mis en pause - par défaut 50."
-#: ../../mod/admin.php:332
-msgid "Network timeout"
-msgstr "Dépassement du délai d'attente du réseau"
+#: ../../mod/admin.php:520
+msgid "No server found"
+msgstr "Serveur introuvable"
+
+#: ../../mod/admin.php:527 ../../mod/admin.php:750
+msgid "ID"
+msgstr "ID"
+
+#: ../../mod/admin.php:527
+msgid "for channel"
+msgstr "pour le canal"
+
+#: ../../mod/admin.php:527
+msgid "on server"
+msgstr "sur le serveur"
+
+#: ../../mod/admin.php:527
+msgid "Status"
+msgstr "État"
-#: ../../mod/admin.php:353
+#: ../../mod/admin.php:548
+msgid "Update has been marked successful"
+msgstr "La mise à jour a été marquée comme réussie"
+
+#: ../../mod/admin.php:558
+#, php-format
+msgid "Executing %s failed. Check system logs."
+msgstr "L'éxecution de %s a échoué. Merci de vérifier les journaux du système."
+
+#: ../../mod/admin.php:561
+#, php-format
+msgid "Update %s was successfully applied."
+msgstr "La mise à jour %s a été appliquée avec succès."
+
+#: ../../mod/admin.php:565
+#, php-format
+msgid "Update %s did not return a status. Unknown if it succeeded."
+msgstr "La mise à jour %s n'a pas retourné d'information. Impossible de savoir si elle a réussi ou non."
+
+#: ../../mod/admin.php:568
+#, php-format
+msgid "Update function %s could not be found."
+msgstr "La fonction de mise à jour %s est introuvable."
+
+#: ../../mod/admin.php:583
+msgid "No failed updates."
+msgstr "Aucune mise à jour défaillante."
+
+#: ../../mod/admin.php:587
+msgid "Failed Updates"
+msgstr "Mises à jour défaillantes"
+
+#: ../../mod/admin.php:589
+msgid "Mark success (if update was manually applied)"
+msgstr "Marquer comme réussie (si la mise à jour a été réalisée manuellement)"
+
+#: ../../mod/admin.php:590
+msgid "Attempt to execute this update step automatically"
+msgstr "Tenter de réaliser cette étape de mise à jour automatiquement"
+
+#: ../../mod/admin.php:616
#, php-format
-msgid "%s user blocked"
+msgid "%s user blocked/unblocked"
msgid_plural "%s users blocked/unblocked"
-msgstr[0] "%s utilisateur bloqué"
-msgstr[1] "%s utilisateurs (dé)bloqués"
+msgstr[0] "%s utilisateur bloqué/débloqué"
+msgstr[1] "%s utilisateurs bloqués/débloqués"
-#: ../../mod/admin.php:360
+#: ../../mod/admin.php:623
#, php-format
msgid "%s user deleted"
msgid_plural "%s users deleted"
msgstr[0] "%s utilisateur supprimé"
msgstr[1] "%s utilisateurs supprimés"
-#: ../../mod/admin.php:394
+#: ../../mod/admin.php:654
+msgid "Account not found"
+msgstr "Compte introuvable"
+
+#: ../../mod/admin.php:665
#, php-format
msgid "User '%s' deleted"
msgstr "Utilisateur '%s' supprimé"
-#: ../../mod/admin.php:401
+#: ../../mod/admin.php:674
#, php-format
msgid "User '%s' unblocked"
msgstr "Utilisateur '%s' débloqué"
-#: ../../mod/admin.php:401
+#: ../../mod/admin.php:674
#, php-format
msgid "User '%s' blocked"
msgstr "Utilisateur '%s' bloqué"
-#: ../../mod/admin.php:462
+#: ../../mod/admin.php:739
msgid "select all"
msgstr "tout sélectionner"
-#: ../../mod/admin.php:463
+#: ../../mod/admin.php:740
msgid "User registrations waiting for confirm"
-msgstr "Inscriptions d'utilisateurs en attente de confirmation"
+msgstr "Inscriptions en attente d'approbation"
-#: ../../mod/admin.php:464
+#: ../../mod/admin.php:741
msgid "Request date"
msgstr "Date de la demande"
-#: ../../mod/admin.php:464 ../../mod/admin.php:473
-#: ../../include/contact_selectors.php:78
-msgid "Email"
-msgstr "Courriel"
-
-#: ../../mod/admin.php:465
+#: ../../mod/admin.php:742
msgid "No registrations."
msgstr "Pas d'inscriptions."
-#: ../../mod/admin.php:467
+#: ../../mod/admin.php:743
+msgid "Approve"
+msgstr "Approuver"
+
+#: ../../mod/admin.php:744
msgid "Deny"
-msgstr "Rejetter"
+msgstr "Refuser"
-#: ../../mod/admin.php:473
+#: ../../mod/admin.php:746 ../../mod/connedit.php:333
+#: ../../mod/connedit.php:475
+msgid "Block"
+msgstr "Bloquer"
+
+#: ../../mod/admin.php:747 ../../mod/connedit.php:333
+#: ../../mod/connedit.php:475
+msgid "Unblock"
+msgstr "Débloquer"
+
+#: ../../mod/admin.php:750
msgid "Register date"
msgstr "Date d'inscription"
-#: ../../mod/admin.php:473
+#: ../../mod/admin.php:750
msgid "Last login"
msgstr "Dernière connexion"
-#: ../../mod/admin.php:473
-msgid "Last item"
-msgstr "Dernier élément"
+#: ../../mod/admin.php:750
+msgid "Expires"
+msgstr "Expire"
-#: ../../mod/admin.php:473
-msgid "Account"
-msgstr "Compte"
+#: ../../mod/admin.php:750
+msgid "Service Class"
+msgstr "Classe de service"
-#: ../../mod/admin.php:475
+#: ../../mod/admin.php:752
msgid ""
"Selected users will be deleted!\\n\\nEverything these users had posted on "
"this site will be permanently deleted!\\n\\nAre you sure?"
-msgstr ""
-"Les utilisateurs sélectionnés vont être supprimés!\\n\\nTout ce qu'ils ont "
-"posté sur ce site sera définitivement perdu!\\n\\nÊtes-vous certain?"
+msgstr "Les utilisateurs sélectionnés seront supprimés!\\n\\nTout ce que ces utilisateurs ont publié sur ce site sera détruit de manière définitive!\\n\\nÊtes-vous certain?"
-#: ../../mod/admin.php:476
+#: ../../mod/admin.php:753
msgid ""
"The user {0} will be deleted!\\n\\nEverything this user has posted on this "
"site will be permanently deleted!\\n\\nAre you sure?"
-msgstr ""
-"L'utilisateur {0} va être supprimé!\\n\\nTout ce qu'il a posté sur ce site "
-"sera définitivement perdu!\\n\\nÊtes-vous certain?"
+msgstr "L'utilisateur {0} sera supprimé!\\n\\nTout ce que cet utilisateur a publié sur ce site sera détruit de manière définitive!\\n\\nÊtes-vous certain?"
-#: ../../mod/admin.php:512
+#: ../../mod/admin.php:794
#, php-format
msgid "Plugin %s disabled."
msgstr "Extension %s désactivée."
-#: ../../mod/admin.php:516
+#: ../../mod/admin.php:798
#, php-format
msgid "Plugin %s enabled."
msgstr "Extension %s activée."
-#: ../../mod/admin.php:526
+#: ../../mod/admin.php:808 ../../mod/admin.php:1010
msgid "Disable"
msgstr "Désactiver"
-#: ../../mod/admin.php:528
+#: ../../mod/admin.php:810 ../../mod/admin.php:1012
msgid "Enable"
msgstr "Activer"
-#: ../../mod/admin.php:550
+#: ../../mod/admin.php:836 ../../mod/admin.php:1041
msgid "Toggle"
-msgstr "Activer/Désactiver"
+msgstr "(Dés)activer"
-#: ../../mod/admin.php:551 ../../include/nav.php:128
-msgid "Settings"
-msgstr "Réglages"
+#: ../../mod/admin.php:844 ../../mod/admin.php:1051
+msgid "Author: "
+msgstr "Auteur&nbsp;:"
+
+#: ../../mod/admin.php:845 ../../mod/admin.php:1052
+msgid "Maintainer: "
+msgstr "Maintenu par&nbsp;:"
-#: ../../mod/admin.php:613
+#: ../../mod/admin.php:974
+msgid "No themes found."
+msgstr "Aucun thème trouvé."
+
+#: ../../mod/admin.php:1033
+msgid "Screenshot"
+msgstr "Aperçu"
+
+#: ../../mod/admin.php:1081
+msgid "[Experimental]"
+msgstr "[Expérimental]"
+
+#: ../../mod/admin.php:1082
+msgid "[Unsupported]"
+msgstr "[Non-supporté]"
+
+#: ../../mod/admin.php:1109
msgid "Log settings updated."
-msgstr "Réglages des journaux mis-à-jour."
+msgstr "Réglages du journal sauvegardés."
-#: ../../mod/admin.php:653
+#: ../../mod/admin.php:1165
msgid "Clear"
-msgstr "Effacer"
+msgstr "Vider"
-#: ../../mod/admin.php:659
+#: ../../mod/admin.php:1171
msgid "Debugging"
-msgstr "Déboguage"
+msgstr "Débogage"
-#: ../../mod/admin.php:660
+#: ../../mod/admin.php:1172
msgid "Log file"
-msgstr "Fichier de journaux"
+msgstr "Fichier du journal"
-#: ../../mod/admin.php:660
-msgid "Must be writable by web server. Relative to your Friendika index.php."
-msgstr ""
-"Doit être accessible en écriture pour le serveur web. Le chemin est relative"
-" à l'index.php de Friendica."
+#: ../../mod/admin.php:1172
+msgid ""
+"Must be writable by web server. Relative to your Red top-level directory."
+msgstr "Doit être accessible en écriture par le serveur web. Chemin relatif à la racine de Red."
-#: ../../mod/admin.php:661
+#: ../../mod/admin.php:1173
msgid "Log level"
-msgstr "Niveau de journalisaton"
+msgstr "Niveau de journalisation"
-#: ../../mod/admin.php:702
-msgid "Close"
-msgstr "Fermer"
+#: ../../mod/filer.php:35
+msgid "- select -"
+msgstr "- choisir -"
-#: ../../mod/admin.php:708
-msgid "FTP Host"
-msgstr "Hôte FTP"
+#: ../../mod/home.php:89
+#, php-format
+msgid "Welcome to %s"
+msgstr "Bienvenue sur %s"
-#: ../../mod/admin.php:709
-msgid "FTP Path"
-msgstr "Chemin FTP"
+#: ../../mod/editpost.php:20 ../../mod/editlayout.php:36
+#: ../../mod/editwebpage.php:32 ../../mod/editblock.php:36
+msgid "Item not found"
+msgstr "Élément introuvable"
-#: ../../mod/admin.php:710
-msgid "FTP User"
-msgstr "Utilisateur FTP"
+#: ../../mod/editpost.php:31
+msgid "Item is not editable"
+msgstr "Élément non-éditable"
-#: ../../mod/admin.php:711
-msgid "FTP Password"
-msgstr "Mot de passe FTP"
+#: ../../mod/editpost.php:53
+msgid "Delete item?"
+msgstr "Supprimer l'élément?"
-#: ../../mod/item.php:84
-msgid "Unable to locate original post."
-msgstr "Impossible de localiser l'article original."
+#: ../../mod/editpost.php:107 ../../mod/editlayout.php:110
+#: ../../mod/editwebpage.php:148 ../../mod/editblock.php:124
+msgid "Insert YouTube video"
+msgstr "Insérer une vidéo YouTube"
-#: ../../mod/item.php:199
-msgid "Empty post discarded."
-msgstr "Article vide défaussé."
+#: ../../mod/editpost.php:108 ../../mod/editlayout.php:111
+#: ../../mod/editwebpage.php:149 ../../mod/editblock.php:125
+msgid "Insert Vorbis [.ogg] video"
+msgstr "Insérer une vidéo Vorbis [.ogg]"
-#: ../../mod/item.php:675 ../../mod/item.php:720 ../../mod/item.php:764
-#: ../../mod/item.php:807 ../../include/items.php:1769
-#: ../../include/items.php:2068 ../../include/items.php:2115
-#: ../../include/items.php:2227 ../../include/items.php:2273
-msgid "noreply"
-msgstr "noreply"
+#: ../../mod/editpost.php:109 ../../mod/editlayout.php:112
+#: ../../mod/editwebpage.php:150 ../../mod/editblock.php:126
+msgid "Insert Vorbis [.ogg] audio"
+msgstr "Insérer un son Vorbis [.ogg]"
-#: ../../mod/item.php:719 ../../mod/item.php:806 ../../include/items.php:2272
-msgid "Administrator@"
-msgstr "Administrator@"
+#: ../../mod/directory.php:144 ../../mod/profiles.php:561
+#: ../../mod/dirprofile.php:98
+msgid "Age: "
+msgstr "Age&nbsp;:"
-#: ../../mod/item.php:722 ../../include/items.php:2117
-#: ../../include/items.php:2275
-#, php-format
-msgid "%s commented on an item at %s"
-msgstr "%s a commenté un élément à %s"
+#: ../../mod/directory.php:147 ../../mod/dirprofile.php:101
+msgid "Gender: "
+msgstr "Sexe/genre&nbsp;:"
+
+#: ../../mod/directory.php:208
+msgid "Finding:"
+msgstr "Recherche&nbsp;:"
-#: ../../mod/item.php:809
+#: ../../mod/directory.php:216
+msgid "next page"
+msgstr "page suiv."
+
+#: ../../mod/directory.php:216
+msgid "previous page"
+msgstr "page préc."
+
+#: ../../mod/directory.php:223
+msgid "No entries (some entries may be hidden)."
+msgstr "Pas d'entrées (certaines peuvent être cachées)."
+
+#: ../../mod/connedit.php:49 ../../mod/connections.php:37
+msgid "Could not access contact record."
+msgstr "Impossible d'accéder aux détails du contact."
+
+#: ../../mod/connedit.php:63 ../../mod/connections.php:51
+msgid "Could not locate selected profile."
+msgstr "Impossible de localiser le profil sélectionné."
+
+#: ../../mod/connedit.php:107 ../../mod/connections.php:94
+msgid "Connection updated."
+msgstr "Connexion mise à jour."
+
+#: ../../mod/connedit.php:109 ../../mod/connections.php:96
+msgid "Failed to update connection record."
+msgstr "Impossible de mettre à jour les détails de la relation."
+
+#: ../../mod/connedit.php:204
+msgid "Could not access address book record."
+msgstr "Impossible d'accéder aux détails du carnet d'adresses."
+
+#: ../../mod/connedit.php:218
+msgid "Refresh failed - channel is currently unavailable."
+msgstr "Actualisation impossible - le canal est momentanément indisponible."
+
+#: ../../mod/connedit.php:225
+msgid "Channel has been unblocked"
+msgstr "Le canal n'est plus bloqué"
+
+#: ../../mod/connedit.php:226
+msgid "Channel has been blocked"
+msgstr "Le canal est bloqué"
+
+#: ../../mod/connedit.php:230 ../../mod/connedit.php:242
+#: ../../mod/connedit.php:254 ../../mod/connedit.php:266
+#: ../../mod/connedit.php:281
+msgid "Unable to set address book parameters."
+msgstr "Impossible de régler les paramètres du carnet d'adresses."
+
+#: ../../mod/connedit.php:237
+msgid "Channel has been unignored"
+msgstr "Le canal n'est plus ignoré"
+
+#: ../../mod/connedit.php:238
+msgid "Channel has been ignored"
+msgstr "Le canal est ignoré"
+
+#: ../../mod/connedit.php:249
+msgid "Channel has been unarchived"
+msgstr "Le canal n'est plus archivé"
+
+#: ../../mod/connedit.php:250
+msgid "Channel has been archived"
+msgstr "Le canal est archivé"
+
+#: ../../mod/connedit.php:261
+msgid "Channel has been unhidden"
+msgstr "Le canal n'est plus caché"
+
+#: ../../mod/connedit.php:262
+msgid "Channel has been hidden"
+msgstr "Le canal est caché"
+
+#: ../../mod/connedit.php:276
+msgid "Channel has been approved"
+msgstr "Le canal est approuvé"
+
+#: ../../mod/connedit.php:277
+msgid "Channel has been unapproved"
+msgstr "Le canal n'est plus approuvé"
+
+#: ../../mod/connedit.php:295
+msgid "Contact has been removed."
+msgstr "Le canal a été supprimé"
+
+#: ../../mod/connedit.php:315
#, php-format
-msgid "%s posted to your profile wall at %s"
-msgstr "%s a posté sur votre mur à %s"
+msgid "View %s's profile"
+msgstr "Voir le profil de %s"
-#: ../../mod/item.php:843
-msgid "System error. Post not saved."
-msgstr "Erreur système. Publication non sauvée."
+#: ../../mod/connedit.php:319
+msgid "Refresh Permissions"
+msgstr "Actualiser les permissions"
+
+#: ../../mod/connedit.php:322
+msgid "Fetch updated permissions"
+msgstr "Récupérer les permissions les plus récentes"
+
+#: ../../mod/connedit.php:326
+msgid "Recent Activity"
+msgstr "Activité récente"
+
+#: ../../mod/connedit.php:329
+msgid "View recent posts and comments"
+msgstr "Voir les contributions et commentaires récentes"
+
+#: ../../mod/connedit.php:336
+msgid "Block or Unblock this connection"
+msgstr "Bloquer ou Débloquer cette relation"
+
+#: ../../mod/connedit.php:340 ../../mod/connedit.php:476
+msgid "Unignore"
+msgstr "Ne plus ignorer"
+
+#: ../../mod/connedit.php:340 ../../mod/connedit.php:476
+#: ../../mod/notifications.php:51
+msgid "Ignore"
+msgstr "Ignorer"
+
+#: ../../mod/connedit.php:343
+msgid "Ignore or Unignore this connection"
+msgstr "Ignorer ou ne plus ignorer cette relation"
+
+#: ../../mod/connedit.php:346
+msgid "Unarchive"
+msgstr "Ne plus archiver"
+
+#: ../../mod/connedit.php:346
+msgid "Archive"
+msgstr "Archiver"
+
+#: ../../mod/connedit.php:349
+msgid "Archive or Unarchive this connection"
+msgstr "Archiver ou ne plus archiver cette relation"
+
+#: ../../mod/connedit.php:352
+msgid "Unhide"
+msgstr "Ne plus cacher"
+
+#: ../../mod/connedit.php:352
+msgid "Hide"
+msgstr "Cacher"
+
+#: ../../mod/connedit.php:355
+msgid "Hide or Unhide this connection"
+msgstr "Cacher ou ne plus cacher cette relation"
+
+#: ../../mod/connedit.php:362
+msgid "Delete this connection"
+msgstr "Supprimer cette relation"
+
+#: ../../mod/connedit.php:395
+msgid "Unknown"
+msgstr "Inconnu"
+
+#: ../../mod/connedit.php:405 ../../mod/connedit.php:434
+msgid "Approve this connection"
+msgstr "Approuver cette relation"
+
+#: ../../mod/connedit.php:405
+msgid "Accept connection to allow communication"
+msgstr "Accepter la relation pour permettre la communication"
-#: ../../mod/item.php:868
+#: ../../mod/connedit.php:421
+msgid "Automatic Permissions Settings"
+msgstr "Permissions automatiques"
+
+#: ../../mod/connedit.php:421
#, php-format
+msgid "Connections: settings for %s"
+msgstr "Relations&nbsp;: réglages pour %s"
+
+#: ../../mod/connedit.php:425
msgid ""
-"This message was sent to you by %s, a member of the Friendika social "
-"network."
-msgstr ""
-"Ce message vous a été envoyé par %s, un membre du réseau social Friendica."
+"When receiving a channel introduction, any permissions provided here will be"
+" applied to the new connection automatically and the introduction approved. "
+"Leave this page if you do not wish to use this feature."
+msgstr "Pour chaque introduction reçue, toutes les permissions définies ici seront appliquées aux nouvelles relations automatiquement, et l'introduction sera approuvée. Laissez cette page telle quelle si vous ne souhaitez pas utiliser ce mécanisme."
+
+#: ../../mod/connedit.php:427
+msgid "Slide to adjust your degree of friendship"
+msgstr "Faites glisser pour ajuster le niveau de la relation"
+
+#: ../../mod/connedit.php:433
+msgid "inherited"
+msgstr "par héritage"
+
+#: ../../mod/connedit.php:435
+msgid "Connection has no individual permissions!"
+msgstr "Cette relation n'a aucune permission spécifique!"
+
+#: ../../mod/connedit.php:436
+msgid ""
+"This may be appropriate based on your <a href=\"settings\">privacy "
+"settings</a>, though you may wish to review the \"Advanced Permissions\"."
+msgstr "Ceci devrait correspondre à vos <a href=\"settings\">réglages de vie privée</a>, mais vous pouvez toujours contrôler les \"Permissions avancées\"."
+
+#: ../../mod/connedit.php:438
+msgid "Profile Visibility"
+msgstr "Visibilité du profil"
-#: ../../mod/item.php:870
+#: ../../mod/connedit.php:439
#, php-format
-msgid "You may visit them online at %s"
-msgstr "Vous pouvez leur rendre visite sur %s"
+msgid ""
+"Please choose the profile you would like to display to %s when viewing your "
+"profile securely."
+msgstr "Merci de choisir le profil que vous souhaitez montrer quand %s visite votre profil de manière authentifiée."
+
+#: ../../mod/connedit.php:440
+msgid "Contact Information / Notes"
+msgstr "Notes / Information de contact"
+
+#: ../../mod/connedit.php:441
+msgid "Edit contact notes"
+msgstr "Éditer les notes du contact"
+
+#: ../../mod/connedit.php:443
+msgid "Their Settings"
+msgstr "Ses réglages"
+
+#: ../../mod/connedit.php:444
+msgid "My Settings"
+msgstr "Mes réglages"
+
+#: ../../mod/connedit.php:446
+msgid "Forum Members"
+msgstr "Membres de forum"
-#: ../../mod/item.php:871
+#: ../../mod/connedit.php:447
+msgid "Soapbox"
+msgstr "Boîte à savon"
+
+#: ../../mod/connedit.php:448
+msgid "Full Sharing (typical social network permissions)"
+msgstr "Partage complet (fonctionnement habituel des réseaux sociaux)"
+
+#: ../../mod/connedit.php:449
+msgid "Cautious Sharing "
+msgstr "Partage modéré"
+
+#: ../../mod/connedit.php:450
+msgid "Follow Only"
+msgstr "Suivi uniquement"
+
+#: ../../mod/connedit.php:451
+msgid "Individual Permissions"
+msgstr "Permissions spécifiques"
+
+#: ../../mod/connedit.php:452
msgid ""
-"Please contact the sender by replying to this post if you do not wish to "
-"receive these messages."
-msgstr ""
-"Merci de contacter l'émeteur en répondant à cette publication si vous ne "
-"souhaitez pas recevoir ces messages."
+"Some permissions may be inherited from your channel <a "
+"href=\"settings\">privacy settings</a>, which have higher priority than "
+"individual settings. Changing those inherited settings on this page will "
+"have no effect."
+msgstr "Certaines permissions peuvent être héritées de vos <a href=\"settings\">réglages de vie privée</a>, lesquels sont prioritaires sur les réglages spécifiques. Changer ces permissions héritées sur la présente page n'aura aucun effet."
+
+#: ../../mod/connedit.php:453
+msgid "Advanced Permissions"
+msgstr "Permissions avancées"
+
+#: ../../mod/connedit.php:454
+msgid "Simple Permissions (select one and submit)"
+msgstr "Permissions simples (en choisir une, puis valider)"
-#: ../../mod/item.php:873
+#: ../../mod/connedit.php:458
#, php-format
-msgid "%s posted an update."
-msgstr "%s a publié une mise à jour."
+msgid "Visit %s's profile - %s"
+msgstr "Visiter le profil de %s - %s"
-#: ../../mod/tagrm.php:41
-msgid "Tag removed"
-msgstr "Étiquette enlevée"
+#: ../../mod/connedit.php:459
+msgid "Block/Unblock contact"
+msgstr "Bloquer/Débloquer le contact"
-#: ../../mod/tagrm.php:79
-msgid "Remove Item Tag"
-msgstr "Enlever l'étiquette de l'élément"
+#: ../../mod/connedit.php:460
+msgid "Ignore contact"
+msgstr "Ignorer le contact"
-#: ../../mod/tagrm.php:81
-msgid "Select a tag to remove: "
-msgstr "Choisir une étiquette à enlever: "
+#: ../../mod/connedit.php:461
+msgid "Repair URL settings"
+msgstr "Réparer les réglages d'URL"
-#: ../../mod/tagrm.php:93
-msgid "Remove"
-msgstr "Utiliser comme photo de profil"
+#: ../../mod/connedit.php:462
+msgid "View conversations"
+msgstr "Voir les conversations"
-#: ../../mod/message.php:23
-msgid "No recipient selected."
-msgstr "Pas de destinataire sélectionné."
+#: ../../mod/connedit.php:464
+msgid "Delete contact"
+msgstr "Supprimer le contact"
-#: ../../mod/message.php:26
-msgid "Unable to locate contact information."
-msgstr "Impossible de localiser les informations du contact."
+#: ../../mod/connedit.php:467
+msgid "Last update:"
+msgstr "Dernière mise-à-jour&nbsp;:"
-#: ../../mod/message.php:29
-msgid "Message could not be sent."
-msgstr "Impossible d'envoyer le message."
+#: ../../mod/connedit.php:469
+msgid "Update public posts"
+msgstr "Mettre à jour les publications"
-#: ../../mod/message.php:31
-msgid "Message sent."
-msgstr "Message envoyé."
+#: ../../mod/connedit.php:471
+msgid "Update now"
+msgstr "Mettre à jour maintenant"
-#: ../../mod/message.php:51
-msgid "Inbox"
-msgstr "Messages entrants"
+#: ../../mod/connedit.php:477
+msgid "Currently blocked"
+msgstr "Actuellement bloqué"
-#: ../../mod/message.php:56
-msgid "Outbox"
-msgstr "Messages sortants"
+#: ../../mod/connedit.php:478
+msgid "Currently ignored"
+msgstr "Actuellement ignoré"
-#: ../../mod/message.php:61
-msgid "New Message"
-msgstr "Nouveau message"
+#: ../../mod/connedit.php:479
+msgid "Currently archived"
+msgstr "Actuellement archivé"
-#: ../../mod/message.php:87
-msgid "Message deleted."
-msgstr "Message supprimé."
+#: ../../mod/connedit.php:480
+msgid "Currently pending"
+msgstr "Actuellement en attente"
-#: ../../mod/message.php:103
-msgid "Conversation removed."
-msgstr "Conversation supprimée."
+#: ../../mod/connedit.php:481
+msgid "Hide this contact from others"
+msgstr "Dissimuler ce contact aux autres"
-#: ../../mod/message.php:119 ../../include/conversation.php:767
-msgid "Please enter a link URL:"
-msgstr "Entrez un lien web:"
+#: ../../mod/connedit.php:481
+msgid ""
+"Replies/likes to your public posts <strong>may</strong> still be visible"
+msgstr "Les réponses et autres réactions à vos contributions publiques <strong>pourraient</strong> être toujours visibles"
-#: ../../mod/message.php:127
-msgid "Send Private Message"
-msgstr "Envoyer un message privé"
+#: ../../mod/layouts.php:52
+msgid "Layout Help"
+msgstr "Aide à la mise en page"
-#: ../../mod/message.php:128 ../../mod/message.php:261
-msgid "To:"
-msgstr "À:"
+#: ../../mod/layouts.php:55
+msgid "Help with this feature"
+msgstr "Aide avec cette fonctionnalité"
-#: ../../mod/message.php:129 ../../mod/message.php:262
-msgid "Subject:"
-msgstr "Sujet:"
+#: ../../mod/layouts.php:74
+msgid "Layout Name"
+msgstr "Nom de la mise-en-page"
-#: ../../mod/message.php:170
-msgid "No messages."
-msgstr "Aucun message."
+#: ../../mod/help.php:43 ../../mod/help.php:49 ../../mod/help.php:55
+msgid "Help:"
+msgstr "Aide&nbsp;:"
-#: ../../mod/message.php:183
-msgid "Delete conversation"
-msgstr "Effacer conversation"
+#: ../../mod/help.php:68 ../../index.php:223
+msgid "Not Found"
+msgstr "Introuvable"
-#: ../../mod/message.php:186
-msgid "D, d M Y - g:i A"
-msgstr "D, d M Y - g:i A"
+#: ../../mod/help.php:71 ../../mod/page.php:83 ../../mod/display.php:100
+#: ../../index.php:226
+msgid "Page not found."
+msgstr "Page introuvable."
-#: ../../mod/message.php:213
-msgid "Message not available."
-msgstr "Message indisponible."
+#: ../../mod/rmagic.php:56
+msgid "Remote Authentication"
+msgstr "Authentification distante"
-#: ../../mod/message.php:250
-msgid "Delete message"
-msgstr "Effacer message"
+#: ../../mod/rmagic.php:57
+msgid "Enter your channel address (e.g. channel@example.com)"
+msgstr "Entrez l'adresse de votre canal (p.ex. moncanal@monsite.com)"
-#: ../../mod/message.php:260
-msgid "Send Reply"
-msgstr "Répondre"
+#: ../../mod/rmagic.php:58
+msgid "Authenticate"
+msgstr "Authentifier"
-#: ../../mod/dfrn_confirm.php:234
-msgid "Response from remote site was not understood."
-msgstr "Réponse du site distant incomprise."
+#: ../../mod/page.php:35
+msgid "Invalid item."
+msgstr "Élément invalide."
-#: ../../mod/dfrn_confirm.php:243
-msgid "Unexpected response from remote site: "
-msgstr "Réponse inattendue du site distant: "
+#: ../../mod/network.php:79
+msgid "No such group"
+msgstr "Rien de tel comme groupe"
-#: ../../mod/dfrn_confirm.php:251
-msgid "Confirmation completed successfully."
-msgstr "Confirmation achevée avec succès."
+#: ../../mod/network.php:118
+msgid "Search Results For:"
+msgstr "Résultats de recherche pour&nbsp;:"
-#: ../../mod/dfrn_confirm.php:253 ../../mod/dfrn_confirm.php:267
-#: ../../mod/dfrn_confirm.php:274
-msgid "Remote site reported: "
-msgstr "Alerte du site distant: "
+#: ../../mod/network.php:172
+msgid "Collection is empty"
+msgstr "Collection vide"
-#: ../../mod/dfrn_confirm.php:265
-msgid "Temporary failure. Please wait and try again."
-msgstr "Échec temporaire. Merci de recommencer ultérieurement."
+#: ../../mod/network.php:180
+msgid "Collection: "
+msgstr "Collection&nbsp;:"
-#: ../../mod/dfrn_confirm.php:272
-msgid "Introduction failed or was revoked."
-msgstr "Introduction échouée ou annulée."
+#: ../../mod/network.php:193
+msgid "Connection: "
+msgstr "Relation&nbsp;:"
-#: ../../mod/dfrn_confirm.php:409
-msgid "Unable to set contact photo."
-msgstr "Impossible de définir la photo du contact."
+#: ../../mod/network.php:196
+msgid "Invalid connection."
+msgstr "Relation invalide."
-#: ../../mod/dfrn_confirm.php:459 ../../include/conversation.php:79
-#: ../../include/diaspora.php:477
-#, php-format
-msgid "%1$s is now friends with %2$s"
-msgstr "%1$s est désormais lié à %2$s"
+#: ../../mod/profiles.php:18 ../../mod/profiles.php:138
+#: ../../mod/profiles.php:168 ../../mod/profiles.php:463
+msgid "Profile not found."
+msgstr "Profil introuvable."
-#: ../../mod/dfrn_confirm.php:530
-#, php-format
-msgid "No user record found for '%s' "
-msgstr "Pas d'utilisateur trouvé pour '%s' "
+#: ../../mod/profiles.php:38
+msgid "Profile deleted."
+msgstr "Profil supprimé."
+
+#: ../../mod/profiles.php:56 ../../mod/profiles.php:92
+msgid "Profile-"
+msgstr "Profil-"
-#: ../../mod/dfrn_confirm.php:540
-msgid "Our site encryption key is apparently messed up."
-msgstr "Notre clé de chiffrement de site est apparemment corrompue."
+#: ../../mod/profiles.php:77 ../../mod/profiles.php:120
+msgid "New profile created."
+msgstr "Nouveau profil créé."
-#: ../../mod/dfrn_confirm.php:551
-msgid "Empty site URL was provided or URL could not be decrypted by us."
-msgstr "URL de site absente ou indéchiffrable."
+#: ../../mod/profiles.php:98
+msgid "Profile unavailable to clone."
+msgstr "Profil impossible à cloner."
-#: ../../mod/dfrn_confirm.php:572
-msgid "Contact record was not found for you on our site."
-msgstr "Pas d'entrée pour ce contact sur notre site."
+#: ../../mod/profiles.php:178
+msgid "Profile Name is required."
+msgstr "Le nom du profil est requis."
-#: ../../mod/dfrn_confirm.php:586
-#, php-format
-msgid "Site public key not available in contact record for URL %s."
-msgstr ""
-"La clé publique du site ne se trouve pas dans l'enregistrement du contact "
-"pour l'URL %s."
+#: ../../mod/profiles.php:294
+msgid "Marital Status"
+msgstr "Statut marital"
-#: ../../mod/dfrn_confirm.php:606
-msgid ""
-"The ID provided by your system is a duplicate on our system. It should work "
-"if you try again."
-msgstr ""
-"L'identifiant fourni par votre système fait doublon sur le notre. Cela peut "
-"fonctionner si vous réessayez."
+#: ../../mod/profiles.php:298
+msgid "Romantic Partner"
+msgstr "Partenaire"
-#: ../../mod/dfrn_confirm.php:617
-msgid "Unable to set your contact credentials on our system."
-msgstr "Impossible de vous définir des permissions sur notre système."
+#: ../../mod/profiles.php:302
+msgid "Likes"
+msgstr "Aime"
-#: ../../mod/dfrn_confirm.php:671
-msgid "Unable to update your contact profile details on our system"
-msgstr ""
-"Impossible de mettre les détails de votre profil à jour sur notre système"
+#: ../../mod/profiles.php:306
+msgid "Dislikes"
+msgstr "Déteste"
-#: ../../mod/dfrn_confirm.php:701
-#, php-format
-msgid "Connection accepted at %s"
-msgstr "Connexion acceptée avec %s"
+#: ../../mod/profiles.php:310
+msgid "Work/Employment"
+msgstr "Travail/Occupation"
-#: ../../mod/openid.php:63 ../../mod/openid.php:123 ../../include/auth.php:122
-#: ../../include/auth.php:147 ../../include/auth.php:201
-msgid "Login failed."
-msgstr "Échec de connexion."
+#: ../../mod/profiles.php:313
+msgid "Religion"
+msgstr "Religion/Croyance"
+
+#: ../../mod/profiles.php:317
+msgid "Political Views"
+msgstr "Opinions politiques"
+
+#: ../../mod/profiles.php:321
+msgid "Gender"
+msgstr "Sexe/Genre"
+
+#: ../../mod/profiles.php:325
+msgid "Sexual Preference"
+msgstr "Préférence sexuelle"
+
+#: ../../mod/profiles.php:329
+msgid "Homepage"
+msgstr "Site Internet"
+
+#: ../../mod/profiles.php:333
+msgid "Interests"
+msgstr "Centres d'intérêt"
+
+#: ../../mod/profiles.php:337
+msgid "Address"
+msgstr "Adresse"
+
+#: ../../mod/profiles.php:344 ../../mod/pubsites.php:31
+msgid "Location"
+msgstr "Localisation"
+
+#: ../../mod/profiles.php:427
+msgid "Profile updated."
+msgstr "Profil mis à jour."
+
+#: ../../mod/profiles.php:482
+msgid "Hide your contact/friend list from viewers of this profile?"
+msgstr "Cacher vos contacts/relations aux visiteurs de ce profil?"
+
+#: ../../mod/profiles.php:505
+msgid "Edit Profile Details"
+msgstr "Éditer les détails du profil"
+
+#: ../../mod/profiles.php:507
+msgid "View this profile"
+msgstr "Voir le profil"
+
+#: ../../mod/profiles.php:508
+msgid "Change Profile Photo"
+msgstr "Changer la photo du profil"
+
+#: ../../mod/profiles.php:509
+msgid "Create a new profile using these settings"
+msgstr "Créer un nouveau profil avec ces réglages"
+
+#: ../../mod/profiles.php:510
+msgid "Clone this profile"
+msgstr "Cloner le profil"
+
+#: ../../mod/profiles.php:511
+msgid "Delete this profile"
+msgstr "Supprimer le profil"
+
+#: ../../mod/profiles.php:512
+msgid "Profile Name:"
+msgstr "Nom du profil&nbsp;:"
-#: ../../mod/openid.php:79 ../../include/auth.php:217
-msgid "Welcome "
-msgstr "Bienvenue "
+#: ../../mod/profiles.php:513
+msgid "Your Full Name:"
+msgstr "Votre nom complet&nbsp;:"
-#: ../../mod/openid.php:80 ../../include/auth.php:218
-msgid "Please upload a profile photo."
-msgstr "Merci d'illustrer votre profil d'une image."
+#: ../../mod/profiles.php:514
+msgid "Title/Description:"
+msgstr "Titre/description&nbsp;:"
-#: ../../mod/openid.php:83 ../../include/auth.php:221
-msgid "Welcome back "
-msgstr "Bienvenue à nouveau, "
+#: ../../mod/profiles.php:515
+msgid "Your Gender:"
+msgstr "Sexe/Genre&nbsp;:"
-#: ../../mod/dfrn_poll.php:90 ../../mod/dfrn_poll.php:516
+#: ../../mod/profiles.php:516
#, php-format
-msgid "%s welcomes %s"
-msgstr "%s accueille %s"
+msgid "Birthday (%s):"
+msgstr "Date de naissance (%s)&nbsp;:"
-#: ../../mod/viewconnections.php:25 ../../include/text.php:567
-msgid "View Contacts"
-msgstr "Voir les contacts"
+#: ../../mod/profiles.php:517
+msgid "Street Address:"
+msgstr "Adresse postale&nbsp;:"
-#: ../../mod/viewconnections.php:40
-msgid "No contacts."
-msgstr "Aucun contact."
+#: ../../mod/profiles.php:518
+msgid "Locality/City:"
+msgstr "Ville/Localité&nbsp;:"
-#: ../../mod/group.php:27
-msgid "Group created."
-msgstr "Groupe créé."
+#: ../../mod/profiles.php:519
+msgid "Postal/Zip Code:"
+msgstr "Code postal&nbsp;:"
-#: ../../mod/group.php:33
-msgid "Could not create group."
-msgstr "Impossible de créer le groupe."
+#: ../../mod/profiles.php:520
+msgid "Country:"
+msgstr "Pays&nbsp;:"
-#: ../../mod/group.php:43 ../../mod/group.php:123
-msgid "Group not found."
-msgstr "Groupe introuvable."
+#: ../../mod/profiles.php:521
+msgid "Region/State:"
+msgstr "Région/Province/État&nbsp;:"
-#: ../../mod/group.php:56
-msgid "Group name changed."
-msgstr "Groupe renommé."
+#: ../../mod/profiles.php:522
+msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
+msgstr "<span class=\"heart\">&hearts;</span>Statut marital&nbsp;:"
-#: ../../mod/group.php:82
-msgid "Create a group of contacts/friends."
-msgstr "Créez un groupe de contacts/amis."
+#: ../../mod/profiles.php:523
+msgid "Who: (if applicable)"
+msgstr "Avec&nbsp;: (si pertinent)"
-#: ../../mod/group.php:83 ../../mod/group.php:166
-msgid "Group Name: "
-msgstr "Nom du groupe: "
+#: ../../mod/profiles.php:524
+msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
+msgstr "Exemples&nbsp;: cathy123, Cathy Williams, cathy@exemple.com"
-#: ../../mod/group.php:98
-msgid "Group removed."
-msgstr "Groupe enlevé."
+#: ../../mod/profiles.php:525
+msgid "Since [date]:"
+msgstr "Depuis [date]&nbsp;:"
-#: ../../mod/group.php:100
-msgid "Unable to remove group."
-msgstr "Impossible d'enlever le groupe."
+#: ../../mod/profiles.php:527
+msgid "Homepage URL:"
+msgstr "URL de mon site Internet&nbsp;:"
-#: ../../mod/group.php:165
-msgid "Group Editor"
-msgstr "Éditeur de groupe"
+#: ../../mod/profiles.php:530
+msgid "Religious Views:"
+msgstr "Opinions religieuses&nbsp;:"
-#: ../../mod/group.php:179
-msgid "Members"
-msgstr "Membres"
+#: ../../mod/profiles.php:531
+msgid "Keywords:"
+msgstr "Mots-clefs&nbsp;:"
-#: ../../mod/group.php:194
-msgid "All Contacts"
-msgstr "Tout les contacts"
+#: ../../mod/profiles.php:534
+msgid "Example: fishing photography software"
+msgstr "Exemple&nbsp;: escrime photographie modélisme"
-#: ../../mod/attach.php:8
-msgid "Item not available."
-msgstr "Elément non disponible."
+#: ../../mod/profiles.php:535
+msgid "Used in directory listings"
+msgstr "Utilisé pour le référencement dans l'annuaire"
-#: ../../mod/attach.php:20
-msgid "Item was not found."
-msgstr "Element introuvable."
+#: ../../mod/profiles.php:536
+msgid "Tell us about yourself..."
+msgstr "Parlez nous de vous..."
+
+#: ../../mod/profiles.php:537
+msgid "Hobbies/Interests"
+msgstr "Loisirs/Centres d'intêret"
-#: ../../mod/common.php:34
-msgid "Common Friends"
-msgstr "Amis communs"
+#: ../../mod/profiles.php:538
+msgid "Contact information and Social Networks"
+msgstr "Coordonnées et réseaux sociaux"
-#: ../../mod/common.php:42
-msgid "No friends in common."
-msgstr "Pas d'amis communs"
+#: ../../mod/profiles.php:539
+msgid "My other channels"
+msgstr "Mes autres canaux"
-#: ../../mod/match.php:10
-msgid "Profile Match"
-msgstr "Correpondance de profils"
+#: ../../mod/profiles.php:540
+msgid "Musical interests"
+msgstr "Goûts musicaux"
-#: ../../mod/match.php:18
-msgid "No keywords to match. Please add keywords to your default profile."
-msgstr ""
-"Aucun mot-clé en correspondance. Merci d'ajouter des mots-clés à votre "
-"profil par défaut."
+#: ../../mod/profiles.php:541
+msgid "Books, literature"
+msgstr "Littérature"
-#: ../../mod/community.php:21
-msgid "Not available."
-msgstr "Indisponible."
+#: ../../mod/profiles.php:542
+msgid "Television"
+msgstr "Télévision"
-#: ../../mod/community.php:30 ../../include/nav.php:97
-msgid "Community"
-msgstr "Communauté"
+#: ../../mod/profiles.php:543
+msgid "Film/dance/culture/entertainment"
+msgstr "Cinéma/Danse/Culture/Divertissement"
+
+#: ../../mod/profiles.php:544
+msgid "Love/romance"
+msgstr "Amour/Romance"
+
+#: ../../mod/profiles.php:545
+msgid "Work/employment"
+msgstr "Travail/Occupation"
-#: ../../mod/community.php:87
+#: ../../mod/profiles.php:546
+msgid "School/education"
+msgstr "Études"
+
+#: ../../mod/profiles.php:551
msgid ""
-"Shared content is covered by the <a "
-"href=\"http://creativecommons.org/licenses/by/3.0/\">Creative Commons "
-"Attribution 3.0</a> license."
-msgstr ""
-"Le contenu est partagé suivant les termes de la licence <a "
-"href=\"http://creativecommons.org/licenses/by/3.0/\">Creative Commons "
-"Attribution 3.0</a>."
+"This is your <strong>public</strong> profile.<br />It <strong>may</strong> "
+"be visible to anybody using the internet."
+msgstr "Ceci est votre profil <strong>public</strong>.<br />Il <strong>pourrait</strong> être visible par tout utilisateur - fut-il anonyme - d'Internet."
-#: ../../addon/tumblr/tumblr.php:35
-msgid "Post to Tumblr"
-msgstr "Publier sur Tumblr"
+#: ../../mod/profiles.php:600
+msgid "Edit/Manage Profiles"
+msgstr "Éditer/gérer les profils"
-#: ../../addon/tumblr/tumblr.php:66
-msgid "Tumblr Post Settings"
-msgstr "Réglages de Tumblr"
+#: ../../mod/profiles.php:601
+msgid "Add profile things"
+msgstr "Ajouter des choses de profil"
-#: ../../addon/tumblr/tumblr.php:68
-msgid "Enable Tumblr Post Plugin"
-msgstr "Activer l'extension Tumblr"
+#: ../../mod/profiles.php:602
+msgid "Include desirable objects in your profile"
+msgstr "Incluez des objets souhaitables dans votre profil"
+
+#: ../../mod/follow.php:25
+msgid "Channel added."
+msgstr "Canal ajouté."
+
+#: ../../mod/post.php:226
+msgid ""
+"Remote authentication blocked. You are logged into this site locally. Please"
+" logout and retry."
+msgstr "Authentification distante bloquée. Vous êtes connecté sur ce site localement. Merci de vous en déconnecter et de recommencer."
+
+#: ../../mod/post.php:256
+#, php-format
+msgid "Welcome %s. Remote authentication successful."
+msgstr "Bienvenue %s. L'authentification distante a fonctionné."
-#: ../../addon/tumblr/tumblr.php:73
-msgid "Tumblr login"
-msgstr "Login Tumblr"
+#: ../../mod/dirsearch.php:21
+msgid "This site is not a directory server"
+msgstr "Ce site n'est pas un serveur d'annuaire"
-#: ../../addon/tumblr/tumblr.php:78
-msgid "Tumblr password"
-msgstr "Mot de passe Tumblr"
+#: ../../mod/sources.php:32
+msgid "Failed to create source. No channel selected."
+msgstr "Impossible de créer la source. Aucun canal selectionné."
-#: ../../addon/tumblr/tumblr.php:83
-msgid "Post to Tumblr by default"
-msgstr "Publier sur Tumblr par défaut"
+#: ../../mod/sources.php:45
+msgid "Source created."
+msgstr "Source créée."
-#: ../../addon/tumblr/tumblr.php:174 ../../addon/wppost/wppost.php:171
-msgid "Post from Friendica"
-msgstr "Publier depuis Friendica"
+#: ../../mod/sources.php:57
+msgid "Source updated."
+msgstr "Source mise à jour."
-#: ../../addon/twitter/twitter.php:78
-msgid "Post to Twitter"
-msgstr "Poster sur Twitter"
+#: ../../mod/sources.php:82
+msgid "*"
+msgstr "*"
-#: ../../addon/twitter/twitter.php:123
-msgid "Twitter settings updated."
-msgstr "Réglages de Twitter mis-à-jour."
+#: ../../mod/sources.php:89
+msgid "Manage remote sources of content for your channel."
+msgstr "Gérer les sources distantes du contenu de votre canal."
-#: ../../addon/twitter/twitter.php:145
-msgid "Twitter Posting Settings"
-msgstr "Réglages du connecteur Twitter"
+#: ../../mod/sources.php:90 ../../mod/sources.php:100
+msgid "New Source"
+msgstr "Nouvelle source"
-#: ../../addon/twitter/twitter.php:152
+#: ../../mod/sources.php:101 ../../mod/sources.php:133
msgid ""
-"No consumer key pair for Twitter found. Please contact your site "
-"administrator."
-msgstr ""
-"Pas de paire de clés pour Twitter. Merci de contacter l'administrateur du "
-"site."
+"Import all or selected content from the following channel into this channel "
+"and distribute it according to your channel settings."
+msgstr "Importer tout ou partie du contenu du canal suivant dans le canal en cours, et le distribuer en concordance avec les réglages de votre canal."
+
+#: ../../mod/sources.php:102 ../../mod/sources.php:134
+msgid "Only import content with these words (one per line)"
+msgstr "N'importer le contenu que s'ils contient ces mots (un par ligne)"
+
+#: ../../mod/sources.php:102 ../../mod/sources.php:134
+msgid "Leave blank to import all public content"
+msgstr "Laissez en blanc pour importer tout le contenu public"
+
+#: ../../mod/sources.php:103 ../../mod/sources.php:137
+#: ../../mod/new_channel.php:110
+msgid "Channel Name"
+msgstr "Nom du canal"
+
+#: ../../mod/sources.php:123 ../../mod/sources.php:150
+msgid "Source not found."
+msgstr "Source introuvable."
-#: ../../addon/twitter/twitter.php:171
+#: ../../mod/sources.php:130
+msgid "Edit Source"
+msgstr "Éditer source"
+
+#: ../../mod/sources.php:131
+msgid "Delete Source"
+msgstr "Supprimer source"
+
+#: ../../mod/sources.php:158
+msgid "Source removed"
+msgstr "Source supprimée"
+
+#: ../../mod/sources.php:160
+msgid "Unable to remove source."
+msgstr "Impossible de supprimer la source."
+
+#: ../../mod/lockview.php:34
+msgid "Remote privacy information not available."
+msgstr "Les informations de vie privée à distance ne sont pas disponibles."
+
+#: ../../mod/lockview.php:43
+msgid "Visible to:"
+msgstr "Visible par&nbsp;:"
+
+#: ../../mod/magic.php:70
+msgid "Hub not found."
+msgstr "Instance introuvable."
+
+#: ../../mod/setup.php:161
+msgid "Red Matrix Server - Setup"
+msgstr "Serveur Red Matrix - Configuration"
+
+#: ../../mod/setup.php:167
+msgid "Could not connect to database."
+msgstr "Impossible de se connecter à la base de données."
+
+#: ../../mod/setup.php:171
msgid ""
-"At this Friendika instance the Twitter plugin was enabled but you have not "
-"yet connected your account to your Twitter account. To do so click the "
-"button below to get a PIN from Twitter which you have to copy into the input"
-" box below and submit the form. Only your <strong>public</strong> posts will"
-" be posted to Twitter."
-msgstr ""
-"Sur cette instance de Friendika, le connecteur Twitter a été activé, mais "
-"vous n'avez pas encore connecté votre compte à Twitter. Pour ce faire, "
-"cliquez sur le bouton ci-dessous pour obtenir un PIN de Twitter, que vous "
-"aurez à coller dans la boîte ci-dessous. Ensuite, validez le formulaire. "
-"Seuls vos articles &lt;strong&gt;publics&lt;/strong&gt; seront postés sur "
-"Twitter."
-
-#: ../../addon/twitter/twitter.php:172
-msgid "Log in with Twitter"
-msgstr "Se connecter à Twitter"
-
-#: ../../addon/twitter/twitter.php:174
-msgid "Copy the PIN from Twitter here"
-msgstr "Copier le PIN de Twitter ici"
-
-#: ../../addon/twitter/twitter.php:188 ../../addon/statusnet/statusnet.php:337
-msgid "Currently connected to: "
-msgstr "Actuellement connecté à: "
-
-#: ../../addon/twitter/twitter.php:189
+"Could not connect to specified site URL. Possible SSL certificate or DNS "
+"issue."
+msgstr "Impossible de se connecter au site par l'URL indiquée. Problème potentiel de certificat SSL/TLS ou de DNS."
+
+#: ../../mod/setup.php:176
+msgid "Could not create table."
+msgstr "Impossible de créer la table."
+
+#: ../../mod/setup.php:182
+msgid "Your site database has been installed."
+msgstr "La base de données de votre site a été installée."
+
+#: ../../mod/setup.php:187
msgid ""
-"If enabled all your <strong>public</strong> postings can be posted to the "
-"associated Twitter account. You can choose to do so by default (here) or for"
-" every posting separately in the posting options when writing the entry."
-msgstr ""
-"En cas d'activation, toutes vos notices <strong>publiques</strong> seront "
-"transmises au compte Twitter associé. Vous pourrez choisir de le faire par "
-"défaut (ici), ou bien pour chaque notice séparément lors de sa rédaction."
+"You may need to import the file \"install/database.sql\" manually using "
+"phpmyadmin or mysql."
+msgstr "Vous pourriez avoir besoin d'importer le fichier \"install/database.sql\" manuellement via phpmyadmin ou mysql."
-#: ../../addon/twitter/twitter.php:191
-msgid "Allow posting to Twitter"
-msgstr "Autoriser la publication sur Twitter"
+#: ../../mod/setup.php:188 ../../mod/setup.php:257 ../../mod/setup.php:609
+msgid "Please see the file \"install/INSTALL.txt\"."
+msgstr "Merci de consulter le fichier \"install/INSTALL.txt\"."
-#: ../../addon/twitter/twitter.php:194
-msgid "Send public postings to Twitter by default"
-msgstr "Envoyer les éléments publics sur Twitter par défaut"
+#: ../../mod/setup.php:254
+msgid "System check"
+msgstr "Vérification du système"
-#: ../../addon/twitter/twitter.php:199 ../../addon/statusnet/statusnet.php:348
-msgid "Clear OAuth configuration"
-msgstr "Effacer la configuration OAuth"
+#: ../../mod/setup.php:259
+msgid "Check again"
+msgstr "Re-vérifier"
-#: ../../addon/twitter/twitter.php:301
-msgid "Consumer key"
-msgstr "Clé utilisateur"
+#: ../../mod/setup.php:281
+msgid "Database connection"
+msgstr "Connexion à la base de données"
-#: ../../addon/twitter/twitter.php:302
-msgid "Consumer secret"
-msgstr "Secret utilisateur"
+#: ../../mod/setup.php:282
+msgid ""
+"In order to install Red Matrix we need to know how to connect to your "
+"database."
+msgstr "Pour installer Red Matrix, nous avons besoin de savoir comment contacter votre base de données."
-#: ../../addon/statusnet/statusnet.php:141
-msgid "Post to StatusNet"
-msgstr "Poster sur StatusNet"
+#: ../../mod/setup.php:283
+msgid ""
+"Please contact your hosting provider or site administrator if you have "
+"questions about these settings."
+msgstr "Merci de contacter votre prestataire d'hébergement ou votre administration système si vous avez des doutes à propos de ces paramètres."
-#: ../../addon/statusnet/statusnet.php:183
+#: ../../mod/setup.php:284
msgid ""
-"Please contact your site administrator.<br />The provided API URL is not "
-"valid."
-msgstr ""
-"Merci de contacter l'administrateur du site.<br />L'URL d'API fournie est "
-"invalide."
+"The database you specify below should already exist. If it does not, please "
+"create it before continuing."
+msgstr "La base de données que vous allez spécifier doit exister. Si ce n'est pas déjà le cas, merci de la créer avant de continuer."
-#: ../../addon/statusnet/statusnet.php:211
-msgid "We could not contact the StatusNet API with the Path you entered."
-msgstr "Nous n'avons pas pu contacter l'API StatusNet avec le chemin saisi."
+#: ../../mod/setup.php:288
+msgid "Database Server Name"
+msgstr "Nom du serveur de BD"
+
+#: ../../mod/setup.php:288
+msgid "Default is localhost"
+msgstr "Par défaut, localhost"
+
+#: ../../mod/setup.php:289
+msgid "Database Port"
+msgstr "Port du serveur"
-#: ../../addon/statusnet/statusnet.php:238
-msgid "StatusNet settings updated."
-msgstr "Réglages StatusNet mis-à-jour."
+#: ../../mod/setup.php:289
+msgid "Communication port number - use 0 for default"
+msgstr "Numéro TCP du port - utilisez 0 pour la valeur par défaut"
-#: ../../addon/statusnet/statusnet.php:261
-msgid "StatusNet Posting Settings"
-msgstr "Réglages du connecteur StatusNet"
+#: ../../mod/setup.php:290
+msgid "Database Login Name"
+msgstr "Identifiant de connexion à la BD"
-#: ../../addon/statusnet/statusnet.php:275
-msgid "Globally Available StatusNet OAuthKeys"
-msgstr "Clés OAuth StatusNet universelles"
+#: ../../mod/setup.php:291
+msgid "Database Login Password"
+msgstr "Mot de passe de connexion à la BD"
-#: ../../addon/statusnet/statusnet.php:276
+#: ../../mod/setup.php:292
+msgid "Database Name"
+msgstr "Nom de la base de données"
+
+#: ../../mod/setup.php:294 ../../mod/setup.php:336
+msgid "Site administrator email address"
+msgstr "Adresse de courriel de l'administrateur du site"
+
+#: ../../mod/setup.php:294 ../../mod/setup.php:336
msgid ""
-"There are preconfigured OAuth key pairs for some StatusNet servers "
-"available. If you are useing one of them, please use these credentials. If "
-"not feel free to connect to any other StatusNet instance (see below)."
-msgstr ""
-"Ce sont des paires de clés OAuth préconfigurées pour certains serveurs "
-"StatusNet courants. Si vous utilisez l'un d'entre eux, merci de vous servir "
-"de ces clés. Autrement, vous pouvez vous connecter à n'importer quelle autre"
-" instance de StatusNet (voir ci-dessous)."
+"Your account email address must match this in order to use the web admin "
+"panel."
+msgstr "Votre compte devra utiliser la même adresse de courriel pour pouvoir utiliser l'administration web."
-#: ../../addon/statusnet/statusnet.php:284
-msgid "Provide your own OAuth Credentials"
-msgstr "Fournissez vos propres paramètres OAuth"
+#: ../../mod/setup.php:295 ../../mod/setup.php:338
+msgid "Website URL"
+msgstr "URL du site"
-#: ../../addon/statusnet/statusnet.php:285
+#: ../../mod/setup.php:295 ../../mod/setup.php:338
+msgid "Please use SSL (https) URL if available."
+msgstr "Merci d'utiliser SSL/TLS (https) autant que possible."
+
+#: ../../mod/setup.php:298 ../../mod/setup.php:341
+msgid "Please select a default timezone for your website"
+msgstr "Merci de choisir une zone de temps (fuseau horaire) pour votre site"
+
+#: ../../mod/setup.php:325
+msgid "Site settings"
+msgstr "Réglages du site"
+
+#: ../../mod/setup.php:384
+msgid "Could not find a command line version of PHP in the web server PATH."
+msgstr "Impossible de trouver une version CLI de PHP dans le PATH du serveur web."
+
+#: ../../mod/setup.php:385
msgid ""
-"No consumer key pair for StatusNet found. Register your Friendika Account as"
-" an desktop client on your StatusNet account, copy the consumer key pair "
-"here and enter the API base root.<br />Before you register your own OAuth "
-"key pair ask the administrator if there is already a key pair for this "
-"Friendika installation at your favorited StatusNet installation."
-msgstr ""
-"Aucune paire de clé n'a été trouvée pour StatusNet. Inscrivez votre compte "
-"Friendika comme client bureautique sur votre compte StatusNet, puis copiez "
-"la paire de clés d'utilisateur ici et renseignez le chemin de base de "
-"l'API.&lt;br /&gt;Avant d'enregistrer votre propre paire de clés OAuth, "
-"merci de vérifier auprès de l'administrateur qu'il en existe pas déjà une "
-"pour votre fournisseur StatusNet."
-
-#: ../../addon/statusnet/statusnet.php:287
-msgid "OAuth Consumer Key"
-msgstr "Clé de consommateur OAuth"
-
-#: ../../addon/statusnet/statusnet.php:290
-msgid "OAuth Consumer Secret"
-msgstr "Secret d'utilisateur OAuth"
-
-#: ../../addon/statusnet/statusnet.php:293
-msgid "Base API Path (remember the trailing /)"
-msgstr "Chemin de base de l'API (n'oubliez pas le / final)"
-
-#: ../../addon/statusnet/statusnet.php:314
+"If you don't have a command line version of PHP installed on server, you "
+"will not be able to run background polling via cron."
+msgstr "En l'absence de version CLI de PHP sur votre serveur, vous ne pourrez pas utiliser la mise-à-jour en arrière-plan via cron."
+
+#: ../../mod/setup.php:389
+msgid "PHP executable path"
+msgstr "Chemin vers l'éxecutable PHP"
+
+#: ../../mod/setup.php:389
msgid ""
-"To connect to your StatusNet account click the button below to get a "
-"security code from StatusNet which you have to copy into the input box below"
-" and submit the form. Only your <strong>public</strong> posts will be posted"
-" to StatusNet."
-msgstr ""
-"Pour vous connecter à votre compte StatusNet, cliquez sur le bouton ci-"
-"dessous pour obtenir un code de sécurité de StatusNet, que vous aurez à "
-"coller dans la boîte ci-dessous. Ensuite, validez le formulaire. Seuls vos "
-"articles &lt;strong&gt;publics&lt;/strong&gt; seront postés sur StatusNet."
+"Enter full path to php executable. You can leave this blank to continue the "
+"installation."
+msgstr "Entrez le chemin complet vers l'exécutable php. Vous pouvez continuer l'installation sans."
-#: ../../addon/statusnet/statusnet.php:315
-msgid "Log in with StatusNet"
-msgstr "Se connecter à StatusNet"
+#: ../../mod/setup.php:394
+msgid "Command line PHP"
+msgstr "PHP en ligne de commande (CLI)"
-#: ../../addon/statusnet/statusnet.php:317
-msgid "Copy the security code from StatusNet here"
-msgstr "Coller le code de sécurité de StatusNet ici"
+#: ../../mod/setup.php:403
+msgid ""
+"The command line version of PHP on your system does not have "
+"\"register_argc_argv\" enabled."
+msgstr "La version CLI de PHP sur votre système n'a pas l'option \"register_argc_argv\" activée."
-#: ../../addon/statusnet/statusnet.php:323
-msgid "Cancel Connection Process"
-msgstr "Annuler le processus de connexion"
+#: ../../mod/setup.php:404
+msgid "This is required for message delivery to work."
+msgstr "Elle est nécessaire pour la livraison de messages."
-#: ../../addon/statusnet/statusnet.php:325
-msgid "Current StatusNet API is"
-msgstr "L'API StatusNet courante est"
+#: ../../mod/setup.php:406
+msgid "PHP register_argc_argv"
+msgstr "PHP register_argc_argv"
-#: ../../addon/statusnet/statusnet.php:326
-msgid "Cancel StatusNet Connection"
-msgstr "Annuler la connexion à StatusNet"
+#: ../../mod/setup.php:427
+msgid ""
+"Error: the \"openssl_pkey_new\" function on this system is not able to "
+"generate encryption keys"
+msgstr "Erreur&nbsp;: la fonction \"openssl_pkey_new\" de ce système n'est pas capable de générer des clefs de chiffrement"
-#: ../../addon/statusnet/statusnet.php:338
+#: ../../mod/setup.php:428
msgid ""
-"If enabled all your <strong>public</strong> postings can be posted to the "
-"associated StatusNet account. You can choose to do so by default (here) or "
-"for every posting separately in the posting options when writing the entry."
-msgstr ""
-"En cas d'activation, toutes vos notices <strong>publiques</strong> seront "
-"transmises au compte StatusNet associé. Vous pourrez choisir de le faire par"
-" défaut (ici), ou bien pour chaque notice séparément lors de sa rédaction."
+"If running under Windows, please see "
+"\"http://www.php.net/manual/en/openssl.installation.php\"."
+msgstr "Si vous êtes sur un serveur Windows, merci de consulter \"http://www.php.net/manual/fr/openssl.installation.php\"."
-#: ../../addon/statusnet/statusnet.php:340
-msgid "Allow posting to StatusNet"
-msgstr "Autoriser la publication sur StatusNet"
+#: ../../mod/setup.php:430
+msgid "Generate encryption keys"
+msgstr "Générer les clefs de chiffrement"
-#: ../../addon/statusnet/statusnet.php:343
-msgid "Send public postings to StatusNet by default"
-msgstr "Par défaut, envoyer les notices publiques à StatusNet"
+#: ../../mod/setup.php:437
+msgid "libCurl PHP module"
+msgstr "module PHP libCurl"
-#: ../../addon/statusnet/statusnet.php:478
-msgid "API URL"
-msgstr "URL de l'API"
+#: ../../mod/setup.php:438
+msgid "GD graphics PHP module"
+msgstr "module PHP GD graphics"
-#: ../../addon/oembed/oembed.php:30
-msgid "OEmbed settings updated"
-msgstr "Réglage OEmbed mis-à-jour"
+#: ../../mod/setup.php:439
+msgid "OpenSSL PHP module"
+msgstr "module PHP OpenSSL"
-#: ../../addon/oembed/oembed.php:43
-msgid "Use OEmbed for YouTube videos"
-msgstr "Utiliser OEmbed pour les vidéos Youtube"
+#: ../../mod/setup.php:440
+msgid "mysqli PHP module"
+msgstr "module PHP mysqli"
-#: ../../addon/oembed/oembed.php:71
-msgid "URL to embed:"
-msgstr "URL à incorporer:"
+#: ../../mod/setup.php:441
+msgid "mb_string PHP module"
+msgstr "module PHP mb_string"
-#: ../../addon/tictac/tictac.php:20
-msgid "Three Dimensional Tic-Tac-Toe"
-msgstr "Morpion en trois dimensions"
+#: ../../mod/setup.php:442
+msgid "mcrypt PHP module"
+msgstr "module PHP mcrypt"
-#: ../../addon/tictac/tictac.php:53
-msgid "3D Tic-Tac-Toe"
-msgstr "Morpion 3D"
+#: ../../mod/setup.php:447 ../../mod/setup.php:449
+msgid "Apache mod_rewrite module"
+msgstr "module Apache mod_rewrite"
-#: ../../addon/tictac/tictac.php:58
-msgid "New game"
-msgstr "Nouvelle partie"
+#: ../../mod/setup.php:447
+msgid ""
+"Error: Apache webserver mod-rewrite module is required but not installed."
+msgstr "Erreur&nbsp;: le module mod-rewrite du serveur web Apache est requis, mais pas installé."
-#: ../../addon/tictac/tictac.php:59
-msgid "New game with handicap"
-msgstr "Nouvelle partie avec handicap"
+#: ../../mod/setup.php:453 ../../mod/setup.php:456
+msgid "proc_open"
+msgstr "proc_open"
-#: ../../addon/tictac/tictac.php:60
+#: ../../mod/setup.php:453
msgid ""
-"Three dimensional tic-tac-toe is just like the traditional game except that "
-"it is played on multiple levels simultaneously. "
-msgstr ""
-"Le morpion 3D, c'est comme la version traditionnelle. Sauf qu'on joue sur "
-"plusieurs étages en même temps."
+"Error: proc_open is required but is either not installed or has been "
+"disabled in php.ini"
+msgstr "Erreur&nbsp;: proc_open est requis, mais soit n'est pas installé, soit est désactivé dans le php.ini"
-#: ../../addon/tictac/tictac.php:61
-msgid ""
-"In this case there are three levels. You win by getting three in a row on "
-"any level, as well as up, down, and diagonally across the different levels."
-msgstr ""
-"Dans le cas qui nous concerne, il y a trois étages. Vous gagnez en alignant "
-"trois coups dans n'importe quel étage, ainsi que verticalement ou en "
-"diagonale entre les étages."
+#: ../../mod/setup.php:461
+msgid "Error: libCURL PHP module required but not installed."
+msgstr "Erreur&nbsp;: le module libCURL de PHP est requis, mais pas installé."
-#: ../../addon/tictac/tictac.php:63
+#: ../../mod/setup.php:465
msgid ""
-"The handicap game disables the center position on the middle level because "
-"the player claiming this square often has an unfair advantage."
-msgstr ""
-"Le handicap interdit la position centrale de l'étage du milieu, parce que le"
-" joueur qui prend cette case obtient souvent un avantage."
+"Error: GD graphics PHP module with JPEG support required but not installed."
+msgstr "Erreur&nbsp;: le module GD de PHP (avec support JPEG) est requis, mais pas installé."
-#: ../../addon/tictac/tictac.php:182
-msgid "You go first..."
-msgstr "À vous de jouer..."
+#: ../../mod/setup.php:469
+msgid "Error: openssl PHP module required but not installed."
+msgstr "Erreur&nbsp;: le module openssl de PHP est requis, mais pas installé."
-#: ../../addon/tictac/tictac.php:187
-msgid "I'm going first this time..."
-msgstr "Je commence..."
+#: ../../mod/setup.php:473
+msgid "Error: mysqli PHP module required but not installed."
+msgstr "Erreur&nbsp;: le module mysqli de PHP est requis, mais pas installé."
-#: ../../addon/tictac/tictac.php:193
-msgid "You won!"
-msgstr "Vous avez gagné!"
+#: ../../mod/setup.php:477
+msgid "Error: mb_string PHP module required but not installed."
+msgstr "Erreur&nbsp;: le module mb_string de PHP est requis, mais pas installé."
-#: ../../addon/tictac/tictac.php:199 ../../addon/tictac/tictac.php:224
-msgid "\"Cat\" game!"
-msgstr "Match nul!"
+#: ../../mod/setup.php:481
+msgid "Error: mcrypt PHP module required but not installed."
+msgstr "Erreur&nbsp;: le module mcrypt de PHP est requis, mais pas installé."
-#: ../../addon/tictac/tictac.php:222
-msgid "I won!"
-msgstr "J'ai gagné!"
+#: ../../mod/setup.php:497
+msgid ""
+"The web installer needs to be able to create a file called \".htconfig.php\""
+" in the top folder of your web server and it is unable to do so."
+msgstr "L'installeur web a besoin de créer un fichier \".htconfig.php\" à la racine de votre serveur web, mais en est incapable."
-#: ../../addon/uhremotestorage/uhremotestorage.php:56
-#, php-format
+#: ../../mod/setup.php:498
msgid ""
-"Allow to use your friendika id (%s) to connecto to external unhosted-enabled"
-" storage (like ownCloud)"
-msgstr ""
-"Autoriser votre identifiant friendica (%s) à se connecter à un stockage "
-"compatible unhosted (ownCloud, par exemple)"
+"This is most often a permission setting, as the web server may not be able "
+"to write files in your folder - even if you can."
+msgstr "C'est généralement lié à un problème de droits, à cause duquel le serveur web est interdit d'écriture dans le répertoire concerné - alors que votre propre utilisateur a le droit."
-#: ../../addon/uhremotestorage/uhremotestorage.php:57
-msgid "Unhosted DAV storage url"
-msgstr "URL de stockage DAV d'Unhosted"
+#: ../../mod/setup.php:499
+msgid ""
+"At the end of this procedure, we will give you a text to save in a file "
+"named .htconfig.php in your Red top folder."
+msgstr "Au terme de cette procédure, nous vous transmettrons un texte à sauvegarder dans un fichier nommé .htconfig.php, à la racine de votre installation de Red."
-#: ../../addon/impressum/impressum.php:25
-msgid "Impressum"
-msgstr "Impressum"
+#: ../../mod/setup.php:500
+msgid ""
+"You can alternatively skip this procedure and perform a manual installation."
+" Please see the file \"install/INSTALL.txt\" for instructions."
+msgstr "Autrement, vous pouvez contourner toute cette procédure et réaliser l'installation manuellement. Merci de consulter le fichier \"install/INSTALL.txt\" pour les instructions détaillées."
-#: ../../addon/impressum/impressum.php:38
-#: ../../addon/impressum/impressum.php:40
-#: ../../addon/impressum/impressum.php:70
-msgid "Site Owner"
-msgstr "Propriétaire du site"
+#: ../../mod/setup.php:503
+msgid ".htconfig.php is writable"
+msgstr "Le fichier .htconfig.php est accessible en écriture"
-#: ../../addon/impressum/impressum.php:38
-#: ../../addon/impressum/impressum.php:74
-msgid "Email Address"
-msgstr "Adresse courriel"
+#: ../../mod/setup.php:513
+msgid ""
+"Red uses the Smarty3 template engine to render its web views. Smarty3 "
+"compiles templates to PHP to speed up rendering."
+msgstr "Red utilise le moteur de template Smarty3 pour mettre son contenu en forme. Smarty3 compile ses templates vers du PHP natif pour accélérer le rendu."
-#: ../../addon/impressum/impressum.php:43
-#: ../../addon/impressum/impressum.php:72
-msgid "Postal Address"
-msgstr "Adresse postale"
+#: ../../mod/setup.php:514
+msgid ""
+"In order to store these compiled templates, the web server needs to have "
+"write access to the directory view/tpl/smarty3/ under the Red top level "
+"folder."
+msgstr "Pour stocker ces templates compilées, le serveur web nécessite de pouvoir écrire dans le répertoire <racine de red>view/tpl/smarty3/."
-#: ../../addon/impressum/impressum.php:49
+#: ../../mod/setup.php:515 ../../mod/setup.php:533
msgid ""
-"The impressum addon needs to be configured!<br />Please add at least the "
-"<tt>owner</tt> variable to your config file. For other variables please "
-"refer to the README file of the addon."
-msgstr ""
-"L'extension \"Impressum\" (ou <em>ours</em>) n'est pas configuré!<br />Merci"
-" d'ajouter au moins la variable <tt>owner</tt> à votre fichier de "
-"configuration. Pour les autres variables, reportez-vous au fichier README "
-"accompagnant l'extension."
+"Please ensure that the user that your web server runs as (e.g. www-data) has"
+" write access to this folder."
+msgstr "Merci de vous assurer que l'utilisateur sous lequel le serveur web tourne (le plus souvent, www-data) a bien l'autorisation d'écrire dans ce répertoire."
-#: ../../addon/impressum/impressum.php:71
-msgid "Site Owners Profile"
-msgstr "Profil des propriétaires du site"
+#: ../../mod/setup.php:516
+msgid ""
+"Note: as a security measure, you should give the web server write access to "
+"view/tpl/smarty3/ only--not the template files (.tpl) that it contains."
+msgstr "Note&nbsp;: pour renforcer la sécurité, vous pouvez décider de ne donner l'accès en écrire qu'au répertoire view/tpl/smarty3 - et pas aux fichiers de templates (.tpl) qu'il contient."
-#: ../../addon/impressum/impressum.php:73
-msgid "Notes"
-msgstr "Notes"
+#: ../../mod/setup.php:519
+msgid "view/tpl/smarty3 is writable"
+msgstr "view/tpl/smarty3 est accessible en écriture"
-#: ../../addon/facebook/facebook.php:337
-msgid "Facebook disabled"
-msgstr "Connecteur Facebook désactivé"
+#: ../../mod/setup.php:532
+msgid ""
+"Red uses the store directory to save uploaded files. The web server needs to"
+" have write access to the store directory under the Red top level folder"
+msgstr "Red utilise le répertoire 'store' - situé à la racine de Red - pour sauvegarder les fichiers envoyés. Le serveur web aura donc besoin de pouvoir y écrire."
-#: ../../addon/facebook/facebook.php:342
-msgid "Updating contacts"
-msgstr "Mise-à-jour des contacts"
+#: ../../mod/setup.php:536
+msgid "store is writable"
+msgstr "'store' est accessible en écriture"
-#: ../../addon/facebook/facebook.php:351
-msgid "Facebook API key is missing."
-msgstr "Clé d'API Facebook manquante."
+#: ../../mod/setup.php:551
+msgid "SSL certificate validation"
+msgstr "Validation du certificat SSL/TLS"
-#: ../../addon/facebook/facebook.php:358
-msgid "Facebook Connect"
-msgstr "Connecteur Facebook"
+#: ../../mod/setup.php:551
+msgid ""
+"SSL certificate cannot be validated. Fix certificate or disable https access"
+" to this site."
+msgstr "Le certificat SSL/TLS n'a pas pu être validé. Merci de le corriger, ou de désactiver l'accès https à ce site."
-#: ../../addon/facebook/facebook.php:364
-msgid "Install Facebook connector for this account."
-msgstr "Installer le connecteur Facebook sur ce compte."
+#: ../../mod/setup.php:558
+msgid ""
+"Url rewrite in .htaccess is not working. Check your server configuration."
+msgstr "La réécriture d'URL définie dans le .htaccess ne fonctionne pas. Merci de vérifier la configuration de votre serveur web."
-#: ../../addon/facebook/facebook.php:371
-msgid "Remove Facebook connector"
-msgstr "Désinstaller le connecteur Facebook"
+#: ../../mod/setup.php:560
+msgid "Url rewrite is working"
+msgstr "La réécriture d'URL fonctionne"
-#: ../../addon/facebook/facebook.php:376
+#: ../../mod/setup.php:570
msgid ""
-"Re-authenticate [This is necessary whenever your Facebook password is "
-"changed.]"
-msgstr ""
-"Se ré-authentifier [nécessaire chaque fois que vous changez votre mot de "
-"passe Facebook.]"
+"The database configuration file \".htconfig.php\" could not be written. "
+"Please use the enclosed text to create a configuration file in your web "
+"server root."
+msgstr "Le fichier de configuration de la base de données - \".htconfig.php\" - ne peut être écrit. Merci de copier le texte généré dans un fichier à ce nom, à la racine de votre serveur web."
-#: ../../addon/facebook/facebook.php:383
-msgid "Post to Facebook by default"
-msgstr "Poster sur Facebook par défaut"
+#: ../../mod/setup.php:594
+msgid "Errors encountered creating database tables."
+msgstr "Erreurs rencontrées pendant la création de tables de BD."
-#: ../../addon/facebook/facebook.php:387
-msgid "Link all your Facebook friends and conversations on this website"
-msgstr "Lier tous vos amis et conversations Facebook sur ce site"
+#: ../../mod/setup.php:607
+msgid "<h1>What next</h1>"
+msgstr "<h1>Et maintenant</h1>"
-#: ../../addon/facebook/facebook.php:389
+#: ../../mod/setup.php:608
msgid ""
-"Facebook conversations consist of your <em>profile wall</em> and your friend"
-" <em>stream</em>."
-msgstr ""
-"Les conversations Facebook se composent du <em>mur du profil</em> et des "
-"<em>flux</em> de vos amis."
+"IMPORTANT: You will need to [manually] setup a scheduled task for the "
+"poller."
+msgstr "IMPORTANT&nbsp;: Vous devez créer [manuellement] une tâche planifiée pour les mises-à-jour."
-#: ../../addon/facebook/facebook.php:390
-msgid "On this website, your Facebook friend stream is only visible to you."
-msgstr ""
-"Sur ce site, les flux de vos amis Facebook ne sont visibles que par vous."
+#: ../../mod/siteinfo.php:57
+#, php-format
+msgid "Version %s"
+msgstr "Version %s"
-#: ../../addon/facebook/facebook.php:391
-msgid ""
-"The following settings determine the privacy of your Facebook profile wall "
-"on this website."
-msgstr ""
-"Les réglages suivants déterminent le niveau de vie privée de votre mur "
-"Facebook depuis ce site."
+#: ../../mod/siteinfo.php:76
+msgid "Installed plugins/addons/apps:"
+msgstr "Extensions/applications installées&nbsp;:"
+
+#: ../../mod/siteinfo.php:89
+msgid "No installed plugins/addons/apps"
+msgstr "Aucune extension/application installée"
+
+#: ../../mod/siteinfo.php:93
+msgid "Project Donations"
+msgstr "Donations au projet"
-#: ../../addon/facebook/facebook.php:395
+#: ../../mod/siteinfo.php:94
msgid ""
-"On this website your Facebook profile wall conversations will only be "
-"visible to you"
-msgstr ""
-"Sur ce site, les conversations de votre mur Facebook ne sont visibles que "
-"par vous."
+"<p>The Red Matrix is provided for you by volunteers working in their spare "
+"time. Your support will help us to build a better web. Select the following "
+"option for a one-time donation of your choosing</p>"
+msgstr "<p>The Red Matrix vous est mis à disposition par des volontaires, qui travaillent dessus sur leur temps libre. Votre soutien nous aidera à construire un meilleur web. Merci de choisir l'option suivante pour une donation ponctuelle de votre choix.</p>"
+
+#: ../../mod/siteinfo.php:95
+msgid "<p>or</p>"
+msgstr "<p>ou bien</p>"
+
+#: ../../mod/siteinfo.php:96
+msgid "Recurring Donation Options"
+msgstr "Options de donation récurente"
-#: ../../addon/facebook/facebook.php:400
-msgid "Do not import your Facebook profile wall conversations"
-msgstr "Ne pas importer les conversations de votre mur Facebook."
+#: ../../mod/siteinfo.php:115
+msgid "Red"
+msgstr "Red"
-#: ../../addon/facebook/facebook.php:402
+#: ../../mod/siteinfo.php:116
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 "
-"website and your privacy settings on this website will be used to determine "
-"who may see the conversations."
-msgstr ""
-"Si vous choisissez de lier les conversations et de laisser ces deux cases "
-"non-cochées, votre mur Facebook sera fusionné avec votre mur de profil (sur "
-"ce site). Vos réglages (locaux) de vie privée serviront à en déterminer la "
-"visibilité."
+"This is a hub of the Red Matrix - a global cooperative network of "
+"decentralised privacy enhanced websites."
+msgstr "Ceci est une instance - un hub - de la Matrice Red - un réseau global et coopératif de sites web qui respectent la vie privée de manière décentralisée/acentrée."
-#: ../../addon/facebook/facebook.php:469
-#: ../../include/contact_selectors.php:78
-msgid "Facebook"
-msgstr "Facebook"
+#: ../../mod/siteinfo.php:119
+msgid "Running at web location"
+msgstr "En train de tourner chez"
-#: ../../addon/facebook/facebook.php:470
-msgid "Facebook Connector Settings"
-msgstr "Réglages du connecteur Facebook"
+#: ../../mod/siteinfo.php:120
+msgid ""
+"Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more "
+"about the Red Matrix."
+msgstr "Merci de visiter <a href=\"http://getzot.com\">GetZot.com</a> pour en apprendre davantage sur la Matrice Red."
-#: ../../addon/facebook/facebook.php:484
-msgid "Post to Facebook"
-msgstr "Poster sur Facebook"
+#: ../../mod/siteinfo.php:121
+msgid "Bug reports and issues: please visit"
+msgstr "Pour remonter bogues et problèmes, merci de visiter"
-#: ../../addon/facebook/facebook.php:561
+#: ../../mod/siteinfo.php:124
msgid ""
-"Post to Facebook cancelled because of multi-network access permission "
-"conflict."
-msgstr ""
-"Publication sur Facebook annulée pour cause de conflit de permissions inter-"
-"réseaux."
+"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot "
+"com"
+msgstr "Suggestions, demandes, etc. - merci de vous adresser à \"redmatrix\" à librelist - point com"
+
+#: ../../mod/siteinfo.php:126
+msgid "Site Administrators"
+msgstr "Administrateurs du site"
-#: ../../addon/facebook/facebook.php:624
-msgid "Image: "
-msgstr "Image: "
+#: ../../mod/new_channel.php:107
+msgid "Add a Channel"
+msgstr "Ajouter un canal"
-#: ../../addon/facebook/facebook.php:700
-msgid "View on Friendika"
-msgstr "Voir sur Friendica"
+#: ../../mod/new_channel.php:108
+msgid ""
+"A channel is your own collection of related web pages. A channel can be used"
+" to hold social network profiles, blogs, conversation groups and forums, "
+"celebrity pages, and much more. You may create as many channels as your "
+"service provider allows."
+msgstr "Un canal est une collection de pages web reliées entre elles, sous votre contrôle. Il peut contenir des profils de réseau social, des blogs, des groupes de conversation, des forums, des pages de célébrités, et bien plus encore. Vous pouvez créer autant de canaux que votre fournisseur vous y autorise."
-#: ../../addon/facebook/facebook.php:724
-msgid "Facebook post failed. Queued for retry."
-msgstr "Publication sur Facebook échouée. En attente pour re-tentative."
+#: ../../mod/new_channel.php:111
+msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "
+msgstr "Exemples&nbsp;: \"Bob Jameson\", \"Lisa et ses chevaux sauvages\", \"Football\", \"Groupe des amateurs de tir à l'arc\""
-#: ../../addon/widgets/widgets.php:55
-msgid "Generate new key"
-msgstr "Générer une nouvelle clé"
+#: ../../mod/new_channel.php:112
+msgid "Choose a short nickname"
+msgstr "Choisissez un nom court"
-#: ../../addon/widgets/widgets.php:58
-msgid "Widgets key"
-msgstr "Clé des widgets"
+#: ../../mod/new_channel.php:113
+msgid ""
+"Your nickname will be used to create an easily remembered channel address "
+"(like an email address) which you can share with others."
+msgstr "Ce nom court sera utilisé pour créer une adresse de canal, facile à retenir - un peu comme une adresse de courriel - que vous pourrez partager avec d'autres."
-#: ../../addon/widgets/widgets.php:60
-msgid "Widgets available"
-msgstr "Widgets disponibles"
+#: ../../mod/new_channel.php:114
+msgid "Or <a href=\"import\">import an existing channel</a> from another location"
+msgstr "Ou <a href=\"import\">importez un canal existant</a> à un autre endroit"
-#: ../../addon/widgets/widget_friends.php:40
-msgid "Connect on Friendika!"
-msgstr "Se connecter à Friendica!"
+#: ../../mod/lostpass.php:15
+msgid "No valid account found."
+msgstr "Aucun compte valide trouvé."
-#: ../../addon/widgets/widget_like.php:58
+#: ../../mod/lostpass.php:29
+msgid "Password reset request issued. Check your email."
+msgstr "Réinitialisation du mot de passe demandée. Vérifiez vos courriels."
+
+#: ../../mod/lostpass.php:35 ../../mod/lostpass.php:102
#, php-format
-msgid "%d person likes this"
-msgid_plural "%d people like this"
-msgstr[0] "%d personne aime ça"
-msgstr[1] "%d personnes aiment ça"
+msgid "Site Member (%s)"
+msgstr "Membre du site (%s)"
-#: ../../addon/widgets/widget_like.php:61
+#: ../../mod/lostpass.php:40
#, php-format
-msgid "%d person doesn't like this"
-msgid_plural "%d people don't like this"
-msgstr[0] "%d personne n'aime pas ça"
-msgstr[1] "%d personnes n'aiment pas ça"
+msgid "Password reset requested at %s"
+msgstr "Demande de réinitialisation de mot de passe sur %s"
-#: ../../addon/buglink/buglink.php:15
-msgid "Report Bug"
-msgstr "Signaler un bug"
+#: ../../mod/lostpass.php:63
+msgid ""
+"Request could not be verified. (You may have previously submitted it.) "
+"Password reset failed."
+msgstr "La demande n'a pas pu être vérifiée. (Peut-être l'avez vous déjà utilisée.) La réinitialisation a échoué."
+
+#: ../../mod/lostpass.php:85 ../../boot.php:1434
+msgid "Password Reset"
+msgstr "Réinitialiser le mot de passe"
+
+#: ../../mod/lostpass.php:86
+msgid "Your password has been reset as requested."
+msgstr "Votre mot de passe a bien été réinitialisé."
+
+#: ../../mod/lostpass.php:87
+msgid "Your new password is"
+msgstr "Votre nouveau mot de passe est"
-#: ../../addon/nsfw/nsfw.php:47
-msgid "\"Not Safe For Work\" Settings"
-msgstr "Réglages de \"Not Safe For Work\""
+#: ../../mod/lostpass.php:88
+msgid "Save or copy your new password - and then"
+msgstr "Sauvez-le ou copiez-le, puis"
-#: ../../addon/nsfw/nsfw.php:49
-msgid "Comma separated words to treat as NSFW"
-msgstr "Liste de mots à considérer comme NSFW. Séparés par des virgules."
+#: ../../mod/lostpass.php:89
+msgid "click here to login"
+msgstr "cliquez ici pour vous connecter"
-#: ../../addon/nsfw/nsfw.php:66
-msgid "NSFW Settings saved."
-msgstr "Réglages NSFW sauvegardés."
+#: ../../mod/lostpass.php:90
+msgid ""
+"Your password may be changed from the <em>Settings</em> page after "
+"successful login."
+msgstr "Votre mot de passe peut être changé depuis la page des <em>Réglages</em> une fois connecté."
-#: ../../addon/nsfw/nsfw.php:102
+#: ../../mod/lostpass.php:107
#, php-format
-msgid "%s - Click to open/close"
-msgstr "%s - cliquer pour ouvrir/fermer"
+msgid "Your password has changed at %s"
+msgstr "Votre mot de passe de %s a été changé"
-#: ../../addon/communityhome/communityhome.php:29
-msgid "OpenID"
-msgstr "OpenID"
+#: ../../mod/lostpass.php:122
+msgid "Forgot your Password?"
+msgstr "Mot de passe oublié?"
-#: ../../addon/communityhome/communityhome.php:38
-msgid "Last users"
-msgstr "Derniers utilisateurs"
+#: ../../mod/lostpass.php:123
+msgid ""
+"Enter your email address and submit to have your password reset. Then check "
+"your email for further instructions."
+msgstr "Saisissez votre adresse de courriel, et validez, pour réinitialiser votre mot de passe. Vérifiez ensuite votre boîte à lettres pour la suite des instructions."
-#: ../../addon/communityhome/communityhome.php:81
-msgid "Most active users"
-msgstr "Utilisateurs les plus actifs"
+#: ../../mod/lostpass.php:124
+msgid "Email Address"
+msgstr "Adresse de courriel"
-#: ../../addon/communityhome/communityhome.php:98
-msgid "Last photos"
-msgstr "Dernières photos"
+#: ../../mod/lostpass.php:125
+msgid "Reset"
+msgstr "Réinitialiser"
-#: ../../addon/communityhome/communityhome.php:133
-msgid "Last likes"
-msgstr "Dernièrement aimé"
+#: ../../mod/settings.php:71
+msgid "Name is required"
+msgstr "Le nom est requis"
-#: ../../addon/communityhome/communityhome.php:155
-#: ../../include/conversation.php:23
-msgid "event"
-msgstr "évènement"
+#: ../../mod/settings.php:75
+msgid "Key and Secret are required"
+msgstr "Clef et secret sont requis"
-#: ../../addon/membersince/membersince.php:17
-#, php-format
-msgid " - Member since: %s"
-msgstr " - Membre depuis: %s"
+#: ../../mod/settings.php:79 ../../mod/settings.php:542
+msgid "Update"
+msgstr "Mise-à-jour"
-#: ../../addon/randplace/randplace.php:170
-msgid "Randplace Settings"
-msgstr "Réglages de Randplace"
+#: ../../mod/settings.php:195
+msgid "Passwords do not match. Password unchanged."
+msgstr "Les deux saisies du mot de passe ne correspondent pas. Il n'a donc pas été changé."
-#: ../../addon/randplace/randplace.php:172
-msgid "Enable Randplace Plugin"
-msgstr "Activer l'extension Randplace"
+#: ../../mod/settings.php:199
+msgid "Empty passwords are not allowed. Password unchanged."
+msgstr "Le mot de passe ne peut pas être vide. Il n'a donc pas été changé."
-#: ../../addon/piwik/piwik.php:70
-msgid ""
-"This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> "
-"analytics tool."
-msgstr ""
-"Ce site collecte ses statistiques grâce à <a "
-"href='http://www.piwik.org'>Piwik</a>."
+#: ../../mod/settings.php:212
+msgid "Password changed."
+msgstr "Le mot de passe a été changé."
-#: ../../addon/piwik/piwik.php:73
-#, php-format
-msgid ""
-"If you do not want that your visits are logged this way you <a href='%s'>can"
-" set a cookie to prevent Piwik from tracking further visits of the site</a> "
-"(opt-out)."
-msgstr ""
-"Si vous ne voulez pas que vos visites soient collectées par ce biais, vous "
-"<a href='%s'>pouvez activer un cookie qui empêchera Piwik de tenir compte de"
-" vos visites ultérieures</a> (opt-out)."
+#: ../../mod/settings.php:214
+msgid "Password update failed. Please try again."
+msgstr "La mise-à-jour du mot de passe a échoué. Merci de recommencer."
-#: ../../addon/piwik/piwik.php:82
-msgid "Piwik Base URL"
-msgstr "URL de base de Piwik"
+#: ../../mod/settings.php:228
+msgid "Not valid email."
+msgstr "Adresse de courriel non-valide."
-#: ../../addon/piwik/piwik.php:83
-msgid "Site ID"
-msgstr "ID du site"
+#: ../../mod/settings.php:231
+msgid "Protected email address. Cannot change to that email."
+msgstr "Adresse de courriel protégée. Impossible de l'utiliser."
-#: ../../addon/piwik/piwik.php:84
-msgid "Show opt-out cookie link?"
-msgstr "Montrer le lien d'opt-out?"
+#: ../../mod/settings.php:240
+msgid "System failure storing new email. Please try again."
+msgstr "Défaillance système lors du stockage de la nouvelle adresse de courriel. Merci de ré-essayer."
-#: ../../addon/js_upload/js_upload.php:43
-msgid "Upload a file"
-msgstr "Téléverser un fichier"
+#: ../../mod/settings.php:444
+msgid "Settings updated."
+msgstr "Réglages sauvegardés."
-#: ../../addon/js_upload/js_upload.php:44
-msgid "Drop files here to upload"
-msgstr "Déposer des fichiers ici pour les téléverser"
+#: ../../mod/settings.php:515 ../../mod/settings.php:541
+#: ../../mod/settings.php:577
+msgid "Add application"
+msgstr "Ajouter une application"
-#: ../../addon/js_upload/js_upload.php:46
-msgid "Failed"
-msgstr "Échec"
+#: ../../mod/settings.php:518 ../../mod/settings.php:544
+msgid "Name"
+msgstr "Nom"
-#: ../../addon/js_upload/js_upload.php:294
-msgid "No files were uploaded."
-msgstr "Aucun fichier n'a été téléversé."
+#: ../../mod/settings.php:518
+msgid "Name of application"
+msgstr "Nom de l'application"
-#: ../../addon/js_upload/js_upload.php:300
-msgid "Uploaded file is empty"
-msgstr "Le fichier téléversé est vide"
+#: ../../mod/settings.php:519 ../../mod/settings.php:545
+msgid "Consumer Key"
+msgstr "Clef de consommateur"
-#: ../../addon/js_upload/js_upload.php:323
-msgid "File has an invalid extension, it should be one of "
-msgstr "Le fichier a une extension invalide, elle devrait être parmi "
+#: ../../mod/settings.php:519 ../../mod/settings.php:520
+msgid "Automatically generated - change if desired. Max length 20"
+msgstr "Généré automatiquement - à changer si besoin. Longueur maximale 20 caractères."
-#: ../../addon/js_upload/js_upload.php:334
-msgid "Upload was cancelled, or server error encountered"
-msgstr "Téléversement annulé, ou erreur de serveur"
+#: ../../mod/settings.php:520 ../../mod/settings.php:546
+msgid "Consumer Secret"
+msgstr "Secret de consommateur"
-#: ../../addon/wppost/wppost.php:41
-msgid "Post to Wordpress"
-msgstr "Poster sur WordPress"
+#: ../../mod/settings.php:521 ../../mod/settings.php:547
+msgid "Redirect"
+msgstr "Redirection"
-#: ../../addon/wppost/wppost.php:73
-msgid "WordPress Post Settings"
-msgstr "Réglages WordPress"
+#: ../../mod/settings.php:521
+msgid ""
+"Redirect URI - leave blank unless your application specifically requires "
+"this"
+msgstr "URI de redirection - laissez blanc, sauf si l'application a demandé autrement"
-#: ../../addon/wppost/wppost.php:75
-msgid "Enable WordPress Post Plugin"
-msgstr "Activer l'extension WordPress"
+#: ../../mod/settings.php:522 ../../mod/settings.php:548
+msgid "Icon url"
+msgstr "URL de l'icône"
-#: ../../addon/wppost/wppost.php:80
-msgid "WordPress username"
-msgstr "Utilisateur WordPress"
+#: ../../mod/settings.php:522
+msgid "Optional"
+msgstr "Facultatif"
-#: ../../addon/wppost/wppost.php:85
-msgid "WordPress password"
-msgstr "Mot de passe WordPress"
+#: ../../mod/settings.php:533
+msgid "You can't edit this application."
+msgstr "Vous ne pouvez pas éditer cette application."
-#: ../../addon/wppost/wppost.php:90
-msgid "WordPress API URL"
-msgstr "URL de l'API WordPress"
+#: ../../mod/settings.php:576
+msgid "Connected Apps"
+msgstr "Applications connectées"
-#: ../../addon/wppost/wppost.php:95
-msgid "Post to WordPress by default"
-msgstr "Publier sur WordPress par défaut"
+#: ../../mod/settings.php:580
+msgid "Client key starts with"
+msgstr "La clef cliente commence par"
-#: ../../include/notifier.php:616 ../../include/delivery.php:415
-msgid "(no subject)"
-msgstr "(sans titre)"
+#: ../../mod/settings.php:581
+msgid "No name"
+msgstr "Sans nom"
-#: ../../include/contact_selectors.php:32
-msgid "Unknown | Not categorised"
-msgstr "Inconnu | Non-classé"
+#: ../../mod/settings.php:582
+msgid "Remove authorization"
+msgstr "Révoquer l'autorisation"
-#: ../../include/contact_selectors.php:33
-msgid "Block immediately"
-msgstr "Bloquer immédiatement"
+#: ../../mod/settings.php:593
+msgid "No feature settings configured"
+msgstr "Pas de fonctionnalité à configurer"
-#: ../../include/contact_selectors.php:34
-msgid "Shady, spammer, self-marketer"
-msgstr "Douteux, spammeur, accro à l'auto-promotion"
+#: ../../mod/settings.php:601
+msgid "Feature Settings"
+msgstr "Fonctionnalités"
-#: ../../include/contact_selectors.php:35
-msgid "Known to me, but no opinion"
-msgstr "Connu de moi, mais sans opinion"
+#: ../../mod/settings.php:624
+msgid "Account Settings"
+msgstr "Compte"
-#: ../../include/contact_selectors.php:36
-msgid "OK, probably harmless"
-msgstr "OK, probablement inoffensif"
+#: ../../mod/settings.php:625
+msgid "Password Settings"
+msgstr "Mot de passe"
-#: ../../include/contact_selectors.php:37
-msgid "Reputable, has my trust"
-msgstr "Réputé, a toute ma confiance"
+#: ../../mod/settings.php:626
+msgid "New Password:"
+msgstr "Nouveau mot de passe&nbsp;:"
-#: ../../include/contact_selectors.php:56
-msgid "Frequently"
-msgstr "Fréquemment"
+#: ../../mod/settings.php:627
+msgid "Confirm:"
+msgstr "Confirmation&nbsp;:"
-#: ../../include/contact_selectors.php:57
-msgid "Hourly"
-msgstr "Toutes les heures"
+#: ../../mod/settings.php:627
+msgid "Leave password fields blank unless changing"
+msgstr "Laissez les mots de passe vides si vous ne voulez pas les modifier"
-#: ../../include/contact_selectors.php:58
-msgid "Twice daily"
-msgstr "Deux fois par jour"
+#: ../../mod/settings.php:629 ../../mod/settings.php:925
+msgid "Email Address:"
+msgstr "Adresse de courriel&nbsp;:"
-#: ../../include/contact_selectors.php:59
-msgid "Daily"
-msgstr "Chaque jour"
+#: ../../mod/settings.php:630
+msgid "Remove Account"
+msgstr "Supprimer le compte"
-#: ../../include/contact_selectors.php:60
-msgid "Weekly"
-msgstr "Chaque semaine"
+#: ../../mod/settings.php:631
+msgid "Warning: This action is permanent and cannot be reversed."
+msgstr "Attention&nbsp;: cette action est permanente et irréversible."
-#: ../../include/contact_selectors.php:61
-msgid "Monthly"
-msgstr "Chaque mois"
+#: ../../mod/settings.php:647
+msgid "Off"
+msgstr "Inactif"
-#: ../../include/contact_selectors.php:78
-msgid "OStatus"
-msgstr "OStatus"
+#: ../../mod/settings.php:647
+msgid "On"
+msgstr "Actif"
-#: ../../include/contact_selectors.php:78
-msgid "RSS/Atom"
-msgstr "RSS/Atom"
+#: ../../mod/settings.php:654
+msgid "Additional Features"
+msgstr "Fonctionnalités additionnelles"
-#: ../../include/contact_selectors.php:78
-msgid "Zot!"
-msgstr "Zot!"
+#: ../../mod/settings.php:679
+msgid "Connector Settings"
+msgstr "Connecteurs"
-#: ../../include/profile_selectors.php:6
-msgid "Male"
-msgstr "Masculin"
+#: ../../mod/settings.php:750
+msgid "Display Settings"
+msgstr "Affichage"
-#: ../../include/profile_selectors.php:6
-msgid "Female"
-msgstr "Féminin"
+#: ../../mod/settings.php:756
+msgid "Display Theme:"
+msgstr "Thème&nbsp;:"
-#: ../../include/profile_selectors.php:6
-msgid "Currently Male"
-msgstr "Actuellement masculin"
+#: ../../mod/settings.php:757
+msgid "Mobile Theme:"
+msgstr "Thème mobile&nbsp;:"
-#: ../../include/profile_selectors.php:6
-msgid "Currently Female"
-msgstr "Actuellement féminin"
+#: ../../mod/settings.php:758
+msgid "Update browser every xx seconds"
+msgstr "Rafraîchir le navigateur toutes les xx secondes"
-#: ../../include/profile_selectors.php:6
-msgid "Mostly Male"
-msgstr "Principalement masculin"
+#: ../../mod/settings.php:758
+msgid "Minimum of 10 seconds, no maximum"
+msgstr "Minimum 10 secondes, pas de maximum"
-#: ../../include/profile_selectors.php:6
-msgid "Mostly Female"
-msgstr "Principalement féminin"
+#: ../../mod/settings.php:759
+msgid "Maximum number of conversations to load at any time:"
+msgstr "Nombre maximal de conversations pouvant être chargées en même temps&nbsp;:"
-#: ../../include/profile_selectors.php:6
-msgid "Transgender"
-msgstr "Transgenre"
+#: ../../mod/settings.php:759
+msgid "Maximum of 100 items"
+msgstr "100 éléments au maximum"
-#: ../../include/profile_selectors.php:6
-msgid "Intersex"
-msgstr "Inter-sexe"
+#: ../../mod/settings.php:760
+msgid "Don't show emoticons"
+msgstr "Ne pas montrer les frimousses/émoticones"
-#: ../../include/profile_selectors.php:6
-msgid "Transsexual"
-msgstr "Transsexuel"
+#: ../../mod/settings.php:761
+msgid "Do not view remote profiles in frames"
+msgstr ""
-#: ../../include/profile_selectors.php:6
-msgid "Hermaphrodite"
-msgstr "Hermaphrodite"
+#: ../../mod/settings.php:761
+msgid "By default open in a sub-window of your own site"
+msgstr "Par défaut, ouvrir dans une sous-fenêtre de votre propre site"
-#: ../../include/profile_selectors.php:6
-msgid "Neuter"
-msgstr "Neutre"
+#: ../../mod/settings.php:796
+msgid "Nobody except yourself"
+msgstr "Personne sauf vous"
-#: ../../include/profile_selectors.php:6
-msgid "Non-specific"
-msgstr "Non-spécifique"
+#: ../../mod/settings.php:797
+msgid "Only those you specifically allow"
+msgstr "Seulement ceux que vous autorisez spécifiquement"
-#: ../../include/profile_selectors.php:6
-msgid "Other"
-msgstr "Autre"
+#: ../../mod/settings.php:798
+msgid "Anybody in your address book"
+msgstr "Tous vos contacts"
-#: ../../include/profile_selectors.php:6
-msgid "Undecided"
-msgstr "Indécis"
+#: ../../mod/settings.php:799
+msgid "Anybody on this website"
+msgstr "Tous les utilisateurs du site"
-#: ../../include/profile_selectors.php:19
-msgid "Males"
-msgstr "Hommes"
+#: ../../mod/settings.php:800
+msgid "Anybody in this network"
+msgstr "Tous les utilisateurs du réseau"
-#: ../../include/profile_selectors.php:19
-msgid "Females"
-msgstr "Femmes"
+#: ../../mod/settings.php:801
+msgid "Anybody on the internet"
+msgstr "Tout les utilisateurs d'Internet"
-#: ../../include/profile_selectors.php:19
-msgid "Gay"
-msgstr "Gay"
+#: ../../mod/settings.php:878
+msgid "Publish your default profile in the network directory"
+msgstr "Publier votre profil par défaut dans l'annuaire du réseau"
-#: ../../include/profile_selectors.php:19
-msgid "Lesbian"
-msgstr "Lesbienne"
+#: ../../mod/settings.php:883
+msgid "Allow us to suggest you as a potential friend to new members?"
+msgstr "Nous autoriser à vous suggérer comme relation potentielle aux nouveaux arrivants?"
-#: ../../include/profile_selectors.php:19
-msgid "No Preference"
-msgstr "Sans préférence"
+#: ../../mod/settings.php:887 ../../mod/profile_photo.php:288
+msgid "or"
+msgstr "ou"
-#: ../../include/profile_selectors.php:19
-msgid "Bisexual"
-msgstr "Bisexuel"
+#: ../../mod/settings.php:892
+msgid "Your channel address is"
+msgstr "Votre canal a pour adresse"
-#: ../../include/profile_selectors.php:19
-msgid "Autosexual"
-msgstr "Auto-sexuel"
+#: ../../mod/settings.php:914
+msgid "Channel Settings"
+msgstr "Canal"
-#: ../../include/profile_selectors.php:19
-msgid "Abstinent"
-msgstr "Abstinent"
+#: ../../mod/settings.php:923
+msgid "Basic Settings"
+msgstr "Basique"
-#: ../../include/profile_selectors.php:19
-msgid "Virgin"
-msgstr "Vierge"
+#: ../../mod/settings.php:926
+msgid "Your Timezone:"
+msgstr "Zone de temps&nbsp;:"
-#: ../../include/profile_selectors.php:19
-msgid "Deviant"
-msgstr "Déviant"
+#: ../../mod/settings.php:927
+msgid "Default Post Location:"
+msgstr "Localisation par défaut&nbsp;:"
-#: ../../include/profile_selectors.php:19
-msgid "Fetish"
-msgstr "Fétichiste"
+#: ../../mod/settings.php:928
+msgid "Use Browser Location:"
+msgstr "Utiliser la localisation fournie par le navigateur&nbsp;:"
-#: ../../include/profile_selectors.php:19
-msgid "Oodles"
-msgstr "Oodles"
+#: ../../mod/settings.php:930
+msgid "Adult Content"
+msgstr "Contenu \"adulte\""
-#: ../../include/profile_selectors.php:19
-msgid "Nonsexual"
-msgstr "Non-sexuel"
+#: ../../mod/settings.php:930
+msgid ""
+"This channel frequently or regularly publishes adult content. (Please tag "
+"any adult material and/or nudity with #NSFW)"
+msgstr "Ce canal publie plus ou moins fréquemment du contenu pour adultes. (Merci d'indiquer tout contenu pour adulte ou potentiellement choquant avec le tag <em>#NSFW</em> - Not Safe For Work)"
-#: ../../include/profile_selectors.php:33
-msgid "Single"
-msgstr "Célibataire"
+#: ../../mod/settings.php:932
+msgid "Security and Privacy Settings"
+msgstr "Sécurité et vie privée"
-#: ../../include/profile_selectors.php:33
-msgid "Lonely"
-msgstr "Esseulé"
+#: ../../mod/settings.php:934
+msgid "Hide my online presence"
+msgstr "Cacher ma présence en ligne"
-#: ../../include/profile_selectors.php:33
-msgid "Available"
-msgstr "Disponible"
+#: ../../mod/settings.php:934
+msgid "Prevents displaying in your profile that you are online"
+msgstr "Cacher votre statut (en ligne/hors ligne) sur votre profil"
-#: ../../include/profile_selectors.php:33
-msgid "Unavailable"
-msgstr "Indisponible"
+#: ../../mod/settings.php:936
+msgid "Simple Privacy Settings:"
+msgstr "Réglages simples&nbsp;:"
-#: ../../include/profile_selectors.php:33
-msgid "Dating"
-msgstr "Dans une relation"
+#: ../../mod/settings.php:937
+msgid ""
+"Very Public - <em>extremely permissive (should be used with caution)</em>"
+msgstr "Très public - <em>extrèmement permissif (à n'utiliser qu'en connaissance de cause)</em>"
-#: ../../include/profile_selectors.php:33
-msgid "Unfaithful"
-msgstr "Infidèle"
+#: ../../mod/settings.php:938
+msgid ""
+"Typical - <em>default public, privacy when desired (similar to social "
+"network permissions but with improved privacy)</em>"
+msgstr "Classique - <em>public par défaut, privé en cas de besoin (comparable dans le principe aux réseaux sociaux centralisés, avec un mode privé plus efficace)</em>"
-#: ../../include/profile_selectors.php:33
-msgid "Sex Addict"
-msgstr "Accro au sexe"
+#: ../../mod/settings.php:939
+msgid "Private - <em>default private, never open or public</em>"
+msgstr "Privé - <em>privé par défaut, jamais ouvert ni public</em>"
-#: ../../include/profile_selectors.php:33
-msgid "Friends"
-msgstr "Amis"
+#: ../../mod/settings.php:940
+msgid "Blocked - <em>default blocked to/from everybody</em>"
+msgstr "Bloqué - <em>par défaut, bloqué de/vers tout le monde</em>"
-#: ../../include/profile_selectors.php:33
-msgid "Friends/Benefits"
-msgstr "Amis par intérêt"
+#: ../../mod/settings.php:943
+msgid "Advanced Privacy Settings"
+msgstr "Réglages avancés"
-#: ../../include/profile_selectors.php:33
-msgid "Casual"
-msgstr "Casual"
+#: ../../mod/settings.php:945
+msgid "Maximum Friend Requests/Day:"
+msgstr "Nombre maximum de mises en relation par jour&nbsp;:"
-#: ../../include/profile_selectors.php:33
-msgid "Engaged"
-msgstr "Fiancé"
+#: ../../mod/settings.php:945
+msgid "May reduce spam activity"
+msgstr "Contribue à réduire l'impact du spam"
-#: ../../include/profile_selectors.php:33
-msgid "Married"
-msgstr "Marié"
+#: ../../mod/settings.php:946
+msgid "Default Post Permissions"
+msgstr "Permissions par défaut des publications"
-#: ../../include/profile_selectors.php:33
-msgid "Partners"
-msgstr "Partenaire"
+#: ../../mod/settings.php:958
+msgid "Maximum private messages per day from unknown people:"
+msgstr "Nombre maximum de messages privés émanant d'inconnus, par jour&nbsp;:"
-#: ../../include/profile_selectors.php:33
-msgid "Cohabiting"
-msgstr "En cohabitation"
+#: ../../mod/settings.php:958
+msgid "Useful to reduce spamming"
+msgstr "Utile pour réduire le spam"
-#: ../../include/profile_selectors.php:33
-msgid "Happy"
-msgstr "Heureux"
+#: ../../mod/settings.php:961
+msgid "Notification Settings"
+msgstr "Notifications"
-#: ../../include/profile_selectors.php:33
-msgid "Not Looking"
-msgstr "Sans recherche"
+#: ../../mod/settings.php:962
+msgid "By default post a status message when:"
+msgstr "Par défaut, publier un statut quand:"
-#: ../../include/profile_selectors.php:33
-msgid "Swinger"
-msgstr "Échangiste"
+#: ../../mod/settings.php:963
+msgid "accepting a friend request"
+msgstr "acceptez une mise en relation"
-#: ../../include/profile_selectors.php:33
-msgid "Betrayed"
-msgstr "Trahi(e)"
+#: ../../mod/settings.php:964
+msgid "joining a forum/community"
+msgstr "joignez un forum ou à une communauté"
-#: ../../include/profile_selectors.php:33
-msgid "Separated"
-msgstr "Séparé"
+#: ../../mod/settings.php:965
+msgid "making an <em>interesting</em> profile change"
+msgstr "faites une modification <em>intéressante</em> de votre profil"
-#: ../../include/profile_selectors.php:33
-msgid "Unstable"
-msgstr "Instable"
+#: ../../mod/settings.php:966
+msgid "Send a notification email when:"
+msgstr "Envoyer un courriel de notification quand&nbsp;:"
-#: ../../include/profile_selectors.php:33
-msgid "Divorced"
-msgstr "Divorcé"
+#: ../../mod/settings.php:967
+msgid "You receive an introduction"
+msgstr "Vous recevez une introduction"
-#: ../../include/profile_selectors.php:33
-msgid "Widowed"
-msgstr "Veuf/Veuve"
+#: ../../mod/settings.php:968
+msgid "Your introductions are confirmed"
+msgstr "Vos introductions sont acceptées/confirmées"
-#: ../../include/profile_selectors.php:33
-msgid "Uncertain"
-msgstr "Incertain"
+#: ../../mod/settings.php:969
+msgid "Someone writes on your profile wall"
+msgstr "Quelqu'un écrit sur votre mur"
-#: ../../include/profile_selectors.php:33
-msgid "Complicated"
-msgstr "Compliqué"
+#: ../../mod/settings.php:970
+msgid "Someone writes a followup comment"
+msgstr "Quelqu'un commente sur vos publications"
-#: ../../include/profile_selectors.php:33
-msgid "Don't care"
-msgstr "S'en désintéresse"
+#: ../../mod/settings.php:971
+msgid "You receive a private message"
+msgstr "Vous recevez un Message Privé"
-#: ../../include/profile_selectors.php:33
-msgid "Ask me"
-msgstr "Me demander"
+#: ../../mod/settings.php:972
+msgid "You receive a friend suggestion"
+msgstr "Vous recevez une suggestion d'amitié/relation"
-#: ../../include/event.php:17 ../../include/bb2diaspora.php:233
-msgid "Starts:"
-msgstr "Débute:"
+#: ../../mod/settings.php:973
+msgid "You are tagged in a post"
+msgstr "Vous êtes étiqueté dans une publication"
-#: ../../include/event.php:27 ../../include/bb2diaspora.php:241
-msgid "Finishes:"
-msgstr "Finit:"
+#: ../../mod/settings.php:974
+msgid "You are poked/prodded/etc. in a post"
+msgstr "Vous êtes tapoté/pointé/etc. dans une publication"
-#: ../../include/acl_selectors.php:279
-msgid "Visible to everybody"
-msgstr "Visible par tout le monde"
+#: ../../mod/settings.php:977
+msgid "Advanced Account/Page Type Settings"
+msgstr "Type de page/Compte (avancé)"
-#: ../../include/acl_selectors.php:280
-msgid "show"
-msgstr "montrer"
+#: ../../mod/settings.php:978
+msgid "Change the behaviour of this account for special situations"
+msgstr "Modifie le comportement de ce compte pour certains cas particuliers"
-#: ../../include/acl_selectors.php:281
-msgid "don't show"
-msgstr "ne pas montrer"
+#: ../../mod/settings.php:981
+msgid ""
+"Please enable expert mode (in Settings > Additional features) to adjust!"
+msgstr "Merci d'activer le mode expert (dans Réglages > Fonctionnalités additionelles) pour affiner!"
-#: ../../include/auth.php:27
-msgid "Logged out."
-msgstr "Déconnecté."
+#: ../../mod/import.php:36
+msgid "Nothing to import."
+msgstr "Rien à importer."
-#: ../../include/bbcode.php:147
-msgid "Image/photo"
-msgstr "Image/photo"
+#: ../../mod/import.php:58
+msgid "Unable to download data from old server"
+msgstr "Impossible de récupérer les données de l'ancien serveur"
-#: ../../include/poller.php:457
-msgid "From: "
-msgstr "De: "
+#: ../../mod/import.php:64
+msgid "Imported file is empty."
+msgstr "Le fichier importé est vide."
-#: ../../include/Contact.php:125 ../../include/conversation.php:675
-msgid "View status"
-msgstr "Voir le statut"
+#: ../../mod/import.php:88
+msgid ""
+"Cannot create a duplicate channel identifier on this system. Import failed."
+msgstr "Impossible de créer un doublon d'un identifiant de canal. L'import a échoué."
-#: ../../include/Contact.php:126 ../../include/conversation.php:676
-msgid "View profile"
-msgstr "Voir le profil"
+#: ../../mod/import.php:106
+msgid "Channel clone failed. Import failed."
+msgstr "Le clonage du canal a échoué. L'import a échoué."
-#: ../../include/Contact.php:127 ../../include/conversation.php:677
-msgid "View photos"
-msgstr "Voir les photos"
+#: ../../mod/import.php:116
+msgid "Cloned channel not found. Import failed."
+msgstr "Le canal cloné n'a pas été trouvé. L'import a échoué."
-#: ../../include/Contact.php:128 ../../include/Contact.php:141
-#: ../../include/conversation.php:678
-msgid "View recent"
-msgstr "Voir nouveautés"
+#: ../../mod/import.php:358
+msgid "Import completed."
+msgstr "L'import est terminé."
-#: ../../include/Contact.php:130 ../../include/Contact.php:141
-#: ../../include/conversation.php:680
-msgid "Send PM"
-msgstr "Envoyer message privé"
+#: ../../mod/import.php:371
+msgid "You must be logged in to use this feature."
+msgstr "Vous devez vous connecter pour utiliser cette fonctionnalité."
-#: ../../include/datetime.php:44 ../../include/datetime.php:46
-msgid "Miscellaneous"
-msgstr "Divers"
+#: ../../mod/import.php:376
+msgid "Import Channel"
+msgstr "Importation de canal"
-#: ../../include/datetime.php:105 ../../include/datetime.php:237
-msgid "year"
-msgstr "an"
+#: ../../mod/import.php:377
+msgid ""
+"Use this form to import an existing channel from a different server/hub. You"
+" may retrieve the channel identity from the old server/hub via the network "
+"or provide an export file. Only identity and connections/relationships will "
+"be imported. Importation of content is not yet available."
+msgstr "Utilisez ce formulaire pour importer un canal existant sur un serveur différent. Vous pouvez récupérer l'identité du canal sur l'ancien serveur directement par le réseau, ou bien fournir un fichier d'export. Seules les données d'identité et de relations seront importées. L'importation des contenus n'est pas encore disponible."
-#: ../../include/datetime.php:110 ../../include/datetime.php:238
-msgid "month"
-msgstr "mois"
+#: ../../mod/import.php:378
+msgid "File to Upload"
+msgstr "Fichier à envoyer"
-#: ../../include/datetime.php:115 ../../include/datetime.php:240
-msgid "day"
-msgstr "jour"
+#: ../../mod/import.php:379
+msgid "Or provide the old server/hub details"
+msgstr "Ou fournissez les détails de l'ancien serveur"
-#: ../../include/datetime.php:228
-msgid "never"
-msgstr "jamais"
+#: ../../mod/import.php:380
+msgid "Your old identity address (xyz@example.com)"
+msgstr "Votre ancienne identité (zyx@exemple.com)"
-#: ../../include/datetime.php:234
-msgid "less than a second ago"
-msgstr "il y a moins d'une seconde"
+#: ../../mod/import.php:381
+msgid "Your old login email address"
+msgstr "Votre ancienne adresse de courriel"
-#: ../../include/datetime.php:237
-msgid "years"
-msgstr "ans"
+#: ../../mod/import.php:382
+msgid "Your old login password"
+msgstr "Votre ancien mot de passe"
-#: ../../include/datetime.php:238
-msgid "months"
-msgstr "mois"
+#: ../../mod/import.php:383
+msgid ""
+"For either option, please choose whether to make this hub your new primary "
+"address, or whether your old location should continue this role. You will be"
+" able to post from either location, but only one can be marked as the "
+"primary location for files, photos, and media."
+msgstr "Quelle que soit l'option choisie, merci de décider si cette nouvelle adresse sera la primaire, ou si votre ancienne adresse continuera à jouer ce rôle. Vous pourrez publier depuis l'adresse de votre choix, mais une seule peut être déclarée comme stockage primaire de vos fichiers/photos/media."
-#: ../../include/datetime.php:239
-msgid "week"
-msgstr "semaine"
+#: ../../mod/import.php:384
+msgid "Make this hub my primary location"
+msgstr "Faire de cette adresse ma principale"
-#: ../../include/datetime.php:239
-msgid "weeks"
-msgstr "semaines"
+#: ../../mod/manage.php:63
+#, php-format
+msgid "You have created %1$.0f of %2$.0f allowed channels."
+msgstr "Vous avez créé %1$.0f des %2$.0f canaux autorisés."
-#: ../../include/datetime.php:240
-msgid "days"
-msgstr "jours"
+#: ../../mod/manage.php:71
+msgid "Create a new channel"
+msgstr "Créer un nouveau canal"
-#: ../../include/datetime.php:241
-msgid "hour"
-msgstr "heure"
+#: ../../mod/manage.php:76
+msgid "Channel Manager"
+msgstr "Gestionnaire du canal"
-#: ../../include/datetime.php:241
-msgid "hours"
-msgstr "heures"
+#: ../../mod/manage.php:77
+msgid "Current Channel"
+msgstr "Canal actif"
-#: ../../include/datetime.php:242
-msgid "minute"
-msgstr "minute"
+#: ../../mod/manage.php:79
+msgid "Attach to one of your channels by selecting it."
+msgstr "Branchez-vous à l'un de vos canaux en le selectionnant."
-#: ../../include/datetime.php:242
-msgid "minutes"
-msgstr "minutes"
+#: ../../mod/manage.php:80
+msgid "Default Channel"
+msgstr "Canal par défaut"
-#: ../../include/datetime.php:243
-msgid "second"
-msgstr "seconde"
+#: ../../mod/manage.php:81
+msgid "Make Default"
+msgstr "Définir comme défaut"
-#: ../../include/datetime.php:243
-msgid "seconds"
-msgstr "secondes"
+#: ../../mod/vote.php:97
+msgid "Total votes"
+msgstr "Suffrages exprimés"
-#: ../../include/datetime.php:250
-msgid " ago"
-msgstr " auparavant"
+#: ../../mod/vote.php:98
+msgid "Average Rating"
+msgstr "Note moyenne"
-#: ../../include/datetime.php:421 ../../include/profile_advanced.php:30
-#: ../../include/items.php:1215
-msgid "Birthday:"
-msgstr "Anniversaire:"
+#: ../../mod/match.php:16
+msgid "Profile Match"
+msgstr "Profils similaires"
-#: ../../include/profile_advanced.php:22
-msgid "j F, Y"
-msgstr "j F, Y"
+#: ../../mod/match.php:24
+msgid "No keywords to match. Please add keywords to your default profile."
+msgstr "Aucun mot-clef à comparer. Merci d'ajouter des mots-clefs à votre profil par défaut."
-#: ../../include/profile_advanced.php:23
-msgid "j F"
-msgstr "j F"
+#: ../../mod/match.php:61
+msgid "is interested in:"
+msgstr "s'intéresse à&nbsp;:"
-#: ../../include/profile_advanced.php:34
-msgid "Age:"
-msgstr "Age:"
+#: ../../mod/match.php:69
+msgid "No matches"
+msgstr "Pas de correspondance"
-#: ../../include/profile_advanced.php:49
-msgid "Religion:"
-msgstr "Religion:"
+#: ../../mod/zfinger.php:23
+msgid "invalid target signature"
+msgstr "signature de la cible invalide"
-#: ../../include/profile_advanced.php:51
-msgid "About:"
-msgstr "À propos:"
+#: ../../mod/mail.php:33
+msgid "Unable to lookup recipient."
+msgstr "Impossible de localiser le destinataire."
-#: ../../include/profile_advanced.php:53
-msgid "Hobbies/Interests:"
-msgstr "Passe-temps/Centres d'intérêt:"
+#: ../../mod/mail.php:41
+msgid "Unable to communicate with requested channel."
+msgstr "Impossible de communiquer avec le canal demandé."
-#: ../../include/profile_advanced.php:55
-msgid "Contact information and Social Networks:"
-msgstr "Coordonées/Réseaux sociaux:"
+#: ../../mod/mail.php:48
+msgid "Cannot verify requested channel."
+msgstr "Impossible de vérifier le canal demandé."
-#: ../../include/profile_advanced.php:57
-msgid "Musical interests:"
-msgstr "Goûts musicaux:"
+#: ../../mod/mail.php:74
+msgid "Selected channel has private message restrictions. Send failed."
+msgstr "Le canal choisi a des restrictions quant aux messages privés. L'envoi a échoué."
-#: ../../include/profile_advanced.php:59
-msgid "Books, literature:"
-msgstr "Lectures:"
+#: ../../mod/mail.php:121 ../../mod/message.php:31
+msgid "Messages"
+msgstr "Messages"
-#: ../../include/profile_advanced.php:61
-msgid "Television:"
-msgstr "Télévision:"
+#: ../../mod/mail.php:132
+msgid "Message deleted."
+msgstr "Message supprimé."
-#: ../../include/profile_advanced.php:63
-msgid "Film/dance/culture/entertainment:"
-msgstr "Cinéma/Danse/Culture/Divertissement:"
+#: ../../mod/mail.php:149
+msgid "Message recalled."
+msgstr "Message annulé/rappelé."
-#: ../../include/profile_advanced.php:65
-msgid "Love/Romance:"
-msgstr "Amour/Romance:"
+#: ../../mod/mail.php:206
+msgid "Send Private Message"
+msgstr "Envoyer un Message Privé"
-#: ../../include/profile_advanced.php:67
-msgid "Work/employment:"
-msgstr "Activité professionnelle/Occupation:"
+#: ../../mod/mail.php:207 ../../mod/mail.php:323
+msgid "To:"
+msgstr "À&nbsp;:"
-#: ../../include/profile_advanced.php:69
-msgid "School/education:"
-msgstr "Études/Formation:"
+#: ../../mod/mail.php:212 ../../mod/mail.php:325
+msgid "Subject:"
+msgstr "Sujet&nbsp;:"
-#: ../../include/text.php:232
-msgid "prev"
-msgstr "précédent"
+#: ../../mod/mail.php:249
+msgid "Message not found."
+msgstr "Message introuvable."
-#: ../../include/text.php:234
-msgid "first"
-msgstr "premier"
+#: ../../mod/mail.php:292 ../../mod/message.php:72
+msgid "Delete message"
+msgstr "Supprimer message"
-#: ../../include/text.php:263
-msgid "last"
-msgstr "dernier"
+#: ../../mod/mail.php:293
+msgid "Recall message"
+msgstr "Rappeler/annuler le message"
-#: ../../include/text.php:266
-msgid "next"
-msgstr "suivant"
+#: ../../mod/mail.php:295
+msgid "Message has been recalled."
+msgstr "Le message a été rappelé."
+
+#: ../../mod/mail.php:312
+msgid "Private Conversation"
+msgstr "Conversation privée"
+
+#: ../../mod/mail.php:316
+msgid "Delete conversation"
+msgstr "Supprimer conversation"
+
+#: ../../mod/mail.php:318
+msgid ""
+"No secure communications available. You <strong>may</strong> be able to "
+"respond from the sender's profile page."
+msgstr "Aucune communication sécurisée n'est possible en l'état. Vous pourrez <strong>peut-être</strong> répondre depuis la page de profil de l'émetteur."
+
+#: ../../mod/mail.php:322
+msgid "Send Reply"
+msgstr "Envoyer une réponse"
+
+#: ../../mod/editlayout.php:72
+msgid "Edit Layout"
+msgstr "Éditer mise-en-page"
+
+#: ../../mod/editlayout.php:82
+msgid "Delete layout?"
+msgstr "Supprimer la mise-en-page?"
+
+#: ../../mod/editlayout.php:147
+msgid "Delete Layout"
+msgstr "Supprimer mise-en-page"
+
+#: ../../mod/profile_photo.php:44
+msgid "Image uploaded but image cropping failed."
+msgstr "L'image a été téléversée, mais le recadrage a échoué."
+
+#: ../../mod/profile_photo.php:97
+msgid "Image resize failed."
+msgstr "Le retaillage de l'image a échoué."
-#: ../../include/text.php:546
-msgid "No contacts"
-msgstr "Aucun contact"
+#: ../../mod/profile_photo.php:141
+msgid ""
+"Shift-reload the page or clear browser cache if the new photo does not "
+"display immediately."
+msgstr "Shirt-rechargez votre page, ou videz le cache du navigateur si la photo ne s'affiche pas immédiatement."
-#: ../../include/text.php:555
+#: ../../mod/profile_photo.php:163
#, php-format
-msgid "%d Contact"
-msgid_plural "%d Contacts"
-msgstr[0] "%d contact"
-msgstr[1] "%d contacts"
+msgid "Image exceeds size limit of %d"
+msgstr "L'image dépasse la taille limite de %d"
-#: ../../include/text.php:626 ../../include/nav.php:87
-msgid "Search"
-msgstr "Recherche"
+#: ../../mod/profile_photo.php:172
+msgid "Unable to process image."
+msgstr "Impossible de traîter l'image."
-#: ../../include/text.php:709
-msgid "Monday"
-msgstr "Lundi"
+#: ../../mod/profile_photo.php:214 ../../mod/profile_photo.php:262
+msgid "Photo not available."
+msgstr "Photo inaccessible."
-#: ../../include/text.php:709
-msgid "Tuesday"
-msgstr "Mardi"
+#: ../../mod/profile_photo.php:281
+msgid "Upload File:"
+msgstr "Fichier&nbsp;:"
-#: ../../include/text.php:709
-msgid "Wednesday"
-msgstr "Mercredi"
+#: ../../mod/profile_photo.php:282
+msgid "Select a profile:"
+msgstr "Choisir un profil&nbsp;:"
-#: ../../include/text.php:709
-msgid "Thursday"
-msgstr "Jeudi"
+#: ../../mod/profile_photo.php:283
+msgid "Upload Profile Photo"
+msgstr "Téléverser une photo de profil"
-#: ../../include/text.php:709
-msgid "Friday"
-msgstr "Vendredi"
+#: ../../mod/profile_photo.php:284
+msgid "Upload"
+msgstr "Envoyer"
-#: ../../include/text.php:709
-msgid "Saturday"
-msgstr "Samedi"
+#: ../../mod/profile_photo.php:288
+msgid "skip this step"
+msgstr "passer cette étape"
-#: ../../include/text.php:709
-msgid "Sunday"
-msgstr "Dimanche"
+#: ../../mod/profile_photo.php:288
+msgid "select a photo from your photo albums"
+msgstr "choisir une photo dans vos albums"
-#: ../../include/text.php:713
-msgid "January"
-msgstr "Janvier"
+#: ../../mod/profile_photo.php:302
+msgid "Crop Image"
+msgstr "Recadrer l'image"
-#: ../../include/text.php:713
-msgid "February"
-msgstr "Février"
+#: ../../mod/profile_photo.php:303
+msgid "Please adjust the image cropping for optimum viewing."
+msgstr "Merci d'ajuter le cadre pour une visualisation optimale."
-#: ../../include/text.php:713
-msgid "March"
-msgstr "Mars"
+#: ../../mod/profile_photo.php:305
+msgid "Done Editing"
+msgstr "J'ai terminé"
-#: ../../include/text.php:713
-msgid "April"
-msgstr "Avril"
+#: ../../mod/profile_photo.php:340
+msgid "Image uploaded successfully."
+msgstr "Image téléversée avec succès."
-#: ../../include/text.php:713
-msgid "May"
-msgstr "Mai"
+#: ../../mod/profile_photo.php:342
+msgid "Image upload failed."
+msgstr "Le téléversement a échoué."
-#: ../../include/text.php:713
-msgid "June"
-msgstr "Juin"
+#: ../../mod/profile_photo.php:351
+#, php-format
+msgid "Image size reduction [%s] failed."
+msgstr "La réduction de taille [%s] a échoué."
-#: ../../include/text.php:713
-msgid "July"
-msgstr "Juillet"
+#: ../../mod/connections.php:191 ../../mod/connections.php:263
+msgid "Blocked"
+msgstr "Bloqué"
-#: ../../include/text.php:713
-msgid "August"
-msgstr "Août"
+#: ../../mod/connections.php:196 ../../mod/connections.php:270
+msgid "Ignored"
+msgstr "Ignoré"
-#: ../../include/text.php:713
-msgid "September"
-msgstr "Septembre"
+#: ../../mod/connections.php:201 ../../mod/connections.php:284
+msgid "Hidden"
+msgstr "Caché"
-#: ../../include/text.php:713
-msgid "October"
-msgstr "Octobre"
+#: ../../mod/connections.php:206 ../../mod/connections.php:277
+msgid "Archived"
+msgstr "Archivé"
-#: ../../include/text.php:713
-msgid "November"
-msgstr "Novembre"
+#: ../../mod/connections.php:217
+msgid "All"
+msgstr "Tout"
-#: ../../include/text.php:713
-msgid "December"
-msgstr "Décembre"
+#: ../../mod/connections.php:241
+msgid "Suggest new connections"
+msgstr "Suggérer de nouvelles relations"
-#: ../../include/text.php:783
-msgid "bytes"
-msgstr "octets"
+#: ../../mod/connections.php:247
+msgid "Show pending (new) connections"
+msgstr "Voir les (nouvelles) relations en attente"
-#: ../../include/text.php:875
-msgid "Select an alternate language"
-msgstr "Choisir une langue alternative"
+#: ../../mod/connections.php:253
+msgid "Show all connections"
+msgstr "Voir toutes les relations"
-#: ../../include/text.php:887
-msgid "default"
-msgstr "défaut"
+#: ../../mod/connections.php:256
+msgid "Unblocked"
+msgstr "Non bloquées"
-#: ../../include/nav.php:44
-msgid "End this session"
-msgstr "Mettre fin à cette session"
+#: ../../mod/connections.php:259
+msgid "Only show unblocked connections"
+msgstr "Ne montrer que les relations non-bloquées"
-#: ../../include/nav.php:47 ../../include/nav.php:111
-msgid "Your posts and conversations"
-msgstr "Vos notices et conversations"
+#: ../../mod/connections.php:266
+msgid "Only show blocked connections"
+msgstr "Ne montrer que les relations bloquées"
-#: ../../include/nav.php:48
-msgid "Your profile page"
-msgstr "Votre page de profil"
+#: ../../mod/connections.php:273
+msgid "Only show ignored connections"
+msgstr "Ne montrer que les relations ignorées"
-#: ../../include/nav.php:49
-msgid "Your photos"
-msgstr "Vos photos"
+#: ../../mod/connections.php:280
+msgid "Only show archived connections"
+msgstr "Ne montrer que les relations archivées"
-#: ../../include/nav.php:50
-msgid "Your events"
-msgstr "Vos événements"
+#: ../../mod/connections.php:287
+msgid "Only show hidden connections"
+msgstr "Ne montrer que les relations cachées"
-#: ../../include/nav.php:51
-msgid "Personal notes"
-msgstr "Notes personnelles"
+#: ../../mod/connections.php:331
+#, php-format
+msgid "%1$s [%2$s]"
+msgstr "%1$s [%2$s]"
-#: ../../include/nav.php:51
-msgid "Your personal photos"
-msgstr "Vos photos personnelles"
+#: ../../mod/connections.php:332
+msgid "Edit contact"
+msgstr "Éditer contact"
-#: ../../include/nav.php:62
-msgid "Sign in"
-msgstr "Se connecter"
+#: ../../mod/connections.php:355
+msgid "Search your connections"
+msgstr "Chercher parmi vos relations"
-#: ../../include/nav.php:73
-msgid "Home Page"
-msgstr "Page d'accueil"
+#: ../../mod/connections.php:356
+msgid "Finding: "
+msgstr "Recherche&nbsp;:"
-#: ../../include/nav.php:77
-msgid "Create an account"
-msgstr "Créer un compte"
+#: ../../mod/notifications.php:26
+msgid "Invalid request identifier."
+msgstr "Identifiant de requête invalide."
-#: ../../include/nav.php:82
-msgid "Help and documentation"
-msgstr "Aide et documentation"
+#: ../../mod/notifications.php:35
+msgid "Discard"
+msgstr "Défausser"
-#: ../../include/nav.php:85
-msgid "Apps"
-msgstr "Applications"
+#: ../../mod/notifications.php:93 ../../mod/notify.php:54
+msgid "No more system notifications."
+msgstr "Pas d'autre notification du système."
-#: ../../include/nav.php:85
-msgid "Addon applications, utilities, games"
-msgstr "Applications supplémentaires, utilitaires, jeux"
+#: ../../mod/notifications.php:97 ../../mod/notify.php:58
+msgid "System Notifications"
+msgstr "Notifications du système"
-#: ../../include/nav.php:87
-msgid "Search site content"
-msgstr "Rechercher dans le contenu du site"
+#: ../../mod/blocks.php:65
+msgid "Block Name"
+msgstr "Nom du bloc"
-#: ../../include/nav.php:97
-msgid "Conversations on this site"
-msgstr "Conversations ayant cours sur ce site"
+#: ../../mod/oexchange.php:23
+msgid "Unable to find your hub."
+msgstr "Impossible de trouver votre instance."
-#: ../../include/nav.php:99
-msgid "Directory"
-msgstr "Annuaire"
+#: ../../mod/oexchange.php:37
+msgid "Post successful."
+msgstr "Contribution effectuée."
-#: ../../include/nav.php:99
-msgid "People directory"
-msgstr "Annuaire des utilisateurs"
+#: ../../mod/editwebpage.php:106
+msgid "Edit Webpage"
+msgstr "Éditer page web"
-#: ../../include/nav.php:109
-msgid "Conversations from your friends"
-msgstr "Conversations de vos amis"
+#: ../../mod/editwebpage.php:116
+msgid "Delete webpage?"
+msgstr "Supprimer la page web?"
-#: ../../include/nav.php:117
-msgid "Friend Requests"
-msgstr "Demande d'amitié"
+#: ../../mod/editwebpage.php:189
+msgid "Delete Webpage"
+msgstr "Supprimer page web"
-#: ../../include/nav.php:122
-msgid "Private mail"
-msgstr "Messages privés"
+#: ../../mod/profile.php:64 ../../mod/profile.php:72
+msgid "Access to this profile has been restricted."
+msgstr "L'accès à ce profil a été restreint."
-#: ../../include/nav.php:125
-msgid "Manage"
-msgstr "Gérer"
+#: ../../mod/poke.php:159
+msgid "Poke/Prod"
+msgstr "Tapoter/Solliciter"
-#: ../../include/nav.php:125
-msgid "Manage other pages"
-msgstr "Gérer les autres pages"
+#: ../../mod/poke.php:160
+msgid "poke, prod or do other things to somebody"
+msgstr "Tapoter, pointer, et autres choses à faire à quelqu'un"
-#: ../../include/nav.php:130
-msgid "Manage/edit friends and contacts"
-msgstr "Gérer/éditer les amitiés et contacts"
+#: ../../mod/poke.php:161
+msgid "Recipient"
+msgstr "Destinataire"
-#: ../../include/nav.php:137
-msgid "Admin"
-msgstr "Admin"
+#: ../../mod/poke.php:162
+msgid "Choose what you wish to do to recipient"
+msgstr "Choisir quoi lui faire"
-#: ../../include/nav.php:137
-msgid "Site setup and configuration"
-msgstr "Démarrage et configuration du site"
+#: ../../mod/poke.php:165
+msgid "Make this post private"
+msgstr "Rendre cette contribution privée"
-#: ../../include/nav.php:160
-msgid "Nothing new here"
-msgstr "Rien de neuf ici"
+#: ../../mod/channel.php:85
+msgid "Insufficient permissions. Request redirected to profile page."
+msgstr "Permissions insuffisantes. Demande redirigée à la page du profil."
-#: ../../include/conversation.php:210 ../../include/conversation.php:453
-msgid "Select"
-msgstr "Sélectionner"
+#: ../../mod/community.php:23
+msgid "Not available."
+msgstr "Indisponible."
-#: ../../include/conversation.php:225 ../../include/conversation.php:550
-#: ../../include/conversation.php:551
-#, php-format
-msgid "View %s's profile @ %s"
-msgstr "Voir le profil de %s @ %s"
+#: ../../mod/community.php:32
+msgid "Community"
+msgstr "Communauté"
-#: ../../include/conversation.php:234 ../../include/conversation.php:562
-#, php-format
-msgid "%s from %s"
-msgstr "%s de %s"
+#: ../../mod/community.php:63 ../../mod/community.php:88
+msgid "No results."
+msgstr "Aucun résultat."
-#: ../../include/conversation.php:250
-msgid "View in context"
-msgstr "Voir dans le contexte"
+#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92
+msgid "Contact not found."
+msgstr "Contact introuvable."
-#: ../../include/conversation.php:356
+#: ../../mod/fsuggest.php:63
+msgid "Friend suggestion sent."
+msgstr "Suggestion d'amitié/relation envoyée."
+
+#: ../../mod/fsuggest.php:97
+msgid "Suggest Friends"
+msgstr "Suggérer une relation"
+
+#: ../../mod/fsuggest.php:99
#, php-format
-msgid "See all %d comments"
-msgstr "Voir les %d commentaires"
+msgid "Suggest a friend for %s"
+msgstr "Suggérer une relation à %s"
-#: ../../include/conversation.php:416
-msgid "like"
-msgstr "aime"
+#: ../../mod/editblock.php:86
+msgid "Edit Block"
+msgstr "Éditer bloc"
-#: ../../include/conversation.php:417
-msgid "dislike"
-msgstr "n'aime pas"
+#: ../../mod/editblock.php:96
+msgid "Delete block?"
+msgstr "Supprimer le bloc?"
-#: ../../include/conversation.php:419
-msgid "Share this"
-msgstr "Partager ça"
+#: ../../mod/editblock.php:163
+msgid "Delete Block"
+msgstr "Supprimer bloc"
-#: ../../include/conversation.php:419
-msgid "share"
-msgstr "partager"
+#: ../../mod/dirprofile.php:114
+msgid "Status: "
+msgstr "État&nbsp;:"
-#: ../../include/conversation.php:463
-msgid "add star"
-msgstr "mett en avant"
+#: ../../mod/dirprofile.php:115
+msgid "Sexual Preference: "
+msgstr "Orientation sexuelle&nbsp;:"
-#: ../../include/conversation.php:464
-msgid "remove star"
-msgstr "ne plus mettre en avant"
+#: ../../mod/dirprofile.php:117
+msgid "Homepage: "
+msgstr "Site web&nbsp;:"
-#: ../../include/conversation.php:465
-msgid "toggle star status"
-msgstr "mettre en avant"
+#: ../../mod/dirprofile.php:118
+msgid "Hometown: "
+msgstr "Ville natale&nbsp;:"
-#: ../../include/conversation.php:468
-msgid "starred"
-msgstr "mis en avant"
+#: ../../mod/dirprofile.php:120
+msgid "About: "
+msgstr "À propos&nbsp;:"
-#: ../../include/conversation.php:469
-msgid "add tag"
-msgstr "ajouter un tag"
+#: ../../mod/dirprofile.php:168
+msgid "Keywords: "
+msgstr "Mots-clefs&nbsp;:"
-#: ../../include/conversation.php:552
-msgid "to"
-msgstr "à"
+#: ../../mod/filestorage.php:68
+msgid "Permission Denied."
+msgstr "Permission refusée."
-#: ../../include/conversation.php:553
-msgid "Wall-to-Wall"
-msgstr "Inter-mur"
+#: ../../mod/filestorage.php:85
+msgid "File not found."
+msgstr "Fichier introuvable."
-#: ../../include/conversation.php:554
-msgid "via Wall-To-Wall:"
-msgstr "en Inter-mur:"
+#: ../../mod/filestorage.php:119
+msgid "Edit file permissions"
+msgstr "Éditer les permissions du fichier"
-#: ../../include/conversation.php:600
-msgid "Delete Selected Items"
-msgstr "Supprimer les éléments sélectionnés"
+#: ../../mod/filestorage.php:124 ../../mod/photos.php:607
+#: ../../mod/photos.php:950
+msgid "Permissions"
+msgstr "Permissions"
-#: ../../include/conversation.php:730
-#, php-format
-msgid "%s likes this."
-msgstr "%s aime ça."
+#: ../../mod/filestorage.php:126
+msgid "Include all files and sub folders"
+msgstr "Inclure tous fichiers et sous-répertoires"
-#: ../../include/conversation.php:730
-#, php-format
-msgid "%s doesn't like this."
-msgstr "%s n'aime pas ça."
+#: ../../mod/filestorage.php:127
+msgid "Return to file list"
+msgstr "Retourner à la liste des fichiers"
-#: ../../include/conversation.php:734
-#, php-format
-msgid "<span %1$s>%2$d people</span> like this."
-msgstr "<span %1$s>%2$d personnes</span> aiment ça."
+#: ../../mod/filestorage.php:129
+msgid "Copy/paste this code to attach file to a post"
+msgstr "Copiez/collez ce code pour joindre le fichier à une publication"
-#: ../../include/conversation.php:736
-#, php-format
-msgid "<span %1$s>%2$d people</span> don't like this."
-msgstr "<span %1$s>%2$d personnes</span> n'aiment pas ça."
+#: ../../mod/filestorage.php:130
+msgid "Copy/paste this URL to link file from a web page"
+msgstr "Copiez/collez cette URL pour lier le fichier depuis une page web"
-#: ../../include/conversation.php:742
-msgid "and"
-msgstr "et"
+#: ../../mod/filestorage.php:167
+msgid "Download"
+msgstr "Télécharger"
-#: ../../include/conversation.php:745
-#, php-format
-msgid ", and %d other people"
-msgstr ", et %d autres personnes"
+#: ../../mod/filestorage.php:173
+msgid "Used: "
+msgstr "Utilisé&nbsp;:"
+
+#: ../../mod/filestorage.php:174
+msgid "[directory]"
+msgstr "[répertoire]"
+
+#: ../../mod/filestorage.php:176
+msgid "Limit: "
+msgstr "Limite&nbsp;:"
+
+#: ../../mod/suggest.php:35
+msgid ""
+"No suggestions available. If this is a new site, please try again in 24 "
+"hours."
+msgstr "Pas de suggestions pour l'instant. Si le site est récent, merci de re-tenter dans 24 heures."
+
+#: ../../mod/message.php:41
+msgid "Conversation removed."
+msgstr "Conversation supprimée."
+
+#: ../../mod/message.php:56
+msgid "No messages."
+msgstr "Pas de message."
+
+#: ../../mod/message.php:74
+msgid "D, d M Y - g:i A"
+msgstr "D d Y - H:i"
+
+#: ../../mod/pubsites.php:22
+msgid "Public Sites"
+msgstr "Sites publics"
+
+#: ../../mod/pubsites.php:25
+msgid ""
+"The listed sites allow public registration into the Red Matrix. All sites in"
+" the matrix are interlinked so membership on any of them conveys membership "
+"in the matrix as a whole. Some sites may require subscription or provide "
+"tiered service plans. The provider links <strong>may</strong> provide "
+"additional details."
+msgstr "Les sites listés autorisent l'inscription pour tous. Tous sont liés entre eux, de manière à ce qu'un compte sur un seul d'entre eux soit valable sur l'ensemble de la matrice. Certains sites peuvent demander des frais de souscriptions, ou fournir des forfaits ajustés. Le lien \"fournisseur\" <strong>peut</strong> vous donner des détails supplémentaires."
+
+#: ../../mod/pubsites.php:31
+msgid "Site URL"
+msgstr "URL du site"
+
+#: ../../mod/pubsites.php:31
+msgid "Access Type"
+msgstr "Type d'accès"
+
+#: ../../mod/pubsites.php:31
+msgid "Registration Policy"
+msgstr "Politique d'inscription"
+
+#: ../../mod/register.php:43
+msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
+msgstr "Nombre d'inscriptions quotidiennes dépassé. Merci de recommencer demain."
+
+#: ../../mod/register.php:49
+msgid ""
+"Please indicate acceptance of the Terms of Service. Registration failed."
+msgstr "Merci d'indiquer votre adhésion aux Règles du Service. L'inscription a échoué."
+
+#: ../../mod/register.php:77
+msgid "Passwords do not match."
+msgstr "Les mots de passe ne concordent pas."
+
+#: ../../mod/register.php:105
+msgid ""
+"Registration successful. Please check your email for validation "
+"instructions."
+msgstr "Inscription réussie. Merci de vérifier vos courriels pour valider votre compte."
+
+#: ../../mod/register.php:111
+msgid "Your registration is pending approval by the site owner."
+msgstr "Votre inscription est en attente de l'approbation d'un administrateur."
+
+#: ../../mod/register.php:114
+msgid "Your registration can not be processed."
+msgstr "Votre inscription ne peut être traîtée."
-#: ../../include/conversation.php:746
+#: ../../mod/register.php:147
+msgid "Registration on this site/hub is by approval only."
+msgstr "L'inscription sur cette instance/ce site est soumis à une modération."
+
+#: ../../mod/register.php:148
+msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>"
+msgstr "<a href=\"pubsites\">S'inscrire sur un site/hub affilié</a>"
+
+#: ../../mod/register.php:156
+msgid ""
+"This site has exceeded the number of allowed daily account registrations. "
+"Please try again tomorrow."
+msgstr "Ce site a dépassé le nombre de création de compte autorisé par jour. Merci de recommencer demain."
+
+#: ../../mod/register.php:167
+msgid "Terms of Service"
+msgstr "les Règles du Service"
+
+#: ../../mod/register.php:173
#, php-format
-msgid "%s like this."
-msgstr "%s aiment ça."
+msgid "I accept the %s for this website"
+msgstr "J'accepte %s de ce site"
-#: ../../include/conversation.php:746
+#: ../../mod/register.php:175
#, php-format
-msgid "%s don't like this."
-msgstr "%s n'aiment pas ça."
+msgid "I am over 13 years of age and accept the %s for this website"
+msgstr "J'ai treize (13) ans révolus, et j'accepte %s de ce site"
-#: ../../include/conversation.php:766
-msgid "Visible to <strong>everybody</strong>"
-msgstr "Visible par <strong>tout le monde</strong>"
+#: ../../mod/register.php:194
+msgid "Membership on this site is by invitation only."
+msgstr "L'inscription à ce site se fait uniquement sur invitation."
-#: ../../include/conversation.php:768
-msgid "Please enter a video link/URL:"
-msgstr "Entrez un lien/URL video :"
+#: ../../mod/register.php:195
+msgid "Please enter your invitation code"
+msgstr "Merci de saisir votre code d'invitation"
-#: ../../include/conversation.php:769
-msgid "Please enter an audio link/URL:"
-msgstr "Entrez un lien/URL audio :"
+#: ../../mod/register.php:198
+msgid "Your email address"
+msgstr "Votre adresse de courriel"
-#: ../../include/conversation.php:770
-msgid "Tag term:"
-msgstr "Tag : "
+#: ../../mod/register.php:199
+msgid "Choose a password"
+msgstr "Choisissez un mot de passe"
-#: ../../include/conversation.php:771
-msgid "Where are you right now?"
-msgstr "Où êtes-vous présentemment?"
+#: ../../mod/register.php:200
+msgid "Please re-enter your password"
+msgstr "Confirmez-le"
-#: ../../include/conversation.php:772
-msgid "Enter a title for this item"
-msgstr "Saisissez un titre pour cet élément"
+#: ../../mod/regmod.php:12
+msgid "Please login."
+msgstr "Merci de vous connecter."
-#: ../../include/conversation.php:818
-msgid "Insert video link"
-msgstr "Insérer un lien video"
+#: ../../mod/removeme.php:49
+msgid "Remove This Channel"
+msgstr "Supprimer ce canal"
-#: ../../include/conversation.php:819
-msgid "Insert audio link"
-msgstr "Insérer un lien audio"
+#: ../../mod/removeme.php:50
+msgid ""
+"This will completely remove this channel from the network. Once this has "
+"been done it is not recoverable."
+msgstr "Ceci effacera complètement le canal du réseau. Une fois effacé, un canal ne PEUT PAS être récupéré."
-#: ../../include/conversation.php:822
-msgid "Set title"
-msgstr "Définir un titre"
+#: ../../mod/removeme.php:51
+msgid "Please enter your password for verification:"
+msgstr "Merci de re-saisir votre mot de passe pour vérification&nbsp;:"
-#: ../../include/bb2diaspora.php:51
-msgid "view full size"
-msgstr "voir en pleine taille"
+#: ../../mod/removeme.php:52
+msgid "Remove this channel and all its clones from the network"
+msgstr "Supprimer ce canal ainsi que tous ses clones de par le réseau"
-#: ../../include/bb2diaspora.php:102
-msgid "image/photo"
-msgstr "image/photo"
+#: ../../mod/removeme.php:52
+msgid ""
+"By default only the instance of the channel located on this hub will be "
+"removed from the network"
+msgstr "Par défaut, seule l'instance du canal présente sur ce hub sera supprimée du réseau"
-#: ../../include/dba.php:31
-#, php-format
-msgid "Cannot locate DNS info for database server '%s'"
-msgstr ""
-"Impossible de localiser les informations DNS pour le serveur de base de "
-"données '%s'"
+#: ../../mod/removeme.php:53
+msgid "Remove Channel"
+msgstr "Enlever le canal"
-#: ../../include/contact_widgets.php:6
-msgid "Add New Contact"
-msgstr "Ajouter un nouveau contact"
+#: ../../mod/photos.php:77
+msgid "Page owner information could not be retrieved."
+msgstr "Impossible d'obtenir des informations sur le propriétaire de la page."
-#: ../../include/contact_widgets.php:7
-msgid "Enter address or web location"
-msgstr "Entrez son adresse ou sa localisation web"
+#: ../../mod/photos.php:97
+msgid "Album not found."
+msgstr "Album introuvable."
-#: ../../include/contact_widgets.php:8
-msgid "Example: bob@example.com, http://example.com/barbara"
-msgstr "Exemple: bob@example.com, http://example.com/barbara"
+#: ../../mod/photos.php:119 ../../mod/photos.php:672
+msgid "Delete Album"
+msgstr "Supprimer album"
-#: ../../include/contact_widgets.php:18
-msgid "Invite Friends"
-msgstr "Inviter des amis"
+#: ../../mod/photos.php:159 ../../mod/photos.php:955
+msgid "Delete Photo"
+msgstr "Supprimer photo"
+
+#: ../../mod/photos.php:453
+msgid "No photos selected"
+msgstr "Aucune photo selectionnée"
-#: ../../include/contact_widgets.php:24
+#: ../../mod/photos.php:500
+msgid "Access to this item is restricted."
+msgstr "L'accès à l'élément est restreint."
+
+#: ../../mod/photos.php:577
#, php-format
-msgid "%d invitation available"
-msgid_plural "%d invitations available"
-msgstr[0] "%d invitation disponible"
-msgstr[1] "%d invitations disponibles"
+msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."
+msgstr "Vous avez utilisé %1$.2f mégaoctets sur les %2$.2f autorisés pour le stockage des photos."
-#: ../../include/contact_widgets.php:30
-msgid "Find People"
-msgstr "Trouver des personnes"
+#: ../../mod/photos.php:580
+#, php-format
+msgid "You have used %1$.2f Mbytes of photo storage."
+msgstr "Vous avez utilisé %1$.2f mégaoctets pour le stockage des photos."
-#: ../../include/contact_widgets.php:31
-msgid "Enter name or interest"
-msgstr "Entrez un nom ou un centre d'intérêt"
+#: ../../mod/photos.php:599
+msgid "Upload Photos"
+msgstr "Téléverser des photos"
-#: ../../include/contact_widgets.php:32
-msgid "Connect/Follow"
-msgstr "Connecter/Suivre"
+#: ../../mod/photos.php:603 ../../mod/photos.php:667
+msgid "New album name: "
+msgstr "Créer un album&nbsp;:"
-#: ../../include/contact_widgets.php:33
-msgid "Examples: Robert Morgenstein, Fishing"
-msgstr "Exemples: Robert Morgenstein, Pêche"
+#: ../../mod/photos.php:604
+msgid "or existing album name: "
+msgstr "ou choisir un album existant&nbsp;:"
-#: ../../include/contact_widgets.php:36
-msgid "Similar Interests"
-msgstr "Intérêts similaires"
+#: ../../mod/photos.php:605
+msgid "Do not show a status post for this upload"
+msgstr "Ne pas publier de statut pour cet envoi"
-#: ../../include/items.php:1829
-msgid "New mail received at "
-msgstr "Nouvel email reçu à "
+#: ../../mod/photos.php:656 ../../mod/photos.php:678 ../../mod/photos.php:1127
+#: ../../mod/photos.php:1142
+msgid "Contact Photos"
+msgstr "Photos de contact"
-#: ../../include/items.php:2438
-msgid "A new person is sharing with you at "
-msgstr "Une nouvelle personne partage avec vous à "
+#: ../../mod/photos.php:682
+msgid "Edit Album"
+msgstr "Éditer l'album"
-#: ../../include/items.php:2438
-msgid "You have a new follower at "
-msgstr "Vous avez un nouvel abonné à "
+#: ../../mod/photos.php:688
+msgid "Show Newest First"
+msgstr "Ordre anté-chronologique"
-#: ../../include/message.php:13
-msgid "[no subject]"
-msgstr "[pas de sujet]"
+#: ../../mod/photos.php:690
+msgid "Show Oldest First"
+msgstr "Ordre chronologique"
-#: ../../include/group.php:25
+#: ../../mod/photos.php:733 ../../mod/photos.php:1174
+msgid "View Photo"
+msgstr "Voir photo"
+
+#: ../../mod/photos.php:779
+msgid "Permission denied. Access to this item may be restricted."
+msgstr "Permission refusée. L'accès à cet élément peut avoir été restreint."
+
+#: ../../mod/photos.php:781
+msgid "Photo not available"
+msgstr "Photo indisponible"
+
+#: ../../mod/photos.php:841
+msgid "Use as profile photo"
+msgstr "Utiliser comme photo du profil"
+
+#: ../../mod/photos.php:865
+msgid "View Full Size"
+msgstr "Voir en taille réelle"
+
+#: ../../mod/photos.php:939
+msgid "Edit photo"
+msgstr "Éditer photo"
+
+#: ../../mod/photos.php:941
+msgid "Rotate CW (right)"
+msgstr "Rotation horaire (droite)"
+
+#: ../../mod/photos.php:942
+msgid "Rotate CCW (left)"
+msgstr "Rotation anti-horaire (gauche)"
+
+#: ../../mod/photos.php:944
+msgid "New album name"
+msgstr "Nouveau nom d'album&nbsp;:"
+
+#: ../../mod/photos.php:947
+msgid "Caption"
+msgstr "Titre/légende"
+
+#: ../../mod/photos.php:949
+msgid "Add a Tag"
+msgstr "Ajouter une étiquette"
+
+#: ../../mod/photos.php:952
msgid ""
-"A deleted group with this name was revived. Existing item permissions "
-"<strong>may</strong> apply to this group and any future members. If this is "
-"not what you intended, please create another group with a different name."
-msgstr ""
-"Un groupe supprimé a été recréé. Les permissions existantes "
-"<strong>pourraient</strong> s'appliquer à ce groupe et aux futurs membres. "
-"Si ce n'est pas le comportement attendu, merci de re-créer un autre groupe "
-"sous un autre nom."
+"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
+msgstr "Exemple&nbsp;: @bob, @Barbara_Jensen, @jim@exemple.com, #Ile_de_France, #marathon"
-#: ../../include/group.php:165
-msgid "Create a new group"
-msgstr "Créer un nouveau groupe"
+#: ../../mod/photos.php:1105
+msgid "In This Photo:"
+msgstr "Dans cette photo&nbsp;:"
-#: ../../include/group.php:166
-msgid "Everybody"
-msgstr "Tout le monde"
+#: ../../mod/photos.php:1180
+msgid "View Album"
+msgstr "Voir album"
+
+#: ../../mod/photos.php:1189
+msgid "Recent Photos"
+msgstr "Photos récentes"
+
+#: ../../mod/mood.php:138
+msgid "Mood"
+msgstr "Humeur"
+
+#: ../../mod/mood.php:139
+msgid "Set your current mood and tell your friends"
+msgstr "Indiquez votre humeur du moment à vos amis"
+
+#: ../../mod/ping.php:192
+msgid "sent you a private message"
+msgstr "vous a envoyé un message privé"
+
+#: ../../mod/ping.php:250
+msgid "added your channel"
+msgstr "a ajouté votre canal"
+
+#: ../../mod/ping.php:294
+msgid "posted an event"
+msgstr "a publié un événement"
+
+#: ../../view/theme/redbasic/php/config.php:76
+msgid "Scheme Default"
+msgstr "Schéma de couleur par défaut"
+
+#: ../../view/theme/redbasic/php/config.php:87
+msgid "silver"
+msgstr "argent"
+
+#: ../../view/theme/redbasic/php/config.php:98
+#: ../../view/theme/apw/php/config.php:234
+#: ../../view/theme/blogga/view/theme/blog/config.php:69
+#: ../../view/theme/blogga/php/config.php:69
+msgid "Theme settings"
+msgstr "Réglages du thème"
+
+#: ../../view/theme/redbasic/php/config.php:99
+#: ../../view/theme/apw/php/config.php:235
+msgid "Set scheme"
+msgstr "Définir la palette de couleurs"
+
+#: ../../view/theme/redbasic/php/config.php:100
+msgid "Navigation bar colour"
+msgstr "Couleur de la barre de navigation"
+
+#: ../../view/theme/redbasic/php/config.php:101
+msgid "link colour"
+msgstr "couleur des liens"
+
+#: ../../view/theme/redbasic/php/config.php:102
+msgid "Set font-colour for banner"
+msgstr "Définir la couleur du texte de la bannière"
+
+#: ../../view/theme/redbasic/php/config.php:103
+msgid "Set the background colour"
+msgstr "Définir la couleur d'arrière-plan"
+
+#: ../../view/theme/redbasic/php/config.php:104
+msgid "Set the background image"
+msgstr "Définir l'image d'arrière-plan"
+
+#: ../../view/theme/redbasic/php/config.php:105
+msgid "Set the background colour of items"
+msgstr "Définir la couleur de fond des contributions"
+
+#: ../../view/theme/redbasic/php/config.php:106
+msgid "Set the opacity of items"
+msgstr "Définir l'opacité des contributions"
+
+#: ../../view/theme/redbasic/php/config.php:107
+msgid "Set the basic colour for item icons"
+msgstr "Définir la couleur de base pour les icônes des éléments"
+
+#: ../../view/theme/redbasic/php/config.php:108
+msgid "Set the hover colour for item icons"
+msgstr "Définir la couleur de survol des icônes des éléments"
+
+#: ../../view/theme/redbasic/php/config.php:109
+msgid "Set font-size for the entire application"
+msgstr "Définir la taille de police pour l'application entière"
+
+#: ../../view/theme/redbasic/php/config.php:110
+#: ../../view/theme/apw/php/config.php:236
+msgid "Set font-size for posts and comments"
+msgstr "Définir font-size pour contribution et commentaires"
+
+#: ../../view/theme/redbasic/php/config.php:111
+msgid "Set font-colour for posts and comments"
+msgstr "Définir font-colour pour les contributions et commentaires"
+
+#: ../../view/theme/redbasic/php/config.php:112
+msgid "Set radius of corners"
+msgstr "Définir le rayon des arrondis"
+
+#: ../../view/theme/redbasic/php/config.php:113
+msgid "Set shadow depth of photos"
+msgstr "Définir la profondeur de l'ombre des photos"
+
+#: ../../view/theme/redbasic/php/config.php:114
+msgid "Set maximum width of conversation regions"
+msgstr "Définir la largeur maximale des conversations"
+
+#: ../../view/theme/redbasic/php/config.php:115
+msgid "Set minimum opacity of nav bar - to hide it"
+msgstr "Définir l'opacité minimum du bandeau de navigation - pour le cacher"
+
+#: ../../view/theme/redbasic/php/config.php:116
+msgid "Set size of conversation author photo"
+msgstr "Définir la taille de la photo de l'auteur d'une conversation"
+
+#: ../../view/theme/redbasic/php/config.php:117
+msgid "Set size of followup author photos"
+msgstr "Définir la taille de la photo de l'auteur d'une réponse"
+
+#: ../../view/theme/redbasic/php/config.php:118
+msgid "Sloppy photo albums"
+msgstr "Albums photo \"en biais\""
+
+#: ../../view/theme/redbasic/php/config.php:118
+msgid "Are you a clean desk or a messy desk person?"
+msgstr "Vous êtes plutôt \"bureau bien rangé\" ou \"gros foutoir\"?"
+
+#: ../../view/theme/apw/php/config.php:193
+#: ../../view/theme/apw/php/config.php:211
+msgid "Schema Default"
+msgstr "Palette par défaut"
+
+#: ../../view/theme/apw/php/config.php:194
+msgid "Sans-Serif"
+msgstr "Sans empâtements"
+
+#: ../../view/theme/apw/php/config.php:195
+msgid "Monospace"
+msgstr "Châsse fixe"
-#: ../../include/diaspora.php:544
-msgid "Sharing notification from Diaspora network"
-msgstr "Notification de partage du réseau Diaspora"
+#: ../../view/theme/apw/php/config.php:237
+msgid "Set font face"
+msgstr "Définir la fonte"
-#: ../../include/diaspora.php:1527
-msgid "Attachments:"
-msgstr "Pièces jointes : "
+#: ../../view/theme/apw/php/config.php:238
+msgid "Set iconset"
+msgstr "Définir le jeu d'icônes"
-#: ../../include/diaspora.php:1710
+#: ../../view/theme/apw/php/config.php:239
+msgid "Set big shadow size, default 15px 15px 15px"
+msgstr "Définir la taille des grandes ombres, par défaut 15px 15px 15px"
+
+#: ../../view/theme/apw/php/config.php:240
+msgid "Set small shadow size, default 5px 5px 5px"
+msgstr "Définir la taille des petites ombres, par défaut 5px 5px 5px"
+
+#: ../../view/theme/apw/php/config.php:241
+msgid "Set shadow colour, default #000"
+msgstr "Définir la couleur des ombres, par défaut #000"
+
+#: ../../view/theme/apw/php/config.php:242
+msgid "Set radius size, default 5px"
+msgstr "Définir le rayon des arrondis, par défaut 5px"
+
+#: ../../view/theme/apw/php/config.php:243
+msgid "Set line-height for posts and comments"
+msgstr "Définir line-height pour contributions et commentaires"
+
+#: ../../view/theme/apw/php/config.php:244
+msgid "Set background image"
+msgstr "Définir l'image d'arrière-plan"
+
+#: ../../view/theme/apw/php/config.php:245
+msgid "Set background colour"
+msgstr "Définir la couleur d'arrière-plan"
+
+#: ../../view/theme/apw/php/config.php:246
+msgid "Set section background image"
+msgstr "Définir l'image d'arrière-plan des sections"
+
+#: ../../view/theme/apw/php/config.php:247
+msgid "Set section background colour"
+msgstr "Définir la couleur d'arrière-plan des sections"
+
+#: ../../view/theme/apw/php/config.php:248
+msgid "Set colour of items - use hex"
+msgstr "Définir la couleur des éléments - en héxadécimal"
+
+#: ../../view/theme/apw/php/config.php:249
+msgid "Set colour of links - use hex"
+msgstr "Définir la couleur des liens - en héxadécimal"
+
+#: ../../view/theme/apw/php/config.php:250
+msgid "Set max-width for items. Default 400px"
+msgstr "Définir la largeur maximal des éléments. Par défaut, 400px"
+
+#: ../../view/theme/apw/php/config.php:251
+msgid "Set min-width for items. Default 240px"
+msgstr "Définir la largeur minimale des éléments. Par défaut, 240px"
+
+#: ../../view/theme/apw/php/config.php:252
+msgid "Set the generic content wrapper width. Default 48%"
+msgstr "Définir la largeur du contenu. Par défaut, 48%"
+
+#: ../../view/theme/apw/php/config.php:253
+msgid "Set colour of fonts - use hex"
+msgstr "Définir la couleur des fontes - en héxadécimal"
+
+#: ../../view/theme/apw/php/config.php:254
+msgid "Set background-size element"
+msgstr "Définir background-size pour les éléments"
+
+#: ../../view/theme/apw/php/config.php:255
+msgid "Item opacity"
+msgstr "Opacité des éléments"
+
+#: ../../view/theme/apw/php/config.php:256
+msgid "Display post previews only"
+msgstr "Afficher seulement l'aperçu des contributions"
+
+#: ../../view/theme/apw/php/config.php:257
+msgid "Display side bar on channel page"
+msgstr "Afficher le panneau latéral sur la page du canal"
+
+#: ../../view/theme/apw/php/config.php:258
+msgid "Colour of the navigation bar"
+msgstr "Couleur de la barre de navigation"
+
+#: ../../view/theme/apw/php/config.php:259
+msgid "Item float"
+msgstr "Alignement de l'élément"
+
+#: ../../view/theme/apw/php/config.php:260
+msgid "Left offset of the section element"
+msgstr "Décalage gauche de l'élément section"
+
+#: ../../view/theme/apw/php/config.php:261
+msgid "Right offset of the section element"
+msgstr "Décalage droit de l'élément section"
+
+#: ../../view/theme/apw/php/config.php:262
+msgid "Section width"
+msgstr "Largeur de la section"
+
+#: ../../view/theme/apw/php/config.php:263
+msgid "Left offset of the aside"
+msgstr "Décalage gauche du panneau latéral"
+
+#: ../../view/theme/apw/php/config.php:264
+msgid "Right offset of the aside element"
+msgstr "Décalage droit du panneau latéral"
+
+#: ../../view/theme/blogga/view/theme/blog/config.php:47
+#: ../../view/theme/blogga/php/config.php:47
+msgid "None"
+msgstr "Aucun(e)"
+
+#: ../../view/theme/blogga/view/theme/blog/config.php:70
+#: ../../view/theme/blogga/php/config.php:70
+msgid "Header image"
+msgstr "Têtière"
+
+#: ../../view/theme/blogga/view/theme/blog/config.php:71
+#: ../../view/theme/blogga/php/config.php:71
+msgid "Header image only on profile pages"
+msgstr "Têtière seulement sur les profils"
+
+#: ../../boot.php:1232
#, php-format
-msgid "[Relayed] Comment authored by %s from network %s"
-msgstr "[Relayé] Commentaire de %s sur le réseau %s"
+msgid "Update %s failed. See error logs."
+msgstr "La mise-à-jour %s a échoué. Merci de consulter les journaux d'erreur."
-#: ../../include/oembed.php:122
-msgid "Embedded content"
-msgstr "Contenu incorporé"
+#: ../../boot.php:1235
+#, php-format
+msgid "Update Error at %s"
+msgstr "Erreur de mise-à-jour sur %s"
-#: ../../include/oembed.php:131
-msgid "Embedding disabled"
-msgstr "Incorporation désactivée"
+#: ../../boot.php:1399
+msgid ""
+"Create an account to access services and applications within the Red Matrix"
+msgstr "Créez un compte pour pouvoir accéder aux services et applications de la Matrice Red"
+
+#: ../../boot.php:1427
+msgid "Password"
+msgstr "Mot de passe"
+
+#: ../../boot.php:1428
+msgid "Remember me"
+msgstr "Se souvenir de moi"
+
+#: ../../boot.php:1433
+msgid "Forgot your password?"
+msgstr "Mot de passe oublié?"
+
+#: ../../boot.php:1498
+msgid "permission denied"
+msgstr "permission refusée"
+#: ../../boot.php:1499
+msgid "Got Zot?"
+msgstr "T'as Zot?"
+#: ../../boot.php:1899
+msgid "toggle mobile"
+msgstr "(dés)activer mobile"
diff --git a/view/fr/strings.php b/view/fr/strings.php
index e24070ab9..360b616d2 100644
--- a/view/fr/strings.php
+++ b/view/fr/strings.php
@@ -1,1183 +1,1731 @@
<?php
function string_plural_select_fr($n){
- return ($n > 1);
+ return ($n > 1);;
}
;
-$a->strings["Not Found"] = "Non trouvé";
-$a->strings["Page not found."] = "Page introuvable.";
-$a->strings["Permission denied"] = "Permission refusée";
-$a->strings["Permission denied."] = "Permission refusée.";
-$a->strings["Delete this item?"] = "Effacer cet élément?";
-$a->strings["Comment"] = "Commenter";
-$a->strings["Create a New Account"] = "Créer un nouveau compte";
-$a->strings["Register"] = "S'inscrire";
-$a->strings["Logout"] = "Se déconnecter";
-$a->strings["Login"] = "Connexion";
-$a->strings["Nickname or Email address: "] = "Pseudo ou courriel: ";
-$a->strings["Password: "] = "Mot de passe: ";
-$a->strings["OpenID: "] = "OpenID: ";
-$a->strings["Forgot your password?"] = "Mot de passe oublié?";
-$a->strings["Password Reset"] = "Réinitialiser le mot de passe";
-$a->strings["No profile"] = "Aucun profil";
-$a->strings["Edit profile"] = "Editer le profil";
+$a->strings["Categories"] = "Catégories";
$a->strings["Connect"] = "Relier";
+$a->strings["Ignore/Hide"] = "Ignorer/Cacher";
+$a->strings["Suggestions"] = "Suggestion";
+$a->strings["See more..."] = "Voir plus...";
+$a->strings["You have %1$.0f of %2$.0f allowed connections."] = "Vous avez %1$.0f des %2$.0f relations autorisées.";
+$a->strings["Add New Connection"] = "Ajouter une nouvelle relation";
+$a->strings["Enter the channel address"] = "Adresse du canal";
+$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Exemple&nbsp;: bob@exemple.com, http://exemple.com/barbara";
+$a->strings["Notes"] = "Notes";
+$a->strings["Save"] = "Sauver";
+$a->strings["Remove term"] = "Retirer le terme";
+$a->strings["Saved Searches"] = "Recherches sauvées";
+$a->strings["add"] = "ajouter";
+$a->strings["Saved Folders"] = "Dossiers sauvegardés";
+$a->strings["Everything"] = "Tout";
+$a->strings["Archives"] = "Archives";
+$a->strings["Refresh"] = "Actualiser";
+$a->strings["Me"] = "Moi";
+$a->strings["Best Friends"] = "Mes meilleurs amis";
+$a->strings["Friends"] = "Amis";
+$a->strings["Co-workers"] = "Mes collègues";
+$a->strings["Former Friends"] = "Mes anciens amis";
+$a->strings["Acquaintances"] = "Mes accointances";
+$a->strings["Everybody"] = "Tout le monde";
+$a->strings["Account settings"] = "Compte";
+$a->strings["Channel settings"] = "Canal";
+$a->strings["Additional features"] = "Fonc. supplémentaires";
+$a->strings["Feature settings"] = "Fonctionnalités";
+$a->strings["Display settings"] = "Affichage";
+$a->strings["Connected apps"] = "Applications";
+$a->strings["Export channel"] = "Exporter canal";
+$a->strings["Automatic Permissions (Advanced)"] = "Permissions automatiques (avancé)";
+$a->strings["Premium Channel Settings"] = "Canal Premium";
+$a->strings["Channel Sources"] = "Canaux sources";
+$a->strings["Settings"] = "Réglages";
+$a->strings["Check Mail"] = "Vérifier courriel";
+$a->strings["New Message"] = "Nouveau message";
+$a->strings["Chat Rooms"] = "Salons";
+$a->strings["Visible to everybody"] = "Visible par tous";
+$a->strings["show"] = "montrer";
+$a->strings["don't show"] = "cacher";
+$a->strings[" and "] = "et";
+$a->strings["public profile"] = "profil public";
+$a->strings["%1\$s changed %2\$s to &ldquo;%3\$s&rdquo;"] = "%1\$s a changé %2\$s en &ldquo;%3\$s&rdquo;";
+$a->strings["Visit %1\$s's %2\$s"] = "Visiter %1\$s de %2\$s";
+$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s a mis-à-jour %2\$s, modifiant %3\$s.";
+$a->strings["Logout"] = "Déconnexion";
+$a->strings["End this session"] = "Mettre fin à la session";
+$a->strings["Home"] = "Canal";
+$a->strings["Your posts and conversations"] = "Vos publications et conversations";
+$a->strings["View Profile"] = "Voir profil";
+$a->strings["Your profile page"] = "Votre profil";
+$a->strings["Edit Profiles"] = "Éditer profils";
+$a->strings["Manage/Edit profiles"] = "Gérer/éditer profils";
+$a->strings["Photos"] = "Photos";
+$a->strings["Your photos"] = "Vos photos";
+$a->strings["Files"] = "Fichiers";
+$a->strings["Your files"] = "Vos fichiers";
+$a->strings["Chat"] = "Discussion";
+$a->strings["Your chatrooms"] = "Vos salons";
+$a->strings["Events"] = "Événements";
+$a->strings["Your events"] = "Vos événements";
+$a->strings["Bookmarks"] = "Marque-pages";
+$a->strings["Your bookmarks"] = "Vos marque-pages";
+$a->strings["Webpages"] = "Pages web";
+$a->strings["Your webpages"] = "Vos pages web";
+$a->strings["Login"] = "Connexion";
+$a->strings["Sign in"] = "Connexion";
+$a->strings["%s - click to logout"] = "%s - cliquer pour déconnecter";
+$a->strings["Click to authenticate to your home hub"] = "S'authentifier auprès de son hébergement";
+$a->strings["Home Page"] = "Page d'accueil";
+$a->strings["Register"] = "Inscription";
+$a->strings["Create an account"] = "Créer un compte";
+$a->strings["Help"] = "Aide";
+$a->strings["Help and documentation"] = "Aide et documentation";
+$a->strings["Apps"] = "Applications";
+$a->strings["Addon applications, utilities, games"] = "Applications supplémentaires, jeux, utilitaires";
+$a->strings["Search"] = "Recherche";
+$a->strings["Search site content"] = "Recherche parmi le contenu du site";
+$a->strings["Directory"] = "Annuaire";
+$a->strings["Channel Locator"] = "Localisation de canaux";
+$a->strings["Matrix"] = "Matrice";
+$a->strings["Your matrix"] = "Votre matrice";
+$a->strings["Mark all matrix notifications seen"] = "Marquer toutes les notifications de la matrice comme vues";
+$a->strings["Channel Home"] = "Mon canal";
+$a->strings["Channel home"] = "Mon canal";
+$a->strings["Mark all channel notifications seen"] = "Marquer toutes les notifications du canal comme vues";
+$a->strings["Intros"] = "Introductions";
+$a->strings["New Connections"] = "Nouvelles relations";
+$a->strings["Notices"] = "Notifications";
+$a->strings["Notifications"] = "Notifications";
+$a->strings["See all notifications"] = "Voir toutes les notifications";
+$a->strings["Mark all system notifications seen"] = "Marquer toutes les notifications système comme vues";
+$a->strings["Mail"] = "Messages";
+$a->strings["Private mail"] = "Messages privés";
+$a->strings["See all private messages"] = "Voir tous les messages privés";
+$a->strings["Mark all private messages seen"] = "Marquer tous les messages privés comme vus";
+$a->strings["Inbox"] = "Boîte de réception";
+$a->strings["Outbox"] = "Boîte d'envoi";
+$a->strings["Event Calendar"] = "Calendrier des événements";
+$a->strings["See all events"] = "Voir tous les événements";
+$a->strings["Mark all events seen"] = "Marquer tous les événements comme vus";
+$a->strings["Channel Select"] = "Changer de canal";
+$a->strings["Manage Your Channels"] = "Gérer vos canaux";
+$a->strings["Account/Channel Settings"] = "Compte/Canal";
+$a->strings["Connections"] = "Relations";
+$a->strings["Manage/Edit Friends and Connections"] = "Gérer les amis et relations";
+$a->strings["Admin"] = "Admin";
+$a->strings["Site Setup and Configuration"] = "Configuration du site";
+$a->strings["Nothing new here"] = "Rien de neuf ici";
+$a->strings["Please wait..."] = "Merci de patienter...";
+$a->strings["prev"] = "préc.";
+$a->strings["first"] = "premier";
+$a->strings["last"] = "dernier";
+$a->strings["next"] = "suiv.";
+$a->strings["older"] = "plus ancien";
+$a->strings["newer"] = "plus récent";
+$a->strings["No connections"] = "Sans relations";
+$a->strings["%d Connection"] = array(
+ 0 => "%d relation",
+ 1 => "%d relations",
+);
+$a->strings["View Connections"] = "Voir les relations";
+$a->strings["poke"] = "tapoter";
+$a->strings["poked"] = "tapoté";
+$a->strings["ping"] = "solliciter";
+$a->strings["pinged"] = "sollicité";
+$a->strings["prod"] = "aiguillonner";
+$a->strings["prodded"] = "aiguillonné";
+$a->strings["slap"] = "baffer";
+$a->strings["slapped"] = "baffé";
+$a->strings["finger"] = "pointer";
+$a->strings["fingered"] = "pointé";
+$a->strings["rebuff"] = "rejetter";
+$a->strings["rebuffed"] = "rejetté";
+$a->strings["happy"] = "bonheur";
+$a->strings["sad"] = "triste";
+$a->strings["mellow"] = "mélancolie";
+$a->strings["tired"] = "fatigue";
+$a->strings["perky"] = "impertinence";
+$a->strings["angry"] = "colère";
+$a->strings["stupified"] = "stupeur";
+$a->strings["puzzled"] = "perplexité";
+$a->strings["interested"] = "intérêt";
+$a->strings["bitter"] = "amertune";
+$a->strings["cheerful"] = "entrain";
+$a->strings["alive"] = "vivacité";
+$a->strings["annoyed"] = "agaçement";
+$a->strings["anxious"] = "anxiété";
+$a->strings["cranky"] = "mauvais poil";
+$a->strings["disturbed"] = "perturbation";
+$a->strings["frustrated"] = "frustration";
+$a->strings["motivated"] = "motivation";
+$a->strings["relaxed"] = "détente";
+$a->strings["surprised"] = "surprise";
+$a->strings["Monday"] = "Lundi";
+$a->strings["Tuesday"] = "Mardi";
+$a->strings["Wednesday"] = "Mercredi";
+$a->strings["Thursday"] = "Jeudi";
+$a->strings["Friday"] = "Vendredi";
+$a->strings["Saturday"] = "Samedi";
+$a->strings["Sunday"] = "Dimanche";
+$a->strings["January"] = "Janvier";
+$a->strings["February"] = "Février";
+$a->strings["March"] = "Mars";
+$a->strings["April"] = "Avril";
+$a->strings["May"] = "Mai";
+$a->strings["June"] = "Juin";
+$a->strings["July"] = "Juillet";
+$a->strings["August"] = "Août";
+$a->strings["September"] = "Septembre";
+$a->strings["October"] = "Octobre";
+$a->strings["November"] = "Novembre";
+$a->strings["December"] = "Décembre";
+$a->strings["unknown.???"] = "inconnu.???";
+$a->strings["bytes"] = "octets";
+$a->strings["remove category"] = "suppr. catégorie";
+$a->strings["remove from file"] = "supprimer du fichier";
+$a->strings["Click to open/close"] = "Cliquer pour ouvrir/fermer";
+$a->strings["link to source"] = "lien vers source";
+$a->strings["Select a page layout: "] = "Choisir une mise en page&nbsp;:";
+$a->strings["default"] = "défaut";
+$a->strings["Page content type: "] = "Type de contenu&nbsp;:";
+$a->strings["Select an alternate language"] = "Choisir une langue alternative";
+$a->strings["photo"] = "photo";
+$a->strings["event"] = "événement";
+$a->strings["status"] = "le statut";
+$a->strings["comment"] = "commentaire";
+$a->strings["activity"] = "activité";
+$a->strings["Design"] = "Conception";
+$a->strings["Blocks"] = "Blocs";
+$a->strings["Menus"] = "Menus";
+$a->strings["Layouts"] = "Mises-en-page";
+$a->strings["Pages"] = "Pages";
+$a->strings["Image/photo"] = "Image/photo";
+$a->strings["Encrypted content"] = "Contenu chiffré";
+$a->strings["QR code"] = "QR code";
+$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s a écrit %2\$s qui suit %3\$s";
+$a->strings["post"] = "l'article";
+$a->strings["$1 wrote:"] = "$1 a écrit&nbsp;:";
+$a->strings["New window"] = "Nouvelle fenêtre";
+$a->strings["Open the selected location in a different window or browser tab"] = "Ouvrir l'emplacement dans une fenêtre (ou un onglet) différent";
+$a->strings["General Features"] = "Fonctionnalités générales";
+$a->strings["Content Expiration"] = "Expiration de contenu";
+$a->strings["Remove posts/comments and/or private messages at a future time"] = "Supprimer les contributions/commentaires et/ou messages privés à un moment futur";
+$a->strings["Multiple Profiles"] = "Profils multiples";
+$a->strings["Ability to create multiple profiles"] = "Possibilité de créer plusieurs profils";
+$a->strings["Web Pages"] = "Pages web";
+$a->strings["Provide managed web pages on your channel"] = "Fournir des pages web, sous votre contrôle, sur votre canal";
+$a->strings["Private Notes"] = "Notes privées";
+$a->strings["Enables a tool to store notes and reminders"] = "Active un outil pour stocker notes et mémos";
+$a->strings["Extended Identity Sharing"] = "Partage d'identité étendue";
+$a->strings["Share your identity with all websites on the internet. When disabled, identity is only shared with sites in the matrix."] = "Partage votre identité avec tous les sites web du Monde. Si décoché, l'identité sera seulement partagée avec les sites de la matrice.";
+$a->strings["Expert Mode"] = "Mode expert";
+$a->strings["Enable Expert Mode to provide advanced configuration options"] = "Activer le mode expert pour accéder aux options avancées";
+$a->strings["Premium Channel"] = "Canal Premium";
+$a->strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Vous permet d'appliquer des règles et restrictions aux relations de votre canal";
+$a->strings["Post Composition Features"] = "Fonctionnalités de composition";
+$a->strings["Richtext Editor"] = "Éditeur enrichi";
+$a->strings["Enable richtext editor"] = "Activer l'éditeur de texte enrichi";
+$a->strings["Post Preview"] = "Aperçu avant publication";
+$a->strings["Allow previewing posts and comments before publishing them"] = "Permettre de voir les publications/commentaires avant de les valider";
+$a->strings["Automatically import channel content from other channels or feeds"] = "Importe automatiquement le contenus d'autres canaux ou flux dans le canal en cours";
+$a->strings["Even More Encryption"] = "Encore plus de chiffrement";
+$a->strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Permettre le chiffrement - optionnel - du contenu de bout-en-bout au moyen d'un secret partagé";
+$a->strings["Network and Stream Filtering"] = "Filtrage du réseau et des flux";
+$a->strings["Search by Date"] = "Chercher par date";
+$a->strings["Ability to select posts by date ranges"] = "Pouvoir choisir des publications par date";
+$a->strings["Collections Filter"] = "Filtre des collections";
+$a->strings["Enable widget to display Network posts only from selected collections"] = "Activer une boîte qui permet de filtrer les publications du réseau parmi les collections selectionnées";
+$a->strings["Save search terms for re-use"] = "Sauver des termes de recherche pour utilisation ultérieure";
+$a->strings["Network Personal Tab"] = "Onglet \"réseau personnel\"";
+$a->strings["Enable tab to display only Network posts that you've interacted on"] = "Activer un onglet affichant seulement les publications du réseau sur lesquelles vous êtes intervenu";
+$a->strings["Network New Tab"] = "Onglet \"nouveautés réseau\"";
+$a->strings["Enable tab to display all new Network activity"] = "Activer un onglet avec toute activité récente sur le réseau";
+$a->strings["Affinity Tool"] = "Gérer l'affinité";
+$a->strings["Filter stream activity by depth of relationships"] = "Filtrer le flux d'activité en fonction de la profondeur des relations";
+$a->strings["Suggest Channels"] = "Suggérer des canaux";
+$a->strings["Show channel suggestions"] = "Montrer les suggestions de canaux";
+$a->strings["Post/Comment Tools"] = "Gérer les publications/commentaires";
+$a->strings["Edit Sent Posts"] = "Éditer les publications envoyées";
+$a->strings["Edit and correct posts and comments after sending"] = "Permettre d'éditer/corriger les publications/commentaires après envoi";
+$a->strings["Tagging"] = "Marquage";
+$a->strings["Ability to tag existing posts"] = "Permettre de marquer les publications existantes";
+$a->strings["Post Categories"] = "Catégoriser les publications";
+$a->strings["Add categories to your posts"] = "Ajouter des catégories à vos publications";
+$a->strings["Ability to file posts under folders"] = "Permettre de classer les publications dans des dossiers";
+$a->strings["Dislike Posts"] = "Détester une publication";
+$a->strings["Ability to dislike posts/comments"] = "Pouvoir détester les publications/commentaires";
+$a->strings["Star Posts"] = "Mettre en avant les publications";
+$a->strings["Ability to mark special posts with a star indicator"] = "Pouvoir marquer certaines publications d'une étoile";
+$a->strings["Tag Cloud"] = "Nuage de tags";
+$a->strings["Provide a personal tag cloud on your channel page"] = "Afficher un nuage de vos tags sur votre canal";
+$a->strings["Unknown | Not categorised"] = "Inconnu / Non-classé";
+$a->strings["Block immediately"] = "Bloquer directement";
+$a->strings["Shady, spammer, self-marketer"] = "Douteux, spammeur, donne dans l'auto-promotion";
+$a->strings["Known to me, but no opinion"] = "M'est connu, n'ai pas d'opinion à son sujet";
+$a->strings["OK, probably harmless"] = "OK, probablement anodin";
+$a->strings["Reputable, has my trust"] = "Réputé, je lui fais confiance";
+$a->strings["Frequently"] = "Constamment";
+$a->strings["Hourly"] = "Chaque heure";
+$a->strings["Twice daily"] = "Deux fois par jour";
+$a->strings["Daily"] = "Chaque jour";
+$a->strings["Weekly"] = "Chaque semaine";
+$a->strings["Monthly"] = "Chaque mois";
+$a->strings["Friendica"] = "Friendica";
+$a->strings["OStatus"] = "OStatus";
+$a->strings["RSS/Atom"] = "RSS/Atom";
+$a->strings["Email"] = "Courriel";
+$a->strings["Diaspora"] = "Diaspora";
+$a->strings["Facebook"] = "Facebook";
+$a->strings["Zot!"] = "Zot!";
+$a->strings["LinkedIn"] = "Linkedin";
+$a->strings["XMPP/IM"] = "XMPP/IM";
+$a->strings["MySpace"] = "MySpace";
+$a->strings["Miscellaneous"] = "Divers";
+$a->strings["year"] = "année";
+$a->strings["month"] = "mois";
+$a->strings["day"] = "jour";
+$a->strings["never"] = "jamais";
+$a->strings["less than a second ago"] = "à l'instant";
+$a->strings["years"] = "années";
+$a->strings["months"] = "mois";
+$a->strings["week"] = "semaine";
+$a->strings["weeks"] = "semaines";
+$a->strings["days"] = "jours";
+$a->strings["hour"] = "heure";
+$a->strings["hours"] = "heures";
+$a->strings["minute"] = "minute";
+$a->strings["minutes"] = "minutes";
+$a->strings["second"] = "seconde";
+$a->strings["seconds"] = "secondes";
+$a->strings["%1\$d %2\$s ago"] = "il y a %1\$d %2\$s";
+$a->strings["Cannot locate DNS info for database server '%s'"] = "Impossible de trouver les infos DNS du serveur de DB '%s'";
+$a->strings["l F d, Y \\@ g:i A"] = "l d F Y \\à G\\hi";
+$a->strings["Starts:"] = "Début&nbsp;:";
+$a->strings["Finishes:"] = "Fin&nbsp;:";
+$a->strings["Location:"] = "Localisation&nbsp;:";
+$a->strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Un groupe supprimé portant ce nom a été ressuscité. Les permissions liées aux éléments existants <strong>peuvent</strong> s'appliquer au groupe et aux membres futurs. Si ce n'est pas ce que vous attendiez, merci de recréer un nouveau groupe avec un nom différent.";
+$a->strings["Default privacy group for new contacts"] = "Groupe de confidentialité par défaut pour les nouveaux contacts";
+$a->strings["All Channels"] = "Tous canaux";
+$a->strings["edit"] = "éditer";
+$a->strings["Collections"] = "Collections";
+$a->strings["Edit collection"] = "Éditer collection";
+$a->strings["Create a new collection"] = "Créer collection";
+$a->strings["Channels not in any collection"] = "Canaux dans aucune collection";
+$a->strings["Delete this item?"] = "Supprimer cet élément?";
+$a->strings["Comment"] = "Commenter";
+$a->strings["show more"] = "montrer plus";
+$a->strings["show fewer"] = "montrer moins";
+$a->strings["Password too short"] = "Mot de passe trop court";
+$a->strings["Passwords do not match"] = "Les mots de passe ne correspondent pas";
+$a->strings["everybody"] = "tout le monde";
+$a->strings["Secret Passphrase"] = "Phrase de passe secrète";
+$a->strings["Passphrase hint"] = "Indice pour la phrase de passe";
+$a->strings["timeago.prefixAgo"] = "timeago.prefixAgo";
+$a->strings["timeago.suffixAgo"] = "timeago.suffixAgo";
+$a->strings["ago"] = "auparavant";
+$a->strings["from now"] = "de maintenant";
+$a->strings["less than a minute"] = "moins d'une minute";
+$a->strings["about a minute"] = "environ une minute";
+$a->strings["%d minutes"] = "%d minutes";
+$a->strings["about an hour"] = "environ une heure";
+$a->strings["about %d hours"] = "environ %d heures";
+$a->strings["a day"] = "un jour";
+$a->strings["%d days"] = "%d jours";
+$a->strings["about a month"] = "environ un mois";
+$a->strings["%d months"] = "%d mois";
+$a->strings["about a year"] = "environ un an";
+$a->strings["%d years"] = "%d années";
+$a->strings[" "] = " ";
+$a->strings["timeago.numbers"] = "timeago.numbers";
+$a->strings["No recipient provided."] = "Pas de destinataire.";
+$a->strings["[no subject]"] = "[sans objet]";
+$a->strings["Unable to determine sender."] = "Impossible de déterminer l'émetteur.";
+$a->strings["Stored post could not be verified."] = "Le message stocké n'a pas pu être vérifié.";
+$a->strings["Profile Photos"] = "Photos du profil";
+$a->strings["Permission denied."] = "Permission refusée.";
+$a->strings["Item was not found."] = "Élément introuvable.";
+$a->strings["No source file."] = "Pas de fichier source.";
+$a->strings["Cannot locate file to replace"] = "Impossible de trouver le fichier à remplacer.";
+$a->strings["Cannot locate file to revise/update"] = "Impossible de trouver le fichier à corriger/mettre-à-jour";
+$a->strings["File exceeds size limit of %d"] = "Le fichier dépasse la taille limite de %d";
+$a->strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Vous avez atteint votre limite de %1$.0f méga-octets autorisés pour le stockage des pièces-jointes";
+$a->strings["File upload failed. Possible system limit or action terminated."] = "Envoi du fichier impossible. Limite système ou action avortée.";
+$a->strings["Stored file could not be verified. Upload failed."] = "Le fichier stocké n'a pu être vérifié. Envoi impossible.";
+$a->strings["Path not available."] = "Chemin non disponible.";
+$a->strings["Empty pathname"] = "Chemin vide";
+$a->strings["duplicate filename or path"] = "doublon de chemin ou de fichier";
+$a->strings["Path not found."] = "Chemin introuvable.";
+$a->strings["mkdir failed."] = "mkdir a échoué.";
+$a->strings["database storage failed."] = "le stockage en BD a échoué";
+$a->strings["%1\$s's bookmarks"] = "Marque-pages de %1\$s";
+$a->strings["channel"] = "canal";
+$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s aime %3\$s de %2\$s";
+$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s déteste %3\$s de %2\$s";
+$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s est désormais relié à %2\$s";
+$a->strings["%1\$s poked %2\$s"] = "%1\$s a tapoté %2\$s";
+$a->strings["%1\$s is currently %2\$s"] = "%1\$s est actuellement %2\$s";
+$a->strings["Select"] = "Sélectionner";
+$a->strings["Delete"] = "Supprimer";
+$a->strings["Message is verified"] = "Message vérifié";
+$a->strings["View %s's profile @ %s"] = "Voir le profil de %s @ %s";
+$a->strings["Categories:"] = "Catégories&nbsp;:";
+$a->strings["Filed under:"] = "Classé sous&nbsp;:";
+$a->strings[" from %s"] = "de %s";
+$a->strings["last edited: %s"] = "dernière édition&nbsp;: %s";
+$a->strings["Expires: %s"] = "Expire&nbsp;: %s";
+$a->strings["View in context"] = "Voir en contexte";
+$a->strings["Please wait"] = "Merci de patienter";
+$a->strings["remove"] = "supprimer";
+$a->strings["Loading..."] = "Chargement...";
+$a->strings["Delete Selected Items"] = "Supprimer les éléments selectionnés";
+$a->strings["View Source"] = "Voir source";
+$a->strings["Follow Thread"] = "Suivre discussion";
+$a->strings["View Status"] = "Voir état";
+$a->strings["View Photos"] = "Voir photos";
+$a->strings["Matrix Activity"] = "Activité de la matrice";
+$a->strings["Edit Contact"] = "Éditer contact";
+$a->strings["Send PM"] = "Message privé";
+$a->strings["Poke"] = "Tapoter";
+$a->strings["%s likes this."] = "%s aime ça.";
+$a->strings["%s doesn't like this."] = "%s déteste ça.";
+$a->strings["<span %1\$s>%2\$d people</span> like this."] = array(
+ 0 => "",
+ 1 => "<span %1\$s>%2\$d personne(s)</span> aime(nt) ça.",
+);
+$a->strings["<span %1\$s>%2\$d people</span> don't like this."] = array(
+ 0 => "",
+ 1 => "<span %1\$s>%2\$d personne(s)</span> déteste(nt) ça.",
+);
+$a->strings["and"] = "et";
+$a->strings[", and %d other people"] = array(
+ 0 => "",
+ 1 => ", et %d autre(s) personne(s)",
+);
+$a->strings["%s like this."] = "%s aime ça.";
+$a->strings["%s don't like this."] = "%s déteste ça.";
+$a->strings["Visible to <strong>everybody</strong>"] = "Visible par <strong>tout le monde</strong>";
+$a->strings["Please enter a link URL:"] = "Merci d'entrer l'URL d'un lien&nbsp;:";
+$a->strings["Please enter a video link/URL:"] = "Merci d'entrer l'URL d'une video&nbsp;:";
+$a->strings["Please enter an audio link/URL:"] = "Merci d'entrer l'URL d'un contenu audio&nsbp;:";
+$a->strings["Tag term:"] = "Étiquette&nbsp;:";
+$a->strings["Save to Folder:"] = "Classer dans Dossier&nbsp;:";
+$a->strings["Where are you right now?"] = "Où êtes-vous présentement?";
+$a->strings["Expires YYYY-MM-DD HH:MM"] = "Expire YYYY-MM-DD HH:MM";
+$a->strings["Preview"] = "Aperçu";
+$a->strings["Share"] = "Partager";
+$a->strings["Page link title"] = "Titre de la page liée";
+$a->strings["Upload photo"] = "Téléverser photo";
+$a->strings["upload photo"] = "téléverser photo";
+$a->strings["Attach file"] = "Attacher fichier";
+$a->strings["attach file"] = "attacher fichier";
+$a->strings["Insert web link"] = "Insérer lien web";
+$a->strings["web link"] = "lien web";
+$a->strings["Insert video link"] = "Insérer lien vidéo";
+$a->strings["video link"] = "lien vidéo";
+$a->strings["Insert audio link"] = "Insérer lien audio";
+$a->strings["audio link"] = "lien audio";
+$a->strings["Set your location"] = "Spécifier votre localisation";
+$a->strings["set location"] = "spécifier localisation";
+$a->strings["Clear browser location"] = "Nettoyer la localisation du navigateur";
+$a->strings["clear location"] = "nettoyer localisation";
+$a->strings["Set title"] = "Spécifier le titre";
+$a->strings["Categories (comma-separated list)"] = "Catégories (séparées par des virgules)";
+$a->strings["Permission settings"] = "Permissions";
+$a->strings["permissions"] = "permissions";
+$a->strings["Public post"] = "Contenu public";
+$a->strings["Example: bob@example.com, mary@example.com"] = "Exemple: robert@exemple.com, marie@exemple.com";
+$a->strings["Set expiration date"] = "Définir la date d'expiration";
+$a->strings["Encrypt text"] = "Chiffrer le texte";
+$a->strings["OK"] = "Ok";
+$a->strings["Cancel"] = "Annuler";
+$a->strings["Commented Order"] = "Dans l'ordre des commentaires";
+$a->strings["Sort by Comment Date"] = "Trier par date de dernier commentaire";
+$a->strings["Posted Order"] = "Dans l'ordre des publications";
+$a->strings["Sort by Post Date"] = "Trier par date de publication";
+$a->strings["Personal"] = "Personnel";
+$a->strings["Posts that mention or involve you"] = "Publications qui vous mentionnent ou vous concernent d'une manière ou d'une autre";
+$a->strings["New"] = "Nouveautés";
+$a->strings["Activity Stream - by date"] = "Flux d'activité - par date";
+$a->strings["Starred"] = "Mis en avant";
+$a->strings["Favourite Posts"] = "Publications préférées";
+$a->strings["Spam"] = "Spam";
+$a->strings["Posts flagged as SPAM"] = "Publications marquées comme indésirables";
+$a->strings["Channel"] = "Canal";
+$a->strings["Status Messages and Posts"] = "Messages d'état et contributions";
+$a->strings["About"] = "À propos";
+$a->strings["Profile Details"] = "Détails du profil";
+$a->strings["Photo Albums"] = "Albums photo";
+$a->strings["Files and Storage"] = "Fichiers et Stockage";
+$a->strings["Chatrooms"] = "Salons";
+$a->strings["Events and Calendar"] = "Événements et agenda";
+$a->strings["Saved Bookmarks"] = "Marque-pages sauvegardés";
+$a->strings["Manage Webpages"] = "Gérer les pages web";
+$a->strings["Unable to obtain identity information from database"] = "Impossible d'obtenir les données d'identité depuis la base de données";
+$a->strings["Empty name"] = "Nom vide";
+$a->strings["Name too long"] = "Nom trop long";
+$a->strings["No account identifier"] = "Pas d'identifiant de compte";
+$a->strings["Nickname is required."] = "Un surnom est requis.";
+$a->strings["Nickname has unsupported characters or is already being used on this site."] = "Le surnom contient des caractères interdits, ou est déjà pris sur ce site.";
+$a->strings["Unable to retrieve created identity"] = "Impossible de récupérer l'identité créée";
+$a->strings["Default Profile"] = "Profil par défaut";
+$a->strings["Requested channel is not available."] = "Canal demandé non-disponible.";
+$a->strings[" Sorry, you don't have the permission to view this profile. "] = "Désolé, mais vous n'avez pas l'autorisation de voir ce profil.";
+$a->strings["Requested profile is not available."] = "Profil demandé inaccessible.";
+$a->strings["Change profile photo"] = "Changer la photo du profil";
$a->strings["Profiles"] = "Profils";
-$a->strings["Manage/edit profiles"] = "Gérer/éditer les profils";
-$a->strings["Change profile photo"] = "Changer de photo de profil";
+$a->strings["Manage/edit profiles"] = "Gérer/éditer profils";
$a->strings["Create New Profile"] = "Créer un nouveau profil";
+$a->strings["Edit Profile"] = "Éditer profil";
$a->strings["Profile Image"] = "Image du profil";
$a->strings["visible to everybody"] = "visible par tous";
-$a->strings["Edit visibility"] = "Changer la visibilité";
-$a->strings["Location:"] = "Localisation:";
-$a->strings["Gender:"] = "Genre:";
-$a->strings["Status:"] = "Statut:";
-$a->strings["Homepage:"] = "Page personnelle:";
-$a->strings["g A l F d"] = "g A | F d";
-$a->strings["F d"] = "F d";
-$a->strings["Birthday Reminders"] = "Rappels d'anniversaires";
-$a->strings["Birthdays this week:"] = "Anniversaires cette semaine:";
+$a->strings["Edit visibility"] = "Éditer la visibilité";
+$a->strings["Gender:"] = "Sexe&nbsp;:";
+$a->strings["Status:"] = "État&nbsp;:";
+$a->strings["Homepage:"] = "Site web&nbsp;:";
+$a->strings["Online Now"] = "Connecté";
+$a->strings["g A l F d"] = "H:i l d F";
+$a->strings["F d"] = "d F";
$a->strings["[today]"] = "[aujourd'hui]";
+$a->strings["Birthday Reminders"] = "Rappels d'anniversaires";
+$a->strings["Birthdays this week:"] = "Anniversaires cette semaine&nbsp;:";
+$a->strings["[No description]"] = "[Pas de description]";
$a->strings["Event Reminders"] = "Rappels d'événements";
-$a->strings["Events this week:"] = "Evénements cette semaine:";
-$a->strings["[No description]"] = "[Sans description]";
-$a->strings["Status"] = "Statut";
+$a->strings["Events this week:"] = "Événements cette semaine&nbsp;:";
$a->strings["Profile"] = "Profil";
-$a->strings["Photos"] = "Photos";
-$a->strings["Events"] = "Evènements";
-$a->strings["Personal Notes"] = "Notes personnelles";
-$a->strings["Welcome back %s"] = "Bienvenue à nouveau, %s";
-$a->strings["Manage Identities and/or Pages"] = "Gérer les identités et/ou les pages";
-$a->strings["(Toggle between different identities or community/group pages which share your account details.)"] = "(Bascule entre les différentes identités ou pages qui se partagent votre compte.)";
-$a->strings["Select an identity to manage: "] = "Choisir une identité à gérer: ";
+$a->strings["Full Name:"] = "Nom complet&nbsp;:";
+$a->strings["j F, Y"] = "j F Y";
+$a->strings["j F"] = "j F";
+$a->strings["Birthday:"] = "Date de naissance&nbsp;:";
+$a->strings["Age:"] = "Age&nbsp;:";
+$a->strings["for %1\$d %2\$s"] = "depuis %1\$d %2\$s";
+$a->strings["Sexual Preference:"] = "Orientation sexuelle&nbsp;:";
+$a->strings["Hometown:"] = "Ville natale&nbsp;:";
+$a->strings["Tags:"] = "Tags:";
+$a->strings["Political Views:"] = "Opinions politiques&nbsp;:";
+$a->strings["Religion:"] = "Religion&nbsp;:";
+$a->strings["About:"] = "À propos&nbsp;:";
+$a->strings["Hobbies/Interests:"] = "Occupations/Centres d'intérêt&nbsp;:";
+$a->strings["Likes:"] = "Aime&nbsp;:";
+$a->strings["Dislikes:"] = "N'aime pas&nbsp;:";
+$a->strings["Contact information and Social Networks:"] = "Coordonnées et réseaux sociaux&nbsp;:";
+$a->strings["My other channels:"] = "Mes autres canaux&nbsp;:";
+$a->strings["Musical interests:"] = "Goûts musicaux&nbsp;:";
+$a->strings["Books, literature:"] = "Lectures, goûts littéraires&nbsp;:";
+$a->strings["Television:"] = "Télévision&nbsp;:";
+$a->strings["Film/dance/culture/entertainment:"] = "Cinéma/danse/culture/divertissement&nsbp;:";
+$a->strings["Love/Romance:"] = "Vie sentimentale/amoureuse&nbsp;:";
+$a->strings["Work/employment:"] = "Travail&nbsp;:";
+$a->strings["School/education:"] = "Cursus&nbsp;:";
+$a->strings["Private Message"] = "Message Privé";
+$a->strings["Edit"] = "Éditer";
+$a->strings["save to folder"] = "classer dans un dossier";
+$a->strings["add star"] = "mettre en avant";
+$a->strings["remove star"] = "ne plus mettre en avant";
+$a->strings["toggle star status"] = "(dé)marquer";
+$a->strings["starred"] = "mis en avant";
+$a->strings["add tag"] = "étiquetter";
+$a->strings["I like this (toggle)"] = "J'aime (oui/non)";
+$a->strings["like"] = "aime";
+$a->strings["I don't like this (toggle)"] = "Je déteste (oui/non)";
+$a->strings["dislike"] = "déteste";
+$a->strings["Share this"] = "Partager ça";
+$a->strings["share"] = "partage";
+$a->strings["View %s's profile - %s"] = "Voir le profil de %s - %s";
+$a->strings["to"] = "à";
+$a->strings["via"] = "via";
+$a->strings["Wall-to-Wall"] = "Mur-mur";
+$a->strings["via Wall-To-Wall:"] = "par Mur-mur&nbsp;:";
+$a->strings["Bookmark Links"] = "Transformer les liens en marque-pages";
+$a->strings["%d comment"] = array(
+ 0 => "%d commentaire",
+ 1 => "%d commentaires",
+);
+$a->strings["This is you"] = "C'est vous";
$a->strings["Submit"] = "Envoyer";
-$a->strings["People Search"] = "Recherche de personnes";
-$a->strings["No matches"] = "Aucune correspondance";
-$a->strings["Image exceeds size limit of %d"] = "L'image dépasse la taille limite de %d";
-$a->strings["Unable to process image."] = "Impossible de traiter l'image.";
-$a->strings["Wall Photos"] = "Photos du mur";
-$a->strings["Image upload failed."] = "Le téléversement de l'image a échoué.";
-$a->strings["Access to this profile has been restricted."] = "L'accès au profil a été restreint.";
-$a->strings["Tips for New Members"] = "Conseils aux nouveaux";
-$a->strings["Disallowed profile URL."] = "URL de profil interdite.";
-$a->strings["This site is not configured to allow communications with other networks."] = "Ce site n'est pas configuré pour dialoguer avec d'autres réseaux.";
-$a->strings["No compatible communication protocols or feeds were discovered."] = "Aucun protocole de communication ni aucun flux n'a pu être découvert.";
-$a->strings["The profile address specified does not provide adequate information."] = "L'adresse de profil indiquée ne fournit par les informations adéquates.";
-$a->strings["An author or name was not found."] = "Aucun auteur ou nom d'auteur n'a pu être trouvé.";
-$a->strings["No browser URL could be matched to this address."] = "Aucune URL de navigation ne correspond à cette adresse.";
-$a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "L'adresse de profil spécifiée correspond à un réseau qui a été désactivé sur ce site.";
-$a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Profil limité. Cette personne ne sera pas capable de recevoir des notifications directes/personnelles de votre part.";
-$a->strings["Unable to retrieve contact information."] = "Impossible de récupérer les informations du contact.";
-$a->strings["following"] = "following";
-$a->strings["Image uploaded but image cropping failed."] = "Image envoyée, mais impossible de la retailler.";
-$a->strings["Profile Photos"] = "Photos du profil";
-$a->strings["Image size reduction [%s] failed."] = "Réduction de la taille de l'image [%s] échouée.";
-$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Rechargez la page avec la touche Maj pressée, ou bien effacez le cache du navigateur, si d'aventure la nouvelle photo n'apparaissait pas immédiatement.";
-$a->strings["Unable to process image"] = "Impossible de traiter l'image";
-$a->strings["Upload File:"] = "Fichier à téléverser:";
-$a->strings["Upload Profile Photo"] = "Téléverser une photo de profil";
-$a->strings["Upload"] = "Téléverser";
-$a->strings["or"] = "ou";
-$a->strings["skip this step"] = "ignorer cette étape";
-$a->strings["select a photo from your photo albums"] = "choisissez une photo depuis vos albums";
-$a->strings["Crop Image"] = "(Re)cadrer l'image";
-$a->strings["Please adjust the image cropping for optimum viewing."] = "Ajustez le cadre de l'image pour une visualisation optimale.";
-$a->strings["Done Editing"] = "Édition terminée";
-$a->strings["Image uploaded successfully."] = "Image téléversée avec succès.";
-$a->strings["Welcome to %s"] = "Bienvenue sur %s";
-$a->strings["[Embedded content - reload page to view]"] = "[contenu incorporé - rechargez la page pour le voir]";
-$a->strings["File exceeds size limit of %d"] = "La taille du fichier dépasse la limite de %d";
-$a->strings["File upload failed."] = "Le téléversement a échoué.";
-$a->strings["Friend Suggestions"] = "Suggestions d'amitiés/contacts";
-$a->strings["No suggestions. This works best when you have more than one contact/friend."] = "Pas de suggestion. Ceci fonctionne mieux quand vous avez plus d'un ami/contact.";
-$a->strings["Ignore/Hide"] = "Ignorer/cacher";
-$a->strings["Registration details for %s"] = "Détails d'inscription pour %s";
+$a->strings["Bold"] = "Gras";
+$a->strings["Italic"] = "Italique";
+$a->strings["Underline"] = "Souligné";
+$a->strings["Quote"] = "Citation";
+$a->strings["Code"] = "Code";
+$a->strings["Image"] = "Image";
+$a->strings["Link"] = "Lien/URL";
+$a->strings["Video"] = "Vidéo";
+$a->strings["Public Timeline"] = "Fil public";
+$a->strings["view full size"] = "pleine taille";
+$a->strings["created a new post"] = "a publié";
+$a->strings["commented on %s's post"] = "a commenté la publication de %s";
+$a->strings["Male"] = "Masculin";
+$a->strings["Female"] = "Féminin";
+$a->strings["Currently Male"] = "Actuellement masculin";
+$a->strings["Currently Female"] = "Actuellement féminin";
+$a->strings["Mostly Male"] = "Surtout masculin";
+$a->strings["Mostly Female"] = "Surtout féminin";
+$a->strings["Transgender"] = "Transgenre";
+$a->strings["Intersex"] = "Intersexuel";
+$a->strings["Transsexual"] = "Transsexuel";
+$a->strings["Hermaphrodite"] = "Hermaphrodite";
+$a->strings["Neuter"] = "Neutre";
+$a->strings["Non-specific"] = "Rien de spécifique";
+$a->strings["Other"] = "Autre";
+$a->strings["Undecided"] = "Indécis";
+$a->strings["Males"] = "Hommes";
+$a->strings["Females"] = "Femmes";
+$a->strings["Gay"] = "Gay";
+$a->strings["Lesbian"] = "Lesbienne";
+$a->strings["No Preference"] = "Sans préférence";
+$a->strings["Bisexual"] = "Bisexuel";
+$a->strings["Autosexual"] = "Autosexuel";
+$a->strings["Abstinent"] = "Abstinent";
+$a->strings["Virgin"] = "Vierge";
+$a->strings["Deviant"] = "Déviant";
+$a->strings["Fetish"] = "Fétichiste";
+$a->strings["Oodles"] = "Une floppée";
+$a->strings["Nonsexual"] = "Nonsexuel";
+$a->strings["Single"] = "Célibataire";
+$a->strings["Lonely"] = "Esseulé";
+$a->strings["Available"] = "Disponible";
+$a->strings["Unavailable"] = "Indisponible";
+$a->strings["Has crush"] = "A un béguin";
+$a->strings["Infatuated"] = "Amoureux transi";
+$a->strings["Dating"] = "Sort avec quelqu'un";
+$a->strings["Unfaithful"] = "Infidèle";
+$a->strings["Sex Addict"] = "Accro au sexe";
+$a->strings["Friends/Benefits"] = "Amis avec bénéfices";
+$a->strings["Casual"] = "Sans engagement";
+$a->strings["Engaged"] = "Fiancé(e)";
+$a->strings["Married"] = "Marié(e)";
+$a->strings["Imaginarily married"] = "Marié(e) dans ses rêves";
+$a->strings["Partners"] = "Partenaires";
+$a->strings["Cohabiting"] = "En cohabitation";
+$a->strings["Common law"] = "Conjoints de fait";
+$a->strings["Happy"] = "Heureux";
+$a->strings["Not looking"] = "Pas en recherche";
+$a->strings["Swinger"] = "Infidèle";
+$a->strings["Betrayed"] = "Trahi(e)";
+$a->strings["Separated"] = "Séparé(e)";
+$a->strings["Unstable"] = "Instable";
+$a->strings["Divorced"] = "Divorcé(e)";
+$a->strings["Imaginarily divorced"] = "Divorcé(e) dans ses rêves";
+$a->strings["Widowed"] = "Veuf/veuve";
+$a->strings["Uncertain"] = "Incertain";
+$a->strings["It's complicated"] = "C'est compliqué";
+$a->strings["Don't care"] = "S'en fiche";
+$a->strings["Ask me"] = "Me demander";
+$a->strings["Missing room name"] = "Il manque le nom du salon";
+$a->strings["Duplicate room name"] = "Un salon de ce nom existe déjà";
+$a->strings["Invalid room specifier."] = "Identifiant de salon invalide.";
+$a->strings["Room not found."] = "Salon introuvable.";
+$a->strings["Room is full"] = "Le salon est plein";
+$a->strings["Tags"] = "Étiquettes";
+$a->strings["Keywords"] = "Mots-clefs";
+$a->strings["have"] = "ont";
+$a->strings["has"] = "a";
+$a->strings["want"] = "veulent";
+$a->strings["wants"] = "veut";
+$a->strings["likes"] = "aime";
+$a->strings["dislikes"] = "déteste";
+$a->strings["Logged out."] = "Deconnecté.";
+$a->strings["Failed authentication"] = "Échec de l'authentification";
+$a->strings["Login failed."] = "Échec de la connexion.";
+$a->strings["Not a valid email address"] = "Ce n'est pas une adresse de courriel valide";
+$a->strings["Your email domain is not among those allowed on this site"] = "Votre domaine de courriel ne fait pas partie de ceux autorisés par ce site";
+$a->strings["Your email address is already registered at this site."] = "Votre adresse de courriel est déjà inscrite sur ce site.";
+$a->strings["An invitation is required."] = "Une invitation est requise.";
+$a->strings["Invitation could not be verified."] = "Votre invitation n'a pas pu être vérifiée.";
+$a->strings["Please enter the required information."] = "Merci d'entrer les informations requises.";
+$a->strings["Failed to store account information."] = "Impossible de stocker les informations liées au compte.";
+$a->strings["Registration request at %s"] = "Demande d'inscription sur %s";
$a->strings["Administrator"] = "Administrateur";
-$a->strings["Account approved."] = "Inscription validée.";
+$a->strings["your registration password"] = "votre mot de passe d'inscription";
+$a->strings["Registration details for %s"] = "Détails de l'inscription à %s";
+$a->strings["Account approved."] = "Compte approuvé.";
$a->strings["Registration revoked for %s"] = "Inscription révoquée pour %s";
-$a->strings["Please login."] = "Merci de vous connecter.";
-$a->strings["Profile not found."] = "Profil introuvable.";
-$a->strings["Profile Name is required."] = "Le nom du profil est requis.";
-$a->strings["Profile updated."] = "Profil mis à jour.";
-$a->strings["Profile deleted."] = "Profil supprimé.";
-$a->strings["Profile-"] = "Profil-";
-$a->strings["New profile created."] = "Nouveau profil créé.";
-$a->strings["Profile unavailable to clone."] = "Ce profil ne peut être cloné.";
-$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Cacher ma liste d'amis/contacts des visiteurs de ce profil?";
-$a->strings["Yes"] = "Oui";
-$a->strings["No"] = "Non";
-$a->strings["Edit Profile Details"] = "Éditer les détails du profil";
-$a->strings["View this profile"] = "Voir ce profil";
-$a->strings["Create a new profile using these settings"] = "Créer un nouveau profil en utilisant ces réglages";
-$a->strings["Clone this profile"] = "Cloner ce profil";
-$a->strings["Delete this profile"] = "Supprimer ce profil";
-$a->strings["Profile Name:"] = "Nom du profil:";
-$a->strings["Your Full Name:"] = "Votre nom complet:";
-$a->strings["Title/Description:"] = "Titre/Description:";
-$a->strings["Your Gender:"] = "Votre genre:";
-$a->strings["Birthday (%s):"] = "Anniversaire (%s):";
-$a->strings["Street Address:"] = "Adresse postale:";
-$a->strings["Locality/City:"] = "Ville/Localité:";
-$a->strings["Postal/Zip Code:"] = "Code postal:";
-$a->strings["Country:"] = "Pays:";
-$a->strings["Region/State:"] = "Région/État:";
-$a->strings["<span class=\"heart\">&hearts;</span> Marital Status:"] = "<span class=\"heart\">&hearts;</span> Statut marital:";
-$a->strings["Who: (if applicable)"] = "Qui: (si pertinent)";
-$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Exemples: cathy123, Cathy Williams, cathy@example.com";
-$a->strings["Sexual Preference:"] = "Préférence sexuelle:";
-$a->strings["Homepage URL:"] = "Page personnelle:";
-$a->strings["Political Views:"] = "Opinions politiques:";
-$a->strings["Religious Views:"] = "Opinions religieuses:";
-$a->strings["Public Keywords:"] = "Mots-clés publics:";
-$a->strings["Private Keywords:"] = "Mots-clés privés:";
-$a->strings["Example: fishing photography software"] = "Exemple: football dessin programmation";
-$a->strings["(Used for suggesting potential friends, can be seen by others)"] = "(Utilisés pour vous suggérer des amis potentiels, peuvent être vus par autrui)";
-$a->strings["(Used for searching profiles, never shown to others)"] = "(Utilisés pour rechercher dans les profils, ne seront jamais montrés à autrui)";
-$a->strings["Tell us about yourself..."] = "Parlez-nous de vous...";
-$a->strings["Hobbies/Interests"] = "Passe-temps/Centres d'intérêt";
-$a->strings["Contact information and Social Networks"] = "Coordonées/Réseaux sociaux";
-$a->strings["Musical interests"] = "Goûts musicaux";
-$a->strings["Books, literature"] = "Lectures";
-$a->strings["Television"] = "Télévision";
-$a->strings["Film/dance/culture/entertainment"] = "Cinéma/Danse/Culture/Divertissement";
-$a->strings["Love/romance"] = "Amour/Romance";
-$a->strings["Work/employment"] = "Activité professionnelle/Occupation";
-$a->strings["School/education"] = "Études/Formation";
-$a->strings["This is your <strong>public</strong> profile.<br />It <strong>may</strong> be visible to anybody using the internet."] = "Ceci est votre profil <strong>public</strong>.<br />Il <strong>peut</strong> être visible par n'importe quel utilisateur d'Internet.";
-$a->strings["Age: "] = "Age: ";
-$a->strings["Edit/Manage Profiles"] = "Editer/gérer les profils";
-$a->strings["Item not found."] = "Élément introuvable.";
-$a->strings["everybody"] = "tout le monde";
-$a->strings["Missing some important data!"] = "Il manque certaines informations importantes!";
-$a->strings["Update"] = "Mises-à-jour";
-$a->strings["Failed to connect with email account using the settings provided."] = "Impossible de se connecter au compte courriel configuré.";
-$a->strings["Email settings updated."] = "Réglages de courriel mis-à-jour.";
-$a->strings["Passwords do not match. Password unchanged."] = "Les mots de passe ne correspondent pas. Aucun changement appliqué.";
-$a->strings["Empty passwords are not allowed. Password unchanged."] = "Les mots de passe vides sont interdits. Aucun changement appliqué.";
-$a->strings["Password changed."] = "Mots de passe changés.";
-$a->strings["Password update failed. Please try again."] = "Le changement de mot de passe a échoué. Merci de recommencer.";
-$a->strings[" Please use a shorter name."] = " Merci d'utiliser un nom plus court.";
-$a->strings[" Name too short."] = " Nom trop court.";
-$a->strings[" Not valid email."] = " Email invalide.";
-$a->strings[" Cannot change to that email."] = " Impossible de changer pour cet email.";
-$a->strings["Settings updated."] = "Réglages mis à jour.";
-$a->strings["Account settings"] = "Réglages du compte";
-$a->strings["Connector settings"] = "Réglages des connecteurs";
-$a->strings["Plugin settings"] = "Réglages des extensions";
-$a->strings["Connections"] = "Connexions";
-$a->strings["Export personal data"] = "Exporter les données personnelles";
-$a->strings["Add application"] = "Ajouter une application";
-$a->strings["Cancel"] = "Annuler";
-$a->strings["Name"] = "Nom";
-$a->strings["Consumer Key"] = "Clé utilisateur";
-$a->strings["Consumer Secret"] = "Secret utilisateur";
-$a->strings["Redirect"] = "Rediriger";
-$a->strings["Icon url"] = "URL de l'icône";
-$a->strings["You can't edit this application."] = "Vous ne pouvez pas éditer cette application.";
-$a->strings["Connected Apps"] = "Applications connectées";
-$a->strings["Edit"] = "Éditer";
-$a->strings["Delete"] = "Supprimer";
-$a->strings["Client key starts with"] = "La clé cliente commence par";
-$a->strings["No name"] = "Sans nom";
-$a->strings["Remove authorization"] = "Révoquer l'autorisation";
-$a->strings["No Plugin settings configured"] = "Pas de réglages d'extensions configurés";
-$a->strings["Plugin Settings"] = "Réglages des extensions";
-$a->strings["Built-in support for %s connectivity is %s"] = "Le support natif pour la connectivité %s est %s";
-$a->strings["Diaspora"] = "Diaspora";
-$a->strings["enabled"] = "activé";
-$a->strings["disabled"] = "désactivé";
-$a->strings["StatusNet"] = "StatusNet";
-$a->strings["Connector Settings"] = "Réglages des connecteurs";
-$a->strings["Email/Mailbox Setup"] = "Réglages de courriel/boîte à lettre";
-$a->strings["If you wish to communicate with email contacts using this service (optional), please specify how to connect to your mailbox."] = "Si vous souhaitez communiquer avec vos contacts \"courriel\" (facultatif), merci de nous indiquer comment vous connecter à votre boîte.";
-$a->strings["Last successful email check:"] = "Dernière vérification réussie des courriels:";
-$a->strings["Email access is disabled on this site."] = "L'accès courriel est désactivé sur ce site.";
-$a->strings["IMAP server name:"] = "Nom du serveur IMAP:";
-$a->strings["IMAP port:"] = "Port IMAP:";
-$a->strings["Security:"] = "Sécurité:";
-$a->strings["None"] = "Aucun(e)";
-$a->strings["Email login name:"] = "Nom de connexion:";
-$a->strings["Email password:"] = "Mot de passe:";
-$a->strings["Reply-to address:"] = "Adresse de réponse:";
-$a->strings["Send public posts to all email contacts:"] = "Les notices publiques vont à tous les contacts courriel:";
-$a->strings["Normal Account"] = "Compte normal";
-$a->strings["This account is a normal personal profile"] = "Ce compte correspond à un profil normal, pour une seule personne (physique, généralement)";
-$a->strings["Soapbox Account"] = "Compte \"boîte à savon\"";
-$a->strings["Automatically approve all connection/friend requests as read-only fans"] = "Accepter automatiquement toutes les demandes d'amitié/connexion comme étant des fans 'en lecture seule'";
-$a->strings["Community/Celebrity Account"] = "Compte de communauté/célébrité";
-$a->strings["Automatically approve all connection/friend requests as read-write fans"] = "Accepter automatiquement toutes les demandes d'amitié/connexion comme étant des fans en 'lecture/écriture'";
-$a->strings["Automatic Friend Account"] = "Compte auto-amical";
-$a->strings["Automatically approve all connection/friend requests as friends"] = "Accepter automatiquement toutes les demandes d'amitié/connexion comme étant des amis";
-$a->strings["OpenID:"] = "OpenID:";
-$a->strings["(Optional) Allow this OpenID to login to this account."] = "&amp;nbsp;(Facultatif) Autoriser cet OpenID à se connecter à ce compte.";
-$a->strings["Publish your default profile in your local site directory?"] = "Publier votre profil par défaut sur l'annuaire local de ce site?";
-$a->strings["Publish your default profile in the global social directory?"] = "Publier votre profil par défaut sur l'annuaire social global?";
-$a->strings["Hide your contact/friend list from viewers of your default profile?"] = "Cacher votre liste de contacts/amis des visiteurs de votre profil par défaut?";
-$a->strings["Hide profile details and all your messages from unknown viewers?"] = "Masquer les détails du profil ainsi que tous vos messages aux visiteurs inconnus?";
-$a->strings["Allow friends to post to your profile page?"] = "Autoriser vos amis à publier sur votre profil?";
-$a->strings["Allow friends to tag your posts?"] = "Autoriser vos amis à tagguer vos notices?";
-$a->strings["Profile is <strong>not published</strong>."] = "Ce profil n'est <strong>pas publié</strong>.";
-$a->strings["Your Identity Address is"] = "L'adresse de votre identité est";
-$a->strings["Account Settings"] = "Réglages du compte";
-$a->strings["Password Settings"] = "Réglages de mot de passe";
-$a->strings["New Password:"] = "Nouveau mot de passe:";
-$a->strings["Confirm:"] = "Confirmer:";
-$a->strings["Leave password fields blank unless changing"] = "Laissez les champs de mot de passe vierges, sauf si vous désirez les changer";
-$a->strings["Basic Settings"] = "Réglages basiques";
-$a->strings["Full Name:"] = "Nom complet:";
-$a->strings["Email Address:"] = "Adresse courriel:";
-$a->strings["Your Timezone:"] = "Votre fuseau horaire:";
-$a->strings["Default Post Location:"] = "Publication par défaut depuis :";
-$a->strings["Use Browser Location:"] = "Utiliser la localisation géographique du navigateur:";
-$a->strings["Display Theme:"] = "Thème d'affichage:";
-$a->strings["Security and Privacy Settings"] = "Réglages de sécurité et vie privée";
-$a->strings["Maximum Friend Requests/Day:"] = "Nombre maximal de requêtes d'amitié/jour:";
-$a->strings["(to prevent spam abuse)"] = "(pour limiter l'impact du spam)";
-$a->strings["Default Post Permissions"] = "Permissions par défaut sur les articles";
-$a->strings["(click to open/close)"] = "(cliquer pour ouvrir/fermer)";
-$a->strings["Automatically expire posts after days:"] = "Les notices expirent automatiquement au bout de (en jours):";
-$a->strings["If empty, posts will not expire. Expired posts will be deleted"] = "Si elles sont vides, les notices n'expireront pas. Les notices expirées seront supprimées";
-$a->strings["Notification Settings"] = "Réglages de notification";
-$a->strings["Send a notification email when:"] = "Envoyer un courriel de notification quand:";
-$a->strings["You receive an introduction"] = "Vous recevez une introduction";
-$a->strings["Your introductions are confirmed"] = "Vos introductions sont confirmées";
-$a->strings["Someone writes on your profile wall"] = "Quelqu'un écrit sur votre mur";
-$a->strings["Someone writes a followup comment"] = "Quelqu'un vous commente";
-$a->strings["You receive a private message"] = "Vous recevez un message privé";
-$a->strings["Advanced Page Settings"] = "Réglages avancés";
-$a->strings["Saved Searches"] = "Recherches sauvées";
-$a->strings["Remove term"] = "Retirer le terme";
-$a->strings["Public access denied."] = "Accès public refusé.";
-$a->strings["Search This Site"] = "Rechercher sur ce site";
-$a->strings["No results."] = "Aucun résultat.";
-$a->strings["Photo Albums"] = "Albums photo";
-$a->strings["Contact Photos"] = "Photos du contact";
-$a->strings["Contact information unavailable"] = "Informations de contact indisponibles";
-$a->strings["Album not found."] = "Album introuvable.";
-$a->strings["Delete Album"] = "Effacer l'album";
-$a->strings["Delete Photo"] = "Effacer la photo";
-$a->strings["was tagged in a"] = "a été identifié dans";
-$a->strings["photo"] = "photo";
-$a->strings["by"] = "par";
-$a->strings["Image exceeds size limit of "] = "L'image dépasse la taille maximale de ";
-$a->strings["Image file is empty."] = "Fichier image vide.";
-$a->strings["No photos selected"] = "Aucune photo sélectionnée";
-$a->strings["Access to this item is restricted."] = "Accès restreint à cet élément.";
-$a->strings["Upload Photos"] = "Téléverser des photos";
-$a->strings["New album name: "] = "Nom du nouvel album: ";
-$a->strings["or existing album name: "] = "ou nom d'un album existant: ";
-$a->strings["Do not show a status post for this upload"] = "Ne pas publier de notice pour cet envoi";
-$a->strings["Permissions"] = "Permissions";
-$a->strings["Edit Album"] = "Éditer l'album";
-$a->strings["View Photo"] = "Voir la photo";
-$a->strings["Permission denied. Access to this item may be restricted."] = "Interdit. L'accès à cet élément peut avoir été restreint.";
-$a->strings["Photo not available"] = "Photo indisponible";
-$a->strings["View photo"] = "Voir photo";
-$a->strings["Edit photo"] = "Éditer la photo";
-$a->strings["Use as profile photo"] = "Utiliser comme photo de profil";
-$a->strings["Private Message"] = "Message privé";
-$a->strings["View Full Size"] = "Voir en taille réelle";
-$a->strings["Tags: "] = "Étiquettes: ";
-$a->strings["[Remove any tag]"] = "[Retirer toutes les étiquettes]";
-$a->strings["New album name"] = "Nom du nouvel album";
-$a->strings["Caption"] = "Titre";
-$a->strings["Add a Tag"] = "Ajouter une étiquette";
-$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Exemples: @bob, @Barbara_Jensen, @jim@example.com, #Californie, #vacances";
-$a->strings["I like this (toggle)"] = "I like this (bascule)";
-$a->strings["I don't like this (toggle)"] = "I don't like this (bascule)";
-$a->strings["Share"] = "Partager";
-$a->strings["Please wait"] = "Patientez";
-$a->strings["This is you"] = "C'est vous";
-$a->strings["Recent Photos"] = "Photos récentes";
-$a->strings["Upload New Photos"] = "Téléverser de nouvelles photos";
-$a->strings["View Album"] = "Voir l'album";
-$a->strings["Welcome to Friendika"] = "Bienvenue sur Friendica";
-$a->strings["New Member Checklist"] = "Checklist du nouvel utilisateur";
-$a->strings["We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page."] = "Nous souhaiterions vous donner quelques astuces et pointeurs pour rendre votre expérience la plus plaisante possible. Cliquez sur n'importe quel élément pour visiter la page correspondante.";
-$a->strings["On your <em>Settings</em> page - change your initial password. Also make a note of your Identity Address. This will be useful in making friends."] = "Sur votre page <em>Réglages</em> - changez votre mot de passe originel. Profitez-en pour prendre note de votre Adresse d'Identité. Elle vous sera utile pour vous faire de nouveaux amis.";
-$a->strings["Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."] = "Vérifiez les autres réglages, tout particulièrement ceux liés à la vie privée. Un profil non listé, c'est un peu comme un numéro sur liste rouge. En général, vous devriez probablement publier votre profil - à moins que tous vos amis (potentiels) sachent déjà comment vous trouver.";
-$a->strings["Upload a profile photo if you have not done so already. Studies have shown that people with real photos of themselves are ten times more likely to make friends than people who do not."] = "Téléversez (envoyez) une photo de profil si vous n'en avez pas déjà une. Les études montrent que les gens qui affichent de vraies photos d'eux sont dix fois plus susceptibles de se faire des amis.";
-$a->strings["Authorise the Facebook Connector if you currently have a Facebook account and we will (optionally) import all your Facebook friends and conversations."] = "Activez et paramétrez le connecteur Facebook si vous avez un compte Facebook et nous pourrons (de manière facultative) importer tous vos amis et conversations Facebook.";
-$a->strings["Enter your email access information on your Settings page if you wish to import and interact with friends or mailing lists from your email INBOX"] = "Entrez les paramètres de votre adresse de courriel sur la page des Réglages si vous souhaitez importer et interagir avec vos contacts conventionnels.";
-$a->strings["Edit your <strong>default</strong> profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors."] = "Éditez votre profil <strong>par défaut</strong> à votre convenance. Vérifiez les réglages concernant la visibilité de votre liste d'amis par les visiteurs inconnus.";
-$a->strings["Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships."] = "Choisissez quelques mots-clé publics pour votre profil par défaut. Ils pourront ainsi décrire vos centres d'intérêt, et nous pourrons vous proposer des contacts qui les partagent.";
-$a->strings["Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the <em>Connect</em> dialog."] = "Votre page Contacts est l'endroit rêvé pour gérer vos relations et contacts, et vous relier à des amis issus d'autres réseaux. En général, il suffit d'entrer leur adresse d'identité ou l'URL de leur site dans le champ <em>Relier</em>";
-$a->strings["The Directory page lets you find other people in this network or other federated sites. Look for a <em>Connect</em> or <em>Follow</em> link on their profile page. Provide your own Identity Address if requested."] = "La page Annuaire vous permet de trouver d'autres personnes au sein de ce réseaux ou parmi d'autres sites fédérés. Cherchez un lien <em>Relier</em> ou <em>Suivre</em> sur leur profil. Vous pourrez avoir besoin d'indiquer votre adresse d'identité.";
-$a->strings["Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page."] = "Une fois que vous avez trouvé quelques amis, organisez-les en groupes de conversation privés depuis le panneau latéral de la page Contacts. Vous pourrez ensuite interagir avec chaque groupe de manière privée depuis la page Réseau.";
-$a->strings["Our <strong>help</strong> pages may be consulted for detail on other program features and resources."] = "Nos pages d'<strong>aide</strong> peuvent être consultées pour davantage de détails sur les fonctionnalités ou les ressources.";
-$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A";
-$a->strings["Time Conversion"] = "Conversion temporelle";
-$a->strings["Friendika provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica fournit ce service pour partager des événements avec d'autres réseaux et amis indépendament de leur fuseau horaire.";
-$a->strings["UTC time: %s"] = "Temps UTC : %s";
-$a->strings["Current timezone: %s"] = "Zone de temps courante : %s";
-$a->strings["Converted localtime: %s"] = "Temps local converti : %s";
-$a->strings["Please select your timezone:"] = "Sélectionner votre zone :";
-$a->strings["Item has been removed."] = "Cet élément a été enlevé.";
-$a->strings["Item not found"] = "Élément introuvable";
-$a->strings["Edit post"] = "Éditer la publication";
-$a->strings["Post to Email"] = "Publier aussi par courriel";
-$a->strings["Upload photo"] = "Joindre photo";
-$a->strings["Attach file"] = "Joindre fichier";
-$a->strings["Insert web link"] = "Insérer lien web";
-$a->strings["Insert YouTube video"] = "Insérer une vidéo Youtube";
-$a->strings["Insert Vorbis [.ogg] video"] = "Insérer un lien vidéo Vorbis [.ogg]";
-$a->strings["Insert Vorbis [.ogg] audio"] = "Insérer un lien audio Vorbis [.ogg]";
-$a->strings["Set your location"] = "Définir votre localisation";
-$a->strings["Clear browser location"] = "Effacer la localisation du navigateur";
-$a->strings["Permission settings"] = "Réglages des permissions";
-$a->strings["CC: email addresses"] = "CC: adresses de courriel";
-$a->strings["Public post"] = "Notice publique";
-$a->strings["Example: bob@example.com, mary@example.com"] = "Exemple: bob@exemple.com, mary@exemple.com";
-$a->strings["%s : Not a valid email address."] = "%s : Adresse de courriel invalide.";
-$a->strings["Please join my network on %s"] = "Vous pouvez rejoindre mon réseau sur %s";
-$a->strings["%s : Message delivery failed."] = "%s : L'envoi du message a échoué.";
-$a->strings["%d message sent."] = array(
- 0 => "%d message envoyé.",
- 1 => "%d messages envoyés.",
-);
-$a->strings["You have no more invitations available"] = "Vous n'avez plus d'invitations disponibles";
-$a->strings["Send invitations"] = "Envoyer des invitations";
-$a->strings["Enter email addresses, one per line:"] = "Entrez les adresses email, une par ligne:";
-$a->strings["Your message:"] = "Votre message:";
-$a->strings["Please join my social network on %s"] = "Vous pouvez rejoindre mon réseau social sur %s";
-$a->strings["To accept this invitation, please visit:"] = "Pour accepter cette invitation, rendez vous sur:";
-$a->strings["You will need to supply this invitation code: \$invite_code"] = "Vous devrez fournir ce code d'invitation: \$invite_code";
-$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Une fois inscrit, connectez-vous à la page de mon profil sur:";
-$a->strings["{0} wants to be your friend"] = "{0} souhaite être votre ami(e)";
-$a->strings["{0} sent you a message"] = "{0} vous a envoyé un message";
-$a->strings["{0} requested registration"] = "{0} a demandé à s'inscrire";
-$a->strings["{0} commented %s's post"] = "{0} a commenté une notice de %s";
-$a->strings["{0} liked %s's post"] = "{0} a aimé une notice de %s";
-$a->strings["{0} disliked %s's post"] = "{0} n'a pas aimé une notice de %s";
-$a->strings["{0} is now friends with %s"] = "{0} est désormais ami(e) avec %s";
-$a->strings["{0} posted"] = "{0} a posté";
-$a->strings["{0} tagged %s's post with #%s"] = "{0} a taggué la notice de %s avec #%s";
-$a->strings["Could not access contact record."] = "Impossible d'accéder à l'enregistrement du contact.";
-$a->strings["Could not locate selected profile."] = "Impossible de localiser le profil séléctionné.";
-$a->strings["Contact updated."] = "Contact mis-à-jour.";
-$a->strings["Failed to update contact record."] = "Échec de mise-à-jour du contact.";
-$a->strings["Contact has been blocked"] = "Le contact a été bloqué";
-$a->strings["Contact has been unblocked"] = "Le contact n'est plus bloqué";
-$a->strings["Contact has been ignored"] = "Le contact a été ignoré";
-$a->strings["Contact has been unignored"] = "Le contact n'est plus ignoré";
-$a->strings["stopped following"] = "retiré de la liste de suivi";
-$a->strings["Contact has been removed."] = "Ce contact a été retiré.";
-$a->strings["You are mutual friends with %s"] = "Vous êtes ami (et réciproquement) avec %s";
-$a->strings["You are sharing with %s"] = "Vous partagez avec %s";
-$a->strings["%s is sharing with you"] = "%s partage avec vous";
-$a->strings["Private communications are not available for this contact."] = "Les communications privées ne sont pas disponibles pour ce contact.";
-$a->strings["Never"] = "Jamais";
-$a->strings["(Update was successful)"] = "(Mise à jour effectuée avec succès)";
-$a->strings["(Update was not successful)"] = "(Mise à jour échouée)";
-$a->strings["Suggest friends"] = "Suggérer amitié/contact";
-$a->strings["Network type: %s"] = "Type de réseau %s";
-$a->strings["%d contact in common"] = array(
- 0 => "%d contact en commun",
- 1 => "%d contacts en commun",
+$a->strings["Sort Options"] = "Options de tri";
+$a->strings["Alphabetic"] = "Alphabétique";
+$a->strings["Reverse Alphabetic"] = "Alphabétique inversé";
+$a->strings["Newest to Oldest"] = "Anté-chronologique";
+$a->strings["Enable Safe Search"] = "Activer la recherche sûre";
+$a->strings["Disable Safe Search"] = "Désactiver la recherche sûre";
+$a->strings["Safe Mode"] = "Mode sûr";
+$a->strings["Red Matrix Notification"] = "Notification Red Matrix";
+$a->strings["redmatrix"] = "redmatrix";
+$a->strings["Thank You,"] = "Merci,";
+$a->strings["%s Administrator"] = "l'administrateur de %s";
+$a->strings["%s <!item_type!>"] = "%s <!item_type!>";
+$a->strings["[Red:Notify] New mail received at %s"] = "[Red:Notification] Nouveau message reçu sur %s";
+$a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, vous avez reçu un message privé sur %3\$s, de la part de %2\$s.";
+$a->strings["%1\$s sent you %2\$s."] = "%1\$s vous a envoyé %2\$s.";
+$a->strings["a private message"] = "un message privé";
+$a->strings["Please visit %s to view and/or reply to your private messages."] = "Merci de visiter %s pour voir et/ou répondre à vos messages privés.";
+$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s a commenté [zrl=%3\$s]%4\$s[/zrl]";
+$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s a commenté [zrl=%3\$s]%5\$s de %4\$s[/zrl]";
+$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s a commenté [zrl=%3\$s]votre %4\$s[/zrl]";
+$a->strings["[Red:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Red:Notification] Commentaire de %2\$s sur conversation #%1\$d";
+$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s a commenté un élément de conversation que vous suivez.";
+$a->strings["Please visit %s to view and/or reply to the conversation."] = "Merci de visiter %s pour voir et/ou répondre sur cette conversation.";
+$a->strings["[Red:Notify] %s posted to your profile wall"] = "[Red:Notification] %s a publié sur votre profil";
+$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s a posté sur votre profil à %3\$s";
+$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s a posté sur [zrl=%3\$s]votre profil[/zrl]";
+$a->strings["[Red:Notify] %s tagged you"] = "[Red:Notification] %s vous a marqué";
+$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, vous avez été étiqueté sur %3\$s par %2\$s";
+$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]vous a tagué[/zrl].";
+$a->strings["[Red:Notify] %1\$s poked you"] = "[Red:Notification] %1\$s vous a tapoté";
+$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, vous avez été tapoté/pointé/sollicité par %2\$s sur %3\$s";
+$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]vous a tapoté[/zrl].";
+$a->strings["[Red:Notify] %s tagged your post"] = "[Red:Notification] %s a marqué votre publication";
+$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s a tagué votre publication sur %3\$s";
+$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s a tagué [zrl=%3\$s]votre publication[/zrl]";
+$a->strings["[Red:Notify] Introduction received"] = "[Red:Notification] Nouvelle introduction";
+$a->strings["%1\$s, you've received an introduction from '%2\$s' at %3\$s"] = "%1\$s, vous avez reçu une introduction de '%2\$s' sur %3\$s";
+$a->strings["%1\$s, you've received [zrl=%2\$s]an introduction[/zrl] from %3\$s."] = "%1\$s, vous avez reçu [zrl=%2\$s]une introduction[/zrl] de %3\$s.";
+$a->strings["You may visit their profile at %s"] = "Vous pouvez visiter leur profil sur %s";
+$a->strings["Please visit %s to approve or reject the introduction."] = "Merci de visiter %s avant d'approuver (ou non) son introduction.";
+$a->strings["[Red:Notify] Friend suggestion received"] = "[Red:Notification] Nouvelle suggestion d'amitié";
+$a->strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, vous avez reçu une suggestion de relation de '%2\$s' à %3\$s";
+$a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, avez reçu %3\$s comme [zrl=%2\$s]une suggestion de relation[/zrl] de %4\$s.";
+$a->strings["Name:"] = "Nom&nbsp;:";
+$a->strings["Photo:"] = "Photo&nbsp;:";
+$a->strings["Please visit %s to approve or reject the suggestion."] = "Merci de visiter %s pour donner suite (ou non) à cette suggestion.";
+$a->strings["Image exceeds website size limit of %lu bytes"] = "L'image dépasse la taille limite de %lu octets";
+$a->strings["Image file is empty."] = "L'image est vide.";
+$a->strings["Unable to process image"] = "Impossible de traiter l'image";
+$a->strings["Photo storage failed."] = "Le stockage de l'image a échoué.";
+$a->strings["Upload New Photos"] = "Ajouter des photos";
+$a->strings["Edit File properties"] = "Éditer les propriétés du fichier";
+$a->strings["%d invitation available"] = array(
+ 0 => "%d invitation disponible",
+ 1 => "%d invitations disponibles",
);
-$a->strings["View all contacts"] = "Voir tous les contacts";
-$a->strings["Unblock"] = "Débloquer";
-$a->strings["Block"] = "Bloquer";
-$a->strings["Unignore"] = "Ne plus ignorer";
-$a->strings["Ignore"] = "Ignorer";
-$a->strings["Repair"] = "Réparer";
-$a->strings["Contact Editor"] = "Éditeur de contact";
-$a->strings["Profile Visibility"] = "Visibilité du profil";
-$a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Merci de choisir le profil que vous souhaitez montrer à %s lorsqu'il vous rend visite de manière sécurisée.";
-$a->strings["Contact Information / Notes"] = "Informations de contact / Notes";
-$a->strings["Edit contact notes"] = "Editer les notes des contacts";
-$a->strings["Visit %s's profile [%s]"] = "Visiter le profil de %s [%s]";
-$a->strings["Block/Unblock contact"] = "Bloquer/débloquer ce contact";
-$a->strings["Ignore contact"] = "Ignorer ce contact";
-$a->strings["Repair URL settings"] = "Réparer les réglages d'URL";
-$a->strings["View conversations"] = "Voir les conversations";
-$a->strings["Delete contact"] = "Effacer ce contact";
-$a->strings["Last update:"] = "Dernière mise-à-jour :";
-$a->strings["Update public posts"] = "Met ses entrées publiques à jour: ";
-$a->strings["Update now"] = "Mettre à jour";
-$a->strings["Currently blocked"] = "Actuellement bloqué";
-$a->strings["Currently ignored"] = "Actuellement ignoré";
-$a->strings["Contacts"] = "Contacts";
-$a->strings["Show Blocked Connections"] = "Montrer les connexions bloquées";
-$a->strings["Hide Blocked Connections"] = "Cacher les connexion bloquées";
-$a->strings["Search your contacts"] = "Rechercher dans vos contacts";
-$a->strings["Finding: "] = "Trouvé: ";
+$a->strings["Find Channels"] = "Trouver des canaux";
+$a->strings["Enter name or interest"] = "Saisir nom ou centre d'intérêt";
+$a->strings["Connect/Follow"] = "Relier/Suivre";
+$a->strings["Examples: Robert Morgenstein, Fishing"] = "Exemples: Robert Morgenstein, Course à pieds";
$a->strings["Find"] = "Trouver";
-$a->strings["Mutual Friendship"] = "Relation réciproque";
-$a->strings["is a fan of yours"] = "est un fan de vous";
-$a->strings["you are a fan of"] = "vous êtes un fan de";
-$a->strings["Edit contact"] = "Éditer le contact";
-$a->strings["Remote privacy information not available."] = "Informations de confidentialité indisponibles.";
-$a->strings["Visible to:"] = "Visible par:";
-$a->strings["An invitation is required."] = "Une invitation est requise.";
-$a->strings["Invitation could not be verified."] = "L'invitation fournie n'a pu être validée.";
-$a->strings["Invalid OpenID url"] = "Adresse OpenID invalide";
-$a->strings["Please enter the required information."] = "Entrez les informations requises.";
-$a->strings["Please use a shorter name."] = "Utilisez un nom plus court.";
-$a->strings["Name too short."] = "Nom trop court.";
-$a->strings["That doesn't appear to be your full (First Last) name."] = "Ceci ne semble pas être votre nom complet (Prénom Nom).";
-$a->strings["Your email domain is not among those allowed on this site."] = "Votre domaine de courriel n'est pas autorisé sur ce site.";
-$a->strings["Not a valid email address."] = "Ceci n'est pas une adresse courriel valide.";
-$a->strings["Cannot use that email."] = "Impossible d'utiliser ce courriel.";
-$a->strings["Your \"nickname\" can only contain \"a-z\", \"0-9\", \"-\", and \"_\", and must also begin with a letter."] = "Votre \"pseudo\" peut seulement contenir les caractères \"a-z\", \"0-9\", \"-\", and \"_\", et doit commencer par une lettre.";
-$a->strings["Nickname is already registered. Please choose another."] = "Pseudo déjà utilisé. Merci d'en choisir un autre.";
-$a->strings["SERIOUS ERROR: Generation of security keys failed."] = "ERREUR SÉRIEUSE: La génération des clés de sécurité a échoué.";
-$a->strings["An error occurred during registration. Please try again."] = "Une erreur est survenue lors de l'inscription. Merci de recommencer.";
-$a->strings["An error occurred creating your default profile. Please try again."] = "Une erreur est survenue lors de la création de votre profil par défaut. Merci de recommencer.";
-$a->strings["Registration successful. Please check your email for further instructions."] = "Inscription réussie. Vérifiez vos emails pour la suite des instructions.";
-$a->strings["Failed to send email message. Here is the message that failed."] = "Impossible d'envoyer un email. Voici le message qui a échoué.";
-$a->strings["Your registration can not be processed."] = "Votre inscription ne peut être traitée.";
-$a->strings["Registration request at %s"] = "Demande d'inscription à %s";
-$a->strings["Your registration is pending approval by the site owner."] = "Votre inscription attend une validation du propriétaire du site.";
-$a->strings["You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking 'Register'."] = "Vous pouvez (si vous le souhaitez) remplir ce formulaire via OpenID. Fournissez votre OpenID et cliquez \"S'inscrire\".";
-$a->strings["If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."] = "Si vous n'êtes pas familier avec OpenID, laissez ce champ vide et remplissez le reste.";
-$a->strings["Your OpenID (optional): "] = "Votre OpenID (facultatif): ";
-$a->strings["Include your profile in member directory?"] = "Inclure votre profil dans l'annuaire des membres?";
-$a->strings["Membership on this site is by invitation only."] = "L'inscription à ce site se fait uniquement sur invitation.";
-$a->strings["Your invitation ID: "] = "Votre ID d'invitation: ";
-$a->strings["Registration"] = "Inscription";
-$a->strings["Your Full Name (e.g. Joe Smith): "] = "Votre nom complet (p.ex. Michel Dupont): ";
-$a->strings["Your Email Address: "] = "Votre adresse courriel: ";
-$a->strings["Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be '<strong>nickname@\$sitename</strong>'."] = "Choisissez un pseudo. Celui devra commencer par une lettre. L'adresse de votre profil en découlera sous la forme '&lt;strong&gt;pseudo@\$sitename&lt;/strong&gt;'.";
-$a->strings["Choose a nickname: "] = "Choisir un pseudo: ";
-$a->strings["Post successful."] = "Publication réussie.";
-$a->strings["Friends of %s"] = "Amis de %s";
-$a->strings["No friends to display."] = "Pas d'amis à afficher.";
-$a->strings["Help:"] = "Aide:";
-$a->strings["Help"] = "Aide";
-$a->strings["Could not create/connect to database."] = "Impossible de créer/atteindre la base de données.";
-$a->strings["Connected to database."] = "Connecté à la base de données.";
-$a->strings["Proceed with Installation"] = "Commencer l'installation";
-$a->strings["Your Friendika site database has been installed."] = "La base de données de votre site Friendika a été installée.";
-$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANT: Vous devez configurer [manuellement] une tâche programmée pour le 'poller'.";
-$a->strings["Please see the file \"INSTALL.txt\"."] = "Référez-vous au fichier \"INSTALL.txt\".";
-$a->strings["Proceed to registration"] = "Commencer l'inscription";
-$a->strings["Database import failed."] = "Import de base échoué.";
-$a->strings["You may need to import the file \"database.sql\" manually using phpmyadmin or mysql."] = "Vous pourriez avoir besoin d'importer le fichier \"database.sql\" manuellement au moyen de phpmyadmin ou de la commande mysql.";
-$a->strings["Welcome to Friendika."] = "Bienvenue sur Friendika.";
-$a->strings["Friendika Social Network"] = "Réseau social Friendika";
-$a->strings["Installation"] = "Installation";
-$a->strings["In order to install Friendika we need to know how to connect to your database."] = "Pour installer Friendika, nous avons besoin de contacter votre base de données.";
-$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Merci de vous tourner vers votre hébergeur et/ou administrateur pour toute question concernant ces réglages.";
-$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "La base de données que vous spécifierez doit exister. Si ce n'est pas encore le cas, merci de la créer avant de continuer.";
-$a->strings["Database Server Name"] = "Serveur de base de données";
-$a->strings["Database Login Name"] = "Nom d'utilisateur de la base";
-$a->strings["Database Login Password"] = "Mot de passe de la base";
-$a->strings["Database Name"] = "Nom de la base";
-$a->strings["Please select a default timezone for your website"] = "Sélectionner un fuseau horaire par défaut pour votre site";
-$a->strings["Site administrator email address. Your account email address must match this in order to use the web admin panel."] = "Adresse courriel de l'administrateur du site. L'adresse courriel de votre compte doit correspondre si vous voulez utiliser l'administration web.";
-$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Impossible de trouver la version \"ligne de commande\" de PHP dans le PATH du serveur web.";
-$a->strings["This is required. Please adjust the configuration file .htconfig.php accordingly."] = "Ceci est requis. Merci d'ajuster la configuration dans le fichier .htconfig.php en conséquence.";
-$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "La version \"ligne de commande\" de PHP de votre système n'a pas \"register_argc_argv\" d'activé.";
-$a->strings["This is required for message delivery to work."] = "Ceci est requis pour que la livraison des messages fonctionne.";
-$a->strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Erreur: la fonction \"openssl_pkey_new\" de ce système ne permet pas de générer des clés de chiffrement";
-$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Si vous utilisez Windows, merci de vous réferer à \"http://www.php.net/manual/en/openssl.installation.php\".";
-$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Erreur: Le module \"rewrite\" du serveur web Apache est requis mais pas installé.";
-$a->strings["Error: libCURL PHP module required but not installed."] = "Erreur: Le module PHP \"libCURL\" est requis mais pas installé.";
-$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Erreur: Le module PHP \"GD\" disposant du support JPEG est requis mais pas installé.";
-$a->strings["Error: openssl PHP module required but not installed."] = "Erreur: Le module PHP \"openssl\" est requis mais pas installé.";
-$a->strings["Error: mysqli PHP module required but not installed."] = "Erreur: Le module PHP \"mysqli\" est requis mais pas installé.";
-$a->strings["Error: mb_string PHP module required but not installed."] = "Erreur: le module PHP mb_string est requis mais pas installé.";
-$a->strings["The web installer needs to be able to create a file called \".htconfig.php\ in the top folder of your web server and it is unable to do so."] = "L'installeur web doit être en mesure de créer un fichier \".htconfig.php\" à la racine de votre serveur web, mais il en est incapable.";
-$a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "Le plus souvent, il s'agit d'un problème de permission. Le serveur web peut ne pas être capable d'écrire dans votre répertoire - alors que vous-même le pouvez.";
-$a->strings["Please check with your site documentation or support people to see if this situation can be corrected."] = "Merci de vérifier - avec la documentation ou le support de votre hébergement - que la situation peut être corrigée.";
-$a->strings["If not, you may be required to perform a manual installation. Please see the file \"INSTALL.txt\" for instructions."] = "Dans le cas contraire, vous pouvez pratiquer une installation manuelle. Référez-vous au fichier \"INSTALL.txt\" pour les instructions.";
-$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "Le fichier de configuration de la base (\".htconfig.php\") ne peut être créé. Merci d'utiliser le texte ci-joint pour créer ce fichier à la racine de votre hébergement.";
-$a->strings["Errors encountered creating database tables."] = "Des erreurs ont été signalées lors de la création des tables.";
-$a->strings["Commented Order"] = "Dans l'ordre des commentaires";
-$a->strings["Posted Order"] = "Dans l'ordre des notices";
-$a->strings["New"] = "Nouveau";
-$a->strings["Starred"] = "Mis en avant";
-$a->strings["Bookmarks"] = "Marqué";
-$a->strings["Warning: This group contains %s member from an insecure network."] = array(
- 0 => "Attention: Ce groupe contient %s membre d'un réseau non-sûr.",
- 1 => "Attention: Ce groupe contient %s membres d'un réseau non-sûr.",
+$a->strings["Channel Suggestions"] = "Canaux suggérés";
+$a->strings["Random Profile"] = "Un profil au hasard";
+$a->strings["Invite Friends"] = "Inviter des amis";
+$a->strings["%d connection in common"] = array(
+ 0 => "%d relation en commun",
+ 1 => "%d relations en commun",
);
-$a->strings["Private messages to this group are at risk of public disclosure."] = "Les messages privés envoyés à ce groupe s'exposent à une diffusion incontrôlée.";
-$a->strings["No such group"] = "Groupe inexistant";
-$a->strings["Group is empty"] = "Groupe vide";
-$a->strings["Group: "] = "Groupe: ";
-$a->strings["Contact: "] = "Contact: ";
-$a->strings["Private messages to this person are at risk of public disclosure."] = "Les messages privés envoyés à ce contact s'exposent à une diffusion incontrôlée.";
-$a->strings["Invalid contact."] = "Contact invalide.";
-$a->strings["Invalid profile identifier."] = "Identifiant de profil invalide.";
-$a->strings["Profile Visibility Editor"] = "Éditer la visibilité du profil";
-$a->strings["Click on a contact to add or remove."] = "Cliquez sur un contact pour l'ajouter ou le supprimer.";
-$a->strings["Visible To"] = "Visible par";
-$a->strings["All Contacts (with secure profile access)"] = "Tous les contacts (ayant un accès sécurisé)";
-$a->strings["Event description and start time are required."] = "Une description et une heure de début sont requises.";
-$a->strings["Create New Event"] = "Créer un nouvel événement";
+$a->strings["New Page"] = "Nouvelle page";
+$a->strings["Click here to upgrade."] = "Cliquez ici pour mettre à jour.";
+$a->strings["This action exceeds the limits set by your subscription plan."] = "Cette action outrepasserait les limites prévues par votre forfait.";
+$a->strings["This action is not available under your subscription plan."] = "Cette action n'est pas possible avec la formule choisie.";
+$a->strings["Channel is blocked on this site."] = "Ce canal est bloqué sur ce site.";
+$a->strings["Channel location missing."] = "Localisation du canal manquante.";
+$a->strings["Channel discovery failed. Website may be down or misconfigured."] = "Découverte du canal impossible. Le site est peut-être en dérangement ou mal configuré.";
+$a->strings["Response from remote channel was not understood."] = "La réponse du canal distant n'a pas été comprise.";
+$a->strings["Response from remote channel was incomplete."] = "La réponse du canal distant était incomplète.";
+$a->strings["local account not found."] = "compte local introuvable.";
+$a->strings["Cannot connect to yourself."] = "Ne peut pas se connecter à vous.";
+$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "Le formulaire n'est plus sécurisé, probablement parce qu'il est ouvert depuis trop longtemps (plus de 3 heures).";
+$a->strings["Default"] = "Défaut";
+$a->strings["Embedded content"] = "Contenu imbriqué";
+$a->strings["Embedding disabled"] = "Imbrication désactivée";
+$a->strings["Can view my \"public\" stream and posts"] = "Peut voir mon flux et mes publications \"publiques\"";
+$a->strings["Can view my \"public\" channel profile"] = "Peut voir mon le canal \"public\" de mon profil";
+$a->strings["Can view my \"public\" photo albums"] = "Peut voir mes albums photos \"publics\"";
+$a->strings["Can view my \"public\" address book"] = "Peut voir mes contacts \"publics\"";
+$a->strings["Can view my \"public\" file storage"] = "Peut voir mes fichiers \"publics\"";
+$a->strings["Can view my \"public\" pages"] = "Peut voir mes pages \"publiques\"";
+$a->strings["Can send me their channel stream and posts"] = "Peut m'envoyer le flux et les publications de leur canal";
+$a->strings["Can post on my channel page (\"wall\")"] = "Peut poster sur la page de mon canal (\"mur\")";
+$a->strings["Can comment on my posts"] = "Peut commenter mes publications";
+$a->strings["Can send me private mail messages"] = "Peut m'envoyer des messages privés";
+$a->strings["Can post photos to my photo albums"] = "Peut ajouter des photos à mes albums";
+$a->strings["Can forward to all my channel contacts via post @mentions"] = "Peut faire suivre à tous les contacts du mon canal via @truc";
+$a->strings["Advanced - useful for creating group forum channels"] = "Avancé - utile seulement pour les canaux de type \"forum/groupe\"";
+$a->strings["Can chat with me (when available)"] = "Peut discuter avec moi (sous réserve de disponibilité)";
+$a->strings["Can write to my \"public\" file storage"] = "Peut écrire dans mon stockage \"public\" de fichiers";
+$a->strings["Can edit my \"public\" pages"] = "Peut éditer mes pages \"publiques\"";
+$a->strings["Can source my \"public\" posts in derived channels"] = "Peut utiliser mes contributions \"publiques\" comme source de canaux dérivés";
+$a->strings["Somewhat advanced - very useful in open communities"] = "Plutôt avancé - très utile dans les communautés ouvertes";
+$a->strings["Can send me bookmarks"] = "Peut m'envoyer des marque-pages";
+$a->strings["Can administer my channel resources"] = "Peut administrer les ressources de mon canal";
+$a->strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Très avancé. Ne pas toucher, sauf si vous savez VRAIMENT ce que vous faites";
+$a->strings["Permission denied"] = "Accès refusé";
+$a->strings["Item not found."] = "Élément introuvable.";
+$a->strings["Collection not found."] = "Collection introuvable.";
+$a->strings["Collection is empty."] = "Collection vide.";
+$a->strings["Collection: %s"] = "Collection&nbsp;: %s";
+$a->strings["Connection: %s"] = "Relation&nbsp;: %s";
+$a->strings["Connection not found."] = "Relation introuvable.";
+$a->strings["Invalid data packet"] = "Paquet de données invalide";
+$a->strings["Unable to verify channel signature"] = "Impossible de vérifier la signature du canal";
+$a->strings["Unable to verify site signature for %s"] = "Impossible de vérifier la signature de site pour %s";
+$a->strings["No channel."] = "Pas de canal.";
+$a->strings["Common connections"] = "Relations communes";
+$a->strings["No connections in common."] = "Pas de relations en commun.";
+$a->strings["Event title and start time are required."] = "Un titre et une date de début sont requises pour l'événement.";
+$a->strings["l, F j"] = "l j F";
+$a->strings["Edit event"] = "Éditer événement";
+$a->strings["Create New Event"] = "Créer événement";
$a->strings["Previous"] = "Précédent";
$a->strings["Next"] = "Suivant";
-$a->strings["l, F j"] = "l, F j";
-$a->strings["Edit event"] = "Editer l'événement";
-$a->strings["link to source"] = "lien original";
-$a->strings["hour:minute"] = "heures:minutes";
+$a->strings["hour:minute"] = "heure:minute";
$a->strings["Event details"] = "Détails de l'événement";
-$a->strings["Format is %s %s. Starting date and Description are required."] = "Le format est %s %s. Une date de début et une description sont requises.";
-$a->strings["Event Starts:"] = "Début de l'événement:";
+$a->strings["Format is %s %s. Starting date and Title are required."] = "Le format est %s %s. Date de début et titre obligatoires.";
+$a->strings["Event Starts:"] = "L'événement débute&nbsp;:";
+$a->strings["Required"] = "Requis";
$a->strings["Finish date/time is not known or not relevant"] = "Date/heure de fin inconnue ou sans objet";
-$a->strings["Event Finishes:"] = "Fin de l'événement:";
-$a->strings["Adjust for viewer timezone"] = "Ajuster à la zone horaire du visiteur";
+$a->strings["Event Finishes:"] = "L'événement termine&nbsp;:";
+$a->strings["Adjust for viewer timezone"] = "Ajuster au fuseau horaire du visiteur";
$a->strings["Description:"] = "Description:";
+$a->strings["Title:"] = "Titre:";
$a->strings["Share this event"] = "Partager cet événement";
-$a->strings["Invalid request identifier."] = "Identifiant de demande invalide.";
-$a->strings["Discard"] = "Défausser";
-$a->strings["Network"] = "Réseau";
-$a->strings["Home"] = "Accueil";
-$a->strings["Introductions"] = "Introductions";
-$a->strings["Messages"] = "Messages";
-$a->strings["Show Ignored Requests"] = "Voir les demandes ignorées";
-$a->strings["Hide Ignored Requests"] = "Cacher les demandes ignorées";
-$a->strings["Notification type: "] = "Type de notification: ";
-$a->strings["Friend Suggestion"] = "Suggestion d'amitié/contact";
-$a->strings["suggested by %s"] = "suggéré(e) par %s";
-$a->strings["Approve"] = "Approuver";
-$a->strings["Claims to be known to you: "] = "Prétend que vous le connaissez: ";
-$a->strings["yes"] = "oui";
-$a->strings["no"] = "non";
-$a->strings["Approve as: "] = "Approuver en tant que: ";
-$a->strings["Friend"] = "Ami";
-$a->strings["Sharer"] = "Initiateur du partage";
-$a->strings["Fan/Admirer"] = "Fan/Admirateur";
-$a->strings["Friend/Connect Request"] = "Demande de connexion/relation";
-$a->strings["New Follower"] = "Nouvel abonné";
-$a->strings["No notifications."] = "Pas de notification.";
-$a->strings["Notifications"] = "Notifications";
-$a->strings["%s liked %s's post"] = "%s a aimé la notice de %s";
-$a->strings["%s disliked %s's post"] = "%s n'a pas aimé la notice de %s";
-$a->strings["%s is now friends with %s"] = "%s est désormais ami(e) avec %s";
-$a->strings["%s created a new post"] = "%s a publié une notice";
-$a->strings["%s commented on %s's post"] = "%s a commenté une notice de %s";
-$a->strings["Nothing new!"] = "Rien de neuf!";
-$a->strings["Contact settings applied."] = "Réglages du contact appliqués.";
-$a->strings["Contact update failed."] = "Impossible d'appliquer les réglages.";
-$a->strings["Contact not found."] = "Contact introuvable.";
-$a->strings["Repair Contact Settings"] = "Réglages du réparateur de contacts";
-$a->strings["<strong>WARNING: This is highly advanced</strong> and if you enter incorrect information your communications with this contact may stop working."] = "<strong>ATTENTION: Manipulation réservée aux experts</strong>, toute information incorrecte pourrait empêcher la communication avec ce contact.";
-$a->strings["Please use your browser 'Back' button <strong>now</strong> if you are uncertain what to do on this page."] = "une photo";
-$a->strings["Account Nickname"] = "Pseudo du compte";
-$a->strings["@Tagname - overrides Name/Nickname"] = "@NomDuTag - prend le pas sur Nom/Pseudo";
-$a->strings["Account URL"] = "URL du compte";
-$a->strings["Friend Request URL"] = "Echec du téléversement de l'image.";
-$a->strings["Friend Confirm URL"] = "Accès public refusé.";
-$a->strings["Notification Endpoint URL"] = "Aucune photo sélectionnée";
-$a->strings["Poll/Feed URL"] = "Téléverser des photos";
-$a->strings["New photo from this URL"] = "Nouvelle photo depuis cette URL";
-$a->strings["This introduction has already been accepted."] = "Cette introduction a déjà été acceptée.";
-$a->strings["Profile location is not valid or does not contain profile information."] = "L'emplacement du profil est invalide ou ne contient pas de profil valide.";
-$a->strings["Warning: profile location has no identifiable owner name."] = "Attention: l'emplacement du profil n'a pas de nom identifiable.";
-$a->strings["Warning: profile location has no profile photo."] = "Attention: l'emplacement du profil n'a pas de photo de profil.";
-$a->strings["%d required parameter was not found at the given location"] = array(
- 0 => "%d paramètre requis n'a pas été trouvé à l'endroit indiqué",
- 1 => "%d paramètres requis n'ont pas été trouvés à l'endroit indiqué",
+$a->strings["Thing updated"] = "Chose mise-à-jour";
+$a->strings["Object store: failed"] = "Stockage de l'objet&nbsp;: échec";
+$a->strings["Thing added"] = "Chose ajoutée";
+$a->strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s";
+$a->strings["Show Thing"] = "Montrer chose";
+$a->strings["item not found."] = "élément introuvable.";
+$a->strings["Edit Thing"] = "Éditer chose";
+$a->strings["Select a profile"] = "Choisissez un profil";
+$a->strings["Select a category of stuff. e.g. I ______ something"] = "Choisissez une catégorie de choses. p.ex. Je ______ quelque-chose";
+$a->strings["Post an activity"] = "Publier une activité";
+$a->strings["Only sends to viewers of the applicable profile"] = "";
+$a->strings["Name of thing e.g. something"] = "Nom de la chose, p.ex. quelque-chose";
+$a->strings["URL of thing (optional)"] = "URL de la chose (optionnel)";
+$a->strings["URL for photo of thing (optional)"] = "URL de l'image de la chose (optionnel)";
+$a->strings["Add Thing to your Profile"] = "Ajouter la chose à votre profil";
+$a->strings["Total invitation limit exceeded."] = "Limite du nombre total d'invitation dépassée.";
+$a->strings["%s : Not a valid email address."] = "%s&nbsp: adresse courriel invalide.";
+$a->strings["Please join us on Red"] = "Rejoignez-nous sur Red";
+$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Limite d'invitations dépassée. Merci de contacter l'administration de votre site.";
+$a->strings["%s : Message delivery failed."] = "%s&nbsp;: Échec dans la livraison du message.";
+$a->strings["%d message sent."] = array(
+ 0 => "%d message envoyé.",
+ 1 => "%d messages envoyés.",
);
-$a->strings["Introduction complete."] = "Phase de présentation achevée.";
-$a->strings["Unrecoverable protocol error."] = "Erreur de protocole non-récupérable.";
-$a->strings["Profile unavailable."] = "Profil indisponible.";
-$a->strings["%s has received too many connection requests today."] = "%s a reçu trop de demande d'introduction aujourd'hui.";
-$a->strings["Spam protection measures have been invoked."] = "Des mesures de protection contre le spam ont été déclenchées.";
-$a->strings["Friends are advised to please try again in 24 hours."] = "Les relations sont encouragées à attendre 24 heures pour recommencer.";
-$a->strings["Invalid locator"] = "Localisateur invalide";
-$a->strings["Unable to resolve your name at the provided location."] = "Impossible de résoudre votre nom à l'emplacement fourni.";
-$a->strings["You have already introduced yourself here."] = "Vous vous êtes déjà présenté ici.";
-$a->strings["Apparently you are already friends with %s."] = "Il semblerait que vous soyez déjà ami avec %s.";
-$a->strings["Invalid profile URL."] = "URL de profil invalide.";
-$a->strings["Your introduction has been sent."] = "Votre présentation a été envoyée.";
-$a->strings["Please login to confirm introduction."] = "Connectez-vous pour confirmer l'introduction.";
-$a->strings["Incorrect identity currently logged in. Please login to <strong>this</strong> profile."] = "Identité incorrecte actuellement connectée. Merci de vous connecter à <strong>ce</strong> profil.";
-$a->strings["Welcome home %s."] = "Bienvenue chez vous, %s.";
-$a->strings["Please confirm your introduction/connection request to %s."] = "Merci de confirmer votre demande d'introduction auprès de %s.";
-$a->strings["Confirm"] = "Confirmer";
-$a->strings["[Name Withheld]"] = "[Nom non-publié]";
-$a->strings["Introduction received at "] = "Introduction reçue sur ";
-$a->strings["Diaspora members: Please do not use this form. Instead, enter \"%s\" into your Diaspora search bar."] = "Membres de Diaspora : N'utilisez pas ce formulaire. Entrez plutôt \"%s\" dans votre barre de recherche Diaspora.";
-$a->strings["Please enter your 'Identity Address' from one of the following supported social networks:"] = "Saisissez votre \"Adresse d'identité\" de l'un des réseaux sociaux suivants:";
-$a->strings["Friend/Connection Request"] = "Requête de relation/amitié";
-$a->strings["Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"] = "Exemples : jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca";
-$a->strings["Please answer the following:"] = "Merci de répondre à ce qui suit:";
-$a->strings["Does %s know you?"] = "Est-ce que %s vous connaît?";
-$a->strings["Add a personal note:"] = "Ajouter une note personnelle:";
-$a->strings["Friendica"] = "Friendica";
-$a->strings["StatusNet/Federated Social Web"] = "StatusNet/Federated Social Web";
-$a->strings["- please share from your own site as noted above"] = "- partagez depuis votre propre site comme indiqué ci-dessus";
-$a->strings["Your Identity Address:"] = "Votre adresse d'identité:";
-$a->strings["Submit Request"] = "Envoyer la requête";
+$a->strings["You have no more invitations available"] = "Vous ne disposez plus d'aucune invitation";
+$a->strings["Send invitations"] = "Envoyer des invitations";
+$a->strings["Enter email addresses, one per line:"] = "Entrez les adresses de courriel, une par ligne&nbsp;:";
+$a->strings["Your message:"] = "Votre message&nbsp;:";
+$a->strings["You are cordially invited to join me and some other close friends on the Red Matrix - a revolutionary new decentralised communication and information tool."] = "Vous êtes cordialement invité à me rejoindre, ainsi que d'autres amis proches, sur la Matrice Red - un nouvel outil de communication acentré/décentralisé et révolutionnaire.";
+$a->strings["You will need to supply this invitation code: \$invite_code"] = "Vous devrez fournir ce code d'invitation&nbsp;: \$invite_code";
+$a->strings["Please visit my channel at"] = "Merci de me rendre visite sur";
+$a->strings["Once you have registered (on ANY Red Matrix site - they are all inter-connected), please connect with my Red Matrix channel address:"] = "Une fois inscrit (sur N'IMPORTE QUEL site Red Matrix - ils sont tous inter-connectés), merci de vous relier à l'adresse de mon canal&nbsp;:";
+$a->strings["Click the [Register] link on the following page to join."] = "Cliquez le lien [Inscription] sur la page suivante pour nous rejoindre.";
+$a->strings["For more information about the Red Matrix Project and why it has the potential to change the internet as we know it, please visit http://getzot.com"] = "Pour plus d'information sur le projet Red Matrix, et sa capacité à remodeler Internet, merci de visiter http://getzot.com";
+$a->strings["Unable to locate original post."] = "Impossible de localiser la publication initiale.";
+$a->strings["Empty post discarded."] = "Publication vide défaussée.";
+$a->strings["Executable content type not permitted to this channel."] = "Les contenus de type 'exécutable' ne sont pas autorisés sur ce canal.";
+$a->strings["System error. Post not saved."] = "Erreur système. Publication non sauvegardée.";
+$a->strings["Wall Photos"] = "Photos du mur";
+$a->strings["You have reached your limit of %1$.0f top level posts."] = "Vous avez atteint votre limite de %1$.0f contributions \"racine\".";
+$a->strings["You have reached your limit of %1$.0f webpages."] = "Vous avez atteint votre limite de %1$.0f pages web.";
+$a->strings["Menu updated."] = "Menu mis à jour.";
+$a->strings["Unable to update menu."] = "Impossible de mettre le menu à jour.";
+$a->strings["Menu created."] = "Menu créé.";
+$a->strings["Unable to create menu."] = "Impossible de créer le menu.";
+$a->strings["Manage Menus"] = "Gérer les menus";
+$a->strings["Drop"] = "Supprimer";
+$a->strings["Create a new menu"] = "Créer un nouveau menu";
+$a->strings["Delete this menu"] = "Supprimer ce menu";
+$a->strings["Edit menu contents"] = "Éditer le contenu du menu";
+$a->strings["Edit this menu"] = "Éditer le menu";
+$a->strings["New Menu"] = "Nouveau menu";
+$a->strings["Menu name"] = "Nom du menu";
+$a->strings["Must be unique, only seen by you"] = "Doit être unique, ne sera vu que par vous";
+$a->strings["Menu title"] = "Titre du menu";
+$a->strings["Menu title as seen by others"] = "Titre du menu tel que vu par les visiteurs";
+$a->strings["Allow bookmarks"] = "Autoriser les marque-pages";
+$a->strings["Menu may be used to store saved bookmarks"] = "Le menu pourra être utilisé pour stocker des marque-pages";
+$a->strings["Create"] = "Créer";
+$a->strings["Menu not found."] = "Menu introuvable.";
+$a->strings["Menu deleted."] = "Menu supprimé.";
+$a->strings["Menu could not be deleted."] = "Impossible de supprimer le menu.";
+$a->strings["Edit Menu"] = "Éditer le menu";
+$a->strings["Add or remove entries to this menu"] = "Ajouter/supprimer des entrées à ce menu";
+$a->strings["Modify"] = "Modifier";
+$a->strings["Not found."] = "Introuvable.";
+$a->strings["View"] = "Vue";
$a->strings["Authorize application connection"] = "Autoriser l'application à se connecter";
-$a->strings["Return to your app and insert this Securty Code:"] = "Retournez à votre application et saisissez ce Code de Sécurité : ";
+$a->strings["Return to your app and insert this Securty Code:"] = "Merci de retourner vers votre application, et d'y insérer ce Code de Sécurité&nbsp;:";
$a->strings["Please login to continue."] = "Merci de vous connecter pour continuer.";
-$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Voulez-vous autoriser cette application à accéder à vos notices et contacts, et/ou à créer des notices à votre place?";
-$a->strings["status"] = "le statut";
-$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s a taggué %3\$s de %2\$s avec %4\$s";
-$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s aime %3\$s de %2\$s";
-$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s n'aime pas %3\$s de %2\$s";
-$a->strings["No valid account found."] = "Impossible de trouver un compte valide.";
-$a->strings["Password reset request issued. Check your email."] = "Réinitialisation du mot de passe en cours. Vérifiez votre courriel.";
-$a->strings["Password reset requested at %s"] = "Requête de réinitialisation de mot de passe à %s";
-$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Impossible d'honorer cette demande. (Vous l'avez peut-être déjà utilisée par le passé.) La réinitialisation a échoué.";
-$a->strings["Your password has been reset as requested."] = "Votre mot de passe a bien été réinitialisé.";
-$a->strings["Your new password is"] = "Votre nouveau mot de passe est ";
-$a->strings["Save or copy your new password - and then"] = "Sauvez ou copiez ce nouveau mot de passe - puis";
-$a->strings["click here to login"] = "cliquez ici pour vous connecter";
-$a->strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Votre mot de passe peut être changé depuis la page &lt;em&gt;Réglages&lt;/em&gt;, une fois que vous serez connecté.";
-$a->strings["Forgot your Password?"] = "Mot de passe oublié?";
-$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Entrez votre adresse de courriel et validez pour réinitialiser votre mot de passe. Vous recevrez la suite des instructions par courriel.";
-$a->strings["Nickname or Email: "] = "Pseudo ou Courriel: ";
-$a->strings["Reset"] = "Réinitialiser";
-$a->strings["This is Friendica, version"] = "Motorisé par Friendica version";
-$a->strings["running at web location"] = "hébergé sur";
-$a->strings["Please visit <a href=\"http://project.friendika.com\">Project.Friendika.com</a> to learn more about the Friendica project."] = "Pour en savoir plus, vous pouvez nous rendre visite sur &lt;a href=\"http://project.friendica.com\"&gt;Project.Friendica.com&lt;/a&gt;";
-$a->strings["Bug reports and issues: please visit"] = "Pour les rapports de bugs: rendez vous sur";
-$a->strings["Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - dot com"] = "Suggestions, remerciements, donations, etc. - écrivez à \"Info\" arob. Friendica - point com";
-$a->strings["Installed plugins/addons/apps"] = "Extensions/greffons/applications installées";
-$a->strings["No installed plugins/addons/apps"] = "Aucune extension/greffon/application installée";
-$a->strings["Remove My Account"] = "Supprimer mon compte";
-$a->strings["This will completely remove your account. Once this has been done it is not recoverable."] = "Ceci supprimera totalement votre compte. Cette opération est irréversible.";
-$a->strings["Please enter your password for verification:"] = "Merci de saisir votre mot de passe pour vérification:";
+$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Voulez-vous autoriser cette application à accéder à vos publications et contacts, et/ou à publier en votre nom?";
+$a->strings["Yes"] = "Oui";
+$a->strings["No"] = "Non";
+$a->strings["No installed applications."] = "Aucune application installée.";
$a->strings["Applications"] = "Applications";
-$a->strings["No installed applications."] = "Pas d'application installée.";
-$a->strings["Save"] = "Sauver";
-$a->strings["Friend suggestion sent."] = "Suggestion d'amitié/contact envoyée.";
-$a->strings["Suggest Friends"] = "Suggérer des amis/contacts";
-$a->strings["Suggest a friend for %s"] = "Suggérer un ami/contact pour %s";
-$a->strings["Access denied."] = "Accès refusé.";
-$a->strings["Global Directory"] = "Annuaire global";
-$a->strings["Normal site view"] = "Vue normale";
-$a->strings["Admin - View all site entries"] = "Admin - voir toutes les entrées";
-$a->strings["Find on this site"] = "Trouver sur ce site";
-$a->strings["Site Directory"] = "Annuaire local";
-$a->strings["Gender: "] = "Genre: ";
-$a->strings["No entries (some entries may be hidden)."] = "Aucune entrée (certaines peuvent être cachées).";
+$a->strings["Edit post"] = "Éditer la contribution";
+$a->strings["Red Matrix - Guests: Username: {your email address}, Password: +++"] = "Red Matrix - Pour les invités: Username={votre courriel}, MDP=+++";
+$a->strings["Bookmark added"] = "Marque-page ajouté";
+$a->strings["My Bookmarks"] = "Mes marque-pages";
+$a->strings["My Connections Bookmarks"] = "Marque-pages de mes relations";
+$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s suit %3\$s de %2\$s";
+$a->strings["[Embedded content - reload page to view]"] = "[Contenu embarqué - rechargez la page pour le voir]";
+$a->strings["Channel not found."] = "Canal introuvable.";
+$a->strings["toggle full screen mode"] = "(dés)activer le mode plein-écran";
+$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s a étiqueté le %3\$s de %2\$s par %4\$s";
+$a->strings["You must be logged in to see this page."] = "Vous devez vous connecter pour voir cette page.";
+$a->strings["Leave Room"] = "Quitter le salon";
+$a->strings["I am away right now"] = "Je suis momentanément absent";
+$a->strings["I am online"] = "Je suis en ligne";
+$a->strings["New Chatroom"] = "Nouveau salon";
+$a->strings["Chatroom Name"] = "Nom du salon";
+$a->strings["%1\$s's Chatrooms"] = "Salons de %1\$s";
+$a->strings["Public access denied."] = "Accès public refusé.";
+$a->strings["No connections."] = "Pas de relations.";
+$a->strings["Visit %s's profile [%s]"] = "Visiter le profil de %s [%s]";
+$a->strings["View Connnections"] = "Voir les relations";
+$a->strings["Tag removed"] = "Étiquette retirée";
+$a->strings["Remove Item Tag"] = "Retirer une étiquette à l'élément";
+$a->strings["Select a tag to remove: "] = "Étiquette à retirer&nbsp;:";
+$a->strings["Remove"] = "Retirer";
+$a->strings["Continue"] = "Continuer";
+$a->strings["Premium Channel Setup"] = "Configuration du canal Premium";
+$a->strings["Enable premium channel connection restrictions"] = "Activer les restrictions liées au canal premium";
+$a->strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Merci de saisir les restrictions et/ou conditions - reçu Paypal, transaction Bitcoin, ligne de conduite, ...";
+$a->strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Avant d'autoriser la mise en relation, ce canal attire votre attention sur les conditions suivantes&nbsp;:";
+$a->strings["Potential connections will then see the following text before proceeding:"] = "Les relations potentielles verront ce qui suit avant de pouvoir continuer&nbsp;:";
+$a->strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "En continuant, je certifie que je me suis acquitté de toutes les instructions indiquées sur cette page.";
+$a->strings["(No specific instructions have been provided by the channel owner.)"] = "(Aucune instruction spécifique n'a été établie par le propriétaire du canal.)";
+$a->strings["Restricted or Premium Channel"] = "Canal Premium ou restreint";
+$a->strings["No potential page delegates located."] = "Aucun délégué potentiel n'a été trouvé pour cette page.";
+$a->strings["Delegate Page Management"] = "Gestion des délégués de la page";
+$a->strings["Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely."] = "Les délégués sont capables de gérer tous les aspects de ce compte ou de cette page, à l'exception des réglages basiques du compte. Merci de ne déléguer votre compte personnel qu'à quelqu'un en qui vous avez une confiance aveugle.";
+$a->strings["Existing Page Managers"] = "Actuels gestionnaires de pages";
+$a->strings["Existing Page Delegates"] = "Actuels délégués";
+$a->strings["Potential Delegates"] = "Délégués potentiels";
+$a->strings["Add"] = "Ajouter";
+$a->strings["No entries."] = "Aucune entrée.";
+$a->strings["Away"] = "Absent";
+$a->strings["Online"] = "En ligne";
+$a->strings["Item not available."] = "Élément indisponible.";
+$a->strings["Menu element updated."] = "Entrée de menu mis-à-jour.";
+$a->strings["Unable to update menu element."] = "Impossible de mettre l'entrée de menu à jour.";
+$a->strings["Menu element added."] = "Entrée de menu ajouté.";
+$a->strings["Unable to add menu element."] = "Impossible d'ajouter l'entrée de menu.";
+$a->strings["Manage Menu Elements"] = "Gérer les entrées de menu";
+$a->strings["Edit menu"] = "Éditer le menu";
+$a->strings["Edit element"] = "Éditer l'entrée";
+$a->strings["Drop element"] = "Supprimer l'entrée";
+$a->strings["New element"] = "Nouvelle entrée";
+$a->strings["Edit this menu container"] = "Éditer ce bloc de menu";
+$a->strings["Add menu element"] = "Ajouter une entrée au menu";
+$a->strings["Delete this menu item"] = "Supprimer cet entrée du menu";
+$a->strings["Edit this menu item"] = "Éditer cette entrée du menu";
+$a->strings["New Menu Element"] = "Nouvelle entrée de menu";
+$a->strings["Menu Item Permissions"] = "Permissions de l'entrée de menu";
+$a->strings["(click to open/close)"] = "(cliquer pour ouvrir/fermer)";
+$a->strings["Link text"] = "Texte du lien";
+$a->strings["URL of link"] = "URL du lien";
+$a->strings["Use Red magic-auth if available"] = "Utiliser l'authentification automagique de Red, si possible";
+$a->strings["Open link in new window"] = "Ouvrir le lien dans une nouvelle fenêtre";
+$a->strings["Order in list"] = "Ordre dans la liste";
+$a->strings["Higher numbers will sink to bottom of listing"] = "Les nombres les plus élevés seront descendus au bas de la liste";
+$a->strings["Menu item not found."] = "Entrée de menu introuvable.";
+$a->strings["Menu item deleted."] = "Entrée de menu supprimée.";
+$a->strings["Menu item could not be deleted."] = "Impossible de supprimer l'entrée de menu.";
+$a->strings["Edit Menu Element"] = "Éditer l'entrée de menu";
+$a->strings["Invalid profile identifier."] = "Identifiant de profil invalide.";
+$a->strings["Profile Visibility Editor"] = "Éditeur de visibilité de profil";
+$a->strings["Click on a contact to add or remove."] = "Cliquez sur un contact pour l'ajouter ou le retirer.";
+$a->strings["Visible To"] = "Visible par";
+$a->strings["All Connections"] = "Toutes les relations";
+$a->strings["Collection created."] = "Collection créée.";
+$a->strings["Could not create collection."] = "Impossible de créer la collection.";
+$a->strings["Collection updated."] = "Collection mise-à-jour.";
+$a->strings["Create a collection of channels."] = "Créez une collection de canaux.";
+$a->strings["Collection Name: "] = "Nom de la collection&nbsp;:";
+$a->strings["Members are visible to other channels"] = "Les membres sont visibles par les autres canaux";
+$a->strings["Collection removed."] = "Collection supprimée.";
+$a->strings["Unable to remove collection."] = "Impossible de supprimer la collection.";
+$a->strings["Collection Editor"] = "Éditeur de collection";
+$a->strings["Members"] = "Membres";
+$a->strings["All Connected Channels"] = "Tous canaux connectés";
+$a->strings["Click on a channel to add or remove."] = "Cliquer sur un canal pour ajouter ou supprimer";
+$a->strings["Theme settings updated."] = "Réglages du thème sauvegardés.";
$a->strings["Site"] = "Site";
$a->strings["Users"] = "Utilisateurs";
$a->strings["Plugins"] = "Extensions";
+$a->strings["Themes"] = "Thèmes";
+$a->strings["Server"] = "Serveur";
+$a->strings["DB updates"] = "MàJ BD";
$a->strings["Logs"] = "Journaux";
-$a->strings["User registrations waiting for confirmation"] = "Inscriptions en attente de confirmation";
+$a->strings["Plugin Features"] = "Fonctionnalités liées aux extensions";
+$a->strings["User registrations waiting for confirmation"] = "Inscriptions en attente";
+$a->strings["Message queues"] = "File des messages";
$a->strings["Administration"] = "Administration";
$a->strings["Summary"] = "Résumé";
$a->strings["Registered users"] = "Utilisateurs inscrits";
$a->strings["Pending registrations"] = "Inscriptions en attente";
-$a->strings["Version"] = "Versio";
-$a->strings["Active plugins"] = "Extensions activés";
-$a->strings["Site settings updated."] = "Réglages du site mis-à-jour.";
+$a->strings["Version"] = "Version";
+$a->strings["Active plugins"] = "Extensions actives";
+$a->strings["Site settings updated."] = "Réglages du site sauvegardés.";
+$a->strings["No special theme for mobile devices"] = "Pas de thème spécifique aux périphériques mobiles";
+$a->strings["No special theme for accessibility"] = "Pas de thème spécifique pour l'accessibilité";
$a->strings["Closed"] = "Fermé";
-$a->strings["Requires approval"] = "Demande une apptrobation";
+$a->strings["Requires approval"] = "Après approbation";
$a->strings["Open"] = "Ouvert";
-$a->strings["File upload"] = "Téléversement de fichier";
-$a->strings["Policies"] = "Politiques";
+$a->strings["Private"] = "Privé";
+$a->strings["Paid Access"] = "Accès payant";
+$a->strings["Free Access"] = "Accès gratuit";
+$a->strings["Tiered Access"] = "Accès par paliers";
+$a->strings["Registration"] = "Inscription";
+$a->strings["File upload"] = "Envoi de fichier";
+$a->strings["Policies"] = "Stratégies";
$a->strings["Advanced"] = "Avancé";
$a->strings["Site name"] = "Nom du site";
-$a->strings["Banner/Logo"] = "Bannière/Logo";
+$a->strings["Banner/Logo"] = "Bannière/logo";
+$a->strings["Administrator Information"] = "Information sur l'administration";
+$a->strings["Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here"] = "Coordonnées de l'administration du site. Affichée sur la page 'siteinfo'. Vous pouvez utiliser du BBCode ici";
$a->strings["System language"] = "Langue du système";
$a->strings["System theme"] = "Thème du système";
+$a->strings["Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"] = "Thème par défaut - il peut être changé pour chaque profil utilisateur - <a href='#' id='cnftheme'>modifier le thème</a>";
+$a->strings["Mobile system theme"] = "Thème système pour mobile";
+$a->strings["Theme for mobile devices"] = "Thème dédié aux périphériques mobiles";
+$a->strings["Accessibility system theme"] = "Thème système pour l'accessibilité";
+$a->strings["Accessibility theme"] = "Thème pour l'accessibilité";
+$a->strings["Channel to use for this website's static pages"] = "Canal à utiliser pour les pages statiques de ce site";
+$a->strings["Site Channel"] = "Canal du site";
$a->strings["Maximum image size"] = "Taille maximale des images";
+$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Taille maximum, en octets, des images envoyées. Par défaut 0, soit sans limite.";
$a->strings["Register policy"] = "Politique d'inscription";
+$a->strings["Access policy"] = "Politique d'accès";
$a->strings["Register text"] = "Texte d'inscription";
+$a->strings["Will be displayed prominently on the registration page."] = "Sera affiché de manière bien visible sur le formulaire d'inscription.";
$a->strings["Accounts abandoned after x days"] = "Les comptes sont abandonnés après x jours";
-$a->strings["Will not waste system resources polling external sites for abandoned accounts. Enter 0 for no time limit."] = "Pour ne pas gaspiller les ressources système, on cesse d'interroger les sites distants pour les comptes abandonnés. Mettre 0 pour désactiver cette fonction.";
-$a->strings["Allowed friend domains"] = "Domaines autorisés";
-$a->strings["Allowed email domains"] = "Domaines courriel autorisés";
-$a->strings["Block public"] = "Interdire la publication globale";
-$a->strings["Force publish"] = "Forcer la publication globale";
-$a->strings["Global directory update URL"] = "URL de mise-à-jour de l'annuaire global";
-$a->strings["Block multiple registrations"] = "Interdire les inscriptions multiples";
-$a->strings["OpenID support"] = "Support OpenID";
-$a->strings["Gravatar support"] = "Support Gravatar";
-$a->strings["Fullname check"] = "Vérification du \"Prénom Nom\"";
-$a->strings["UTF-8 Regular expressions"] = "Regex UTF-8";
-$a->strings["Show Community Page"] = "Montrer la \"Place publique\"";
-$a->strings["Enable OStatus support"] = "Activer le support d'OStatus";
-$a->strings["Enable Diaspora support"] = "Activer le support de Diaspora";
-$a->strings["Only allow Friendika contacts"] = "N'autoriser que les contacts Friendica";
-$a->strings["Verify SSL"] = "Vérifier SSL";
-$a->strings["Proxy user"] = "Utilisateur du proxy";
+$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Pour éviter de gaspiller les ressources du système en essayer de mettre à jour des comptes abandonnés. Mettez 0 pour ne pas avoir de limite de temps.";
+$a->strings["Allowed friend domains"] = "Domaines amicaux";
+$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Liste de noms de domaines - séparés par des virgules - pour lesquels ce site acceptera les demandes d'amitié ou de mise en relation. Les caractères génériques (*) sont acceptés. Laissez vide pour accepter tous les domaines.";
+$a->strings["Allowed email domains"] = "Domaines de courriels amicaux";
+$a->strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = "Liste de noms de domaines - séparés par des virgules - dont les adresses de courriel seront autorisées lors de l'inscription à ce site. Les caractères génériques (*) sont acceptés. Laissez vide pour accepter tous les domaines.";
+$a->strings["Block public"] = "Bloquer public";
+$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Cocher pour interdire tout accès public, y compris aux pages marquées comme publiques, aux visiteurs anonymes.";
+$a->strings["Force publish"] = "Forcer publication";
+$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Cocher pour forcer la publication de tous les profils du site dans l'annuaire.";
+$a->strings["No login on Homepage"] = "Pas de connexion depuis la page d'accueil";
+$a->strings["Check to hide the login form from your sites homepage when visitors arrive who are not logged in (e.g. when you put the content of the homepage in via the site channel)."] = "Cocher pour ne pas montrer le formulaire de connexion sur la page d'accueil (typiquement, pour quand vous utilisez la page d'accueil pour afficher du contenu via le canal du site).";
+$a->strings["Proxy user"] = "Utilisateurs du proxy";
$a->strings["Proxy URL"] = "URL du proxy";
-$a->strings["Network timeout"] = "Dépassement du délai d'attente du réseau";
-$a->strings["%s user blocked"] = array(
- 0 => "%s utilisateur bloqué",
- 1 => "%s utilisateurs (dé)bloqués",
+$a->strings["Network timeout"] = "Délai maximal du réseau";
+$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "En secondes. Mettre à 0 pour ne pas avoir de délai maximal (pas recommandé).";
+$a->strings["Delivery interval"] = "Intervalle de distribution";
+$a->strings["Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers."] = "Temporise le processus de distribution de tant de secondes pour réduire la charge sur le système. Valeurs recommandées&nbsp;: 4-5 pour les serveurs mutualisés, 2-3 pour les VPS. 0-1 pour les gros serveurs dédiés.";
+$a->strings["Poll interval"] = "Intervalle de scrutation";
+$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "Temporise le processus de scrutation en tâche de fond de tant de secondes, pour réduire la charge. Si 0, utilise l'intervalle de distribution.";
+$a->strings["Maximum Load Average"] = "Charge moyenne maximale";
+$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Charge système maximale au-delà de laquelle distribution et scrutation sont mis en pause - par défaut 50.";
+$a->strings["No server found"] = "Serveur introuvable";
+$a->strings["ID"] = "ID";
+$a->strings["for channel"] = "pour le canal";
+$a->strings["on server"] = "sur le serveur";
+$a->strings["Status"] = "État";
+$a->strings["Update has been marked successful"] = "La mise à jour a été marquée comme réussie";
+$a->strings["Executing %s failed. Check system logs."] = "L'éxecution de %s a échoué. Merci de vérifier les journaux du système.";
+$a->strings["Update %s was successfully applied."] = "La mise à jour %s a été appliquée avec succès.";
+$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "La mise à jour %s n'a pas retourné d'information. Impossible de savoir si elle a réussi ou non.";
+$a->strings["Update function %s could not be found."] = "La fonction de mise à jour %s est introuvable.";
+$a->strings["No failed updates."] = "Aucune mise à jour défaillante.";
+$a->strings["Failed Updates"] = "Mises à jour défaillantes";
+$a->strings["Mark success (if update was manually applied)"] = "Marquer comme réussie (si la mise à jour a été réalisée manuellement)";
+$a->strings["Attempt to execute this update step automatically"] = "Tenter de réaliser cette étape de mise à jour automatiquement";
+$a->strings["%s user blocked/unblocked"] = array(
+ 0 => "%s utilisateur bloqué/débloqué",
+ 1 => "%s utilisateurs bloqués/débloqués",
);
$a->strings["%s user deleted"] = array(
0 => "%s utilisateur supprimé",
1 => "%s utilisateurs supprimés",
);
+$a->strings["Account not found"] = "Compte introuvable";
$a->strings["User '%s' deleted"] = "Utilisateur '%s' supprimé";
$a->strings["User '%s' unblocked"] = "Utilisateur '%s' débloqué";
$a->strings["User '%s' blocked"] = "Utilisateur '%s' bloqué";
$a->strings["select all"] = "tout sélectionner";
-$a->strings["User registrations waiting for confirm"] = "Inscriptions d'utilisateurs en attente de confirmation";
+$a->strings["User registrations waiting for confirm"] = "Inscriptions en attente d'approbation";
$a->strings["Request date"] = "Date de la demande";
-$a->strings["Email"] = "Courriel";
$a->strings["No registrations."] = "Pas d'inscriptions.";
-$a->strings["Deny"] = "Rejetter";
+$a->strings["Approve"] = "Approuver";
+$a->strings["Deny"] = "Refuser";
+$a->strings["Block"] = "Bloquer";
+$a->strings["Unblock"] = "Débloquer";
$a->strings["Register date"] = "Date d'inscription";
$a->strings["Last login"] = "Dernière connexion";
-$a->strings["Last item"] = "Dernier élément";
-$a->strings["Account"] = "Compte";
-$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Les utilisateurs sélectionnés vont être supprimés!\\n\\nTout ce qu'ils ont posté sur ce site sera définitivement perdu!\\n\\nÊtes-vous certain?";
-$a->strings["The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "L'utilisateur {0} va être supprimé!\\n\\nTout ce qu'il a posté sur ce site sera définitivement perdu!\\n\\nÊtes-vous certain?";
+$a->strings["Expires"] = "Expire";
+$a->strings["Service Class"] = "Classe de service";
+$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Les utilisateurs sélectionnés seront supprimés!\\n\\nTout ce que ces utilisateurs ont publié sur ce site sera détruit de manière définitive!\\n\\nÊtes-vous certain?";
+$a->strings["The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "L'utilisateur {0} sera supprimé!\\n\\nTout ce que cet utilisateur a publié sur ce site sera détruit de manière définitive!\\n\\nÊtes-vous certain?";
$a->strings["Plugin %s disabled."] = "Extension %s désactivée.";
$a->strings["Plugin %s enabled."] = "Extension %s activée.";
$a->strings["Disable"] = "Désactiver";
$a->strings["Enable"] = "Activer";
-$a->strings["Toggle"] = "Activer/Désactiver";
-$a->strings["Settings"] = "Réglages";
-$a->strings["Log settings updated."] = "Réglages des journaux mis-à-jour.";
-$a->strings["Clear"] = "Effacer";
-$a->strings["Debugging"] = "Déboguage";
-$a->strings["Log file"] = "Fichier de journaux";
-$a->strings["Must be writable by web server. Relative to your Friendika index.php."] = "Doit être accessible en écriture pour le serveur web. Le chemin est relative à l'index.php de Friendica.";
-$a->strings["Log level"] = "Niveau de journalisaton";
-$a->strings["Close"] = "Fermer";
-$a->strings["FTP Host"] = "Hôte FTP";
-$a->strings["FTP Path"] = "Chemin FTP";
-$a->strings["FTP User"] = "Utilisateur FTP";
-$a->strings["FTP Password"] = "Mot de passe FTP";
-$a->strings["Unable to locate original post."] = "Impossible de localiser l'article original.";
-$a->strings["Empty post discarded."] = "Article vide défaussé.";
-$a->strings["noreply"] = "noreply";
-$a->strings["Administrator@"] = "Administrator@";
-$a->strings["%s commented on an item at %s"] = "%s a commenté un élément à %s";
-$a->strings["%s posted to your profile wall at %s"] = "%s a posté sur votre mur à %s";
-$a->strings["System error. Post not saved."] = "Erreur système. Publication non sauvée.";
-$a->strings["This message was sent to you by %s, a member of the Friendika social network."] = "Ce message vous a été envoyé par %s, un membre du réseau social Friendica.";
-$a->strings["You may visit them online at %s"] = "Vous pouvez leur rendre visite sur %s";
-$a->strings["Please contact the sender by replying to this post if you do not wish to receive these messages."] = "Merci de contacter l'émeteur en répondant à cette publication si vous ne souhaitez pas recevoir ces messages.";
-$a->strings["%s posted an update."] = "%s a publié une mise à jour.";
-$a->strings["Tag removed"] = "Étiquette enlevée";
-$a->strings["Remove Item Tag"] = "Enlever l'étiquette de l'élément";
-$a->strings["Select a tag to remove: "] = "Choisir une étiquette à enlever: ";
-$a->strings["Remove"] = "Utiliser comme photo de profil";
-$a->strings["No recipient selected."] = "Pas de destinataire sélectionné.";
-$a->strings["Unable to locate contact information."] = "Impossible de localiser les informations du contact.";
-$a->strings["Message could not be sent."] = "Impossible d'envoyer le message.";
-$a->strings["Message sent."] = "Message envoyé.";
-$a->strings["Inbox"] = "Messages entrants";
-$a->strings["Outbox"] = "Messages sortants";
-$a->strings["New Message"] = "Nouveau message";
+$a->strings["Toggle"] = "(Dés)activer";
+$a->strings["Author: "] = "Auteur&nbsp;:";
+$a->strings["Maintainer: "] = "Maintenu par&nbsp;:";
+$a->strings["No themes found."] = "Aucun thème trouvé.";
+$a->strings["Screenshot"] = "Aperçu";
+$a->strings["[Experimental]"] = "[Expérimental]";
+$a->strings["[Unsupported]"] = "[Non-supporté]";
+$a->strings["Log settings updated."] = "Réglages du journal sauvegardés.";
+$a->strings["Clear"] = "Vider";
+$a->strings["Debugging"] = "Débogage";
+$a->strings["Log file"] = "Fichier du journal";
+$a->strings["Must be writable by web server. Relative to your Red top-level directory."] = "Doit être accessible en écriture par le serveur web. Chemin relatif à la racine de Red.";
+$a->strings["Log level"] = "Niveau de journalisation";
+$a->strings["- select -"] = "- choisir -";
+$a->strings["Welcome to %s"] = "Bienvenue sur %s";
+$a->strings["Item not found"] = "Élément introuvable";
+$a->strings["Item is not editable"] = "Élément non-éditable";
+$a->strings["Delete item?"] = "Supprimer l'élément?";
+$a->strings["Insert YouTube video"] = "Insérer une vidéo YouTube";
+$a->strings["Insert Vorbis [.ogg] video"] = "Insérer une vidéo Vorbis [.ogg]";
+$a->strings["Insert Vorbis [.ogg] audio"] = "Insérer un son Vorbis [.ogg]";
+$a->strings["Age: "] = "Age&nbsp;:";
+$a->strings["Gender: "] = "Sexe/genre&nbsp;:";
+$a->strings["Finding:"] = "Recherche&nbsp;:";
+$a->strings["next page"] = "page suiv.";
+$a->strings["previous page"] = "page préc.";
+$a->strings["No entries (some entries may be hidden)."] = "Pas d'entrées (certaines peuvent être cachées).";
+$a->strings["Could not access contact record."] = "Impossible d'accéder aux détails du contact.";
+$a->strings["Could not locate selected profile."] = "Impossible de localiser le profil sélectionné.";
+$a->strings["Connection updated."] = "Connexion mise à jour.";
+$a->strings["Failed to update connection record."] = "Impossible de mettre à jour les détails de la relation.";
+$a->strings["Could not access address book record."] = "Impossible d'accéder aux détails du carnet d'adresses.";
+$a->strings["Refresh failed - channel is currently unavailable."] = "Actualisation impossible - le canal est momentanément indisponible.";
+$a->strings["Channel has been unblocked"] = "Le canal n'est plus bloqué";
+$a->strings["Channel has been blocked"] = "Le canal est bloqué";
+$a->strings["Unable to set address book parameters."] = "Impossible de régler les paramètres du carnet d'adresses.";
+$a->strings["Channel has been unignored"] = "Le canal n'est plus ignoré";
+$a->strings["Channel has been ignored"] = "Le canal est ignoré";
+$a->strings["Channel has been unarchived"] = "Le canal n'est plus archivé";
+$a->strings["Channel has been archived"] = "Le canal est archivé";
+$a->strings["Channel has been unhidden"] = "Le canal n'est plus caché";
+$a->strings["Channel has been hidden"] = "Le canal est caché";
+$a->strings["Channel has been approved"] = "Le canal est approuvé";
+$a->strings["Channel has been unapproved"] = "Le canal n'est plus approuvé";
+$a->strings["Contact has been removed."] = "Le canal a été supprimé";
+$a->strings["View %s's profile"] = "Voir le profil de %s";
+$a->strings["Refresh Permissions"] = "Actualiser les permissions";
+$a->strings["Fetch updated permissions"] = "Récupérer les permissions les plus récentes";
+$a->strings["Recent Activity"] = "Activité récente";
+$a->strings["View recent posts and comments"] = "Voir les contributions et commentaires récentes";
+$a->strings["Block or Unblock this connection"] = "Bloquer ou Débloquer cette relation";
+$a->strings["Unignore"] = "Ne plus ignorer";
+$a->strings["Ignore"] = "Ignorer";
+$a->strings["Ignore or Unignore this connection"] = "Ignorer ou ne plus ignorer cette relation";
+$a->strings["Unarchive"] = "Ne plus archiver";
+$a->strings["Archive"] = "Archiver";
+$a->strings["Archive or Unarchive this connection"] = "Archiver ou ne plus archiver cette relation";
+$a->strings["Unhide"] = "Ne plus cacher";
+$a->strings["Hide"] = "Cacher";
+$a->strings["Hide or Unhide this connection"] = "Cacher ou ne plus cacher cette relation";
+$a->strings["Delete this connection"] = "Supprimer cette relation";
+$a->strings["Unknown"] = "Inconnu";
+$a->strings["Approve this connection"] = "Approuver cette relation";
+$a->strings["Accept connection to allow communication"] = "Accepter la relation pour permettre la communication";
+$a->strings["Automatic Permissions Settings"] = "Permissions automatiques";
+$a->strings["Connections: settings for %s"] = "Relations&nbsp;: réglages pour %s";
+$a->strings["When receiving a channel introduction, any permissions provided here will be applied to the new connection automatically and the introduction approved. Leave this page if you do not wish to use this feature."] = "Pour chaque introduction reçue, toutes les permissions définies ici seront appliquées aux nouvelles relations automatiquement, et l'introduction sera approuvée. Laissez cette page telle quelle si vous ne souhaitez pas utiliser ce mécanisme.";
+$a->strings["Slide to adjust your degree of friendship"] = "Faites glisser pour ajuster le niveau de la relation";
+$a->strings["inherited"] = "par héritage";
+$a->strings["Connection has no individual permissions!"] = "Cette relation n'a aucune permission spécifique!";
+$a->strings["This may be appropriate based on your <a href=\"settings\">privacy settings</a>, though you may wish to review the \"Advanced Permissions\"."] = "Ceci devrait correspondre à vos <a href=\"settings\">réglages de vie privée</a>, mais vous pouvez toujours contrôler les \"Permissions avancées\".";
+$a->strings["Profile Visibility"] = "Visibilité du profil";
+$a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Merci de choisir le profil que vous souhaitez montrer quand %s visite votre profil de manière authentifiée.";
+$a->strings["Contact Information / Notes"] = "Notes / Information de contact";
+$a->strings["Edit contact notes"] = "Éditer les notes du contact";
+$a->strings["Their Settings"] = "Ses réglages";
+$a->strings["My Settings"] = "Mes réglages";
+$a->strings["Forum Members"] = "Membres de forum";
+$a->strings["Soapbox"] = "Boîte à savon";
+$a->strings["Full Sharing (typical social network permissions)"] = "Partage complet (fonctionnement habituel des réseaux sociaux)";
+$a->strings["Cautious Sharing "] = "Partage modéré";
+$a->strings["Follow Only"] = "Suivi uniquement";
+$a->strings["Individual Permissions"] = "Permissions spécifiques";
+$a->strings["Some permissions may be inherited from your channel <a href=\"settings\">privacy settings</a>, which have higher priority than individual settings. Changing those inherited settings on this page will have no effect."] = "Certaines permissions peuvent être héritées de vos <a href=\"settings\">réglages de vie privée</a>, lesquels sont prioritaires sur les réglages spécifiques. Changer ces permissions héritées sur la présente page n'aura aucun effet.";
+$a->strings["Advanced Permissions"] = "Permissions avancées";
+$a->strings["Simple Permissions (select one and submit)"] = "Permissions simples (en choisir une, puis valider)";
+$a->strings["Visit %s's profile - %s"] = "Visiter le profil de %s - %s";
+$a->strings["Block/Unblock contact"] = "Bloquer/Débloquer le contact";
+$a->strings["Ignore contact"] = "Ignorer le contact";
+$a->strings["Repair URL settings"] = "Réparer les réglages d'URL";
+$a->strings["View conversations"] = "Voir les conversations";
+$a->strings["Delete contact"] = "Supprimer le contact";
+$a->strings["Last update:"] = "Dernière mise-à-jour&nbsp;:";
+$a->strings["Update public posts"] = "Mettre à jour les publications";
+$a->strings["Update now"] = "Mettre à jour maintenant";
+$a->strings["Currently blocked"] = "Actuellement bloqué";
+$a->strings["Currently ignored"] = "Actuellement ignoré";
+$a->strings["Currently archived"] = "Actuellement archivé";
+$a->strings["Currently pending"] = "Actuellement en attente";
+$a->strings["Hide this contact from others"] = "Dissimuler ce contact aux autres";
+$a->strings["Replies/likes to your public posts <strong>may</strong> still be visible"] = "Les réponses et autres réactions à vos contributions publiques <strong>pourraient</strong> être toujours visibles";
+$a->strings["Layout Help"] = "Aide à la mise en page";
+$a->strings["Help with this feature"] = "Aide avec cette fonctionnalité";
+$a->strings["Layout Name"] = "Nom de la mise-en-page";
+$a->strings["Help:"] = "Aide&nbsp;:";
+$a->strings["Not Found"] = "Introuvable";
+$a->strings["Page not found."] = "Page introuvable.";
+$a->strings["Remote Authentication"] = "Authentification distante";
+$a->strings["Enter your channel address (e.g. channel@example.com)"] = "Entrez l'adresse de votre canal (p.ex. moncanal@monsite.com)";
+$a->strings["Authenticate"] = "Authentifier";
+$a->strings["Invalid item."] = "Élément invalide.";
+$a->strings["No such group"] = "Rien de tel comme groupe";
+$a->strings["Search Results For:"] = "Résultats de recherche pour&nbsp;:";
+$a->strings["Collection is empty"] = "Collection vide";
+$a->strings["Collection: "] = "Collection&nbsp;:";
+$a->strings["Connection: "] = "Relation&nbsp;:";
+$a->strings["Invalid connection."] = "Relation invalide.";
+$a->strings["Profile not found."] = "Profil introuvable.";
+$a->strings["Profile deleted."] = "Profil supprimé.";
+$a->strings["Profile-"] = "Profil-";
+$a->strings["New profile created."] = "Nouveau profil créé.";
+$a->strings["Profile unavailable to clone."] = "Profil impossible à cloner.";
+$a->strings["Profile Name is required."] = "Le nom du profil est requis.";
+$a->strings["Marital Status"] = "Statut marital";
+$a->strings["Romantic Partner"] = "Partenaire";
+$a->strings["Likes"] = "Aime";
+$a->strings["Dislikes"] = "Déteste";
+$a->strings["Work/Employment"] = "Travail/Occupation";
+$a->strings["Religion"] = "Religion/Croyance";
+$a->strings["Political Views"] = "Opinions politiques";
+$a->strings["Gender"] = "Sexe/Genre";
+$a->strings["Sexual Preference"] = "Préférence sexuelle";
+$a->strings["Homepage"] = "Site Internet";
+$a->strings["Interests"] = "Centres d'intérêt";
+$a->strings["Address"] = "Adresse";
+$a->strings["Location"] = "Localisation";
+$a->strings["Profile updated."] = "Profil mis à jour.";
+$a->strings["Hide your contact/friend list from viewers of this profile?"] = "Cacher vos contacts/relations aux visiteurs de ce profil?";
+$a->strings["Edit Profile Details"] = "Éditer les détails du profil";
+$a->strings["View this profile"] = "Voir le profil";
+$a->strings["Change Profile Photo"] = "Changer la photo du profil";
+$a->strings["Create a new profile using these settings"] = "Créer un nouveau profil avec ces réglages";
+$a->strings["Clone this profile"] = "Cloner le profil";
+$a->strings["Delete this profile"] = "Supprimer le profil";
+$a->strings["Profile Name:"] = "Nom du profil&nbsp;:";
+$a->strings["Your Full Name:"] = "Votre nom complet&nbsp;:";
+$a->strings["Title/Description:"] = "Titre/description&nbsp;:";
+$a->strings["Your Gender:"] = "Sexe/Genre&nbsp;:";
+$a->strings["Birthday (%s):"] = "Date de naissance (%s)&nbsp;:";
+$a->strings["Street Address:"] = "Adresse postale&nbsp;:";
+$a->strings["Locality/City:"] = "Ville/Localité&nbsp;:";
+$a->strings["Postal/Zip Code:"] = "Code postal&nbsp;:";
+$a->strings["Country:"] = "Pays&nbsp;:";
+$a->strings["Region/State:"] = "Région/Province/État&nbsp;:";
+$a->strings["<span class=\"heart\">&hearts;</span> Marital Status:"] = "<span class=\"heart\">&hearts;</span>Statut marital&nbsp;:";
+$a->strings["Who: (if applicable)"] = "Avec&nbsp;: (si pertinent)";
+$a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Exemples&nbsp;: cathy123, Cathy Williams, cathy@exemple.com";
+$a->strings["Since [date]:"] = "Depuis [date]&nbsp;:";
+$a->strings["Homepage URL:"] = "URL de mon site Internet&nbsp;:";
+$a->strings["Religious Views:"] = "Opinions religieuses&nbsp;:";
+$a->strings["Keywords:"] = "Mots-clefs&nbsp;:";
+$a->strings["Example: fishing photography software"] = "Exemple&nbsp;: escrime photographie modélisme";
+$a->strings["Used in directory listings"] = "Utilisé pour le référencement dans l'annuaire";
+$a->strings["Tell us about yourself..."] = "Parlez nous de vous...";
+$a->strings["Hobbies/Interests"] = "Loisirs/Centres d'intêret";
+$a->strings["Contact information and Social Networks"] = "Coordonnées et réseaux sociaux";
+$a->strings["My other channels"] = "Mes autres canaux";
+$a->strings["Musical interests"] = "Goûts musicaux";
+$a->strings["Books, literature"] = "Littérature";
+$a->strings["Television"] = "Télévision";
+$a->strings["Film/dance/culture/entertainment"] = "Cinéma/Danse/Culture/Divertissement";
+$a->strings["Love/romance"] = "Amour/Romance";
+$a->strings["Work/employment"] = "Travail/Occupation";
+$a->strings["School/education"] = "Études";
+$a->strings["This is your <strong>public</strong> profile.<br />It <strong>may</strong> be visible to anybody using the internet."] = "Ceci est votre profil <strong>public</strong>.<br />Il <strong>pourrait</strong> être visible par tout utilisateur - fut-il anonyme - d'Internet.";
+$a->strings["Edit/Manage Profiles"] = "Éditer/gérer les profils";
+$a->strings["Add profile things"] = "Ajouter des choses de profil";
+$a->strings["Include desirable objects in your profile"] = "Incluez des objets souhaitables dans votre profil";
+$a->strings["Channel added."] = "Canal ajouté.";
+$a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "Authentification distante bloquée. Vous êtes connecté sur ce site localement. Merci de vous en déconnecter et de recommencer.";
+$a->strings["Welcome %s. Remote authentication successful."] = "Bienvenue %s. L'authentification distante a fonctionné.";
+$a->strings["This site is not a directory server"] = "Ce site n'est pas un serveur d'annuaire";
+$a->strings["Failed to create source. No channel selected."] = "Impossible de créer la source. Aucun canal selectionné.";
+$a->strings["Source created."] = "Source créée.";
+$a->strings["Source updated."] = "Source mise à jour.";
+$a->strings["*"] = "*";
+$a->strings["Manage remote sources of content for your channel."] = "Gérer les sources distantes du contenu de votre canal.";
+$a->strings["New Source"] = "Nouvelle source";
+$a->strings["Import all or selected content from the following channel into this channel and distribute it according to your channel settings."] = "Importer tout ou partie du contenu du canal suivant dans le canal en cours, et le distribuer en concordance avec les réglages de votre canal.";
+$a->strings["Only import content with these words (one per line)"] = "N'importer le contenu que s'ils contient ces mots (un par ligne)";
+$a->strings["Leave blank to import all public content"] = "Laissez en blanc pour importer tout le contenu public";
+$a->strings["Channel Name"] = "Nom du canal";
+$a->strings["Source not found."] = "Source introuvable.";
+$a->strings["Edit Source"] = "Éditer source";
+$a->strings["Delete Source"] = "Supprimer source";
+$a->strings["Source removed"] = "Source supprimée";
+$a->strings["Unable to remove source."] = "Impossible de supprimer la source.";
+$a->strings["Remote privacy information not available."] = "Les informations de vie privée à distance ne sont pas disponibles.";
+$a->strings["Visible to:"] = "Visible par&nbsp;:";
+$a->strings["Hub not found."] = "Instance introuvable.";
+$a->strings["Red Matrix Server - Setup"] = "Serveur Red Matrix - Configuration";
+$a->strings["Could not connect to database."] = "Impossible de se connecter à la base de données.";
+$a->strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Impossible de se connecter au site par l'URL indiquée. Problème potentiel de certificat SSL/TLS ou de DNS.";
+$a->strings["Could not create table."] = "Impossible de créer la table.";
+$a->strings["Your site database has been installed."] = "La base de données de votre site a été installée.";
+$a->strings["You may need to import the file \"install/database.sql\" manually using phpmyadmin or mysql."] = "Vous pourriez avoir besoin d'importer le fichier \"install/database.sql\" manuellement via phpmyadmin ou mysql.";
+$a->strings["Please see the file \"install/INSTALL.txt\"."] = "Merci de consulter le fichier \"install/INSTALL.txt\".";
+$a->strings["System check"] = "Vérification du système";
+$a->strings["Check again"] = "Re-vérifier";
+$a->strings["Database connection"] = "Connexion à la base de données";
+$a->strings["In order to install Red Matrix we need to know how to connect to your database."] = "Pour installer Red Matrix, nous avons besoin de savoir comment contacter votre base de données.";
+$a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Merci de contacter votre prestataire d'hébergement ou votre administration système si vous avez des doutes à propos de ces paramètres.";
+$a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "La base de données que vous allez spécifier doit exister. Si ce n'est pas déjà le cas, merci de la créer avant de continuer.";
+$a->strings["Database Server Name"] = "Nom du serveur de BD";
+$a->strings["Default is localhost"] = "Par défaut, localhost";
+$a->strings["Database Port"] = "Port du serveur";
+$a->strings["Communication port number - use 0 for default"] = "Numéro TCP du port - utilisez 0 pour la valeur par défaut";
+$a->strings["Database Login Name"] = "Identifiant de connexion à la BD";
+$a->strings["Database Login Password"] = "Mot de passe de connexion à la BD";
+$a->strings["Database Name"] = "Nom de la base de données";
+$a->strings["Site administrator email address"] = "Adresse de courriel de l'administrateur du site";
+$a->strings["Your account email address must match this in order to use the web admin panel."] = "Votre compte devra utiliser la même adresse de courriel pour pouvoir utiliser l'administration web.";
+$a->strings["Website URL"] = "URL du site";
+$a->strings["Please use SSL (https) URL if available."] = "Merci d'utiliser SSL/TLS (https) autant que possible.";
+$a->strings["Please select a default timezone for your website"] = "Merci de choisir une zone de temps (fuseau horaire) pour votre site";
+$a->strings["Site settings"] = "Réglages du site";
+$a->strings["Could not find a command line version of PHP in the web server PATH."] = "Impossible de trouver une version CLI de PHP dans le PATH du serveur web.";
+$a->strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron."] = "En l'absence de version CLI de PHP sur votre serveur, vous ne pourrez pas utiliser la mise-à-jour en arrière-plan via cron.";
+$a->strings["PHP executable path"] = "Chemin vers l'éxecutable PHP";
+$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Entrez le chemin complet vers l'exécutable php. Vous pouvez continuer l'installation sans.";
+$a->strings["Command line PHP"] = "PHP en ligne de commande (CLI)";
+$a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "La version CLI de PHP sur votre système n'a pas l'option \"register_argc_argv\" activée.";
+$a->strings["This is required for message delivery to work."] = "Elle est nécessaire pour la livraison de messages.";
+$a->strings["PHP register_argc_argv"] = "PHP register_argc_argv";
+$a->strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Erreur&nbsp;: la fonction \"openssl_pkey_new\" de ce système n'est pas capable de générer des clefs de chiffrement";
+$a->strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Si vous êtes sur un serveur Windows, merci de consulter \"http://www.php.net/manual/fr/openssl.installation.php\".";
+$a->strings["Generate encryption keys"] = "Générer les clefs de chiffrement";
+$a->strings["libCurl PHP module"] = "module PHP libCurl";
+$a->strings["GD graphics PHP module"] = "module PHP GD graphics";
+$a->strings["OpenSSL PHP module"] = "module PHP OpenSSL";
+$a->strings["mysqli PHP module"] = "module PHP mysqli";
+$a->strings["mb_string PHP module"] = "module PHP mb_string";
+$a->strings["mcrypt PHP module"] = "module PHP mcrypt";
+$a->strings["Apache mod_rewrite module"] = "module Apache mod_rewrite";
+$a->strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Erreur&nbsp;: le module mod-rewrite du serveur web Apache est requis, mais pas installé.";
+$a->strings["proc_open"] = "proc_open";
+$a->strings["Error: proc_open is required but is either not installed or has been disabled in php.ini"] = "Erreur&nbsp;: proc_open est requis, mais soit n'est pas installé, soit est désactivé dans le php.ini";
+$a->strings["Error: libCURL PHP module required but not installed."] = "Erreur&nbsp;: le module libCURL de PHP est requis, mais pas installé.";
+$a->strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Erreur&nbsp;: le module GD de PHP (avec support JPEG) est requis, mais pas installé.";
+$a->strings["Error: openssl PHP module required but not installed."] = "Erreur&nbsp;: le module openssl de PHP est requis, mais pas installé.";
+$a->strings["Error: mysqli PHP module required but not installed."] = "Erreur&nbsp;: le module mysqli de PHP est requis, mais pas installé.";
+$a->strings["Error: mb_string PHP module required but not installed."] = "Erreur&nbsp;: le module mb_string de PHP est requis, mais pas installé.";
+$a->strings["Error: mcrypt PHP module required but not installed."] = "Erreur&nbsp;: le module mcrypt de PHP est requis, mais pas installé.";
+$a->strings["The web installer needs to be able to create a file called \".htconfig.php\ in the top folder of your web server and it is unable to do so."] = "L'installeur web a besoin de créer un fichier \".htconfig.php\" à la racine de votre serveur web, mais en est incapable.";
+$a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "C'est généralement lié à un problème de droits, à cause duquel le serveur web est interdit d'écriture dans le répertoire concerné - alors que votre propre utilisateur a le droit.";
+$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."] = "Au terme de cette procédure, nous vous transmettrons un texte à sauvegarder dans un fichier nommé .htconfig.php, à la racine de votre installation de Red.";
+$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Autrement, vous pouvez contourner toute cette procédure et réaliser l'installation manuellement. Merci de consulter le fichier \"install/INSTALL.txt\" pour les instructions détaillées.";
+$a->strings[".htconfig.php is writable"] = "Le fichier .htconfig.php est accessible en écriture";
+$a->strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Red utilise le moteur de template Smarty3 pour mettre son contenu en forme. Smarty3 compile ses templates vers du PHP natif pour accélérer le rendu.";
+$a->strings["In order to store these compiled templates, the web server needs to have write access to the directory view/tpl/smarty3/ under the Red top level folder."] = "Pour stocker ces templates compilées, le serveur web nécessite de pouvoir écrire dans le répertoire <racine de red>view/tpl/smarty3/.";
+$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Merci de vous assurer que l'utilisateur sous lequel le serveur web tourne (le plus souvent, www-data) a bien l'autorisation d'écrire dans ce répertoire.";
+$a->strings["Note: as a security measure, you should give the web server write access to view/tpl/smarty3/ only--not the template files (.tpl) that it contains."] = "Note&nbsp;: pour renforcer la sécurité, vous pouvez décider de ne donner l'accès en écrire qu'au répertoire view/tpl/smarty3 - et pas aux fichiers de templates (.tpl) qu'il contient.";
+$a->strings["view/tpl/smarty3 is writable"] = "view/tpl/smarty3 est accessible en écriture";
+$a->strings["Red uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder"] = "Red utilise le répertoire 'store' - situé à la racine de Red - pour sauvegarder les fichiers envoyés. Le serveur web aura donc besoin de pouvoir y écrire.";
+$a->strings["store is writable"] = "'store' est accessible en écriture";
+$a->strings["SSL certificate validation"] = "Validation du certificat SSL/TLS";
+$a->strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "Le certificat SSL/TLS n'a pas pu être validé. Merci de le corriger, ou de désactiver l'accès https à ce site.";
+$a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = "La réécriture d'URL définie dans le .htaccess ne fonctionne pas. Merci de vérifier la configuration de votre serveur web.";
+$a->strings["Url rewrite is working"] = "La réécriture d'URL fonctionne";
+$a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "Le fichier de configuration de la base de données - \".htconfig.php\" - ne peut être écrit. Merci de copier le texte généré dans un fichier à ce nom, à la racine de votre serveur web.";
+$a->strings["Errors encountered creating database tables."] = "Erreurs rencontrées pendant la création de tables de BD.";
+$a->strings["<h1>What next</h1>"] = "<h1>Et maintenant</h1>";
+$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANT&nbsp;: Vous devez créer [manuellement] une tâche planifiée pour les mises-à-jour.";
+$a->strings["Version %s"] = "Version %s";
+$a->strings["Installed plugins/addons/apps:"] = "Extensions/applications installées&nbsp;:";
+$a->strings["No installed plugins/addons/apps"] = "Aucune extension/application installée";
+$a->strings["Project Donations"] = "Donations au projet";
+$a->strings["<p>The Red Matrix is provided for you by volunteers working in their spare time. Your support will help us to build a better web. Select the following option for a one-time donation of your choosing</p>"] = "<p>The Red Matrix vous est mis à disposition par des volontaires, qui travaillent dessus sur leur temps libre. Votre soutien nous aidera à construire un meilleur web. Merci de choisir l'option suivante pour une donation ponctuelle de votre choix.</p>";
+$a->strings["<p>or</p>"] = "<p>ou bien</p>";
+$a->strings["Recurring Donation Options"] = "Options de donation récurente";
+$a->strings["Red"] = "Red";
+$a->strings["This is a hub of the Red Matrix - a global cooperative network of decentralised privacy enhanced websites."] = "Ceci est une instance - un hub - de la Matrice Red - un réseau global et coopératif de sites web qui respectent la vie privée de manière décentralisée/acentrée.";
+$a->strings["Running at web location"] = "En train de tourner chez";
+$a->strings["Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more about the Red Matrix."] = "Merci de visiter <a href=\"http://getzot.com\">GetZot.com</a> pour en apprendre davantage sur la Matrice Red.";
+$a->strings["Bug reports and issues: please visit"] = "Pour remonter bogues et problèmes, merci de visiter";
+$a->strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Suggestions, demandes, etc. - merci de vous adresser à \"redmatrix\" à librelist - point com";
+$a->strings["Site Administrators"] = "Administrateurs du site";
+$a->strings["Add a Channel"] = "Ajouter un canal";
+$a->strings["A channel is your own collection of related web pages. A channel can be used to hold social network profiles, blogs, conversation groups and forums, celebrity pages, and much more. You may create as many channels as your service provider allows."] = "Un canal est une collection de pages web reliées entre elles, sous votre contrôle. Il peut contenir des profils de réseau social, des blogs, des groupes de conversation, des forums, des pages de célébrités, et bien plus encore. Vous pouvez créer autant de canaux que votre fournisseur vous y autorise.";
+$a->strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "] = "Exemples&nbsp;: \"Bob Jameson\", \"Lisa et ses chevaux sauvages\", \"Football\", \"Groupe des amateurs de tir à l'arc\"";
+$a->strings["Choose a short nickname"] = "Choisissez un nom court";
+$a->strings["Your nickname will be used to create an easily remembered channel address (like an email address) which you can share with others."] = "Ce nom court sera utilisé pour créer une adresse de canal, facile à retenir - un peu comme une adresse de courriel - que vous pourrez partager avec d'autres.";
+$a->strings["Or <a href=\"import\">import an existing channel</a> from another location"] = "Ou <a href=\"import\">importez un canal existant</a> à un autre endroit";
+$a->strings["No valid account found."] = "Aucun compte valide trouvé.";
+$a->strings["Password reset request issued. Check your email."] = "Réinitialisation du mot de passe demandée. Vérifiez vos courriels.";
+$a->strings["Site Member (%s)"] = "Membre du site (%s)";
+$a->strings["Password reset requested at %s"] = "Demande de réinitialisation de mot de passe sur %s";
+$a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "La demande n'a pas pu être vérifiée. (Peut-être l'avez vous déjà utilisée.) La réinitialisation a échoué.";
+$a->strings["Password Reset"] = "Réinitialiser le mot de passe";
+$a->strings["Your password has been reset as requested."] = "Votre mot de passe a bien été réinitialisé.";
+$a->strings["Your new password is"] = "Votre nouveau mot de passe est";
+$a->strings["Save or copy your new password - and then"] = "Sauvez-le ou copiez-le, puis";
+$a->strings["click here to login"] = "cliquez ici pour vous connecter";
+$a->strings["Your password may be changed from the <em>Settings</em> page after successful login."] = "Votre mot de passe peut être changé depuis la page des <em>Réglages</em> une fois connecté.";
+$a->strings["Your password has changed at %s"] = "Votre mot de passe de %s a été changé";
+$a->strings["Forgot your Password?"] = "Mot de passe oublié?";
+$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Saisissez votre adresse de courriel, et validez, pour réinitialiser votre mot de passe. Vérifiez ensuite votre boîte à lettres pour la suite des instructions.";
+$a->strings["Email Address"] = "Adresse de courriel";
+$a->strings["Reset"] = "Réinitialiser";
+$a->strings["Name is required"] = "Le nom est requis";
+$a->strings["Key and Secret are required"] = "Clef et secret sont requis";
+$a->strings["Update"] = "Mise-à-jour";
+$a->strings["Passwords do not match. Password unchanged."] = "Les deux saisies du mot de passe ne correspondent pas. Il n'a donc pas été changé.";
+$a->strings["Empty passwords are not allowed. Password unchanged."] = "Le mot de passe ne peut pas être vide. Il n'a donc pas été changé.";
+$a->strings["Password changed."] = "Le mot de passe a été changé.";
+$a->strings["Password update failed. Please try again."] = "La mise-à-jour du mot de passe a échoué. Merci de recommencer.";
+$a->strings["Not valid email."] = "Adresse de courriel non-valide.";
+$a->strings["Protected email address. Cannot change to that email."] = "Adresse de courriel protégée. Impossible de l'utiliser.";
+$a->strings["System failure storing new email. Please try again."] = "Défaillance système lors du stockage de la nouvelle adresse de courriel. Merci de ré-essayer.";
+$a->strings["Settings updated."] = "Réglages sauvegardés.";
+$a->strings["Add application"] = "Ajouter une application";
+$a->strings["Name"] = "Nom";
+$a->strings["Name of application"] = "Nom de l'application";
+$a->strings["Consumer Key"] = "Clef de consommateur";
+$a->strings["Automatically generated - change if desired. Max length 20"] = "Généré automatiquement - à changer si besoin. Longueur maximale 20 caractères.";
+$a->strings["Consumer Secret"] = "Secret de consommateur";
+$a->strings["Redirect"] = "Redirection";
+$a->strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI de redirection - laissez blanc, sauf si l'application a demandé autrement";
+$a->strings["Icon url"] = "URL de l'icône";
+$a->strings["Optional"] = "Facultatif";
+$a->strings["You can't edit this application."] = "Vous ne pouvez pas éditer cette application.";
+$a->strings["Connected Apps"] = "Applications connectées";
+$a->strings["Client key starts with"] = "La clef cliente commence par";
+$a->strings["No name"] = "Sans nom";
+$a->strings["Remove authorization"] = "Révoquer l'autorisation";
+$a->strings["No feature settings configured"] = "Pas de fonctionnalité à configurer";
+$a->strings["Feature Settings"] = "Fonctionnalités";
+$a->strings["Account Settings"] = "Compte";
+$a->strings["Password Settings"] = "Mot de passe";
+$a->strings["New Password:"] = "Nouveau mot de passe&nbsp;:";
+$a->strings["Confirm:"] = "Confirmation&nbsp;:";
+$a->strings["Leave password fields blank unless changing"] = "Laissez les mots de passe vides si vous ne voulez pas les modifier";
+$a->strings["Email Address:"] = "Adresse de courriel&nbsp;:";
+$a->strings["Remove Account"] = "Supprimer le compte";
+$a->strings["Warning: This action is permanent and cannot be reversed."] = "Attention&nbsp;: cette action est permanente et irréversible.";
+$a->strings["Off"] = "Inactif";
+$a->strings["On"] = "Actif";
+$a->strings["Additional Features"] = "Fonctionnalités additionnelles";
+$a->strings["Connector Settings"] = "Connecteurs";
+$a->strings["Display Settings"] = "Affichage";
+$a->strings["Display Theme:"] = "Thème&nbsp;:";
+$a->strings["Mobile Theme:"] = "Thème mobile&nbsp;:";
+$a->strings["Update browser every xx seconds"] = "Rafraîchir le navigateur toutes les xx secondes";
+$a->strings["Minimum of 10 seconds, no maximum"] = "Minimum 10 secondes, pas de maximum";
+$a->strings["Maximum number of conversations to load at any time:"] = "Nombre maximal de conversations pouvant être chargées en même temps&nbsp;:";
+$a->strings["Maximum of 100 items"] = "100 éléments au maximum";
+$a->strings["Don't show emoticons"] = "Ne pas montrer les frimousses/émoticones";
+$a->strings["Do not view remote profiles in frames"] = "";
+$a->strings["By default open in a sub-window of your own site"] = "Par défaut, ouvrir dans une sous-fenêtre de votre propre site";
+$a->strings["Nobody except yourself"] = "Personne sauf vous";
+$a->strings["Only those you specifically allow"] = "Seulement ceux que vous autorisez spécifiquement";
+$a->strings["Anybody in your address book"] = "Tous vos contacts";
+$a->strings["Anybody on this website"] = "Tous les utilisateurs du site";
+$a->strings["Anybody in this network"] = "Tous les utilisateurs du réseau";
+$a->strings["Anybody on the internet"] = "Tout les utilisateurs d'Internet";
+$a->strings["Publish your default profile in the network directory"] = "Publier votre profil par défaut dans l'annuaire du réseau";
+$a->strings["Allow us to suggest you as a potential friend to new members?"] = "Nous autoriser à vous suggérer comme relation potentielle aux nouveaux arrivants?";
+$a->strings["or"] = "ou";
+$a->strings["Your channel address is"] = "Votre canal a pour adresse";
+$a->strings["Channel Settings"] = "Canal";
+$a->strings["Basic Settings"] = "Basique";
+$a->strings["Your Timezone:"] = "Zone de temps&nbsp;:";
+$a->strings["Default Post Location:"] = "Localisation par défaut&nbsp;:";
+$a->strings["Use Browser Location:"] = "Utiliser la localisation fournie par le navigateur&nbsp;:";
+$a->strings["Adult Content"] = "Contenu \"adulte\"";
+$a->strings["This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)"] = "Ce canal publie plus ou moins fréquemment du contenu pour adultes. (Merci d'indiquer tout contenu pour adulte ou potentiellement choquant avec le tag <em>#NSFW</em> - Not Safe For Work)";
+$a->strings["Security and Privacy Settings"] = "Sécurité et vie privée";
+$a->strings["Hide my online presence"] = "Cacher ma présence en ligne";
+$a->strings["Prevents displaying in your profile that you are online"] = "Cacher votre statut (en ligne/hors ligne) sur votre profil";
+$a->strings["Simple Privacy Settings:"] = "Réglages simples&nbsp;:";
+$a->strings["Very Public - <em>extremely permissive (should be used with caution)</em>"] = "Très public - <em>extrèmement permissif (à n'utiliser qu'en connaissance de cause)</em>";
+$a->strings["Typical - <em>default public, privacy when desired (similar to social network permissions but with improved privacy)</em>"] = "Classique - <em>public par défaut, privé en cas de besoin (comparable dans le principe aux réseaux sociaux centralisés, avec un mode privé plus efficace)</em>";
+$a->strings["Private - <em>default private, never open or public</em>"] = "Privé - <em>privé par défaut, jamais ouvert ni public</em>";
+$a->strings["Blocked - <em>default blocked to/from everybody</em>"] = "Bloqué - <em>par défaut, bloqué de/vers tout le monde</em>";
+$a->strings["Advanced Privacy Settings"] = "Réglages avancés";
+$a->strings["Maximum Friend Requests/Day:"] = "Nombre maximum de mises en relation par jour&nbsp;:";
+$a->strings["May reduce spam activity"] = "Contribue à réduire l'impact du spam";
+$a->strings["Default Post Permissions"] = "Permissions par défaut des publications";
+$a->strings["Maximum private messages per day from unknown people:"] = "Nombre maximum de messages privés émanant d'inconnus, par jour&nbsp;:";
+$a->strings["Useful to reduce spamming"] = "Utile pour réduire le spam";
+$a->strings["Notification Settings"] = "Notifications";
+$a->strings["By default post a status message when:"] = "Par défaut, publier un statut quand:";
+$a->strings["accepting a friend request"] = "acceptez une mise en relation";
+$a->strings["joining a forum/community"] = "joignez un forum ou à une communauté";
+$a->strings["making an <em>interesting</em> profile change"] = "faites une modification <em>intéressante</em> de votre profil";
+$a->strings["Send a notification email when:"] = "Envoyer un courriel de notification quand&nbsp;:";
+$a->strings["You receive an introduction"] = "Vous recevez une introduction";
+$a->strings["Your introductions are confirmed"] = "Vos introductions sont acceptées/confirmées";
+$a->strings["Someone writes on your profile wall"] = "Quelqu'un écrit sur votre mur";
+$a->strings["Someone writes a followup comment"] = "Quelqu'un commente sur vos publications";
+$a->strings["You receive a private message"] = "Vous recevez un Message Privé";
+$a->strings["You receive a friend suggestion"] = "Vous recevez une suggestion d'amitié/relation";
+$a->strings["You are tagged in a post"] = "Vous êtes étiqueté dans une publication";
+$a->strings["You are poked/prodded/etc. in a post"] = "Vous êtes tapoté/pointé/etc. dans une publication";
+$a->strings["Advanced Account/Page Type Settings"] = "Type de page/Compte (avancé)";
+$a->strings["Change the behaviour of this account for special situations"] = "Modifie le comportement de ce compte pour certains cas particuliers";
+$a->strings["Please enable expert mode (in Settings > Additional features) to adjust!"] = "Merci d'activer le mode expert (dans Réglages > Fonctionnalités additionelles) pour affiner!";
+$a->strings["Nothing to import."] = "Rien à importer.";
+$a->strings["Unable to download data from old server"] = "Impossible de récupérer les données de l'ancien serveur";
+$a->strings["Imported file is empty."] = "Le fichier importé est vide.";
+$a->strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Impossible de créer un doublon d'un identifiant de canal. L'import a échoué.";
+$a->strings["Channel clone failed. Import failed."] = "Le clonage du canal a échoué. L'import a échoué.";
+$a->strings["Cloned channel not found. Import failed."] = "Le canal cloné n'a pas été trouvé. L'import a échoué.";
+$a->strings["Import completed."] = "L'import est terminé.";
+$a->strings["You must be logged in to use this feature."] = "Vous devez vous connecter pour utiliser cette fonctionnalité.";
+$a->strings["Import Channel"] = "Importation de canal";
+$a->strings["Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file. Only identity and connections/relationships will be imported. Importation of content is not yet available."] = "Utilisez ce formulaire pour importer un canal existant sur un serveur différent. Vous pouvez récupérer l'identité du canal sur l'ancien serveur directement par le réseau, ou bien fournir un fichier d'export. Seules les données d'identité et de relations seront importées. L'importation des contenus n'est pas encore disponible.";
+$a->strings["File to Upload"] = "Fichier à envoyer";
+$a->strings["Or provide the old server/hub details"] = "Ou fournissez les détails de l'ancien serveur";
+$a->strings["Your old identity address (xyz@example.com)"] = "Votre ancienne identité (zyx@exemple.com)";
+$a->strings["Your old login email address"] = "Votre ancienne adresse de courriel";
+$a->strings["Your old login password"] = "Votre ancien mot de passe";
+$a->strings["For either option, please choose whether to make this hub your new primary address, or whether your old location should continue this role. You will be able to post from either location, but only one can be marked as the primary location for files, photos, and media."] = "Quelle que soit l'option choisie, merci de décider si cette nouvelle adresse sera la primaire, ou si votre ancienne adresse continuera à jouer ce rôle. Vous pourrez publier depuis l'adresse de votre choix, mais une seule peut être déclarée comme stockage primaire de vos fichiers/photos/media.";
+$a->strings["Make this hub my primary location"] = "Faire de cette adresse ma principale";
+$a->strings["You have created %1$.0f of %2$.0f allowed channels."] = "Vous avez créé %1$.0f des %2$.0f canaux autorisés.";
+$a->strings["Create a new channel"] = "Créer un nouveau canal";
+$a->strings["Channel Manager"] = "Gestionnaire du canal";
+$a->strings["Current Channel"] = "Canal actif";
+$a->strings["Attach to one of your channels by selecting it."] = "Branchez-vous à l'un de vos canaux en le selectionnant.";
+$a->strings["Default Channel"] = "Canal par défaut";
+$a->strings["Make Default"] = "Définir comme défaut";
+$a->strings["Total votes"] = "Suffrages exprimés";
+$a->strings["Average Rating"] = "Note moyenne";
+$a->strings["Profile Match"] = "Profils similaires";
+$a->strings["No keywords to match. Please add keywords to your default profile."] = "Aucun mot-clef à comparer. Merci d'ajouter des mots-clefs à votre profil par défaut.";
+$a->strings["is interested in:"] = "s'intéresse à&nbsp;:";
+$a->strings["No matches"] = "Pas de correspondance";
+$a->strings["invalid target signature"] = "signature de la cible invalide";
+$a->strings["Unable to lookup recipient."] = "Impossible de localiser le destinataire.";
+$a->strings["Unable to communicate with requested channel."] = "Impossible de communiquer avec le canal demandé.";
+$a->strings["Cannot verify requested channel."] = "Impossible de vérifier le canal demandé.";
+$a->strings["Selected channel has private message restrictions. Send failed."] = "Le canal choisi a des restrictions quant aux messages privés. L'envoi a échoué.";
+$a->strings["Messages"] = "Messages";
$a->strings["Message deleted."] = "Message supprimé.";
-$a->strings["Conversation removed."] = "Conversation supprimée.";
-$a->strings["Please enter a link URL:"] = "Entrez un lien web:";
-$a->strings["Send Private Message"] = "Envoyer un message privé";
-$a->strings["To:"] = "À:";
-$a->strings["Subject:"] = "Sujet:";
-$a->strings["No messages."] = "Aucun message.";
-$a->strings["Delete conversation"] = "Effacer conversation";
-$a->strings["D, d M Y - g:i A"] = "D, d M Y - g:i A";
-$a->strings["Message not available."] = "Message indisponible.";
-$a->strings["Delete message"] = "Effacer message";
-$a->strings["Send Reply"] = "Répondre";
-$a->strings["Response from remote site was not understood."] = "Réponse du site distant incomprise.";
-$a->strings["Unexpected response from remote site: "] = "Réponse inattendue du site distant: ";
-$a->strings["Confirmation completed successfully."] = "Confirmation achevée avec succès.";
-$a->strings["Remote site reported: "] = "Alerte du site distant: ";
-$a->strings["Temporary failure. Please wait and try again."] = "Échec temporaire. Merci de recommencer ultérieurement.";
-$a->strings["Introduction failed or was revoked."] = "Introduction échouée ou annulée.";
-$a->strings["Unable to set contact photo."] = "Impossible de définir la photo du contact.";
-$a->strings["%1\$s is now friends with %2\$s"] = "%1\$s est désormais lié à %2\$s";
-$a->strings["No user record found for '%s' "] = "Pas d'utilisateur trouvé pour '%s' ";
-$a->strings["Our site encryption key is apparently messed up."] = "Notre clé de chiffrement de site est apparemment corrompue.";
-$a->strings["Empty site URL was provided or URL could not be decrypted by us."] = "URL de site absente ou indéchiffrable.";
-$a->strings["Contact record was not found for you on our site."] = "Pas d'entrée pour ce contact sur notre site.";
-$a->strings["Site public key not available in contact record for URL %s."] = "La clé publique du site ne se trouve pas dans l'enregistrement du contact pour l'URL %s.";
-$a->strings["The ID provided by your system is a duplicate on our system. It should work if you try again."] = "L'identifiant fourni par votre système fait doublon sur le notre. Cela peut fonctionner si vous réessayez.";
-$a->strings["Unable to set your contact credentials on our system."] = "Impossible de vous définir des permissions sur notre système.";
-$a->strings["Unable to update your contact profile details on our system"] = "Impossible de mettre les détails de votre profil à jour sur notre système";
-$a->strings["Connection accepted at %s"] = "Connexion acceptée avec %s";
-$a->strings["Login failed."] = "Échec de connexion.";
-$a->strings["Welcome "] = "Bienvenue ";
-$a->strings["Please upload a profile photo."] = "Merci d'illustrer votre profil d'une image.";
-$a->strings["Welcome back "] = "Bienvenue à nouveau, ";
-$a->strings["%s welcomes %s"] = "%s accueille %s";
-$a->strings["View Contacts"] = "Voir les contacts";
-$a->strings["No contacts."] = "Aucun contact.";
-$a->strings["Group created."] = "Groupe créé.";
-$a->strings["Could not create group."] = "Impossible de créer le groupe.";
-$a->strings["Group not found."] = "Groupe introuvable.";
-$a->strings["Group name changed."] = "Groupe renommé.";
-$a->strings["Create a group of contacts/friends."] = "Créez un groupe de contacts/amis.";
-$a->strings["Group Name: "] = "Nom du groupe: ";
-$a->strings["Group removed."] = "Groupe enlevé.";
-$a->strings["Unable to remove group."] = "Impossible d'enlever le groupe.";
-$a->strings["Group Editor"] = "Éditeur de groupe";
-$a->strings["Members"] = "Membres";
-$a->strings["All Contacts"] = "Tout les contacts";
-$a->strings["Item not available."] = "Elément non disponible.";
-$a->strings["Item was not found."] = "Element introuvable.";
-$a->strings["Common Friends"] = "Amis communs";
-$a->strings["No friends in common."] = "Pas d'amis communs";
-$a->strings["Profile Match"] = "Correpondance de profils";
-$a->strings["No keywords to match. Please add keywords to your default profile."] = "Aucun mot-clé en correspondance. Merci d'ajouter des mots-clés à votre profil par défaut.";
+$a->strings["Message recalled."] = "Message annulé/rappelé.";
+$a->strings["Send Private Message"] = "Envoyer un Message Privé";
+$a->strings["To:"] = "À&nbsp;:";
+$a->strings["Subject:"] = "Sujet&nbsp;:";
+$a->strings["Message not found."] = "Message introuvable.";
+$a->strings["Delete message"] = "Supprimer message";
+$a->strings["Recall message"] = "Rappeler/annuler le message";
+$a->strings["Message has been recalled."] = "Le message a été rappelé.";
+$a->strings["Private Conversation"] = "Conversation privée";
+$a->strings["Delete conversation"] = "Supprimer conversation";
+$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Aucune communication sécurisée n'est possible en l'état. Vous pourrez <strong>peut-être</strong> répondre depuis la page de profil de l'émetteur.";
+$a->strings["Send Reply"] = "Envoyer une réponse";
+$a->strings["Edit Layout"] = "Éditer mise-en-page";
+$a->strings["Delete layout?"] = "Supprimer la mise-en-page?";
+$a->strings["Delete Layout"] = "Supprimer mise-en-page";
+$a->strings["Image uploaded but image cropping failed."] = "L'image a été téléversée, mais le recadrage a échoué.";
+$a->strings["Image resize failed."] = "Le retaillage de l'image a échoué.";
+$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Shirt-rechargez votre page, ou videz le cache du navigateur si la photo ne s'affiche pas immédiatement.";
+$a->strings["Image exceeds size limit of %d"] = "L'image dépasse la taille limite de %d";
+$a->strings["Unable to process image."] = "Impossible de traîter l'image.";
+$a->strings["Photo not available."] = "Photo inaccessible.";
+$a->strings["Upload File:"] = "Fichier&nbsp;:";
+$a->strings["Select a profile:"] = "Choisir un profil&nbsp;:";
+$a->strings["Upload Profile Photo"] = "Téléverser une photo de profil";
+$a->strings["Upload"] = "Envoyer";
+$a->strings["skip this step"] = "passer cette étape";
+$a->strings["select a photo from your photo albums"] = "choisir une photo dans vos albums";
+$a->strings["Crop Image"] = "Recadrer l'image";
+$a->strings["Please adjust the image cropping for optimum viewing."] = "Merci d'ajuter le cadre pour une visualisation optimale.";
+$a->strings["Done Editing"] = "J'ai terminé";
+$a->strings["Image uploaded successfully."] = "Image téléversée avec succès.";
+$a->strings["Image upload failed."] = "Le téléversement a échoué.";
+$a->strings["Image size reduction [%s] failed."] = "La réduction de taille [%s] a échoué.";
+$a->strings["Blocked"] = "Bloqué";
+$a->strings["Ignored"] = "Ignoré";
+$a->strings["Hidden"] = "Caché";
+$a->strings["Archived"] = "Archivé";
+$a->strings["All"] = "Tout";
+$a->strings["Suggest new connections"] = "Suggérer de nouvelles relations";
+$a->strings["Show pending (new) connections"] = "Voir les (nouvelles) relations en attente";
+$a->strings["Show all connections"] = "Voir toutes les relations";
+$a->strings["Unblocked"] = "Non bloquées";
+$a->strings["Only show unblocked connections"] = "Ne montrer que les relations non-bloquées";
+$a->strings["Only show blocked connections"] = "Ne montrer que les relations bloquées";
+$a->strings["Only show ignored connections"] = "Ne montrer que les relations ignorées";
+$a->strings["Only show archived connections"] = "Ne montrer que les relations archivées";
+$a->strings["Only show hidden connections"] = "Ne montrer que les relations cachées";
+$a->strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]";
+$a->strings["Edit contact"] = "Éditer contact";
+$a->strings["Search your connections"] = "Chercher parmi vos relations";
+$a->strings["Finding: "] = "Recherche&nbsp;:";
+$a->strings["Invalid request identifier."] = "Identifiant de requête invalide.";
+$a->strings["Discard"] = "Défausser";
+$a->strings["No more system notifications."] = "Pas d'autre notification du système.";
+$a->strings["System Notifications"] = "Notifications du système";
+$a->strings["Block Name"] = "Nom du bloc";
+$a->strings["Unable to find your hub."] = "Impossible de trouver votre instance.";
+$a->strings["Post successful."] = "Contribution effectuée.";
+$a->strings["Edit Webpage"] = "Éditer page web";
+$a->strings["Delete webpage?"] = "Supprimer la page web?";
+$a->strings["Delete Webpage"] = "Supprimer page web";
+$a->strings["Access to this profile has been restricted."] = "L'accès à ce profil a été restreint.";
+$a->strings["Poke/Prod"] = "Tapoter/Solliciter";
+$a->strings["poke, prod or do other things to somebody"] = "Tapoter, pointer, et autres choses à faire à quelqu'un";
+$a->strings["Recipient"] = "Destinataire";
+$a->strings["Choose what you wish to do to recipient"] = "Choisir quoi lui faire";
+$a->strings["Make this post private"] = "Rendre cette contribution privée";
+$a->strings["Insufficient permissions. Request redirected to profile page."] = "Permissions insuffisantes. Demande redirigée à la page du profil.";
$a->strings["Not available."] = "Indisponible.";
$a->strings["Community"] = "Communauté";
-$a->strings["Shared content is covered by the <a href=\"http://creativecommons.org/licenses/by/3.0/\">Creative Commons Attribution 3.0</a> license."] = "Le contenu est partagé suivant les termes de la licence <a href=\"http://creativecommons.org/licenses/by/3.0/\">Creative Commons Attribution 3.0</a>.";
-$a->strings["Post to Tumblr"] = "Publier sur Tumblr";
-$a->strings["Tumblr Post Settings"] = "Réglages de Tumblr";
-$a->strings["Enable Tumblr Post Plugin"] = "Activer l'extension Tumblr";
-$a->strings["Tumblr login"] = "Login Tumblr";
-$a->strings["Tumblr password"] = "Mot de passe Tumblr";
-$a->strings["Post to Tumblr by default"] = "Publier sur Tumblr par défaut";
-$a->strings["Post from Friendica"] = "Publier depuis Friendica";
-$a->strings["Post to Twitter"] = "Poster sur Twitter";
-$a->strings["Twitter settings updated."] = "Réglages de Twitter mis-à-jour.";
-$a->strings["Twitter Posting Settings"] = "Réglages du connecteur Twitter";
-$a->strings["No consumer key pair for Twitter found. Please contact your site administrator."] = "Pas de paire de clés pour Twitter. Merci de contacter l'administrateur du site.";
-$a->strings["At this Friendika instance the Twitter plugin was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to Twitter."] = "Sur cette instance de Friendika, le connecteur Twitter a été activé, mais vous n'avez pas encore connecté votre compte à Twitter. Pour ce faire, cliquez sur le bouton ci-dessous pour obtenir un PIN de Twitter, que vous aurez à coller dans la boîte ci-dessous. Ensuite, validez le formulaire. Seuls vos articles &lt;strong&gt;publics&lt;/strong&gt; seront postés sur Twitter.";
-$a->strings["Log in with Twitter"] = "Se connecter à Twitter";
-$a->strings["Copy the PIN from Twitter here"] = "Copier le PIN de Twitter ici";
-$a->strings["Currently connected to: "] = "Actuellement connecté à: ";
-$a->strings["If enabled all your <strong>public</strong> postings can be posted to the associated Twitter account. You can choose to do so by default (here) or for every posting separately in the posting options when writing the entry."] = "En cas d'activation, toutes vos notices <strong>publiques</strong> seront transmises au compte Twitter associé. Vous pourrez choisir de le faire par défaut (ici), ou bien pour chaque notice séparément lors de sa rédaction.";
-$a->strings["Allow posting to Twitter"] = "Autoriser la publication sur Twitter";
-$a->strings["Send public postings to Twitter by default"] = "Envoyer les éléments publics sur Twitter par défaut";
-$a->strings["Clear OAuth configuration"] = "Effacer la configuration OAuth";
-$a->strings["Consumer key"] = "Clé utilisateur";
-$a->strings["Consumer secret"] = "Secret utilisateur";
-$a->strings["Post to StatusNet"] = "Poster sur StatusNet";
-$a->strings["Please contact your site administrator.<br />The provided API URL is not valid."] = "Merci de contacter l'administrateur du site.<br />L'URL d'API fournie est invalide.";
-$a->strings["We could not contact the StatusNet API with the Path you entered."] = "Nous n'avons pas pu contacter l'API StatusNet avec le chemin saisi.";
-$a->strings["StatusNet settings updated."] = "Réglages StatusNet mis-à-jour.";
-$a->strings["StatusNet Posting Settings"] = "Réglages du connecteur StatusNet";
-$a->strings["Globally Available StatusNet OAuthKeys"] = "Clés OAuth StatusNet universelles";
-$a->strings["There are preconfigured OAuth key pairs for some StatusNet servers available. If you are useing one of them, please use these credentials. If not feel free to connect to any other StatusNet instance (see below)."] = "Ce sont des paires de clés OAuth préconfigurées pour certains serveurs StatusNet courants. Si vous utilisez l'un d'entre eux, merci de vous servir de ces clés. Autrement, vous pouvez vous connecter à n'importer quelle autre instance de StatusNet (voir ci-dessous).";
-$a->strings["Provide your own OAuth Credentials"] = "Fournissez vos propres paramètres OAuth";
-$a->strings["No consumer key pair for StatusNet found. Register your Friendika Account as an desktop client on your StatusNet account, copy the consumer key pair here and enter the API base root.<br />Before you register your own OAuth key pair ask the administrator if there is already a key pair for this Friendika installation at your favorited StatusNet installation."] = "Aucune paire de clé n'a été trouvée pour StatusNet. Inscrivez votre compte Friendika comme client bureautique sur votre compte StatusNet, puis copiez la paire de clés d'utilisateur ici et renseignez le chemin de base de l'API.&lt;br /&gt;Avant d'enregistrer votre propre paire de clés OAuth, merci de vérifier auprès de l'administrateur qu'il en existe pas déjà une pour votre fournisseur StatusNet.";
-$a->strings["OAuth Consumer Key"] = "Clé de consommateur OAuth";
-$a->strings["OAuth Consumer Secret"] = "Secret d'utilisateur OAuth";
-$a->strings["Base API Path (remember the trailing /)"] = "Chemin de base de l'API (n'oubliez pas le / final)";
-$a->strings["To connect to your StatusNet account click the button below to get a security code from StatusNet which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to StatusNet."] = "Pour vous connecter à votre compte StatusNet, cliquez sur le bouton ci-dessous pour obtenir un code de sécurité de StatusNet, que vous aurez à coller dans la boîte ci-dessous. Ensuite, validez le formulaire. Seuls vos articles &lt;strong&gt;publics&lt;/strong&gt; seront postés sur StatusNet.";
-$a->strings["Log in with StatusNet"] = "Se connecter à StatusNet";
-$a->strings["Copy the security code from StatusNet here"] = "Coller le code de sécurité de StatusNet ici";
-$a->strings["Cancel Connection Process"] = "Annuler le processus de connexion";
-$a->strings["Current StatusNet API is"] = "L'API StatusNet courante est";
-$a->strings["Cancel StatusNet Connection"] = "Annuler la connexion à StatusNet";
-$a->strings["If enabled all your <strong>public</strong> postings can be posted to the associated StatusNet account. You can choose to do so by default (here) or for every posting separately in the posting options when writing the entry."] = "En cas d'activation, toutes vos notices <strong>publiques</strong> seront transmises au compte StatusNet associé. Vous pourrez choisir de le faire par défaut (ici), ou bien pour chaque notice séparément lors de sa rédaction.";
-$a->strings["Allow posting to StatusNet"] = "Autoriser la publication sur StatusNet";
-$a->strings["Send public postings to StatusNet by default"] = "Par défaut, envoyer les notices publiques à StatusNet";
-$a->strings["API URL"] = "URL de l'API";
-$a->strings["OEmbed settings updated"] = "Réglage OEmbed mis-à-jour";
-$a->strings["Use OEmbed for YouTube videos"] = "Utiliser OEmbed pour les vidéos Youtube";
-$a->strings["URL to embed:"] = "URL à incorporer:";
-$a->strings["Three Dimensional Tic-Tac-Toe"] = "Morpion en trois dimensions";
-$a->strings["3D Tic-Tac-Toe"] = "Morpion 3D";
-$a->strings["New game"] = "Nouvelle partie";
-$a->strings["New game with handicap"] = "Nouvelle partie avec handicap";
-$a->strings["Three dimensional tic-tac-toe is just like the traditional game except that it is played on multiple levels simultaneously. "] = "Le morpion 3D, c'est comme la version traditionnelle. Sauf qu'on joue sur plusieurs étages en même temps.";
-$a->strings["In this case there are three levels. You win by getting three in a row on any level, as well as up, down, and diagonally across the different levels."] = "Dans le cas qui nous concerne, il y a trois étages. Vous gagnez en alignant trois coups dans n'importe quel étage, ainsi que verticalement ou en diagonale entre les étages.";
-$a->strings["The handicap game disables the center position on the middle level because the player claiming this square often has an unfair advantage."] = "Le handicap interdit la position centrale de l'étage du milieu, parce que le joueur qui prend cette case obtient souvent un avantage.";
-$a->strings["You go first..."] = "À vous de jouer...";
-$a->strings["I'm going first this time..."] = "Je commence...";
-$a->strings["You won!"] = "Vous avez gagné!";
-$a->strings["\"Cat\" game!"] = "Match nul!";
-$a->strings["I won!"] = "J'ai gagné!";
-$a->strings["Allow to use your friendika id (%s) to connecto to external unhosted-enabled storage (like ownCloud)"] = "Autoriser votre identifiant friendica (%s) à se connecter à un stockage compatible unhosted (ownCloud, par exemple)";
-$a->strings["Unhosted DAV storage url"] = "URL de stockage DAV d'Unhosted";
-$a->strings["Impressum"] = "Impressum";
-$a->strings["Site Owner"] = "Propriétaire du site";
-$a->strings["Email Address"] = "Adresse courriel";
-$a->strings["Postal Address"] = "Adresse postale";
-$a->strings["The impressum addon needs to be configured!<br />Please add at least the <tt>owner</tt> variable to your config file. For other variables please refer to the README file of the addon."] = "L'extension \"Impressum\" (ou <em>ours</em>) n'est pas configuré!<br />Merci d'ajouter au moins la variable <tt>owner</tt> à votre fichier de configuration. Pour les autres variables, reportez-vous au fichier README accompagnant l'extension.";
-$a->strings["Site Owners Profile"] = "Profil des propriétaires du site";
-$a->strings["Notes"] = "Notes";
-$a->strings["Facebook disabled"] = "Connecteur Facebook désactivé";
-$a->strings["Updating contacts"] = "Mise-à-jour des contacts";
-$a->strings["Facebook API key is missing."] = "Clé d'API Facebook manquante.";
-$a->strings["Facebook Connect"] = "Connecteur Facebook";
-$a->strings["Install Facebook connector for this account."] = "Installer le connecteur Facebook sur ce compte.";
-$a->strings["Remove Facebook connector"] = "Désinstaller le connecteur Facebook";
-$a->strings["Re-authenticate [This is necessary whenever your Facebook password is changed.]"] = "Se ré-authentifier [nécessaire chaque fois que vous changez votre mot de passe Facebook.]";
-$a->strings["Post to Facebook by default"] = "Poster sur Facebook par défaut";
-$a->strings["Link all your Facebook friends and conversations on this website"] = "Lier tous vos amis et conversations Facebook sur ce site";
-$a->strings["Facebook conversations consist of your <em>profile wall</em> and your friend <em>stream</em>."] = "Les conversations Facebook se composent du <em>mur du profil</em> et des <em>flux</em> de vos amis.";
-$a->strings["On this website, your Facebook friend stream is only visible to you."] = "Sur ce site, les flux de vos amis Facebook ne sont visibles que par vous.";
-$a->strings["The following settings determine the privacy of your Facebook profile wall on this website."] = "Les réglages suivants déterminent le niveau de vie privée de votre mur Facebook depuis ce site.";
-$a->strings["On this website your Facebook profile wall conversations will only be visible to you"] = "Sur ce site, les conversations de votre mur Facebook ne sont visibles que par vous.";
-$a->strings["Do not import your Facebook profile wall conversations"] = "Ne pas importer les conversations de votre mur Facebook.";
-$a->strings["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 website and your privacy settings on this website will be used to determine who may see the conversations."] = "Si vous choisissez de lier les conversations et de laisser ces deux cases non-cochées, votre mur Facebook sera fusionné avec votre mur de profil (sur ce site). Vos réglages (locaux) de vie privée serviront à en déterminer la visibilité.";
-$a->strings["Facebook"] = "Facebook";
-$a->strings["Facebook Connector Settings"] = "Réglages du connecteur Facebook";
-$a->strings["Post to Facebook"] = "Poster sur Facebook";
-$a->strings["Post to Facebook cancelled because of multi-network access permission conflict."] = "Publication sur Facebook annulée pour cause de conflit de permissions inter-réseaux.";
-$a->strings["Image: "] = "Image: ";
-$a->strings["View on Friendika"] = "Voir sur Friendica";
-$a->strings["Facebook post failed. Queued for retry."] = "Publication sur Facebook échouée. En attente pour re-tentative.";
-$a->strings["Generate new key"] = "Générer une nouvelle clé";
-$a->strings["Widgets key"] = "Clé des widgets";
-$a->strings["Widgets available"] = "Widgets disponibles";
-$a->strings["Connect on Friendika!"] = "Se connecter à Friendica!";
-$a->strings["%d person likes this"] = array(
- 0 => "%d personne aime ça",
- 1 => "%d personnes aiment ça",
-);
-$a->strings["%d person doesn't like this"] = array(
- 0 => "%d personne n'aime pas ça",
- 1 => "%d personnes n'aiment pas ça",
-);
-$a->strings["Report Bug"] = "Signaler un bug";
-$a->strings["\"Not Safe For Work\" Settings"] = "Réglages de \"Not Safe For Work\"";
-$a->strings["Comma separated words to treat as NSFW"] = "Liste de mots à considérer comme NSFW. Séparés par des virgules.";
-$a->strings["NSFW Settings saved."] = "Réglages NSFW sauvegardés.";
-$a->strings["%s - Click to open/close"] = "%s - cliquer pour ouvrir/fermer";
-$a->strings["OpenID"] = "OpenID";
-$a->strings["Last users"] = "Derniers utilisateurs";
-$a->strings["Most active users"] = "Utilisateurs les plus actifs";
-$a->strings["Last photos"] = "Dernières photos";
-$a->strings["Last likes"] = "Dernièrement aimé";
-$a->strings["event"] = "évènement";
-$a->strings[" - Member since: %s"] = " - Membre depuis: %s";
-$a->strings["Randplace Settings"] = "Réglages de Randplace";
-$a->strings["Enable Randplace Plugin"] = "Activer l'extension Randplace";
-$a->strings["This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> analytics tool."] = "Ce site collecte ses statistiques grâce à <a href='http://www.piwik.org'>Piwik</a>.";
-$a->strings["If you do not want that your visits are logged this way you <a href='%s'>can set a cookie to prevent Piwik from tracking further visits of the site</a> (opt-out)."] = "Si vous ne voulez pas que vos visites soient collectées par ce biais, vous <a href='%s'>pouvez activer un cookie qui empêchera Piwik de tenir compte de vos visites ultérieures</a> (opt-out).";
-$a->strings["Piwik Base URL"] = "URL de base de Piwik";
-$a->strings["Site ID"] = "ID du site";
-$a->strings["Show opt-out cookie link?"] = "Montrer le lien d'opt-out?";
-$a->strings["Upload a file"] = "Téléverser un fichier";
-$a->strings["Drop files here to upload"] = "Déposer des fichiers ici pour les téléverser";
-$a->strings["Failed"] = "Échec";
-$a->strings["No files were uploaded."] = "Aucun fichier n'a été téléversé.";
-$a->strings["Uploaded file is empty"] = "Le fichier téléversé est vide";
-$a->strings["File has an invalid extension, it should be one of "] = "Le fichier a une extension invalide, elle devrait être parmi ";
-$a->strings["Upload was cancelled, or server error encountered"] = "Téléversement annulé, ou erreur de serveur";
-$a->strings["Post to Wordpress"] = "Poster sur WordPress";
-$a->strings["WordPress Post Settings"] = "Réglages WordPress";
-$a->strings["Enable WordPress Post Plugin"] = "Activer l'extension WordPress";
-$a->strings["WordPress username"] = "Utilisateur WordPress";
-$a->strings["WordPress password"] = "Mot de passe WordPress";
-$a->strings["WordPress API URL"] = "URL de l'API WordPress";
-$a->strings["Post to WordPress by default"] = "Publier sur WordPress par défaut";
-$a->strings["(no subject)"] = "(sans titre)";
-$a->strings["Unknown | Not categorised"] = "Inconnu | Non-classé";
-$a->strings["Block immediately"] = "Bloquer immédiatement";
-$a->strings["Shady, spammer, self-marketer"] = "Douteux, spammeur, accro à l'auto-promotion";
-$a->strings["Known to me, but no opinion"] = "Connu de moi, mais sans opinion";
-$a->strings["OK, probably harmless"] = "OK, probablement inoffensif";
-$a->strings["Reputable, has my trust"] = "Réputé, a toute ma confiance";
-$a->strings["Frequently"] = "Fréquemment";
-$a->strings["Hourly"] = "Toutes les heures";
-$a->strings["Twice daily"] = "Deux fois par jour";
-$a->strings["Daily"] = "Chaque jour";
-$a->strings["Weekly"] = "Chaque semaine";
-$a->strings["Monthly"] = "Chaque mois";
-$a->strings["OStatus"] = "OStatus";
-$a->strings["RSS/Atom"] = "RSS/Atom";
-$a->strings["Zot!"] = "Zot!";
-$a->strings["Male"] = "Masculin";
-$a->strings["Female"] = "Féminin";
-$a->strings["Currently Male"] = "Actuellement masculin";
-$a->strings["Currently Female"] = "Actuellement féminin";
-$a->strings["Mostly Male"] = "Principalement masculin";
-$a->strings["Mostly Female"] = "Principalement féminin";
-$a->strings["Transgender"] = "Transgenre";
-$a->strings["Intersex"] = "Inter-sexe";
-$a->strings["Transsexual"] = "Transsexuel";
-$a->strings["Hermaphrodite"] = "Hermaphrodite";
-$a->strings["Neuter"] = "Neutre";
-$a->strings["Non-specific"] = "Non-spécifique";
-$a->strings["Other"] = "Autre";
-$a->strings["Undecided"] = "Indécis";
-$a->strings["Males"] = "Hommes";
-$a->strings["Females"] = "Femmes";
-$a->strings["Gay"] = "Gay";
-$a->strings["Lesbian"] = "Lesbienne";
-$a->strings["No Preference"] = "Sans préférence";
-$a->strings["Bisexual"] = "Bisexuel";
-$a->strings["Autosexual"] = "Auto-sexuel";
-$a->strings["Abstinent"] = "Abstinent";
-$a->strings["Virgin"] = "Vierge";
-$a->strings["Deviant"] = "Déviant";
-$a->strings["Fetish"] = "Fétichiste";
-$a->strings["Oodles"] = "Oodles";
-$a->strings["Nonsexual"] = "Non-sexuel";
-$a->strings["Single"] = "Célibataire";
-$a->strings["Lonely"] = "Esseulé";
-$a->strings["Available"] = "Disponible";
-$a->strings["Unavailable"] = "Indisponible";
-$a->strings["Dating"] = "Dans une relation";
-$a->strings["Unfaithful"] = "Infidèle";
-$a->strings["Sex Addict"] = "Accro au sexe";
-$a->strings["Friends"] = "Amis";
-$a->strings["Friends/Benefits"] = "Amis par intérêt";
-$a->strings["Casual"] = "Casual";
-$a->strings["Engaged"] = "Fiancé";
-$a->strings["Married"] = "Marié";
-$a->strings["Partners"] = "Partenaire";
-$a->strings["Cohabiting"] = "En cohabitation";
-$a->strings["Happy"] = "Heureux";
-$a->strings["Not Looking"] = "Sans recherche";
-$a->strings["Swinger"] = "Échangiste";
-$a->strings["Betrayed"] = "Trahi(e)";
-$a->strings["Separated"] = "Séparé";
-$a->strings["Unstable"] = "Instable";
-$a->strings["Divorced"] = "Divorcé";
-$a->strings["Widowed"] = "Veuf/Veuve";
-$a->strings["Uncertain"] = "Incertain";
-$a->strings["Complicated"] = "Compliqué";
-$a->strings["Don't care"] = "S'en désintéresse";
-$a->strings["Ask me"] = "Me demander";
-$a->strings["Starts:"] = "Débute:";
-$a->strings["Finishes:"] = "Finit:";
-$a->strings["Visible to everybody"] = "Visible par tout le monde";
-$a->strings["show"] = "montrer";
-$a->strings["don't show"] = "ne pas montrer";
-$a->strings["Logged out."] = "Déconnecté.";
-$a->strings["Image/photo"] = "Image/photo";
-$a->strings["From: "] = "De: ";
-$a->strings["View status"] = "Voir le statut";
-$a->strings["View profile"] = "Voir le profil";
-$a->strings["View photos"] = "Voir les photos";
-$a->strings["View recent"] = "Voir nouveautés";
-$a->strings["Send PM"] = "Envoyer message privé";
-$a->strings["Miscellaneous"] = "Divers";
-$a->strings["year"] = "an";
-$a->strings["month"] = "mois";
-$a->strings["day"] = "jour";
-$a->strings["never"] = "jamais";
-$a->strings["less than a second ago"] = "il y a moins d'une seconde";
-$a->strings["years"] = "ans";
-$a->strings["months"] = "mois";
-$a->strings["week"] = "semaine";
-$a->strings["weeks"] = "semaines";
-$a->strings["days"] = "jours";
-$a->strings["hour"] = "heure";
-$a->strings["hours"] = "heures";
-$a->strings["minute"] = "minute";
-$a->strings["minutes"] = "minutes";
-$a->strings["second"] = "seconde";
-$a->strings["seconds"] = "secondes";
-$a->strings[" ago"] = " auparavant";
-$a->strings["Birthday:"] = "Anniversaire:";
-$a->strings["j F, Y"] = "j F, Y";
-$a->strings["j F"] = "j F";
-$a->strings["Age:"] = "Age:";
-$a->strings["Religion:"] = "Religion:";
-$a->strings["About:"] = "À propos:";
-$a->strings["Hobbies/Interests:"] = "Passe-temps/Centres d'intérêt:";
-$a->strings["Contact information and Social Networks:"] = "Coordonées/Réseaux sociaux:";
-$a->strings["Musical interests:"] = "Goûts musicaux:";
-$a->strings["Books, literature:"] = "Lectures:";
-$a->strings["Television:"] = "Télévision:";
-$a->strings["Film/dance/culture/entertainment:"] = "Cinéma/Danse/Culture/Divertissement:";
-$a->strings["Love/Romance:"] = "Amour/Romance:";
-$a->strings["Work/employment:"] = "Activité professionnelle/Occupation:";
-$a->strings["School/education:"] = "Études/Formation:";
-$a->strings["prev"] = "précédent";
-$a->strings["first"] = "premier";
-$a->strings["last"] = "dernier";
-$a->strings["next"] = "suivant";
-$a->strings["No contacts"] = "Aucun contact";
-$a->strings["%d Contact"] = array(
- 0 => "%d contact",
- 1 => "%d contacts",
-);
-$a->strings["Search"] = "Recherche";
-$a->strings["Monday"] = "Lundi";
-$a->strings["Tuesday"] = "Mardi";
-$a->strings["Wednesday"] = "Mercredi";
-$a->strings["Thursday"] = "Jeudi";
-$a->strings["Friday"] = "Vendredi";
-$a->strings["Saturday"] = "Samedi";
-$a->strings["Sunday"] = "Dimanche";
-$a->strings["January"] = "Janvier";
-$a->strings["February"] = "Février";
-$a->strings["March"] = "Mars";
-$a->strings["April"] = "Avril";
-$a->strings["May"] = "Mai";
-$a->strings["June"] = "Juin";
-$a->strings["July"] = "Juillet";
-$a->strings["August"] = "Août";
-$a->strings["September"] = "Septembre";
-$a->strings["October"] = "Octobre";
-$a->strings["November"] = "Novembre";
-$a->strings["December"] = "Décembre";
-$a->strings["bytes"] = "octets";
-$a->strings["Select an alternate language"] = "Choisir une langue alternative";
-$a->strings["default"] = "défaut";
-$a->strings["End this session"] = "Mettre fin à cette session";
-$a->strings["Your posts and conversations"] = "Vos notices et conversations";
-$a->strings["Your profile page"] = "Votre page de profil";
-$a->strings["Your photos"] = "Vos photos";
-$a->strings["Your events"] = "Vos événements";
-$a->strings["Personal notes"] = "Notes personnelles";
-$a->strings["Your personal photos"] = "Vos photos personnelles";
-$a->strings["Sign in"] = "Se connecter";
-$a->strings["Home Page"] = "Page d'accueil";
-$a->strings["Create an account"] = "Créer un compte";
-$a->strings["Help and documentation"] = "Aide et documentation";
-$a->strings["Apps"] = "Applications";
-$a->strings["Addon applications, utilities, games"] = "Applications supplémentaires, utilitaires, jeux";
-$a->strings["Search site content"] = "Rechercher dans le contenu du site";
-$a->strings["Conversations on this site"] = "Conversations ayant cours sur ce site";
-$a->strings["Directory"] = "Annuaire";
-$a->strings["People directory"] = "Annuaire des utilisateurs";
-$a->strings["Conversations from your friends"] = "Conversations de vos amis";
-$a->strings["Friend Requests"] = "Demande d'amitié";
-$a->strings["Private mail"] = "Messages privés";
-$a->strings["Manage"] = "Gérer";
-$a->strings["Manage other pages"] = "Gérer les autres pages";
-$a->strings["Manage/edit friends and contacts"] = "Gérer/éditer les amitiés et contacts";
-$a->strings["Admin"] = "Admin";
-$a->strings["Site setup and configuration"] = "Démarrage et configuration du site";
-$a->strings["Nothing new here"] = "Rien de neuf ici";
-$a->strings["Select"] = "Sélectionner";
-$a->strings["View %s's profile @ %s"] = "Voir le profil de %s @ %s";
-$a->strings["%s from %s"] = "%s de %s";
-$a->strings["View in context"] = "Voir dans le contexte";
-$a->strings["See all %d comments"] = "Voir les %d commentaires";
-$a->strings["like"] = "aime";
-$a->strings["dislike"] = "n'aime pas";
-$a->strings["Share this"] = "Partager ça";
-$a->strings["share"] = "partager";
-$a->strings["add star"] = "mett en avant";
-$a->strings["remove star"] = "ne plus mettre en avant";
-$a->strings["toggle star status"] = "mettre en avant";
-$a->strings["starred"] = "mis en avant";
-$a->strings["add tag"] = "ajouter un tag";
-$a->strings["to"] = "à";
-$a->strings["Wall-to-Wall"] = "Inter-mur";
-$a->strings["via Wall-To-Wall:"] = "en Inter-mur:";
-$a->strings["Delete Selected Items"] = "Supprimer les éléments sélectionnés";
-$a->strings["%s likes this."] = "%s aime ça.";
-$a->strings["%s doesn't like this."] = "%s n'aime pas ça.";
-$a->strings["<span %1\$s>%2\$d people</span> like this."] = "<span %1\$s>%2\$d personnes</span> aiment ça.";
-$a->strings["<span %1\$s>%2\$d people</span> don't like this."] = "<span %1\$s>%2\$d personnes</span> n'aiment pas ça.";
-$a->strings["and"] = "et";
-$a->strings[", and %d other people"] = ", et %d autres personnes";
-$a->strings["%s like this."] = "%s aiment ça.";
-$a->strings["%s don't like this."] = "%s n'aiment pas ça.";
-$a->strings["Visible to <strong>everybody</strong>"] = "Visible par <strong>tout le monde</strong>";
-$a->strings["Please enter a video link/URL:"] = "Entrez un lien/URL video :";
-$a->strings["Please enter an audio link/URL:"] = "Entrez un lien/URL audio :";
-$a->strings["Tag term:"] = "Tag : ";
-$a->strings["Where are you right now?"] = "Où êtes-vous présentemment?";
-$a->strings["Enter a title for this item"] = "Saisissez un titre pour cet élément";
-$a->strings["Insert video link"] = "Insérer un lien video";
-$a->strings["Insert audio link"] = "Insérer un lien audio";
-$a->strings["Set title"] = "Définir un titre";
-$a->strings["view full size"] = "voir en pleine taille";
-$a->strings["image/photo"] = "image/photo";
-$a->strings["Cannot locate DNS info for database server '%s'"] = "Impossible de localiser les informations DNS pour le serveur de base de données '%s'";
-$a->strings["Add New Contact"] = "Ajouter un nouveau contact";
-$a->strings["Enter address or web location"] = "Entrez son adresse ou sa localisation web";
-$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Exemple: bob@example.com, http://example.com/barbara";
-$a->strings["Invite Friends"] = "Inviter des amis";
-$a->strings["%d invitation available"] = array(
- 0 => "%d invitation disponible",
- 1 => "%d invitations disponibles",
-);
-$a->strings["Find People"] = "Trouver des personnes";
-$a->strings["Enter name or interest"] = "Entrez un nom ou un centre d'intérêt";
-$a->strings["Connect/Follow"] = "Connecter/Suivre";
-$a->strings["Examples: Robert Morgenstein, Fishing"] = "Exemples: Robert Morgenstein, Pêche";
-$a->strings["Similar Interests"] = "Intérêts similaires";
-$a->strings["New mail received at "] = "Nouvel email reçu à ";
-$a->strings["A new person is sharing with you at "] = "Une nouvelle personne partage avec vous à ";
-$a->strings["You have a new follower at "] = "Vous avez un nouvel abonné à ";
-$a->strings["[no subject]"] = "[pas de sujet]";
-$a->strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Un groupe supprimé a été recréé. Les permissions existantes <strong>pourraient</strong> s'appliquer à ce groupe et aux futurs membres. Si ce n'est pas le comportement attendu, merci de re-créer un autre groupe sous un autre nom.";
-$a->strings["Create a new group"] = "Créer un nouveau groupe";
-$a->strings["Everybody"] = "Tout le monde";
-$a->strings["Sharing notification from Diaspora network"] = "Notification de partage du réseau Diaspora";
-$a->strings["Attachments:"] = "Pièces jointes : ";
-$a->strings["[Relayed] Comment authored by %s from network %s"] = "[Relayé] Commentaire de %s sur le réseau %s";
-$a->strings["Embedded content"] = "Contenu incorporé";
-$a->strings["Embedding disabled"] = "Incorporation désactivée";
+$a->strings["No results."] = "Aucun résultat.";
+$a->strings["Contact not found."] = "Contact introuvable.";
+$a->strings["Friend suggestion sent."] = "Suggestion d'amitié/relation envoyée.";
+$a->strings["Suggest Friends"] = "Suggérer une relation";
+$a->strings["Suggest a friend for %s"] = "Suggérer une relation à %s";
+$a->strings["Edit Block"] = "Éditer bloc";
+$a->strings["Delete block?"] = "Supprimer le bloc?";
+$a->strings["Delete Block"] = "Supprimer bloc";
+$a->strings["Status: "] = "État&nbsp;:";
+$a->strings["Sexual Preference: "] = "Orientation sexuelle&nbsp;:";
+$a->strings["Homepage: "] = "Site web&nbsp;:";
+$a->strings["Hometown: "] = "Ville natale&nbsp;:";
+$a->strings["About: "] = "À propos&nbsp;:";
+$a->strings["Keywords: "] = "Mots-clefs&nbsp;:";
+$a->strings["Permission Denied."] = "Permission refusée.";
+$a->strings["File not found."] = "Fichier introuvable.";
+$a->strings["Edit file permissions"] = "Éditer les permissions du fichier";
+$a->strings["Permissions"] = "Permissions";
+$a->strings["Include all files and sub folders"] = "Inclure tous fichiers et sous-répertoires";
+$a->strings["Return to file list"] = "Retourner à la liste des fichiers";
+$a->strings["Copy/paste this code to attach file to a post"] = "Copiez/collez ce code pour joindre le fichier à une publication";
+$a->strings["Copy/paste this URL to link file from a web page"] = "Copiez/collez cette URL pour lier le fichier depuis une page web";
+$a->strings["Download"] = "Télécharger";
+$a->strings["Used: "] = "Utilisé&nbsp;:";
+$a->strings["[directory]"] = "[répertoire]";
+$a->strings["Limit: "] = "Limite&nbsp;:";
+$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Pas de suggestions pour l'instant. Si le site est récent, merci de re-tenter dans 24 heures.";
+$a->strings["Conversation removed."] = "Conversation supprimée.";
+$a->strings["No messages."] = "Pas de message.";
+$a->strings["D, d M Y - g:i A"] = "D d Y - H:i";
+$a->strings["Public Sites"] = "Sites publics";
+$a->strings["The listed sites allow public registration into the Red Matrix. All sites in the matrix are interlinked so membership on any of them conveys membership in the matrix as a whole. Some sites may require subscription or provide tiered service plans. The provider links <strong>may</strong> provide additional details."] = "Les sites listés autorisent l'inscription pour tous. Tous sont liés entre eux, de manière à ce qu'un compte sur un seul d'entre eux soit valable sur l'ensemble de la matrice. Certains sites peuvent demander des frais de souscriptions, ou fournir des forfaits ajustés. Le lien \"fournisseur\" <strong>peut</strong> vous donner des détails supplémentaires.";
+$a->strings["Site URL"] = "URL du site";
+$a->strings["Access Type"] = "Type d'accès";
+$a->strings["Registration Policy"] = "Politique d'inscription";
+$a->strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Nombre d'inscriptions quotidiennes dépassé. Merci de recommencer demain.";
+$a->strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Merci d'indiquer votre adhésion aux Règles du Service. L'inscription a échoué.";
+$a->strings["Passwords do not match."] = "Les mots de passe ne concordent pas.";
+$a->strings["Registration successful. Please check your email for validation instructions."] = "Inscription réussie. Merci de vérifier vos courriels pour valider votre compte.";
+$a->strings["Your registration is pending approval by the site owner."] = "Votre inscription est en attente de l'approbation d'un administrateur.";
+$a->strings["Your registration can not be processed."] = "Votre inscription ne peut être traîtée.";
+$a->strings["Registration on this site/hub is by approval only."] = "L'inscription sur cette instance/ce site est soumis à une modération.";
+$a->strings["<a href=\"pubsites\">Register at another affiliated site/hub</a>"] = "<a href=\"pubsites\">S'inscrire sur un site/hub affilié</a>";
+$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Ce site a dépassé le nombre de création de compte autorisé par jour. Merci de recommencer demain.";
+$a->strings["Terms of Service"] = "les Règles du Service";
+$a->strings["I accept the %s for this website"] = "J'accepte %s de ce site";
+$a->strings["I am over 13 years of age and accept the %s for this website"] = "J'ai treize (13) ans révolus, et j'accepte %s de ce site";
+$a->strings["Membership on this site is by invitation only."] = "L'inscription à ce site se fait uniquement sur invitation.";
+$a->strings["Please enter your invitation code"] = "Merci de saisir votre code d'invitation";
+$a->strings["Your email address"] = "Votre adresse de courriel";
+$a->strings["Choose a password"] = "Choisissez un mot de passe";
+$a->strings["Please re-enter your password"] = "Confirmez-le";
+$a->strings["Please login."] = "Merci de vous connecter.";
+$a->strings["Remove This Channel"] = "Supprimer ce canal";
+$a->strings["This will completely remove this channel from the network. Once this has been done it is not recoverable."] = "Ceci effacera complètement le canal du réseau. Une fois effacé, un canal ne PEUT PAS être récupéré.";
+$a->strings["Please enter your password for verification:"] = "Merci de re-saisir votre mot de passe pour vérification&nbsp;:";
+$a->strings["Remove this channel and all its clones from the network"] = "Supprimer ce canal ainsi que tous ses clones de par le réseau";
+$a->strings["By default only the instance of the channel located on this hub will be removed from the network"] = "Par défaut, seule l'instance du canal présente sur ce hub sera supprimée du réseau";
+$a->strings["Remove Channel"] = "Enlever le canal";
+$a->strings["Page owner information could not be retrieved."] = "Impossible d'obtenir des informations sur le propriétaire de la page.";
+$a->strings["Album not found."] = "Album introuvable.";
+$a->strings["Delete Album"] = "Supprimer album";
+$a->strings["Delete Photo"] = "Supprimer photo";
+$a->strings["No photos selected"] = "Aucune photo selectionnée";
+$a->strings["Access to this item is restricted."] = "L'accès à l'élément est restreint.";
+$a->strings["You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."] = "Vous avez utilisé %1$.2f mégaoctets sur les %2$.2f autorisés pour le stockage des photos.";
+$a->strings["You have used %1$.2f Mbytes of photo storage."] = "Vous avez utilisé %1$.2f mégaoctets pour le stockage des photos.";
+$a->strings["Upload Photos"] = "Téléverser des photos";
+$a->strings["New album name: "] = "Créer un album&nbsp;:";
+$a->strings["or existing album name: "] = "ou choisir un album existant&nbsp;:";
+$a->strings["Do not show a status post for this upload"] = "Ne pas publier de statut pour cet envoi";
+$a->strings["Contact Photos"] = "Photos de contact";
+$a->strings["Edit Album"] = "Éditer l'album";
+$a->strings["Show Newest First"] = "Ordre anté-chronologique";
+$a->strings["Show Oldest First"] = "Ordre chronologique";
+$a->strings["View Photo"] = "Voir photo";
+$a->strings["Permission denied. Access to this item may be restricted."] = "Permission refusée. L'accès à cet élément peut avoir été restreint.";
+$a->strings["Photo not available"] = "Photo indisponible";
+$a->strings["Use as profile photo"] = "Utiliser comme photo du profil";
+$a->strings["View Full Size"] = "Voir en taille réelle";
+$a->strings["Edit photo"] = "Éditer photo";
+$a->strings["Rotate CW (right)"] = "Rotation horaire (droite)";
+$a->strings["Rotate CCW (left)"] = "Rotation anti-horaire (gauche)";
+$a->strings["New album name"] = "Nouveau nom d'album&nbsp;:";
+$a->strings["Caption"] = "Titre/légende";
+$a->strings["Add a Tag"] = "Ajouter une étiquette";
+$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Exemple&nbsp;: @bob, @Barbara_Jensen, @jim@exemple.com, #Ile_de_France, #marathon";
+$a->strings["In This Photo:"] = "Dans cette photo&nbsp;:";
+$a->strings["View Album"] = "Voir album";
+$a->strings["Recent Photos"] = "Photos récentes";
+$a->strings["Mood"] = "Humeur";
+$a->strings["Set your current mood and tell your friends"] = "Indiquez votre humeur du moment à vos amis";
+$a->strings["sent you a private message"] = "vous a envoyé un message privé";
+$a->strings["added your channel"] = "a ajouté votre canal";
+$a->strings["posted an event"] = "a publié un événement";
+$a->strings["Scheme Default"] = "Schéma de couleur par défaut";
+$a->strings["silver"] = "argent";
+$a->strings["Theme settings"] = "Réglages du thème";
+$a->strings["Set scheme"] = "Définir la palette de couleurs";
+$a->strings["Navigation bar colour"] = "Couleur de la barre de navigation";
+$a->strings["link colour"] = "couleur des liens";
+$a->strings["Set font-colour for banner"] = "Définir la couleur du texte de la bannière";
+$a->strings["Set the background colour"] = "Définir la couleur d'arrière-plan";
+$a->strings["Set the background image"] = "Définir l'image d'arrière-plan";
+$a->strings["Set the background colour of items"] = "Définir la couleur de fond des contributions";
+$a->strings["Set the opacity of items"] = "Définir l'opacité des contributions";
+$a->strings["Set the basic colour for item icons"] = "Définir la couleur de base pour les icônes des éléments";
+$a->strings["Set the hover colour for item icons"] = "Définir la couleur de survol des icônes des éléments";
+$a->strings["Set font-size for the entire application"] = "Définir la taille de police pour l'application entière";
+$a->strings["Set font-size for posts and comments"] = "Définir font-size pour contribution et commentaires";
+$a->strings["Set font-colour for posts and comments"] = "Définir font-colour pour les contributions et commentaires";
+$a->strings["Set radius of corners"] = "Définir le rayon des arrondis";
+$a->strings["Set shadow depth of photos"] = "Définir la profondeur de l'ombre des photos";
+$a->strings["Set maximum width of conversation regions"] = "Définir la largeur maximale des conversations";
+$a->strings["Set minimum opacity of nav bar - to hide it"] = "Définir l'opacité minimum du bandeau de navigation - pour le cacher";
+$a->strings["Set size of conversation author photo"] = "Définir la taille de la photo de l'auteur d'une conversation";
+$a->strings["Set size of followup author photos"] = "Définir la taille de la photo de l'auteur d'une réponse";
+$a->strings["Sloppy photo albums"] = "Albums photo \"en biais\"";
+$a->strings["Are you a clean desk or a messy desk person?"] = "Vous êtes plutôt \"bureau bien rangé\" ou \"gros foutoir\"?";
+$a->strings["Schema Default"] = "Palette par défaut";
+$a->strings["Sans-Serif"] = "Sans empâtements";
+$a->strings["Monospace"] = "Châsse fixe";
+$a->strings["Set font face"] = "Définir la fonte";
+$a->strings["Set iconset"] = "Définir le jeu d'icônes";
+$a->strings["Set big shadow size, default 15px 15px 15px"] = "Définir la taille des grandes ombres, par défaut 15px 15px 15px";
+$a->strings["Set small shadow size, default 5px 5px 5px"] = "Définir la taille des petites ombres, par défaut 5px 5px 5px";
+$a->strings["Set shadow colour, default #000"] = "Définir la couleur des ombres, par défaut #000";
+$a->strings["Set radius size, default 5px"] = "Définir le rayon des arrondis, par défaut 5px";
+$a->strings["Set line-height for posts and comments"] = "Définir line-height pour contributions et commentaires";
+$a->strings["Set background image"] = "Définir l'image d'arrière-plan";
+$a->strings["Set background colour"] = "Définir la couleur d'arrière-plan";
+$a->strings["Set section background image"] = "Définir l'image d'arrière-plan des sections";
+$a->strings["Set section background colour"] = "Définir la couleur d'arrière-plan des sections";
+$a->strings["Set colour of items - use hex"] = "Définir la couleur des éléments - en héxadécimal";
+$a->strings["Set colour of links - use hex"] = "Définir la couleur des liens - en héxadécimal";
+$a->strings["Set max-width for items. Default 400px"] = "Définir la largeur maximal des éléments. Par défaut, 400px";
+$a->strings["Set min-width for items. Default 240px"] = "Définir la largeur minimale des éléments. Par défaut, 240px";
+$a->strings["Set the generic content wrapper width. Default 48%"] = "Définir la largeur du contenu. Par défaut, 48%";
+$a->strings["Set colour of fonts - use hex"] = "Définir la couleur des fontes - en héxadécimal";
+$a->strings["Set background-size element"] = "Définir background-size pour les éléments";
+$a->strings["Item opacity"] = "Opacité des éléments";
+$a->strings["Display post previews only"] = "Afficher seulement l'aperçu des contributions";
+$a->strings["Display side bar on channel page"] = "Afficher le panneau latéral sur la page du canal";
+$a->strings["Colour of the navigation bar"] = "Couleur de la barre de navigation";
+$a->strings["Item float"] = "Alignement de l'élément";
+$a->strings["Left offset of the section element"] = "Décalage gauche de l'élément section";
+$a->strings["Right offset of the section element"] = "Décalage droit de l'élément section";
+$a->strings["Section width"] = "Largeur de la section";
+$a->strings["Left offset of the aside"] = "Décalage gauche du panneau latéral";
+$a->strings["Right offset of the aside element"] = "Décalage droit du panneau latéral";
+$a->strings["None"] = "Aucun(e)";
+$a->strings["Header image"] = "Têtière";
+$a->strings["Header image only on profile pages"] = "Têtière seulement sur les profils";
+$a->strings["Update %s failed. See error logs."] = "La mise-à-jour %s a échoué. Merci de consulter les journaux d'erreur.";
+$a->strings["Update Error at %s"] = "Erreur de mise-à-jour sur %s";
+$a->strings["Create an account to access services and applications within the Red Matrix"] = "Créez un compte pour pouvoir accéder aux services et applications de la Matrice Red";
+$a->strings["Password"] = "Mot de passe";
+$a->strings["Remember me"] = "Se souvenir de moi";
+$a->strings["Forgot your password?"] = "Mot de passe oublié?";
+$a->strings["permission denied"] = "permission refusée";
+$a->strings["Got Zot?"] = "T'as Zot?";
+$a->strings["toggle mobile"] = "(dés)activer mobile";
diff --git a/view/it/messages.po b/view/it/messages.po
index 6d05e46dd..98d531562 100644
--- a/view/it/messages.po
+++ b/view/it/messages.po
@@ -5988,7 +5988,7 @@ msgid "Don't show emoticons"
msgstr "Non mostrare le emoticons"
#: ../../mod/settings.php:761
-msgid "View remote profiles as webpages"
+msgid "Do not view remote profiles in frames"
msgstr "Visualizza gli altri profili come normali pagine web"
#: ../../mod/settings.php:761
diff --git a/view/it/strings.php b/view/it/strings.php
index 060273ef2..42b91f2fa 100644
--- a/view/it/strings.php
+++ b/view/it/strings.php
@@ -1410,7 +1410,7 @@ $a->strings["Minimum of 10 seconds, no maximum"] = "Minimo 10 secondi, nessun li
$a->strings["Maximum number of conversations to load at any time:"] = "Massimo numero di conversazioni da mostrare ogni volta:";
$a->strings["Maximum of 100 items"] = "Massimo 100";
$a->strings["Don't show emoticons"] = "Non mostrare le emoticons";
-$a->strings["View remote profiles as webpages"] = "Visualizza gli altri profili come normali pagine web";
+$a->strings["Do not view remote profiles in frames"] = "Visualizza gli altri profili come normali pagine web";
$a->strings["By default open in a sub-window of your own site"] = "Se non selezionato, i profili degli altri utenti sono mostrati dentro un riquadro nella pagina";
$a->strings["Nobody except yourself"] = "Nessuno tranne te";
$a->strings["Only those you specifically allow"] = "Solo chi riceve il mio permesso";
diff --git a/js/acl.js b/view/js/acl.js
index 906b28354..84b080de2 100644
--- a/js/acl.js
+++ b/view/js/acl.js
@@ -259,8 +259,8 @@ ACL.prototype.populate = function(data){
var height = Math.ceil(data.tot / that.nw) * 42;
that.list_content.height(height);
$(data.items).each(function(){
- html = "<div class='acl-list-item {4} {5} {7}' title='{6}' id='{2}{3}'>"+that.item_tpl+"</div>";
- html = html.format( this.photo, this.name, this.type, this.xid, '', this.network, this.link, this.taggable );
+ html = "<div class='acl-list-item {4} {7} {5}' title='{6}' id='{2}{3}'>"+that.item_tpl+"</div>";
+ html = html.format( this.photo, this.name, this.type, this.xid, '', this.self, this.link, this.taggable );
if (this.uids!=undefined) that.group_uids[this.id] = this.uids;
//console.log(html);
that.list_content.append(html);
diff --git a/js/ajaxupload.js b/view/js/ajaxupload.js
index 5719f30e0..5719f30e0 100644
--- a/js/ajaxupload.js
+++ b/view/js/ajaxupload.js
diff --git a/js/fk.autocomplete.js b/view/js/autocomplete.js
index 8bac41936..763ca354d 100644
--- a/js/fk.autocomplete.js
+++ b/view/js/autocomplete.js
@@ -151,7 +151,7 @@ ACPopup.prototype.onkey = function(event){
}
function ContactAutocomplete(element,backend_url){
- this.pattern=/@([^ \n]+)$/;
+ this.pattern=/@(\!*)([^ \n]+)$/;
this.popup=null;
var that = this;
@@ -170,7 +170,7 @@ function ContactAutocomplete(element,backend_url){
if (that.popup===null){
that.popup = new ACPopup(this, backend_url);
}
- if (that.popup.ready && match[1]!==that.popup.searchText) that.popup.search(match[1]);
+ if (that.popup.ready && match[2]!==that.popup.searchText) that.popup.search(match[2]);
if (!that.popup.ready) that.popup=null;
} else {
diff --git a/js/crypto.js b/view/js/crypto.js
index a144e03ea..c3a37d177 100644
--- a/js/crypto.js
+++ b/view/js/crypto.js
@@ -1,5 +1,4 @@
-
function str_rot13 (str) {
// http://kevin.vanzonneveld.net
// + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
@@ -43,7 +42,11 @@ function red_encrypt(alg, elem,text) {
// key and hint need to be localised
- var enc_key = prompt(aStr['passphrase']);
+ var passphrase = prompt(aStr['passphrase']);
+ // let the user cancel this dialogue
+ if (passphrase == null)
+ return false;
+ var enc_key = bin2hex(passphrase);
// If you don't provide a key you get rot13, which doesn't need a key
// but consequently isn't secure.
@@ -59,7 +62,7 @@ function red_encrypt(alg, elem,text) {
// This is the prompt we're going to use when the receiver tries to open it.
// Maybe "Grandma's maiden name" or "our secret place" or something.
- var enc_hint = prompt(aStr['passhint']);
+ var enc_hint = bin2hex(prompt(aStr['passhint']));
enc_text = CryptoJS.AES.encrypt(text,enc_key);
@@ -72,7 +75,7 @@ function red_encrypt(alg, elem,text) {
// This is the prompt we're going to use when the receiver tries to open it.
// Maybe "Grandma's maiden name" or "our secret place" or something.
- var enc_hint = prompt(aStr['passhint']);
+ var enc_hint = bin2hex(prompt(aStr['passhint']));
enc_text = CryptoJS.Rabbit.encrypt(text,enc_key);
encrypted = enc_text.toString();
@@ -84,7 +87,7 @@ function red_encrypt(alg, elem,text) {
// This is the prompt we're going to use when the receiver tries to open it.
// Maybe "Grandma's maiden name" or "our secret place" or something.
- var enc_hint = prompt(aStr['passhint']);
+ var enc_hint = bin2hex(prompt(aStr['passhint']));
enc_text = CryptoJS.TripleDES.encrypt(text,enc_key);
encrypted = enc_text.toString();
@@ -135,7 +138,7 @@ function red_decrypt(alg,hint,text,elem) {
if(alg == 'rot13' || alg == 'triple-rot13')
dec_text = str_rot13(text);
else {
- var enc_key = prompt((hint.length) ? hint : aStr['passphrase']);
+ var enc_key = bin2hex(prompt((hint.length) ? hex2bin(hint) : aStr['passphrase']));
}
if(alg == 'aes256') {
diff --git a/js/icon_translate.js b/view/js/icon_translate.js
index 9e69e0b7d..45deef05b 100644
--- a/js/icon_translate.js
+++ b/view/js/icon_translate.js
@@ -50,4 +50,7 @@ $(document).ready(function() {
$('.icon-check').addClass('');
$('.icon-globe').addClass('');
$('.icon-circle-blank').addClass('');
+ $('.icon-circle').addClass('');
+ $('.icon-bookmark').addClass('');
+ $('.icon-fullscreen').addClass('');
}); \ No newline at end of file
diff --git a/js/jquery-compat.js b/view/js/jquery-compat.js
index 7bf912542..7bf912542 100644
--- a/js/jquery-compat.js
+++ b/view/js/jquery-compat.js
diff --git a/js/jquery-migrate-1.1.1.js b/view/js/jquery-migrate-1.1.1.js
index e99f954e6..e99f954e6 100644
--- a/js/jquery-migrate-1.1.1.js
+++ b/view/js/jquery-migrate-1.1.1.js
diff --git a/js/jquery.htmlstream.js b/view/js/jquery.htmlstream.js
index c62c538f7..c62c538f7 100644
--- a/js/jquery.htmlstream.js
+++ b/view/js/jquery.htmlstream.js
diff --git a/js/jquery.js b/view/js/jquery.js
index 006e95310..006e95310 100644
--- a/js/jquery.js
+++ b/view/js/jquery.js
diff --git a/js/jquery.spin.js b/view/js/jquery.spin.js
index a35a27765..a35a27765 100644
--- a/js/jquery.spin.js
+++ b/view/js/jquery.spin.js
diff --git a/js/jquery.textinputs.js b/view/js/jquery.textinputs.js
index fd6d14569..fd6d14569 100644
--- a/js/jquery.textinputs.js
+++ b/view/js/jquery.textinputs.js
diff --git a/js/main.js b/view/js/main.js
index 70d11bfd3..5f88ea9ca 100644
--- a/js/main.js
+++ b/view/js/main.js
@@ -55,6 +55,8 @@
if(typeof(insertFormatting) != 'undefined')
return(insertFormatting(comment,BBcode,id));
+ var urlprefix = ((BBcode == 'url') ? '#^' : '');
+
var tmpStr = $("#comment-edit-text-" + id).val();
if(tmpStr == comment) {
tmpStr = "";
@@ -68,11 +70,11 @@
if (document.selection) {
textarea.focus();
selected = document.selection.createRange();
- selected.text = "["+BBcode+"]" + selected.text + "[/"+BBcode+"]";
+ selected.text = urlprefix+"["+BBcode+"]" + selected.text + "[/"+BBcode+"]";
} else if (textarea.selectionStart || textarea.selectionStart == "0") {
var start = textarea.selectionStart;
var end = textarea.selectionEnd;
- textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
+ textarea.value = textarea.value.substring(0, start) + urlprefix+"["+BBcode+"]" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
}
return true;
}
@@ -195,58 +197,34 @@
/* setup field_richtext */
setupFieldRichtext();
- /* popup menus */
- function close_last_popup_menu() {
- if(last_popup_menu) {
- last_popup_menu.hide();
-/* last_popup_button.removeClass("selected"); */
- last_popup_menu = null;
- last_popup_button = null;
- }
- }
/* Turn elements with one of our special rel tags into popup menus */
+ /* CHANGES: let bootstrap handle popups and only do the loading here */
$('a[rel^=#]').click(function(e){
manage_popup_menu(this,e);
- return false;
+ return;
});
$('span[rel^=#]').click(function(e){
manage_popup_menu(this,e);
- return false;
+ return;
});
function manage_popup_menu(w,e) {
- close_last_popup_menu();
menu = $( $(w).attr('rel') );
- e.preventDefault();
- e.stopPropagation();
- if (menu.attr('popup')=="false") return false;
-/* $(w).parent().toggleClass("selected"); */
+
/* notification menus are loaded dynamically
* - here we find a rel tag to figure out what type of notification to load */
+
var loader_source = $(menu).attr('rel');
if(typeof(loader_source) != 'undefined' && loader_source.length) {
notify_popup_loader(loader_source);
}
- menu.toggle();
- if (menu.css("display") == "none") {
- last_popup_menu = null;
- last_popup_button = null;
- } else {
- last_popup_menu = menu;
- last_popup_button = $(w).parent();
- }
- return false;
}
-
- $('html').click(function() {
- close_last_popup_menu();
- });
-
+
// fancyboxes
$("a.popupbox").fancybox({
'transitionIn' : 'elastic',
@@ -322,46 +300,46 @@
if(data.network == 0) {
data.network = '';
- $('#net-update').removeClass('show')
+ $('.net-update').removeClass('show')
}
else {
- $('#net-update').addClass('show')
+ $('.net-update').addClass('show')
}
- $('#net-update').html(data.network);
+ $('.net-update').html(data.network);
- if(data.home == 0) { data.home = ''; $('#home-update').removeClass('show') } else { $('#home-update').addClass('show') }
- $('#home-update').html(data.home);
+ if(data.home == 0) { data.home = ''; $('.home-update').removeClass('show') } else { $('.home-update').addClass('show') }
+ $('.home-update').html(data.home);
- if(data.intros == 0) { data.intros = ''; $('#intro-update').removeClass('show') } else { $('#intro-update').addClass('show') }
- $('#intro-update').html(data.intros);
+ if(data.intros == 0) { data.intros = ''; $('.intro-update').removeClass('show') } else { $('.intro-update').addClass('show') }
+ $('.intro-update').html(data.intros);
- if(data.mail == 0) { data.mail = ''; $('#mail-update').removeClass('show') } else { $('#mail-update').addClass('show') }
- $('#mail-update').html(data.mail);
+ if(data.mail == 0) { data.mail = ''; $('.mail-update').removeClass('show') } else { $('.mail-update').addClass('show') }
+ $('.mail-update').html(data.mail);
- if(data.notify == 0) { data.notify = ''; $('#notify-update').removeClass('show') } else { $('#notify-update').addClass('show') }
- $('#notify-update').html(data.notify);
+ if(data.notify == 0) { data.notify = ''; $('.notify-update').removeClass('show') } else { $('.notify-update').addClass('show') }
+ $('.notify-update').html(data.notify);
- if(data.register == 0) { data.register = ''; $('#register-update').removeClass('show') } else { $('#register-update').addClass('show') }
- $('#register-update').html(data.register);
+ if(data.register == 0) { data.register = ''; $('.register-update').removeClass('show') } else { $('.register-update').addClass('show') }
+ $('.register-update').html(data.register);
- if(data.events == 0) { data.events = ''; $('#events-update').removeClass('show') } else { $('#events-update').addClass('show') }
- $('#events-update').html(data.events);
+ if(data.events == 0) { data.events = ''; $('.events-update').removeClass('show') } else { $('.events-update').addClass('show') }
+ $('.events-update').html(data.events);
- if(data.events_today == 0) { data.events_today = ''; $('#events-today-update').removeClass('show') } else { $('#events-today-update').addClass('show') }
- $('#events-today-update').html(data.events_today);
+ if(data.events_today == 0) { data.events_today = ''; $('.events-today-update').removeClass('show') } else { $('.events-today-update').addClass('show') }
+ $('.events-today-update').html(data.events_today);
- if(data.birthdays == 0) { data.birthdays = ''; $('#birthdays-update').removeClass('show') } else { $('#birthdays-update').addClass('show') }
- $('#birthdays-update').html(data.birthdays);
+ if(data.birthdays == 0) { data.birthdays = ''; $('.birthdays-update').removeClass('show') } else { $('.birthdays-update').addClass('show') }
+ $('.birthdays-update').html(data.birthdays);
- if(data.birthdays_today == 0) { data.birthdays_today = ''; $('#birthdays-today-update').removeClass('show') } else { $('#birthdays-today-update').addClass('show') }
- $('#birthdays-today-update').html(data.birthdays_today);
+ if(data.birthdays_today == 0) { data.birthdays_today = ''; $('.birthdays-today-update').removeClass('show') } else { $('.birthdays-today-update').addClass('show') }
+ $('.birthdays-today-update').html(data.birthdays_today);
- if(data.all_events == 0) { data.all_events = ''; $('#all_events-update').removeClass('show') } else { $('#all_events-update').addClass('show') }
- $('#all_events-update').html(data.all_events);
- if(data.all_events_today == 0) { data.all_events_today = ''; $('#all_events-today-update').removeClass('show') } else { $('#all_events-today-update').addClass('show') }
- $('#all_events-today-update').html(data.all_events_today);
+ if(data.all_events == 0) { data.all_events = ''; $('.all_events-update').removeClass('show') } else { $('.all_events-update').addClass('show') }
+ $('.all_events-update').html(data.all_events);
+ if(data.all_events_today == 0) { data.all_events_today = ''; $('.all_events-today-update').removeClass('show') } else { $('.all_events-today-update').addClass('show') }
+ $('.all_events-today-update').html(data.all_events_today);
$(data.notice).each(function() {
@@ -557,7 +535,7 @@ function updateConvItems(mode,data) {
$(".wall-item-body").each(function() {
if($(this).height() > 410) {
if(! $(this).hasClass('divmore')) {
- $(this).divgrow({ initialHeight: 400, showBrackets: false });
+ $(this).divgrow({ initialHeight: 400, moreText: aStr['divgrowmore'], lessText: aStr['divgrowless'], showBrackets: false });
$(this).addClass('divmore');
}
}
@@ -669,8 +647,7 @@ function updateConvItems(mode,data) {
$(data.notify).each(function() {
- text = "<span class='contactname'>"+this.name+"</span>" + ' ' + this.message + '<br />';
- html = notifications_tpl.format(this.notify_link,this.photo,text,this.when,this.class);
+ html = notifications_tpl.format(this.notify_link,this.photo,this.name,this.message,this.when,this.class);
$("#nav-" + notifyType + "-menu").append(html);
});
@@ -873,6 +850,15 @@ function updateConvItems(mode,data) {
return a.join('');
}
+ function hex2bin(hex) {
+ var bytes = [], str;
+
+ for(var i=0; i< hex.length-1; i+=2)
+ bytes.push(parseInt(hex.substr(i, 2), 16));
+
+ return String.fromCharCode.apply(String, bytes);
+ }
+
function groupChangeMember(gid, cid, sec_token) {
$('body .fakelink').css('cursor', 'wait');
$.get('group/' + gid + '/' + cid + "?t=" + sec_token, function(data) {
diff --git a/view/js/mod_chat.js b/view/js/mod_chat.js
new file mode 100644
index 000000000..82957ae44
--- /dev/null
+++ b/view/js/mod_chat.js
@@ -0,0 +1,16 @@
+$(document).ready(function() {
+
+ $('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() {
+ var selstr;
+ $('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() {
+ selstr = $(this).text();
+ $('#jot-perms-icon').removeClass('unlock').addClass('lock');
+ $('#jot-public').hide();
+ });
+ if(selstr == null) {
+ $('#jot-perms-icon').removeClass('lock').addClass('unlock');
+ $('#jot-public').show();
+ }
+
+ }).trigger('change');
+});
diff --git a/view/js/mod_connections.js b/view/js/mod_connections.js
index 404010636..8a8f2fee6 100644
--- a/view/js/mod_connections.js
+++ b/view/js/mod_connections.js
@@ -21,85 +21,3 @@ $(".autocomplete-w1 .selected").keyup(function(event){
}
});
-
-function connectFullShare() {
- $('.abook-edit-me').each(function() {
- if(! $(this).is(':disabled'))
- $(this).removeAttr('checked');
- });
- $('#me_id_perms_view_stream').attr('checked','checked');
- $('#me_id_perms_view_profile').attr('checked','checked');
- $('#me_id_perms_view_photos').attr('checked','checked');
- $('#me_id_perms_view_contacts').attr('checked','checked');
- $('#me_id_perms_view_storage').attr('checked','checked');
- $('#me_id_perms_view_pages').attr('checked','checked');
- $('#me_id_perms_send_stream').attr('checked','checked');
- $('#me_id_perms_post_wall').attr('checked','checked');
- $('#me_id_perms_post_comments').attr('checked','checked');
- $('#me_id_perms_post_mail').attr('checked','checked');
- $('#me_id_perms_chat').attr('checked','checked');
- $('#me_id_perms_view_storage').attr('checked','checked');
- $('#me_id_perms_republish').attr('checked','checked');
-}
-
-function connectCautiousShare() {
- $('.abook-edit-me').each(function() {
- if(! $(this).is(':disabled'))
- $(this).removeAttr('checked');
- });
-
- $('#me_id_perms_view_stream').attr('checked','checked');
- $('#me_id_perms_view_profile').attr('checked','checked');
- $('#me_id_perms_view_photos').attr('checked','checked');
- $('#me_id_perms_view_storage').attr('checked','checked');
- $('#me_id_perms_view_pages').attr('checked','checked');
- $('#me_id_perms_send_stream').attr('checked','checked');
- $('#me_id_perms_post_comments').attr('checked','checked');
- $('#me_id_perms_post_mail').attr('checked','checked');
-}
-
-function connectForum() {
- $('.abook-edit-me').each(function() {
- if(! $(this).is(':disabled'))
- $(this).removeAttr('checked');
- });
-
- $('#me_id_perms_view_stream').attr('checked','checked');
- $('#me_id_perms_view_profile').attr('checked','checked');
- $('#me_id_perms_view_photos').attr('checked','checked');
- $('#me_id_perms_view_contacts').attr('checked','checked');
- $('#me_id_perms_view_storage').attr('checked','checked');
- $('#me_id_perms_view_pages').attr('checked','checked');
- $('#me_id_perms_send_stream').attr('checked','checked');
- $('#me_id_perms_post_wall').attr('checked','checked');
- $('#me_id_perms_post_comments').attr('checked','checked');
- $('#me_id_perms_post_mail').attr('checked','checked');
- $('#me_id_perms_tag_deliver').attr('checked','checked');
- $('#me_id_perms_republish').attr('checked','checked');
-
-}
-
-function connectSoapBox() {
- $('.abook-edit-me').each(function() {
- if(! $(this).is(':disabled'))
- $(this).removeAttr('checked');
- });
-
- $('#me_id_perms_view_stream').attr('checked','checked');
- $('#me_id_perms_view_profile').attr('checked','checked');
- $('#me_id_perms_view_photos').attr('checked','checked');
- $('#me_id_perms_view_contacts').attr('checked','checked');
- $('#me_id_perms_view_storage').attr('checked','checked');
- $('#me_id_perms_view_pages').attr('checked','checked');
-}
-
-
-function connectFollowOnly() {
- $('.abook-edit-me').each(function() {
- if(! $(this).is(':disabled'))
- $(this).removeAttr('checked');
- });
-
- $('#me_id_perms_send_stream').attr('checked','checked');
-}
-
diff --git a/view/js/mod_connedit.js b/view/js/mod_connedit.js
new file mode 100644
index 000000000..7a33952dc
--- /dev/null
+++ b/view/js/mod_connedit.js
@@ -0,0 +1,83 @@
+
+function connectFullShare() {
+ $('.abook-edit-me').each(function() {
+ if(! $(this).is(':disabled'))
+ $(this).removeAttr('checked');
+ });
+ $('#me_id_perms_view_stream').attr('checked','checked');
+ $('#me_id_perms_view_profile').attr('checked','checked');
+ $('#me_id_perms_view_photos').attr('checked','checked');
+ $('#me_id_perms_view_contacts').attr('checked','checked');
+ $('#me_id_perms_view_storage').attr('checked','checked');
+ $('#me_id_perms_view_pages').attr('checked','checked');
+ $('#me_id_perms_send_stream').attr('checked','checked');
+ $('#me_id_perms_post_wall').attr('checked','checked');
+ $('#me_id_perms_post_comments').attr('checked','checked');
+ $('#me_id_perms_post_mail').attr('checked','checked');
+ $('#me_id_perms_chat').attr('checked','checked');
+ $('#me_id_perms_view_storage').attr('checked','checked');
+ $('#me_id_perms_republish').attr('checked','checked');
+
+}
+
+function connectCautiousShare() {
+ $('.abook-edit-me').each(function() {
+ if(! $(this).is(':disabled'))
+ $(this).removeAttr('checked');
+ });
+
+ $('#me_id_perms_view_stream').attr('checked','checked');
+ $('#me_id_perms_view_profile').attr('checked','checked');
+ $('#me_id_perms_view_photos').attr('checked','checked');
+ $('#me_id_perms_view_storage').attr('checked','checked');
+ $('#me_id_perms_view_pages').attr('checked','checked');
+ $('#me_id_perms_send_stream').attr('checked','checked');
+ $('#me_id_perms_post_comments').attr('checked','checked');
+ $('#me_id_perms_post_mail').attr('checked','checked');
+}
+
+function connectForum() {
+ $('.abook-edit-me').each(function() {
+ if(! $(this).is(':disabled'))
+ $(this).removeAttr('checked');
+ });
+
+ $('#me_id_perms_view_stream').attr('checked','checked');
+ $('#me_id_perms_view_profile').attr('checked','checked');
+ $('#me_id_perms_view_photos').attr('checked','checked');
+ $('#me_id_perms_view_contacts').attr('checked','checked');
+ $('#me_id_perms_view_storage').attr('checked','checked');
+ $('#me_id_perms_view_pages').attr('checked','checked');
+ $('#me_id_perms_send_stream').attr('checked','checked');
+ $('#me_id_perms_post_wall').attr('checked','checked');
+ $('#me_id_perms_post_comments').attr('checked','checked');
+ $('#me_id_perms_post_mail').attr('checked','checked');
+ $('#me_id_perms_tag_deliver').attr('checked','checked');
+ $('#me_id_perms_republish').attr('checked','checked');
+
+}
+
+function connectSoapBox() {
+ $('.abook-edit-me').each(function() {
+ if(! $(this).is(':disabled'))
+ $(this).removeAttr('checked');
+ });
+
+ $('#me_id_perms_view_stream').attr('checked','checked');
+ $('#me_id_perms_view_profile').attr('checked','checked');
+ $('#me_id_perms_view_photos').attr('checked','checked');
+ $('#me_id_perms_view_contacts').attr('checked','checked');
+ $('#me_id_perms_view_storage').attr('checked','checked');
+ $('#me_id_perms_view_pages').attr('checked','checked');
+}
+
+
+function connectFollowOnly() {
+ $('.abook-edit-me').each(function() {
+ if(! $(this).is(':disabled'))
+ $(this).removeAttr('checked');
+ });
+
+ $('#me_id_perms_send_stream').attr('checked','checked');
+}
+
diff --git a/view/js/mod_directory.js b/view/js/mod_directory.js
new file mode 100644
index 000000000..291734b4f
--- /dev/null
+++ b/view/js/mod_directory.js
@@ -0,0 +1,8 @@
+function dirdetails(hash) {
+
+ $.get('dirprofile' + '?f=&hash=' + hash, function( data ) {
+ $.colorbox({ maxWidth: "50%", maxHeight: "75%", html: data });
+ });
+
+}
+
diff --git a/view/js/mod_filestorage.php b/view/js/mod_filestorage.php
new file mode 100644
index 000000000..82957ae44
--- /dev/null
+++ b/view/js/mod_filestorage.php
@@ -0,0 +1,16 @@
+$(document).ready(function() {
+
+ $('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() {
+ var selstr;
+ $('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() {
+ selstr = $(this).text();
+ $('#jot-perms-icon').removeClass('unlock').addClass('lock');
+ $('#jot-public').hide();
+ });
+ if(selstr == null) {
+ $('#jot-perms-icon').removeClass('lock').addClass('unlock');
+ $('#jot-public').show();
+ }
+
+ }).trigger('change');
+});
diff --git a/view/js/mod_mail.js b/view/js/mod_mail.js
new file mode 100644
index 000000000..82f60f46f
--- /dev/null
+++ b/view/js/mod_mail.js
@@ -0,0 +1,13 @@
+$(document).ready(function() {
+ var a;
+ a = $("#recip").autocomplete({
+ serviceUrl: baseurl + '/acl',
+ minChars: 2,
+ width: 250,
+ id: 'recip-ac',
+ onSelect: function(value,data) {
+ $("#recip-complete").val(data);
+ },
+ });
+
+});
diff --git a/view/js/mod_photos.js b/view/js/mod_photos.js
index 82957ae44..c9d13f742 100644
--- a/view/js/mod_photos.js
+++ b/view/js/mod_photos.js
@@ -1,5 +1,13 @@
+
+var ispublic = aStr['everybody'];
+
$(document).ready(function() {
+ $("a#settings-default-perms-menu").colorbox({
+ 'inline' : true,
+ 'transition' : 'elastic'
+ });
+
$('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() {
var selstr;
$('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() {
diff --git a/view/js/mod_settings.js b/view/js/mod_settings.js
index 7f9a9e960..8cd062f43 100644
--- a/view/js/mod_settings.js
+++ b/view/js/mod_settings.js
@@ -43,6 +43,7 @@ function channel_privacy_macro(n) {
$('#id_write_pages option').eq(0).attr('selected','selected');
$('#id_delegate option').eq(0).attr('selected','selected');
$('#id_republish option').eq(0).attr('selected','selected');
+ $('#id_bookmark option').eq(0).attr('selected','selected');
$('#id_profile_in_directory_onoff .off').removeClass('hidden');
$('#id_profile_in_directory_onoff .on').addClass('hidden');
$('#id_profile_in_directory').val(0);
@@ -65,20 +66,21 @@ function channel_privacy_macro(n) {
$('#id_write_pages option').eq(1).attr('selected','selected');
$('#id_delegate option').eq(0).attr('selected','selected');
$('#id_republish option').eq(0).attr('selected','selected');
+ $('#id_bookmark option').eq(1).attr('selected','selected');
$('#id_profile_in_directory_onoff .off').removeClass('hidden');
$('#id_profile_in_directory_onoff .on').addClass('hidden');
$('#id_profile_in_directory').val(0);
}
if(n == 2) {
- $('#id_view_stream option').eq(5).attr('selected','selected');
- $('#id_view_profile option').eq(5).attr('selected','selected');
- $('#id_view_photos option').eq(5).attr('selected','selected');
- $('#id_view_contacts option').eq(5).attr('selected','selected');
- $('#id_view_storage option').eq(5).attr('selected','selected');
- $('#id_view_pages option').eq(5).attr('selected','selected');
- $('#id_send_stream option').eq(1).attr('selected','selected');
+ $('#id_view_stream option').eq(6).attr('selected','selected');
+ $('#id_view_profile option').eq(6).attr('selected','selected');
+ $('#id_view_photos option').eq(6).attr('selected','selected');
+ $('#id_view_contacts option').eq(6).attr('selected','selected');
+ $('#id_view_storage option').eq(6).attr('selected','selected');
+ $('#id_view_pages option').eq(6).attr('selected','selected');
+ $('#id_send_stream option').eq(2).attr('selected','selected');
$('#id_post_wall option').eq(1).attr('selected','selected');
- $('#id_post_comments option').eq(1).attr('selected','selected');
+ $('#id_post_comments option').eq(2).attr('selected','selected');
$('#id_post_mail option').eq(1).attr('selected','selected');
$('#id_post_photos option').eq(0).attr('selected','selected');
$('#id_tag_deliver option').eq(1).attr('selected','selected');
@@ -87,17 +89,18 @@ function channel_privacy_macro(n) {
$('#id_write_pages option').eq(0).attr('selected','selected');
$('#id_delegate option').eq(0).attr('selected','selected');
$('#id_republish option').eq(1).attr('selected','selected');
+ $('#id_bookmark option').eq(1).attr('selected','selected');
$('#id_profile_in_directory_onoff .on').removeClass('hidden');
$('#id_profile_in_directory_onoff .off').addClass('hidden');
$('#id_profile_in_directory').val(1);
}
if(n == 3) {
- $('#id_view_stream option').eq(5).attr('selected','selected');
- $('#id_view_profile option').eq(5).attr('selected','selected');
- $('#id_view_photos option').eq(5).attr('selected','selected');
- $('#id_view_contacts option').eq(5).attr('selected','selected');
- $('#id_view_storage option').eq(5).attr('selected','selected');
- $('#id_view_pages option').eq(5).attr('selected','selected');
+ $('#id_view_stream option').eq(6).attr('selected','selected');
+ $('#id_view_profile option').eq(6).attr('selected','selected');
+ $('#id_view_photos option').eq(6).attr('selected','selected');
+ $('#id_view_contacts option').eq(6).attr('selected','selected');
+ $('#id_view_storage option').eq(6).attr('selected','selected');
+ $('#id_view_pages option').eq(6).attr('selected','selected');
$('#id_send_stream option').eq(4).attr('selected','selected');
$('#id_post_wall option').eq(4).attr('selected','selected');
$('#id_post_comments option').eq(4).attr('selected','selected');
@@ -109,6 +112,7 @@ function channel_privacy_macro(n) {
$('#id_write_pages option').eq(2).attr('selected','selected');
$('#id_delegate option').eq(0).attr('selected','selected');
$('#id_republish option').eq(4).attr('selected','selected');
+ $('#id_bookmark option').eq(4).attr('selected','selected');
$('#id_profile_in_directory_onoff .on').removeClass('hidden');
$('#id_profile_in_directory_onoff .off').addClass('hidden');
$('#id_profile_in_directory').val(1);
@@ -117,4 +121,4 @@ function channel_privacy_macro(n) {
-} \ No newline at end of file
+}
diff --git a/view/js/mod_sources.js b/view/js/mod_sources.js
index fda952cae..49880b38f 100644
--- a/view/js/mod_sources.js
+++ b/view/js/mod_sources.js
@@ -6,8 +6,10 @@ $(document).ready(function() {
width: 250,
id: 'id-name-ac',
onSelect: function(value,data) {
- $("#id_xchan").val(data);
+ $("#id_abook").val(data);
}
});
+ a.setOptions({ params: { type: 'a' }});
+
});
diff --git a/js/spin.js b/view/js/spin.js
index c66c607a7..c66c607a7 100644
--- a/js/spin.js
+++ b/view/js/spin.js
diff --git a/js/webtoolkit.base64.js b/view/js/webtoolkit.base64.js
index 5fa3c1ed7..5fa3c1ed7 100644
--- a/js/webtoolkit.base64.js
+++ b/view/js/webtoolkit.base64.js
diff --git a/view/pdl/mod_blocks.pdl b/view/pdl/mod_blocks.pdl
new file mode 100644
index 000000000..cef69f194
--- /dev/null
+++ b/view/pdl/mod_blocks.pdl
@@ -0,0 +1,3 @@
+[region=aside]
+[widget=design_tools][/widget]
+[/region] \ No newline at end of file
diff --git a/view/pdl/mod_chanview.pdl b/view/pdl/mod_chanview.pdl
new file mode 100644
index 000000000..d8f50ad7a
--- /dev/null
+++ b/view/pdl/mod_chanview.pdl
@@ -0,0 +1,3 @@
+[region=aside]
+[widget=vcard][/widget]
+[/region]
diff --git a/view/pdl/mod_chat.pdl b/view/pdl/mod_chat.pdl
new file mode 100644
index 000000000..6b1d2a15e
--- /dev/null
+++ b/view/pdl/mod_chat.pdl
@@ -0,0 +1,3 @@
+[region=aside]
+[widget=profile][/widget]
+[/region]
diff --git a/view/pdl/mod_cloud.pdl b/view/pdl/mod_cloud.pdl
new file mode 100644
index 000000000..6b1d2a15e
--- /dev/null
+++ b/view/pdl/mod_cloud.pdl
@@ -0,0 +1,3 @@
+[region=aside]
+[widget=profile][/widget]
+[/region]
diff --git a/view/pdl/mod_common.pdl b/view/pdl/mod_common.pdl
new file mode 100644
index 000000000..f12bf39c3
--- /dev/null
+++ b/view/pdl/mod_common.pdl
@@ -0,0 +1,3 @@
+[region=aside]
+[widget=fullprofile][/widget]
+[/region]
diff --git a/view/pdl/mod_connect.pdl b/view/pdl/mod_connect.pdl
new file mode 100644
index 000000000..6b1d2a15e
--- /dev/null
+++ b/view/pdl/mod_connect.pdl
@@ -0,0 +1,3 @@
+[region=aside]
+[widget=profile][/widget]
+[/region]
diff --git a/view/pdl/mod_connections.pdl b/view/pdl/mod_connections.pdl
new file mode 100644
index 000000000..fc86e4490
--- /dev/null
+++ b/view/pdl/mod_connections.pdl
@@ -0,0 +1,5 @@
+[region=aside]
+[widget=follow][/widget]
+[widget=suggestions][/widget]
+[widget=findpeople][/widget]
+[/region]
diff --git a/view/pdl/mod_connedit.pdl b/view/pdl/mod_connedit.pdl
new file mode 100644
index 000000000..4b468e34c
--- /dev/null
+++ b/view/pdl/mod_connedit.pdl
@@ -0,0 +1,6 @@
+[region=aside]
+[widget=vcard][/widget]
+[widget=collections][var=mode]abook[/var][/widget]
+[widget=suggestions][/widget]
+[widget=findpeople][/widget]
+[/region]
diff --git a/view/pdl/mod_directory.pdl b/view/pdl/mod_directory.pdl
new file mode 100644
index 000000000..0bc8ed936
--- /dev/null
+++ b/view/pdl/mod_directory.pdl
@@ -0,0 +1,7 @@
+[region=aside]
+[widget=findpeople][/widget]
+[widget=dirsafemode][/widget]
+[widget=dirsort][/widget]
+[widget=dirtags][/widget]
+[widget=suggestions][/widget]
+[/region]
diff --git a/view/pdl/mod_group.pdl b/view/pdl/mod_group.pdl
new file mode 100644
index 000000000..8db29cf78
--- /dev/null
+++ b/view/pdl/mod_group.pdl
@@ -0,0 +1,3 @@
+[region=aside]
+[widget=collections][var=mode]groups[/var][/widget]
+[/region]
diff --git a/view/pdl/mod_layouts.pdl b/view/pdl/mod_layouts.pdl
new file mode 100644
index 000000000..cef69f194
--- /dev/null
+++ b/view/pdl/mod_layouts.pdl
@@ -0,0 +1,3 @@
+[region=aside]
+[widget=design_tools][/widget]
+[/region] \ No newline at end of file
diff --git a/view/pdl/mod_mail.pdl b/view/pdl/mod_mail.pdl
new file mode 100644
index 000000000..d8f50ad7a
--- /dev/null
+++ b/view/pdl/mod_mail.pdl
@@ -0,0 +1,3 @@
+[region=aside]
+[widget=vcard][/widget]
+[/region]
diff --git a/view/pdl/mod_menu.pdl b/view/pdl/mod_menu.pdl
new file mode 100644
index 000000000..cef69f194
--- /dev/null
+++ b/view/pdl/mod_menu.pdl
@@ -0,0 +1,3 @@
+[region=aside]
+[widget=design_tools][/widget]
+[/region] \ No newline at end of file
diff --git a/view/pdl/mod_message.pdl b/view/pdl/mod_message.pdl
new file mode 100644
index 000000000..2efb3de79
--- /dev/null
+++ b/view/pdl/mod_message.pdl
@@ -0,0 +1,3 @@
+[region=aside]
+[widget=mailmenu][/widget]
+[/region]
diff --git a/view/pdl/mod_mitem.pdl b/view/pdl/mod_mitem.pdl
new file mode 100644
index 000000000..c210606d0
--- /dev/null
+++ b/view/pdl/mod_mitem.pdl
@@ -0,0 +1,4 @@
+[region=aside]
+[widget=design_tools][/widget]
+[widget=menu_preview][/widget]
+[/region] \ No newline at end of file
diff --git a/view/pdl/mod_network.pdl b/view/pdl/mod_network.pdl
index 168ca6acb..7624ace01 100644
--- a/view/pdl/mod_network.pdl
+++ b/view/pdl/mod_network.pdl
@@ -1,4 +1,5 @@
[region=nav]$nav[/region]
+
[region=aside]
[widget=collections][/widget]
[widget=archive][/widget]
@@ -7,4 +8,8 @@
[widget=filer][/widget]
[widget=notes][/widget]
[/region]
-[region=section]$content[/region] \ No newline at end of file
+
+[region=content]
+[widget=affinity][/widget]
+$content
+[/region] \ No newline at end of file
diff --git a/view/pdl/mod_new_channel.pdl b/view/pdl/mod_new_channel.pdl
new file mode 100644
index 000000000..733bc248a
--- /dev/null
+++ b/view/pdl/mod_new_channel.pdl
@@ -0,0 +1 @@
+[layout]full[/layout]
diff --git a/view/pdl/mod_photos.pdl b/view/pdl/mod_photos.pdl
new file mode 100644
index 000000000..c37cf02fe
--- /dev/null
+++ b/view/pdl/mod_photos.pdl
@@ -0,0 +1,4 @@
+[region=aside]
+[widget=vcard][/widget]
+[widget=photo_albums][/widget]
+[/region]
diff --git a/view/pdl/mod_profile_photo.pdl b/view/pdl/mod_profile_photo.pdl
new file mode 100644
index 000000000..f12bf39c3
--- /dev/null
+++ b/view/pdl/mod_profile_photo.pdl
@@ -0,0 +1,3 @@
+[region=aside]
+[widget=fullprofile][/widget]
+[/region]
diff --git a/view/pdl/mod_profiles.pdl b/view/pdl/mod_profiles.pdl
new file mode 100644
index 000000000..f12bf39c3
--- /dev/null
+++ b/view/pdl/mod_profiles.pdl
@@ -0,0 +1,3 @@
+[region=aside]
+[widget=fullprofile][/widget]
+[/region]
diff --git a/view/pdl/mod_profperm.pdl b/view/pdl/mod_profperm.pdl
new file mode 100644
index 000000000..f12bf39c3
--- /dev/null
+++ b/view/pdl/mod_profperm.pdl
@@ -0,0 +1,3 @@
+[region=aside]
+[widget=fullprofile][/widget]
+[/region]
diff --git a/view/pdl/mod_register.pdl b/view/pdl/mod_register.pdl
new file mode 100644
index 000000000..733bc248a
--- /dev/null
+++ b/view/pdl/mod_register.pdl
@@ -0,0 +1 @@
+[layout]full[/layout]
diff --git a/view/pdl/mod_search.pdl b/view/pdl/mod_search.pdl
new file mode 100644
index 000000000..7de4a270f
--- /dev/null
+++ b/view/pdl/mod_search.pdl
@@ -0,0 +1,3 @@
+[region=aside]
+[widget=savedsearch][/widget]
+[/region]
diff --git a/view/pdl/mod_settings.pdl b/view/pdl/mod_settings.pdl
new file mode 100644
index 000000000..0b0a99638
--- /dev/null
+++ b/view/pdl/mod_settings.pdl
@@ -0,0 +1,4 @@
+[region=aside]
+[widget=settings_menu][/widget]
+[/region]
+
diff --git a/view/pdl/mod_suggest.pdl b/view/pdl/mod_suggest.pdl
new file mode 100644
index 000000000..c2889f2fe
--- /dev/null
+++ b/view/pdl/mod_suggest.pdl
@@ -0,0 +1,4 @@
+[region=aside]
+[widget=follow][/widget]
+[widget=findpeople][/widget]
+[/region] \ No newline at end of file
diff --git a/view/pdl/mod_viewconnections.pdl b/view/pdl/mod_viewconnections.pdl
new file mode 100644
index 000000000..f12bf39c3
--- /dev/null
+++ b/view/pdl/mod_viewconnections.pdl
@@ -0,0 +1,3 @@
+[region=aside]
+[widget=fullprofile][/widget]
+[/region]
diff --git a/view/pdl/mod_webpages.pdl b/view/pdl/mod_webpages.pdl
new file mode 100644
index 000000000..cef69f194
--- /dev/null
+++ b/view/pdl/mod_webpages.pdl
@@ -0,0 +1,3 @@
+[region=aside]
+[widget=design_tools][/widget]
+[/region] \ No newline at end of file
diff --git a/view/php/mod_new_channel.php b/view/php/mod_new_channel.php
deleted file mode 100644
index e7709cbd8..000000000
--- a/view/php/mod_new_channel.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-
-$a->page['template'] = 'full';
diff --git a/view/php/mod_register.php b/view/php/mod_register.php
deleted file mode 100644
index e7709cbd8..000000000
--- a/view/php/mod_register.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-
-$a->page['template'] = 'full';
diff --git a/view/php/theme_init.php b/view/php/theme_init.php
index a2024d658..b6aa5de0f 100644
--- a/view/php/theme_init.php
+++ b/view/php/theme_init.php
@@ -8,21 +8,22 @@ head_add_css('library/fancybox/jquery.fancybox-1.3.4.css');
head_add_css('library/tiptip/tipTip.css');
head_add_css('library/jgrowl/jquery.jgrowl.css');
head_add_css('library/jslider/css/jslider.css');
-head_add_css('library/prettyphoto/css/prettyPhoto.css');
head_add_css('library/colorbox/colorbox.css');
-// head_add_css('library/font_awesome/css/font-awesome.min.css');
+
head_add_css('view/css/conversation.css');
head_add_css('view/css/bootstrap-red.css');
+head_add_css('view/css/widgets.css');
+head_add_css('library/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css');
-head_add_js('js/jquery.js');
+head_add_js('jquery.js');
head_add_js('library/bootstrap/js/bootstrap.min.js');
head_add_js('library/bootstrap/js/bootbox.min.js');
-head_add_js('js/jquery-migrate-1.1.1.js');
-//head_add_js('js/jquery-compat.js');
-head_add_js('js/spin.js');
-head_add_js('js/jquery.spin.js');
-head_add_js('js/jquery.textinputs.js');
-head_add_js('js/fk.autocomplete.js');
+head_add_js('jquery-migrate-1.1.1.js');
+//head_add_js('jquery-compat.js');
+head_add_js('spin.js');
+head_add_js('jquery.spin.js');
+head_add_js('jquery.textinputs.js');
+head_add_js('autocomplete.js');
head_add_js('library/fancybox/jquery.fancybox-1.3.4.js');
head_add_js('library/jquery.timeago.js');
head_add_js('library/jquery.divgrow/jquery.divgrow-1.3.1.js');
@@ -34,14 +35,15 @@ head_add_js('library/cryptojs/components/core-min.js');
head_add_js('library/cryptojs/rollups/aes.js');
head_add_js('library/cryptojs/rollups/rabbit.js');
head_add_js('library/cryptojs/rollups/tripledes.js');
-head_add_js('js/acl.js');
-head_add_js('js/webtoolkit.base64.js');
-head_add_js('js/main.js');
-head_add_js('js/crypto.js');
+head_add_js('acl.js');
+head_add_js('webtoolkit.base64.js');
+head_add_js('main.js');
+head_add_js('crypto.js');
head_add_js('library/jslider/bin/jquery.slider.min.js');
head_add_js('docready.js');
-head_add_js('library/prettyphoto/js/jquery.prettyPhoto.js');
head_add_js('library/colorbox/jquery.colorbox-min.js');
+head_add_js('library/bootstrap-datetimepicker/js/moment.js');
+head_add_js('library/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js');
/**
* Those who require this feature will know what to do with it.
diff --git a/view/pt-br/follow_notify_eml.tpl b/view/pt-br/follow_notify_eml.tpl
index ba07b19da..bc86e5fe1 100644
--- a/view/pt-br/follow_notify_eml.tpl
+++ b/view/pt-br/follow_notify_eml.tpl
@@ -1,14 +1,14 @@
-Dear {{$myname}},
+Caro/a {{$myname}},
-You have a new follower at {{$sitename}} - '{{$requestor}}'.
+Você tem um novo seguidor em {{$sitename}} - '{{$requestor}}'.
-You may visit their profile at {{$url}}.
+Você pode ver o perfil dele em {{$url}}.
-Please login to your site to approve or ignore/cancel the request.
+Por favor, autentique-se no seu site para aprovara ou ignorar/cancelar esta solicitação.
{{$siteurl}}
-Regards,
+Gratidão,
- {{$sitename}} administrator
+ {{$sitename}} administrador
diff --git a/view/pt-br/friend_complete_eml.tpl b/view/pt-br/friend_complete_eml.tpl
index 1c647b994..51adf23e3 100644
--- a/view/pt-br/friend_complete_eml.tpl
+++ b/view/pt-br/friend_complete_eml.tpl
@@ -1,22 +1,23 @@
-Dear {{$username}},
+Caro/a {{$username}},
- Great news... '{{$fn}}' at '{{$dfrn_url}}' has accepted
-your connection request at '{{$sitename}}'.
+ Boas notícias... '{{$fn}}' em '{{$dfrn_url}}' aceitou
+seu pedido de conexão em '{{$sitename}}'.
-You are now mutual friends and may exchange status updates, photos, and email
-without restriction.
+Vocês agora são amigos mútuos e podem trocar atualizações de status, fotos,
+e email sem restrição.
-Please visit your 'Connnections' page at {{$sitename}} if you wish to make
-any changes to this relationship.
+Por favor, visite sua página 'Conexões' em {{$sitename}} se quiser efetuar
+quaisquer mudanças nesse relacionamento.
{{$siteurl}}
-[For instance, you may create a separate profile with information that is not
-available to the general public - and assign viewing rights to '{{$fn}}'].
+[Por exemplo, você pode criar um perfil à parte com informações que não
+estão disponíveis para o público geral - e conceder permissões de acesso
+para '{{$fn}}'].
-Sincerely,
+Atenciosamente,
- {{$sitename}} Administrator
+ {{$sitename}} Administrador
diff --git a/view/pt-br/intro_complete_eml.tpl b/view/pt-br/intro_complete_eml.tpl
index 2c2428d68..bd20e0a6e 100644
--- a/view/pt-br/intro_complete_eml.tpl
+++ b/view/pt-br/intro_complete_eml.tpl
@@ -1,22 +1,22 @@
-Dear {{$username}},
+Caro/a {{$username}},
- '{{$fn}}' at '{{$dfrn_url}}' has accepted
-your connection request at '{{$sitename}}'.
+ '{{$fn}}' em '{{$dfrn_url}}' aceitou sua solicitação de conexão
+em '{{$sitename}}'.
- '{{$fn}}' has chosen to accept you a "fan", which restricts
-some forms of communication - such as private messaging and some profile
-interactions. If this is a celebrity or community page, these settings were
-applied automatically.
+ '{{$fn}}' optou por aceitá-lo como "fã", o que restringe algumas
+formas de comunicação - como mensagens privadas e certas interações com o
+perfil. Se esta é uma página de celebridade ou comunidade, essa
+configuração é aplicada automaticamente.
- '{{$fn}}' may choose to extend this into a two-way or more permissive
-relationship in the future.
+ '{{$fn}}' pode escolher no futuro transformar essa relação em uma
+mais permissiva, de duas vias.
- You will start receiving public status updates from '{{$fn}}',
-which will appear on your 'Matrix' page at
+ Você começará a receber atualizações de status públicas de '{{$fn}}',
+que aparecerão na sua Matriz em
{{$siteurl}}
-Sincerely,
+Atenciosamente,
- {{$sitename}} Administrator
+ {{$sitename}} Administrador
diff --git a/view/pt-br/lostpass_eml.tpl b/view/pt-br/lostpass_eml.tpl
index 3b79d2791..15a72ffb6 100644
--- a/view/pt-br/lostpass_eml.tpl
+++ b/view/pt-br/lostpass_eml.tpl
@@ -1,32 +1,33 @@
-Dear {{$username}},
- A request was recently received at {{$sitename}} to reset your account
-password. In order to confirm this request, please select the verification link
-below or paste it into your web browser address bar.
+Caro/a {{$username}},
-If you did NOT request this change, please DO NOT follow the link
-provided and ignore and/or delete this email.
+ Uma solicitação para reiniciar a senha da sua conta foi recebida em
+{{$sitename}}. Para confirmar este pedido, acesse o link de verificação clicando
+nele abaixo ou copiando na barra de endereço do seu navegador.
-Your password will not be changed unless we can verify that you
-issued this request.
+Se você NÃO solicitou essa mudança, por favor NÃO SIGA o link a seguir e
+ignore e/ou delete este e-mail.
-Follow this link to verify your identity:
+Sua senha não será modificada até que você confirme este pedido.
+
+Siga este link para confirmá-lo:
{{$reset_link}}
-You will then receive a follow-up message containing the new password.
+Você receberá então um outro e-mail contendo uma nova senha.
-You may change that password from your account settings page after logging in.
+Você poderá trocar essa senha a partir das suas configurações de conta,
+após autenticar-se.
-The login details are as follows:
+Os detalhes de autenticação são os seguintes:
-Site Location: {{$siteurl}}
-Login Name: {{$email}}
+Localização do site: {{$siteurl}}
+Nome: {{$email}}
-Sincerely,
- {{$sitename}} Administrator
+Atenciosamente,
+ {{$sitename}} Administrador
diff --git a/view/pt-br/messages.po b/view/pt-br/messages.po
index 3decef9bf..74288b429 100644
--- a/view/pt-br/messages.po
+++ b/view/pt-br/messages.po
@@ -15,8 +15,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Red Matrix\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-02-14 00:02-0800\n"
-"PO-Revision-Date: 2014-02-20 21:57+0000\n"
+"POT-Creation-Date: 2014-02-21 00:03-0800\n"
+"PO-Revision-Date: 2014-02-24 17:27+0000\n"
"Last-Translator: solstag <solstag@member.fsf.org>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/red-matrix/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
@@ -30,7 +30,7 @@ msgid "Categories"
msgstr "Categorias"
#: ../../include/widgets.php:115 ../../include/widgets.php:155
-#: ../../include/Contact.php:104 ../../include/identity.php:628
+#: ../../include/Contact.php:107 ../../include/identity.php:632
#: ../../mod/directory.php:184 ../../mod/match.php:62
#: ../../mod/dirprofile.php:170 ../../mod/suggest.php:51
msgid "Connect"
@@ -69,8 +69,8 @@ msgstr "Por exemplo: joao@exemplo.com, http://exemplo.com/maria"
msgid "Notes"
msgstr "Notas"
-#: ../../include/widgets.php:173 ../../include/text.php:754
-#: ../../include/text.php:768 ../../mod/filer.php:36
+#: ../../include/widgets.php:173 ../../include/text.php:759
+#: ../../include/text.php:773 ../../mod/filer.php:36
msgid "Save"
msgstr "Salvar"
@@ -96,7 +96,7 @@ msgstr "Pastas salvas"
msgid "Everything"
msgstr "Tudo"
-#: ../../include/widgets.php:318 ../../include/items.php:3636
+#: ../../include/widgets.php:318
msgid "Archives"
msgstr "Arquivos"
@@ -112,7 +112,7 @@ msgstr "Eu"
msgid "Best Friends"
msgstr "Melhores amigos"
-#: ../../include/widgets.php:373 ../../include/identity.php:310
+#: ../../include/widgets.php:373 ../../include/identity.php:314
#: ../../include/profile_selectors.php:42 ../../mod/connedit.php:392
msgid "Friends"
msgstr "Amigos"
@@ -175,7 +175,7 @@ msgid "Channel Sources"
msgstr "Fontes do canal"
#: ../../include/widgets.php:487 ../../include/nav.php:181
-#: ../../mod/admin.php:837 ../../mod/admin.php:1042
+#: ../../mod/admin.php:838 ../../mod/admin.php:1043
msgid "Settings"
msgstr "Configurações"
@@ -226,7 +226,7 @@ msgstr "Visite o %2$s de %1$s"
msgid "%1$s has an updated %2$s, changing %3$s."
msgstr "%1$s atualizou %2$s, alterando %3$s."
-#: ../../include/nav.php:72 ../../include/nav.php:91 ../../boot.php:1423
+#: ../../include/nav.php:72 ../../include/nav.php:91 ../../boot.php:1425
msgid "Logout"
msgstr "Sair"
@@ -236,7 +236,7 @@ msgstr "Encerrar essa sessão"
#: ../../include/nav.php:75 ../../include/nav.php:125
msgid "Home"
-msgstr "Meu canal"
+msgstr "Ver canal"
#: ../../include/nav.php:75
msgid "Your posts and conversations"
@@ -310,7 +310,7 @@ msgstr "Páginas web"
msgid "Your webpages"
msgstr "Suas páginas web"
-#: ../../include/nav.php:89 ../../boot.php:1424
+#: ../../include/nav.php:89 ../../boot.php:1426
msgid "Login"
msgstr "Entrar"
@@ -331,7 +331,7 @@ msgstr "Clique para se autenticar com seu hub de origem"
msgid "Home Page"
msgstr "Página inicial"
-#: ../../include/nav.php:129 ../../mod/register.php:206 ../../boot.php:1400
+#: ../../include/nav.php:129 ../../mod/register.php:206 ../../boot.php:1402
msgid "Register"
msgstr "Registrar"
@@ -355,8 +355,8 @@ msgstr "Aplicações"
msgid "Addon applications, utilities, games"
msgstr "Aplicações adicionais, utilitários, jogos"
-#: ../../include/nav.php:139 ../../include/text.php:752
-#: ../../include/text.php:766 ../../mod/search.php:29
+#: ../../include/nav.php:139 ../../include/text.php:757
+#: ../../include/text.php:771 ../../mod/search.php:29
msgid "Search"
msgstr "Pesquisar"
@@ -516,320 +516,320 @@ msgstr "mais antigo"
msgid "newer"
msgstr "mais recente"
-#: ../../include/text.php:670
+#: ../../include/text.php:675
msgid "No connections"
msgstr "Nenhuma conexão"
-#: ../../include/text.php:681
+#: ../../include/text.php:686
#, php-format
msgid "%d Connection"
msgid_plural "%d Connections"
msgstr[0] "%d conexão"
msgstr[1] "%d conexões"
-#: ../../include/text.php:693
+#: ../../include/text.php:698
msgid "View Connections"
msgstr "Ver conexões"
-#: ../../include/text.php:834
+#: ../../include/text.php:839
msgid "poke"
msgstr "cutucar"
-#: ../../include/text.php:834 ../../include/conversation.php:240
+#: ../../include/text.php:839 ../../include/conversation.php:240
msgid "poked"
msgstr "cutucado"
-#: ../../include/text.php:835
+#: ../../include/text.php:840
msgid "ping"
msgstr "pingar"
-#: ../../include/text.php:835
+#: ../../include/text.php:840
msgid "pinged"
msgstr "pingou"
-#: ../../include/text.php:836
+#: ../../include/text.php:841
msgid "prod"
msgstr "espetar"
-#: ../../include/text.php:836
+#: ../../include/text.php:841
msgid "prodded"
msgstr "espetou"
-#: ../../include/text.php:837
+#: ../../include/text.php:842
msgid "slap"
msgstr "estapear"
-#: ../../include/text.php:837
+#: ../../include/text.php:842
msgid "slapped"
msgstr "estapeou"
-#: ../../include/text.php:838
+#: ../../include/text.php:843
msgid "finger"
msgstr "dar um toque"
-#: ../../include/text.php:838
+#: ../../include/text.php:843
msgid "fingered"
msgstr "deu um toque"
-#: ../../include/text.php:839
+#: ../../include/text.php:844
msgid "rebuff"
msgstr "rebater"
-#: ../../include/text.php:839
+#: ../../include/text.php:844
msgid "rebuffed"
msgstr "rebateu"
-#: ../../include/text.php:851
+#: ../../include/text.php:856
msgid "happy"
msgstr "feliz"
-#: ../../include/text.php:852
+#: ../../include/text.php:857
msgid "sad"
msgstr "triste"
-#: ../../include/text.php:853
+#: ../../include/text.php:858
msgid "mellow"
msgstr "suave"
-#: ../../include/text.php:854
+#: ../../include/text.php:859
msgid "tired"
msgstr "cansado"
-#: ../../include/text.php:855
+#: ../../include/text.php:860
msgid "perky"
msgstr "animado/a"
-#: ../../include/text.php:856
+#: ../../include/text.php:861
msgid "angry"
msgstr "nervoso"
-#: ../../include/text.php:857
+#: ../../include/text.php:862
msgid "stupified"
msgstr "embasbacado/a"
-#: ../../include/text.php:858
+#: ../../include/text.php:863
msgid "puzzled"
msgstr "confuso/a"
-#: ../../include/text.php:859
+#: ../../include/text.php:864
msgid "interested"
msgstr "interessado"
-#: ../../include/text.php:860
+#: ../../include/text.php:865
msgid "bitter"
msgstr "amargo/a"
-#: ../../include/text.php:861
+#: ../../include/text.php:866
msgid "cheerful"
msgstr "alegre"
-#: ../../include/text.php:862
+#: ../../include/text.php:867
msgid "alive"
msgstr "vivo"
-#: ../../include/text.php:863
+#: ../../include/text.php:868
msgid "annoyed"
msgstr "aborrecido"
-#: ../../include/text.php:864
+#: ../../include/text.php:869
msgid "anxious"
msgstr "ansioso"
-#: ../../include/text.php:865
+#: ../../include/text.php:870
msgid "cranky"
msgstr "irritado/a"
-#: ../../include/text.php:866
+#: ../../include/text.php:871
msgid "disturbed"
msgstr "perturbado"
-#: ../../include/text.php:867
+#: ../../include/text.php:872
msgid "frustrated"
msgstr "frustrado"
-#: ../../include/text.php:868
+#: ../../include/text.php:873
msgid "motivated"
msgstr "motivado"
-#: ../../include/text.php:869
+#: ../../include/text.php:874
msgid "relaxed"
msgstr "relaxado"
-#: ../../include/text.php:870
+#: ../../include/text.php:875
msgid "surprised"
msgstr "surpreso"
-#: ../../include/text.php:1031
+#: ../../include/text.php:1036
msgid "Monday"
msgstr "Segunda"
-#: ../../include/text.php:1031
+#: ../../include/text.php:1036
msgid "Tuesday"
msgstr "Terça"
-#: ../../include/text.php:1031
+#: ../../include/text.php:1036
msgid "Wednesday"
msgstr "Quarta"
-#: ../../include/text.php:1031
+#: ../../include/text.php:1036
msgid "Thursday"
msgstr "Quinta"
-#: ../../include/text.php:1031
+#: ../../include/text.php:1036
msgid "Friday"
msgstr "Sexta"
-#: ../../include/text.php:1031
+#: ../../include/text.php:1036
msgid "Saturday"
msgstr "SaÌbado"
-#: ../../include/text.php:1031
+#: ../../include/text.php:1036
msgid "Sunday"
msgstr "Domingo"
-#: ../../include/text.php:1035
+#: ../../include/text.php:1040
msgid "January"
msgstr "Janeiro"
-#: ../../include/text.php:1035
+#: ../../include/text.php:1040
msgid "February"
msgstr "Fevereiro"
-#: ../../include/text.php:1035
+#: ../../include/text.php:1040
msgid "March"
msgstr "Março"
-#: ../../include/text.php:1035
+#: ../../include/text.php:1040
msgid "April"
msgstr "Abril"
-#: ../../include/text.php:1035
+#: ../../include/text.php:1040
msgid "May"
msgstr "Maio"
-#: ../../include/text.php:1035
+#: ../../include/text.php:1040
msgid "June"
msgstr "Junho"
-#: ../../include/text.php:1035
+#: ../../include/text.php:1040
msgid "July"
msgstr "Julho"
-#: ../../include/text.php:1035
+#: ../../include/text.php:1040
msgid "August"
msgstr "Agosto"
-#: ../../include/text.php:1035
+#: ../../include/text.php:1040
msgid "September"
msgstr "Setembro"
-#: ../../include/text.php:1035
+#: ../../include/text.php:1040
msgid "October"
msgstr "Outubro"
-#: ../../include/text.php:1035
+#: ../../include/text.php:1040
msgid "November"
msgstr "Novembro"
-#: ../../include/text.php:1035
+#: ../../include/text.php:1040
msgid "December"
msgstr "Dezembro"
-#: ../../include/text.php:1113
+#: ../../include/text.php:1118
msgid "unknown.???"
msgstr "desconhecido.???"
-#: ../../include/text.php:1114
+#: ../../include/text.php:1119
msgid "bytes"
msgstr "bytes"
-#: ../../include/text.php:1149
+#: ../../include/text.php:1154
msgid "remove category"
msgstr "remover categoria"
-#: ../../include/text.php:1171
+#: ../../include/text.php:1176
msgid "remove from file"
msgstr "remover do arquivo"
-#: ../../include/text.php:1229 ../../include/text.php:1241
+#: ../../include/text.php:1234 ../../include/text.php:1246
msgid "Click to open/close"
msgstr "Clique para abrir/fechar"
-#: ../../include/text.php:1417 ../../mod/events.php:332
+#: ../../include/text.php:1401 ../../mod/events.php:332
msgid "link to source"
-msgstr "exibir a origem"
+msgstr "Link para a origem"
-#: ../../include/text.php:1436
+#: ../../include/text.php:1420
msgid "Select a page layout: "
msgstr "Selecione um layout de página:"
-#: ../../include/text.php:1439 ../../include/text.php:1504
+#: ../../include/text.php:1423 ../../include/text.php:1488
msgid "default"
msgstr "default"
-#: ../../include/text.php:1475
+#: ../../include/text.php:1459
msgid "Page content type: "
msgstr "Tipo de conteúdo da página: "
-#: ../../include/text.php:1516
+#: ../../include/text.php:1500
msgid "Select an alternate language"
msgstr "Selecione um idioma alternativo"
-#: ../../include/text.php:1637 ../../include/conversation.php:117
+#: ../../include/text.php:1621 ../../include/conversation.php:117
#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:45
msgid "photo"
msgstr "foto"
-#: ../../include/text.php:1640 ../../include/conversation.php:120
+#: ../../include/text.php:1624 ../../include/conversation.php:120
#: ../../mod/tagger.php:49
msgid "event"
msgstr "evento"
-#: ../../include/text.php:1643 ../../include/conversation.php:145
+#: ../../include/text.php:1627 ../../include/conversation.php:145
#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:53
msgid "status"
msgstr "status"
-#: ../../include/text.php:1645 ../../include/conversation.php:147
+#: ../../include/text.php:1629 ../../include/conversation.php:147
#: ../../mod/tagger.php:55
msgid "comment"
msgstr "comentário"
-#: ../../include/text.php:1650
+#: ../../include/text.php:1634
msgid "activity"
msgstr "atividade"
-#: ../../include/text.php:1907
+#: ../../include/text.php:1891
msgid "Design"
msgstr "Design"
-#: ../../include/text.php:1909
+#: ../../include/text.php:1893
msgid "Blocks"
msgstr "Blocos"
-#: ../../include/text.php:1910
+#: ../../include/text.php:1894
msgid "Menus"
msgstr "Menus"
-#: ../../include/text.php:1911
+#: ../../include/text.php:1895
msgid "Layouts"
msgstr "Layouts"
-#: ../../include/text.php:1912
+#: ../../include/text.php:1896
msgid "Pages"
msgstr "Páginas"
-#: ../../include/bbcode.php:128 ../../include/bbcode.php:594
-#: ../../include/bbcode.php:597 ../../include/bbcode.php:602
-#: ../../include/bbcode.php:605 ../../include/bbcode.php:608
-#: ../../include/bbcode.php:611 ../../include/bbcode.php:616
-#: ../../include/bbcode.php:619 ../../include/bbcode.php:624
-#: ../../include/bbcode.php:627 ../../include/bbcode.php:630
-#: ../../include/bbcode.php:633
+#: ../../include/bbcode.php:128 ../../include/bbcode.php:601
+#: ../../include/bbcode.php:604 ../../include/bbcode.php:609
+#: ../../include/bbcode.php:612 ../../include/bbcode.php:615
+#: ../../include/bbcode.php:618 ../../include/bbcode.php:623
+#: ../../include/bbcode.php:626 ../../include/bbcode.php:631
+#: ../../include/bbcode.php:634 ../../include/bbcode.php:637
+#: ../../include/bbcode.php:640
msgid "Image/photo"
msgstr "Imagem/foto"
-#: ../../include/bbcode.php:163 ../../include/bbcode.php:644
+#: ../../include/bbcode.php:163 ../../include/bbcode.php:651
msgid "Encrypted content"
msgstr "Conteúdo criptografado"
@@ -846,15 +846,15 @@ msgstr "%1$s escreveu a seguinte %2$s %3$s"
msgid "post"
msgstr "publicação"
-#: ../../include/bbcode.php:562 ../../include/bbcode.php:582
+#: ../../include/bbcode.php:569 ../../include/bbcode.php:589
msgid "$1 wrote:"
msgstr "$1 escreveu:"
-#: ../../include/Contact.php:120
+#: ../../include/Contact.php:123
msgid "New window"
msgstr "Nova janela"
-#: ../../include/Contact.php:121
+#: ../../include/Contact.php:124
msgid "Open the selected location in a different window or browser tab"
msgstr "Abre a localização selecionada em outra aba ou janela"
@@ -1127,8 +1127,8 @@ msgstr "OStatus"
msgid "RSS/Atom"
msgstr "RSS/Atom"
-#: ../../include/contact_selectors.php:77 ../../mod/admin.php:741
-#: ../../mod/admin.php:750 ../../boot.php:1426
+#: ../../include/contact_selectors.php:77 ../../mod/admin.php:742
+#: ../../mod/admin.php:751 ../../boot.php:1428
msgid "Email"
msgstr "E-mail"
@@ -1246,7 +1246,7 @@ msgstr "Início:"
msgid "Finishes:"
msgstr "Fim:"
-#: ../../include/event.php:40 ../../include/identity.php:679
+#: ../../include/event.php:40 ../../include/identity.php:683
#: ../../include/bb2diaspora.php:455 ../../mod/events.php:462
#: ../../mod/directory.php:157 ../../mod/dirprofile.php:111
msgid "Location:"
@@ -1263,7 +1263,7 @@ msgstr "Um grupo com esse nome, anteriormente excluído, foi reativado. PermissÃ
msgid "Default privacy group for new contacts"
msgstr "Grupo de privacidade padrão para novos contatos"
-#: ../../include/group.php:242 ../../mod/admin.php:750
+#: ../../include/group.php:242 ../../mod/admin.php:751
msgid "All Channels"
msgstr "Todos os canais"
@@ -1303,7 +1303,7 @@ msgstr "exibir mais"
#: ../../include/js_strings.php:8
msgid "show fewer"
-msgstr "mostrar menos"
+msgstr "exibir menos"
#: ../../include/js_strings.php:9
msgid "Password too short"
@@ -1414,39 +1414,40 @@ msgstr "Não foi possível determinar o remetente."
msgid "Stored post could not be verified."
msgstr "Não foi possível verificar a publicação armazenada."
-#: ../../include/photo/photo_driver.php:637 ../../include/photos.php:51
+#: ../../include/photo/photo_driver.php:643 ../../include/photos.php:51
#: ../../mod/profile_photo.php:78 ../../mod/profile_photo.php:225
#: ../../mod/profile_photo.php:336 ../../mod/photos.php:91
#: ../../mod/photos.php:656 ../../mod/photos.php:678
msgid "Profile Photos"
msgstr "Fotos do perfil"
-#: ../../include/attach.php:98 ../../include/attach.php:129
-#: ../../include/attach.php:185 ../../include/attach.php:200
-#: ../../include/attach.php:233 ../../include/attach.php:247
-#: ../../include/attach.php:268 ../../include/attach.php:463
-#: ../../include/attach.php:541 ../../include/chat.php:113
-#: ../../include/photos.php:15 ../../include/items.php:3515
+#: ../../include/attach.php:119 ../../include/attach.php:166
+#: ../../include/attach.php:229 ../../include/attach.php:243
+#: ../../include/attach.php:283 ../../include/attach.php:297
+#: ../../include/attach.php:322 ../../include/attach.php:513
+#: ../../include/attach.php:585 ../../include/chat.php:113
+#: ../../include/photos.php:15 ../../include/items.php:3575
#: ../../mod/common.php:35 ../../mod/events.php:140 ../../mod/thing.php:247
#: ../../mod/thing.php:263 ../../mod/thing.php:298 ../../mod/invite.php:13
-#: ../../mod/invite.php:104 ../../mod/item.php:182 ../../mod/item.php:190
-#: ../../mod/menu.php:44 ../../mod/webpages.php:40 ../../mod/api.php:26
-#: ../../mod/api.php:31 ../../mod/bookmarks.php:46 ../../mod/chat.php:87
-#: ../../mod/chat.php:92 ../../mod/viewconnections.php:22
-#: ../../mod/viewconnections.php:27 ../../mod/delegate.php:6
-#: ../../mod/mitem.php:73 ../../mod/group.php:9 ../../mod/viewsrc.php:12
-#: ../../mod/editpost.php:13 ../../mod/connedit.php:182
-#: ../../mod/layouts.php:27 ../../mod/layouts.php:42 ../../mod/page.php:30
-#: ../../mod/page.php:80 ../../mod/network.php:12 ../../mod/profiles.php:152
+#: ../../mod/invite.php:104 ../../mod/settings.php:493 ../../mod/menu.php:44
+#: ../../mod/webpages.php:40 ../../mod/api.php:26 ../../mod/api.php:31
+#: ../../mod/bookmarks.php:46 ../../mod/item.php:182 ../../mod/item.php:190
+#: ../../mod/chat.php:87 ../../mod/chat.php:92
+#: ../../mod/viewconnections.php:22 ../../mod/viewconnections.php:27
+#: ../../mod/delegate.php:6 ../../mod/mitem.php:73 ../../mod/group.php:9
+#: ../../mod/viewsrc.php:12 ../../mod/editpost.php:13
+#: ../../mod/connedit.php:182 ../../mod/layouts.php:27
+#: ../../mod/layouts.php:42 ../../mod/page.php:30 ../../mod/page.php:80
+#: ../../mod/network.php:12 ../../mod/profiles.php:152
#: ../../mod/profiles.php:453 ../../mod/sources.php:66 ../../mod/setup.php:200
#: ../../mod/new_channel.php:66 ../../mod/new_channel.php:97
-#: ../../mod/achievements.php:27 ../../mod/settings.php:493
-#: ../../mod/manage.php:6 ../../mod/mail.php:108 ../../mod/editlayout.php:48
-#: ../../mod/profile_photo.php:187 ../../mod/profile_photo.php:200
-#: ../../mod/connections.php:169 ../../mod/notifications.php:66
-#: ../../mod/blocks.php:29 ../../mod/blocks.php:44
-#: ../../mod/editwebpage.php:44 ../../mod/editwebpage.php:83
-#: ../../mod/poke.php:128 ../../mod/channel.php:88 ../../mod/channel.php:188
+#: ../../mod/achievements.php:27 ../../mod/manage.php:6 ../../mod/mail.php:108
+#: ../../mod/editlayout.php:48 ../../mod/profile_photo.php:187
+#: ../../mod/profile_photo.php:200 ../../mod/connections.php:169
+#: ../../mod/notifications.php:66 ../../mod/blocks.php:29
+#: ../../mod/blocks.php:44 ../../mod/editwebpage.php:44
+#: ../../mod/editwebpage.php:83 ../../mod/poke.php:128
+#: ../../mod/channel.php:88 ../../mod/channel.php:188
#: ../../mod/channel.php:231 ../../mod/fsuggest.php:78
#: ../../mod/editblock.php:48 ../../mod/filestorage.php:10
#: ../../mod/filestorage.php:59 ../../mod/filestorage.php:75
@@ -1457,61 +1458,61 @@ msgstr "Fotos do perfil"
msgid "Permission denied."
msgstr "Permissão negada."
-#: ../../include/attach.php:180 ../../include/attach.php:228
+#: ../../include/attach.php:224 ../../include/attach.php:278
msgid "Item was not found."
msgstr "O item não foi encontrado."
-#: ../../include/attach.php:281
+#: ../../include/attach.php:335
msgid "No source file."
msgstr "Nenhum arquivo de origem."
-#: ../../include/attach.php:298
+#: ../../include/attach.php:352
msgid "Cannot locate file to replace"
msgstr "Não foi possível locar o arquivo a ser substituído"
-#: ../../include/attach.php:316
+#: ../../include/attach.php:370
msgid "Cannot locate file to revise/update"
msgstr "Não foi possível localizar o arquivo a ser revisado/atualizado"
-#: ../../include/attach.php:327
+#: ../../include/attach.php:381
#, php-format
msgid "File exceeds size limit of %d"
msgstr "O arquivo excedeu o tamanho limite de %d"
-#: ../../include/attach.php:339
+#: ../../include/attach.php:393
#, php-format
msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
msgstr "Você atingiu o seu limite de %1$.0f Mbytes de armazenamento de anexos."
-#: ../../include/attach.php:423
+#: ../../include/attach.php:475
msgid "File upload failed. Possible system limit or action terminated."
msgstr "Não foi possível enviar o arquivo. Provável limite do sistema ou a ação foi encerrada."
-#: ../../include/attach.php:435
+#: ../../include/attach.php:487
msgid "Stored file could not be verified. Upload failed."
msgstr "Não foi possível verificar o arquivo armazenado. Falha no envio."
-#: ../../include/attach.php:479 ../../include/attach.php:496
+#: ../../include/attach.php:528 ../../include/attach.php:545
msgid "Path not available."
msgstr "O caminho não está disponível."
-#: ../../include/attach.php:546
+#: ../../include/attach.php:590
msgid "Empty pathname"
msgstr "O nome do caminho está em branco"
-#: ../../include/attach.php:564
+#: ../../include/attach.php:606
msgid "duplicate filename or path"
msgstr "nome de arquivo ou caminho duplicado"
-#: ../../include/attach.php:589
+#: ../../include/attach.php:630
msgid "Path not found."
msgstr "Caminho não encontrado."
-#: ../../include/attach.php:634
+#: ../../include/attach.php:674
msgid "mkdir failed."
msgstr "mkdir falhou."
-#: ../../include/attach.php:638
+#: ../../include/attach.php:678
msgid "database storage failed."
msgstr "armazenamento de banco de dados falhou."
@@ -1554,8 +1555,8 @@ msgid "Select"
msgstr "Selecionar"
#: ../../include/conversation.php:632 ../../include/ItemObject.php:108
-#: ../../mod/thing.php:236 ../../mod/group.php:176 ../../mod/admin.php:745
-#: ../../mod/connedit.php:359 ../../mod/settings.php:579
+#: ../../mod/thing.php:236 ../../mod/settings.php:579 ../../mod/group.php:176
+#: ../../mod/admin.php:746 ../../mod/connedit.php:359
#: ../../mod/filestorage.php:171 ../../mod/photos.php:1044
msgid "Delete"
msgstr "Excluir"
@@ -1597,7 +1598,7 @@ msgid "View in context"
msgstr "Ver no contexto"
#: ../../include/conversation.php:707 ../../include/conversation.php:1120
-#: ../../include/ItemObject.php:259 ../../mod/editpost.php:112
+#: ../../include/ItemObject.php:259 ../../mod/editpost.php:121
#: ../../mod/mail.php:222 ../../mod/mail.php:336 ../../mod/editlayout.php:115
#: ../../mod/editwebpage.php:153 ../../mod/editblock.php:129
#: ../../mod/photos.php:975
@@ -1728,7 +1729,7 @@ msgid "Expires YYYY-MM-DD HH:MM"
msgstr "Expira YYYY-MM-DD HH:MM"
#: ../../include/conversation.php:1083 ../../include/ItemObject.php:557
-#: ../../mod/webpages.php:122 ../../mod/editpost.php:132
+#: ../../mod/webpages.php:122 ../../mod/editpost.php:141
#: ../../mod/editlayout.php:136 ../../mod/editwebpage.php:177
#: ../../mod/editblock.php:151 ../../mod/photos.php:995
msgid "Preview"
@@ -1742,7 +1743,7 @@ msgstr "Compartilhar"
msgid "Page link title"
msgstr "Título do link da página"
-#: ../../include/conversation.php:1101 ../../mod/editpost.php:104
+#: ../../include/conversation.php:1101 ../../mod/editpost.php:113
#: ../../mod/mail.php:219 ../../mod/mail.php:332 ../../mod/editlayout.php:107
#: ../../mod/editwebpage.php:145 ../../mod/editblock.php:121
msgid "Upload photo"
@@ -1752,7 +1753,7 @@ msgstr "Enviar foto"
msgid "upload photo"
msgstr "enviar foto"
-#: ../../include/conversation.php:1103 ../../mod/editpost.php:105
+#: ../../include/conversation.php:1103 ../../mod/editpost.php:114
#: ../../mod/mail.php:220 ../../mod/mail.php:333 ../../mod/editlayout.php:108
#: ../../mod/editwebpage.php:146 ../../mod/editblock.php:122
msgid "Attach file"
@@ -1762,7 +1763,7 @@ msgstr "Anexar arquivo"
msgid "attach file"
msgstr "anexar arquivo"
-#: ../../include/conversation.php:1105 ../../mod/editpost.php:106
+#: ../../include/conversation.php:1105 ../../mod/editpost.php:115
#: ../../mod/mail.php:221 ../../mod/mail.php:334 ../../mod/editlayout.php:109
#: ../../mod/editwebpage.php:147 ../../mod/editblock.php:123
msgid "Insert web link"
@@ -1788,7 +1789,7 @@ msgstr "Inserir link de áudio"
msgid "audio link"
msgstr "link de áudio"
-#: ../../include/conversation.php:1111 ../../mod/editpost.php:110
+#: ../../include/conversation.php:1111 ../../mod/editpost.php:119
#: ../../mod/editlayout.php:113 ../../mod/editwebpage.php:151
#: ../../mod/editblock.php:127
msgid "Set your location"
@@ -1798,7 +1799,7 @@ msgstr "Definir sua localização"
msgid "set location"
msgstr "definir localização"
-#: ../../include/conversation.php:1113 ../../mod/editpost.php:111
+#: ../../include/conversation.php:1113 ../../mod/editpost.php:120
#: ../../mod/editlayout.php:114 ../../mod/editwebpage.php:152
#: ../../mod/editblock.php:128
msgid "Clear browser location"
@@ -1808,19 +1809,19 @@ msgstr "Limpar a localização do navegador"
msgid "clear location"
msgstr "limpar a localização"
-#: ../../include/conversation.php:1116 ../../mod/editpost.php:124
+#: ../../include/conversation.php:1116 ../../mod/editpost.php:133
#: ../../mod/editlayout.php:127 ../../mod/editwebpage.php:169
#: ../../mod/editblock.php:142
msgid "Set title"
msgstr "Definir o título"
-#: ../../include/conversation.php:1119 ../../mod/editpost.php:126
+#: ../../include/conversation.php:1119 ../../mod/editpost.php:135
#: ../../mod/editlayout.php:130 ../../mod/editwebpage.php:171
#: ../../mod/editblock.php:145
msgid "Categories (comma-separated list)"
msgstr "Categorias (lista separada por vírgulas)"
-#: ../../include/conversation.php:1121 ../../mod/editpost.php:113
+#: ../../include/conversation.php:1121 ../../mod/editpost.php:122
#: ../../mod/editlayout.php:116 ../../mod/editwebpage.php:154
#: ../../mod/editblock.php:130
msgid "Permission settings"
@@ -1830,43 +1831,43 @@ msgstr "Configurações de permissão"
msgid "permissions"
msgstr "permissões"
-#: ../../include/conversation.php:1130 ../../mod/editpost.php:121
+#: ../../include/conversation.php:1130 ../../mod/editpost.php:130
#: ../../mod/editlayout.php:124 ../../mod/editwebpage.php:164
#: ../../mod/editblock.php:139
msgid "Public post"
msgstr "Publicação pública"
-#: ../../include/conversation.php:1132 ../../mod/editpost.php:127
+#: ../../include/conversation.php:1132 ../../mod/editpost.php:136
#: ../../mod/editlayout.php:131 ../../mod/editwebpage.php:172
#: ../../mod/editblock.php:146
msgid "Example: bob@example.com, mary@example.com"
msgstr "Por exemplo: joao@exemplo.com, maria@exemplo.com"
-#: ../../include/conversation.php:1145 ../../mod/editpost.php:138
+#: ../../include/conversation.php:1145 ../../mod/editpost.php:147
#: ../../mod/mail.php:226 ../../mod/mail.php:339 ../../mod/editlayout.php:141
#: ../../mod/editwebpage.php:182 ../../mod/editblock.php:156
msgid "Set expiration date"
msgstr "Definir data de expiração"
#: ../../include/conversation.php:1147 ../../include/ItemObject.php:560
-#: ../../mod/editpost.php:140 ../../mod/mail.php:228 ../../mod/mail.php:341
+#: ../../mod/editpost.php:149 ../../mod/mail.php:228 ../../mod/mail.php:341
msgid "Encrypt text"
msgstr "Encriptar texto"
-#: ../../include/conversation.php:1149 ../../mod/editpost.php:142
+#: ../../include/conversation.php:1149 ../../mod/editpost.php:151
msgid "OK"
msgstr "Ok"
-#: ../../include/conversation.php:1150 ../../mod/tagrm.php:11
-#: ../../mod/tagrm.php:94 ../../mod/editpost.php:143
-#: ../../mod/settings.php:517 ../../mod/settings.php:543
-#: ../../mod/fbrowser.php:82 ../../mod/fbrowser.php:117
+#: ../../include/conversation.php:1150 ../../mod/settings.php:517
+#: ../../mod/settings.php:543 ../../mod/tagrm.php:11 ../../mod/tagrm.php:94
+#: ../../mod/editpost.php:152 ../../mod/fbrowser.php:82
+#: ../../mod/fbrowser.php:117
msgid "Cancel"
msgstr "Cancelar"
#: ../../include/conversation.php:1381
msgid "Commented Order"
-msgstr "Recentemente comentados"
+msgstr "Recentes e comentados"
#: ../../include/conversation.php:1384
msgid "Sort by Comment Date"
@@ -1874,7 +1875,7 @@ msgstr "Ordenar pela data do último comentário"
#: ../../include/conversation.php:1387
msgid "Posted Order"
-msgstr "Ordem de publicação"
+msgstr "Recentemente publicados"
#: ../../include/conversation.php:1390
msgid "Sort by Post Date"
@@ -1953,238 +1954,238 @@ msgstr "Links guardados"
msgid "Manage Webpages"
msgstr "Administrar páginas web"
-#: ../../include/identity.php:29 ../../mod/item.php:1177
+#: ../../include/identity.php:30 ../../mod/item.php:1187
msgid "Unable to obtain identity information from database"
msgstr "Não foi possível obter a informação da identidade a partir do banco de dados"
-#: ../../include/identity.php:62
+#: ../../include/identity.php:63
msgid "Empty name"
msgstr "O nome está em branco"
-#: ../../include/identity.php:64
+#: ../../include/identity.php:65
msgid "Name too long"
msgstr "O nome é muito grande"
-#: ../../include/identity.php:143
+#: ../../include/identity.php:147
msgid "No account identifier"
msgstr "Nenhuma identificação da conta"
-#: ../../include/identity.php:153
+#: ../../include/identity.php:157
msgid "Nickname is required."
msgstr "É necessário informar o apelido."
-#: ../../include/identity.php:167
+#: ../../include/identity.php:171
msgid ""
"Nickname has unsupported characters or is already being used on this site."
msgstr "A identificação possui caracteres não suportados ou já está sendo usada nesse site."
-#: ../../include/identity.php:226
+#: ../../include/identity.php:230
msgid "Unable to retrieve created identity"
msgstr "Não foi possível recuperar a identidade criada"
-#: ../../include/identity.php:285
+#: ../../include/identity.php:289
msgid "Default Profile"
msgstr "Perfil padrão"
-#: ../../include/identity.php:477
+#: ../../include/identity.php:481
msgid "Requested channel is not available."
msgstr "Canal solicitado não está disponível."
-#: ../../include/identity.php:489
+#: ../../include/identity.php:493
msgid " Sorry, you don't have the permission to view this profile. "
msgstr "Desculpe, você não tem permissão para ver este perfil."
-#: ../../include/identity.php:524 ../../mod/webpages.php:8
+#: ../../include/identity.php:528 ../../mod/webpages.php:8
#: ../../mod/connect.php:13 ../../mod/layouts.php:8
#: ../../mod/achievements.php:8 ../../mod/blocks.php:10
#: ../../mod/profile.php:16 ../../mod/filestorage.php:40
msgid "Requested profile is not available."
msgstr "O perfil solicitado não está disponível."
-#: ../../include/identity.php:642 ../../mod/profiles.php:603
+#: ../../include/identity.php:646 ../../mod/profiles.php:603
msgid "Change profile photo"
msgstr "Mudar a foto do perfil"
-#: ../../include/identity.php:648
+#: ../../include/identity.php:652
msgid "Profiles"
msgstr "Perfis"
-#: ../../include/identity.php:648
+#: ../../include/identity.php:652
msgid "Manage/edit profiles"
msgstr "Administrar/editar perfis"
-#: ../../include/identity.php:649 ../../mod/profiles.php:604
+#: ../../include/identity.php:653 ../../mod/profiles.php:604
msgid "Create New Profile"
msgstr "Criar um novo perfil"
-#: ../../include/identity.php:652
+#: ../../include/identity.php:656
msgid "Edit Profile"
msgstr "Editar perfil"
-#: ../../include/identity.php:663 ../../mod/profiles.php:615
+#: ../../include/identity.php:667 ../../mod/profiles.php:615
msgid "Profile Image"
msgstr "Imagem do perfil"
-#: ../../include/identity.php:666 ../../mod/profiles.php:618
+#: ../../include/identity.php:670 ../../mod/profiles.php:618
msgid "visible to everybody"
msgstr "visível para todos"
-#: ../../include/identity.php:667 ../../mod/profiles.php:619
+#: ../../include/identity.php:671 ../../mod/profiles.php:619
msgid "Edit visibility"
msgstr "Editar a visibilidade"
-#: ../../include/identity.php:681 ../../include/identity.php:908
+#: ../../include/identity.php:685 ../../include/identity.php:912
#: ../../mod/directory.php:159
msgid "Gender:"
msgstr "Gênero:"
-#: ../../include/identity.php:682 ../../include/identity.php:928
+#: ../../include/identity.php:686 ../../include/identity.php:932
#: ../../mod/directory.php:161
msgid "Status:"
msgstr "Situação:"
-#: ../../include/identity.php:683 ../../include/identity.php:939
+#: ../../include/identity.php:687 ../../include/identity.php:943
#: ../../mod/directory.php:163
msgid "Homepage:"
msgstr "Página web:"
-#: ../../include/identity.php:684 ../../mod/dirprofile.php:157
+#: ../../include/identity.php:688 ../../mod/dirprofile.php:157
msgid "Online Now"
msgstr "Online agora"
-#: ../../include/identity.php:752 ../../include/identity.php:832
+#: ../../include/identity.php:756 ../../include/identity.php:836
#: ../../mod/ping.php:262
msgid "g A l F d"
msgstr "G l d F"
-#: ../../include/identity.php:753 ../../include/identity.php:833
+#: ../../include/identity.php:757 ../../include/identity.php:837
msgid "F d"
msgstr "F d"
-#: ../../include/identity.php:798 ../../include/identity.php:873
+#: ../../include/identity.php:802 ../../include/identity.php:877
#: ../../mod/ping.php:284
msgid "[today]"
msgstr "[hoje]"
-#: ../../include/identity.php:810
+#: ../../include/identity.php:814
msgid "Birthday Reminders"
msgstr "Lembres de aniversário"
-#: ../../include/identity.php:811
+#: ../../include/identity.php:815
msgid "Birthdays this week:"
msgstr "Aniversários nesta semana:"
-#: ../../include/identity.php:866
+#: ../../include/identity.php:870
msgid "[No description]"
msgstr "[Sem descrição]"
-#: ../../include/identity.php:884
+#: ../../include/identity.php:888
msgid "Event Reminders"
msgstr "Lembretes de eventos"
-#: ../../include/identity.php:885
+#: ../../include/identity.php:889
msgid "Events this week:"
msgstr "Eventos nesta semana:"
-#: ../../include/identity.php:898 ../../include/identity.php:982
+#: ../../include/identity.php:902 ../../include/identity.php:986
#: ../../mod/profperm.php:107
msgid "Profile"
msgstr "Perfil"
-#: ../../include/identity.php:906 ../../mod/settings.php:924
+#: ../../include/identity.php:910 ../../mod/settings.php:937
msgid "Full Name:"
msgstr "Nome completo:"
-#: ../../include/identity.php:913
+#: ../../include/identity.php:917
msgid "j F, Y"
msgstr "j de F, Y"
-#: ../../include/identity.php:914
+#: ../../include/identity.php:918
msgid "j F"
msgstr "j de F"
-#: ../../include/identity.php:921
+#: ../../include/identity.php:925
msgid "Birthday:"
msgstr "Aniversário:"
-#: ../../include/identity.php:925
+#: ../../include/identity.php:929
msgid "Age:"
msgstr "Idade:"
-#: ../../include/identity.php:934
+#: ../../include/identity.php:938
#, php-format
msgid "for %1$d %2$s"
msgstr "para %1$d %2$s"
-#: ../../include/identity.php:937 ../../mod/profiles.php:526
+#: ../../include/identity.php:941 ../../mod/profiles.php:526
msgid "Sexual Preference:"
msgstr "Preferência sexual:"
-#: ../../include/identity.php:941 ../../mod/profiles.php:528
+#: ../../include/identity.php:945 ../../mod/profiles.php:528
msgid "Hometown:"
msgstr "Cidade natal:"
-#: ../../include/identity.php:943
+#: ../../include/identity.php:947
msgid "Tags:"
msgstr "Etiquetas:"
-#: ../../include/identity.php:945 ../../mod/profiles.php:529
+#: ../../include/identity.php:949 ../../mod/profiles.php:529
msgid "Political Views:"
msgstr "Posição política:"
-#: ../../include/identity.php:947
+#: ../../include/identity.php:951
msgid "Religion:"
msgstr "Religião:"
-#: ../../include/identity.php:949 ../../mod/directory.php:165
+#: ../../include/identity.php:953 ../../mod/directory.php:165
msgid "About:"
msgstr "Sobre:"
-#: ../../include/identity.php:951
+#: ../../include/identity.php:955
msgid "Hobbies/Interests:"
msgstr "Hobbies/Interesses:"
-#: ../../include/identity.php:953 ../../mod/profiles.php:532
+#: ../../include/identity.php:957 ../../mod/profiles.php:532
msgid "Likes:"
msgstr "Gosta de:"
-#: ../../include/identity.php:955 ../../mod/profiles.php:533
+#: ../../include/identity.php:959 ../../mod/profiles.php:533
msgid "Dislikes:"
msgstr "Não gosta de:"
-#: ../../include/identity.php:958
+#: ../../include/identity.php:962
msgid "Contact information and Social Networks:"
msgstr "Informações de contato e redes sociais:"
-#: ../../include/identity.php:960
+#: ../../include/identity.php:964
msgid "My other channels:"
msgstr "Meus outros canais:"
-#: ../../include/identity.php:962
+#: ../../include/identity.php:966
msgid "Musical interests:"
msgstr "Interesses musicais:"
-#: ../../include/identity.php:964
+#: ../../include/identity.php:968
msgid "Books, literature:"
msgstr "Livros, literatura:"
-#: ../../include/identity.php:966
+#: ../../include/identity.php:970
msgid "Television:"
msgstr "Televisão:"
-#: ../../include/identity.php:968
+#: ../../include/identity.php:972
msgid "Film/dance/culture/entertainment:"
msgstr "Filmes/dança/cultura/entretenimento:"
-#: ../../include/identity.php:970
+#: ../../include/identity.php:974
msgid "Love/Romance:"
msgstr "Amor/romance:"
-#: ../../include/identity.php:972
+#: ../../include/identity.php:976
msgid "Work/employment:"
msgstr "Trabalho/emprego:"
-#: ../../include/identity.php:974
+#: ../../include/identity.php:978
msgid "School/education:"
msgstr "Escola/educação:"
@@ -2193,11 +2194,12 @@ msgid "Private Message"
msgstr "Mensagem privada"
#: ../../include/ItemObject.php:96 ../../include/page_widgets.php:8
-#: ../../mod/thing.php:235 ../../mod/menu.php:59 ../../mod/webpages.php:118
-#: ../../mod/editpost.php:103 ../../mod/layouts.php:102
-#: ../../mod/settings.php:578 ../../mod/editlayout.php:106
-#: ../../mod/blocks.php:93 ../../mod/editwebpage.php:144
-#: ../../mod/editblock.php:120 ../../mod/filestorage.php:170
+#: ../../include/menu.php:41 ../../mod/thing.php:235
+#: ../../mod/settings.php:578 ../../mod/menu.php:59 ../../mod/webpages.php:118
+#: ../../mod/editpost.php:112 ../../mod/layouts.php:102
+#: ../../mod/editlayout.php:106 ../../mod/blocks.php:93
+#: ../../mod/editwebpage.php:144 ../../mod/editblock.php:120
+#: ../../mod/filestorage.php:170
msgid "Edit"
msgstr "Editar"
@@ -2288,15 +2290,15 @@ msgstr "Este(a) é você"
#: ../../include/ItemObject.php:548 ../../mod/events.php:469
#: ../../mod/thing.php:283 ../../mod/thing.php:326 ../../mod/invite.php:156
+#: ../../mod/settings.php:516 ../../mod/settings.php:628
+#: ../../mod/settings.php:656 ../../mod/settings.php:680
+#: ../../mod/settings.php:752 ../../mod/settings.php:929
#: ../../mod/chat.php:162 ../../mod/chat.php:192 ../../mod/connect.php:92
-#: ../../mod/group.php:81 ../../mod/admin.php:431 ../../mod/admin.php:738
-#: ../../mod/admin.php:878 ../../mod/admin.php:1077 ../../mod/admin.php:1164
+#: ../../mod/group.php:81 ../../mod/admin.php:431 ../../mod/admin.php:739
+#: ../../mod/admin.php:879 ../../mod/admin.php:1078 ../../mod/admin.php:1165
#: ../../mod/connedit.php:437 ../../mod/profiles.php:506
#: ../../mod/sources.php:104 ../../mod/sources.php:138 ../../mod/setup.php:304
-#: ../../mod/setup.php:347 ../../mod/settings.php:516
-#: ../../mod/settings.php:628 ../../mod/settings.php:656
-#: ../../mod/settings.php:680 ../../mod/settings.php:752
-#: ../../mod/settings.php:916 ../../mod/import.php:387 ../../mod/mail.php:223
+#: ../../mod/setup.php:347 ../../mod/import.php:387 ../../mod/mail.php:223
#: ../../mod/mail.php:335 ../../mod/poke.php:166 ../../mod/fsuggest.php:108
#: ../../mod/filestorage.php:131 ../../mod/photos.php:566
#: ../../mod/photos.php:671 ../../mod/photos.php:954 ../../mod/photos.php:994
@@ -2645,7 +2647,7 @@ msgstr "Você saiu."
msgid "Failed authentication"
msgstr "Não foi possível autenticar"
-#: ../../include/auth.php:203
+#: ../../include/auth.php:203 ../../mod/openid.php:185
msgid "Login failed."
msgstr "Não foi possível entrar."
@@ -3013,35 +3015,31 @@ msgstr "Essa ação excede o limite definido para o seu plano de assinatura."
msgid "This action is not available under your subscription plan."
msgstr "Essa ação não está disponível para o seu plano de assinatura."
-#: ../../include/follow.php:21
+#: ../../include/follow.php:23
msgid "Channel is blocked on this site."
msgstr "O canal está bloqueado neste site."
-#: ../../include/follow.php:26
+#: ../../include/follow.php:28
msgid "Channel location missing."
msgstr "A localização do canal foi perdida"
-#: ../../include/follow.php:43
-msgid "Channel discovery failed. Website may be down or misconfigured."
-msgstr "Não foi possível descobrir o canal. O site pode estar fora do ar ou desconfigurado."
-
-#: ../../include/follow.php:51
-msgid "Response from remote channel was not understood."
-msgstr "A resposta do canal remoto não foi compreendida."
-
-#: ../../include/follow.php:58
+#: ../../include/follow.php:54
msgid "Response from remote channel was incomplete."
msgstr "A resposta do canal remoto está incompleta."
-#: ../../include/follow.php:129
+#: ../../include/follow.php:126
+msgid "Channel discovery failed."
+msgstr "A descoberta de canais falhou."
+
+#: ../../include/follow.php:143
msgid "local account not found."
msgstr "a conta local não foi encontrada."
-#: ../../include/follow.php:138
+#: ../../include/follow.php:152
msgid "Cannot connect to yourself."
msgstr "Não é possível conectar-se consigo mesmo."
-#: ../../include/security.php:280
+#: ../../include/security.php:291
msgid ""
"The form security token was not correct. This probably happened because the "
"form has been opened for too long (>3 hours) before submitting it."
@@ -3145,36 +3143,40 @@ msgid ""
"Extremely advanced. Leave this alone unless you know what you are doing"
msgstr "Extremamente avançado. Não mexa nisso a não ser que saiba o que está fazendo"
-#: ../../include/items.php:231 ../../mod/like.php:55 ../../mod/profperm.php:23
+#: ../../include/items.php:240 ../../mod/like.php:55 ../../mod/profperm.php:23
#: ../../mod/group.php:68 ../../index.php:350
msgid "Permission denied"
msgstr "Permissão negada"
-#: ../../include/items.php:3453 ../../mod/thing.php:78 ../../mod/admin.php:151
-#: ../../mod/admin.php:782 ../../mod/admin.php:985 ../../mod/viewsrc.php:18
+#: ../../include/items.php:756 ../../mod/connedit.php:395
+msgid "Unknown"
+msgstr "Desconhecidos"
+
+#: ../../include/items.php:3513 ../../mod/thing.php:78 ../../mod/admin.php:151
+#: ../../mod/admin.php:783 ../../mod/admin.php:986 ../../mod/viewsrc.php:18
#: ../../mod/home.php:63 ../../mod/display.php:32 ../../mod/filestorage.php:18
msgid "Item not found."
msgstr "O item não foi encontrado."
-#: ../../include/items.php:3809 ../../mod/group.php:38 ../../mod/group.php:140
+#: ../../include/items.php:3849 ../../mod/group.php:38 ../../mod/group.php:140
msgid "Collection not found."
msgstr "A coleção não foi encontrada."
-#: ../../include/items.php:3824
+#: ../../include/items.php:3864
msgid "Collection is empty."
msgstr "A coleção está vazia."
-#: ../../include/items.php:3831
+#: ../../include/items.php:3871
#, php-format
msgid "Collection: %s"
msgstr "Coleção: %s"
-#: ../../include/items.php:3842
+#: ../../include/items.php:3882
#, php-format
msgid "Connection: %s"
msgstr "Conexão: %s"
-#: ../../include/items.php:3845
+#: ../../include/items.php:3885
msgid "Connection not found."
msgstr "A conexão não foi encontrada."
@@ -3410,35 +3412,446 @@ msgid ""
"http://getzot.com"
msgstr "Para maiores informações sobre o Projeto Red Matrix e porque ele tem potencial para mudar a Internet como a conhecemos, por favor visite: http://getzot.com"
-#: ../../mod/item.php:145
-msgid "Unable to locate original post."
-msgstr "Não foi possível localizar a publicação original."
+#: ../../mod/settings.php:71
+msgid "Name is required"
+msgstr "O nome é obrigatório"
-#: ../../mod/item.php:346
-msgid "Empty post discarded."
-msgstr "A publicação em branco foi descartada."
+#: ../../mod/settings.php:75
+msgid "Key and Secret are required"
+msgstr "A chave e o segredo são obrigatórios"
-#: ../../mod/item.php:388
-msgid "Executable content type not permitted to this channel."
-msgstr "Conteúdo de tipo executável não permitido para este canal."
+#: ../../mod/settings.php:79 ../../mod/settings.php:542
+msgid "Update"
+msgstr "Atualizar"
-#: ../../mod/item.php:835
-msgid "System error. Post not saved."
-msgstr "Erro no sistema. A publicação não foi salva."
+#: ../../mod/settings.php:195
+msgid "Passwords do not match. Password unchanged."
+msgstr "As senhas não correspondem. A senha não foi modificada."
-#: ../../mod/item.php:1102 ../../mod/wall_upload.php:41
-msgid "Wall Photos"
-msgstr "Fotos do mural"
+#: ../../mod/settings.php:199
+msgid "Empty passwords are not allowed. Password unchanged."
+msgstr "Não é permitido uma senha em branco. A senha não foi modificada."
-#: ../../mod/item.php:1182
-#, php-format
-msgid "You have reached your limit of %1$.0f top level posts."
-msgstr "Você atingiu o seu limite de %1$.0f publicações de novos tópicos."
+#: ../../mod/settings.php:212
+msgid "Password changed."
+msgstr "A senha foi modificada."
-#: ../../mod/item.php:1188
-#, php-format
-msgid "You have reached your limit of %1$.0f webpages."
-msgstr "Você atingiu o seu limite de %1$.0f páginas web."
+#: ../../mod/settings.php:214
+msgid "Password update failed. Please try again."
+msgstr "Não foi possível atualizar a senha. Por favor, tente novamente."
+
+#: ../../mod/settings.php:228
+msgid "Not valid email."
+msgstr "Não é um e-mail válido"
+
+#: ../../mod/settings.php:231
+msgid "Protected email address. Cannot change to that email."
+msgstr "Endereço de e-mail protegido. Não é possível mudar para esse e-mail."
+
+#: ../../mod/settings.php:240
+msgid "System failure storing new email. Please try again."
+msgstr "Falha do sistema ao armazenar novo e-mail. Por favor, tente novamente."
+
+#: ../../mod/settings.php:444
+msgid "Settings updated."
+msgstr "As configurações foram atualizadas."
+
+#: ../../mod/settings.php:515 ../../mod/settings.php:541
+#: ../../mod/settings.php:577
+msgid "Add application"
+msgstr "Adicionar aplicação"
+
+#: ../../mod/settings.php:518 ../../mod/settings.php:544
+msgid "Name"
+msgstr "Nome"
+
+#: ../../mod/settings.php:518
+msgid "Name of application"
+msgstr "Nome da aplicação"
+
+#: ../../mod/settings.php:519 ../../mod/settings.php:545
+msgid "Consumer Key"
+msgstr "Chave de consumidor"
+
+#: ../../mod/settings.php:519 ../../mod/settings.php:520
+msgid "Automatically generated - change if desired. Max length 20"
+msgstr "Gerado automaticamente - troque se desejável. Comprimento máximo 20"
+
+#: ../../mod/settings.php:520 ../../mod/settings.php:546
+msgid "Consumer Secret"
+msgstr "Segredo de consumidor"
+
+#: ../../mod/settings.php:521 ../../mod/settings.php:547
+msgid "Redirect"
+msgstr "Redirecionamento"
+
+#: ../../mod/settings.php:521
+msgid ""
+"Redirect URI - leave blank unless your application specifically requires "
+"this"
+msgstr "URI de redirecionamento - deixe em branco, a não ser que sua aplicação especificamente requeira isso"
+
+#: ../../mod/settings.php:522 ../../mod/settings.php:548
+msgid "Icon url"
+msgstr "URL do ícone"
+
+#: ../../mod/settings.php:522
+msgid "Optional"
+msgstr "Opcional"
+
+#: ../../mod/settings.php:533
+msgid "You can't edit this application."
+msgstr "Você não pode editar esta aplicação."
+
+#: ../../mod/settings.php:576
+msgid "Connected Apps"
+msgstr "Aplicações conectadas"
+
+#: ../../mod/settings.php:580
+msgid "Client key starts with"
+msgstr "Chave do cliente começa com"
+
+#: ../../mod/settings.php:581
+msgid "No name"
+msgstr "Sem nome"
+
+#: ../../mod/settings.php:582
+msgid "Remove authorization"
+msgstr "Remover autorização"
+
+#: ../../mod/settings.php:593
+msgid "No feature settings configured"
+msgstr "Não foi definida nenhuma configuração do recurso"
+
+#: ../../mod/settings.php:601
+msgid "Feature Settings"
+msgstr "Configurações do recurso"
+
+#: ../../mod/settings.php:624
+msgid "Account Settings"
+msgstr "Configurações da conta"
+
+#: ../../mod/settings.php:625
+msgid "Password Settings"
+msgstr "Configurações da senha"
+
+#: ../../mod/settings.php:626
+msgid "New Password:"
+msgstr "Nova senha:"
+
+#: ../../mod/settings.php:627
+msgid "Confirm:"
+msgstr "Confirme:"
+
+#: ../../mod/settings.php:627
+msgid "Leave password fields blank unless changing"
+msgstr "Deixe os campos de senha em branco, a não ser que você queira alterá-la"
+
+#: ../../mod/settings.php:629 ../../mod/settings.php:938
+msgid "Email Address:"
+msgstr "Endereço de e-mail:"
+
+#: ../../mod/settings.php:630
+msgid "Remove Account"
+msgstr "Remover conta"
+
+#: ../../mod/settings.php:631
+msgid "Warning: This action is permanent and cannot be reversed."
+msgstr "Atenção: Esta ação é permanente e não pode ser revertida."
+
+#: ../../mod/settings.php:647
+msgid "Off"
+msgstr "Desligado"
+
+#: ../../mod/settings.php:647
+msgid "On"
+msgstr "Ligado"
+
+#: ../../mod/settings.php:654
+msgid "Additional Features"
+msgstr "Recursos adicionais"
+
+#: ../../mod/settings.php:679
+msgid "Connector Settings"
+msgstr "Configurações do conector"
+
+#: ../../mod/settings.php:709 ../../mod/admin.php:379
+msgid "No special theme for mobile devices"
+msgstr "Sem tema especial para aparelhos móveis"
+
+#: ../../mod/settings.php:750
+msgid "Display Settings"
+msgstr "Configurações de exibição"
+
+#: ../../mod/settings.php:756
+msgid "Display Theme:"
+msgstr "Tema do perfil:"
+
+#: ../../mod/settings.php:757
+msgid "Mobile Theme:"
+msgstr "Tema móvel:"
+
+#: ../../mod/settings.php:758
+msgid "Update browser every xx seconds"
+msgstr "Atualizar navegador a cada xx segundos"
+
+#: ../../mod/settings.php:758
+msgid "Minimum of 10 seconds, no maximum"
+msgstr "Mínimo de 10 segundos, sem máximo"
+
+#: ../../mod/settings.php:759
+msgid "Maximum number of conversations to load at any time:"
+msgstr "Número máximo permitido de conversas carregadas:"
+
+#: ../../mod/settings.php:759
+msgid "Maximum of 100 items"
+msgstr "Máximo de 100 itens"
+
+#: ../../mod/settings.php:760
+msgid "Don't show emoticons"
+msgstr "Não exibir emoticons"
+
+#: ../../mod/settings.php:761
+msgid "Do not view remote profiles in frames"
+msgstr "Não exibir perfis remotos em frames"
+
+#: ../../mod/settings.php:761
+msgid "By default open in a sub-window of your own site"
+msgstr "Por padrão, abrir em uma sub-janela do seu próprio site"
+
+#: ../../mod/settings.php:796
+msgid "Nobody except yourself"
+msgstr "Ninguém exceto você mesmo"
+
+#: ../../mod/settings.php:797
+msgid "Only those you specifically allow"
+msgstr "Apenas quem você der permissão"
+
+#: ../../mod/settings.php:798
+msgid "Anybody in your address book"
+msgstr "Qualquer um nos seus contatos"
+
+#: ../../mod/settings.php:799
+msgid "Anybody on this website"
+msgstr "Qualquer um neste site"
+
+#: ../../mod/settings.php:800
+msgid "Anybody in this network"
+msgstr "Qualquer um nesta rede"
+
+#: ../../mod/settings.php:801
+msgid "Anybody authenticated"
+msgstr "Qualquer um autenticado"
+
+#: ../../mod/settings.php:802
+msgid "Anybody on the internet"
+msgstr "Qualquer um na internet"
+
+#: ../../mod/settings.php:879
+msgid "Publish your default profile in the network directory"
+msgstr "Publicar seu perfil padrão no diretório da rede?"
+
+#: ../../mod/settings.php:879 ../../mod/settings.php:884
+#: ../../mod/settings.php:955 ../../mod/api.php:106 ../../mod/profiles.php:484
+msgid "No"
+msgstr "Não"
+
+#: ../../mod/settings.php:879 ../../mod/settings.php:884
+#: ../../mod/settings.php:955 ../../mod/api.php:105 ../../mod/profiles.php:483
+msgid "Yes"
+msgstr "Sim"
+
+#: ../../mod/settings.php:884
+msgid "Allow us to suggest you as a potential friend to new members?"
+msgstr "Permitir sugerir você como amigo potencial para outros membros?"
+
+#: ../../mod/settings.php:888 ../../mod/profile_photo.php:288
+msgid "or"
+msgstr "ou"
+
+#: ../../mod/settings.php:893
+msgid "Your channel address is"
+msgstr "O endereço do seu canal é"
+
+#: ../../mod/settings.php:927
+msgid "Channel Settings"
+msgstr "Configurações do canal"
+
+#: ../../mod/settings.php:936
+msgid "Basic Settings"
+msgstr "Configurações básicas"
+
+#: ../../mod/settings.php:939
+msgid "Your Timezone:"
+msgstr "Seu fuso horário:"
+
+#: ../../mod/settings.php:940
+msgid "Default Post Location:"
+msgstr "Localização padrão de suas publicações:"
+
+#: ../../mod/settings.php:941
+msgid "Use Browser Location:"
+msgstr "Usar localizador do navegador:"
+
+#: ../../mod/settings.php:943
+msgid "Adult Content"
+msgstr "Conteúdo adulto"
+
+#: ../../mod/settings.php:943
+msgid ""
+"This channel frequently or regularly publishes adult content. (Please tag "
+"any adult material and/or nudity with #NSFW)"
+msgstr "Este canal frequentemente ou regularmente publica conteúdo adulto. (Por favor marque qualquer material adulto e/ou nudez com #NSFW)"
+
+#: ../../mod/settings.php:945
+msgid "Security and Privacy Settings"
+msgstr "Configurações de segurança e privacidade"
+
+#: ../../mod/settings.php:947
+msgid "Hide my online presence"
+msgstr "Esconda minha presença online"
+
+#: ../../mod/settings.php:947
+msgid "Prevents displaying in your profile that you are online"
+msgstr "Previne exibir em seu perfil que você está online"
+
+#: ../../mod/settings.php:949
+msgid "Simple Privacy Settings:"
+msgstr "Configurações de privacidade simples:"
+
+#: ../../mod/settings.php:950
+msgid ""
+"Very Public - <em>extremely permissive (should be used with caution)</em>"
+msgstr "Muito público - <em>extremamente permissivo (deve ser usado com cuidado)</em>"
+
+#: ../../mod/settings.php:951
+msgid ""
+"Typical - <em>default public, privacy when desired (similar to social "
+"network permissions but with improved privacy)</em>"
+msgstr "Típico - <em>público por padrão, privado quando desejável (similar às permissões de redes sociais, mas com melhor privacidade)</em>"
+
+#: ../../mod/settings.php:952
+msgid "Private - <em>default private, never open or public</em>"
+msgstr "Privado - <em>privado por padrão, nunca aberto ou público</em>"
+
+#: ../../mod/settings.php:953
+msgid "Blocked - <em>default blocked to/from everybody</em>"
+msgstr "Bloqueado - <em>por padrão bloquado de/para todos</em>"
+
+#: ../../mod/settings.php:955
+msgid "Allow others to tag your posts"
+msgstr "Permitir que outros etiquetem suas publicações"
+
+#: ../../mod/settings.php:955
+msgid ""
+"Often used by the community to retro-actively flag inappropriate content"
+msgstr "Frequentemente utilizado pela comunidade para retroativamente sinalizar conteúdo inapropriado"
+
+#: ../../mod/settings.php:957
+msgid "Advanced Privacy Settings"
+msgstr "Configurações de privacidade avançadas"
+
+#: ../../mod/settings.php:959
+msgid "Maximum Friend Requests/Day:"
+msgstr "Número máximo de requisições de amizade por dia:"
+
+#: ../../mod/settings.php:959
+msgid "May reduce spam activity"
+msgstr "Pode reduzir a frequência de spam"
+
+#: ../../mod/settings.php:960
+msgid "Default Post Permissions"
+msgstr "Permissões padrão de publicação"
+
+#: ../../mod/settings.php:961 ../../mod/mitem.php:134 ../../mod/mitem.php:177
+msgid "(click to open/close)"
+msgstr "(clique para abrir/fechar)"
+
+#: ../../mod/settings.php:972
+msgid "Maximum private messages per day from unknown people:"
+msgstr "Máximo número de mensagens privadas por dia de pessoas desconhecidas:"
+
+#: ../../mod/settings.php:972
+msgid "Useful to reduce spamming"
+msgstr "Útil para reduzir a frequência de spam"
+
+#: ../../mod/settings.php:975
+msgid "Notification Settings"
+msgstr "Configurações de notificação"
+
+#: ../../mod/settings.php:976
+msgid "By default post a status message when:"
+msgstr "Por padrão, publicar uma mensagem de status quando:"
+
+#: ../../mod/settings.php:977
+msgid "accepting a friend request"
+msgstr "aceitar um pedido de amizade"
+
+#: ../../mod/settings.php:978
+msgid "joining a forum/community"
+msgstr "associar-se a um fórum/comunidade"
+
+#: ../../mod/settings.php:979
+msgid "making an <em>interesting</em> profile change"
+msgstr "modificar algo <em>interessante</em> em seu perfil"
+
+#: ../../mod/settings.php:980
+msgid "Send a notification email when:"
+msgstr "Enviar um e-mail de notificação quando:"
+
+#: ../../mod/settings.php:981
+msgid "You receive an introduction"
+msgstr "Você recebeu uma apresentação"
+
+#: ../../mod/settings.php:982
+msgid "Your introductions are confirmed"
+msgstr "Suas solicitações forem confirmadas"
+
+#: ../../mod/settings.php:983
+msgid "Someone writes on your profile wall"
+msgstr "Alguém escrever no mural do seu perfil"
+
+#: ../../mod/settings.php:984
+msgid "Someone writes a followup comment"
+msgstr "Alguém comentou a sua mensagem"
+
+#: ../../mod/settings.php:985
+msgid "You receive a private message"
+msgstr "Você recebeu uma mensagem privada"
+
+#: ../../mod/settings.php:986
+msgid "You receive a friend suggestion"
+msgstr "Você recebe uma sugestão de amizade"
+
+#: ../../mod/settings.php:987
+msgid "You are tagged in a post"
+msgstr "Você é mencionado num post"
+
+#: ../../mod/settings.php:988
+msgid "You are poked/prodded/etc. in a post"
+msgstr "Você foi cutucado/espetado/etc. numa publicação"
+
+#: ../../mod/settings.php:991
+msgid "Advanced Account/Page Type Settings"
+msgstr "Configurações avançadas de conta/tipo de página"
+
+#: ../../mod/settings.php:992
+msgid "Change the behaviour of this account for special situations"
+msgstr "Mudar o comportamento dessa conta em situações especiais"
+
+#: ../../mod/settings.php:995
+msgid ""
+"Please enable expert mode (in <a href=\"settings/features\">Settings > "
+"Additional features</a>) to adjust!"
+msgstr "Por favor, habilite o modo expert (em <a href=\"settings/features\">Configurações > Recursos adicionais</a>) para ajustar!"
+
+#: ../../mod/settings.php:996
+msgid "Miscellaneous Settings"
+msgstr "Configurações miscelâneas"
+
+#: ../../mod/settings.php:998
+msgid "Personal menu to display in your channel pages"
+msgstr "Menu pessoal para exibir nas páginas dos seus canais"
#: ../../mod/menu.php:21
msgid "Menu updated."
@@ -3564,16 +3977,6 @@ msgid ""
" and/or create new posts for you?"
msgstr "Deseja autorizar esta aplicação a acessar suas publicações e contatos e/ou criar novas publicações para você?"
-#: ../../mod/api.php:105 ../../mod/profiles.php:483 ../../mod/settings.php:878
-#: ../../mod/settings.php:883
-msgid "Yes"
-msgstr "Sim"
-
-#: ../../mod/api.php:106 ../../mod/profiles.php:484 ../../mod/settings.php:878
-#: ../../mod/settings.php:883
-msgid "No"
-msgstr "Não"
-
#: ../../mod/apps.php:8
msgid "No installed applications."
msgstr "Não existe nenhuma aplicação instalada."
@@ -3602,6 +4005,36 @@ msgstr "Meus links guardados"
msgid "My Connections Bookmarks"
msgstr "Links guardados das minhas conexões"
+#: ../../mod/item.php:145
+msgid "Unable to locate original post."
+msgstr "Não foi possível localizar a publicação original."
+
+#: ../../mod/item.php:346
+msgid "Empty post discarded."
+msgstr "A publicação em branco foi descartada."
+
+#: ../../mod/item.php:388
+msgid "Executable content type not permitted to this channel."
+msgstr "Conteúdo de tipo executável não permitido para este canal."
+
+#: ../../mod/item.php:845
+msgid "System error. Post not saved."
+msgstr "Erro no sistema. A publicação não foi salva."
+
+#: ../../mod/item.php:1112 ../../mod/wall_upload.php:34
+msgid "Wall Photos"
+msgstr "Fotos do mural"
+
+#: ../../mod/item.php:1192
+#, php-format
+msgid "You have reached your limit of %1$.0f top level posts."
+msgstr "Você atingiu o seu limite de %1$.0f publicações de novos tópicos."
+
+#: ../../mod/item.php:1198
+#, php-format
+msgid "You have reached your limit of %1$.0f webpages."
+msgstr "Você atingiu o seu limite de %1$.0f páginas web."
+
#: ../../mod/subthread.php:105
#, php-format
msgid "%1$s is following %2$s's %3$s"
@@ -3614,7 +4047,7 @@ msgid "[Embedded content - reload page to view]"
msgstr "[Conteúdo incorporado - recarregue a página para ver]"
#: ../../mod/chanview.php:77 ../../mod/home.php:50 ../../mod/page.php:47
-#: ../../mod/wall_upload.php:35
+#: ../../mod/wall_upload.php:28
msgid "Channel not found."
msgstr "O canal não foi encontrado."
@@ -3842,10 +4275,6 @@ msgstr "Novo elemento de menu"
msgid "Menu Item Permissions"
msgstr "Permissões do item do menu"
-#: ../../mod/mitem.php:134 ../../mod/mitem.php:177 ../../mod/settings.php:947
-msgid "(click to open/close)"
-msgstr "(clique para abrir/fechar)"
-
#: ../../mod/mitem.php:136 ../../mod/mitem.php:180
msgid "Link text"
msgstr "Texto do link"
@@ -3962,15 +4391,15 @@ msgstr "As configurações de tema foram atualizadas."
msgid "Site"
msgstr "Site"
-#: ../../mod/admin.php:89 ../../mod/admin.php:737 ../../mod/admin.php:749
+#: ../../mod/admin.php:89 ../../mod/admin.php:738 ../../mod/admin.php:750
msgid "Users"
msgstr "Usuários"
-#: ../../mod/admin.php:90 ../../mod/admin.php:835 ../../mod/admin.php:877
+#: ../../mod/admin.php:90 ../../mod/admin.php:836 ../../mod/admin.php:878
msgid "Plugins"
msgstr "Plugins"
-#: ../../mod/admin.php:91 ../../mod/admin.php:1040 ../../mod/admin.php:1076
+#: ../../mod/admin.php:91 ../../mod/admin.php:1041 ../../mod/admin.php:1077
msgid "Themes"
msgstr "Temas"
@@ -3982,7 +4411,7 @@ msgstr "Servidor"
msgid "DB updates"
msgstr "Atualizações do Banco de Dados"
-#: ../../mod/admin.php:107 ../../mod/admin.php:114 ../../mod/admin.php:1163
+#: ../../mod/admin.php:107 ../../mod/admin.php:114 ../../mod/admin.php:1164
msgid "Logs"
msgstr "Logs"
@@ -3999,8 +4428,8 @@ msgid "Message queues"
msgstr "Filas de mensagem"
#: ../../mod/admin.php:194 ../../mod/admin.php:429 ../../mod/admin.php:528
-#: ../../mod/admin.php:736 ../../mod/admin.php:834 ../../mod/admin.php:876
-#: ../../mod/admin.php:1039 ../../mod/admin.php:1075 ../../mod/admin.php:1162
+#: ../../mod/admin.php:737 ../../mod/admin.php:835 ../../mod/admin.php:877
+#: ../../mod/admin.php:1040 ../../mod/admin.php:1076 ../../mod/admin.php:1163
msgid "Administration"
msgstr "Administração"
@@ -4028,10 +4457,6 @@ msgstr "Plugins ativos"
msgid "Site settings updated."
msgstr "As configurações de site foram atualizadas."
-#: ../../mod/admin.php:379 ../../mod/settings.php:709
-msgid "No special theme for mobile devices"
-msgstr "Sem tema especial para aparelhos móveis"
-
#: ../../mod/admin.php:381
msgid "No special theme for accessibility"
msgstr "Sem tema especial para acessibilidade"
@@ -4274,7 +4699,7 @@ msgstr "Carga máxima do sistema antes de adiar processos de entrega e coleta -
msgid "No server found"
msgstr "Nenhum servidor foi encontrado"
-#: ../../mod/admin.php:527 ../../mod/admin.php:750
+#: ../../mod/admin.php:527 ../../mod/admin.php:751
msgid "ID"
msgstr "ID"
@@ -4363,136 +4788,136 @@ msgstr "O usuário/a '%s' foi desbloqueado/a"
msgid "User '%s' blocked"
msgstr "O usuário/a '%s' foi bloqueado/a"
-#: ../../mod/admin.php:739
+#: ../../mod/admin.php:740
msgid "select all"
msgstr "selecionar tudo"
-#: ../../mod/admin.php:740
+#: ../../mod/admin.php:741
msgid "User registrations waiting for confirm"
msgstr "Registros de usuário aguardando confirmação"
-#: ../../mod/admin.php:741
+#: ../../mod/admin.php:742
msgid "Request date"
msgstr "Data de requisição"
-#: ../../mod/admin.php:742
+#: ../../mod/admin.php:743
msgid "No registrations."
msgstr "Nenhum registro."
-#: ../../mod/admin.php:743
+#: ../../mod/admin.php:744
msgid "Approve"
msgstr "Aprovar"
-#: ../../mod/admin.php:744
+#: ../../mod/admin.php:745
msgid "Deny"
msgstr "Negar"
-#: ../../mod/admin.php:746 ../../mod/connedit.php:333
+#: ../../mod/admin.php:747 ../../mod/connedit.php:333
#: ../../mod/connedit.php:475
msgid "Block"
msgstr "Bloquear"
-#: ../../mod/admin.php:747 ../../mod/connedit.php:333
+#: ../../mod/admin.php:748 ../../mod/connedit.php:333
#: ../../mod/connedit.php:475
msgid "Unblock"
msgstr "Desbloquear"
-#: ../../mod/admin.php:750
+#: ../../mod/admin.php:751
msgid "Register date"
msgstr "Data de registro"
-#: ../../mod/admin.php:750
+#: ../../mod/admin.php:751
msgid "Last login"
msgstr "Última autenticação"
-#: ../../mod/admin.php:750
+#: ../../mod/admin.php:751
msgid "Expires"
msgstr "Expira"
-#: ../../mod/admin.php:750
+#: ../../mod/admin.php:751
msgid "Service Class"
msgstr "Classe de serviço"
-#: ../../mod/admin.php:752
+#: ../../mod/admin.php:753
msgid ""
"Selected users will be deleted!\\n\\nEverything these users had posted on "
"this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Os usuários selecionados serão deletados!\\n\\nTudo o que esses usuários postaram neste site será permanentemente deletado!\\n\\nTem certeza?"
-#: ../../mod/admin.php:753
+#: ../../mod/admin.php:754
msgid ""
"The user {0} will be deleted!\\n\\nEverything this user has posted on this "
"site will be permanently deleted!\\n\\nAre you sure?"
msgstr "O/A usuário/a {0} será deletado/a!\\n\\nTudo o que esse/a usuário/a postou neste site será permanentemente deletado!\\n\\nTem certeza?"
-#: ../../mod/admin.php:794
+#: ../../mod/admin.php:795
#, php-format
msgid "Plugin %s disabled."
msgstr "Plugin %s desabilitado."
-#: ../../mod/admin.php:798
+#: ../../mod/admin.php:799
#, php-format
msgid "Plugin %s enabled."
msgstr "Plugin %s habilitado."
-#: ../../mod/admin.php:808 ../../mod/admin.php:1010
+#: ../../mod/admin.php:809 ../../mod/admin.php:1011
msgid "Disable"
msgstr "Desabilitar"
-#: ../../mod/admin.php:810 ../../mod/admin.php:1012
+#: ../../mod/admin.php:811 ../../mod/admin.php:1013
msgid "Enable"
msgstr "Habilitar"
-#: ../../mod/admin.php:836 ../../mod/admin.php:1041
+#: ../../mod/admin.php:837 ../../mod/admin.php:1042
msgid "Toggle"
msgstr "Alternar"
-#: ../../mod/admin.php:844 ../../mod/admin.php:1051
+#: ../../mod/admin.php:845 ../../mod/admin.php:1052
msgid "Author: "
msgstr "Autor:"
-#: ../../mod/admin.php:845 ../../mod/admin.php:1052
+#: ../../mod/admin.php:846 ../../mod/admin.php:1053
msgid "Maintainer: "
msgstr "Mantenedor:"
-#: ../../mod/admin.php:974
+#: ../../mod/admin.php:975
msgid "No themes found."
msgstr "Nenhum tema foi encontrado."
-#: ../../mod/admin.php:1033
+#: ../../mod/admin.php:1034
msgid "Screenshot"
msgstr "Captura de tela"
-#: ../../mod/admin.php:1081
+#: ../../mod/admin.php:1082
msgid "[Experimental]"
msgstr "[Experimental]"
-#: ../../mod/admin.php:1082
+#: ../../mod/admin.php:1083
msgid "[Unsupported]"
msgstr "[Desassistido]"
-#: ../../mod/admin.php:1109
+#: ../../mod/admin.php:1110
msgid "Log settings updated."
msgstr "As configurações de log foram atualizadas."
-#: ../../mod/admin.php:1165
+#: ../../mod/admin.php:1166
msgid "Clear"
msgstr "Limpar"
-#: ../../mod/admin.php:1171
+#: ../../mod/admin.php:1172
msgid "Debugging"
msgstr "Depuração"
-#: ../../mod/admin.php:1172
+#: ../../mod/admin.php:1173
msgid "Log file"
msgstr "Arquivo de log"
-#: ../../mod/admin.php:1172
+#: ../../mod/admin.php:1173
msgid ""
"Must be writable by web server. Relative to your Red top-level directory."
msgstr "É necessário que o servidor web possa escrever neste arquivo. Relativo ao diretório raiz da Red."
-#: ../../mod/admin.php:1173
+#: ../../mod/admin.php:1174
msgid "Log level"
msgstr "Nível do log"
@@ -4518,17 +4943,17 @@ msgstr "O item não está editável"
msgid "Delete item?"
msgstr "Deletar item?"
-#: ../../mod/editpost.php:107 ../../mod/editlayout.php:110
+#: ../../mod/editpost.php:116 ../../mod/editlayout.php:110
#: ../../mod/editwebpage.php:148 ../../mod/editblock.php:124
msgid "Insert YouTube video"
msgstr "Inserir vídeo do YouTube"
-#: ../../mod/editpost.php:108 ../../mod/editlayout.php:111
+#: ../../mod/editpost.php:117 ../../mod/editlayout.php:111
#: ../../mod/editwebpage.php:149 ../../mod/editblock.php:125
msgid "Insert Vorbis [.ogg] video"
msgstr "Inserir vídeo Vorbis (.ogg)"
-#: ../../mod/editpost.php:109 ../../mod/editlayout.php:112
+#: ../../mod/editpost.php:118 ../../mod/editlayout.php:112
#: ../../mod/editwebpage.php:150 ../../mod/editblock.php:126
msgid "Insert Vorbis [.ogg] audio"
msgstr "Inserir áudio Vorbis (.ogg)"
@@ -4698,10 +5123,6 @@ msgstr "Ocultar ou deixar de ocultar esta conexão"
msgid "Delete this connection"
msgstr "Deletar esta conexão"
-#: ../../mod/connedit.php:395
-msgid "Unknown"
-msgstr "Desconhecidos"
-
#: ../../mod/connedit.php:405 ../../mod/connedit.php:434
msgid "Approve this connection"
msgstr "Aprovar esta conexão"
@@ -4898,15 +5319,29 @@ msgstr "Não encontrada"
msgid "Page not found."
msgstr "Página não encontrada."
-#: ../../mod/rmagic.php:56
+#: ../../mod/rmagic.php:38
+msgid ""
+"We encountered a problem while logging in with the OpenID you provided. "
+"Please check the correct spelling of the ID."
+msgstr "Encontramos um problema ao entrar com a OpenID fornecida. Por favor, verifique se digitou corretamente a ID."
+
+#: ../../mod/rmagic.php:38
+msgid "The error message was:"
+msgstr "A mensagem de erro foi:"
+
+#: ../../mod/rmagic.php:42
+msgid "Authentication failed."
+msgstr "A autenticação falhou."
+
+#: ../../mod/rmagic.php:78
msgid "Remote Authentication"
msgstr "Autenticação remota"
-#: ../../mod/rmagic.php:57
+#: ../../mod/rmagic.php:79
msgid "Enter your channel address (e.g. channel@example.com)"
msgstr "Entre o endereço do seu canal (e.g. canal@exemplo.com)"
-#: ../../mod/rmagic.php:58
+#: ../../mod/rmagic.php:80
msgid "Authenticate"
msgstr "Autenticar"
@@ -5196,7 +5631,7 @@ msgid ""
" logout and retry."
msgstr "Autenticação remota bloqueada. Você está autenticado neste site localmente. Por favor, saia e tente novamente."
-#: ../../mod/post.php:256
+#: ../../mod/post.php:256 ../../mod/openid.php:70 ../../mod/openid.php:175
#, php-format
msgid "Welcome %s. Remote authentication successful."
msgstr "Bem vindo %s. Autenticação remota realizada com sucesso."
@@ -5645,9 +6080,10 @@ msgstr "Doações para o projeto"
#: ../../mod/siteinfo.php:94
msgid ""
"<p>The Red Matrix is provided for you by volunteers working in their spare "
-"time. Your support will help us to build a better web. Select the following "
-"option for a one-time donation of your choosing</p>"
-msgstr "<p>A Red Matrix é oferecida a você por voluntários trabalhando no seu tempo livre. Seu apoio irá nos ajudar a construir uma web melhor. Selecione uma das opções abaixo para realizar uma única doação de sua escolha:</p>"
+"time. Your support will help us to build a better, freer, and privacy "
+"respecting web. Select the following option for a one-time donation of your "
+"choosing</p>"
+msgstr "<p>A Red Matrix é oferecida a você por voluntários trabalhando no seu tempo livre. Seu apoio irá nos ajudar a construir uma web melhor, mais livre e com respeito à privacidade. Selecione uma das opções abaixo para realizar uma única doação de sua escolha:</p>"
#: ../../mod/siteinfo.php:95
msgid "<p>or</p>"
@@ -5745,7 +6181,7 @@ msgid ""
"Password reset failed."
msgstr "Não foi possível verificar a solicitação (você pode tê-la submetido anteriormente). A senha não foi restaurada."
-#: ../../mod/lostpass.php:85 ../../boot.php:1434
+#: ../../mod/lostpass.php:85 ../../boot.php:1436
msgid "Password Reset"
msgstr "Reiniciar a senha"
@@ -5794,407 +6230,6 @@ msgstr "Endereço de e-mail"
msgid "Reset"
msgstr "Restaurar"
-#: ../../mod/settings.php:71
-msgid "Name is required"
-msgstr "O nome é obrigatório"
-
-#: ../../mod/settings.php:75
-msgid "Key and Secret are required"
-msgstr "A chave e o segredo são obrigatórios"
-
-#: ../../mod/settings.php:79 ../../mod/settings.php:542
-msgid "Update"
-msgstr "Atualizar"
-
-#: ../../mod/settings.php:195
-msgid "Passwords do not match. Password unchanged."
-msgstr "As senhas não correspondem. A senha não foi modificada."
-
-#: ../../mod/settings.php:199
-msgid "Empty passwords are not allowed. Password unchanged."
-msgstr "Não é permitido uma senha em branco. A senha não foi modificada."
-
-#: ../../mod/settings.php:212
-msgid "Password changed."
-msgstr "A senha foi modificada."
-
-#: ../../mod/settings.php:214
-msgid "Password update failed. Please try again."
-msgstr "Não foi possível atualizar a senha. Por favor, tente novamente."
-
-#: ../../mod/settings.php:228
-msgid "Not valid email."
-msgstr "Não é um e-mail válido"
-
-#: ../../mod/settings.php:231
-msgid "Protected email address. Cannot change to that email."
-msgstr "Endereço de e-mail protegido. Não é possível mudar para esse e-mail."
-
-#: ../../mod/settings.php:240
-msgid "System failure storing new email. Please try again."
-msgstr "Falha do sistema ao armazenar novo e-mail. Por favor, tente novamente."
-
-#: ../../mod/settings.php:444
-msgid "Settings updated."
-msgstr "As configurações foram atualizadas."
-
-#: ../../mod/settings.php:515 ../../mod/settings.php:541
-#: ../../mod/settings.php:577
-msgid "Add application"
-msgstr "Adicionar aplicação"
-
-#: ../../mod/settings.php:518 ../../mod/settings.php:544
-msgid "Name"
-msgstr "Nome"
-
-#: ../../mod/settings.php:518
-msgid "Name of application"
-msgstr "Nome da aplicação"
-
-#: ../../mod/settings.php:519 ../../mod/settings.php:545
-msgid "Consumer Key"
-msgstr "Chave de consumidor"
-
-#: ../../mod/settings.php:519 ../../mod/settings.php:520
-msgid "Automatically generated - change if desired. Max length 20"
-msgstr "Gerado automaticamente - troque se desejável. Comprimento máximo 20"
-
-#: ../../mod/settings.php:520 ../../mod/settings.php:546
-msgid "Consumer Secret"
-msgstr "Segredo de consumidor"
-
-#: ../../mod/settings.php:521 ../../mod/settings.php:547
-msgid "Redirect"
-msgstr "Redirecionamento"
-
-#: ../../mod/settings.php:521
-msgid ""
-"Redirect URI - leave blank unless your application specifically requires "
-"this"
-msgstr "URI de redirecionamento - deixe em branco, a não ser que sua aplicação especificamente requeira isso"
-
-#: ../../mod/settings.php:522 ../../mod/settings.php:548
-msgid "Icon url"
-msgstr "URL do ícone"
-
-#: ../../mod/settings.php:522
-msgid "Optional"
-msgstr "Opcional"
-
-#: ../../mod/settings.php:533
-msgid "You can't edit this application."
-msgstr "Você não pode editar esta aplicação."
-
-#: ../../mod/settings.php:576
-msgid "Connected Apps"
-msgstr "Aplicações conectadas"
-
-#: ../../mod/settings.php:580
-msgid "Client key starts with"
-msgstr "Chave do cliente começa com"
-
-#: ../../mod/settings.php:581
-msgid "No name"
-msgstr "Sem nome"
-
-#: ../../mod/settings.php:582
-msgid "Remove authorization"
-msgstr "Remover autorização"
-
-#: ../../mod/settings.php:593
-msgid "No feature settings configured"
-msgstr "Não foi definida nenhuma configuração do recurso"
-
-#: ../../mod/settings.php:601
-msgid "Feature Settings"
-msgstr "Configurações do recurso"
-
-#: ../../mod/settings.php:624
-msgid "Account Settings"
-msgstr "Configurações da conta"
-
-#: ../../mod/settings.php:625
-msgid "Password Settings"
-msgstr "Configurações da senha"
-
-#: ../../mod/settings.php:626
-msgid "New Password:"
-msgstr "Nova senha:"
-
-#: ../../mod/settings.php:627
-msgid "Confirm:"
-msgstr "Confirme:"
-
-#: ../../mod/settings.php:627
-msgid "Leave password fields blank unless changing"
-msgstr "Deixe os campos de senha em branco, a não ser que você queira alterá-la"
-
-#: ../../mod/settings.php:629 ../../mod/settings.php:925
-msgid "Email Address:"
-msgstr "Endereço de e-mail:"
-
-#: ../../mod/settings.php:630
-msgid "Remove Account"
-msgstr "Remover conta"
-
-#: ../../mod/settings.php:631
-msgid "Warning: This action is permanent and cannot be reversed."
-msgstr "Atenção: Esta ação é permanente e não pode ser revertida."
-
-#: ../../mod/settings.php:647
-msgid "Off"
-msgstr "Desligado"
-
-#: ../../mod/settings.php:647
-msgid "On"
-msgstr "Ligado"
-
-#: ../../mod/settings.php:654
-msgid "Additional Features"
-msgstr "Recursos adicionais"
-
-#: ../../mod/settings.php:679
-msgid "Connector Settings"
-msgstr "Configurações do conector"
-
-#: ../../mod/settings.php:750
-msgid "Display Settings"
-msgstr "Configurações de exibição"
-
-#: ../../mod/settings.php:756
-msgid "Display Theme:"
-msgstr "Tema do perfil:"
-
-#: ../../mod/settings.php:757
-msgid "Mobile Theme:"
-msgstr "Tema móvel:"
-
-#: ../../mod/settings.php:758
-msgid "Update browser every xx seconds"
-msgstr "Atualizar navegador a cada xx segundos"
-
-#: ../../mod/settings.php:758
-msgid "Minimum of 10 seconds, no maximum"
-msgstr "Mínimo de 10 segundos, sem máximo"
-
-#: ../../mod/settings.php:759
-msgid "Maximum number of conversations to load at any time:"
-msgstr "Número máximo permitido de conversas carregadas:"
-
-#: ../../mod/settings.php:759
-msgid "Maximum of 100 items"
-msgstr "Máximo de 100 itens"
-
-#: ../../mod/settings.php:760
-msgid "Don't show emoticons"
-msgstr "Não exibir emoticons"
-
-#: ../../mod/settings.php:761
-msgid "Do not view remote profiles in frames"
-msgstr "Não exibir perfis remotos em frames"
-
-#: ../../mod/settings.php:761
-msgid "By default open in a sub-window of your own site"
-msgstr "Por padrão, abrir em uma sub-janela do seu próprio site"
-
-#: ../../mod/settings.php:796
-msgid "Nobody except yourself"
-msgstr "Ninguém exceto você mesmo"
-
-#: ../../mod/settings.php:797
-msgid "Only those you specifically allow"
-msgstr "Apenas quem você der permissão"
-
-#: ../../mod/settings.php:798
-msgid "Anybody in your address book"
-msgstr "Qualquer um nos seus contatos"
-
-#: ../../mod/settings.php:799
-msgid "Anybody on this website"
-msgstr "Qualquer um neste site"
-
-#: ../../mod/settings.php:800
-msgid "Anybody in this network"
-msgstr "Qualquer um nesta rede"
-
-#: ../../mod/settings.php:801
-msgid "Anybody on the internet"
-msgstr "Qualquer um na internet"
-
-#: ../../mod/settings.php:878
-msgid "Publish your default profile in the network directory"
-msgstr "Publicar seu perfil padrão no diretório da rede?"
-
-#: ../../mod/settings.php:883
-msgid "Allow us to suggest you as a potential friend to new members?"
-msgstr "Permitir sugerir você como amigo potencial para outros membros?"
-
-#: ../../mod/settings.php:887 ../../mod/profile_photo.php:288
-msgid "or"
-msgstr "ou"
-
-#: ../../mod/settings.php:892
-msgid "Your channel address is"
-msgstr "O endereço do seu canal é"
-
-#: ../../mod/settings.php:914
-msgid "Channel Settings"
-msgstr "Configurações do canal"
-
-#: ../../mod/settings.php:923
-msgid "Basic Settings"
-msgstr "Configurações básicas"
-
-#: ../../mod/settings.php:926
-msgid "Your Timezone:"
-msgstr "Seu fuso horário:"
-
-#: ../../mod/settings.php:927
-msgid "Default Post Location:"
-msgstr "Localização padrão de suas publicações:"
-
-#: ../../mod/settings.php:928
-msgid "Use Browser Location:"
-msgstr "Usar localizador do navegador:"
-
-#: ../../mod/settings.php:930
-msgid "Adult Content"
-msgstr "Conteúdo adulto"
-
-#: ../../mod/settings.php:930
-msgid ""
-"This channel frequently or regularly publishes adult content. (Please tag "
-"any adult material and/or nudity with #NSFW)"
-msgstr "Este canal frequentemente ou regularmente publica conteúdo adulto. (Por favor marque qualquer material adulto e/ou nudez com #NSFW)"
-
-#: ../../mod/settings.php:932
-msgid "Security and Privacy Settings"
-msgstr "Configurações de segurança e privacidade"
-
-#: ../../mod/settings.php:934
-msgid "Hide my online presence"
-msgstr "Esconda minha presença online"
-
-#: ../../mod/settings.php:934
-msgid "Prevents displaying in your profile that you are online"
-msgstr "Previne exibir em seu perfil que você está online"
-
-#: ../../mod/settings.php:936
-msgid "Simple Privacy Settings:"
-msgstr "Configurações de privacidade simples:"
-
-#: ../../mod/settings.php:937
-msgid ""
-"Very Public - <em>extremely permissive (should be used with caution)</em>"
-msgstr "Muito público - <em>extremamente permissivo (deve ser usado com cuidado)</em>"
-
-#: ../../mod/settings.php:938
-msgid ""
-"Typical - <em>default public, privacy when desired (similar to social "
-"network permissions but with improved privacy)</em>"
-msgstr "Típico - <em>público por padrão, privado quando desejável (similar às permissões de redes sociais, mas com melhor privacidade)</em>"
-
-#: ../../mod/settings.php:939
-msgid "Private - <em>default private, never open or public</em>"
-msgstr "Privado - <em>privado por padrão, nunca aberto ou público</em>"
-
-#: ../../mod/settings.php:940
-msgid "Blocked - <em>default blocked to/from everybody</em>"
-msgstr "Bloqueado - <em>por padrão bloquado de/para todos</em>"
-
-#: ../../mod/settings.php:943
-msgid "Advanced Privacy Settings"
-msgstr "Configurações de privacidade avançadas"
-
-#: ../../mod/settings.php:945
-msgid "Maximum Friend Requests/Day:"
-msgstr "Número máximo de requisições de amizade por dia:"
-
-#: ../../mod/settings.php:945
-msgid "May reduce spam activity"
-msgstr "Pode reduzir a frequência de spam"
-
-#: ../../mod/settings.php:946
-msgid "Default Post Permissions"
-msgstr "Permissões padrão de publicação"
-
-#: ../../mod/settings.php:958
-msgid "Maximum private messages per day from unknown people:"
-msgstr "Máximo número de mensagens privadas por dia de pessoas desconhecidas:"
-
-#: ../../mod/settings.php:958
-msgid "Useful to reduce spamming"
-msgstr "Útil para reduzir a frequência de spam"
-
-#: ../../mod/settings.php:961
-msgid "Notification Settings"
-msgstr "Configurações de notificação"
-
-#: ../../mod/settings.php:962
-msgid "By default post a status message when:"
-msgstr "Por padrão, publicar uma mensagem de status quando:"
-
-#: ../../mod/settings.php:963
-msgid "accepting a friend request"
-msgstr "aceitar um pedido de amizade"
-
-#: ../../mod/settings.php:964
-msgid "joining a forum/community"
-msgstr "associar-se a um fórum/comunidade"
-
-#: ../../mod/settings.php:965
-msgid "making an <em>interesting</em> profile change"
-msgstr "modificar algo <em>interessante</em> em seu perfil"
-
-#: ../../mod/settings.php:966
-msgid "Send a notification email when:"
-msgstr "Enviar um e-mail de notificação quando:"
-
-#: ../../mod/settings.php:967
-msgid "You receive an introduction"
-msgstr "Você recebeu uma apresentação"
-
-#: ../../mod/settings.php:968
-msgid "Your introductions are confirmed"
-msgstr "Suas solicitações forem confirmadas"
-
-#: ../../mod/settings.php:969
-msgid "Someone writes on your profile wall"
-msgstr "Alguém escrever no mural do seu perfil"
-
-#: ../../mod/settings.php:970
-msgid "Someone writes a followup comment"
-msgstr "Alguém comentou a sua mensagem"
-
-#: ../../mod/settings.php:971
-msgid "You receive a private message"
-msgstr "Você recebeu uma mensagem privada"
-
-#: ../../mod/settings.php:972
-msgid "You receive a friend suggestion"
-msgstr "Você recebe uma sugestão de amizade"
-
-#: ../../mod/settings.php:973
-msgid "You are tagged in a post"
-msgstr "Você é mencionado num post"
-
-#: ../../mod/settings.php:974
-msgid "You are poked/prodded/etc. in a post"
-msgstr "Você foi cutucado/espetado/etc. numa publicação"
-
-#: ../../mod/settings.php:977
-msgid "Advanced Account/Page Type Settings"
-msgstr "Configurações avançadas de conta/tipo de página"
-
-#: ../../mod/settings.php:978
-msgid "Change the behaviour of this account for special situations"
-msgstr "Mudar o comportamento dessa conta em situações especiais"
-
-#: ../../mod/settings.php:981
-msgid ""
-"Please enable expert mode (in Settings > Additional features) to adjust!"
-msgstr "Por favor, habilite o modo expert (em Configurações > Recursos adicionais) para ajustar!"
-
#: ../../mod/import.php:36
msgid "Nothing to import."
msgstr "Nada a importar."
@@ -6272,32 +6307,32 @@ msgstr "Para qualquer das opções, por favor escolha se deseja fazer deste hub
msgid "Make this hub my primary location"
msgstr "Faça deste hub meu local primário"
-#: ../../mod/manage.php:63
+#: ../../mod/manage.php:64
#, php-format
msgid "You have created %1$.0f of %2$.0f allowed channels."
msgstr "Você criou %1$.0f de %2$.0f canais permitidos."
-#: ../../mod/manage.php:71
+#: ../../mod/manage.php:72
msgid "Create a new channel"
msgstr "Criar um novo canal"
-#: ../../mod/manage.php:76
+#: ../../mod/manage.php:77
msgid "Channel Manager"
msgstr "Administrador do canal"
-#: ../../mod/manage.php:77
+#: ../../mod/manage.php:78
msgid "Current Channel"
msgstr "Canal atual"
-#: ../../mod/manage.php:79
+#: ../../mod/manage.php:80
msgid "Attach to one of your channels by selecting it."
msgstr "Selecione um dos seus canais para utilizá-lo."
-#: ../../mod/manage.php:80
+#: ../../mod/manage.php:81
msgid "Default Channel"
msgstr "Canal padrão"
-#: ../../mod/manage.php:81
+#: ../../mod/manage.php:82
msgid "Make Default"
msgstr "Tornar padrão"
@@ -6403,6 +6438,10 @@ msgstr "Comunicação segura indisponível. Você <strong>talvez</strong> consig
msgid "Send Reply"
msgstr "Enviar resposta"
+#: ../../mod/openid.php:26
+msgid "OpenID protocol error. No ID returned."
+msgstr "Erro do protocolo OpenID. Nenhuma ID retornada."
+
#: ../../mod/editlayout.php:72
msgid "Edit Layout"
msgstr "Editar layout"
@@ -6944,7 +6983,7 @@ msgstr "ou nome de um álbum já existente: "
#: ../../mod/photos.php:605
msgid "Do not show a status post for this upload"
-msgstr "Não mostrar uma publicação de status para este carregamento"
+msgstr "Não exibir uma publicação de status para este carregamento"
#: ../../mod/photos.php:656 ../../mod/photos.php:678 ../../mod/photos.php:1127
#: ../../mod/photos.php:1142
@@ -7285,41 +7324,41 @@ msgstr "Imagem de cabeçalho"
msgid "Header image only on profile pages"
msgstr "Imagem de cabeçalho apenas em páginas de perfil"
-#: ../../boot.php:1232
+#: ../../boot.php:1234
#, php-format
msgid "Update %s failed. See error logs."
msgstr "A atualização %s falhou. Veja os logs de erro."
-#: ../../boot.php:1235
+#: ../../boot.php:1237
#, php-format
msgid "Update Error at %s"
msgstr "Erro de atualização em %s"
-#: ../../boot.php:1399
+#: ../../boot.php:1401
msgid ""
"Create an account to access services and applications within the Red Matrix"
msgstr "Crie uma conta para acessar serviços e aplicações na Red Matrix"
-#: ../../boot.php:1427
+#: ../../boot.php:1429
msgid "Password"
msgstr "Senha"
-#: ../../boot.php:1428
+#: ../../boot.php:1430
msgid "Remember me"
msgstr "Lembrar de mim"
-#: ../../boot.php:1433
+#: ../../boot.php:1435
msgid "Forgot your password?"
msgstr "Esqueceu a sua senha?"
-#: ../../boot.php:1498
+#: ../../boot.php:1500
msgid "permission denied"
msgstr "permissão negada"
-#: ../../boot.php:1499
+#: ../../boot.php:1501
msgid "Got Zot?"
msgstr "Já tem Zot?"
-#: ../../boot.php:1899
+#: ../../boot.php:1906
msgid "toggle mobile"
msgstr "alternar para interface móvel"
diff --git a/view/pt-br/passchanged_eml.tpl b/view/pt-br/passchanged_eml.tpl
index 0d94be3c2..8a9e0b637 100644
--- a/view/pt-br/passchanged_eml.tpl
+++ b/view/pt-br/passchanged_eml.tpl
@@ -1,20 +1,22 @@
-Dear {{$username}},
- Your password has been changed as requested. Please retain this
-information for your records (or change your password immediately to
-something that you will remember).
+Caro/a {{$username}},
+ Sua senha foi modificada como solicitado. Por favor retenha
+essa informação contigo (ou modifique sua senha imediatamente para
+algo que você se lembrará).
-Your login details are as follows:
-Site Location: {{$siteurl}}
-Login Name: {{$email}}
-Password: {{$new_password}}
+Suas informações de autenticação são as seguintes:
-You may change that password from your account settings page after logging in.
+Localização do site: {{$siteurl}}
+Nome: {{$email}}
+Senha: {{$new_password}}
+Você pode modificar esta senha a partir da página de configurações de conta,
+após autenticar-se.
-Sincerely,
- {{$sitename}} Administrator
+
+Atenciosamente,
+ {{$sitename}} Administrador
diff --git a/view/pt-br/register_open_eml.tpl b/view/pt-br/register_open_eml.tpl
index 4b397201c..6dd4b714b 100644
--- a/view/pt-br/register_open_eml.tpl
+++ b/view/pt-br/register_open_eml.tpl
@@ -1,19 +1,18 @@
-An account has been created at {{$sitename}} for this email address.
-The login details are as follows:
+Uma conta foi criada em {{$sitename}} para este endereço de e-mail.
+Os detalhes de autenticação são os seguintes:
-Site Location: {{$siteurl}}
-Login: {{$email}}
-Password: (the password which was provided during registration)
+Localização do site: {{$siteurl}}
+Nome: {{$email}}
+Senha: (the password which was provided during registration)
-If this account was created without your knowledge and is not desired, you may
-visit this site and reset the password. This will allow you to remove the
-account from the links on the Settings page, and we
-apologise for any inconvenience.
+Se esta conta foi criada sem seu conhecimento e não é desejada, você pode
+visitar o site e reiniciar a senha. Isso permitirá que você a remova a partir
+da página de Configurações, e nesse caso desculpamo-nos pela inconveniência.
-Thank you and welcome to {{$sitename}}.
+Obrigado e bem vindo a {{$sitename}}.
-Sincerely,
- {{$sitename}} Administrator
+Atenciosamente,
+ {{$sitename}} Administrador
diff --git a/view/pt-br/register_verify_eml.tpl b/view/pt-br/register_verify_eml.tpl
index 85d9a12d3..9576039bc 100644
--- a/view/pt-br/register_verify_eml.tpl
+++ b/view/pt-br/register_verify_eml.tpl
@@ -1,25 +1,25 @@
-A new user registration request was received at {{$sitename}} which requires
-your approval.
+Uma nova solicitação de registro de usuário foi recebida em {{$sitename}} e
+requer sua aprovação.
-The login details are as follows:
+Os detalhes de autenticação são os seguintes:
-Site Location: {{$siteurl}}
-Login Name: {{$email}}
-IP Address: {{$details}}
+Localização do site: {{$siteurl}}
+Nome: {{$email}}
+Endereço IP: {{$details}}
-To approve this request please visit the following link:
+Para aprovar essa solicitação, acesse o link abaixo:
{{$siteurl}}/regmod/allow/{{$hash}}
-To deny the request and remove the account, please visit:
+Para negar a solicitação e remover a conta, acesse:
{{$siteurl}}/regmod/deny/{{$hash}}
-Thank you.
+Obrigado.
diff --git a/view/pt-br/request_notify_eml.tpl b/view/pt-br/request_notify_eml.tpl
index d01b8ff27..3f0befb3f 100644
--- a/view/pt-br/request_notify_eml.tpl
+++ b/view/pt-br/request_notify_eml.tpl
@@ -1,17 +1,17 @@
-Dear {{$myname}},
+Caro/a {{$myname}},
-You have just received a connection request at {{$sitename}}
+Você acaba de receber uma solicitação de conexão em {{$sitename}}
-from '{{$requestor}}'.
+por '{{$requestor}}'.
-You may visit their profile at {{$url}}.
+Você pode ver o perfil dele em {{$url}}.
-Please login to your site to view the complete introduction
-and approve or ignore/cancel the request.
+Por favor, autentique-se no seu site para ver a apresentação completa
+e aprovar ou ignorar/cancelar o pedido.
{{$siteurl}}
-Regards,
+Gratidão,
- {{$sitename}} administrator
+ {{$sitename}} administrador
diff --git a/view/pt-br/strings.php b/view/pt-br/strings.php
index e59f5978a..c1c127e61 100644
--- a/view/pt-br/strings.php
+++ b/view/pt-br/strings.php
@@ -53,7 +53,7 @@ $a->strings["Visit %1\$s's %2\$s"] = "Visite o %2\$s de %1\$s";
$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s atualizou %2\$s, alterando %3\$s.";
$a->strings["Logout"] = "Sair";
$a->strings["End this session"] = "Encerrar essa sessão";
-$a->strings["Home"] = "Meu canal";
+$a->strings["Home"] = "Ver canal";
$a->strings["Your posts and conversations"] = "Suas publicações e conversas";
$a->strings["View Profile"] = "Ver perfil";
$a->strings["Your profile page"] = "A página do seu perfil";
@@ -184,7 +184,7 @@ $a->strings["bytes"] = "bytes";
$a->strings["remove category"] = "remover categoria";
$a->strings["remove from file"] = "remover do arquivo";
$a->strings["Click to open/close"] = "Clique para abrir/fechar";
-$a->strings["link to source"] = "exibir a origem";
+$a->strings["link to source"] = "Link para a origem";
$a->strings["Select a page layout: "] = "Selecione um layout de página:";
$a->strings["default"] = "default";
$a->strings["Page content type: "] = "Tipo de conteúdo da página: ";
@@ -314,7 +314,7 @@ $a->strings["Channels not in any collection"] = "Canais que não estão em nenhu
$a->strings["Delete this item?"] = "Excluir este item?";
$a->strings["Comment"] = "Comentar";
$a->strings["show more"] = "exibir mais";
-$a->strings["show fewer"] = "mostrar menos";
+$a->strings["show fewer"] = "exibir menos";
$a->strings["Password too short"] = "A senha é muito curta";
$a->strings["Passwords do not match"] = "As senhas não correspondem";
$a->strings["everybody"] = "todos";
@@ -438,9 +438,9 @@ $a->strings["Set expiration date"] = "Definir data de expiração";
$a->strings["Encrypt text"] = "Encriptar texto";
$a->strings["OK"] = "Ok";
$a->strings["Cancel"] = "Cancelar";
-$a->strings["Commented Order"] = "Recentemente comentados";
+$a->strings["Commented Order"] = "Recentes e comentados";
$a->strings["Sort by Comment Date"] = "Ordenar pela data do último comentário";
-$a->strings["Posted Order"] = "Ordem de publicação";
+$a->strings["Posted Order"] = "Recentemente publicados";
$a->strings["Sort by Post Date"] = "Ordenar pela data da publicação";
$a->strings["Personal"] = "Pessoal";
$a->strings["Posts that mention or involve you"] = "Publicações que mencionam ou envolvem você";
@@ -714,9 +714,8 @@ $a->strings["This action exceeds the limits set by your subscription plan."] = "
$a->strings["This action is not available under your subscription plan."] = "Essa ação não está disponível para o seu plano de assinatura.";
$a->strings["Channel is blocked on this site."] = "O canal está bloqueado neste site.";
$a->strings["Channel location missing."] = "A localização do canal foi perdida";
-$a->strings["Channel discovery failed. Website may be down or misconfigured."] = "Não foi possível descobrir o canal. O site pode estar fora do ar ou desconfigurado.";
-$a->strings["Response from remote channel was not understood."] = "A resposta do canal remoto não foi compreendida.";
$a->strings["Response from remote channel was incomplete."] = "A resposta do canal remoto está incompleta.";
+$a->strings["Channel discovery failed."] = "A descoberta de canais falhou.";
$a->strings["local account not found."] = "a conta local não foi encontrada.";
$a->strings["Cannot connect to yourself."] = "Não é possível conectar-se consigo mesmo.";
$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "O token de segurança do formulário não estava correto. Isso provavelmente aconteceu porque o formulário ficou aberto por muito tempo (>3 horas) antes da sua submissão.";
@@ -745,6 +744,7 @@ $a->strings["Can send me bookmarks"] = "Pode me enviar links guardados";
$a->strings["Can administer my channel resources"] = "Pode administrar os recursos do meu canal";
$a->strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Extremamente avançado. Não mexa nisso a não ser que saiba o que está fazendo";
$a->strings["Permission denied"] = "Permissão negada";
+$a->strings["Unknown"] = "Desconhecidos";
$a->strings["Item not found."] = "O item não foi encontrado.";
$a->strings["Collection not found."] = "A coleção não foi encontrada.";
$a->strings["Collection is empty."] = "A coleção está vazia.";
@@ -808,13 +808,113 @@ $a->strings["Please visit my channel at"] = "Por favor, visite o meu canal em";
$a->strings["Once you have registered (on ANY Red Matrix site - they are all inter-connected), please connect with my Red Matrix channel address:"] = "Após você se registrar (em qualquer site da Red Matrix - eles são todos interconectados!), peço que conecte-se comigo usando o endereço do meu canal:";
$a->strings["Click the [Register] link on the following page to join."] = "Clique no link [Registrar] na seguinte página para participar.";
$a->strings["For more information about the Red Matrix Project and why it has the potential to change the internet as we know it, please visit http://getzot.com"] = "Para maiores informações sobre o Projeto Red Matrix e porque ele tem potencial para mudar a Internet como a conhecemos, por favor visite: http://getzot.com";
-$a->strings["Unable to locate original post."] = "Não foi possível localizar a publicação original.";
-$a->strings["Empty post discarded."] = "A publicação em branco foi descartada.";
-$a->strings["Executable content type not permitted to this channel."] = "Conteúdo de tipo executável não permitido para este canal.";
-$a->strings["System error. Post not saved."] = "Erro no sistema. A publicação não foi salva.";
-$a->strings["Wall Photos"] = "Fotos do mural";
-$a->strings["You have reached your limit of %1$.0f top level posts."] = "Você atingiu o seu limite de %1$.0f publicações de novos tópicos.";
-$a->strings["You have reached your limit of %1$.0f webpages."] = "Você atingiu o seu limite de %1$.0f páginas web.";
+$a->strings["Name is required"] = "O nome é obrigatório";
+$a->strings["Key and Secret are required"] = "A chave e o segredo são obrigatórios";
+$a->strings["Update"] = "Atualizar";
+$a->strings["Passwords do not match. Password unchanged."] = "As senhas não correspondem. A senha não foi modificada.";
+$a->strings["Empty passwords are not allowed. Password unchanged."] = "Não é permitido uma senha em branco. A senha não foi modificada.";
+$a->strings["Password changed."] = "A senha foi modificada.";
+$a->strings["Password update failed. Please try again."] = "Não foi possível atualizar a senha. Por favor, tente novamente.";
+$a->strings["Not valid email."] = "Não é um e-mail válido";
+$a->strings["Protected email address. Cannot change to that email."] = "Endereço de e-mail protegido. Não é possível mudar para esse e-mail.";
+$a->strings["System failure storing new email. Please try again."] = "Falha do sistema ao armazenar novo e-mail. Por favor, tente novamente.";
+$a->strings["Settings updated."] = "As configurações foram atualizadas.";
+$a->strings["Add application"] = "Adicionar aplicação";
+$a->strings["Name"] = "Nome";
+$a->strings["Name of application"] = "Nome da aplicação";
+$a->strings["Consumer Key"] = "Chave de consumidor";
+$a->strings["Automatically generated - change if desired. Max length 20"] = "Gerado automaticamente - troque se desejável. Comprimento máximo 20";
+$a->strings["Consumer Secret"] = "Segredo de consumidor";
+$a->strings["Redirect"] = "Redirecionamento";
+$a->strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI de redirecionamento - deixe em branco, a não ser que sua aplicação especificamente requeira isso";
+$a->strings["Icon url"] = "URL do ícone";
+$a->strings["Optional"] = "Opcional";
+$a->strings["You can't edit this application."] = "Você não pode editar esta aplicação.";
+$a->strings["Connected Apps"] = "Aplicações conectadas";
+$a->strings["Client key starts with"] = "Chave do cliente começa com";
+$a->strings["No name"] = "Sem nome";
+$a->strings["Remove authorization"] = "Remover autorização";
+$a->strings["No feature settings configured"] = "Não foi definida nenhuma configuração do recurso";
+$a->strings["Feature Settings"] = "Configurações do recurso";
+$a->strings["Account Settings"] = "Configurações da conta";
+$a->strings["Password Settings"] = "Configurações da senha";
+$a->strings["New Password:"] = "Nova senha:";
+$a->strings["Confirm:"] = "Confirme:";
+$a->strings["Leave password fields blank unless changing"] = "Deixe os campos de senha em branco, a não ser que você queira alterá-la";
+$a->strings["Email Address:"] = "Endereço de e-mail:";
+$a->strings["Remove Account"] = "Remover conta";
+$a->strings["Warning: This action is permanent and cannot be reversed."] = "Atenção: Esta ação é permanente e não pode ser revertida.";
+$a->strings["Off"] = "Desligado";
+$a->strings["On"] = "Ligado";
+$a->strings["Additional Features"] = "Recursos adicionais";
+$a->strings["Connector Settings"] = "Configurações do conector";
+$a->strings["No special theme for mobile devices"] = "Sem tema especial para aparelhos móveis";
+$a->strings["Display Settings"] = "Configurações de exibição";
+$a->strings["Display Theme:"] = "Tema do perfil:";
+$a->strings["Mobile Theme:"] = "Tema móvel:";
+$a->strings["Update browser every xx seconds"] = "Atualizar navegador a cada xx segundos";
+$a->strings["Minimum of 10 seconds, no maximum"] = "Mínimo de 10 segundos, sem máximo";
+$a->strings["Maximum number of conversations to load at any time:"] = "Número máximo permitido de conversas carregadas:";
+$a->strings["Maximum of 100 items"] = "Máximo de 100 itens";
+$a->strings["Don't show emoticons"] = "Não exibir emoticons";
+$a->strings["Do not view remote profiles in frames"] = "Não exibir perfis remotos em frames";
+$a->strings["By default open in a sub-window of your own site"] = "Por padrão, abrir em uma sub-janela do seu próprio site";
+$a->strings["Nobody except yourself"] = "Ninguém exceto você mesmo";
+$a->strings["Only those you specifically allow"] = "Apenas quem você der permissão";
+$a->strings["Anybody in your address book"] = "Qualquer um nos seus contatos";
+$a->strings["Anybody on this website"] = "Qualquer um neste site";
+$a->strings["Anybody in this network"] = "Qualquer um nesta rede";
+$a->strings["Anybody authenticated"] = "Qualquer um autenticado";
+$a->strings["Anybody on the internet"] = "Qualquer um na internet";
+$a->strings["Publish your default profile in the network directory"] = "Publicar seu perfil padrão no diretório da rede?";
+$a->strings["No"] = "Não";
+$a->strings["Yes"] = "Sim";
+$a->strings["Allow us to suggest you as a potential friend to new members?"] = "Permitir sugerir você como amigo potencial para outros membros?";
+$a->strings["or"] = "ou";
+$a->strings["Your channel address is"] = "O endereço do seu canal é";
+$a->strings["Channel Settings"] = "Configurações do canal";
+$a->strings["Basic Settings"] = "Configurações básicas";
+$a->strings["Your Timezone:"] = "Seu fuso horário:";
+$a->strings["Default Post Location:"] = "Localização padrão de suas publicações:";
+$a->strings["Use Browser Location:"] = "Usar localizador do navegador:";
+$a->strings["Adult Content"] = "Conteúdo adulto";
+$a->strings["This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)"] = "Este canal frequentemente ou regularmente publica conteúdo adulto. (Por favor marque qualquer material adulto e/ou nudez com #NSFW)";
+$a->strings["Security and Privacy Settings"] = "Configurações de segurança e privacidade";
+$a->strings["Hide my online presence"] = "Esconda minha presença online";
+$a->strings["Prevents displaying in your profile that you are online"] = "Previne exibir em seu perfil que você está online";
+$a->strings["Simple Privacy Settings:"] = "Configurações de privacidade simples:";
+$a->strings["Very Public - <em>extremely permissive (should be used with caution)</em>"] = "Muito público - <em>extremamente permissivo (deve ser usado com cuidado)</em>";
+$a->strings["Typical - <em>default public, privacy when desired (similar to social network permissions but with improved privacy)</em>"] = "Típico - <em>público por padrão, privado quando desejável (similar às permissões de redes sociais, mas com melhor privacidade)</em>";
+$a->strings["Private - <em>default private, never open or public</em>"] = "Privado - <em>privado por padrão, nunca aberto ou público</em>";
+$a->strings["Blocked - <em>default blocked to/from everybody</em>"] = "Bloqueado - <em>por padrão bloquado de/para todos</em>";
+$a->strings["Allow others to tag your posts"] = "Permitir que outros etiquetem suas publicações";
+$a->strings["Often used by the community to retro-actively flag inappropriate content"] = "Frequentemente utilizado pela comunidade para retroativamente sinalizar conteúdo inapropriado";
+$a->strings["Advanced Privacy Settings"] = "Configurações de privacidade avançadas";
+$a->strings["Maximum Friend Requests/Day:"] = "Número máximo de requisições de amizade por dia:";
+$a->strings["May reduce spam activity"] = "Pode reduzir a frequência de spam";
+$a->strings["Default Post Permissions"] = "Permissões padrão de publicação";
+$a->strings["(click to open/close)"] = "(clique para abrir/fechar)";
+$a->strings["Maximum private messages per day from unknown people:"] = "Máximo número de mensagens privadas por dia de pessoas desconhecidas:";
+$a->strings["Useful to reduce spamming"] = "Útil para reduzir a frequência de spam";
+$a->strings["Notification Settings"] = "Configurações de notificação";
+$a->strings["By default post a status message when:"] = "Por padrão, publicar uma mensagem de status quando:";
+$a->strings["accepting a friend request"] = "aceitar um pedido de amizade";
+$a->strings["joining a forum/community"] = "associar-se a um fórum/comunidade";
+$a->strings["making an <em>interesting</em> profile change"] = "modificar algo <em>interessante</em> em seu perfil";
+$a->strings["Send a notification email when:"] = "Enviar um e-mail de notificação quando:";
+$a->strings["You receive an introduction"] = "Você recebeu uma apresentação";
+$a->strings["Your introductions are confirmed"] = "Suas solicitações forem confirmadas";
+$a->strings["Someone writes on your profile wall"] = "Alguém escrever no mural do seu perfil";
+$a->strings["Someone writes a followup comment"] = "Alguém comentou a sua mensagem";
+$a->strings["You receive a private message"] = "Você recebeu uma mensagem privada";
+$a->strings["You receive a friend suggestion"] = "Você recebe uma sugestão de amizade";
+$a->strings["You are tagged in a post"] = "Você é mencionado num post";
+$a->strings["You are poked/prodded/etc. in a post"] = "Você foi cutucado/espetado/etc. numa publicação";
+$a->strings["Advanced Account/Page Type Settings"] = "Configurações avançadas de conta/tipo de página";
+$a->strings["Change the behaviour of this account for special situations"] = "Mudar o comportamento dessa conta em situações especiais";
+$a->strings["Please enable expert mode (in <a href=\"settings/features\">Settings > Additional features</a>) to adjust!"] = "Por favor, habilite o modo expert (em <a href=\"settings/features\">Configurações > Recursos adicionais</a>) para ajustar!";
+$a->strings["Miscellaneous Settings"] = "Configurações miscelâneas";
+$a->strings["Personal menu to display in your channel pages"] = "Menu pessoal para exibir nas páginas dos seus canais";
$a->strings["Menu updated."] = "Menu atualizado.";
$a->strings["Unable to update menu."] = "Não foi possível atualizar o menu.";
$a->strings["Menu created."] = "Menu criado.";
@@ -845,8 +945,6 @@ $a->strings["Authorize application connection"] = "Autorizar a conexão com a ap
$a->strings["Return to your app and insert this Securty Code:"] = "Volte para a sua aplicação e digite este código de segurança:";
$a->strings["Please login to continue."] = "Por favor, autentique-se para continuar.";
$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Deseja autorizar esta aplicação a acessar suas publicações e contatos e/ou criar novas publicações para você?";
-$a->strings["Yes"] = "Sim";
-$a->strings["No"] = "Não";
$a->strings["No installed applications."] = "Não existe nenhuma aplicação instalada.";
$a->strings["Applications"] = "Aplicações";
$a->strings["Edit post"] = "Editar a publicação";
@@ -854,6 +952,13 @@ $a->strings["Red Matrix - Guests: Username: {your email address}, Password: +++"
$a->strings["Bookmark added"] = "O link foi guardado";
$a->strings["My Bookmarks"] = "Meus links guardados";
$a->strings["My Connections Bookmarks"] = "Links guardados das minhas conexões";
+$a->strings["Unable to locate original post."] = "Não foi possível localizar a publicação original.";
+$a->strings["Empty post discarded."] = "A publicação em branco foi descartada.";
+$a->strings["Executable content type not permitted to this channel."] = "Conteúdo de tipo executável não permitido para este canal.";
+$a->strings["System error. Post not saved."] = "Erro no sistema. A publicação não foi salva.";
+$a->strings["Wall Photos"] = "Fotos do mural";
+$a->strings["You have reached your limit of %1$.0f top level posts."] = "Você atingiu o seu limite de %1$.0f publicações de novos tópicos.";
+$a->strings["You have reached your limit of %1$.0f webpages."] = "Você atingiu o seu limite de %1$.0f páginas web.";
$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s está acompanhando %3\$s de %2\$s";
$a->strings["[Embedded content - reload page to view]"] = "[Conteúdo incorporado - recarregue a página para ver]";
$a->strings["Channel not found."] = "O canal não foi encontrado.";
@@ -909,7 +1014,6 @@ $a->strings["Delete this menu item"] = "Deleter este item de menu";
$a->strings["Edit this menu item"] = "Editar este item de menu";
$a->strings["New Menu Element"] = "Novo elemento de menu";
$a->strings["Menu Item Permissions"] = "Permissões do item do menu";
-$a->strings["(click to open/close)"] = "(clique para abrir/fechar)";
$a->strings["Link text"] = "Texto do link";
$a->strings["URL of link"] = "URL do link";
$a->strings["Use Red magic-auth if available"] = "Usar <em>Red magic-auth</em> se disponível";
@@ -955,7 +1059,6 @@ $a->strings["Pending registrations"] = "Registros pendentes";
$a->strings["Version"] = "Versão";
$a->strings["Active plugins"] = "Plugins ativos";
$a->strings["Site settings updated."] = "As configurações de site foram atualizadas.";
-$a->strings["No special theme for mobile devices"] = "Sem tema especial para aparelhos móveis";
$a->strings["No special theme for accessibility"] = "Sem tema especial para acessibilidade";
$a->strings["Closed"] = "Fechado";
$a->strings["Requires approval"] = "Requer aprovação";
@@ -1114,7 +1217,6 @@ $a->strings["Unhide"] = "Não ocultar";
$a->strings["Hide"] = "Ocultar";
$a->strings["Hide or Unhide this connection"] = "Ocultar ou deixar de ocultar esta conexão";
$a->strings["Delete this connection"] = "Deletar esta conexão";
-$a->strings["Unknown"] = "Desconhecidos";
$a->strings["Approve this connection"] = "Aprovar esta conexão";
$a->strings["Accept connection to allow communication"] = "Aceite a conexão para permitir comunicação";
$a->strings["Automatic Permissions Settings"] = "Configurações de permissão automáticas";
@@ -1160,6 +1262,9 @@ $a->strings["Layout Name"] = "Nome do layout";
$a->strings["Help:"] = "Ajuda:";
$a->strings["Not Found"] = "Não encontrada";
$a->strings["Page not found."] = "Página não encontrada.";
+$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Encontramos um problema ao entrar com a OpenID fornecida. Por favor, verifique se digitou corretamente a ID.";
+$a->strings["The error message was:"] = "A mensagem de erro foi:";
+$a->strings["Authentication failed."] = "A autenticação falhou.";
$a->strings["Remote Authentication"] = "Autenticação remota";
$a->strings["Enter your channel address (e.g. channel@example.com)"] = "Entre o endereço do seu canal (e.g. canal@exemplo.com)";
$a->strings["Authenticate"] = "Autenticar";
@@ -1330,7 +1435,7 @@ $a->strings["Version %s"] = "Versão %s";
$a->strings["Installed plugins/addons/apps:"] = "Plugins/complementos/aplicações instalados:";
$a->strings["No installed plugins/addons/apps"] = "Nenhum plugin/complemento/aplicação instalado";
$a->strings["Project Donations"] = "Doações para o projeto";
-$a->strings["<p>The Red Matrix is provided for you by volunteers working in their spare time. Your support will help us to build a better web. Select the following option for a one-time donation of your choosing</p>"] = "<p>A Red Matrix é oferecida a você por voluntários trabalhando no seu tempo livre. Seu apoio irá nos ajudar a construir uma web melhor. Selecione uma das opções abaixo para realizar uma única doação de sua escolha:</p>";
+$a->strings["<p>The Red Matrix is provided for you by volunteers working in their spare time. Your support will help us to build a better, freer, and privacy respecting web. Select the following option for a one-time donation of your choosing</p>"] = "<p>A Red Matrix é oferecida a você por voluntários trabalhando no seu tempo livre. Seu apoio irá nos ajudar a construir uma web melhor, mais livre e com respeito à privacidade. Selecione uma das opções abaixo para realizar uma única doação de sua escolha:</p>";
$a->strings["<p>or</p>"] = "<p>ou</p>";
$a->strings["Recurring Donation Options"] = "Opções para doações recorrentes";
$a->strings["Red"] = "Red";
@@ -1362,104 +1467,6 @@ $a->strings["Forgot your Password?"] = "Esqueceu a sua senha?";
$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Digite o seu endereço de e-mail e clique em 'Restaurar' para prosseguir com a restauração da sua senha. Após isso, verifique seu e-mail para mais instruções.";
$a->strings["Email Address"] = "Endereço de e-mail";
$a->strings["Reset"] = "Restaurar";
-$a->strings["Name is required"] = "O nome é obrigatório";
-$a->strings["Key and Secret are required"] = "A chave e o segredo são obrigatórios";
-$a->strings["Update"] = "Atualizar";
-$a->strings["Passwords do not match. Password unchanged."] = "As senhas não correspondem. A senha não foi modificada.";
-$a->strings["Empty passwords are not allowed. Password unchanged."] = "Não é permitido uma senha em branco. A senha não foi modificada.";
-$a->strings["Password changed."] = "A senha foi modificada.";
-$a->strings["Password update failed. Please try again."] = "Não foi possível atualizar a senha. Por favor, tente novamente.";
-$a->strings["Not valid email."] = "Não é um e-mail válido";
-$a->strings["Protected email address. Cannot change to that email."] = "Endereço de e-mail protegido. Não é possível mudar para esse e-mail.";
-$a->strings["System failure storing new email. Please try again."] = "Falha do sistema ao armazenar novo e-mail. Por favor, tente novamente.";
-$a->strings["Settings updated."] = "As configurações foram atualizadas.";
-$a->strings["Add application"] = "Adicionar aplicação";
-$a->strings["Name"] = "Nome";
-$a->strings["Name of application"] = "Nome da aplicação";
-$a->strings["Consumer Key"] = "Chave de consumidor";
-$a->strings["Automatically generated - change if desired. Max length 20"] = "Gerado automaticamente - troque se desejável. Comprimento máximo 20";
-$a->strings["Consumer Secret"] = "Segredo de consumidor";
-$a->strings["Redirect"] = "Redirecionamento";
-$a->strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI de redirecionamento - deixe em branco, a não ser que sua aplicação especificamente requeira isso";
-$a->strings["Icon url"] = "URL do ícone";
-$a->strings["Optional"] = "Opcional";
-$a->strings["You can't edit this application."] = "Você não pode editar esta aplicação.";
-$a->strings["Connected Apps"] = "Aplicações conectadas";
-$a->strings["Client key starts with"] = "Chave do cliente começa com";
-$a->strings["No name"] = "Sem nome";
-$a->strings["Remove authorization"] = "Remover autorização";
-$a->strings["No feature settings configured"] = "Não foi definida nenhuma configuração do recurso";
-$a->strings["Feature Settings"] = "Configurações do recurso";
-$a->strings["Account Settings"] = "Configurações da conta";
-$a->strings["Password Settings"] = "Configurações da senha";
-$a->strings["New Password:"] = "Nova senha:";
-$a->strings["Confirm:"] = "Confirme:";
-$a->strings["Leave password fields blank unless changing"] = "Deixe os campos de senha em branco, a não ser que você queira alterá-la";
-$a->strings["Email Address:"] = "Endereço de e-mail:";
-$a->strings["Remove Account"] = "Remover conta";
-$a->strings["Warning: This action is permanent and cannot be reversed."] = "Atenção: Esta ação é permanente e não pode ser revertida.";
-$a->strings["Off"] = "Desligado";
-$a->strings["On"] = "Ligado";
-$a->strings["Additional Features"] = "Recursos adicionais";
-$a->strings["Connector Settings"] = "Configurações do conector";
-$a->strings["Display Settings"] = "Configurações de exibição";
-$a->strings["Display Theme:"] = "Tema do perfil:";
-$a->strings["Mobile Theme:"] = "Tema móvel:";
-$a->strings["Update browser every xx seconds"] = "Atualizar navegador a cada xx segundos";
-$a->strings["Minimum of 10 seconds, no maximum"] = "Mínimo de 10 segundos, sem máximo";
-$a->strings["Maximum number of conversations to load at any time:"] = "Número máximo permitido de conversas carregadas:";
-$a->strings["Maximum of 100 items"] = "Máximo de 100 itens";
-$a->strings["Don't show emoticons"] = "Não exibir emoticons";
-$a->strings["Do not view remote profiles in frames"] = "Não exibir perfis remotos em frames";
-$a->strings["By default open in a sub-window of your own site"] = "Por padrão, abrir em uma sub-janela do seu próprio site";
-$a->strings["Nobody except yourself"] = "Ninguém exceto você mesmo";
-$a->strings["Only those you specifically allow"] = "Apenas quem você der permissão";
-$a->strings["Anybody in your address book"] = "Qualquer um nos seus contatos";
-$a->strings["Anybody on this website"] = "Qualquer um neste site";
-$a->strings["Anybody in this network"] = "Qualquer um nesta rede";
-$a->strings["Anybody on the internet"] = "Qualquer um na internet";
-$a->strings["Publish your default profile in the network directory"] = "Publicar seu perfil padrão no diretório da rede?";
-$a->strings["Allow us to suggest you as a potential friend to new members?"] = "Permitir sugerir você como amigo potencial para outros membros?";
-$a->strings["or"] = "ou";
-$a->strings["Your channel address is"] = "O endereço do seu canal é";
-$a->strings["Channel Settings"] = "Configurações do canal";
-$a->strings["Basic Settings"] = "Configurações básicas";
-$a->strings["Your Timezone:"] = "Seu fuso horário:";
-$a->strings["Default Post Location:"] = "Localização padrão de suas publicações:";
-$a->strings["Use Browser Location:"] = "Usar localizador do navegador:";
-$a->strings["Adult Content"] = "Conteúdo adulto";
-$a->strings["This channel frequently or regularly publishes adult content. (Please tag any adult material and/or nudity with #NSFW)"] = "Este canal frequentemente ou regularmente publica conteúdo adulto. (Por favor marque qualquer material adulto e/ou nudez com #NSFW)";
-$a->strings["Security and Privacy Settings"] = "Configurações de segurança e privacidade";
-$a->strings["Hide my online presence"] = "Esconda minha presença online";
-$a->strings["Prevents displaying in your profile that you are online"] = "Previne exibir em seu perfil que você está online";
-$a->strings["Simple Privacy Settings:"] = "Configurações de privacidade simples:";
-$a->strings["Very Public - <em>extremely permissive (should be used with caution)</em>"] = "Muito público - <em>extremamente permissivo (deve ser usado com cuidado)</em>";
-$a->strings["Typical - <em>default public, privacy when desired (similar to social network permissions but with improved privacy)</em>"] = "Típico - <em>público por padrão, privado quando desejável (similar às permissões de redes sociais, mas com melhor privacidade)</em>";
-$a->strings["Private - <em>default private, never open or public</em>"] = "Privado - <em>privado por padrão, nunca aberto ou público</em>";
-$a->strings["Blocked - <em>default blocked to/from everybody</em>"] = "Bloqueado - <em>por padrão bloquado de/para todos</em>";
-$a->strings["Advanced Privacy Settings"] = "Configurações de privacidade avançadas";
-$a->strings["Maximum Friend Requests/Day:"] = "Número máximo de requisições de amizade por dia:";
-$a->strings["May reduce spam activity"] = "Pode reduzir a frequência de spam";
-$a->strings["Default Post Permissions"] = "Permissões padrão de publicação";
-$a->strings["Maximum private messages per day from unknown people:"] = "Máximo número de mensagens privadas por dia de pessoas desconhecidas:";
-$a->strings["Useful to reduce spamming"] = "Útil para reduzir a frequência de spam";
-$a->strings["Notification Settings"] = "Configurações de notificação";
-$a->strings["By default post a status message when:"] = "Por padrão, publicar uma mensagem de status quando:";
-$a->strings["accepting a friend request"] = "aceitar um pedido de amizade";
-$a->strings["joining a forum/community"] = "associar-se a um fórum/comunidade";
-$a->strings["making an <em>interesting</em> profile change"] = "modificar algo <em>interessante</em> em seu perfil";
-$a->strings["Send a notification email when:"] = "Enviar um e-mail de notificação quando:";
-$a->strings["You receive an introduction"] = "Você recebeu uma apresentação";
-$a->strings["Your introductions are confirmed"] = "Suas solicitações forem confirmadas";
-$a->strings["Someone writes on your profile wall"] = "Alguém escrever no mural do seu perfil";
-$a->strings["Someone writes a followup comment"] = "Alguém comentou a sua mensagem";
-$a->strings["You receive a private message"] = "Você recebeu uma mensagem privada";
-$a->strings["You receive a friend suggestion"] = "Você recebe uma sugestão de amizade";
-$a->strings["You are tagged in a post"] = "Você é mencionado num post";
-$a->strings["You are poked/prodded/etc. in a post"] = "Você foi cutucado/espetado/etc. numa publicação";
-$a->strings["Advanced Account/Page Type Settings"] = "Configurações avançadas de conta/tipo de página";
-$a->strings["Change the behaviour of this account for special situations"] = "Mudar o comportamento dessa conta em situações especiais";
-$a->strings["Please enable expert mode (in Settings > Additional features) to adjust!"] = "Por favor, habilite o modo expert (em Configurações > Recursos adicionais) para ajustar!";
$a->strings["Nothing to import."] = "Nada a importar.";
$a->strings["Unable to download data from old server"] = "Não foi possível descarregar os dados do servidor antigo";
$a->strings["Imported file is empty."] = "O arquivo importado está vazio.";
@@ -1509,6 +1516,7 @@ $a->strings["Private Conversation"] = "Conversa privada";
$a->strings["Delete conversation"] = "Excluir conversa";
$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Comunicação segura indisponível. Você <strong>talvez</strong> consiga responder pela página de perfil do remetente.";
$a->strings["Send Reply"] = "Enviar resposta";
+$a->strings["OpenID protocol error. No ID returned."] = "Erro do protocolo OpenID. Nenhuma ID retornada.";
$a->strings["Edit Layout"] = "Editar layout";
$a->strings["Delete layout?"] = "Deletar layout?";
$a->strings["Delete Layout"] = "Deletar layout";
@@ -1637,7 +1645,7 @@ $a->strings["You have used %1$.2f Mbytes of photo storage."] = "Você usou %1$.2
$a->strings["Upload Photos"] = "Enviar fotos";
$a->strings["New album name: "] = "Novo nome de álbum: ";
$a->strings["or existing album name: "] = "ou nome de um álbum já existente: ";
-$a->strings["Do not show a status post for this upload"] = "Não mostrar uma publicação de status para este carregamento";
+$a->strings["Do not show a status post for this upload"] = "Não exibir uma publicação de status para este carregamento";
$a->strings["Contact Photos"] = "Fotos dos contatos";
$a->strings["Edit Album"] = "Editar o álbum";
$a->strings["Show Newest First"] = "Exibir primeiro os mais recentes";
diff --git a/view/ru/messages.po b/view/ru/messages.po
index d4ee432e3..8abc23b29 100644
--- a/view/ru/messages.po
+++ b/view/ru/messages.po
@@ -3,14 +3,14 @@
# This file is distributed under the same license as the Red package.
#
# Translators:
-# alexej <info@pixelbits.de>, 2013
+# alexej <alex@red.pixelbits.de>, 2013-2014
msgid ""
msgstr ""
"Project-Id-Version: Red Matrix\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-13 00:01-0700\n"
-"PO-Revision-Date: 2013-09-16 06:41+0000\n"
-"Last-Translator: alexej <info@pixelbits.de>\n"
+"POT-Creation-Date: 2014-01-10 00:02-0800\n"
+"PO-Revision-Date: 2014-01-13 15:03+0000\n"
+"Last-Translator: alexej <alex@red.pixelbits.de>\n"
"Language-Team: Russian (http://www.transifex.com/projects/p/red-matrix/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -30,266 +30,435 @@ msgstr "показывать"
msgid "don't show"
msgstr "не показывать"
-#: ../../include/activities.php:37
+#: ../../include/activities.php:39
msgid " and "
msgstr "и"
-#: ../../include/activities.php:45
+#: ../../include/activities.php:47
msgid "public profile"
msgstr "Публичный профиль"
-#: ../../include/activities.php:50
+#: ../../include/activities.php:52
#, php-format
msgid "%1$s changed %2$s to &ldquo;%3$s&rdquo;"
msgstr "%1$s изменил %2$s на &ldquo;%3$s&rdquo;"
-#: ../../include/activities.php:51
+#: ../../include/activities.php:53
#, php-format
msgid "Visit %1$s's %2$s"
msgstr "ПоÑетить %1$s's %2$s"
-#: ../../include/activities.php:54
+#: ../../include/activities.php:56
#, php-format
msgid "%1$s has an updated %2$s, changing %3$s."
msgstr ""
-#: ../../include/api.php:968
+#: ../../include/api.php:973
msgid "Public Timeline"
msgstr "ÐŸÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð°Ñ ÑˆÐºÐ°Ð»Ð° времени"
-#: ../../include/enotify.php:36
-msgid "Red Matrix Notification"
-msgstr "ÐžÐ¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Red матрицы"
+#: ../../include/nav.php:72 ../../include/nav.php:87 ../../boot.php:1415
+msgid "Logout"
+msgstr "Выход"
-#: ../../include/enotify.php:39
-msgid "Thank You,"
-msgstr "СпаÑибо,"
+#: ../../include/nav.php:72 ../../include/nav.php:87
+msgid "End this session"
+msgstr "Закончить Ñту ÑеÑÑию"
-#: ../../include/enotify.php:41
-#, php-format
-msgid "%s Administrator"
-msgstr "%s админиÑтратор"
+#: ../../include/nav.php:75 ../../include/nav.php:121
+msgid "Home"
+msgstr "Мой канал"
-#: ../../include/enotify.php:75
-#, php-format
-msgid "%s <!item_type!>"
-msgstr "%s <!item_type!>"
+#: ../../include/nav.php:75
+msgid "Your posts and conversations"
+msgstr "Ваши ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸ разговоры"
-#: ../../include/enotify.php:79
-#, php-format
-msgid "[Red:Notify] New mail received at %s"
-msgstr "[Red:Уведомление] Получено новое Ñообщение в %s"
+#: ../../include/nav.php:76 ../../include/conversation.php:932
+#: ../../mod/connedit.php:309 ../../mod/connedit.php:423
+msgid "View Profile"
+msgstr "ПроÑмотр профилÑ"
-#: ../../include/enotify.php:81
-#, php-format
-msgid "%1$s sent you a new private message at %2$s."
-msgstr "%1$s отправил вам новое личное Ñообщение в %2$s."
+#: ../../include/nav.php:76
+msgid "Your profile page"
+msgstr "Страницa вашего профилÑ"
-#: ../../include/enotify.php:82
-#, php-format
-msgid "%1$s sent you %2$s."
-msgstr "%1$s поÑлал вам %2$s."
+#: ../../include/nav.php:78
+msgid "Edit Profiles"
+msgstr "Редактирование профилей"
-#: ../../include/enotify.php:82
-msgid "a private message"
-msgstr "личное Ñообщение"
+#: ../../include/nav.php:78
+msgid "Manage/Edit Profiles"
+msgstr "Управление / Редактирование профилей"
-#: ../../include/enotify.php:83
-#, php-format
-msgid "Please visit %s to view and/or reply to your private messages."
-msgstr "ПожалуйÑта, поÑетите %s Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра и/или ответа на ваши личные ÑообщениÑ."
+#: ../../include/nav.php:79 ../../include/conversation.php:1462
+#: ../../mod/fbrowser.php:25
+msgid "Photos"
+msgstr "Фотографии"
-#: ../../include/enotify.php:129
-#, php-format
-msgid "%1$s commented on [zrl=%2$s]a %3$s[/zrl]"
-msgstr "%1$s прокомментировал на [zrl=%2$s]a %3$s[/zrl]"
+#: ../../include/nav.php:79
+msgid "Your photos"
+msgstr "Ваши фотографии"
-#: ../../include/enotify.php:136
-#, php-format
-msgid "%1$s commented on [zrl=%2$s]%3$s's %4$s[/zrl]"
-msgstr "%1$s прокомментировал на [zrl=%2$s]%3$s's %4$s[/zrl]"
+#: ../../include/nav.php:85 ../../boot.php:1416
+msgid "Login"
+msgstr "Войти"
-#: ../../include/enotify.php:144
-#, php-format
-msgid "%1$s commented on [zrl=%2$s]your %3$s[/zrl]"
-msgstr "%1$s прокомментировал на [zrl=%2$s]your %3$s[/zrl]"
+#: ../../include/nav.php:85
+msgid "Sign in"
+msgstr "Войти"
-#: ../../include/enotify.php:154
+#: ../../include/nav.php:102
#, php-format
-msgid "[Red:Notify] Comment to conversation #%1$d by %2$s"
-msgstr "[Red:Уведомление] Комментарий к разговору #%1$d по %2$s"
+msgid "%s - click to logout"
+msgstr "%s - нажмите чтобы выйти"
-#: ../../include/enotify.php:155
-#, php-format
-msgid "%s commented on an item/conversation you have been following."
+#: ../../include/nav.php:107
+msgid "Click to authenticate to your home hub"
msgstr ""
-#: ../../include/enotify.php:158 ../../include/enotify.php:175
-#: ../../include/enotify.php:201 ../../include/enotify.php:219
-#: ../../include/enotify.php:232
-#, php-format
-msgid "Please visit %s to view and/or reply to the conversation."
-msgstr "ПожалуйÑта, поÑетите %s Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра и/или ответа разговора."
+#: ../../include/nav.php:121
+msgid "Home Page"
+msgstr "ÐœÐ¾Ñ Ñтраница"
-#: ../../include/enotify.php:165
-#, php-format
-msgid "[Red:Notify] %s posted to your profile wall"
-msgstr "[Red:Уведомление] %s добавил Ñообщениe на Ñтену вашего профилÑ"
+#: ../../include/nav.php:125 ../../mod/register.php:206 ../../boot.php:1392
+msgid "Register"
+msgstr "РегиÑтрациÑ"
-#: ../../include/enotify.php:167
-#, php-format
-msgid "%1$s posted to your profile wall at %2$s"
-msgstr "%1$s добавил Ñообщениe на Ñтену вашего Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Ð² %2$s"
+#: ../../include/nav.php:125
+msgid "Create an account"
+msgstr "Создать аккаунт"
-#: ../../include/enotify.php:169
-#, php-format
-msgid "%1$s posted to [zrl=%2$s]your wall[/zrl]"
-msgstr "%1$s добавил Ñообщениe на [zrl=%2$s]Ñтену вашего профилÑ[/zrl]"
+#: ../../include/nav.php:130 ../../mod/help.php:60 ../../mod/help.php:64
+msgid "Help"
+msgstr "Помощь"
-#: ../../include/enotify.php:195
-#, php-format
-msgid "[Red:Notify] %s tagged you"
-msgstr "[Red:Уведомление] %s добавил у Ð²Ð°Ñ Ñ‚ÐµÐ³"
+#: ../../include/nav.php:130
+msgid "Help and documentation"
+msgstr "Ð¡Ð¿Ñ€Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¸ документациÑ"
-#: ../../include/enotify.php:196
-#, php-format
-msgid "%1$s tagged you at %2$s"
-msgstr "%1$s добавил у Ð²Ð°Ñ Ñ‚ÐµÐ³ в %2$s"
+#: ../../include/nav.php:133
+msgid "Apps"
+msgstr "ПриложениÑ"
-#: ../../include/enotify.php:197
-#, php-format
-msgid "%1$s [zrl=%2$s]tagged you[/zrl]."
-msgstr "%1$s [zrl=%2$s]добавил у Ð²Ð°Ñ Ñ‚ÐµÐ³[/zrl]."
+#: ../../include/nav.php:133
+msgid "Addon applications, utilities, games"
+msgstr ""
-#: ../../include/enotify.php:209
-#, php-format
-msgid "[Red:Notify] %1$s poked you"
-msgstr "[Red:Уведомление] %1$s подпихнул ваÑ"
+#: ../../include/nav.php:135 ../../include/text.php:736
+#: ../../include/text.php:750 ../../mod/search.php:28
+msgid "Search"
+msgstr "ПоиÑк"
-#: ../../include/enotify.php:210
-#, php-format
-msgid "%1$s poked you at %2$s"
-msgstr "%1$s подпихнул Ð²Ð°Ñ Ð² %2$s"
+#: ../../include/nav.php:135
+msgid "Search site content"
+msgstr "ПоиÑк по Ñодержанию Ñайту"
-#: ../../include/enotify.php:211
-#, php-format
-msgid "%1$s [zrl=%2$s]poked you[/zrl]."
-msgstr "%1$s [zrl=%2$s]подпихнул ваÑ[/zrl]."
+#: ../../include/nav.php:138 ../../mod/directory.php:209
+msgid "Directory"
+msgstr "Каталог"
-#: ../../include/enotify.php:226
-#, php-format
-msgid "[Red:Notify] %s tagged your post"
-msgstr "[Red:Уведомление] %s добавил у Ð²Ð°Ñ Ð² Ñообщении тег"
+#: ../../include/nav.php:138
+msgid "Channel Locator"
+msgstr "Локатор каналов"
-#: ../../include/enotify.php:227
-#, php-format
-msgid "%1$s tagged your post at %2$s"
-msgstr "%1$s добавил у Ð²Ð°Ñ Ð² Ñообщении тег %2$s"
+#: ../../include/nav.php:149
+msgid "Matrix"
+msgstr "Матрица"
-#: ../../include/enotify.php:228
-#, php-format
-msgid "%1$s tagged [zrl=%2$s]your post[/zrl]"
-msgstr "%1$s добавил тег [zrl=%2$s] у Ð²Ð°Ñ Ð² Ñообщении[/zrl]"
+#: ../../include/nav.php:149
+msgid "Your matrix"
+msgstr "СобÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†Ð°"
-#: ../../include/enotify.php:239
-msgid "[Red:Notify] Introduction received"
-msgstr "[Red:Уведомление] введение получено"
+#: ../../include/nav.php:150
+msgid "Mark all matrix notifications seen"
+msgstr "Пометить вÑе Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†Ñ‹ как прочитанное"
-#: ../../include/enotify.php:240
-#, php-format
-msgid "You've received an introduction from '%1$s' at %2$s"
-msgstr "Вы получили введение от '%1$s' at %2$s"
+#: ../../include/nav.php:152
+msgid "Channel Home"
+msgstr ""
-#: ../../include/enotify.php:241
-#, php-format
-msgid "You've received [zrl=%1$s]an introduction[/zrl] from %2$s."
-msgstr "Вы получили [zrl=%1$s]введение[/zrl] от %2$s."
+#: ../../include/nav.php:152
+msgid "Channel home"
+msgstr ""
-#: ../../include/enotify.php:244 ../../include/enotify.php:262
-#, php-format
-msgid "You may visit their profile at %s"
-msgstr "Ð’Ñ‹ можете поÑетить ​​профиль в %s"
+#: ../../include/nav.php:153
+msgid "Mark all channel notifications seen"
+msgstr "Пометить вÑе Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð° как прочитанное"
-#: ../../include/enotify.php:246
-#, php-format
-msgid "Please visit %s to approve or reject the introduction."
-msgstr ""
+#: ../../include/nav.php:156
+msgid "Intros"
+msgstr "Контакты"
-#: ../../include/enotify.php:253
-msgid "[Red:Notify] Friend suggestion received"
-msgstr "[Red:Уведомление] Получено предложение дружить"
+#: ../../include/nav.php:156 ../../mod/connections.php:242
+msgid "New Connections"
+msgstr "Ðовые контакты"
-#: ../../include/enotify.php:254
-#, php-format
-msgid "You've received a friend suggestion from '%1$s' at %2$s"
-msgstr "Ð’Ñ‹ получили предложение дружить Ñ '%1$s' от %2$s"
+#: ../../include/nav.php:159
+msgid "Notices"
+msgstr "ОповещениÑ"
-#: ../../include/enotify.php:255
-#, php-format
-msgid ""
-"You've received [zrl=%1$s]a friend suggestion[/zrl] for %2$s from %3$s."
-msgstr ""
+#: ../../include/nav.php:159
+msgid "Notifications"
+msgstr "ОповещениÑ"
-#: ../../include/enotify.php:260
-msgid "Name:"
-msgstr "ИмÑ:"
+#: ../../include/nav.php:160
+msgid "See all notifications"
+msgstr "ПроÑмотреть вÑе оповещениÑ"
-#: ../../include/enotify.php:261
-msgid "Photo:"
-msgstr "Фото:"
+#: ../../include/nav.php:161
+msgid "Mark all system notifications seen"
+msgstr "Пометить вÑе Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ ÐºÐ°Ðº прочитанное"
-#: ../../include/enotify.php:264
-#, php-format
-msgid "Please visit %s to approve or reject the suggestion."
-msgstr ""
+#: ../../include/nav.php:163
+msgid "Mail"
+msgstr "ПерепиÑка"
-#: ../../include/comanche.php:33
-msgid "Default"
+#: ../../include/nav.php:163
+msgid "Private mail"
+msgstr "Ваша Ð»Ð¸Ñ‡Ð½Ð°Ñ Ð¿ÐµÑ€ÐµÐ¿Ð¸Ñка"
+
+#: ../../include/nav.php:164
+msgid "See all private messages"
+msgstr "ПроÑмотреть вÑе личные ÑообщениÑ"
+
+#: ../../include/nav.php:165
+msgid "Mark all private messages seen"
+msgstr "Пометить вÑе личные ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÐºÐ°Ðº прочитанное"
+
+#: ../../include/nav.php:166
+msgid "Inbox"
+msgstr "ВходÑщие"
+
+#: ../../include/nav.php:167
+msgid "Outbox"
+msgstr "ИÑходÑщие"
+
+#: ../../include/nav.php:168 ../../include/widgets.php:509
+msgid "New Message"
+msgstr "Ðовое личное Ñообщение"
+
+#: ../../include/nav.php:171 ../../include/conversation.php:1482
+#: ../../mod/events.php:354
+msgid "Events"
+msgstr "МероприÑтиÑ"
+
+#: ../../include/nav.php:171
+msgid "Event Calendar"
+msgstr "Календарь мероприÑтий"
+
+#: ../../include/nav.php:172
+msgid "See all events"
+msgstr "Показать вÑе мероприÑтиÑ"
+
+#: ../../include/nav.php:173
+msgid "Mark all events seen"
+msgstr "Пометить вÑе мероприÑÑ‚Ð¸Ñ ÐºÐ°Ðº прочитанное"
+
+#: ../../include/nav.php:175
+msgid "Channel Select"
+msgstr "Выбор канала"
+
+#: ../../include/nav.php:175
+msgid "Manage Your Channels"
+msgstr "Управление каналов"
+
+#: ../../include/nav.php:177 ../../include/widgets.php:487
+#: ../../mod/admin.php:785 ../../mod/admin.php:990
+msgid "Settings"
+msgstr "ÐаÑтройки"
+
+#: ../../include/nav.php:177
+msgid "Account/Channel Settings"
+msgstr "ÐаÑтройки аккаунта/канала"
+
+#: ../../include/nav.php:179 ../../mod/connections.php:349
+msgid "Connections"
+msgstr "Контакты"
+
+#: ../../include/nav.php:179
+msgid "Manage/Edit Friends and Connections"
+msgstr "Управление/Редактирование друзей и ÑвÑзей"
+
+#: ../../include/nav.php:186 ../../mod/admin.php:111
+msgid "Admin"
+msgstr "ÐдминиÑтрациÑ"
+
+#: ../../include/nav.php:186
+msgid "Site Setup and Configuration"
+msgstr "УÑтановка и ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ñайта"
+
+#: ../../include/nav.php:212
+msgid "Nothing new here"
+msgstr "Ðичего нового здеÑÑŒ"
+
+#: ../../include/nav.php:217
+msgid "Please wait..."
+msgstr "Подождите пожалуйÑта ..."
+
+#: ../../include/reddav.php:940
+msgid "Edit File properties"
msgstr ""
-#: ../../include/Contact.php:87 ../../include/contact_widgets.php:23
-#: ../../mod/directory.php:163 ../../mod/match.php:58 ../../mod/suggest.php:56
-#: ../../boot.php:1696
+#: ../../include/Contact.php:104 ../../include/widgets.php:115
+#: ../../include/widgets.php:155 ../../include/identity.php:625
+#: ../../mod/directory.php:182 ../../mod/match.php:62 ../../mod/suggest.php:51
+#: ../../mod/dirprofile.php:165
msgid "Connect"
msgstr "Подключить"
-#: ../../include/Contact.php:103
+#: ../../include/Contact.php:120
msgid "New window"
msgstr "Ðовое окно"
-#: ../../include/Contact.php:104
+#: ../../include/Contact.php:121
msgid "Open the selected location in a different window or browser tab"
msgstr ""
-#: ../../include/Contact.php:462 ../../include/conversation.php:920
-msgid "Poke"
-msgstr "Подпихнуть"
+#: ../../include/widgets.php:29 ../../include/contact_widgets.php:87
+msgid "Categories"
+msgstr "Категории"
-#: ../../include/Contact.php:463 ../../include/conversation.php:914
-msgid "View Status"
-msgstr "ПроÑмотр ÑоÑтоÑниÑ"
+#: ../../include/widgets.php:117 ../../mod/suggest.php:53
+msgid "Ignore/Hide"
+msgstr "Игнорировать / Скрыть"
-#: ../../include/Contact.php:464 ../../include/nav.php:75
-#: ../../include/conversation.php:915 ../../mod/connections.php:304
-#: ../../mod/connections.php:411
-msgid "View Profile"
-msgstr "ПроÑмотр профилÑ"
+#: ../../include/widgets.php:123 ../../mod/connections.php:236
+msgid "Suggestions"
+msgstr "Рекомендации"
-#: ../../include/Contact.php:465 ../../include/conversation.php:916
-msgid "View Photos"
-msgstr "ПроÑмотр фотографий"
+#: ../../include/widgets.php:124
+msgid "See more..."
+msgstr "ПроÑмотреть больше..."
-#: ../../include/Contact.php:466 ../../include/conversation.php:917
-msgid "Network Posts"
-msgstr "Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñети"
+#: ../../include/widgets.php:146
+#, php-format
+msgid "You have %1$.0f of %2$.0f allowed connections."
+msgstr ""
-#: ../../include/Contact.php:467 ../../include/conversation.php:918
-msgid "Edit Contact"
-msgstr "Редактировать контакт"
+#: ../../include/widgets.php:152
+msgid "Add New Connection"
+msgstr "Добавить новый контакт"
-#: ../../include/Contact.php:468 ../../include/conversation.php:919
-msgid "Send PM"
-msgstr "Отправить личное Ñообщение"
+#: ../../include/widgets.php:153
+msgid "Enter the channel address"
+msgstr "Введите Ð°Ð´Ñ€ÐµÑ ÐºÐ°Ð½Ð°Ð»Ð°"
+
+#: ../../include/widgets.php:154
+msgid "Example: bob@example.com, http://example.com/barbara"
+msgstr "Пример: bob@example.com, http://example.com/barbara"
+
+#: ../../include/widgets.php:171
+msgid "Notes"
+msgstr "Заметки"
+
+#: ../../include/widgets.php:173 ../../include/text.php:738
+#: ../../include/text.php:752 ../../mod/filer.php:36
+msgid "Save"
+msgstr "Запомнить"
+
+#: ../../include/widgets.php:243
+msgid "Remove term"
+msgstr "Удалить термин"
+
+#: ../../include/widgets.php:252 ../../include/features.php:50
+msgid "Saved Searches"
+msgstr "Запомненные поиÑки"
+
+#: ../../include/widgets.php:253 ../../include/group.php:290
+msgid "add"
+msgstr "добавить"
+
+#: ../../include/widgets.php:283 ../../include/features.php:64
+#: ../../include/contact_widgets.php:53
+msgid "Saved Folders"
+msgstr "Запомненные папки"
+
+#: ../../include/widgets.php:286 ../../include/contact_widgets.php:56
+#: ../../include/contact_widgets.php:90
+msgid "Everything"
+msgstr "Ð’Ñе"
+
+#: ../../include/widgets.php:318 ../../include/items.php:3566
+msgid "Archives"
+msgstr "Ðрхивы"
+
+#: ../../include/widgets.php:370
+msgid "Refresh"
+msgstr "Обновить"
+
+#: ../../include/widgets.php:371 ../../mod/connedit.php:386
+msgid "Me"
+msgstr "Я"
+
+#: ../../include/widgets.php:372 ../../mod/connedit.php:388
+msgid "Best Friends"
+msgstr "Лучшие друзьÑ"
+
+#: ../../include/widgets.php:373 ../../include/profile_selectors.php:42
+#: ../../include/identity.php:310 ../../mod/connedit.php:389
+msgid "Friends"
+msgstr "ДрузьÑ"
+
+#: ../../include/widgets.php:374
+msgid "Co-workers"
+msgstr "Сотрудники"
+
+#: ../../include/widgets.php:375 ../../mod/connedit.php:390
+msgid "Former Friends"
+msgstr "ПриÑтели"
+
+#: ../../include/widgets.php:376 ../../mod/connedit.php:391
+msgid "Acquaintances"
+msgstr "Знакомые"
+
+#: ../../include/widgets.php:377
+msgid "Everybody"
+msgstr "Ð’Ñе"
+
+#: ../../include/widgets.php:409
+msgid "Account settings"
+msgstr "ÐаÑтройки аккаунта"
+
+#: ../../include/widgets.php:415
+msgid "Channel settings"
+msgstr "ÐаÑтройки канала"
+
+#: ../../include/widgets.php:421
+msgid "Additional features"
+msgstr "Дополнительные функции"
+
+#: ../../include/widgets.php:427
+msgid "Feature settings"
+msgstr "ÐаÑтройки компонентов"
+
+#: ../../include/widgets.php:433
+msgid "Display settings"
+msgstr "ÐаÑтройки отображениÑ"
+
+#: ../../include/widgets.php:439
+msgid "Connected apps"
+msgstr "Подключенные приложениÑ"
+
+#: ../../include/widgets.php:445
+msgid "Export channel"
+msgstr "ЭкÑпорт канала"
+
+#: ../../include/widgets.php:457
+msgid "Automatic Permissions (Advanced)"
+msgstr "ÐвтоматичеÑкие Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ (дополнительно)"
+
+#: ../../include/widgets.php:467
+msgid "Premium Channel Settings"
+msgstr ""
+
+#: ../../include/widgets.php:476 ../../include/features.php:41
+#: ../../mod/sources.php:81
+msgid "Channel Sources"
+msgstr ""
+
+#: ../../include/widgets.php:504
+msgid "Check Mail"
+msgstr "Проверить Ñнова"
#: ../../include/contact_selectors.php:30
msgid "Unknown | Not categorised"
@@ -351,8 +520,8 @@ msgstr "OStatus"
msgid "RSS/Atom"
msgstr "RSS/Atom"
-#: ../../include/contact_selectors.php:77 ../../mod/admin.php:636
-#: ../../mod/admin.php:645 ../../boot.php:1431
+#: ../../include/contact_selectors.php:77 ../../mod/admin.php:689
+#: ../../mod/admin.php:698 ../../boot.php:1418
msgid "Email"
msgstr "E-mail"
@@ -470,206 +639,340 @@ msgstr "Ðачало:"
msgid "Finishes:"
msgstr "\t\nКонец:"
-#: ../../include/event.php:40 ../../include/bb2diaspora.php:455
-#: ../../mod/events.php:450 ../../mod/directory.php:138 ../../boot.php:1746
+#: ../../include/event.php:40 ../../include/identity.php:676
+#: ../../include/bb2diaspora.php:455 ../../mod/events.php:463
+#: ../../mod/directory.php:156 ../../mod/dirprofile.php:108
msgid "Location:"
msgstr "Откуда:"
-#: ../../include/features.php:21
-msgid "General Features"
-msgstr "Главные функции"
+#: ../../include/text.php:315
+msgid "prev"
+msgstr "предыдущий"
-#: ../../include/features.php:24
-msgid "Multiple Profiles"
-msgstr "ÐеÑколько профилей"
+#: ../../include/text.php:317
+msgid "first"
+msgstr "первый"
-#: ../../include/features.php:24
-msgid "Ability to create multiple profiles"
-msgstr "ВозможноÑÑ‚ÑŒ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½ÐµÑкольких профилей"
+#: ../../include/text.php:346
+msgid "last"
+msgstr "поÑледний"
-#: ../../include/features.php:25
-msgid "Web Pages"
-msgstr "Веб-Ñтраницы"
+#: ../../include/text.php:349
+msgid "next"
+msgstr "Ñледующий"
-#: ../../include/features.php:25
-msgid "Provide managed web pages on your channel"
-msgstr ""
+#: ../../include/text.php:361
+msgid "older"
+msgstr "Ñтарший"
-#: ../../include/features.php:26
-msgid "Enhanced Photo Albums"
-msgstr "РаÑширенные фотоальбомы"
+#: ../../include/text.php:363
+msgid "newer"
+msgstr "новее"
-#: ../../include/features.php:26
-msgid "Enable photo album with enhanced features"
-msgstr "Включить фотоальбом Ñ Ñ€Ð°Ñширенными функциÑми"
+#: ../../include/text.php:654
+msgid "No connections"
+msgstr "Ðет каналов"
-#: ../../include/features.php:28
-msgid "Extended Identity Sharing"
-msgstr "РаÑширенный обмен идентичноÑти"
+#: ../../include/text.php:665
+#, php-format
+msgid "%d Connection"
+msgid_plural "%d Connections"
+msgstr[0] "%d канал"
+msgstr[1] "%d канала"
+msgstr[2] "%d каналов"
-#: ../../include/features.php:28 ../../include/js_strings.php:28
-msgid " "
-msgstr " "
+#: ../../include/text.php:677
+msgid "View Connections"
+msgstr "ПроÑмотр контактов"
-#: ../../include/features.php:29
-msgid "Expert Mode"
-msgstr "ЭкÑпертный режим"
+#: ../../include/text.php:818
+msgid "poke"
+msgstr "подпихнуть"
-#: ../../include/features.php:29
-msgid "Enable Expert Mode to provide advanced configuration options"
+#: ../../include/text.php:818 ../../include/conversation.php:240
+msgid "poked"
+msgstr "подпихнул"
+
+#: ../../include/text.php:819
+msgid "ping"
msgstr ""
-#: ../../include/features.php:30
-msgid "Premium Channel"
+#: ../../include/text.php:819
+msgid "pinged"
msgstr ""
-#: ../../include/features.php:30
-msgid ""
-"Allows you to set restrictions and terms on those that connect with your "
-"channel"
+#: ../../include/text.php:820
+msgid "prod"
msgstr ""
-#: ../../include/features.php:35
-msgid "Post Composition Features"
+#: ../../include/text.php:820
+msgid "prodded"
msgstr ""
-#: ../../include/features.php:36
-msgid "Richtext Editor"
-msgstr "Редактор RichText"
+#: ../../include/text.php:821
+msgid "slap"
+msgstr ""
-#: ../../include/features.php:36
-msgid "Enable richtext editor"
-msgstr "Включить редактор RichText"
+#: ../../include/text.php:821
+msgid "slapped"
+msgstr ""
-#: ../../include/features.php:37
-msgid "Post Preview"
-msgstr "Предварительный проÑмотр ÑообщениÑ"
+#: ../../include/text.php:822
+msgid "finger"
+msgstr ""
-#: ../../include/features.php:37
-msgid "Allow previewing posts and comments before publishing them"
-msgstr "Разрешить предварительный проÑмотр Ñообщений и комментариев перед их публикацией"
+#: ../../include/text.php:822
+msgid "fingered"
+msgstr ""
-#: ../../include/features.php:42
-msgid "Network and Stream Filtering"
-msgstr "Ð¤Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ñети и потока"
+#: ../../include/text.php:823
+msgid "rebuff"
+msgstr ""
-#: ../../include/features.php:43
-msgid "Search by Date"
-msgstr "ПоиÑк по дате"
+#: ../../include/text.php:823
+msgid "rebuffed"
+msgstr ""
-#: ../../include/features.php:43
-msgid "Ability to select posts by date ranges"
-msgstr "ВозможноÑÑ‚ÑŒ выбора Ñообщений по датам"
+#: ../../include/text.php:835
+msgid "happy"
+msgstr "ÑчаÑтливый"
-#: ../../include/features.php:44
-msgid "Collections Filter"
-msgstr "Фильтр коллекций"
+#: ../../include/text.php:836
+msgid "sad"
+msgstr ""
-#: ../../include/features.php:44
-msgid "Enable widget to display Network posts only from selected collections"
+#: ../../include/text.php:837
+msgid "mellow"
msgstr ""
-#: ../../include/features.php:45 ../../mod/network.php:150
-#: ../../mod/search.php:17
-msgid "Saved Searches"
-msgstr "Запомненные поиÑки"
+#: ../../include/text.php:838
+msgid "tired"
+msgstr ""
-#: ../../include/features.php:45
-msgid "Save search terms for re-use"
-msgstr "СохранÑÑ‚ÑŒ результаты поиÑка Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð³Ð¾ иÑпользованиÑ"
+#: ../../include/text.php:839
+msgid "perky"
+msgstr ""
-#: ../../include/features.php:46
-msgid "Network Personal Tab"
+#: ../../include/text.php:840
+msgid "angry"
+msgstr "Ñердитый"
+
+#: ../../include/text.php:841
+msgid "stupified"
msgstr ""
-#: ../../include/features.php:46
-msgid "Enable tab to display only Network posts that you've interacted on"
+#: ../../include/text.php:842
+msgid "puzzled"
msgstr ""
-#: ../../include/features.php:47
-msgid "Network New Tab"
+#: ../../include/text.php:843
+msgid "interested"
msgstr ""
-#: ../../include/features.php:47
-msgid "Enable tab to display all new Network activity"
+#: ../../include/text.php:844
+msgid "bitter"
+msgstr "озлобленный"
+
+#: ../../include/text.php:845
+msgid "cheerful"
msgstr ""
-#: ../../include/features.php:48
-msgid "Affinity Tool"
+#: ../../include/text.php:846
+msgid "alive"
msgstr ""
-#: ../../include/features.php:48
-msgid "Filter stream activity by depth of relationships"
+#: ../../include/text.php:847
+msgid "annoyed"
msgstr ""
-#: ../../include/features.php:53
-msgid "Post/Comment Tools"
-msgstr "ИнÑтрументы Ñообщений/комментарий "
+#: ../../include/text.php:848
+msgid "anxious"
+msgstr ""
-#: ../../include/features.php:54
-msgid "Multiple Deletion"
-msgstr "МножеÑтвенное удаление"
+#: ../../include/text.php:849
+msgid "cranky"
+msgstr "капризный"
-#: ../../include/features.php:54
-msgid "Select and delete multiple posts/comments at once"
-msgstr "Выбор и удаление неÑкольких Ñообщений/комментариев Ñразу"
+#: ../../include/text.php:850
+msgid "disturbed"
+msgstr "вÑтревоженный"
-#: ../../include/features.php:55
-msgid "Edit Sent Posts"
-msgstr "Редактировать отправленные ÑообщениÑ"
+#: ../../include/text.php:851
+msgid "frustrated"
+msgstr "разочарованный"
-#: ../../include/features.php:55
-msgid "Edit and correct posts and comments after sending"
-msgstr "Редактировать и иÑправлÑÑ‚ÑŒ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸ комментарии поÑле отправки"
+#: ../../include/text.php:852
+msgid "motivated"
+msgstr "мотивированный"
-#: ../../include/features.php:56
-msgid "Tagging"
-msgstr "Пометка"
+#: ../../include/text.php:853
+msgid "relaxed"
+msgstr "раÑÑлабленный"
-#: ../../include/features.php:56
-msgid "Ability to tag existing posts"
+#: ../../include/text.php:854
+msgid "surprised"
+msgstr "удивленный"
+
+#: ../../include/text.php:1016
+msgid "Monday"
+msgstr "Понедельник"
+
+#: ../../include/text.php:1016
+msgid "Tuesday"
+msgstr "Вторник"
+
+#: ../../include/text.php:1016
+msgid "Wednesday"
+msgstr "Среда"
+
+#: ../../include/text.php:1016
+msgid "Thursday"
+msgstr "Четверг"
+
+#: ../../include/text.php:1016
+msgid "Friday"
+msgstr "ПÑтница"
+
+#: ../../include/text.php:1016
+msgid "Saturday"
+msgstr "Суббота"
+
+#: ../../include/text.php:1016
+msgid "Sunday"
+msgstr "ВоÑкреÑенье"
+
+#: ../../include/text.php:1020
+msgid "January"
+msgstr "Январь"
+
+#: ../../include/text.php:1020
+msgid "February"
+msgstr "Февраль"
+
+#: ../../include/text.php:1020
+msgid "March"
+msgstr "Март"
+
+#: ../../include/text.php:1020
+msgid "April"
+msgstr "Ðпрель"
+
+#: ../../include/text.php:1020
+msgid "May"
+msgstr "Май"
+
+#: ../../include/text.php:1020
+msgid "June"
+msgstr "Июнь"
+
+#: ../../include/text.php:1020
+msgid "July"
+msgstr "Июль"
+
+#: ../../include/text.php:1020
+msgid "August"
+msgstr "ÐвгуÑÑ‚"
+
+#: ../../include/text.php:1020
+msgid "September"
+msgstr "СентÑбрь"
+
+#: ../../include/text.php:1020
+msgid "October"
+msgstr "ОктÑбрь"
+
+#: ../../include/text.php:1020
+msgid "November"
+msgstr "ÐоÑбрь"
+
+#: ../../include/text.php:1020
+msgid "December"
+msgstr "Декабрь"
+
+#: ../../include/text.php:1098
+msgid "unknown.???"
+msgstr "неизвеÑтный.???"
+
+#: ../../include/text.php:1099
+msgid "bytes"
+msgstr "байт"
+
+#: ../../include/text.php:1134
+msgid "remove category"
msgstr ""
-#: ../../include/features.php:57
-msgid "Post Categories"
-msgstr "Категории ÑообщениÑ"
+#: ../../include/text.php:1156
+msgid "remove from file"
+msgstr ""
-#: ../../include/features.php:57
-msgid "Add categories to your posts"
-msgstr "Добавить категории Ð´Ð»Ñ Ð²Ð°ÑˆÐ¸Ñ… Ñообщений"
+#: ../../include/text.php:1214 ../../include/text.php:1226
+msgid "Click to open/close"
+msgstr "Ðажмите, чтобы открыть/закрыть"
-#: ../../include/features.php:58 ../../include/contact_widgets.php:76
-msgid "Saved Folders"
-msgstr "Запомненные папки"
+#: ../../include/text.php:1402 ../../mod/events.php:332
+msgid "link to source"
+msgstr "ÑÑылка на иÑточник"
-#: ../../include/features.php:58
-msgid "Ability to file posts under folders"
+#: ../../include/text.php:1421
+msgid "Select a page layout: "
msgstr ""
-#: ../../include/features.php:59
-msgid "Dislike Posts"
-msgstr "Сообщение не нравитÑÑ"
+#: ../../include/text.php:1424 ../../include/text.php:1489
+msgid "default"
+msgstr "по умолчанию"
-#: ../../include/features.php:59
-msgid "Ability to dislike posts/comments"
+#: ../../include/text.php:1460
+msgid "Page content type: "
msgstr ""
-#: ../../include/features.php:60
-msgid "Star Posts"
-msgstr "Помечать ÑообщениÑ"
+#: ../../include/text.php:1501
+msgid "Select an alternate language"
+msgstr "Выбор альтернативного Ñзыка"
-#: ../../include/features.php:60
-msgid "Ability to mark special posts with a star indicator"
+#: ../../include/text.php:1653 ../../include/conversation.php:117
+#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:45
+msgid "photo"
+msgstr "фото"
+
+#: ../../include/text.php:1656 ../../include/conversation.php:120
+#: ../../mod/tagger.php:49
+msgid "event"
+msgstr "мероприÑтие"
+
+#: ../../include/text.php:1659 ../../include/conversation.php:145
+#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:53
+msgid "status"
+msgstr "ÑтатуÑ"
+
+#: ../../include/text.php:1661 ../../include/conversation.php:147
+#: ../../mod/tagger.php:55
+msgid "comment"
+msgstr "комментарий"
+
+#: ../../include/text.php:1666
+msgid "activity"
+msgstr "активноÑÑ‚ÑŒ"
+
+#: ../../include/text.php:1928
+msgid "Design"
+msgstr "Дизайн"
+
+#: ../../include/text.php:1930
+msgid "Blocks"
msgstr ""
-#: ../../include/features.php:61
-msgid "Tag Cloud"
-msgstr "Облако тегов"
+#: ../../include/text.php:1931
+msgid "Menus"
+msgstr ""
-#: ../../include/features.php:61
-msgid "Provide a personal tag cloud on your channel page"
+#: ../../include/text.php:1932
+msgid "Layouts"
msgstr ""
+#: ../../include/text.php:1933
+msgid "Pages"
+msgstr "Страницы"
+
#: ../../include/group.php:25
msgid ""
"A deleted group with this name was revived. Existing item permissions "
@@ -681,11 +984,11 @@ msgstr ""
msgid "Default privacy group for new contacts"
msgstr ""
-#: ../../include/group.php:242
+#: ../../include/group.php:242 ../../mod/admin.php:698
msgid "All Channels"
msgstr "Ð’Ñе каналы"
-#: ../../include/group.php:264 ../../include/page_widgets.php:8
+#: ../../include/group.php:264
msgid "edit"
msgstr "редактировать"
@@ -705,21 +1008,17 @@ msgstr "Создать новую коллекцию"
msgid "Channels not in any collection"
msgstr "Контакты не в какой коллекции"
-#: ../../include/group.php:290 ../../mod/network.php:151
-msgid "add"
-msgstr "добавить"
-
#: ../../include/js_strings.php:5
msgid "Delete this item?"
msgstr "Удалить Ñтот Ñлемент?"
-#: ../../include/js_strings.php:6 ../../include/ItemObject.php:504
-#: ../../mod/photos.php:1075 ../../mod/photos.php:1159
+#: ../../include/js_strings.php:6 ../../include/ItemObject.php:536
+#: ../../mod/photos.php:1099 ../../mod/photos.php:1186
msgid "Comment"
msgstr "Комментарий"
-#: ../../include/js_strings.php:7 ../../include/contact_widgets.php:148
-#: ../../include/ItemObject.php:255
+#: ../../include/js_strings.php:7 ../../include/contact_widgets.php:125
+#: ../../include/ItemObject.php:270
msgid "show more"
msgstr "показать вÑе"
@@ -735,76 +1034,88 @@ msgstr "Пароль Ñлишком короткий"
msgid "Passwords do not match"
msgstr "Пароли не Ñовпадают"
-#: ../../include/js_strings.php:11 ../../mod/photos.php:45
+#: ../../include/js_strings.php:11 ../../mod/photos.php:39
msgid "everybody"
msgstr "вÑе"
+#: ../../include/js_strings.php:12
+msgid "Secret Passphrase"
+msgstr ""
+
#: ../../include/js_strings.php:13
+msgid "Passphrase hint"
+msgstr ""
+
+#: ../../include/js_strings.php:15
msgid "timeago.prefixAgo"
msgstr "timeago.prefixAgo"
-#: ../../include/js_strings.php:14
+#: ../../include/js_strings.php:16
msgid "timeago.suffixAgo"
msgstr "timeago.suffixAgo"
-#: ../../include/js_strings.php:15
+#: ../../include/js_strings.php:17
msgid "ago"
msgstr "тому назад"
-#: ../../include/js_strings.php:16
+#: ../../include/js_strings.php:18
msgid "from now"
msgstr "Ñ Ñтого времени"
-#: ../../include/js_strings.php:17
+#: ../../include/js_strings.php:19
msgid "less than a minute"
msgstr "менее чем одну минуту назад"
-#: ../../include/js_strings.php:18
+#: ../../include/js_strings.php:20
msgid "about a minute"
msgstr "около минуты"
-#: ../../include/js_strings.php:19
+#: ../../include/js_strings.php:21
#, php-format
msgid "%d minutes"
msgstr "%d мин."
-#: ../../include/js_strings.php:20
+#: ../../include/js_strings.php:22
msgid "about an hour"
msgstr "около чаÑа"
-#: ../../include/js_strings.php:21
+#: ../../include/js_strings.php:23
#, php-format
msgid "about %d hours"
msgstr "около %d чаÑ."
-#: ../../include/js_strings.php:22
+#: ../../include/js_strings.php:24
msgid "a day"
msgstr "день"
-#: ../../include/js_strings.php:23
+#: ../../include/js_strings.php:25
#, php-format
msgid "%d days"
msgstr "%d дней"
-#: ../../include/js_strings.php:24
+#: ../../include/js_strings.php:26
msgid "about a month"
msgstr "около меÑÑца"
-#: ../../include/js_strings.php:25
+#: ../../include/js_strings.php:27
#, php-format
msgid "%d months"
msgstr "%d меÑ."
-#: ../../include/js_strings.php:26
+#: ../../include/js_strings.php:28
msgid "about a year"
msgstr "около года"
-#: ../../include/js_strings.php:27
+#: ../../include/js_strings.php:29
#, php-format
msgid "%d years"
msgstr "%d лет"
-#: ../../include/js_strings.php:29
+#: ../../include/js_strings.php:30
+msgid " "
+msgstr " "
+
+#: ../../include/js_strings.php:31
msgid "timeago.numbers"
msgstr "timeago.numbers"
@@ -816,407 +1127,702 @@ msgstr ""
msgid "[no subject]"
msgstr "[без темы]"
-#: ../../include/message.php:38
+#: ../../include/message.php:42
msgid "Unable to determine sender."
msgstr "Ðевозможно определить отправителÑ."
-#: ../../include/message.php:138
+#: ../../include/message.php:143
msgid "Stored post could not be verified."
msgstr ""
-#: ../../include/network.php:1113
+#: ../../include/photo/photo_driver.php:637 ../../include/photos.php:51
+#: ../../mod/photos.php:91 ../../mod/photos.php:783 ../../mod/photos.php:805
+#: ../../mod/profile_photo.php:78 ../../mod/profile_photo.php:225
+#: ../../mod/profile_photo.php:336
+msgid "Profile Photos"
+msgstr "Фотографии профилÑ"
+
+#: ../../include/network.php:640
msgid "view full size"
msgstr "поÑмотреть в полный размер"
-#: ../../include/photo/photo_driver.php:609 ../../include/photos.php:51
-#: ../../mod/photos.php:97 ../../mod/photos.php:757 ../../mod/photos.php:779
-#: ../../mod/profile_photo.php:88 ../../mod/profile_photo.php:235
-#: ../../mod/profile_photo.php:346
-msgid "Profile Photos"
-msgstr "Фотографии профилÑ"
+#: ../../include/bbcode.php:94 ../../include/bbcode.php:509
+#: ../../include/bbcode.php:512
+msgid "Image/photo"
+msgstr "Изображение / фото"
-#: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:118
-#: ../../mod/profperm.php:112
-msgid "Profile"
-msgstr "Профиль"
+#: ../../include/bbcode.php:129 ../../include/bbcode.php:517
+msgid "Encrypted content"
+msgstr "Зашифрованное Ñодержание"
-#: ../../include/profile_advanced.php:15 ../../mod/settings.php:1031
-msgid "Full Name:"
-msgstr "Полное имÑ:"
+#: ../../include/bbcode.php:136
+msgid "QR code"
+msgstr "QR код"
-#: ../../include/profile_advanced.php:17 ../../mod/directory.php:140
-#: ../../boot.php:1748
-msgid "Gender:"
-msgstr "Пол:"
+#: ../../include/bbcode.php:179
+#, php-format
+msgid "%1$s wrote the following %2$s %3$s"
+msgstr "%1$s напиÑал Ñледующее %2$s %3$s"
-#: ../../include/profile_advanced.php:22
-msgid "j F, Y"
-msgstr "j F, Y"
+#: ../../include/bbcode.php:181
+msgid "post"
+msgstr "Ñообщение"
-#: ../../include/profile_advanced.php:23
-msgid "j F"
-msgstr "j F"
+#: ../../include/bbcode.php:469 ../../include/bbcode.php:489
+msgid "$1 wrote:"
+msgstr "$1 пиÑал:"
-#: ../../include/profile_advanced.php:30
-msgid "Birthday:"
-msgstr "День РождениÑ:"
+#: ../../include/oembed.php:150
+msgid "Embedded content"
+msgstr ""
-#: ../../include/profile_advanced.php:34
-msgid "Age:"
-msgstr "ВозраÑÑ‚:"
+#: ../../include/oembed.php:159
+msgid "Embedding disabled"
+msgstr ""
-#: ../../include/profile_advanced.php:37 ../../mod/directory.php:142
-#: ../../boot.php:1749
-msgid "Status:"
-msgstr "СтатуÑ:"
+#: ../../include/features.php:21
+msgid "General Features"
+msgstr "Главные функции"
-#: ../../include/profile_advanced.php:43
-#, php-format
-msgid "for %1$d %2$s"
-msgstr "Ð´Ð»Ñ %1$d %2$s"
+#: ../../include/features.php:23
+msgid "Content Expiration"
+msgstr ""
-#: ../../include/profile_advanced.php:46 ../../mod/profiles.php:549
-msgid "Sexual Preference:"
-msgstr "СекÑÑƒÐ°Ð»ÑŒÐ½Ð°Ñ Ð¾Ñ€Ð¸ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ:"
+#: ../../include/features.php:23
+msgid "Remove posts/comments and/or private messages at a future time"
+msgstr ""
-#: ../../include/profile_advanced.php:48 ../../mod/directory.php:144
-#: ../../boot.php:1750
-msgid "Homepage:"
-msgstr "ДомашнÑÑ Ñтраница:"
+#: ../../include/features.php:24
+msgid "Multiple Profiles"
+msgstr "ÐеÑколько профилей"
-#: ../../include/profile_advanced.php:50 ../../mod/profiles.php:551
-msgid "Hometown:"
-msgstr "Родной город:"
+#: ../../include/features.php:24
+msgid "Ability to create multiple profiles"
+msgstr "ВозможноÑÑ‚ÑŒ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½ÐµÑкольких профилей"
-#: ../../include/profile_advanced.php:52
-msgid "Tags:"
-msgstr "ТÑги:"
+#: ../../include/features.php:25
+msgid "Web Pages"
+msgstr "Веб-Ñтраницы"
-#: ../../include/profile_advanced.php:54 ../../mod/profiles.php:552
-msgid "Political Views:"
-msgstr "ПолитичеÑкие взглÑды:"
+#: ../../include/features.php:25
+msgid "Provide managed web pages on your channel"
+msgstr ""
-#: ../../include/profile_advanced.php:56
-msgid "Religion:"
-msgstr "РелигиÑ:"
+#: ../../include/features.php:26
+msgid "Private Notes"
+msgstr "Личные заметки"
-#: ../../include/profile_advanced.php:58 ../../mod/directory.php:146
-msgid "About:"
-msgstr "О Ñебе:"
+#: ../../include/features.php:26
+msgid "Enables a tool to store notes and reminders"
+msgstr ""
-#: ../../include/profile_advanced.php:60
-msgid "Hobbies/Interests:"
-msgstr "Хобби / интереÑÑ‹:"
+#: ../../include/features.php:31
+msgid "Extended Identity Sharing"
+msgstr "РаÑширенный обмен идентичноÑти"
-#: ../../include/profile_advanced.php:62 ../../mod/profiles.php:555
-msgid "Likes:"
-msgstr "Что вам нравитÑÑ:"
+#: ../../include/features.php:31
+msgid ""
+"Share your identity with all websites on the internet. When disabled, "
+"identity is only shared with sites in the matrix."
+msgstr ""
-#: ../../include/profile_advanced.php:64 ../../mod/profiles.php:556
-msgid "Dislikes:"
-msgstr "Что вам не нравитÑÑ:"
+#: ../../include/features.php:32
+msgid "Expert Mode"
+msgstr "ЭкÑпертный режим"
-#: ../../include/profile_advanced.php:67
-msgid "Contact information and Social Networks:"
-msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¸ Ñоциальные Ñети контакта:"
+#: ../../include/features.php:32
+msgid "Enable Expert Mode to provide advanced configuration options"
+msgstr ""
-#: ../../include/profile_advanced.php:69
-msgid "Musical interests:"
-msgstr "Музыкальные интереÑÑ‹:"
+#: ../../include/features.php:33
+msgid "Premium Channel"
+msgstr ""
-#: ../../include/profile_advanced.php:71
-msgid "Books, literature:"
-msgstr "Книги, литература:"
+#: ../../include/features.php:33
+msgid ""
+"Allows you to set restrictions and terms on those that connect with your "
+"channel"
+msgstr ""
-#: ../../include/profile_advanced.php:73
-msgid "Television:"
-msgstr "Телевидение:"
+#: ../../include/features.php:38
+msgid "Post Composition Features"
+msgstr ""
-#: ../../include/profile_advanced.php:75
-msgid "Film/dance/culture/entertainment:"
-msgstr "Кино / танцы / культура / развлечениÑ:"
+#: ../../include/features.php:39
+msgid "Richtext Editor"
+msgstr "Редактор RichText"
-#: ../../include/profile_advanced.php:77
-msgid "Love/Romance:"
-msgstr "Любовь / РоманÑ:"
+#: ../../include/features.php:39
+msgid "Enable richtext editor"
+msgstr "Включить редактор RichText"
-#: ../../include/profile_advanced.php:79
-msgid "Work/employment:"
-msgstr "Работа / ЗанÑтоÑÑ‚ÑŒ:"
+#: ../../include/features.php:40
+msgid "Post Preview"
+msgstr "Предварительный проÑмотр ÑообщениÑ"
-#: ../../include/profile_advanced.php:81
-msgid "School/education:"
-msgstr "Школа / образование:"
+#: ../../include/features.php:40
+msgid "Allow previewing posts and comments before publishing them"
+msgstr "Разрешить предварительный проÑмотр Ñообщений и комментариев перед их публикацией"
-#: ../../include/nav.php:71 ../../include/nav.php:86 ../../boot.php:1428
-msgid "Logout"
-msgstr "Выход"
+#: ../../include/features.php:41
+msgid "Automatically import channel content from other channels or feeds"
+msgstr ""
-#: ../../include/nav.php:71 ../../include/nav.php:86
-msgid "End this session"
-msgstr "Закончить Ñту ÑеÑÑию"
+#: ../../include/features.php:42
+msgid "Even More Encryption"
+msgstr ""
-#: ../../include/nav.php:74 ../../include/nav.php:116
-#: ../../include/nav.php:148
-msgid "Home"
-msgstr "Мой канал"
+#: ../../include/features.php:42
+msgid ""
+"Allow optional encryption of content end-to-end with a shared secret key"
+msgstr ""
-#: ../../include/nav.php:74 ../../include/nav.php:148
-msgid "Your posts and conversations"
-msgstr "Ваши ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸ разговоры"
+#: ../../include/features.php:47
+msgid "Network and Stream Filtering"
+msgstr "Ð¤Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ñети и потока"
-#: ../../include/nav.php:75
-msgid "Your profile page"
-msgstr "Страницa вашего профилÑ"
+#: ../../include/features.php:48
+msgid "Search by Date"
+msgstr "ПоиÑк по дате"
-#: ../../include/nav.php:77
-msgid "Edit Profiles"
-msgstr "Редактирование профилей"
+#: ../../include/features.php:48
+msgid "Ability to select posts by date ranges"
+msgstr "ВозможноÑÑ‚ÑŒ выбора Ñообщений по датам"
-#: ../../include/nav.php:77
-msgid "Manage/Edit Profiles"
-msgstr "Управление / Редактирование профилей"
+#: ../../include/features.php:49
+msgid "Collections Filter"
+msgstr "Фильтр коллекций"
-#: ../../include/nav.php:78 ../../mod/fbrowser.php:25 ../../boot.php:2189
-msgid "Photos"
-msgstr "Фотографии"
+#: ../../include/features.php:49
+msgid "Enable widget to display Network posts only from selected collections"
+msgstr ""
-#: ../../include/nav.php:78
-msgid "Your photos"
-msgstr "Ваши фотографии"
+#: ../../include/features.php:50
+msgid "Save search terms for re-use"
+msgstr "СохранÑÑ‚ÑŒ результаты поиÑка Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð³Ð¾ иÑпользованиÑ"
-#: ../../include/nav.php:84 ../../boot.php:1429
-msgid "Login"
-msgstr "Войти"
+#: ../../include/features.php:51
+msgid "Network Personal Tab"
+msgstr ""
-#: ../../include/nav.php:84
-msgid "Sign in"
-msgstr "Войти"
+#: ../../include/features.php:51
+msgid "Enable tab to display only Network posts that you've interacted on"
+msgstr ""
+
+#: ../../include/features.php:52
+msgid "Network New Tab"
+msgstr ""
+
+#: ../../include/features.php:52
+msgid "Enable tab to display all new Network activity"
+msgstr ""
+
+#: ../../include/features.php:53
+msgid "Affinity Tool"
+msgstr ""
+
+#: ../../include/features.php:53
+msgid "Filter stream activity by depth of relationships"
+msgstr ""
+
+#: ../../include/features.php:54
+msgid "Suggest Channels"
+msgstr ""
+
+#: ../../include/features.php:54
+msgid "Show channel suggestions"
+msgstr ""
+
+#: ../../include/features.php:59
+msgid "Post/Comment Tools"
+msgstr "ИнÑтрументы Ñообщений/комментарий "
+
+#: ../../include/features.php:61
+msgid "Edit Sent Posts"
+msgstr "Редактировать отправленные ÑообщениÑ"
+
+#: ../../include/features.php:61
+msgid "Edit and correct posts and comments after sending"
+msgstr "Редактировать и иÑправлÑÑ‚ÑŒ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸ комментарии поÑле отправки"
+
+#: ../../include/features.php:62
+msgid "Tagging"
+msgstr "Пометка"
+
+#: ../../include/features.php:62
+msgid "Ability to tag existing posts"
+msgstr ""
+
+#: ../../include/features.php:63
+msgid "Post Categories"
+msgstr "Категории ÑообщениÑ"
+
+#: ../../include/features.php:63
+msgid "Add categories to your posts"
+msgstr "Добавить категории Ð´Ð»Ñ Ð²Ð°ÑˆÐ¸Ñ… Ñообщений"
+
+#: ../../include/features.php:64
+msgid "Ability to file posts under folders"
+msgstr ""
+
+#: ../../include/features.php:65
+msgid "Dislike Posts"
+msgstr "Сообщение не нравитÑÑ"
+
+#: ../../include/features.php:65
+msgid "Ability to dislike posts/comments"
+msgstr ""
+
+#: ../../include/features.php:66
+msgid "Star Posts"
+msgstr "Помечать ÑообщениÑ"
+
+#: ../../include/features.php:66
+msgid "Ability to mark special posts with a star indicator"
+msgstr ""
+
+#: ../../include/features.php:67
+msgid "Tag Cloud"
+msgstr "Облако тегов"
-#: ../../include/nav.php:100
+#: ../../include/features.php:67
+msgid "Provide a personal tag cloud on your channel page"
+msgstr ""
+
+#: ../../include/conversation.php:123
+msgid "channel"
+msgstr "канал"
+
+#: ../../include/conversation.php:161 ../../mod/like.php:134
#, php-format
-msgid "%s - click to logout"
-msgstr "%s - нажмите чтобы выйти"
+msgid "%1$s likes %2$s's %3$s"
+msgstr "%1$s нравитÑÑ %2$s's %3$s"
-#: ../../include/nav.php:103
-msgid "Click to authenticate to your home hub"
+#: ../../include/conversation.php:164 ../../mod/like.php:136
+#, php-format
+msgid "%1$s doesn't like %2$s's %3$s"
+msgstr "%1$s не нравитÑÑ %2$s's %3$s"
+
+#: ../../include/conversation.php:201
+#, php-format
+msgid "%1$s is now connected with %2$s"
+msgstr "%1$s теперь Ñоединен Ñ %2$s"
+
+#: ../../include/conversation.php:236
+#, php-format
+msgid "%1$s poked %2$s"
+msgstr "%1$s подпихнул %2$s"
+
+#: ../../include/conversation.php:258 ../../mod/mood.php:63
+#, php-format
+msgid "%1$s is currently %2$s"
+msgstr "%1$s в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ %2$s"
+
+#: ../../include/conversation.php:631 ../../include/ItemObject.php:114
+msgid "Select"
+msgstr "Выбрать"
+
+#: ../../include/conversation.php:632 ../../include/ItemObject.php:108
+#: ../../mod/thing.php:230 ../../mod/connedit.php:356 ../../mod/admin.php:693
+#: ../../mod/group.php:176 ../../mod/photos.php:1150
+#: ../../mod/filestorage.php:172 ../../mod/settings.php:570
+msgid "Delete"
+msgstr "Удалить"
+
+#: ../../include/conversation.php:642 ../../include/ItemObject.php:161
+msgid "Message is verified"
msgstr ""
-#: ../../include/nav.php:116
-msgid "Home Page"
-msgstr "ÐœÐ¾Ñ Ñтраница"
+#: ../../include/conversation.php:662
+#, php-format
+msgid "View %s's profile @ %s"
+msgstr "ПроÑмотр %s's Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ @ %s"
-#: ../../include/nav.php:120 ../../mod/register.php:187 ../../boot.php:1404
-msgid "Register"
-msgstr "РегиÑтрациÑ"
+#: ../../include/conversation.php:676
+msgid "Categories:"
+msgstr "Категории:"
-#: ../../include/nav.php:120
-msgid "Create an account"
-msgstr "Создать аккаунт"
+#: ../../include/conversation.php:677
+msgid "Filed under:"
+msgstr "Хранить под:"
-#: ../../include/nav.php:125 ../../mod/help.php:34
-msgid "Help"
-msgstr "Помощь"
+#: ../../include/conversation.php:686 ../../include/ItemObject.php:217
+#, php-format
+msgid " from %s"
+msgstr " от %s"
-#: ../../include/nav.php:125
-msgid "Help and documentation"
-msgstr "Ð¡Ð¿Ñ€Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¸ документациÑ"
+#: ../../include/conversation.php:689 ../../include/ItemObject.php:220
+#, php-format
+msgid "last edited: %s"
+msgstr ""
-#: ../../include/nav.php:128
-msgid "Apps"
-msgstr "ПриложениÑ"
+#: ../../include/conversation.php:704
+msgid "View in context"
+msgstr "Показать в контекÑте"
-#: ../../include/nav.php:128
-msgid "Addon applications, utilities, games"
+#: ../../include/conversation.php:706 ../../include/conversation.php:1119
+#: ../../include/ItemObject.php:248 ../../mod/photos.php:1081
+#: ../../mod/mail.php:222 ../../mod/mail.php:336 ../../mod/editlayout.php:110
+#: ../../mod/editpost.php:107 ../../mod/editwebpage.php:153
+#: ../../mod/editblock.php:124
+msgid "Please wait"
+msgstr "Подождите пожалуйÑта"
+
+#: ../../include/conversation.php:833
+msgid "remove"
+msgstr "удалить"
+
+#: ../../include/conversation.php:837
+msgid "Loading..."
+msgstr "Загрузка..."
+
+#: ../../include/conversation.php:838
+msgid "Delete Selected Items"
+msgstr "Удалить выбранные Ñлементы"
+
+#: ../../include/conversation.php:929
+msgid "View Source"
msgstr ""
-#: ../../include/nav.php:130 ../../include/text.php:729
-#: ../../include/text.php:730 ../../mod/search.php:96
-msgid "Search"
-msgstr "ПоиÑк"
+#: ../../include/conversation.php:930
+msgid "Follow Thread"
+msgstr "Следобать теме"
-#: ../../include/nav.php:130
-msgid "Search site content"
-msgstr "ПоиÑк по Ñодержанию Ñайту"
+#: ../../include/conversation.php:931
+msgid "View Status"
+msgstr "ПроÑмотр ÑоÑтоÑниÑ"
-#: ../../include/nav.php:133 ../../mod/directory.php:186
-msgid "Directory"
-msgstr "Каталог"
+#: ../../include/conversation.php:933
+msgid "View Photos"
+msgstr "ПроÑмотр фотографий"
-#: ../../include/nav.php:133
-msgid "Channel Locator"
-msgstr "Локатор каналов"
+#: ../../include/conversation.php:934
+msgid "Matrix Activity"
+msgstr "ÐктивноÑÑ‚ÑŒ матрицы"
-#: ../../include/nav.php:144
-msgid "Matrix"
-msgstr "Матрица"
+#: ../../include/conversation.php:935
+msgid "Edit Contact"
+msgstr "Редактировать контакт"
-#: ../../include/nav.php:144
-msgid "Conversations from your grid"
+#: ../../include/conversation.php:936
+msgid "Send PM"
+msgstr "Отправить личное Ñообщение"
+
+#: ../../include/conversation.php:937
+msgid "Poke"
+msgstr "Подпихнуть"
+
+#: ../../include/conversation.php:999
+#, php-format
+msgid "%s likes this."
+msgstr "%s нравитÑÑ Ñто."
+
+#: ../../include/conversation.php:999
+#, php-format
+msgid "%s doesn't like this."
+msgstr "%s не нравитÑÑ Ñто."
+
+#: ../../include/conversation.php:1003
+#, php-format
+msgid "<span %1$s>%2$d people</span> like this."
+msgid_plural "<span %1$s>%2$d people</span> like this."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] "<span %1$s>%2$d чел.</span> нравитÑÑ Ñто."
+
+#: ../../include/conversation.php:1005
+#, php-format
+msgid "<span %1$s>%2$d people</span> don't like this."
+msgid_plural "<span %1$s>%2$d people</span> don't like this."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] "<span %1$s>%2$d чел.</span> не нравитÑÑ Ñто."
+
+#: ../../include/conversation.php:1011
+msgid "and"
+msgstr "и"
+
+#: ../../include/conversation.php:1014
+#, php-format
+msgid ", and %d other people"
+msgid_plural ", and %d other people"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ", и %d другие люди"
+
+#: ../../include/conversation.php:1015
+#, php-format
+msgid "%s like this."
+msgstr "%s нравитÑÑ Ñто."
+
+#: ../../include/conversation.php:1015
+#, php-format
+msgid "%s don't like this."
+msgstr "%s не нравитÑÑ Ñто."
+
+#: ../../include/conversation.php:1065
+msgid "Visible to <strong>everybody</strong>"
+msgstr "Видно Ð´Ð»Ñ <strong>вÑех</strong>"
+
+#: ../../include/conversation.php:1066 ../../mod/mail.php:171
+#: ../../mod/mail.php:269
+msgid "Please enter a link URL:"
+msgstr "ПожалуйÑта, введите URL ÑÑылки:"
+
+#: ../../include/conversation.php:1067
+msgid "Please enter a video link/URL:"
+msgstr "ПожалуйÑта, введите URL видео-ÑÑылки:"
+
+#: ../../include/conversation.php:1068
+msgid "Please enter an audio link/URL:"
+msgstr "ПожалуйÑта, введите URL аудио-ÑÑылки:"
+
+#: ../../include/conversation.php:1069
+msgid "Tag term:"
+msgstr "Теги:"
+
+#: ../../include/conversation.php:1070 ../../mod/filer.php:35
+msgid "Save to Folder:"
+msgstr "Сохранить в папку:"
+
+#: ../../include/conversation.php:1071
+msgid "Where are you right now?"
+msgstr "Где вы ÑейчаÑ?"
+
+#: ../../include/conversation.php:1072 ../../mod/mail.php:172
+#: ../../mod/mail.php:270 ../../mod/editpost.php:52
+msgid "Expires YYYY-MM-DD HH:MM"
msgstr ""
-#: ../../include/nav.php:145
-msgid "See all matrix notifications"
-msgstr "ПроÑмотреть вÑе Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†Ñ‹"
+#: ../../include/conversation.php:1082 ../../include/ItemObject.php:546
+#: ../../mod/webpages.php:122 ../../mod/photos.php:1101
+#: ../../mod/editlayout.php:130 ../../mod/editpost.php:127
+#: ../../mod/editwebpage.php:177 ../../mod/editblock.php:145
+msgid "Preview"
+msgstr "Предварительный проÑмотр"
-#: ../../include/nav.php:146
-msgid "Mark all matrix notifications seen"
-msgstr "Пометить вÑе Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†Ñ‹ как прочитанное"
+#: ../../include/conversation.php:1096 ../../mod/photos.php:1080
+msgid "Share"
+msgstr "ПоделитьÑÑ"
-#: ../../include/nav.php:149
-msgid "See all channel notifications"
-msgstr "ПроÑмотреть вÑе ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð°"
+#: ../../include/conversation.php:1098 ../../mod/editwebpage.php:140
+msgid "Page link title"
+msgstr "СÑылка заголовока Ñтраницы"
-#: ../../include/nav.php:150
-msgid "Mark all channel notifications seen"
-msgstr "Пометить вÑе Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð° как прочитанное"
+#: ../../include/conversation.php:1100 ../../mod/mail.php:219
+#: ../../mod/mail.php:332 ../../mod/editlayout.php:102
+#: ../../mod/editpost.php:99 ../../mod/editwebpage.php:145
+#: ../../mod/editblock.php:116
+msgid "Upload photo"
+msgstr "Загрузить фотографию"
-#: ../../include/nav.php:153
-msgid "Intros"
-msgstr "Контакты"
+#: ../../include/conversation.php:1101
+msgid "upload photo"
+msgstr "загрузить фотографию"
-#: ../../include/nav.php:153 ../../mod/connections.php:554
-msgid "New Connections"
-msgstr "Ðовые контакты"
+#: ../../include/conversation.php:1102 ../../mod/mail.php:220
+#: ../../mod/mail.php:333 ../../mod/editlayout.php:103
+#: ../../mod/editpost.php:100 ../../mod/editwebpage.php:146
+#: ../../mod/editblock.php:117
+msgid "Attach file"
+msgstr "Прикрепить файл"
-#: ../../include/nav.php:154
-msgid "See all channel introductions"
-msgstr "ПроÑмотреть вÑе Ð²Ð²ÐµÐ´ÐµÐ½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð°"
+#: ../../include/conversation.php:1103
+msgid "attach file"
+msgstr "прикрепить файл"
-#: ../../include/nav.php:157
-msgid "Notices"
-msgstr "ОповещениÑ"
+#: ../../include/conversation.php:1104 ../../mod/mail.php:221
+#: ../../mod/mail.php:334 ../../mod/editlayout.php:104
+#: ../../mod/editpost.php:101 ../../mod/editwebpage.php:147
+#: ../../mod/editblock.php:118
+msgid "Insert web link"
+msgstr "Ð’Ñтавить веб-ÑÑылку"
-#: ../../include/nav.php:157 ../../mod/notifications.php:218
-msgid "Notifications"
-msgstr "ОповещениÑ"
+#: ../../include/conversation.php:1105
+msgid "web link"
+msgstr "веб-ÑÑылка"
-#: ../../include/nav.php:158
-msgid "See all notifications"
-msgstr "ПроÑмотреть вÑе оповещениÑ"
+#: ../../include/conversation.php:1106
+msgid "Insert video link"
+msgstr "Ð’Ñтавить видео-ÑÑылку"
-#: ../../include/nav.php:159
-msgid "Mark all system notifications seen"
-msgstr "Пометить вÑе Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ ÐºÐ°Ðº прочитанное"
+#: ../../include/conversation.php:1107
+msgid "video link"
+msgstr "видео-ÑÑылка"
-#: ../../include/nav.php:161
-msgid "Mail"
-msgstr "ПерепиÑка"
+#: ../../include/conversation.php:1108
+msgid "Insert audio link"
+msgstr "Ð’Ñтавить аудио-ÑÑылку"
-#: ../../include/nav.php:161
-msgid "Private mail"
-msgstr "Ваша Ð»Ð¸Ñ‡Ð½Ð°Ñ Ð¿ÐµÑ€ÐµÐ¿Ð¸Ñка"
+#: ../../include/conversation.php:1109
+msgid "audio link"
+msgstr "аудио-ÑÑылка"
-#: ../../include/nav.php:162
-msgid "See all private messages"
-msgstr "ПроÑмотреть вÑе личные ÑообщениÑ"
+#: ../../include/conversation.php:1110 ../../mod/editlayout.php:108
+#: ../../mod/editpost.php:105 ../../mod/editwebpage.php:151
+#: ../../mod/editblock.php:122
+msgid "Set your location"
+msgstr "Указание Ñвоего раÑположениÑ"
-#: ../../include/nav.php:163
-msgid "Mark all private messages seen"
-msgstr "Пометить вÑе личные ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÐºÐ°Ðº прочитанное"
+#: ../../include/conversation.php:1111
+msgid "set location"
+msgstr "указание раÑположениÑ"
-#: ../../include/nav.php:164
-msgid "Inbox"
-msgstr "ВходÑщие"
+#: ../../include/conversation.php:1112 ../../mod/editlayout.php:109
+#: ../../mod/editpost.php:106 ../../mod/editwebpage.php:152
+#: ../../mod/editblock.php:123
+msgid "Clear browser location"
+msgstr "Стереть указание раÑположениÑ"
-#: ../../include/nav.php:165
-msgid "Outbox"
-msgstr "ИÑходÑщие"
+#: ../../include/conversation.php:1113
+msgid "clear location"
+msgstr "Ñтереть указание раÑположениÑ"
-#: ../../include/nav.php:166 ../../mod/message.php:21
-msgid "New Message"
-msgstr "Ðовое личное Ñообщение"
+#: ../../include/conversation.php:1115 ../../mod/editlayout.php:122
+#: ../../mod/editpost.php:119 ../../mod/editwebpage.php:169
+#: ../../mod/editblock.php:137
+msgid "Set title"
+msgstr "Заголовок"
-#: ../../include/nav.php:169 ../../mod/events.php:348 ../../boot.php:2200
-msgid "Events"
-msgstr "МероприÑтиÑ"
+#: ../../include/conversation.php:1118 ../../mod/editlayout.php:124
+#: ../../mod/editpost.php:121 ../../mod/editwebpage.php:171
+#: ../../mod/editblock.php:139
+msgid "Categories (comma-separated list)"
+msgstr "Категории (ÑпиÑок через запÑтую)"
-#: ../../include/nav.php:169
-msgid "Event Calendar"
-msgstr "Календарь мероприÑтий"
+#: ../../include/conversation.php:1120 ../../mod/editlayout.php:111
+#: ../../mod/editpost.php:108 ../../mod/editwebpage.php:154
+#: ../../mod/editblock.php:125
+msgid "Permission settings"
+msgstr "ÐаÑтройки разрешений"
-#: ../../include/nav.php:170
-msgid "See all events"
-msgstr "Показать вÑе мероприÑтиÑ"
+#: ../../include/conversation.php:1121
+msgid "permissions"
+msgstr "разрешениÑ"
-#: ../../include/nav.php:171
-msgid "Mark all events seen"
-msgstr "Пометить вÑе мероприÑÑ‚Ð¸Ñ ÐºÐ°Ðº прочитанное"
+#: ../../include/conversation.php:1129 ../../mod/editlayout.php:119
+#: ../../mod/editpost.php:116 ../../mod/editwebpage.php:164
+#: ../../mod/editblock.php:134
+msgid "Public post"
+msgstr "Публичное Ñообщение"
-#: ../../include/nav.php:173
-msgid "Channel Select"
-msgstr "Выбор канала"
+#: ../../include/conversation.php:1131 ../../mod/editlayout.php:125
+#: ../../mod/editpost.php:122 ../../mod/editwebpage.php:172
+#: ../../mod/editblock.php:140
+msgid "Example: bob@example.com, mary@example.com"
+msgstr "Пример: bob@example.com, mary@example.com"
-#: ../../include/nav.php:173
-msgid "Manage Your Channels"
-msgstr "Управление каналов"
+#: ../../include/conversation.php:1144 ../../mod/mail.php:226
+#: ../../mod/mail.php:339 ../../mod/editlayout.php:135
+#: ../../mod/editpost.php:133 ../../mod/editwebpage.php:182
+#: ../../mod/editblock.php:150
+msgid "Set expiration date"
+msgstr ""
-#: ../../include/nav.php:175 ../../mod/settings.php:120
-#: ../../mod/admin.php:728 ../../mod/admin.php:933
-msgid "Settings"
-msgstr "ÐаÑтройки"
+#: ../../include/conversation.php:1146 ../../include/ItemObject.php:549
+#: ../../mod/mail.php:228 ../../mod/mail.php:341 ../../mod/editpost.php:135
+msgid "Encrypt text"
+msgstr ""
-#: ../../include/nav.php:175
-msgid "Account/Channel Settings"
-msgstr "ÐаÑтройки аккаунта/канала"
+#: ../../include/conversation.php:1148 ../../mod/editpost.php:136
+msgid "OK"
+msgstr "OK"
-#: ../../include/nav.php:177 ../../mod/connections.php:660
-msgid "Connections"
-msgstr "Контакты"
+#: ../../include/conversation.php:1149 ../../mod/tagrm.php:11
+#: ../../mod/tagrm.php:94 ../../mod/settings.php:508
+#: ../../mod/settings.php:534 ../../mod/editpost.php:137
+#: ../../mod/fbrowser.php:82 ../../mod/fbrowser.php:117
+msgid "Cancel"
+msgstr "Отменить"
-#: ../../include/nav.php:177
-msgid "Manage/Edit Friends and Connections"
-msgstr "Управление/Редактирование друзей и ÑвÑзей"
+#: ../../include/conversation.php:1376
+msgid "Commented Order"
+msgstr "По комментириÑм"
-#: ../../include/nav.php:184 ../../mod/admin.php:106
-msgid "Admin"
-msgstr "ÐдминиÑтрациÑ"
+#: ../../include/conversation.php:1379
+msgid "Sort by Comment Date"
+msgstr "Сортировка по дате ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸ÐµÐ²"
-#: ../../include/nav.php:184
-msgid "Site Setup and Configuration"
-msgstr "УÑтановка и ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ñайта"
+#: ../../include/conversation.php:1382
+msgid "Posted Order"
+msgstr "По добавлениÑм"
-#: ../../include/nav.php:207
-msgid "Nothing new here"
-msgstr "Ðичего нового здеÑÑŒ"
+#: ../../include/conversation.php:1385
+msgid "Sort by Post Date"
+msgstr "Сортировка по дате ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑообщениÑ"
-#: ../../include/nav.php:212
-msgid "Please wait..."
-msgstr "Подождите пожалуйÑта ..."
+#: ../../include/conversation.php:1389
+msgid "Personal"
+msgstr "Личные"
-#: ../../include/identity.php:14 ../../mod/item.php:1148
-msgid "Unable to obtain identity information from database"
-msgstr "Ðевозможно получить идентификационную информацию из базы данных"
+#: ../../include/conversation.php:1392
+msgid "Posts that mention or involve you"
+msgstr "СообщениÑ, в которых упоминули или вовлекли ваÑ"
-#: ../../include/identity.php:36
-msgid "Empty name"
-msgstr "ПуÑтое имÑ"
+#: ../../include/conversation.php:1395 ../../mod/menu.php:57
+#: ../../mod/connections.php:209
+msgid "New"
+msgstr "Ðовые"
-#: ../../include/identity.php:38
-msgid "Name too long"
-msgstr "Слишком длинное имÑ"
+#: ../../include/conversation.php:1398
+msgid "Activity Stream - by date"
+msgstr "Лента активноÑти - по дате"
-#: ../../include/identity.php:80
-msgid "No account identifier"
-msgstr "идентификатор аккаунта отÑутÑтвует"
+#: ../../include/conversation.php:1405
+msgid "Starred"
+msgstr "Помеченные"
-#: ../../include/identity.php:98
-msgid ""
-"Nickname has unsupported characters or is already being used on this site."
-msgstr "ПÑевдоним имеет недопуÑтимые Ñимволы или уже иÑпользуетÑÑ Ð½Ð° Ñтом Ñайте."
+#: ../../include/conversation.php:1408
+msgid "Favourite Posts"
+msgstr "Фаворит-ÑообщениÑ"
-#: ../../include/identity.php:157
-msgid "Unable to retrieve created identity"
+#: ../../include/conversation.php:1415
+msgid "Spam"
+msgstr "Спам"
+
+#: ../../include/conversation.php:1418
+msgid "Posts flagged as SPAM"
+msgstr "Как СПÐÐœ помеченные ÑообщениÑ"
+
+#: ../../include/conversation.php:1448
+msgid "Channel"
+msgstr "Канал"
+
+#: ../../include/conversation.php:1451
+msgid "Status Messages and Posts"
msgstr ""
-#: ../../include/identity.php:214
-msgid "Default Profile"
-msgstr "Профиль по умолчанию"
+#: ../../include/conversation.php:1455
+msgid "About"
+msgstr "О Ñебе"
-#: ../../include/identity.php:239 ../../include/profile_selectors.php:42
-#: ../../mod/network.php:364 ../../mod/connections.php:377
-msgid "Friends"
-msgstr "ДрузьÑ"
+#: ../../include/conversation.php:1458
+msgid "Profile Details"
+msgstr "Ð¡Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ профиле"
+
+#: ../../include/conversation.php:1465 ../../include/photos.php:297
+msgid "Photo Albums"
+msgstr "Фотоальбомы"
+
+#: ../../include/conversation.php:1470 ../../mod/fbrowser.php:114
+msgid "Files"
+msgstr "Файлы"
+
+#: ../../include/conversation.php:1473
+msgid "Files and Storage"
+msgstr ""
+
+#: ../../include/conversation.php:1485
+msgid "Events and Calendar"
+msgstr "МероприÑÑ‚Ð¸Ñ Ð¸ календарь"
+
+#: ../../include/conversation.php:1490
+msgid "Webpages"
+msgstr "Веб-Ñтраницы"
+
+#: ../../include/conversation.php:1493
+msgid "Manage Webpages"
+msgstr "Управление веб-Ñтраниц"
#: ../../include/notify.php:23
msgid "created a new post"
@@ -1227,41 +1833,39 @@ msgstr "Ñоздал новое Ñообщение"
msgid "commented on %s's post"
msgstr "прокомментировал %s's Ñообщение"
-#: ../../include/oembed.php:148
-msgid "Embedded content"
-msgstr ""
-
-#: ../../include/oembed.php:157
-msgid "Embedding disabled"
-msgstr ""
-
-#: ../../include/photos.php:15 ../../include/attach.php:102
-#: ../../include/attach.php:133 ../../include/attach.php:189
-#: ../../include/attach.php:204 ../../include/attach.php:237
-#: ../../include/attach.php:251 ../../include/attach.php:272
-#: ../../include/attach.php:464 ../../include/items.php:3359
-#: ../../mod/common.php:43 ../../mod/events.php:134 ../../mod/invite.php:13
-#: ../../mod/invite.php:102 ../../mod/allfriends.php:10
-#: ../../mod/webpages.php:40 ../../mod/api.php:26 ../../mod/api.php:31
-#: ../../mod/lastpost.php:93 ../../mod/page.php:30 ../../mod/setup.php:181
-#: ../../mod/settings.php:598 ../../mod/viewconnections.php:33
-#: ../../mod/viewconnections.php:38 ../../mod/delegate.php:6
-#: ../../mod/mitem.php:92 ../../mod/group.php:15 ../../mod/photos.php:74
-#: ../../mod/photos.php:647 ../../mod/viewsrc.php:12 ../../mod/menu.php:40
-#: ../../mod/message.php:204 ../../mod/layouts.php:27 ../../mod/layouts.php:42
-#: ../../mod/network.php:7 ../../mod/intro.php:50
-#: ../../mod/connections.php:174 ../../mod/profiles.php:163
-#: ../../mod/profiles.php:476 ../../mod/new_channel.php:66
-#: ../../mod/new_channel.php:97 ../../mod/manage.php:6
-#: ../../mod/crepair.php:115 ../../mod/editlayout.php:49
-#: ../../mod/nogroup.php:25 ../../mod/profile_photo.php:197
-#: ../../mod/profile_photo.php:210 ../../mod/editwebpage.php:43
-#: ../../mod/editwebpage.php:65 ../../mod/notifications.php:66
-#: ../../mod/blocks.php:29 ../../mod/blocks.php:44 ../../mod/editpost.php:13
-#: ../../mod/poke.php:128 ../../mod/channel.php:117 ../../mod/fsuggest.php:78
-#: ../../mod/editblock.php:49 ../../mod/item.php:163 ../../mod/suggest.php:32
-#: ../../mod/register.php:60 ../../mod/regmod.php:18 ../../mod/mood.php:114
-#: ../../index.php:178 ../../index.php:340
+#: ../../include/photos.php:15 ../../include/attach.php:97
+#: ../../include/attach.php:128 ../../include/attach.php:184
+#: ../../include/attach.php:199 ../../include/attach.php:232
+#: ../../include/attach.php:246 ../../include/attach.php:267
+#: ../../include/attach.php:461 ../../include/attach.php:539
+#: ../../include/items.php:3445 ../../mod/common.php:35
+#: ../../mod/events.php:140 ../../mod/thing.php:241 ../../mod/thing.php:257
+#: ../../mod/thing.php:291 ../../mod/invite.php:13 ../../mod/invite.php:104
+#: ../../mod/connedit.php:179 ../../mod/webpages.php:40 ../../mod/api.php:26
+#: ../../mod/api.php:31 ../../mod/page.php:30 ../../mod/page.php:80
+#: ../../mod/setup.php:200 ../../mod/viewconnections.php:22
+#: ../../mod/viewconnections.php:27 ../../mod/delegate.php:6
+#: ../../mod/sources.php:62 ../../mod/mitem.php:73 ../../mod/group.php:9
+#: ../../mod/photos.php:68 ../../mod/photos.php:653 ../../mod/viewsrc.php:12
+#: ../../mod/menu.php:40 ../../mod/connections.php:167
+#: ../../mod/layouts.php:27 ../../mod/layouts.php:42 ../../mod/network.php:12
+#: ../../mod/profiles.php:152 ../../mod/profiles.php:465
+#: ../../mod/new_channel.php:66 ../../mod/new_channel.php:97
+#: ../../mod/achievements.php:27 ../../mod/filestorage.php:10
+#: ../../mod/filestorage.php:59 ../../mod/filestorage.php:76
+#: ../../mod/filestorage.php:99 ../../mod/manage.php:6
+#: ../../mod/settings.php:484 ../../mod/mail.php:108
+#: ../../mod/editlayout.php:48 ../../mod/profile_photo.php:187
+#: ../../mod/profile_photo.php:200 ../../mod/editpost.php:13
+#: ../../mod/notifications.php:66 ../../mod/blocks.php:29
+#: ../../mod/blocks.php:44 ../../mod/editwebpage.php:44
+#: ../../mod/editwebpage.php:83 ../../mod/poke.php:128
+#: ../../mod/channel.php:88 ../../mod/channel.php:225
+#: ../../mod/fsuggest.php:78 ../../mod/editblock.php:48
+#: ../../mod/suggest.php:26 ../../mod/message.php:16 ../../mod/register.php:68
+#: ../../mod/regmod.php:18 ../../mod/authtest.php:13 ../../mod/item.php:182
+#: ../../mod/item.php:190 ../../mod/mood.php:119 ../../index.php:176
+#: ../../index.php:344
msgid "Permission denied."
msgstr "ДоÑтуп запрещен."
@@ -1274,20 +1878,16 @@ msgstr ""
msgid "Image file is empty."
msgstr "файл пуÑÑ‚."
-#: ../../include/photos.php:124 ../../mod/profile_photo.php:157
+#: ../../include/photos.php:122 ../../mod/profile_photo.php:147
msgid "Unable to process image"
msgstr ""
-#: ../../include/photos.php:186
+#: ../../include/photos.php:184
msgid "Photo storage failed."
msgstr ""
-#: ../../include/photos.php:288 ../../boot.php:2192
-msgid "Photo Albums"
-msgstr "Фотоальбомы"
-
-#: ../../include/photos.php:292 ../../mod/photos.php:795
-#: ../../mod/photos.php:1269
+#: ../../include/photos.php:301 ../../mod/photos.php:821
+#: ../../mod/photos.php:1296
msgid "Upload New Photos"
msgstr "Загрузить новые фотографии"
@@ -1519,44 +2119,104 @@ msgstr "Ðе заботьтеÑÑŒ"
msgid "Ask me"
msgstr "СпроÑи менÑ"
-#: ../../include/attach.php:184 ../../include/attach.php:232
+#: ../../include/attach.php:179 ../../include/attach.php:227
msgid "Item was not found."
msgstr "Элемент не найден."
-#: ../../include/attach.php:285
+#: ../../include/attach.php:280
msgid "No source file."
msgstr "Ðет иÑходного файла."
-#: ../../include/attach.php:302
+#: ../../include/attach.php:297
msgid "Cannot locate file to replace"
msgstr "Ðе удаетÑÑ Ð½Ð°Ð¹Ñ‚Ð¸ файл, чтобы заменить"
-#: ../../include/attach.php:320
+#: ../../include/attach.php:315
msgid "Cannot locate file to revise/update"
msgstr "Ðе удаетÑÑ Ð½Ð°Ð¹Ñ‚Ð¸ файл Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑмотра / обновлениÑ"
-#: ../../include/attach.php:331
+#: ../../include/attach.php:326
#, php-format
msgid "File exceeds size limit of %d"
msgstr "Файл превышает предельный размер %d"
-#: ../../include/attach.php:342
+#: ../../include/attach.php:337
#, php-format
msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
msgstr ""
-#: ../../include/attach.php:424
+#: ../../include/attach.php:421
msgid "File upload failed. Possible system limit or action terminated."
msgstr "Загрузка файла не удалаÑÑŒ. Возможно ÑиÑтема перегружена или попытка прекращена."
-#: ../../include/attach.php:436
+#: ../../include/attach.php:433
msgid "Stored file could not be verified. Upload failed."
msgstr ""
-#: ../../include/attach.php:480 ../../include/attach.php:497
+#: ../../include/attach.php:477 ../../include/attach.php:494
msgid "Path not available."
msgstr "Путь недоÑтупен."
+#: ../../include/attach.php:544
+msgid "Empty pathname"
+msgstr ""
+
+#: ../../include/attach.php:562
+msgid "duplicate filename or path"
+msgstr ""
+
+#: ../../include/attach.php:587
+msgid "Path not found."
+msgstr "Путь не найден."
+
+#: ../../include/attach.php:632
+msgid "mkdir failed."
+msgstr ""
+
+#: ../../include/attach.php:636
+msgid "database storage failed."
+msgstr ""
+
+#: ../../include/taxonomy.php:210
+msgid "Tags"
+msgstr "ТÑги"
+
+#: ../../include/taxonomy.php:227
+msgid "Keywords"
+msgstr "Ключевые Ñлова"
+
+#: ../../include/taxonomy.php:252
+msgid "have"
+msgstr "иметь"
+
+#: ../../include/taxonomy.php:252
+msgid "has"
+msgstr "еÑÑ‚ÑŒ"
+
+#: ../../include/taxonomy.php:253
+msgid "want"
+msgstr "хотеть"
+
+#: ../../include/taxonomy.php:253
+msgid "wants"
+msgstr "хочет"
+
+#: ../../include/taxonomy.php:254 ../../include/ItemObject.php:175
+msgid "like"
+msgstr "мне нравитьÑÑ"
+
+#: ../../include/taxonomy.php:254
+msgid "likes"
+msgstr "мне нравитьÑÑ"
+
+#: ../../include/taxonomy.php:255 ../../include/ItemObject.php:176
+msgid "dislike"
+msgstr "мне не-нравитьÑÑ"
+
+#: ../../include/taxonomy.php:255
+msgid "dislikes"
+msgstr "мне не-нравитьÑÑ"
+
#: ../../include/account.php:23
msgid "Not a valid email address"
msgstr "Ðе дейÑтвительный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты"
@@ -1577,492 +2237,315 @@ msgstr "ТребуетÑÑ Ð¿Ñ€Ð¸Ð³Ð»Ð°ÑˆÐµÐ½Ð¸Ðµ."
msgid "Invitation could not be verified."
msgstr "Ðе удалоÑÑŒ проверить приглашение."
-#: ../../include/account.php:118
+#: ../../include/account.php:119
msgid "Please enter the required information."
msgstr "ПожалуйÑта, введите необходимую информацию."
-#: ../../include/account.php:186
+#: ../../include/account.php:187
msgid "Failed to store account information."
msgstr "Ðе удалоÑÑŒ Ñохранить информацию аккаунта."
-#: ../../include/account.php:272
+#: ../../include/account.php:273
#, php-format
msgid "Registration request at %s"
msgstr "ТребуетÑÑ Ñ€ÐµÐ³Ð¸ÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð° %s"
-#: ../../include/account.php:274 ../../include/account.php:301
-#: ../../include/account.php:358
+#: ../../include/account.php:275 ../../include/account.php:302
+#: ../../include/account.php:359
msgid "Administrator"
msgstr "ÐдминиÑтратор"
-#: ../../include/account.php:296
+#: ../../include/account.php:297
msgid "your registration password"
msgstr "Ваш пароль региÑтрации"
-#: ../../include/account.php:299 ../../include/account.php:356
+#: ../../include/account.php:300 ../../include/account.php:357
#, php-format
msgid "Registration details for %s"
msgstr "РегиÑтрационные данные Ð´Ð»Ñ %s"
-#: ../../include/account.php:365
+#: ../../include/account.php:366
msgid "Account approved."
msgstr "Ðккаунт утвержден."
-#: ../../include/account.php:399
+#: ../../include/account.php:400
#, php-format
msgid "Registration revoked for %s"
msgstr "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¾Ñ‚Ð¾Ð·Ð²Ð°Ð½Ð° Ð´Ð»Ñ %s"
-#: ../../include/bbcode.php:94 ../../include/bbcode.php:423
-#: ../../include/bbcode.php:426
-msgid "Image/photo"
-msgstr "Изображение / фото"
-
-#: ../../include/bbcode.php:141
-#, php-format
-msgid "%1$s wrote the following %2$s %3$s"
-msgstr "%1$s напиÑал Ñледующее %2$s %3$s"
-
-#: ../../include/bbcode.php:143
-msgid "post"
-msgstr "Ñообщение"
+#: ../../include/dir_fns.php:15
+msgid "Sort Options"
+msgstr ""
-#: ../../include/bbcode.php:383 ../../include/bbcode.php:403
-msgid "$1 wrote:"
-msgstr "$1 пиÑал:"
+#: ../../include/dir_fns.php:16
+msgid "Alphabetic"
+msgstr "По алфавиту"
-#: ../../include/bbcode.php:430 ../../include/bbcode.php:431
-msgid "Encrypted content"
-msgstr "Зашифрованное Ñодержание"
+#: ../../include/dir_fns.php:17
+msgid "Reverse Alphabetic"
+msgstr "По обратному алфавиту"
-#: ../../include/text.php:309
-msgid "prev"
-msgstr "предыдущий"
+#: ../../include/dir_fns.php:18
+msgid "Newest to Oldest"
+msgstr "От новых к Ñтарым"
-#: ../../include/text.php:311
-msgid "first"
-msgstr "первый"
+#: ../../include/dir_fns.php:30
+msgid "Enable Safe Search"
+msgstr ""
-#: ../../include/text.php:340
-msgid "last"
-msgstr "поÑледний"
+#: ../../include/dir_fns.php:32
+msgid "Disable Safe Search"
+msgstr ""
-#: ../../include/text.php:343
-msgid "next"
-msgstr "Ñледующий"
+#: ../../include/dir_fns.php:34
+msgid "Safe Mode"
+msgstr ""
-#: ../../include/text.php:355
-msgid "older"
-msgstr "Ñтарший"
+#: ../../include/enotify.php:40
+msgid "Red Matrix Notification"
+msgstr "ÐžÐ¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Red матрицы"
-#: ../../include/text.php:357
-msgid "newer"
-msgstr "новее"
+#: ../../include/enotify.php:41
+msgid "redmatrix"
+msgstr "redmatrix"
-#: ../../include/text.php:648
-msgid "No connections"
-msgstr "Ðет каналов"
+#: ../../include/enotify.php:43
+msgid "Thank You,"
+msgstr "СпаÑибо,"
-#: ../../include/text.php:659
+#: ../../include/enotify.php:45
#, php-format
-msgid "%d Connection"
-msgid_plural "%d Connections"
-msgstr[0] "%d канал"
-msgstr[1] "%d канала"
-msgstr[2] "%d каналов"
-
-#: ../../include/text.php:671
-msgid "View Connections"
-msgstr "ПроÑмотр контактов"
-
-#: ../../include/text.php:732 ../../mod/filer.php:36
-msgid "Save"
-msgstr "Запомнить"
+msgid "%s Administrator"
+msgstr "%s админиÑтратор"
-#: ../../include/text.php:770
-msgid "poke"
-msgstr "подпихнуть"
+#: ../../include/enotify.php:80
+#, php-format
+msgid "%s <!item_type!>"
+msgstr "%s <!item_type!>"
-#: ../../include/text.php:770 ../../include/conversation.php:236
-msgid "poked"
-msgstr "подпихнул"
+#: ../../include/enotify.php:84
+#, php-format
+msgid "[Red:Notify] New mail received at %s"
+msgstr "[Red:Уведомление] Получено новое Ñообщение в %s"
-#: ../../include/text.php:771
-msgid "ping"
+#: ../../include/enotify.php:86
+#, php-format
+msgid "%1$s, %2$s sent you a new private message at %3$s."
msgstr ""
-#: ../../include/text.php:771
-msgid "pinged"
-msgstr ""
+#: ../../include/enotify.php:87
+#, php-format
+msgid "%1$s sent you %2$s."
+msgstr "%1$s поÑлал вам %2$s."
-#: ../../include/text.php:772
-msgid "prod"
-msgstr ""
+#: ../../include/enotify.php:87
+msgid "a private message"
+msgstr "личное Ñообщение"
-#: ../../include/text.php:772
-msgid "prodded"
-msgstr ""
+#: ../../include/enotify.php:88
+#, php-format
+msgid "Please visit %s to view and/or reply to your private messages."
+msgstr "ПожалуйÑта, поÑетите %s Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра и/или ответа на ваши личные ÑообщениÑ."
-#: ../../include/text.php:773
-msgid "slap"
+#: ../../include/enotify.php:142
+#, php-format
+msgid "%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]"
msgstr ""
-#: ../../include/text.php:773
-msgid "slapped"
+#: ../../include/enotify.php:150
+#, php-format
+msgid "%1$s, %2$s commented on [zrl=%3$s]%4$s's %5$s[/zrl]"
msgstr ""
-#: ../../include/text.php:774
-msgid "finger"
+#: ../../include/enotify.php:159
+#, php-format
+msgid "%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]"
msgstr ""
-#: ../../include/text.php:774
-msgid "fingered"
-msgstr ""
+#: ../../include/enotify.php:170
+#, php-format
+msgid "[Red:Notify] Comment to conversation #%1$d by %2$s"
+msgstr "[Red:Уведомление] Комментарий к разговору #%1$d по %2$s"
-#: ../../include/text.php:775
-msgid "rebuff"
+#: ../../include/enotify.php:171
+#, php-format
+msgid "%1$s, %2$s commented on an item/conversation you have been following."
msgstr ""
-#: ../../include/text.php:775
-msgid "rebuffed"
-msgstr ""
+#: ../../include/enotify.php:174 ../../include/enotify.php:189
+#: ../../include/enotify.php:215 ../../include/enotify.php:234
+#: ../../include/enotify.php:248
+#, php-format
+msgid "Please visit %s to view and/or reply to the conversation."
+msgstr "ПожалуйÑта, поÑетите %s Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра и/или ответа разговора."
-#: ../../include/text.php:787
-msgid "happy"
-msgstr "ÑчаÑтливый"
+#: ../../include/enotify.php:180
+#, php-format
+msgid "[Red:Notify] %s posted to your profile wall"
+msgstr "[Red:Уведомление] %s добавил Ñообщениe на Ñтену вашего профилÑ"
-#: ../../include/text.php:788
-msgid "sad"
+#: ../../include/enotify.php:182
+#, php-format
+msgid "%1$s, %2$s posted to your profile wall at %3$s"
msgstr ""
-#: ../../include/text.php:789
-msgid "mellow"
+#: ../../include/enotify.php:184
+#, php-format
+msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]"
msgstr ""
-#: ../../include/text.php:790
-msgid "tired"
-msgstr ""
+#: ../../include/enotify.php:208
+#, php-format
+msgid "[Red:Notify] %s tagged you"
+msgstr "[Red:Уведомление] %s добавил у Ð²Ð°Ñ Ñ‚ÐµÐ³"
-#: ../../include/text.php:791
-msgid "perky"
+#: ../../include/enotify.php:209
+#, php-format
+msgid "%1$s, %2$s tagged you at %3$s"
msgstr ""
-#: ../../include/text.php:792
-msgid "angry"
-msgstr "Ñердитый"
-
-#: ../../include/text.php:793
-msgid "stupified"
+#: ../../include/enotify.php:210
+#, php-format
+msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]."
msgstr ""
-#: ../../include/text.php:794
-msgid "puzzled"
-msgstr ""
+#: ../../include/enotify.php:223
+#, php-format
+msgid "[Red:Notify] %1$s poked you"
+msgstr "[Red:Уведомление] %1$s подпихнул ваÑ"
-#: ../../include/text.php:795
-msgid "interested"
+#: ../../include/enotify.php:224
+#, php-format
+msgid "%1$s, %2$s poked you at %3$s"
msgstr ""
-#: ../../include/text.php:796
-msgid "bitter"
-msgstr "озлобленный"
-
-#: ../../include/text.php:797
-msgid "cheerful"
+#: ../../include/enotify.php:225
+#, php-format
+msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]."
msgstr ""
-#: ../../include/text.php:798
-msgid "alive"
-msgstr ""
+#: ../../include/enotify.php:241
+#, php-format
+msgid "[Red:Notify] %s tagged your post"
+msgstr "[Red:Уведомление] %s добавил у Ð²Ð°Ñ Ð² Ñообщении тег"
-#: ../../include/text.php:799
-msgid "annoyed"
+#: ../../include/enotify.php:242
+#, php-format
+msgid "%1$s, %2$s tagged your post at %3$s"
msgstr ""
-#: ../../include/text.php:800
-msgid "anxious"
+#: ../../include/enotify.php:243
+#, php-format
+msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]"
msgstr ""
-#: ../../include/text.php:801
-msgid "cranky"
-msgstr "капризный"
-
-#: ../../include/text.php:802
-msgid "disturbed"
-msgstr "вÑтревоженный"
-
-#: ../../include/text.php:803
-msgid "frustrated"
-msgstr "разочарованный"
-
-#: ../../include/text.php:804
-msgid "motivated"
-msgstr "мотивированный"
-
-#: ../../include/text.php:805
-msgid "relaxed"
-msgstr "раÑÑлабленный"
-
-#: ../../include/text.php:806
-msgid "surprised"
-msgstr "удивленный"
-
-#: ../../include/text.php:968
-msgid "Monday"
-msgstr "Понедельник"
-
-#: ../../include/text.php:968
-msgid "Tuesday"
-msgstr "Вторник"
-
-#: ../../include/text.php:968
-msgid "Wednesday"
-msgstr "Среда"
-
-#: ../../include/text.php:968
-msgid "Thursday"
-msgstr "Четверг"
-
-#: ../../include/text.php:968
-msgid "Friday"
-msgstr "ПÑтница"
-
-#: ../../include/text.php:968
-msgid "Saturday"
-msgstr "Суббота"
-
-#: ../../include/text.php:968
-msgid "Sunday"
-msgstr "ВоÑкреÑенье"
-
-#: ../../include/text.php:972
-msgid "January"
-msgstr "Январь"
-
-#: ../../include/text.php:972
-msgid "February"
-msgstr "Февраль"
-
-#: ../../include/text.php:972
-msgid "March"
-msgstr "Март"
-
-#: ../../include/text.php:972
-msgid "April"
-msgstr "Ðпрель"
-
-#: ../../include/text.php:972
-msgid "May"
-msgstr "Май"
-
-#: ../../include/text.php:972
-msgid "June"
-msgstr "Июнь"
-
-#: ../../include/text.php:972
-msgid "July"
-msgstr "Июль"
-
-#: ../../include/text.php:972
-msgid "August"
-msgstr "ÐвгуÑÑ‚"
-
-#: ../../include/text.php:972
-msgid "September"
-msgstr "СентÑбрь"
-
-#: ../../include/text.php:972
-msgid "October"
-msgstr "ОктÑбрь"
-
-#: ../../include/text.php:972
-msgid "November"
-msgstr "ÐоÑбрь"
-
-#: ../../include/text.php:972
-msgid "December"
-msgstr "Декабрь"
-
-#: ../../include/text.php:1057 ../../mod/message.php:400
-msgid "unknown.???"
-msgstr "неизвеÑтный.???"
-
-#: ../../include/text.php:1058 ../../mod/message.php:401
-msgid "bytes"
-msgstr "байт"
-
-#: ../../include/text.php:1094 ../../include/text.php:1109
-#: ../../include/conversation.php:820
-msgid "remove"
-msgstr "удалить"
-
-#: ../../include/text.php:1094 ../../include/text.php:1109
-msgid "[remove]"
-msgstr "[удалить]"
-
-#: ../../include/text.php:1097 ../../include/conversation.php:667
-msgid "Categories:"
-msgstr "Категории:"
-
-#: ../../include/text.php:1112 ../../include/conversation.php:668
-msgid "Filed under:"
-msgstr "Хранить под:"
-
-#: ../../include/text.php:1128 ../../include/text.php:1140
-msgid "Click to open/close"
-msgstr "Ðажмите, чтобы открыть/закрыть"
-
-#: ../../include/text.php:1311 ../../mod/events.php:326
-msgid "link to source"
-msgstr "ÑÑылка на иÑточник"
+#: ../../include/enotify.php:255
+msgid "[Red:Notify] Introduction received"
+msgstr "[Red:Уведомление] введение получено"
-#: ../../include/text.php:1330
-msgid "Select a page layout: "
+#: ../../include/enotify.php:256
+#, php-format
+msgid "%1$s, you've received an introduction from '%2$s' at %3$s"
msgstr ""
-#: ../../include/text.php:1333 ../../include/text.php:1398
-msgid "default"
-msgstr "по умолчанию"
-
-#: ../../include/text.php:1369
-msgid "Page content type: "
+#: ../../include/enotify.php:257
+#, php-format
+msgid "%1$s, you've received [zrl=%2$s]an introduction[/zrl] from %3$s."
msgstr ""
-#: ../../include/text.php:1410
-msgid "Select an alternate language"
-msgstr "Выбор альтернативного Ñзыка"
-
-#: ../../include/text.php:1562 ../../include/conversation.php:117
-#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:45
-msgid "photo"
-msgstr "фото"
-
-#: ../../include/text.php:1565 ../../include/conversation.php:120
-#: ../../mod/tagger.php:49
-msgid "event"
-msgstr "мероприÑтие"
-
-#: ../../include/text.php:1568 ../../include/conversation.php:145
-#: ../../mod/like.php:103 ../../mod/subthread.php:89 ../../mod/tagger.php:53
-msgid "status"
-msgstr "ÑтатуÑ"
-
-#: ../../include/text.php:1570 ../../include/conversation.php:147
-#: ../../mod/tagger.php:55
-msgid "comment"
-msgstr "комментарий"
-
-#: ../../include/text.php:1575
-msgid "activity"
-msgstr "активноÑÑ‚ÑŒ"
+#: ../../include/enotify.php:261 ../../include/enotify.php:280
+#, php-format
+msgid "You may visit their profile at %s"
+msgstr "Ð’Ñ‹ можете поÑетить ​​профиль в %s"
-#: ../../include/text.php:1836
-msgid "Design"
+#: ../../include/enotify.php:263
+#, php-format
+msgid "Please visit %s to approve or reject the introduction."
msgstr ""
-#: ../../include/text.php:1837
-msgid "Blocks"
-msgstr ""
+#: ../../include/enotify.php:270
+msgid "[Red:Notify] Friend suggestion received"
+msgstr "[Red:Уведомление] Получено предложение дружить"
-#: ../../include/text.php:1838
-msgid "Menus"
+#: ../../include/enotify.php:271
+#, php-format
+msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s"
msgstr ""
-#: ../../include/text.php:1839
-msgid "Layouts"
+#: ../../include/enotify.php:272
+#, php-format
+msgid ""
+"%1$s, you've received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from "
+"%4$s."
msgstr ""
-#: ../../include/text.php:1840
-msgid "Pages"
-msgstr ""
+#: ../../include/enotify.php:278
+msgid "Name:"
+msgstr "ИмÑ:"
-#: ../../include/page_widgets.php:6
-msgid "New Page"
+#: ../../include/enotify.php:279
+msgid "Photo:"
+msgstr "Фото:"
+
+#: ../../include/enotify.php:282
+#, php-format
+msgid "Please visit %s to approve or reject the suggestion."
msgstr ""
-#: ../../include/auth.php:66
+#: ../../include/auth.php:69
msgid "Logged out."
msgstr "Вышел из ÑиÑтемы."
-#: ../../include/auth.php:178
+#: ../../include/auth.php:181
msgid "Failed authentication"
msgstr "Ошибка аутентификации"
-#: ../../include/auth.php:187
+#: ../../include/auth.php:190
msgid "Login failed."
msgstr "Ðе удалоÑÑŒ войти."
#: ../../include/contact_widgets.php:14
#, php-format
-msgid "You have %1$.0f of %2$.0f allowed connections."
-msgstr ""
-
-#: ../../include/contact_widgets.php:20
-msgid "Add New Connection"
-msgstr "Добавить новый контакт"
-
-#: ../../include/contact_widgets.php:21
-msgid "Enter the channel address"
-msgstr "Введите Ð°Ð´Ñ€ÐµÑ ÐºÐ°Ð½Ð°Ð»Ð°"
-
-#: ../../include/contact_widgets.php:22
-msgid "Example: bob@example.com, http://example.com/barbara"
-msgstr "Пример: bob@example.com, http://example.com/barbara"
-
-#: ../../include/contact_widgets.php:38
-#, php-format
msgid "%d invitation available"
msgid_plural "%d invitations available"
msgstr[0] "имеетÑÑ %d приглашение"
msgstr[1] "имеютÑÑ %d приглашениÑ"
msgstr[2] "имеетÑÑ %d приглашений"
-#: ../../include/contact_widgets.php:44
+#: ../../include/contact_widgets.php:20
msgid "Find Channels"
msgstr "ПоиÑк контактов"
-#: ../../include/contact_widgets.php:45
+#: ../../include/contact_widgets.php:21
msgid "Enter name or interest"
msgstr "Впишите Ð¸Ð¼Ñ Ð¸Ð»Ð¸ интереÑ"
-#: ../../include/contact_widgets.php:46
+#: ../../include/contact_widgets.php:22
msgid "Connect/Follow"
msgstr "Подключить/Ñледовать"
-#: ../../include/contact_widgets.php:47
+#: ../../include/contact_widgets.php:23
msgid "Examples: Robert Morgenstein, Fishing"
msgstr "Примеры: Владимир Ильич, Революционер"
-#: ../../include/contact_widgets.php:48 ../../mod/directory.php:182
-#: ../../mod/directory.php:187 ../../mod/connections.php:666
+#: ../../include/contact_widgets.php:24 ../../mod/directory.php:205
+#: ../../mod/directory.php:210 ../../mod/connections.php:355
msgid "Find"
msgstr "ПоиÑк"
-#: ../../include/contact_widgets.php:49 ../../mod/suggest.php:64
+#: ../../include/contact_widgets.php:25 ../../mod/suggest.php:59
msgid "Channel Suggestions"
msgstr "Рекомендации каналов"
-#: ../../include/contact_widgets.php:50
-msgid "Similar Interests"
-msgstr "Похожие интереÑÑ‹"
-
-#: ../../include/contact_widgets.php:51
+#: ../../include/contact_widgets.php:27
msgid "Random Profile"
msgstr "Случайные"
-#: ../../include/contact_widgets.php:52
+#: ../../include/contact_widgets.php:28
msgid "Invite Friends"
msgstr "ПриглаÑить друзей"
-#: ../../include/contact_widgets.php:79 ../../include/contact_widgets.php:113
-msgid "Everything"
-msgstr "Ð’Ñе"
-
-#: ../../include/contact_widgets.php:110
-msgid "Categories"
-msgstr "Категории"
-
-#: ../../include/contact_widgets.php:143
+#: ../../include/contact_widgets.php:120
#, php-format
msgid "%d connection in common"
msgid_plural "%d connections in common"
@@ -2070,6 +2553,31 @@ msgstr[0] "%d ÑовмеÑтный контакт"
msgstr[1] "%d ÑовмеÑтных контакта"
msgstr[2] "%d ÑовмеÑтных контактов"
+#: ../../include/page_widgets.php:6
+msgid "New Page"
+msgstr "ÐÐ¾Ð²Ð°Ñ Ñтраница"
+
+#: ../../include/page_widgets.php:8 ../../include/ItemObject.php:96
+#: ../../mod/thing.php:229 ../../mod/webpages.php:118 ../../mod/menu.php:55
+#: ../../mod/layouts.php:102 ../../mod/filestorage.php:171
+#: ../../mod/settings.php:569 ../../mod/editlayout.php:101
+#: ../../mod/editpost.php:98 ../../mod/blocks.php:93
+#: ../../mod/editwebpage.php:144 ../../mod/editblock.php:115
+msgid "Edit"
+msgstr "Редактировать"
+
+#: ../../include/plugin.php:475 ../../include/plugin.php:477
+msgid "Click here to upgrade."
+msgstr "Ðажмите здеÑÑŒ, чтобы обновить."
+
+#: ../../include/plugin.php:483
+msgid "This action exceeds the limits set by your subscription plan."
+msgstr ""
+
+#: ../../include/plugin.php:488
+msgid "This action is not available under your subscription plan."
+msgstr ""
+
#: ../../include/follow.php:21
msgid "Channel is blocked on this site."
msgstr "Канал блокируетÑÑ Ð½Ð° Ñтом Ñайте."
@@ -2167,156 +2675,359 @@ msgid "Can edit my \"public\" pages"
msgstr "Может редактировать мои \"публичные\" Ñтраницы"
#: ../../include/permissions.php:31
+msgid "Can source my \"public\" posts in derived channels"
+msgstr ""
+
+#: ../../include/permissions.php:31
+msgid "Somewhat advanced - very useful in open communities"
+msgstr ""
+
+#: ../../include/permissions.php:32
msgid "Can administer my channel resources"
msgstr "Может админиÑтрировать мои реÑурÑÑ‹ канала"
-#: ../../include/permissions.php:31
+#: ../../include/permissions.php:32
msgid ""
"Extremely advanced. Leave this alone unless you know what you are doing"
msgstr ""
-#: ../../include/taxonomy.php:166
-msgid "Tags"
-msgstr "ТÑги"
+#: ../../include/comanche.php:35 ../../view/theme/redbasic/php/config.php:62
+#: ../../view/theme/apw/php/config.php:176
+msgid "Default"
+msgstr "По умолчанию"
-#: ../../include/taxonomy.php:187
-msgid "have"
-msgstr "иметь"
+#: ../../include/identity.php:29 ../../mod/item.php:1143
+msgid "Unable to obtain identity information from database"
+msgstr "Ðевозможно получить идентификационную информацию из базы данных"
-#: ../../include/taxonomy.php:187
-msgid "has"
-msgstr "еÑÑ‚ÑŒ"
+#: ../../include/identity.php:62
+msgid "Empty name"
+msgstr "ПуÑтое имÑ"
-#: ../../include/taxonomy.php:188
-msgid "want"
-msgstr "хотеть"
+#: ../../include/identity.php:64
+msgid "Name too long"
+msgstr "Слишком длинное имÑ"
-#: ../../include/taxonomy.php:188
-msgid "wants"
-msgstr "хочет"
+#: ../../include/identity.php:143
+msgid "No account identifier"
+msgstr "идентификатор аккаунта отÑутÑтвует"
-#: ../../include/taxonomy.php:189 ../../include/ItemObject.php:165
-msgid "like"
-msgstr "мне нравитьÑÑ"
+#: ../../include/identity.php:153
+msgid "Nickname is required."
+msgstr "ТребуетÑÑ Ð¿Ñевдоним."
-#: ../../include/taxonomy.php:189
-msgid "likes"
-msgstr "мне нравитьÑÑ"
+#: ../../include/identity.php:167
+msgid ""
+"Nickname has unsupported characters or is already being used on this site."
+msgstr "ПÑевдоним имеет недопуÑтимые Ñимволы или уже иÑпользуетÑÑ Ð½Ð° Ñтом Ñайте."
-#: ../../include/taxonomy.php:190 ../../include/ItemObject.php:166
-msgid "dislike"
-msgstr "мне не-нравитьÑÑ"
+#: ../../include/identity.php:226
+msgid "Unable to retrieve created identity"
+msgstr ""
-#: ../../include/taxonomy.php:190
-msgid "dislikes"
-msgstr "мне не-нравитьÑÑ"
+#: ../../include/identity.php:285
+msgid "Default Profile"
+msgstr "Профиль по умолчанию"
-#: ../../include/plugin.php:440 ../../include/plugin.php:442
-msgid "Click here to upgrade."
-msgstr "Ðажмите здеÑÑŒ, чтобы обновить."
+#: ../../include/identity.php:477
+msgid "Requested channel is not available."
+msgstr "Запрашиваемый канал не доÑтупен."
-#: ../../include/plugin.php:448
-msgid "This action exceeds the limits set by your subscription plan."
+#: ../../include/identity.php:489
+msgid " Sorry, you don't have the permission to view this profile. "
msgstr ""
-#: ../../include/plugin.php:453
-msgid "This action is not available under your subscription plan."
-msgstr ""
+#: ../../include/identity.php:524 ../../mod/webpages.php:8
+#: ../../mod/connect.php:13 ../../mod/layouts.php:8
+#: ../../mod/achievements.php:8 ../../mod/filestorage.php:40
+#: ../../mod/blocks.php:10 ../../mod/profile.php:16
+msgid "Requested profile is not available."
+msgstr "Запрашиваемый профиль не доÑтупен."
-#: ../../include/ItemObject.php:87 ../../mod/photos.php:945
-msgid "Private Message"
-msgstr "Личное Ñообщение"
+#: ../../include/identity.php:639 ../../mod/profiles.php:615
+msgid "Change profile photo"
+msgstr "Изменить фотографию профилÑ"
-#: ../../include/ItemObject.php:92 ../../mod/webpages.php:98
-#: ../../mod/settings.php:683 ../../mod/menu.php:55 ../../mod/layouts.php:89
-#: ../../mod/editlayout.php:101 ../../mod/editwebpage.php:120
-#: ../../mod/blocks.php:92 ../../mod/editpost.php:94
-#: ../../mod/editblock.php:115
-msgid "Edit"
-msgstr "Редактировать"
+#: ../../include/identity.php:645
+msgid "Profiles"
+msgstr "Профили"
-#: ../../include/ItemObject.php:104 ../../include/conversation.php:631
-#: ../../mod/settings.php:684 ../../mod/group.php:182
-#: ../../mod/photos.php:1125 ../../mod/connections.php:344
-#: ../../mod/admin.php:640 ../../mod/filestorage.php:62
-msgid "Delete"
-msgstr "Удалить"
+#: ../../include/identity.php:645
+msgid "Manage/edit profiles"
+msgstr "Управление / Редактирование профилей"
-#: ../../include/ItemObject.php:110 ../../include/conversation.php:630
-msgid "Select"
-msgstr "Выбрать"
+#: ../../include/identity.php:646 ../../mod/profiles.php:616
+msgid "Create New Profile"
+msgstr "Создать новый профиль"
-#: ../../include/ItemObject.php:114
+#: ../../include/identity.php:649
+msgid "Edit Profile"
+msgstr "Редактировать профиль"
+
+#: ../../include/identity.php:660 ../../mod/profiles.php:627
+msgid "Profile Image"
+msgstr "Изображение профилÑ"
+
+#: ../../include/identity.php:663 ../../mod/profiles.php:630
+msgid "visible to everybody"
+msgstr "видно вÑем"
+
+#: ../../include/identity.php:664 ../../mod/profiles.php:631
+msgid "Edit visibility"
+msgstr "Редактировать видимоÑÑ‚ÑŒ"
+
+#: ../../include/identity.php:678 ../../include/identity.php:903
+#: ../../mod/directory.php:158
+msgid "Gender:"
+msgstr "Пол:"
+
+#: ../../include/identity.php:679 ../../include/identity.php:923
+#: ../../mod/directory.php:160
+msgid "Status:"
+msgstr "СтатуÑ:"
+
+#: ../../include/identity.php:680 ../../include/identity.php:934
+#: ../../mod/directory.php:162
+msgid "Homepage:"
+msgstr "ДомашнÑÑ Ñтраница:"
+
+#: ../../include/identity.php:747 ../../include/identity.php:827
+#: ../../mod/ping.php:230
+msgid "g A l F d"
+msgstr "g A l F d"
+
+#: ../../include/identity.php:748 ../../include/identity.php:828
+msgid "F d"
+msgstr "F d"
+
+#: ../../include/identity.php:793 ../../include/identity.php:868
+#: ../../mod/ping.php:252
+msgid "[today]"
+msgstr "[ÑегоднÑ]"
+
+#: ../../include/identity.php:805
+msgid "Birthday Reminders"
+msgstr "ÐÐ°Ð¿Ð¾Ð¼Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¾ ДнÑÑ… РождениÑ"
+
+#: ../../include/identity.php:806
+msgid "Birthdays this week:"
+msgstr "Дни Ð Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð½Ð° Ñтой неделе:"
+
+#: ../../include/identity.php:861
+msgid "[No description]"
+msgstr "[без опиÑаниÑ]"
+
+#: ../../include/identity.php:879
+msgid "Event Reminders"
+msgstr "ÐÐ°Ð¿Ð¾Ð¼Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¼ÐµÑ€Ð¾Ð¿Ñ€Ð¸Ñтий"
+
+#: ../../include/identity.php:880
+msgid "Events this week:"
+msgstr "МероприÑÑ‚Ð¸Ñ Ð½Ð° Ñтой неделе:"
+
+#: ../../include/identity.php:893 ../../include/identity.php:975
+#: ../../mod/profperm.php:103
+msgid "Profile"
+msgstr "Профиль"
+
+#: ../../include/identity.php:901 ../../mod/settings.php:911
+msgid "Full Name:"
+msgstr "Полное имÑ:"
+
+#: ../../include/identity.php:908
+msgid "j F, Y"
+msgstr "j F, Y"
+
+#: ../../include/identity.php:909
+msgid "j F"
+msgstr "j F"
+
+#: ../../include/identity.php:916
+msgid "Birthday:"
+msgstr "День РождениÑ:"
+
+#: ../../include/identity.php:920
+msgid "Age:"
+msgstr "ВозраÑÑ‚:"
+
+#: ../../include/identity.php:929
+#, php-format
+msgid "for %1$d %2$s"
+msgstr "Ð´Ð»Ñ %1$d %2$s"
+
+#: ../../include/identity.php:932 ../../mod/profiles.php:538
+msgid "Sexual Preference:"
+msgstr "СекÑÑƒÐ°Ð»ÑŒÐ½Ð°Ñ Ð¾Ñ€Ð¸ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ:"
+
+#: ../../include/identity.php:936 ../../mod/profiles.php:540
+msgid "Hometown:"
+msgstr "Родной город:"
+
+#: ../../include/identity.php:938
+msgid "Tags:"
+msgstr "ТÑги:"
+
+#: ../../include/identity.php:940 ../../mod/profiles.php:541
+msgid "Political Views:"
+msgstr "ПолитичеÑкие взглÑды:"
+
+#: ../../include/identity.php:942
+msgid "Religion:"
+msgstr "РелигиÑ:"
+
+#: ../../include/identity.php:944 ../../mod/directory.php:164
+msgid "About:"
+msgstr "О Ñебе:"
+
+#: ../../include/identity.php:946
+msgid "Hobbies/Interests:"
+msgstr "Хобби / интереÑÑ‹:"
+
+#: ../../include/identity.php:948 ../../mod/profiles.php:544
+msgid "Likes:"
+msgstr "Что вам нравитÑÑ:"
+
+#: ../../include/identity.php:950 ../../mod/profiles.php:545
+msgid "Dislikes:"
+msgstr "Что вам не нравитÑÑ:"
+
+#: ../../include/identity.php:953
+msgid "Contact information and Social Networks:"
+msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¸ Ñоциальные Ñети контакта:"
+
+#: ../../include/identity.php:955
+msgid "Musical interests:"
+msgstr "Музыкальные интереÑÑ‹:"
+
+#: ../../include/identity.php:957
+msgid "Books, literature:"
+msgstr "Книги, литература:"
+
+#: ../../include/identity.php:959
+msgid "Television:"
+msgstr "Телевидение:"
+
+#: ../../include/identity.php:961
+msgid "Film/dance/culture/entertainment:"
+msgstr "Кино / танцы / культура / развлечениÑ:"
+
+#: ../../include/identity.php:963
+msgid "Love/Romance:"
+msgstr "Любовь / РоманÑ:"
+
+#: ../../include/identity.php:965
+msgid "Work/employment:"
+msgstr "Работа / ЗанÑтоÑÑ‚ÑŒ:"
+
+#: ../../include/identity.php:967
+msgid "School/education:"
+msgstr "Школа / образование:"
+
+#: ../../include/items.php:201 ../../mod/like.php:55 ../../mod/group.php:68
+#: ../../mod/profperm.php:19 ../../index.php:343
+msgid "Permission denied"
+msgstr "ДоÑтуп запрещен"
+
+#: ../../include/items.php:3383 ../../mod/thing.php:74 ../../mod/admin.php:150
+#: ../../mod/admin.php:730 ../../mod/admin.php:933 ../../mod/viewsrc.php:18
+#: ../../mod/home.php:63 ../../mod/filestorage.php:18 ../../mod/display.php:32
+#: ../../mod/channel.php:182
+msgid "Item not found."
+msgstr "Элемент не найден."
+
+#: ../../include/items.php:3734 ../../mod/group.php:38 ../../mod/group.php:140
+msgid "Collection not found."
+msgstr "ÐšÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ñ Ð½Ðµ найдена."
+
+#: ../../include/items.php:3749
+msgid "Collection is empty."
+msgstr "ÐšÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ñ Ð¿ÑƒÑта."
+
+#: ../../include/items.php:3756
+#, php-format
+msgid "Collection: %s"
+msgstr "Коллекции: %s"
+
+#: ../../include/items.php:3767
+#, php-format
+msgid "Connection: %s"
+msgstr "Контакты: %s"
+
+#: ../../include/items.php:3770
+msgid "Connection not found."
+msgstr "Контакт не найден."
+
+#: ../../include/ItemObject.php:89 ../../mod/photos.php:972
+msgid "Private Message"
+msgstr "Личное Ñообщение"
+
+#: ../../include/ItemObject.php:118
msgid "save to folder"
msgstr "Ñохранить в папку"
-#: ../../include/ItemObject.php:142
+#: ../../include/ItemObject.php:146
msgid "add star"
msgstr "добавить маркировку"
-#: ../../include/ItemObject.php:143
+#: ../../include/ItemObject.php:147
msgid "remove star"
msgstr "удалить маркировку"
-#: ../../include/ItemObject.php:144
+#: ../../include/ItemObject.php:148
msgid "toggle star status"
msgstr "переключение ÑтатуÑа маркировки"
-#: ../../include/ItemObject.php:148
+#: ../../include/ItemObject.php:152
msgid "starred"
msgstr "помеченные"
-#: ../../include/ItemObject.php:159
+#: ../../include/ItemObject.php:169
msgid "add tag"
msgstr "добавить тег"
-#: ../../include/ItemObject.php:165 ../../mod/photos.php:1055
+#: ../../include/ItemObject.php:175 ../../mod/photos.php:1078
msgid "I like this (toggle)"
msgstr "мне Ñто нравитÑÑ (переключение)"
-#: ../../include/ItemObject.php:166 ../../mod/photos.php:1056
+#: ../../include/ItemObject.php:176 ../../mod/photos.php:1079
msgid "I don't like this (toggle)"
msgstr "мне Ñто не нравитÑÑ (переключение)"
-#: ../../include/ItemObject.php:168
+#: ../../include/ItemObject.php:178
msgid "Share this"
msgstr "ПоделитьÑÑ Ñтим"
-#: ../../include/ItemObject.php:168
+#: ../../include/ItemObject.php:178
msgid "share"
msgstr "поделитьÑÑ"
-#: ../../include/ItemObject.php:192 ../../include/ItemObject.php:193
+#: ../../include/ItemObject.php:202 ../../include/ItemObject.php:203
#, php-format
msgid "View %s's profile - %s"
msgstr "ПроÑмотр %s's Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ - %s"
-#: ../../include/ItemObject.php:194
+#: ../../include/ItemObject.php:204
msgid "to"
msgstr "к"
-#: ../../include/ItemObject.php:195
+#: ../../include/ItemObject.php:205
+msgid "via"
+msgstr "через"
+
+#: ../../include/ItemObject.php:206
msgid "Wall-to-Wall"
msgstr "Стена-к-Стене"
-#: ../../include/ItemObject.php:196
+#: ../../include/ItemObject.php:207
msgid "via Wall-To-Wall:"
msgstr "через Стена-к-Стене:"
-#: ../../include/ItemObject.php:206 ../../include/conversation.php:677
+#: ../../include/ItemObject.php:221
#, php-format
-msgid " from %s"
-msgstr " от %s"
-
-#: ../../include/ItemObject.php:233 ../../include/conversation.php:696
-#: ../../include/conversation.php:1092 ../../mod/photos.php:1058
-#: ../../mod/message.php:298 ../../mod/message.php:461
-#: ../../mod/editlayout.php:110 ../../mod/editwebpage.php:129
-#: ../../mod/editpost.php:103 ../../mod/editblock.php:124
-msgid "Please wait"
-msgstr "Подождите пожалуйÑта"
+msgid "Expires: %s"
+msgstr ""
-#: ../../include/ItemObject.php:254
+#: ../../include/ItemObject.php:269
#, php-format
msgid "%d comment"
msgid_plural "%d comments"
@@ -2324,325 +3035,64 @@ msgstr[0] "%d комментарий"
msgstr[1] "%d комментариÑ"
msgstr[2] "%d комментариев"
-#: ../../include/ItemObject.php:502 ../../mod/photos.php:1073
-#: ../../mod/photos.php:1157
+#: ../../include/ItemObject.php:534 ../../mod/photos.php:1097
+#: ../../mod/photos.php:1184
msgid "This is you"
msgstr "Это вы"
-#: ../../include/ItemObject.php:505 ../../mod/events.php:458
-#: ../../mod/thing.php:190 ../../mod/invite.php:153 ../../mod/setup.php:283
-#: ../../mod/setup.php:326 ../../mod/settings.php:621
-#: ../../mod/settings.php:733 ../../mod/settings.php:761
-#: ../../mod/settings.php:785 ../../mod/settings.php:856
-#: ../../mod/settings.php:1023 ../../mod/connect.php:96 ../../mod/group.php:87
-#: ../../mod/photos.php:678 ../../mod/photos.php:772 ../../mod/photos.php:1037
-#: ../../mod/photos.php:1076 ../../mod/photos.php:1160
-#: ../../mod/message.php:299 ../../mod/message.php:460
-#: ../../mod/connections.php:421 ../../mod/profiles.php:529
-#: ../../mod/admin.php:409 ../../mod/admin.php:633 ../../mod/admin.php:769
-#: ../../mod/admin.php:968 ../../mod/admin.php:1055 ../../mod/import.php:385
-#: ../../mod/crepair.php:166 ../../mod/poke.php:166 ../../mod/fsuggest.php:108
-#: ../../mod/mood.php:137 ../../view/theme/redbasic/php/config.php:136
-#: ../../view/theme/redbasic/php/config.php:154
-#: ../../view/theme/redstrap/php/config.php:131
+#: ../../include/ItemObject.php:537 ../../mod/events.php:470
+#: ../../mod/thing.php:276 ../../mod/thing.php:318 ../../mod/invite.php:156
+#: ../../mod/connedit.php:434 ../../mod/setup.php:304 ../../mod/setup.php:347
+#: ../../mod/connect.php:92 ../../mod/sources.php:97 ../../mod/sources.php:131
+#: ../../mod/admin.php:420 ../../mod/admin.php:686 ../../mod/admin.php:826
+#: ../../mod/admin.php:1025 ../../mod/admin.php:1112 ../../mod/group.php:81
+#: ../../mod/photos.php:693 ../../mod/photos.php:798 ../../mod/photos.php:1060
+#: ../../mod/photos.php:1100 ../../mod/photos.php:1187
+#: ../../mod/profiles.php:518 ../../mod/filestorage.php:132
+#: ../../mod/import.php:387 ../../mod/settings.php:507
+#: ../../mod/settings.php:619 ../../mod/settings.php:647
+#: ../../mod/settings.php:671 ../../mod/settings.php:742
+#: ../../mod/settings.php:903 ../../mod/mail.php:223 ../../mod/mail.php:335
+#: ../../mod/poke.php:166 ../../mod/fsuggest.php:108 ../../mod/mood.php:142
+#: ../../view/theme/redbasic/php/config.php:85
+#: ../../view/theme/apw/php/config.php:231
+#: ../../view/theme/blogga/view/theme/blog/config.php:67
+#: ../../view/theme/blogga/php/config.php:67
msgid "Submit"
msgstr "Отправить"
-#: ../../include/ItemObject.php:506
+#: ../../include/ItemObject.php:538
msgid "Bold"
msgstr "Жирный"
-#: ../../include/ItemObject.php:507
+#: ../../include/ItemObject.php:539
msgid "Italic"
msgstr "КурÑив"
-#: ../../include/ItemObject.php:508
+#: ../../include/ItemObject.php:540
msgid "Underline"
msgstr "Подчеркнутый"
-#: ../../include/ItemObject.php:509
+#: ../../include/ItemObject.php:541
msgid "Quote"
msgstr "Цитата"
-#: ../../include/ItemObject.php:510
+#: ../../include/ItemObject.php:542
msgid "Code"
msgstr "Код"
-#: ../../include/ItemObject.php:511
+#: ../../include/ItemObject.php:543
msgid "Image"
msgstr "Изображение"
-#: ../../include/ItemObject.php:512
+#: ../../include/ItemObject.php:544
msgid "Link"
msgstr "СÑылка"
-#: ../../include/ItemObject.php:513
+#: ../../include/ItemObject.php:545
msgid "Video"
msgstr "Видео"
-#: ../../include/ItemObject.php:514 ../../include/conversation.php:1112
-#: ../../mod/photos.php:1077 ../../mod/editlayout.php:130
-#: ../../mod/editwebpage.php:151 ../../mod/editpost.php:123
-#: ../../mod/editblock.php:145
-msgid "Preview"
-msgstr "Предварительный проÑмотр"
-
-#: ../../include/conversation.php:123
-msgid "channel"
-msgstr "канал"
-
-#: ../../include/conversation.php:161 ../../mod/like.php:134
-#, php-format
-msgid "%1$s likes %2$s's %3$s"
-msgstr "%1$s нравитÑÑ %2$s's %3$s"
-
-#: ../../include/conversation.php:164 ../../mod/like.php:136
-#, php-format
-msgid "%1$s doesn't like %2$s's %3$s"
-msgstr "%1$s не нравитÑÑ %2$s's %3$s"
-
-#: ../../include/conversation.php:201
-#, php-format
-msgid "%1$s is now connected with %2$s"
-msgstr "%1$s теперь Ñоединен Ñ %2$s"
-
-#: ../../include/conversation.php:232
-#, php-format
-msgid "%1$s poked %2$s"
-msgstr "%1$s подпихнул %2$s"
-
-#: ../../include/conversation.php:254 ../../mod/mood.php:63
-#, php-format
-msgid "%1$s is currently %2$s"
-msgstr "%1$s в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ %2$s"
-
-#: ../../include/conversation.php:655
-#, php-format
-msgid "View %s's profile @ %s"
-msgstr "ПроÑмотр %s's Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ @ %s"
-
-#: ../../include/conversation.php:694
-msgid "View in context"
-msgstr "Показать в контекÑте"
-
-#: ../../include/conversation.php:824
-msgid "Loading..."
-msgstr "Загрузка..."
-
-#: ../../include/conversation.php:825
-msgid "Delete Selected Items"
-msgstr "Удалить выбранные Ñлементы"
-
-#: ../../include/conversation.php:913
-msgid "Follow Thread"
-msgstr "Следобать теме"
-
-#: ../../include/conversation.php:982
-#, php-format
-msgid "%s likes this."
-msgstr "%s нравитÑÑ Ñто."
-
-#: ../../include/conversation.php:982
-#, php-format
-msgid "%s doesn't like this."
-msgstr "%s не нравитÑÑ Ñто."
-
-#: ../../include/conversation.php:986
-#, php-format
-msgid "<span %1$s>%2$d people</span> like this."
-msgstr "<span %1$s>%2$d чел.</span> нравитÑÑ Ñто."
-
-#: ../../include/conversation.php:988
-#, php-format
-msgid "<span %1$s>%2$d people</span> don't like this."
-msgstr "<span %1$s>%2$d чел.</span> не нравитÑÑ Ñто."
-
-#: ../../include/conversation.php:994
-msgid "and"
-msgstr "и"
-
-#: ../../include/conversation.php:997
-#, php-format
-msgid ", and %d other people"
-msgstr ", и %d другие люди"
-
-#: ../../include/conversation.php:998
-#, php-format
-msgid "%s like this."
-msgstr "%s нравитÑÑ Ñто."
-
-#: ../../include/conversation.php:998
-#, php-format
-msgid "%s don't like this."
-msgstr "%s не нравитÑÑ Ñто."
-
-#: ../../include/conversation.php:1048
-msgid "Visible to <strong>everybody</strong>"
-msgstr "Видно Ð´Ð»Ñ <strong>вÑех</strong>"
-
-#: ../../include/conversation.php:1049 ../../mod/message.php:253
-#: ../../mod/message.php:365
-msgid "Please enter a link URL:"
-msgstr "ПожалуйÑта, введите URL ÑÑылки:"
-
-#: ../../include/conversation.php:1050
-msgid "Please enter a video link/URL:"
-msgstr "ПожалуйÑта, введите URL видео-ÑÑылки:"
-
-#: ../../include/conversation.php:1051
-msgid "Please enter an audio link/URL:"
-msgstr "ПожалуйÑта, введите URL аудио-ÑÑылки:"
-
-#: ../../include/conversation.php:1052
-msgid "Tag term:"
-msgstr "Теги:"
-
-#: ../../include/conversation.php:1053 ../../mod/filer.php:35
-msgid "Save to Folder:"
-msgstr "Сохранить в папку:"
-
-#: ../../include/conversation.php:1054
-msgid "Where are you right now?"
-msgstr "Где вы ÑейчаÑ?"
-
-#: ../../include/conversation.php:1069 ../../mod/photos.php:1057
-msgid "Share"
-msgstr "ПоделитьÑÑ"
-
-#: ../../include/conversation.php:1071
-msgid "Page link title"
-msgstr "СÑылка заголовока Ñтраницы"
-
-#: ../../include/conversation.php:1073 ../../mod/message.php:295
-#: ../../mod/message.php:457 ../../mod/editlayout.php:102
-#: ../../mod/editwebpage.php:121 ../../mod/editpost.php:95
-#: ../../mod/editblock.php:116
-msgid "Upload photo"
-msgstr "Загрузить фотографию"
-
-#: ../../include/conversation.php:1074
-msgid "upload photo"
-msgstr "загрузить фотографию"
-
-#: ../../include/conversation.php:1075 ../../mod/message.php:296
-#: ../../mod/message.php:458 ../../mod/editlayout.php:103
-#: ../../mod/editwebpage.php:122 ../../mod/editpost.php:96
-#: ../../mod/editblock.php:117
-msgid "Attach file"
-msgstr "Прикрепить файл"
-
-#: ../../include/conversation.php:1076
-msgid "attach file"
-msgstr "прикрепить файл"
-
-#: ../../include/conversation.php:1077 ../../mod/message.php:297
-#: ../../mod/message.php:459 ../../mod/editlayout.php:104
-#: ../../mod/editwebpage.php:123 ../../mod/editpost.php:97
-#: ../../mod/editblock.php:118
-msgid "Insert web link"
-msgstr "Ð’Ñтавить веб-ÑÑылку"
-
-#: ../../include/conversation.php:1078
-msgid "web link"
-msgstr "веб-ÑÑылка"
-
-#: ../../include/conversation.php:1079
-msgid "Insert video link"
-msgstr "Ð’Ñтавить видео-ÑÑылку"
-
-#: ../../include/conversation.php:1080
-msgid "video link"
-msgstr "видео-ÑÑылка"
-
-#: ../../include/conversation.php:1081
-msgid "Insert audio link"
-msgstr "Ð’Ñтавить аудио-ÑÑылку"
-
-#: ../../include/conversation.php:1082
-msgid "audio link"
-msgstr "аудио-ÑÑылка"
-
-#: ../../include/conversation.php:1083 ../../mod/editlayout.php:108
-#: ../../mod/editwebpage.php:127 ../../mod/editpost.php:101
-#: ../../mod/editblock.php:122
-msgid "Set your location"
-msgstr "Указание Ñвоего раÑположениÑ"
-
-#: ../../include/conversation.php:1084
-msgid "set location"
-msgstr "указание раÑположениÑ"
-
-#: ../../include/conversation.php:1085 ../../mod/editlayout.php:109
-#: ../../mod/editwebpage.php:128 ../../mod/editpost.php:102
-#: ../../mod/editblock.php:123
-msgid "Clear browser location"
-msgstr "Стереть указание раÑположениÑ"
-
-#: ../../include/conversation.php:1086
-msgid "clear location"
-msgstr "Ñтереть указание раÑположениÑ"
-
-#: ../../include/conversation.php:1088 ../../mod/editlayout.php:122
-#: ../../mod/editwebpage.php:143 ../../mod/editpost.php:115
-#: ../../mod/editblock.php:137
-msgid "Set title"
-msgstr "Заголовок"
-
-#: ../../include/conversation.php:1091 ../../mod/editlayout.php:124
-#: ../../mod/editwebpage.php:145 ../../mod/editpost.php:117
-#: ../../mod/editblock.php:139
-msgid "Categories (comma-separated list)"
-msgstr "Категории (ÑпиÑок через запÑтую)"
-
-#: ../../include/conversation.php:1093 ../../mod/editlayout.php:111
-#: ../../mod/editwebpage.php:130 ../../mod/editpost.php:104
-#: ../../mod/editblock.php:125
-msgid "Permission settings"
-msgstr "ÐаÑтройки разрешений"
-
-#: ../../include/conversation.php:1094
-msgid "permissions"
-msgstr "разрешениÑ"
-
-#: ../../include/conversation.php:1102 ../../mod/editlayout.php:119
-#: ../../mod/editwebpage.php:138 ../../mod/editpost.php:112
-#: ../../mod/editblock.php:134
-msgid "Public post"
-msgstr "Публичное Ñообщение"
-
-#: ../../include/conversation.php:1104 ../../mod/editlayout.php:125
-#: ../../mod/editwebpage.php:146 ../../mod/editpost.php:118
-#: ../../mod/editblock.php:140
-msgid "Example: bob@example.com, mary@example.com"
-msgstr "Пример: bob@example.com, mary@example.com"
-
-#: ../../include/items.php:157 ../../mod/like.php:55 ../../mod/group.php:74
-#: ../../mod/profperm.php:28 ../../index.php:339
-msgid "Permission denied"
-msgstr "ДоÑтуп запрещен"
-
-#: ../../include/items.php:3308 ../../mod/page.php:66 ../../mod/viewsrc.php:18
-#: ../../mod/home.php:64 ../../mod/admin.php:142 ../../mod/admin.php:677
-#: ../../mod/admin.php:876 ../../mod/display.php:32
-msgid "Item not found."
-msgstr "Элемент не найден."
-
-#: ../../include/items.php:3480
-msgid "Archives"
-msgstr "Ðрхивы"
-
-#: ../../include/items.php:3641 ../../mod/group.php:44 ../../mod/group.php:146
-msgid "Collection not found."
-msgstr "ÐšÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ñ Ð½Ðµ найдена."
-
-#: ../../include/items.php:3651
-msgid "Collection has no members."
-msgstr "Ð’ коллекции нет ни одного пользователÑ."
-
-#: ../../include/items.php:3667
-msgid "Connection not found."
-msgstr "Контакт не найден."
-
#: ../../include/security.php:49
msgid "Welcome "
msgstr "Добро пожаловать"
@@ -2655,21 +3105,21 @@ msgstr "Загрузите пожалуйÑта фотографию профиÐ
msgid "Welcome back "
msgstr "Добро пожаловать"
-#: ../../include/security.php:357
+#: ../../include/security.php:360
msgid ""
"The form security token was not correct. This probably happened because the "
"form has been opened for too long (>3 hours) before submitting it."
msgstr ""
-#: ../../include/zot.php:423
+#: ../../include/zot.php:545
msgid "Invalid data packet"
msgstr ""
-#: ../../include/zot.php:433
+#: ../../include/zot.php:555
msgid "Unable to verify channel signature"
msgstr "Ðевозможно проверить Ñигнатуру канала"
-#: ../../include/zot.php:571
+#: ../../include/zot.php:732
#, php-format
msgid "Unable to verify site signature for %s"
msgstr ""
@@ -2678,147 +3128,159 @@ msgstr ""
msgid "No channel."
msgstr "Ðе канал."
-#: ../../mod/common.php:47
+#: ../../mod/common.php:39
msgid "Common connections"
msgstr "Общие контакты"
-#: ../../mod/common.php:52
+#: ../../mod/common.php:44
msgid "No connections in common."
msgstr "Общих контактов нет."
-#: ../../mod/events.php:66
+#: ../../mod/events.php:72
msgid "Event title and start time are required."
msgstr "Ðазвание ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð¸ Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° требуетÑÑ."
-#: ../../mod/events.php:281
+#: ../../mod/events.php:287
msgid "l, F j"
msgstr "l, F j"
-#: ../../mod/events.php:303
+#: ../../mod/events.php:309
msgid "Edit event"
msgstr "Редактировать мероприÑтие"
-#: ../../mod/events.php:349
+#: ../../mod/events.php:355
msgid "Create New Event"
msgstr "Создать новое мероприÑтие"
-#: ../../mod/events.php:350
+#: ../../mod/events.php:356
msgid "Previous"
msgstr "ПредыдущаÑ"
-#: ../../mod/events.php:351 ../../mod/setup.php:237
+#: ../../mod/events.php:357 ../../mod/setup.php:258
msgid "Next"
msgstr "СледующаÑ"
-#: ../../mod/events.php:425
+#: ../../mod/events.php:429
msgid "hour:minute"
msgstr "чаÑÑ‹:минуты"
-#: ../../mod/events.php:435
+#: ../../mod/events.php:448
msgid "Event details"
msgstr "Детали мероприÑтиÑ"
-#: ../../mod/events.php:436
+#: ../../mod/events.php:449
#, php-format
msgid "Format is %s %s. Starting date and Title are required."
msgstr "Формат: %s %s. Дата начала и название необходимы."
-#: ../../mod/events.php:438
+#: ../../mod/events.php:451
msgid "Event Starts:"
msgstr "Ðачало мероприÑтий:"
-#: ../../mod/events.php:438 ../../mod/events.php:452
+#: ../../mod/events.php:451 ../../mod/events.php:465
msgid "Required"
msgstr "Ðеобходимо"
-#: ../../mod/events.php:441
+#: ../../mod/events.php:454
msgid "Finish date/time is not known or not relevant"
msgstr "Дата Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ / Ð²Ñ€ÐµÐ¼Ñ Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Ð½Ðµ извеÑтны или не релевантны"
-#: ../../mod/events.php:443
+#: ../../mod/events.php:456
msgid "Event Finishes:"
msgstr "\t\nКонец мероприÑтий:"
-#: ../../mod/events.php:446
+#: ../../mod/events.php:459
msgid "Adjust for viewer timezone"
msgstr "Отрегулируйте Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра чаÑовых поÑÑов"
-#: ../../mod/events.php:448
+#: ../../mod/events.php:461
msgid "Description:"
msgstr "ОпиÑание:"
-#: ../../mod/events.php:452
+#: ../../mod/events.php:465
msgid "Title:"
msgstr "Заголовок:"
-#: ../../mod/events.php:454
+#: ../../mod/events.php:467
msgid "Share this event"
msgstr "ПоделитьÑÑ Ñтим мероприÑтием"
-#: ../../mod/thing.php:109
+#: ../../mod/thing.php:94
+msgid "Thing updated"
+msgstr ""
+
+#: ../../mod/thing.php:153
msgid "Object store: failed"
msgstr ""
-#: ../../mod/thing.php:113
-msgid "thing/stuff added"
+#: ../../mod/thing.php:157
+msgid "Thing added"
msgstr ""
-#: ../../mod/thing.php:129
+#: ../../mod/thing.php:175
#, php-format
msgid "OBJ: %1$s %2$s %3$s"
msgstr ""
-#: ../../mod/thing.php:175
-msgid "not yet implemented."
-msgstr "еще не реализовано."
+#: ../../mod/thing.php:228
+msgid "Show Thing"
+msgstr ""
-#: ../../mod/thing.php:181
-msgid "Add Stuff to your Profile"
+#: ../../mod/thing.php:235
+msgid "item not found."
+msgstr "Элемент не найден."
+
+#: ../../mod/thing.php:263
+msgid "Edit Thing"
msgstr ""
-#: ../../mod/thing.php:183
+#: ../../mod/thing.php:265 ../../mod/thing.php:311
msgid "Select a profile"
msgstr "Выберите профиль"
-#: ../../mod/thing.php:185
+#: ../../mod/thing.php:267 ../../mod/thing.php:313
msgid "Select a category of stuff. e.g. I ______ something"
msgstr ""
-#: ../../mod/thing.php:187
-msgid "Name of thing or stuff e.g. something"
+#: ../../mod/thing.php:270 ../../mod/thing.php:315
+msgid "Name of thing e.g. something"
msgstr ""
-#: ../../mod/thing.php:188
-msgid "URL of thing or stuff (optional)"
+#: ../../mod/thing.php:272 ../../mod/thing.php:316
+msgid "URL of thing (optional)"
msgstr ""
-#: ../../mod/thing.php:189
-msgid "URL for photo of thing or stuff (optional)"
+#: ../../mod/thing.php:274 ../../mod/thing.php:317
+msgid "URL for photo of thing (optional)"
+msgstr ""
+
+#: ../../mod/thing.php:309
+msgid "Add Thing to your Profile"
msgstr ""
#: ../../mod/invite.php:25
msgid "Total invitation limit exceeded."
msgstr ""
-#: ../../mod/invite.php:47
+#: ../../mod/invite.php:49
#, php-format
msgid "%s : Not a valid email address."
msgstr "%s : Ðе дейÑтвительный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты."
-#: ../../mod/invite.php:74
+#: ../../mod/invite.php:76
msgid "Please join us on Red"
msgstr "ПожалуйÑта, приÑоединÑйтеÑÑŒ к нам в Red"
-#: ../../mod/invite.php:85
+#: ../../mod/invite.php:87
msgid "Invitation limit exceeded. Please contact your site administrator."
msgstr ""
-#: ../../mod/invite.php:90
+#: ../../mod/invite.php:92
#, php-format
msgid "%s : Message delivery failed."
msgstr "%s : ДоÑтавка ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð½Ðµ удалаÑÑŒ."
-#: ../../mod/invite.php:94
+#: ../../mod/invite.php:96
#, php-format
msgid "%d message sent."
msgid_plural "%d messages sent."
@@ -2826,65 +3288,380 @@ msgstr[0] "%d Ñообщение отправленно."
msgstr[1] "%d ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ð¾."
msgstr[2] "%d Ñообщений отправленно."
-#: ../../mod/invite.php:113
+#: ../../mod/invite.php:115
msgid "You have no more invitations available"
msgstr "У Ð²Ð°Ñ Ð±Ð¾Ð»ÑŒÑˆÐµ нет приглашений"
-#: ../../mod/invite.php:139
+#: ../../mod/invite.php:141
msgid "Send invitations"
msgstr "ПоÑлать приглашениÑ"
-#: ../../mod/invite.php:140
+#: ../../mod/invite.php:142
msgid "Enter email addresses, one per line:"
msgstr "Введите адреÑа Ñлектронной почты, по одному на Ñтроку:"
-#: ../../mod/invite.php:141 ../../mod/message.php:292
-#: ../../mod/message.php:453
+#: ../../mod/invite.php:143 ../../mod/mail.php:216 ../../mod/mail.php:328
msgid "Your message:"
msgstr "Ваше Ñообщение:"
-#: ../../mod/invite.php:142
+#: ../../mod/invite.php:144
msgid ""
"You are cordially invited to join me and some other close friends on the Red"
-" Matrix - a revolutionary new decentralised social and information tool."
+" Matrix - a revolutionary new decentralised communication and information "
+"tool."
msgstr ""
-#: ../../mod/invite.php:144
+#: ../../mod/invite.php:146
msgid "You will need to supply this invitation code: $invite_code"
msgstr ""
-#: ../../mod/invite.php:146
+#: ../../mod/invite.php:147
msgid "Please visit my channel at"
msgstr "ПожалуйÑта, поÑетите мой канал на"
-#: ../../mod/invite.php:150
+#: ../../mod/invite.php:151
msgid ""
-"Once you have registered, please connect with my Red Matrix channel address:"
+"Once you have registered (on ANY Red Matrix site - they are all inter-"
+"connected), please connect with my Red Matrix channel address:"
+msgstr ""
+
+#: ../../mod/invite.php:153
+msgid "Click the [Register] link on the following page to join."
msgstr ""
-#: ../../mod/invite.php:152
+#: ../../mod/invite.php:155
msgid ""
"For more information about the Red Matrix Project and why it has the "
"potential to change the internet as we know it, please visit "
"http://getzot.com"
msgstr ""
-#: ../../mod/allfriends.php:35
+#: ../../mod/connedit.php:49 ../../mod/connections.php:37
+msgid "Could not access contact record."
+msgstr ""
+
+#: ../../mod/connedit.php:63 ../../mod/connections.php:51
+msgid "Could not locate selected profile."
+msgstr ""
+
+#: ../../mod/connedit.php:104 ../../mod/connections.php:92
+msgid "Connection updated."
+msgstr "Канал обновлен."
+
+#: ../../mod/connedit.php:106 ../../mod/connections.php:94
+msgid "Failed to update connection record."
+msgstr ""
+
+#: ../../mod/connedit.php:201
+msgid "Could not access address book record."
+msgstr ""
+
+#: ../../mod/connedit.php:215
+msgid "Refresh failed - channel is currently unavailable."
+msgstr ""
+
+#: ../../mod/connedit.php:222
+msgid "Channel has been unblocked"
+msgstr "Канал разблокирован"
+
+#: ../../mod/connedit.php:223
+msgid "Channel has been blocked"
+msgstr "Канал заблокирован"
+
+#: ../../mod/connedit.php:227 ../../mod/connedit.php:239
+#: ../../mod/connedit.php:251 ../../mod/connedit.php:263
+#: ../../mod/connedit.php:278
+msgid "Unable to set address book parameters."
+msgstr ""
+
+#: ../../mod/connedit.php:234
+msgid "Channel has been unignored"
+msgstr "Канал не проигнорирован"
+
+#: ../../mod/connedit.php:235
+msgid "Channel has been ignored"
+msgstr "Канал проигнорирован"
+
+#: ../../mod/connedit.php:246
+msgid "Channel has been unarchived"
+msgstr "Канал разархивирован"
+
+#: ../../mod/connedit.php:247
+msgid "Channel has been archived"
+msgstr "Канал заархивирован"
+
+#: ../../mod/connedit.php:258
+msgid "Channel has been unhidden"
+msgstr "Канал открыт"
+
+#: ../../mod/connedit.php:259
+msgid "Channel has been hidden"
+msgstr "Канал Ñкрыт"
+
+#: ../../mod/connedit.php:273
+msgid "Channel has been approved"
+msgstr "Канал одобрен"
+
+#: ../../mod/connedit.php:274
+msgid "Channel has been unapproved"
+msgstr "Канал не одобрен"
+
+#: ../../mod/connedit.php:292
+msgid "Contact has been removed."
+msgstr "Канал удален."
+
+#: ../../mod/connedit.php:312
#, php-format
-msgid "Friends of %s"
-msgstr "Ð”Ñ€ÑƒÐ·ÑŒÑ %s"
+msgid "View %s's profile"
+msgstr "ПроÑмотр %s's профилÑ"
-#: ../../mod/allfriends.php:41
-msgid "No friends to display."
-msgstr "Ðет друзей Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°."
+#: ../../mod/connedit.php:316
+msgid "Refresh Permissions"
+msgstr "Обновить разрешениÑ"
-#: ../../mod/webpages.php:8 ../../mod/connect.php:13 ../../mod/layouts.php:8
-#: ../../mod/blocks.php:10 ../../mod/profile.php:8 ../../mod/filestorage.php:8
-#: ../../boot.php:1602
-msgid "Requested profile is not available."
-msgstr "Запрашиваемый профиль не доÑтупен."
+#: ../../mod/connedit.php:319
+msgid "Fetch updated permissions"
+msgstr ""
+
+#: ../../mod/connedit.php:323
+msgid "Recent Activity"
+msgstr ""
-#: ../../mod/webpages.php:101 ../../mod/layouts.php:92 ../../mod/blocks.php:95
+#: ../../mod/connedit.php:326
+msgid "View recent posts and comments"
+msgstr ""
+
+#: ../../mod/connedit.php:330 ../../mod/connedit.php:472
+#: ../../mod/admin.php:695
+msgid "Unblock"
+msgstr "Разрешить"
+
+#: ../../mod/connedit.php:330 ../../mod/connedit.php:472
+#: ../../mod/admin.php:694
+msgid "Block"
+msgstr "Заблокировать"
+
+#: ../../mod/connedit.php:333
+msgid "Block or Unblock this connection"
+msgstr "Запретить или разрешить Ñтот канал"
+
+#: ../../mod/connedit.php:337 ../../mod/connedit.php:473
+msgid "Unignore"
+msgstr "Ðе игнорировать"
+
+#: ../../mod/connedit.php:337 ../../mod/connedit.php:473
+#: ../../mod/notifications.php:51
+msgid "Ignore"
+msgstr "Игнорировать"
+
+#: ../../mod/connedit.php:340
+msgid "Ignore or Unignore this connection"
+msgstr "Игнорировать или не игнорировать Ñтот канал"
+
+#: ../../mod/connedit.php:343
+msgid "Unarchive"
+msgstr "Разархивировать"
+
+#: ../../mod/connedit.php:343
+msgid "Archive"
+msgstr "Заархивировать"
+
+#: ../../mod/connedit.php:346
+msgid "Archive or Unarchive this connection"
+msgstr " Заархивировать или разархивировать Ñтот канал"
+
+#: ../../mod/connedit.php:349
+msgid "Unhide"
+msgstr "Показать"
+
+#: ../../mod/connedit.php:349
+msgid "Hide"
+msgstr "Скрыть"
+
+#: ../../mod/connedit.php:352
+msgid "Hide or Unhide this connection"
+msgstr "Скрыть или показывать Ñтот канал"
+
+#: ../../mod/connedit.php:359
+msgid "Delete this connection"
+msgstr "Удалить Ñтот контакт"
+
+#: ../../mod/connedit.php:392
+msgid "Unknown"
+msgstr "ÐеизвеÑтный"
+
+#: ../../mod/connedit.php:402 ../../mod/connedit.php:431
+msgid "Approve this connection"
+msgstr "Утвердить Ñтот контакт"
+
+#: ../../mod/connedit.php:402
+msgid "Accept connection to allow communication"
+msgstr ""
+
+#: ../../mod/connedit.php:418
+msgid "Automatic Permissions Settings"
+msgstr "ÐаÑтройки автоматичеÑких разрешений"
+
+#: ../../mod/connedit.php:418
+#, php-format
+msgid "Connections: settings for %s"
+msgstr ""
+
+#: ../../mod/connedit.php:422
+msgid ""
+"When receiving a channel introduction, any permissions provided here will be"
+" applied to the new connection automatically and the introduction approved. "
+"Leave this page if you do not wish to use this feature."
+msgstr ""
+
+#: ../../mod/connedit.php:424
+msgid "Slide to adjust your degree of friendship"
+msgstr ""
+
+#: ../../mod/connedit.php:430
+msgid "inherited"
+msgstr "унаÑледованный"
+
+#: ../../mod/connedit.php:432
+msgid "Connection has no individual permissions!"
+msgstr ""
+
+#: ../../mod/connedit.php:433
+msgid ""
+"This may be appropriate based on your <a href=\"settings\">privacy "
+"settings</a>, though you may wish to review the \"Advanced Permissions\"."
+msgstr ""
+
+#: ../../mod/connedit.php:435
+msgid "Profile Visibility"
+msgstr "ВидимоÑÑ‚ÑŒ профилÑ"
+
+#: ../../mod/connedit.php:436
+#, php-format
+msgid ""
+"Please choose the profile you would like to display to %s when viewing your "
+"profile securely."
+msgstr ""
+
+#: ../../mod/connedit.php:437
+msgid "Contact Information / Notes"
+msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ / ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð¾ канале"
+
+#: ../../mod/connedit.php:438
+msgid "Edit contact notes"
+msgstr "Редактировать Ð¿Ñ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð°"
+
+#: ../../mod/connedit.php:440
+msgid "Their Settings"
+msgstr "Их наÑтройки"
+
+#: ../../mod/connedit.php:441
+msgid "My Settings"
+msgstr "Мои наÑтройки"
+
+#: ../../mod/connedit.php:443
+msgid "Forum Members"
+msgstr "УчаÑтники форума"
+
+#: ../../mod/connedit.php:444
+msgid "Soapbox"
+msgstr "Soapbox"
+
+#: ../../mod/connedit.php:445
+msgid "Full Sharing"
+msgstr "Полный обмен"
+
+#: ../../mod/connedit.php:446
+msgid "Cautious Sharing"
+msgstr ""
+
+#: ../../mod/connedit.php:447
+msgid "Follow Only"
+msgstr "Только Ñледовать"
+
+#: ../../mod/connedit.php:448
+msgid "Individual Permissions"
+msgstr "Индивидуальные разрешениÑ"
+
+#: ../../mod/connedit.php:449
+msgid ""
+"Some permissions may be inherited from your channel <a "
+"href=\"settings\">privacy settings</a>, which have higher priority. Changing"
+" those inherited settings on this page will have no effect."
+msgstr ""
+
+#: ../../mod/connedit.php:450
+msgid "Advanced Permissions"
+msgstr "Дополнительные разрешениÑ"
+
+#: ../../mod/connedit.php:451
+msgid "Quick Links"
+msgstr "БыÑтрые ÑÑылки"
+
+#: ../../mod/connedit.php:455
+#, php-format
+msgid "Visit %s's profile - %s"
+msgstr "ПоÑетить %s's ​​профиль - %s"
+
+#: ../../mod/connedit.php:456
+msgid "Block/Unblock contact"
+msgstr "Запретить/разрешить контакт"
+
+#: ../../mod/connedit.php:457
+msgid "Ignore contact"
+msgstr "Игнорировать контакт"
+
+#: ../../mod/connedit.php:458
+msgid "Repair URL settings"
+msgstr "Ремонт наÑтройки URL"
+
+#: ../../mod/connedit.php:459
+msgid "View conversations"
+msgstr "ПроÑмотр разговоров"
+
+#: ../../mod/connedit.php:461
+msgid "Delete contact"
+msgstr "Удалить контакт"
+
+#: ../../mod/connedit.php:464
+msgid "Last update:"
+msgstr "ПоÑледнее обновление:"
+
+#: ../../mod/connedit.php:466
+msgid "Update public posts"
+msgstr "Обновить публичные ÑообщениÑ"
+
+#: ../../mod/connedit.php:468
+msgid "Update now"
+msgstr "Обновить ÑейчаÑ"
+
+#: ../../mod/connedit.php:474
+msgid "Currently blocked"
+msgstr "Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½"
+
+#: ../../mod/connedit.php:475
+msgid "Currently ignored"
+msgstr "Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€ÑƒÑŽÑ‚ÑÑ"
+
+#: ../../mod/connedit.php:476
+msgid "Currently archived"
+msgstr "Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹"
+
+#: ../../mod/connedit.php:477
+msgid "Currently pending"
+msgstr "Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð² ожидании"
+
+#: ../../mod/connedit.php:478
+msgid "Hide this contact from others"
+msgstr "Скрыть Ñтот канал от других"
+
+#: ../../mod/connedit.php:478
+msgid ""
+"Replies/likes to your public posts <strong>may</strong> still be visible"
+msgstr ""
+
+#: ../../mod/webpages.php:121 ../../mod/layouts.php:105
+#: ../../mod/blocks.php:96
msgid "View"
msgstr "ПроÑмотр"
@@ -2906,24 +3683,16 @@ msgid ""
" and/or create new posts for you?"
msgstr ""
-#: ../../mod/api.php:105 ../../mod/settings.php:978 ../../mod/settings.php:983
-#: ../../mod/settings.php:1006 ../../mod/settings.php:1008
-#: ../../mod/settings.php:1009 ../../mod/settings.php:1010
-#: ../../mod/profiles.php:506
+#: ../../mod/api.php:105 ../../mod/profiles.php:495 ../../mod/settings.php:865
+#: ../../mod/settings.php:870
msgid "Yes"
msgstr "Да"
-#: ../../mod/api.php:106 ../../mod/settings.php:978 ../../mod/settings.php:983
-#: ../../mod/settings.php:1006 ../../mod/settings.php:1008
-#: ../../mod/settings.php:1009 ../../mod/settings.php:1010
-#: ../../mod/profiles.php:507
+#: ../../mod/api.php:106 ../../mod/profiles.php:496 ../../mod/settings.php:865
+#: ../../mod/settings.php:870
msgid "No"
msgstr "Ðет"
-#: ../../mod/lastpost.php:16 ../../mod/channel.php:16
-msgid "You must be logged in to see this page."
-msgstr ""
-
#: ../../mod/apps.php:8
msgid "No installed applications."
msgstr "Ðет уÑтановленных приложений."
@@ -2936,350 +3705,369 @@ msgstr "ПриложениÑ"
msgid "Invalid item."
msgstr "ÐедейÑтвительный Ñлемент."
-#: ../../mod/page.php:47 ../../mod/chanview.php:78 ../../mod/home.php:51
-#: ../../mod/magic.php:63 ../../mod/wall_upload.php:35
+#: ../../mod/page.php:47 ../../mod/chanview.php:77 ../../mod/home.php:50
+#: ../../mod/wall_upload.php:35
msgid "Channel not found."
msgstr "Канал не найден."
+#: ../../mod/page.php:83 ../../mod/help.php:71 ../../mod/display.php:100
+#: ../../index.php:227
+msgid "Page not found."
+msgstr "Страница не найдена."
+
#: ../../mod/attach.php:9
msgid "Item not available."
msgstr "Элемент недоÑтупен."
-#: ../../mod/setup.php:142
+#: ../../mod/setup.php:161
msgid "Red Matrix Server - Setup"
msgstr "Red Matrix Сервер - УÑтановка"
-#: ../../mod/setup.php:148
+#: ../../mod/setup.php:167
msgid "Could not connect to database."
msgstr "Ðе удалоÑÑŒ подключитьÑÑ Ðº Ñерверу баз данных."
-#: ../../mod/setup.php:152
+#: ../../mod/setup.php:171
msgid ""
"Could not connect to specified site URL. Possible SSL certificate or DNS "
"issue."
msgstr ""
-#: ../../mod/setup.php:157
+#: ../../mod/setup.php:176
msgid "Could not create table."
msgstr "Ðе удалоÑÑŒ Ñоздать таблицу."
-#: ../../mod/setup.php:163
+#: ../../mod/setup.php:182
msgid "Your site database has been installed."
msgstr "Ваша база данных уÑтановлена."
-#: ../../mod/setup.php:168
+#: ../../mod/setup.php:187
msgid ""
"You may need to import the file \"install/database.sql\" manually using "
"phpmyadmin or mysql."
msgstr ""
-#: ../../mod/setup.php:169 ../../mod/setup.php:236 ../../mod/setup.php:565
+#: ../../mod/setup.php:188 ../../mod/setup.php:257 ../../mod/setup.php:606
msgid "Please see the file \"install/INSTALL.txt\"."
msgstr "ПожалуйÑта, обратитеÑÑŒ к файлу \"install/INSTALL.txt\"."
-#: ../../mod/setup.php:233
+#: ../../mod/setup.php:254
msgid "System check"
msgstr "Проверка ÑиÑтемы"
-#: ../../mod/setup.php:238
+#: ../../mod/setup.php:259
msgid "Check again"
msgstr "Проверить Ñнова"
-#: ../../mod/setup.php:260
+#: ../../mod/setup.php:281
msgid "Database connection"
msgstr "Подключение к базе данных"
-#: ../../mod/setup.php:261
+#: ../../mod/setup.php:282
msgid ""
"In order to install Red Matrix we need to know how to connect to your "
"database."
msgstr ""
-#: ../../mod/setup.php:262
+#: ../../mod/setup.php:283
msgid ""
"Please contact your hosting provider or site administrator if you have "
"questions about these settings."
msgstr ""
-#: ../../mod/setup.php:263
+#: ../../mod/setup.php:284
msgid ""
"The database you specify below should already exist. If it does not, please "
"create it before continuing."
msgstr ""
-#: ../../mod/setup.php:267
+#: ../../mod/setup.php:288
msgid "Database Server Name"
msgstr "Ð˜Ð¼Ñ Ñервера базы данных"
-#: ../../mod/setup.php:267
+#: ../../mod/setup.php:288
msgid "Default is localhost"
msgstr "По умолчанию localhost"
-#: ../../mod/setup.php:268
+#: ../../mod/setup.php:289
msgid "Database Port"
msgstr "Порт базы данных"
-#: ../../mod/setup.php:268
+#: ../../mod/setup.php:289
msgid "Communication port number - use 0 for default"
msgstr "Порт коммуникации - иÑпользуйте 0 по умолчанию"
-#: ../../mod/setup.php:269
+#: ../../mod/setup.php:290
msgid "Database Login Name"
msgstr "Ð˜Ð¼Ñ Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ðº базе данных"
-#: ../../mod/setup.php:270
+#: ../../mod/setup.php:291
msgid "Database Login Password"
msgstr "Пароль Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ðº базе данных"
-#: ../../mod/setup.php:271
+#: ../../mod/setup.php:292
msgid "Database Name"
msgstr "Ð˜Ð¼Ñ Ð±Ð°Ð·Ñ‹ данных"
-#: ../../mod/setup.php:273 ../../mod/setup.php:315
+#: ../../mod/setup.php:294 ../../mod/setup.php:336
msgid "Site administrator email address"
msgstr "ÐÐ´Ñ€ÐµÑ Ñлектронной почты админиÑтратора Ñайта"
-#: ../../mod/setup.php:273 ../../mod/setup.php:315
+#: ../../mod/setup.php:294 ../../mod/setup.php:336
msgid ""
"Your account email address must match this in order to use the web admin "
"panel."
msgstr ""
-#: ../../mod/setup.php:274 ../../mod/setup.php:317
+#: ../../mod/setup.php:295 ../../mod/setup.php:338
msgid "Website URL"
msgstr "URL веб-Ñайта"
-#: ../../mod/setup.php:274 ../../mod/setup.php:317
+#: ../../mod/setup.php:295 ../../mod/setup.php:338
msgid "Please use SSL (https) URL if available."
msgstr "ПожалуйÑта, иÑпользуйте SSL (https) URL еÑли возможно."
-#: ../../mod/setup.php:277 ../../mod/setup.php:320
+#: ../../mod/setup.php:298 ../../mod/setup.php:341
msgid "Please select a default timezone for your website"
msgstr ""
-#: ../../mod/setup.php:304
+#: ../../mod/setup.php:325
msgid "Site settings"
msgstr "ÐаÑтройки Ñайта"
-#: ../../mod/setup.php:360
+#: ../../mod/setup.php:381
msgid "Could not find a command line version of PHP in the web server PATH."
msgstr ""
-#: ../../mod/setup.php:361
+#: ../../mod/setup.php:382
msgid ""
"If you don't have a command line version of PHP installed on server, you "
"will not be able to run background polling via cron."
msgstr ""
-#: ../../mod/setup.php:365
+#: ../../mod/setup.php:386
msgid "PHP executable path"
msgstr "PHP executable путь"
-#: ../../mod/setup.php:365
+#: ../../mod/setup.php:386
msgid ""
"Enter full path to php executable. You can leave this blank to continue the "
"installation."
msgstr ""
-#: ../../mod/setup.php:370
+#: ../../mod/setup.php:391
msgid "Command line PHP"
msgstr "Command line PHP"
-#: ../../mod/setup.php:379
+#: ../../mod/setup.php:400
msgid ""
"The command line version of PHP on your system does not have "
"\"register_argc_argv\" enabled."
msgstr ""
-#: ../../mod/setup.php:380
+#: ../../mod/setup.php:401
msgid "This is required for message delivery to work."
msgstr ""
-#: ../../mod/setup.php:382
+#: ../../mod/setup.php:403
msgid "PHP register_argc_argv"
msgstr "PHP register_argc_argv"
-#: ../../mod/setup.php:403
+#: ../../mod/setup.php:424
msgid ""
"Error: the \"openssl_pkey_new\" function on this system is not able to "
"generate encryption keys"
msgstr ""
-#: ../../mod/setup.php:404
+#: ../../mod/setup.php:425
msgid ""
"If running under Windows, please see "
"\"http://www.php.net/manual/en/openssl.installation.php\"."
msgstr ""
-#: ../../mod/setup.php:406
+#: ../../mod/setup.php:427
msgid "Generate encryption keys"
msgstr ""
-#: ../../mod/setup.php:413
+#: ../../mod/setup.php:434
msgid "libCurl PHP module"
msgstr "libCurl PHP модуль"
-#: ../../mod/setup.php:414
+#: ../../mod/setup.php:435
msgid "GD graphics PHP module"
msgstr "GD graphics PHP модуль"
-#: ../../mod/setup.php:415
+#: ../../mod/setup.php:436
msgid "OpenSSL PHP module"
msgstr "OpenSSL PHP модуль"
-#: ../../mod/setup.php:416
+#: ../../mod/setup.php:437
msgid "mysqli PHP module"
msgstr "mysqli PHP модуль"
-#: ../../mod/setup.php:417
+#: ../../mod/setup.php:438
msgid "mb_string PHP module"
msgstr "mb_string PHP модуль"
-#: ../../mod/setup.php:418
+#: ../../mod/setup.php:439
msgid "mcrypt PHP module"
msgstr "mcrypt PHP модуль"
-#: ../../mod/setup.php:423 ../../mod/setup.php:425
+#: ../../mod/setup.php:444 ../../mod/setup.php:446
msgid "Apache mod_rewrite module"
msgstr "Apache mod_rewrite модуль"
-#: ../../mod/setup.php:423
+#: ../../mod/setup.php:444
msgid ""
"Error: Apache webserver mod-rewrite module is required but not installed."
msgstr ""
-#: ../../mod/setup.php:429 ../../mod/setup.php:432
+#: ../../mod/setup.php:450 ../../mod/setup.php:453
msgid "proc_open"
msgstr "proc_open"
-#: ../../mod/setup.php:429
+#: ../../mod/setup.php:450
msgid ""
"Error: proc_open is required but is either not installed or has been "
"disabled in php.ini"
msgstr ""
-#: ../../mod/setup.php:437
+#: ../../mod/setup.php:458
msgid "Error: libCURL PHP module required but not installed."
msgstr ""
-#: ../../mod/setup.php:441
+#: ../../mod/setup.php:462
msgid ""
"Error: GD graphics PHP module with JPEG support required but not installed."
msgstr ""
-#: ../../mod/setup.php:445
+#: ../../mod/setup.php:466
msgid "Error: openssl PHP module required but not installed."
msgstr ""
-#: ../../mod/setup.php:449
+#: ../../mod/setup.php:470
msgid "Error: mysqli PHP module required but not installed."
msgstr ""
-#: ../../mod/setup.php:453
+#: ../../mod/setup.php:474
msgid "Error: mb_string PHP module required but not installed."
msgstr ""
-#: ../../mod/setup.php:457
+#: ../../mod/setup.php:478
msgid "Error: mcrypt PHP module required but not installed."
msgstr ""
-#: ../../mod/setup.php:473
+#: ../../mod/setup.php:494
msgid ""
"The web installer needs to be able to create a file called \".htconfig.php\""
" in the top folder of your web server and it is unable to do so."
msgstr ""
-#: ../../mod/setup.php:474
+#: ../../mod/setup.php:495
msgid ""
"This is most often a permission setting, as the web server may not be able "
"to write files in your folder - even if you can."
msgstr ""
-#: ../../mod/setup.php:475
+#: ../../mod/setup.php:496
msgid ""
"At the end of this procedure, we will give you a text to save in a file "
"named .htconfig.php in your Red top folder."
msgstr ""
-#: ../../mod/setup.php:476
+#: ../../mod/setup.php:497
msgid ""
"You can alternatively skip this procedure and perform a manual installation."
" Please see the file \"install/INSTALL.txt\" for instructions."
msgstr ""
-#: ../../mod/setup.php:479
+#: ../../mod/setup.php:500
msgid ".htconfig.php is writable"
msgstr ".htconfig.php доÑтупен Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи"
-#: ../../mod/setup.php:489
+#: ../../mod/setup.php:510
msgid ""
"Red uses the Smarty3 template engine to render its web views. Smarty3 "
"compiles templates to PHP to speed up rendering."
msgstr ""
-#: ../../mod/setup.php:490
+#: ../../mod/setup.php:511
msgid ""
"In order to store these compiled templates, the web server needs to have "
"write access to the directory view/tpl/smarty3/ under the Red top level "
"folder."
msgstr ""
-#: ../../mod/setup.php:491
+#: ../../mod/setup.php:512 ../../mod/setup.php:530
msgid ""
"Please ensure that the user that your web server runs as (e.g. www-data) has"
" write access to this folder."
msgstr ""
-#: ../../mod/setup.php:492
+#: ../../mod/setup.php:513
msgid ""
"Note: as a security measure, you should give the web server write access to "
"view/tpl/smarty3/ only--not the template files (.tpl) that it contains."
msgstr ""
-#: ../../mod/setup.php:495
+#: ../../mod/setup.php:516
msgid "view/tpl/smarty3 is writable"
msgstr "view/tpl/smarty3 доÑтупен Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи"
-#: ../../mod/setup.php:509
+#: ../../mod/setup.php:529
+msgid ""
+"Red uses the store directory to save uploaded files. The web server needs to"
+" have write access to the store directory under the Red top level folder"
+msgstr ""
+
+#: ../../mod/setup.php:533
+msgid "store is writable"
+msgstr ""
+
+#: ../../mod/setup.php:548
msgid "SSL certificate validation"
msgstr "проверка Ñертификата SSL"
-#: ../../mod/setup.php:509
+#: ../../mod/setup.php:548
msgid ""
"SSL certificate cannot be validated. Fix certificate or disable https access"
" to this site."
msgstr ""
-#: ../../mod/setup.php:516
+#: ../../mod/setup.php:555
msgid ""
"Url rewrite in .htaccess is not working. Check your server configuration."
msgstr ""
-#: ../../mod/setup.php:518
+#: ../../mod/setup.php:557
msgid "Url rewrite is working"
msgstr "Url rewrite работает"
-#: ../../mod/setup.php:528
+#: ../../mod/setup.php:567
msgid ""
"The database configuration file \".htconfig.php\" could not be written. "
"Please use the enclosed text to create a configuration file in your web "
"server root."
msgstr ""
-#: ../../mod/setup.php:552
+#: ../../mod/setup.php:591
msgid "Errors encountered creating database tables."
msgstr ""
-#: ../../mod/setup.php:563
+#: ../../mod/setup.php:604
msgid "<h1>What next</h1>"
msgstr "<h1>Что дальше</h1>"
-#: ../../mod/setup.php:564
+#: ../../mod/setup.php:605
msgid ""
"IMPORTANT: You will need to [manually] setup a scheduled task for the "
"poller."
msgstr ""
+#: ../../mod/rpost.php:84 ../../mod/editpost.php:42
+msgid "Edit post"
+msgstr "Редактировать Ñообщение"
+
#: ../../mod/subthread.php:105
#, php-format
msgid "%1$s is following %2$s's %3$s"
@@ -3291,7 +4079,7 @@ msgstr "%1$s Ñледит %2$s's %3$s"
msgid "[Embedded content - reload page to view]"
msgstr ""
-#: ../../mod/chanview.php:94
+#: ../../mod/chanview.php:97
msgid "toggle full screen mode"
msgstr "переключение полноÑкранного режима"
@@ -3300,948 +4088,1065 @@ msgstr "переключение полноÑкранного режима"
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr ""
-#: ../../mod/settings.php:51
-msgid "Account settings"
-msgstr "ÐаÑтройки аккаунта"
+#: ../../mod/viewconnections.php:17 ../../mod/search.php:12
+#: ../../mod/photos.php:573 ../../mod/directory.php:15 ../../mod/display.php:9
+#: ../../mod/community.php:18 ../../mod/dirprofile.php:9
+msgid "Public access denied."
+msgstr "ОбщеÑтвенный доÑтуп запрещен."
-#: ../../mod/settings.php:57
-msgid "Channel settings"
-msgstr "ÐаÑтройки канала"
+#: ../../mod/viewconnections.php:43
+msgid "No connections."
+msgstr "Ðикаких ÑвÑзей."
-#: ../../mod/settings.php:63
-msgid "Additional features"
-msgstr "Дополнительные функции"
+#: ../../mod/viewconnections.php:55
+#, php-format
+msgid "Visit %s's profile [%s]"
+msgstr "ПоÑетить %s's ​​профиль [%s]"
-#: ../../mod/settings.php:69
-msgid "Feature settings"
-msgstr "ÐаÑтройки компонентов"
+#: ../../mod/viewconnections.php:70
+msgid "View Connnections"
+msgstr "ПроÑмотр контактов"
-#: ../../mod/settings.php:75
-msgid "Display settings"
-msgstr "ÐаÑтройки отображениÑ"
+#: ../../mod/tagrm.php:41
+msgid "Tag removed"
+msgstr "Тег удален"
-#: ../../mod/settings.php:81
-msgid "Connected apps"
-msgstr "Подключенные приложениÑ"
+#: ../../mod/tagrm.php:79
+msgid "Remove Item Tag"
+msgstr "Удалить Тег"
-#: ../../mod/settings.php:87
-msgid "Export channel"
-msgstr "ЭкÑпорт канала"
+#: ../../mod/tagrm.php:81
+msgid "Select a tag to remove: "
+msgstr "Выбрать тег Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ: "
-#: ../../mod/settings.php:99
-msgid "Automatic Permissions (Advanced)"
-msgstr "ÐвтоматичеÑкие Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ (дополнительно)"
+#: ../../mod/tagrm.php:93 ../../mod/delegate.php:130
+msgid "Remove"
+msgstr "Удалить"
-#: ../../mod/settings.php:109
-msgid "Premium Channel Settings"
+#: ../../mod/connect.php:55 ../../mod/connect.php:103
+msgid "Continue"
msgstr ""
-#: ../../mod/settings.php:158
-msgid "Missing some important data!"
-msgstr "ОтÑутÑтвуют некоторые важные данные!"
+#: ../../mod/connect.php:84
+msgid "Premium Channel Setup"
+msgstr ""
-#: ../../mod/settings.php:161 ../../mod/settings.php:647
-msgid "Update"
-msgstr "Обновление"
+#: ../../mod/connect.php:86
+msgid "Enable premium channel connection restrictions"
+msgstr ""
-#: ../../mod/settings.php:274
-msgid "Passwords do not match. Password unchanged."
-msgstr "Пароли не Ñовпадают. Пароль не изменён."
+#: ../../mod/connect.php:87
+msgid ""
+"Please enter your restrictions or conditions, such as paypal receipt, usage "
+"guidelines, etc."
+msgstr ""
-#: ../../mod/settings.php:278
-msgid "Empty passwords are not allowed. Password unchanged."
-msgstr "ПуÑтые пароли не допуÑкаютÑÑ. Пароль не изменён."
+#: ../../mod/connect.php:89 ../../mod/connect.php:109
+msgid ""
+"This channel may require additional steps or acknowledgement of the "
+"following conditions prior to connecting:"
+msgstr ""
-#: ../../mod/settings.php:291
-msgid "Password changed."
-msgstr "Пароль изменен."
+#: ../../mod/connect.php:90
+msgid ""
+"Potential connections will then see the following text before proceeding:"
+msgstr ""
-#: ../../mod/settings.php:293
-msgid "Password update failed. Please try again."
-msgstr "Изменение Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð·Ð°ÐºÐ¾Ð½Ñ‡Ð¸Ð»Ð¾ÑÑŒ неуÑпешно. ПожалуйÑта, попробуйте еще раз."
+#: ../../mod/connect.php:91 ../../mod/connect.php:112
+msgid ""
+"By continuing, I certify that I have complied with any instructions provided"
+" on this page."
+msgstr ""
-#: ../../mod/settings.php:307
-msgid "Not valid email."
-msgstr "Ðе дейÑтвительный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты."
+#: ../../mod/connect.php:100
+msgid "(No specific instructions have been provided by the channel owner.)"
+msgstr ""
-#: ../../mod/settings.php:310
-msgid "Protected email address. Cannot change to that email."
+#: ../../mod/connect.php:108
+msgid "Restricted or Premium Channel"
msgstr ""
-#: ../../mod/settings.php:319
-msgid "System failure storing new email. Please try again."
+#: ../../mod/delegate.php:95
+msgid "No potential page delegates located."
msgstr ""
-#: ../../mod/settings.php:549
-msgid "Settings updated."
-msgstr "ÐаÑтройки обновленны."
+#: ../../mod/delegate.php:121
+msgid "Delegate Page Management"
+msgstr ""
-#: ../../mod/settings.php:620 ../../mod/settings.php:646
-#: ../../mod/settings.php:682
-msgid "Add application"
-msgstr "Добавить приложениÑ"
+#: ../../mod/delegate.php:123
+msgid ""
+"Delegates are able to manage all aspects of this account/page except for "
+"basic account settings. Please do not delegate your personal account to "
+"anybody that you do not trust completely."
+msgstr ""
-#: ../../mod/settings.php:622 ../../mod/settings.php:648
-#: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94 ../../mod/fbrowser.php:81
-#: ../../mod/fbrowser.php:116
-msgid "Cancel"
-msgstr "Отменить"
+#: ../../mod/delegate.php:124
+msgid "Existing Page Managers"
+msgstr ""
-#: ../../mod/settings.php:623 ../../mod/settings.php:649
-#: ../../mod/admin.php:636 ../../mod/crepair.php:148
-msgid "Name"
-msgstr "ИмÑ"
+#: ../../mod/delegate.php:126
+msgid "Existing Page Delegates"
+msgstr ""
-#: ../../mod/settings.php:624 ../../mod/settings.php:650
-msgid "Consumer Key"
-msgstr "Ключ клиента"
+#: ../../mod/delegate.php:128
+msgid "Potential Delegates"
+msgstr ""
-#: ../../mod/settings.php:625 ../../mod/settings.php:651
-msgid "Consumer Secret"
-msgstr "Секрет клиента"
+#: ../../mod/delegate.php:131
+msgid "Add"
+msgstr "Добавить"
-#: ../../mod/settings.php:626 ../../mod/settings.php:652
-msgid "Redirect"
-msgstr "Перенаправление"
+#: ../../mod/delegate.php:132
+msgid "No entries."
+msgstr "Ðет запиÑей."
-#: ../../mod/settings.php:627 ../../mod/settings.php:653
-msgid "Icon url"
-msgstr "URL-Ð°Ð´Ñ€ÐµÑ Ð·Ð½Ð°Ñ‡ÐºÐ°"
+#: ../../mod/sources.php:28
+msgid "Failed to create source. No channel selected."
+msgstr ""
-#: ../../mod/settings.php:638
-msgid "You can't edit this application."
-msgstr "Ð’Ñ‹ не можете редактировать Ñто приложение."
+#: ../../mod/sources.php:41
+msgid "Source created."
+msgstr ""
-#: ../../mod/settings.php:681
-msgid "Connected Apps"
-msgstr "Подключенные приложениÑ"
+#: ../../mod/sources.php:53
+msgid "Source updated."
+msgstr ""
-#: ../../mod/settings.php:685
-msgid "Client key starts with"
+#: ../../mod/sources.php:82
+msgid "Manage remote sources of content for your channel."
msgstr ""
-#: ../../mod/settings.php:686
-msgid "No name"
-msgstr "Без названиÑ"
+#: ../../mod/sources.php:83 ../../mod/sources.php:93
+msgid "New Source"
+msgstr ""
-#: ../../mod/settings.php:687
-msgid "Remove authorization"
-msgstr "Удалить разрешение"
+#: ../../mod/sources.php:94 ../../mod/sources.php:126
+msgid ""
+"Import all or selected content from the following channel into this channel "
+"and distribute it according to your channel settings."
+msgstr ""
-#: ../../mod/settings.php:698
-msgid "No feature settings configured"
-msgstr "Параметры функций не наÑтроены"
+#: ../../mod/sources.php:95 ../../mod/sources.php:127
+msgid "Only import content with these words (one per line)"
+msgstr ""
-#: ../../mod/settings.php:706
-msgid "Feature Settings"
-msgstr "ÐаÑтройки функции"
+#: ../../mod/sources.php:95 ../../mod/sources.php:127
+msgid "Leave blank to import all public content"
+msgstr ""
-#: ../../mod/settings.php:729
-msgid "Account Settings"
-msgstr "ÐаÑтройки аккаунта"
+#: ../../mod/sources.php:96 ../../mod/sources.php:130
+#: ../../mod/new_channel.php:110
+msgid "Channel Name"
+msgstr "Ð˜Ð¼Ñ ÐºÐ°Ð½Ð°Ð»Ð°"
-#: ../../mod/settings.php:730
-msgid "Password Settings"
-msgstr "ÐаÑтройки паролÑ"
+#: ../../mod/sources.php:116 ../../mod/sources.php:143
+msgid "Source not found."
+msgstr ""
-#: ../../mod/settings.php:731
-msgid "New Password:"
-msgstr "Ðовый пароль:"
+#: ../../mod/sources.php:123
+msgid "Edit Source"
+msgstr ""
-#: ../../mod/settings.php:732
-msgid "Confirm:"
-msgstr "Подтверждение:"
+#: ../../mod/sources.php:124
+msgid "Delete Source"
+msgstr ""
-#: ../../mod/settings.php:732
-msgid "Leave password fields blank unless changing"
-msgstr "ОÑтавьте Ð¿Ð¾Ð»Ñ Ð¿ÑƒÑтыми, еÑли не менÑетÑÑ"
+#: ../../mod/sources.php:151
+msgid "Source removed"
+msgstr ""
-#: ../../mod/settings.php:734 ../../mod/settings.php:1032
-msgid "Email Address:"
-msgstr "ÐÐ´Ñ€ÐµÑ Ñлектронной почты:"
+#: ../../mod/sources.php:153
+msgid "Unable to remove source."
+msgstr ""
-#: ../../mod/settings.php:735
-msgid "Remove Account"
-msgstr "Удалить аккаунт"
+#: ../../mod/admin.php:48
+msgid "Theme settings updated."
+msgstr "ÐаÑтройки темы обновленны."
-#: ../../mod/settings.php:736
-msgid "Warning: This action is permanent and cannot be reversed."
-msgstr ""
+#: ../../mod/admin.php:87 ../../mod/admin.php:419
+msgid "Site"
+msgstr "Сайт"
-#: ../../mod/settings.php:752
-msgid "Off"
-msgstr "Выкл."
+#: ../../mod/admin.php:88 ../../mod/admin.php:685 ../../mod/admin.php:697
+msgid "Users"
+msgstr "Пользователи"
-#: ../../mod/settings.php:752
-msgid "On"
-msgstr "Вкл."
+#: ../../mod/admin.php:89 ../../mod/admin.php:783 ../../mod/admin.php:825
+msgid "Plugins"
+msgstr "Плагины"
-#: ../../mod/settings.php:759
-msgid "Additional Features"
-msgstr "Дополнительные функции"
+#: ../../mod/admin.php:90 ../../mod/admin.php:988 ../../mod/admin.php:1024
+msgid "Themes"
+msgstr "Темы"
-#: ../../mod/settings.php:784
-msgid "Connector Settings"
-msgstr "ÐаÑтройки ÑоединителÑ"
+#: ../../mod/admin.php:91 ../../mod/admin.php:478
+msgid "Server"
+msgstr "Сервер"
+
+#: ../../mod/admin.php:92
+msgid "DB updates"
+msgstr "ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ð°Ð·Ñ‹ данных"
+
+#: ../../mod/admin.php:106 ../../mod/admin.php:113 ../../mod/admin.php:1111
+msgid "Logs"
+msgstr "Журналы"
+
+#: ../../mod/admin.php:112
+msgid "Plugin Features"
+msgstr "Функции плагинов"
+
+#: ../../mod/admin.php:114
+msgid "User registrations waiting for confirmation"
+msgstr "РегиÑтрации пользователей, которые ждут подтверждениÑ"
+
+#: ../../mod/admin.php:188
+msgid "Message queues"
+msgstr "Очередь недоÑтавленных Ñообщений"
+
+#: ../../mod/admin.php:193 ../../mod/admin.php:418 ../../mod/admin.php:477
+#: ../../mod/admin.php:684 ../../mod/admin.php:782 ../../mod/admin.php:824
+#: ../../mod/admin.php:987 ../../mod/admin.php:1023 ../../mod/admin.php:1110
+msgid "Administration"
+msgstr "ÐдминиÑтрациÑ"
+
+#: ../../mod/admin.php:194
+msgid "Summary"
+msgstr "Резюме"
+
+#: ../../mod/admin.php:196
+msgid "Registered users"
+msgstr "Ð’Ñего пользователeй"
+
+#: ../../mod/admin.php:198 ../../mod/admin.php:481
+msgid "Pending registrations"
+msgstr "Ждут утверждениÑ"
+
+#: ../../mod/admin.php:199
+msgid "Version"
+msgstr "ВерÑÐ¸Ñ ÑиÑтемы"
-#: ../../mod/settings.php:814 ../../mod/admin.php:361
+#: ../../mod/admin.php:201 ../../mod/admin.php:482
+msgid "Active plugins"
+msgstr "Ðктивные плагины"
+
+#: ../../mod/admin.php:342
+msgid "Site settings updated."
+msgstr "ÐаÑтройки Ñайта обновлены."
+
+#: ../../mod/admin.php:371 ../../mod/settings.php:700
msgid "No special theme for mobile devices"
msgstr "Ðет Ñпециальной темы Ð´Ð»Ñ Ð¼Ð¾Ð±Ð¸Ð»ÑŒÐ½Ñ‹Ñ… уÑтройÑтв"
-#: ../../mod/settings.php:854
-msgid "Display Settings"
-msgstr "ÐаÑтройки отображениÑ"
+#: ../../mod/admin.php:373
+msgid "No special theme for accessibility"
+msgstr ""
-#: ../../mod/settings.php:860
-msgid "Display Theme:"
-msgstr "Тема отображениÑ:"
+#: ../../mod/admin.php:398
+msgid "Closed"
+msgstr "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð°"
-#: ../../mod/settings.php:861
-msgid "Mobile Theme:"
-msgstr "ÐœÐ¾Ð±Ð¸Ð»ÑŒÐ½Ð°Ñ Ñ‚ÐµÐ¼Ð° отображениÑ:"
+#: ../../mod/admin.php:399
+msgid "Requires approval"
+msgstr "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ подтверждениÑ"
-#: ../../mod/settings.php:862
-msgid "Update browser every xx seconds"
-msgstr "Обновление браузера каждые ХХ Ñекунд"
+#: ../../mod/admin.php:400
+msgid "Open"
+msgstr "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð°"
-#: ../../mod/settings.php:862
-msgid "Minimum of 10 seconds, no maximum"
-msgstr "Минимум 10 Ñекунд, без макÑимума"
+#: ../../mod/admin.php:405
+msgid "Private"
+msgstr "Личный доÑтуп"
-#: ../../mod/settings.php:863
-msgid "Maximum number of conversations to load at any time:"
-msgstr ""
+#: ../../mod/admin.php:406
+msgid "Paid Access"
+msgstr "Платный доÑтуп"
-#: ../../mod/settings.php:863
-msgid "Maximum of 100 items"
-msgstr "МакÑимум 100 Ñлементов"
+#: ../../mod/admin.php:407
+msgid "Free Access"
+msgstr "Свободный доÑтуп"
-#: ../../mod/settings.php:864
-msgid "Don't show emoticons"
-msgstr "Ðе показывать emoticons"
+#: ../../mod/admin.php:408
+msgid "Tiered Access"
+msgstr ""
-#: ../../mod/settings.php:900
-msgid "Nobody except yourself"
-msgstr "Ðикто, кроме ваÑ"
+#: ../../mod/admin.php:421 ../../mod/register.php:189
+msgid "Registration"
+msgstr "РегиÑтрациÑ"
-#: ../../mod/settings.php:901
-msgid "Only those you specifically allow"
-msgstr "Только комы вы разрешили"
+#: ../../mod/admin.php:422
+msgid "File upload"
+msgstr "Загрузка файла"
-#: ../../mod/settings.php:902
-msgid "Anybody in your address book"
-msgstr "Любой в вашей адреÑной книге"
+#: ../../mod/admin.php:423
+msgid "Policies"
+msgstr "Правила"
-#: ../../mod/settings.php:903
-msgid "Anybody on this website"
-msgstr "Любой на Ñтом веб-Ñайте"
+#: ../../mod/admin.php:424
+msgid "Advanced"
+msgstr "Дополнительно"
-#: ../../mod/settings.php:904
-msgid "Anybody in this network"
-msgstr "Любой в Ñтой Ñети"
+#: ../../mod/admin.php:428
+msgid "Site name"
+msgstr "Ðазвание Ñайта"
-#: ../../mod/settings.php:905
-msgid "Anybody on the internet"
-msgstr "Любой в интернете"
+#: ../../mod/admin.php:429
+msgid "Banner/Logo"
+msgstr "Баннер / логотип"
-#: ../../mod/settings.php:978
-msgid "Publish your default profile in the network directory"
-msgstr "ÐŸÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Ð¿Ð¾ умолчанию в каталоге Ñети"
+#: ../../mod/admin.php:430
+msgid "System language"
+msgstr "Язык ÑиÑтемы"
-#: ../../mod/settings.php:983
-msgid "Allow us to suggest you as a potential friend to new members?"
+#: ../../mod/admin.php:431
+msgid "System theme"
+msgstr "Тема ÑиÑтемы"
+
+#: ../../mod/admin.php:431
+msgid ""
+"Default system theme - may be over-ridden by user profiles - <a href='#' "
+"id='cnftheme'>change theme settings</a>"
msgstr ""
-#: ../../mod/settings.php:987 ../../mod/profile_photo.php:298
-msgid "or"
-msgstr "или"
+#: ../../mod/admin.php:432
+msgid "Mobile system theme"
+msgstr "ÐœÐ¾Ð±Ð¸Ð»ÑŒÐ½Ð°Ñ Ñ‚ÐµÐ¼Ð° ÑиÑтемы"
-#: ../../mod/settings.php:992
-msgid "Your channel address is"
-msgstr "ÐÐ´Ñ€ÐµÑ Ð²Ð°ÑˆÐµÐ³Ð¾ канала:"
+#: ../../mod/admin.php:432
+msgid "Theme for mobile devices"
+msgstr "Тема Ð´Ð»Ñ Ð¼Ð¾Ð±Ð¸Ð»ÑŒÐ½Ñ‹Ñ… уÑтройÑтв"
-#: ../../mod/settings.php:1003
-msgid "Automatically expire posts after this many days:"
+#: ../../mod/admin.php:433
+msgid "Accessibility system theme"
msgstr ""
-#: ../../mod/settings.php:1003
-msgid "If empty, posts will not expire. Expired posts will be deleted"
+#: ../../mod/admin.php:433
+msgid "Accessibility theme"
msgstr ""
-#: ../../mod/settings.php:1004
-msgid "Advanced expiration settings"
+#: ../../mod/admin.php:434
+msgid "Channel to use for this website's static pages"
msgstr ""
-#: ../../mod/settings.php:1005
-msgid "Advanced Expiration"
-msgstr "Дополнительное иÑтечение Ñрока давноÑти"
+#: ../../mod/admin.php:434
+msgid "Site Channel"
+msgstr "Канал Ñайта"
-#: ../../mod/settings.php:1006
-msgid "Expire posts:"
-msgstr ""
+#: ../../mod/admin.php:436
+msgid "Maximum image size"
+msgstr "МакÑимальный размер"
-#: ../../mod/settings.php:1008
-msgid "Expire starred posts:"
+#: ../../mod/admin.php:436
+msgid ""
+"Maximum size in bytes of uploaded images. Default is 0, which means no "
+"limits."
msgstr ""
-#: ../../mod/settings.php:1009
-msgid "Expire photos:"
-msgstr ""
+#: ../../mod/admin.php:437
+msgid "Register policy"
+msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ€ÐµÐ³Ð¸Ñтрации"
-#: ../../mod/settings.php:1010
-msgid "Only expire posts by others:"
-msgstr ""
+#: ../../mod/admin.php:438
+msgid "Access policy"
+msgstr "Правила доÑтупа"
-#: ../../mod/settings.php:1021
-msgid "Channel Settings"
-msgstr "ÐаÑтройки канала"
+#: ../../mod/admin.php:439
+msgid "Register text"
+msgstr "ТекÑÑ‚ региÑтрации"
-#: ../../mod/settings.php:1030
-msgid "Basic Settings"
-msgstr "ОÑновные наÑтройки"
+#: ../../mod/admin.php:439
+msgid "Will be displayed prominently on the registration page."
+msgstr ""
-#: ../../mod/settings.php:1033
-msgid "Your Timezone:"
-msgstr "Ваш чаÑовой поÑÑ:"
+#: ../../mod/admin.php:440
+msgid "Accounts abandoned after x days"
+msgstr ""
-#: ../../mod/settings.php:1034
-msgid "Default Post Location:"
-msgstr "Откуда по умолчанию:"
+#: ../../mod/admin.php:440
+msgid ""
+"Will not waste system resources polling external sites for abandonded "
+"accounts. Enter 0 for no time limit."
+msgstr ""
-#: ../../mod/settings.php:1035
-msgid "Use Browser Location:"
-msgstr "ИÑпользуйте указание браузерa:"
+#: ../../mod/admin.php:441
+msgid "Allowed friend domains"
+msgstr ""
-#: ../../mod/settings.php:1038
-msgid "Security and Privacy Settings"
-msgstr "Параметры безопаÑноÑти и конфиденциальноÑти"
+#: ../../mod/admin.php:441
+msgid ""
+"Comma separated list of domains which are allowed to establish friendships "
+"with this site. Wildcards are accepted. Empty to allow any domains"
+msgstr ""
-#: ../../mod/settings.php:1040
-msgid "Quick Privacy Settings:"
-msgstr "БыÑтрые параметры безопаÑноÑти и конфиденциальноÑти:"
+#: ../../mod/admin.php:442
+msgid "Allowed email domains"
+msgstr ""
-#: ../../mod/settings.php:1041
-msgid "Very Public - extremely permissive"
-msgstr "Очень публично - чрезвычайно разрешающе"
+#: ../../mod/admin.php:442
+msgid ""
+"Comma separated list of domains which are allowed in email addresses for "
+"registrations to this site. Wildcards are accepted. Empty to allow any "
+"domains"
+msgstr ""
-#: ../../mod/settings.php:1042
-msgid "Typical - default public, privacy when desired"
-msgstr "Типично - по умолчанию публично, конфиденциальноÑÑ‚ÑŒ, только еÑли наÑтроена"
+#: ../../mod/admin.php:443
+msgid "Block public"
+msgstr "Блокировать публичный доÑтуп"
-#: ../../mod/settings.php:1043
-msgid "Private - default private, rarely open or public"
-msgstr "ЧаÑтно - по умолчанию чаÑтно, редко открыто или публично"
+#: ../../mod/admin.php:443
+msgid ""
+"Check to block public access to all otherwise public personal pages on this "
+"site unless you are currently logged in."
+msgstr ""
-#: ../../mod/settings.php:1044
-msgid "Blocked - default blocked to/from everybody"
-msgstr "Заблокированно - по умолчанию заблокировано длÑ/от вÑех"
+#: ../../mod/admin.php:444
+msgid "Force publish"
+msgstr "ЗаÑтавить публиковать"
-#: ../../mod/settings.php:1047
-msgid "Maximum Friend Requests/Day:"
+#: ../../mod/admin.php:444
+msgid ""
+"Check to force all profiles on this site to be listed in the site directory."
msgstr ""
-#: ../../mod/settings.php:1047
-msgid "May reduce spam activity"
+#: ../../mod/admin.php:445
+msgid "No login on Homepage"
msgstr ""
-#: ../../mod/settings.php:1048
-msgid "Default Post Permissions"
+#: ../../mod/admin.php:445
+msgid ""
+"Check to hide the login form from your sites homepage when visitors arrive "
+"who are not logged in (e.g. when you put the content of the homepage in via "
+"the site channel)."
msgstr ""
-#: ../../mod/settings.php:1049
-msgid "(click to open/close)"
-msgstr "(нажмите, чтобы открыть / закрыть)"
+#: ../../mod/admin.php:447
+msgid "Proxy user"
+msgstr "Proxy пользователь"
-#: ../../mod/settings.php:1062
-msgid "Maximum private messages per day from unknown people:"
-msgstr ""
+#: ../../mod/admin.php:448
+msgid "Proxy URL"
+msgstr "Proxy URL"
-#: ../../mod/settings.php:1062
-msgid "Useful to reduce spamming"
+#: ../../mod/admin.php:449
+msgid "Network timeout"
+msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ñети"
+
+#: ../../mod/admin.php:449
+msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr ""
-#: ../../mod/settings.php:1065
-msgid "Notification Settings"
-msgstr "ÐаÑтройки уведомлений"
+#: ../../mod/admin.php:450
+msgid "Delivery interval"
+msgstr "Интервал доÑтавки"
-#: ../../mod/settings.php:1066
-msgid "By default post a status message when:"
+#: ../../mod/admin.php:450
+msgid ""
+"Delay background delivery processes by this many seconds to reduce system "
+"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
+"for large dedicated servers."
msgstr ""
-#: ../../mod/settings.php:1067
-msgid "accepting a friend request"
+#: ../../mod/admin.php:451
+msgid "Poll interval"
+msgstr "Интервал опроÑа"
+
+#: ../../mod/admin.php:451
+msgid ""
+"Delay background polling processes by this many seconds to reduce system "
+"load. If 0, use delivery interval."
msgstr ""
-#: ../../mod/settings.php:1068
-msgid "joining a forum/community"
+#: ../../mod/admin.php:452
+msgid "Maximum Load Average"
msgstr ""
-#: ../../mod/settings.php:1069
-msgid "making an <em>interesting</em> profile change"
+#: ../../mod/admin.php:452
+msgid ""
+"Maximum system load before delivery and poll processes are deferred - "
+"default 50."
msgstr ""
-#: ../../mod/settings.php:1070
-msgid "Send a notification email when:"
-msgstr "Отправить уведомление по Ñлектронной почте, еÑли:"
+#: ../../mod/admin.php:469
+msgid "No server found"
+msgstr "Сервер не найден"
-#: ../../mod/settings.php:1071
-msgid "You receive an introduction"
-msgstr "Вы получили введение"
+#: ../../mod/admin.php:476 ../../mod/admin.php:698
+msgid "ID"
+msgstr "ID"
-#: ../../mod/settings.php:1072
-msgid "Your introductions are confirmed"
+#: ../../mod/admin.php:476
+msgid "for channel"
msgstr ""
-#: ../../mod/settings.php:1073
-msgid "Someone writes on your profile wall"
+#: ../../mod/admin.php:476
+msgid "on server"
msgstr ""
-#: ../../mod/settings.php:1074
-msgid "Someone writes a followup comment"
+#: ../../mod/admin.php:476
+msgid "Status"
+msgstr "СтатуÑ"
+
+#: ../../mod/admin.php:496
+msgid "Update has been marked successful"
msgstr ""
-#: ../../mod/settings.php:1075
-msgid "You receive a private message"
+#: ../../mod/admin.php:506
+#, php-format
+msgid "Executing %s failed. Check system logs."
msgstr ""
-#: ../../mod/settings.php:1076
-msgid "You receive a friend suggestion"
+#: ../../mod/admin.php:509
+#, php-format
+msgid "Update %s was successfully applied."
msgstr ""
-#: ../../mod/settings.php:1077
-msgid "You are tagged in a post"
+#: ../../mod/admin.php:513
+#, php-format
+msgid "Update %s did not return a status. Unknown if it succeeded."
msgstr ""
-#: ../../mod/settings.php:1078
-msgid "You are poked/prodded/etc. in a post"
+#: ../../mod/admin.php:516
+#, php-format
+msgid "Update function %s could not be found."
msgstr ""
-#: ../../mod/settings.php:1081
-msgid "Advanced Account/Page Type Settings"
+#: ../../mod/admin.php:531
+msgid "No failed updates."
+msgstr "Ошибок обновлений нет."
+
+#: ../../mod/admin.php:535
+msgid "Failed Updates"
+msgstr "ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°Ð¼Ð¸"
+
+#: ../../mod/admin.php:537
+msgid "Mark success (if update was manually applied)"
msgstr ""
-#: ../../mod/settings.php:1082
-msgid "Change the behaviour of this account for special situations"
+#: ../../mod/admin.php:538
+msgid "Attempt to execute this update step automatically"
msgstr ""
-#: ../../mod/viewconnections.php:28 ../../mod/directory.php:23
-#: ../../mod/photos.php:561 ../../mod/display.php:9 ../../mod/search.php:80
-#: ../../mod/community.php:18
-msgid "Public access denied."
-msgstr "ОбщеÑтвенный доÑтуп запрещен."
+#: ../../mod/admin.php:564
+#, php-format
+msgid "%s user blocked/unblocked"
+msgid_plural "%s users blocked/unblocked"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-#: ../../mod/viewconnections.php:57
-msgid "No connections."
-msgstr "Ðикаких ÑвÑзей."
+#: ../../mod/admin.php:571
+#, php-format
+msgid "%s user deleted"
+msgid_plural "%s users deleted"
+msgstr[0] "%s канал удален"
+msgstr[1] "%s канала удалены"
+msgstr[2] "%s каналов удалено"
+
+#: ../../mod/admin.php:602
+msgid "Account not found"
+msgstr "Ðккаунт не найден"
-#: ../../mod/viewconnections.php:69 ../../mod/nogroup.php:40
+#: ../../mod/admin.php:613
#, php-format
-msgid "Visit %s's profile [%s]"
-msgstr "ПоÑетить %s's ​​профиль [%s]"
+msgid "User '%s' deleted"
+msgstr "Пользователь '%s' удален"
-#: ../../mod/viewconnections.php:84
-msgid "View Connnections"
-msgstr "ПроÑмотр контактов"
+#: ../../mod/admin.php:622
+#, php-format
+msgid "User '%s' unblocked"
+msgstr "Пользователь '%s' разрешен"
-#: ../../mod/tagrm.php:41
-msgid "Tag removed"
-msgstr "Тег удален"
+#: ../../mod/admin.php:622
+#, php-format
+msgid "User '%s' blocked"
+msgstr "Пользователь '%s' заблокирован"
-#: ../../mod/tagrm.php:79
-msgid "Remove Item Tag"
-msgstr "Удалить Тег"
+#: ../../mod/admin.php:687
+msgid "select all"
+msgstr "выбрать вÑе"
-#: ../../mod/tagrm.php:81
-msgid "Select a tag to remove: "
-msgstr "Выбрать тег Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ: "
+#: ../../mod/admin.php:688
+msgid "User registrations waiting for confirm"
+msgstr "РегиÑтрации пользователей ждут подтверждениÑ"
-#: ../../mod/tagrm.php:93 ../../mod/delegate.php:130
-msgid "Remove"
-msgstr "Удалить"
+#: ../../mod/admin.php:689
+msgid "Request date"
+msgstr "Дата запроÑа"
-#: ../../mod/connect.php:59 ../../mod/connect.php:107
-msgid "Continue"
-msgstr ""
+#: ../../mod/admin.php:689 ../../mod/settings.php:509
+#: ../../mod/settings.php:535
+msgid "Name"
+msgstr "ИмÑ"
-#: ../../mod/connect.php:88
-msgid "Premium Channel Setup"
-msgstr ""
+#: ../../mod/admin.php:690
+msgid "No registrations."
+msgstr "Ðовых региÑтраций пока нет."
-#: ../../mod/connect.php:90
-msgid "Enable premium channel connection restrictions"
-msgstr ""
+#: ../../mod/admin.php:691
+msgid "Approve"
+msgstr "Утвердить"
-#: ../../mod/connect.php:91
-msgid ""
-"Please enter your restrictions or conditions, such as paypal receipt, usage "
-"guidelines, etc."
-msgstr ""
+#: ../../mod/admin.php:692
+msgid "Deny"
+msgstr "Запретить"
-#: ../../mod/connect.php:93 ../../mod/connect.php:113
-msgid ""
-"This channel may require additional steps or acknowledgement of the "
-"following conditions prior to connecting:"
-msgstr ""
+#: ../../mod/admin.php:698
+msgid "Register date"
+msgstr "Дата региÑтрации"
-#: ../../mod/connect.php:94
-msgid ""
-"Potential connections will then see the following text before proceeding:"
+#: ../../mod/admin.php:698
+msgid "Last login"
+msgstr "ПоÑледний вход"
+
+#: ../../mod/admin.php:698
+msgid "Expires"
msgstr ""
-#: ../../mod/connect.php:95 ../../mod/connect.php:116
+#: ../../mod/admin.php:698
+msgid "Service Class"
+msgstr "КлаÑÑ Ñлужбы"
+
+#: ../../mod/admin.php:700
msgid ""
-"By continuing, I certify that I have complied with any instructions provided"
-" on this page."
+"Selected users will be deleted!\\n\\nEverything these users had posted on "
+"this site will be permanently deleted!\\n\\nAre you sure?"
msgstr ""
-#: ../../mod/connect.php:104
-msgid "(No specific instructions have been provided by the channel owner.)"
+#: ../../mod/admin.php:701
+msgid ""
+"The user {0} will be deleted!\\n\\nEverything this user has posted on this "
+"site will be permanently deleted!\\n\\nAre you sure?"
msgstr ""
-#: ../../mod/connect.php:112
-msgid "Restricted or Premium Channel"
-msgstr ""
+#: ../../mod/admin.php:742
+#, php-format
+msgid "Plugin %s disabled."
+msgstr "Плагин %s отключен."
-#: ../../mod/delegate.php:95
-msgid "No potential page delegates located."
-msgstr ""
+#: ../../mod/admin.php:746
+#, php-format
+msgid "Plugin %s enabled."
+msgstr "Плагин %s включен."
-#: ../../mod/delegate.php:121
-msgid "Delegate Page Management"
-msgstr ""
+#: ../../mod/admin.php:756 ../../mod/admin.php:958
+msgid "Disable"
+msgstr "Запретить"
-#: ../../mod/delegate.php:123
-msgid ""
-"Delegates are able to manage all aspects of this account/page except for "
-"basic account settings. Please do not delegate your personal account to "
-"anybody that you do not trust completely."
-msgstr ""
+#: ../../mod/admin.php:758 ../../mod/admin.php:960
+msgid "Enable"
+msgstr "Разрешить"
-#: ../../mod/delegate.php:124
-msgid "Existing Page Managers"
-msgstr ""
+#: ../../mod/admin.php:784 ../../mod/admin.php:989
+msgid "Toggle"
+msgstr "Переключить"
-#: ../../mod/delegate.php:126
-msgid "Existing Page Delegates"
-msgstr ""
+#: ../../mod/admin.php:792 ../../mod/admin.php:999
+msgid "Author: "
+msgstr "Ðвтор: "
-#: ../../mod/delegate.php:128
-msgid "Potential Delegates"
-msgstr ""
+#: ../../mod/admin.php:793 ../../mod/admin.php:1000
+msgid "Maintainer: "
+msgstr "ОбÑлуживающий: "
-#: ../../mod/delegate.php:131
-msgid "Add"
-msgstr "Добавить"
+#: ../../mod/admin.php:922
+msgid "No themes found."
+msgstr "Темы не найдены."
-#: ../../mod/delegate.php:132
-msgid "No entries."
-msgstr "Ðет запиÑей."
+#: ../../mod/admin.php:981
+msgid "Screenshot"
+msgstr "Скриншот"
-#: ../../mod/directory.php:125 ../../mod/profiles.php:584
-msgid "Age: "
-msgstr "ВозраÑÑ‚:"
+#: ../../mod/admin.php:1029
+msgid "[Experimental]"
+msgstr "[ÑкÑпериментальный]"
-#: ../../mod/directory.php:128
-msgid "Gender: "
-msgstr "Пол:"
+#: ../../mod/admin.php:1030
+msgid "[Unsupported]"
+msgstr "[неподдерживаемый]"
-#: ../../mod/directory.php:183
-msgid "Finding:"
-msgstr "ПоиÑк:"
+#: ../../mod/admin.php:1057
+msgid "Log settings updated."
+msgstr "ÐаÑтройки журнала обновленны."
-#: ../../mod/directory.php:191
-msgid "next page"
-msgstr "ÑÐ»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ñтраница"
+#: ../../mod/admin.php:1113
+msgid "Clear"
+msgstr "ОчиÑтить"
-#: ../../mod/directory.php:191
-msgid "previous page"
-msgstr "Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ñтраница"
+#: ../../mod/admin.php:1119
+msgid "Debugging"
+msgstr "Включить/Выключить"
-#: ../../mod/directory.php:198
-msgid "No entries (some entries may be hidden)."
-msgstr ""
+#: ../../mod/admin.php:1120
+msgid "Log file"
+msgstr "Файл журнала"
-#: ../../mod/dirfind.php:26
-msgid "People Search"
-msgstr "ПоиÑк людей"
+#: ../../mod/admin.php:1120
+msgid ""
+"Must be writable by web server. Relative to your Red top-level directory."
+msgstr "Должна быть доÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи веб-Ñервером. ОтноÑительно верхнего ÑƒÑ€Ð¾Ð²Ð½Ñ Ð²ÐµÐ±-Ñайта."
-#: ../../mod/dirfind.php:60 ../../mod/match.php:65
-msgid "No matches"
-msgstr "Ðет ÑоответÑтвий"
+#: ../../mod/admin.php:1121
+msgid "Log level"
+msgstr "Уровень журнала"
-#: ../../mod/mitem.php:13 ../../mod/menu.php:87
+#: ../../mod/mitem.php:14 ../../mod/menu.php:87
msgid "Menu not found."
-msgstr ""
+msgstr "Меню не найдено."
-#: ../../mod/mitem.php:66
+#: ../../mod/mitem.php:47
msgid "Menu element updated."
-msgstr ""
+msgstr "Меню обновлено."
-#: ../../mod/mitem.php:70
+#: ../../mod/mitem.php:51
msgid "Unable to update menu element."
msgstr ""
-#: ../../mod/mitem.php:76
+#: ../../mod/mitem.php:57
msgid "Menu element added."
-msgstr ""
+msgstr "Элемент меню добавлен."
-#: ../../mod/mitem.php:80
+#: ../../mod/mitem.php:61
msgid "Unable to add menu element."
msgstr ""
-#: ../../mod/mitem.php:97 ../../mod/xchan.php:25 ../../mod/menu.php:113
+#: ../../mod/mitem.php:78 ../../mod/xchan.php:25 ../../mod/menu.php:113
+#: ../../mod/dirprofile.php:176
msgid "Not found."
msgstr "Ðе найдено."
-#: ../../mod/mitem.php:116
+#: ../../mod/mitem.php:96
msgid "Manage Menu Elements"
msgstr ""
-#: ../../mod/mitem.php:119
+#: ../../mod/mitem.php:99
msgid "Edit menu"
-msgstr ""
+msgstr "Редактировать меню"
-#: ../../mod/mitem.php:122
+#: ../../mod/mitem.php:102
msgid "Edit element"
-msgstr ""
+msgstr "Редактировать Ñлемент"
-#: ../../mod/mitem.php:123
+#: ../../mod/mitem.php:103
msgid "Drop element"
-msgstr ""
+msgstr "Удалить Ñлемент"
-#: ../../mod/mitem.php:124
+#: ../../mod/mitem.php:104
msgid "New element"
-msgstr ""
+msgstr "Ðовый Ñлемент"
-#: ../../mod/mitem.php:125
+#: ../../mod/mitem.php:105
msgid "Edit this menu container"
msgstr ""
-#: ../../mod/mitem.php:126
+#: ../../mod/mitem.php:106
msgid "Add menu element"
-msgstr ""
+msgstr "Добавить Ñлемент меню"
-#: ../../mod/mitem.php:127
+#: ../../mod/mitem.php:107
msgid "Delete this menu item"
msgstr ""
-#: ../../mod/mitem.php:128
+#: ../../mod/mitem.php:108
msgid "Edit this menu item"
msgstr ""
-#: ../../mod/mitem.php:141
+#: ../../mod/mitem.php:131
msgid "New Menu Element"
+msgstr "Ðовый Ñлемент меню"
+
+#: ../../mod/mitem.php:133 ../../mod/mitem.php:176
+msgid "Menu Item Permissions"
msgstr ""
-#: ../../mod/mitem.php:143 ../../mod/mitem.php:184
+#: ../../mod/mitem.php:134 ../../mod/mitem.php:177 ../../mod/settings.php:930
+msgid "(click to open/close)"
+msgstr "(нажмите, чтобы открыть / закрыть)"
+
+#: ../../mod/mitem.php:136 ../../mod/mitem.php:180
msgid "Link text"
-msgstr ""
+msgstr "ТекÑÑ‚ ÑÑылки"
-#: ../../mod/mitem.php:144 ../../mod/mitem.php:185
+#: ../../mod/mitem.php:137 ../../mod/mitem.php:181
msgid "URL of link"
msgstr ""
-#: ../../mod/mitem.php:145 ../../mod/mitem.php:186
+#: ../../mod/mitem.php:138 ../../mod/mitem.php:182
msgid "Use Red magic-auth if available"
msgstr ""
-#: ../../mod/mitem.php:146 ../../mod/mitem.php:187
+#: ../../mod/mitem.php:139 ../../mod/mitem.php:183
msgid "Open link in new window"
msgstr ""
-#: ../../mod/mitem.php:148 ../../mod/mitem.php:189
+#: ../../mod/mitem.php:141 ../../mod/mitem.php:185
msgid "Order in list"
msgstr ""
-#: ../../mod/mitem.php:148 ../../mod/mitem.php:189
+#: ../../mod/mitem.php:141 ../../mod/mitem.php:185
msgid "Higher numbers will sink to bottom of listing"
msgstr ""
-#: ../../mod/mitem.php:149 ../../mod/menu.php:79 ../../mod/new_channel.php:117
+#: ../../mod/mitem.php:142 ../../mod/menu.php:79 ../../mod/new_channel.php:117
msgid "Create"
msgstr "Создать"
-#: ../../mod/mitem.php:161
+#: ../../mod/mitem.php:154
msgid "Menu item not found."
-msgstr ""
+msgstr "Элемент меню не найден."
-#: ../../mod/mitem.php:170
+#: ../../mod/mitem.php:163
msgid "Menu item deleted."
msgstr ""
-#: ../../mod/mitem.php:172
+#: ../../mod/mitem.php:165
msgid "Menu item could not be deleted."
msgstr ""
-#: ../../mod/mitem.php:181
+#: ../../mod/mitem.php:174
msgid "Edit Menu Element"
-msgstr ""
+msgstr "Редактировать Ñлемент меню"
-#: ../../mod/mitem.php:190 ../../mod/menu.php:107
+#: ../../mod/mitem.php:186 ../../mod/menu.php:107
msgid "Modify"
msgstr ""
-#: ../../mod/group.php:26
+#: ../../mod/group.php:20
msgid "Collection created."
msgstr "ÐšÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ñ Ñоздана."
-#: ../../mod/group.php:32
+#: ../../mod/group.php:26
msgid "Could not create collection."
msgstr "Ðе удалоÑÑŒ Ñоздать коллекцию."
-#: ../../mod/group.php:60
-msgid "Collection name changed."
-msgstr "Ð˜Ð¼Ñ ÐºÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ð¸ изменено."
+#: ../../mod/group.php:54
+msgid "Collection updated."
+msgstr ""
-#: ../../mod/group.php:92
+#: ../../mod/group.php:86
msgid "Create a collection of channels."
msgstr "Создать коллекцию контактов"
-#: ../../mod/group.php:93 ../../mod/group.php:189
+#: ../../mod/group.php:87 ../../mod/group.php:183
msgid "Collection Name: "
msgstr "Ðазвание коллекции:"
-#: ../../mod/group.php:95 ../../mod/group.php:192
+#: ../../mod/group.php:89 ../../mod/group.php:186
msgid "Members are visible to other channels"
msgstr ""
-#: ../../mod/group.php:113
+#: ../../mod/group.php:107
msgid "Collection removed."
msgstr "ÐšÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð°."
-#: ../../mod/group.php:115
+#: ../../mod/group.php:109
msgid "Unable to remove collection."
msgstr "Ðевозможно удалить коллекцию."
-#: ../../mod/group.php:188
+#: ../../mod/group.php:182
msgid "Collection Editor"
msgstr "Редактор коллекций"
-#: ../../mod/group.php:202
+#: ../../mod/group.php:196
msgid "Members"
msgstr "УчаÑтники"
-#: ../../mod/group.php:204
+#: ../../mod/group.php:198
msgid "All Connected Channels"
msgstr "Ð’Ñе подключенные контакы"
-#: ../../mod/group.php:237
+#: ../../mod/group.php:231
msgid "Click on a channel to add or remove."
msgstr ""
-#: ../../mod/photos.php:83
+#: ../../mod/photos.php:77
msgid "Page owner information could not be retrieved."
msgstr ""
-#: ../../mod/photos.php:103
+#: ../../mod/photos.php:97
msgid "Album not found."
msgstr "Ðльбом не найден."
-#: ../../mod/photos.php:125 ../../mod/photos.php:773
+#: ../../mod/photos.php:119 ../../mod/photos.php:799
msgid "Delete Album"
msgstr "Удалить альбом"
-#: ../../mod/photos.php:165 ../../mod/photos.php:1038
+#: ../../mod/photos.php:159 ../../mod/photos.php:1061
msgid "Delete Photo"
msgstr "Удалить фотографию"
-#: ../../mod/photos.php:495
+#: ../../mod/photos.php:500
#, php-format
msgid "%1$s was tagged in %2$s by %3$s"
msgstr "%1$s добавил тег в %2$s на %3$s"
-#: ../../mod/photos.php:495
+#: ../../mod/photos.php:500
msgid "a photo"
msgstr "фотографиÑ"
-#: ../../mod/photos.php:571
+#: ../../mod/photos.php:583
msgid "No photos selected"
msgstr "Ðикакие фотографии не выбраны"
-#: ../../mod/photos.php:625
+#: ../../mod/photos.php:630
msgid "Access to this item is restricted."
msgstr "ДоÑтуп к Ñтому Ñлементу ограничен."
-#: ../../mod/photos.php:689
+#: ../../mod/photos.php:704
#, php-format
msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."
msgstr ""
-#: ../../mod/photos.php:692
+#: ../../mod/photos.php:707
#, php-format
msgid "You have used %1$.2f Mbytes of photo storage."
msgstr ""
-#: ../../mod/photos.php:700
+#: ../../mod/photos.php:726
msgid "Upload Photos"
msgstr "Загрузить фотографии"
-#: ../../mod/photos.php:704 ../../mod/photos.php:768
+#: ../../mod/photos.php:730 ../../mod/photos.php:794
msgid "New album name: "
msgstr "Ðазвание нового альбома:"
-#: ../../mod/photos.php:705
+#: ../../mod/photos.php:731
msgid "or existing album name: "
msgstr "или ÑущеÑтвующий альбом:"
-#: ../../mod/photos.php:706
+#: ../../mod/photos.php:732
msgid "Do not show a status post for this upload"
msgstr ""
-#: ../../mod/photos.php:708 ../../mod/photos.php:1033
+#: ../../mod/photos.php:734 ../../mod/photos.php:1056
+#: ../../mod/filestorage.php:125
msgid "Permissions"
msgstr "РазрешениÑ"
-#: ../../mod/photos.php:757 ../../mod/photos.php:779 ../../mod/photos.php:1205
-#: ../../mod/photos.php:1220
+#: ../../mod/photos.php:783 ../../mod/photos.php:805 ../../mod/photos.php:1232
+#: ../../mod/photos.php:1247
msgid "Contact Photos"
msgstr "Фотографии контакта"
-#: ../../mod/photos.php:783
+#: ../../mod/photos.php:809
msgid "Edit Album"
msgstr "Редактировать Фотоальбом"
-#: ../../mod/photos.php:789
+#: ../../mod/photos.php:815
msgid "Show Newest First"
msgstr "Показать новые первыми"
-#: ../../mod/photos.php:791
+#: ../../mod/photos.php:817
msgid "Show Oldest First"
msgstr "Показать Ñтарые первыми"
-#: ../../mod/photos.php:835 ../../mod/photos.php:1252
+#: ../../mod/photos.php:860 ../../mod/photos.php:1279
msgid "View Photo"
msgstr "ПоÑмотреть фотографию"
-#: ../../mod/photos.php:879
+#: ../../mod/photos.php:906
msgid "Permission denied. Access to this item may be restricted."
msgstr ""
-#: ../../mod/photos.php:881
+#: ../../mod/photos.php:908
msgid "Photo not available"
msgstr "Ð¤Ð¾Ñ‚Ð¾Ð³Ñ€Ð°Ñ„Ð¸Ñ Ð½Ðµ доÑтупна"
-#: ../../mod/photos.php:939
+#: ../../mod/photos.php:966
msgid "Use as profile photo"
msgstr "ИÑпользовать в качеÑтве фотографии профилÑ"
-#: ../../mod/photos.php:967
+#: ../../mod/photos.php:990
msgid "View Full Size"
msgstr "ПоÑмотреть в полный размер"
-#: ../../mod/photos.php:1021
+#: ../../mod/photos.php:1044
msgid "Edit photo"
msgstr "Редактировать фотографию"
-#: ../../mod/photos.php:1023
+#: ../../mod/photos.php:1046
msgid "Rotate CW (right)"
msgstr "Повернуть CW (направо)"
-#: ../../mod/photos.php:1024
+#: ../../mod/photos.php:1047
msgid "Rotate CCW (left)"
msgstr "Повернуть CCW (налево)"
-#: ../../mod/photos.php:1026
+#: ../../mod/photos.php:1049
msgid "New album name"
msgstr "Ðовое название альбома:"
-#: ../../mod/photos.php:1029
+#: ../../mod/photos.php:1052
msgid "Caption"
msgstr "ПодпиÑÑŒ"
-#: ../../mod/photos.php:1031
+#: ../../mod/photos.php:1054
msgid "Add a Tag"
msgstr "Добавить тег"
-#: ../../mod/photos.php:1035
+#: ../../mod/photos.php:1058
msgid ""
"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
msgstr "Ðапример: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
-#: ../../mod/photos.php:1258
+#: ../../mod/photos.php:1285
msgid "View Album"
msgstr "ПоÑмотреть фотоальбом"
-#: ../../mod/photos.php:1267
+#: ../../mod/photos.php:1294
msgid "Recent Photos"
msgstr "ПоÑледние фотографии"
-#: ../../mod/ping.php:160
-msgid "sent you a private message"
-msgstr "отправил вам личное Ñообщение"
-
-#: ../../mod/ping.php:218
-msgid "added your channel"
-msgstr "добавил ваш канал"
-
-#: ../../mod/ping.php:230 ../../boot.php:1808 ../../boot.php:1888
-msgid "g A l F d"
-msgstr "g A l F d"
-
-#: ../../mod/ping.php:252 ../../boot.php:1854 ../../boot.php:1929
-msgid "[today]"
-msgstr "[ÑегоднÑ]"
-
-#: ../../mod/ping.php:262
-msgid "posted an event"
-msgstr ""
-
#: ../../mod/filer.php:35
msgid "- select -"
msgstr "- выбрать -"
#: ../../mod/menu.php:17
msgid "Menu updated."
-msgstr ""
+msgstr "Меню обновлено."
#: ../../mod/menu.php:21
msgid "Unable to update menu."
-msgstr ""
+msgstr "Ðевозможно обновление меню."
#: ../../mod/menu.php:26
msgid "Menu created."
-msgstr ""
+msgstr "Меню Ñоздано."
#: ../../mod/menu.php:30
msgid "Unable to create menu."
-msgstr ""
+msgstr "Ðевозможно Ñоздать меню."
#: ../../mod/menu.php:53
msgid "Manage Menus"
-msgstr ""
+msgstr "Управление меню"
#: ../../mod/menu.php:56
msgid "Drop"
-msgstr ""
-
-#: ../../mod/menu.php:57 ../../mod/network.php:298
-#: ../../mod/connections.php:521
-msgid "New"
-msgstr "Ðовые"
+msgstr "Удалить"
#: ../../mod/menu.php:58
msgid "Create a new menu"
-msgstr ""
+msgstr "Создать новое меню"
#: ../../mod/menu.php:59
msgid "Delete this menu"
-msgstr ""
+msgstr "Удалить Ñто меню"
#: ../../mod/menu.php:60 ../../mod/menu.php:104
msgid "Edit menu contents"
-msgstr ""
+msgstr "Редактировать Ñодержание меню"
#: ../../mod/menu.php:61
msgid "Edit this menu"
-msgstr ""
+msgstr "Редактировать Ñто меню"
#: ../../mod/menu.php:76
msgid "New Menu"
-msgstr ""
+msgstr "Ðовое меню"
#: ../../mod/menu.php:77 ../../mod/menu.php:105
msgid "Menu name"
-msgstr ""
+msgstr "Ðазвание меню"
#: ../../mod/menu.php:77 ../../mod/menu.php:105
msgid "Must be unique, only seen by you"
@@ -4249,7 +5154,7 @@ msgstr ""
#: ../../mod/menu.php:78 ../../mod/menu.php:106
msgid "Menu title"
-msgstr ""
+msgstr "Ðазвание меню"
#: ../../mod/menu.php:78 ../../mod/menu.php:106
msgid "Menu title as seen by others"
@@ -4257,7 +5162,7 @@ msgstr ""
#: ../../mod/menu.php:93
msgid "Menu deleted."
-msgstr ""
+msgstr "Меню удалено."
#: ../../mod/menu.php:95
msgid "Menu could not be deleted."
@@ -4265,647 +5170,190 @@ msgstr ""
#: ../../mod/menu.php:101
msgid "Edit Menu"
-msgstr ""
+msgstr "Редактировать меню"
#: ../../mod/menu.php:103
msgid "Add or remove entries to this menu"
msgstr ""
-#: ../../mod/home.php:76
+#: ../../mod/home.php:89
#, php-format
msgid "Welcome to %s"
msgstr "Добро пожаловать в %s"
-#: ../../mod/message.php:16
-msgid "Check Mail"
-msgstr "Проверить Ñнова"
-
-#: ../../mod/message.php:52
-msgid "Unable to lookup recipient."
-msgstr ""
-
-#: ../../mod/message.php:60
-msgid "Unable to communicate with requested channel."
-msgstr ""
-
-#: ../../mod/message.php:67
-msgid "Cannot verify requested channel."
-msgstr ""
-
-#: ../../mod/message.php:93
-msgid "Selected channel has private message restrictions. Send failed."
-msgstr ""
-
-#: ../../mod/message.php:213 ../../mod/notifications.php:101
-msgid "Messages"
-msgstr "ПерепиÑка"
-
-#: ../../mod/message.php:224
-msgid "Message deleted."
-msgstr "Сообщение удалено."
-
-#: ../../mod/message.php:231
-msgid "Conversation removed."
-msgstr "Разговор удален."
-
-#: ../../mod/message.php:282
-msgid "Send Private Message"
-msgstr "Отправить личное Ñообщение"
-
-#: ../../mod/message.php:283 ../../mod/message.php:448
-msgid "To:"
-msgstr "Кому:"
-
-#: ../../mod/message.php:288 ../../mod/message.php:450
-msgid "Subject:"
-msgstr "Тема:"
-
-#: ../../mod/message.php:317
-msgid "No messages."
-msgstr "Ðет Ñообщений."
-
-#: ../../mod/message.php:333 ../../mod/message.php:419
-msgid "Delete message"
-msgstr "Удалить Ñообщение"
-
-#: ../../mod/message.php:335
-msgid "D, d M Y - g:i A"
-msgstr "D, d M Y - g:i A"
-
-#: ../../mod/message.php:354
-msgid "Message not found."
-msgstr "Сообщение не найдено."
-
-#: ../../mod/message.php:441
-msgid "Delete conversation"
-msgstr "Удалить разговор"
-
-#: ../../mod/message.php:443
-msgid ""
-"No secure communications available. You <strong>may</strong> be able to "
-"respond from the sender's profile page."
-msgstr ""
-
-#: ../../mod/message.php:447
-msgid "Send Reply"
-msgstr "Отправить Ñнова"
-
-#: ../../mod/hcard.php:10
-msgid "No profile"
-msgstr "Профиль отÑутÑтвует"
-
-#: ../../mod/help.php:30
-msgid "Help:"
-msgstr "Помощь:"
-
-#: ../../mod/help.php:38 ../../index.php:226
-msgid "Not Found"
-msgstr "Ðе найдено"
-
-#: ../../mod/help.php:41 ../../index.php:229
-msgid "Page not found."
-msgstr "Страница не найдена."
-
-#: ../../mod/rmagic.php:56
-msgid "Remote Authentication"
-msgstr "Ð£Ð´Ð°Ð»ÐµÐ½Ð½Ð°Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ"
-
-#: ../../mod/rmagic.php:57
-msgid "Enter your channel address (e.g. channel@example.com)"
-msgstr "Введите Ð°Ð´Ñ€ÐµÑ Ð²Ð°ÑˆÐµÐ³Ð¾ канала (например: channel@example.com)"
-
-#: ../../mod/rmagic.php:58
-msgid "Authenticate"
-msgstr "Проверка подлинноÑти"
-
-#: ../../mod/network.php:141 ../../mod/search.php:20
-msgid "Remove term"
-msgstr "Удалить термин"
-
-#: ../../mod/network.php:279
-msgid "Commented Order"
-msgstr "По комментириÑм"
-
-#: ../../mod/network.php:282
-msgid "Sort by Comment Date"
-msgstr "Сортировка по дате ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸ÐµÐ²"
-
-#: ../../mod/network.php:285
-msgid "Posted Order"
-msgstr "По добавлениÑм"
-
-#: ../../mod/network.php:288
-msgid "Sort by Post Date"
-msgstr "Сортировка по дате ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑообщениÑ"
-
-#: ../../mod/network.php:292 ../../mod/notifications.php:86
-msgid "Personal"
-msgstr "Личные"
-
-#: ../../mod/network.php:295
-msgid "Posts that mention or involve you"
-msgstr "СообщениÑ, в которых упоминули или вовлекли ваÑ"
-
-#: ../../mod/network.php:301
-msgid "Activity Stream - by date"
-msgstr "Лента активноÑти - по дате"
-
-#: ../../mod/network.php:308
-msgid "Starred"
-msgstr "Помеченные"
-
-#: ../../mod/network.php:311
-msgid "Favourite Posts"
-msgstr "Фаворит-ÑообщениÑ"
-
-#: ../../mod/network.php:318
-msgid "Spam"
-msgstr "Спам"
-
-#: ../../mod/network.php:321
-msgid "Posts flagged as SPAM"
-msgstr "Как СПÐÐœ помеченные ÑообщениÑ"
-
-#: ../../mod/network.php:361
-msgid "Refresh"
-msgstr "Обновить"
-
-#: ../../mod/network.php:362 ../../mod/connections.php:374
-msgid "Me"
-msgstr "Я"
-
-#: ../../mod/network.php:363 ../../mod/connections.php:376
-msgid "Best Friends"
-msgstr "Лучшие друзьÑ"
-
-#: ../../mod/network.php:365
-msgid "Co-workers"
-msgstr "Сотрудники"
-
-#: ../../mod/network.php:366 ../../mod/connections.php:378
-msgid "Former Friends"
-msgstr "ПриÑтели"
-
-#: ../../mod/network.php:367 ../../mod/connections.php:379
-msgid "Acquaintances"
-msgstr "Знакомые"
-
-#: ../../mod/network.php:368
-msgid "Everybody"
-msgstr "Ð’Ñе"
-
-#: ../../mod/network.php:385
-msgid "Search Results For:"
-msgstr "Результаты поиÑка длÑ:"
-
-#: ../../mod/network.php:430
-msgid "No such group"
-msgstr "Ðет такой группы"
-
-#: ../../mod/network.php:441
-msgid "Group is empty"
-msgstr "Группа пуÑта"
-
-#: ../../mod/network.php:456
-msgid "Contact: "
-msgstr "Канал: "
-
-#: ../../mod/network.php:459
-msgid "Invalid contact."
-msgstr "ÐедейÑтвительный канал."
-
-#: ../../mod/intro.php:11 ../../mod/intro.php:98 ../../mod/admin.php:638
-#: ../../mod/notifications.php:159 ../../mod/notifications.php:206
-msgid "Approve"
-msgstr "Утвердить"
-
-#: ../../mod/intro.php:14 ../../mod/intro.php:99 ../../mod/connections.php:318
-#: ../../mod/connections.php:459 ../../mod/admin.php:641
-msgid "Block"
-msgstr "Заблокировать"
-
-#: ../../mod/intro.php:17 ../../mod/intro.php:100
-#: ../../mod/connections.php:325 ../../mod/connections.php:460
-#: ../../mod/notifications.php:51 ../../mod/notifications.php:162
-#: ../../mod/notifications.php:208
-msgid "Ignore"
-msgstr "Игнорировать"
-
-#: ../../mod/intro.php:29 ../../mod/connections.php:119
-msgid "Connection updated."
-msgstr "Канал обновлен."
-
-#: ../../mod/intro.php:31
-msgid "Connection update failed."
-msgstr "Ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð°."
-
-#: ../../mod/intro.php:56
-msgid "Introductions and Connection Requests"
-msgstr ""
-
-#: ../../mod/intro.php:67
-msgid "No pending introductions."
-msgstr "Введений в ожидании нет."
-
-#: ../../mod/intro.php:72
-msgid "System error. Please try again later."
-msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. ПожалуйÑта, повторите попытку позже."
-
-#: ../../mod/intro.php:95 ../../mod/connections.php:465
-#: ../../mod/notifications.php:155 ../../mod/notifications.php:202
-msgid "Hide this contact from others"
-msgstr "Скрыть Ñтот канал от других"
-
-#: ../../mod/intro.php:96 ../../mod/notifications.php:156
-#: ../../mod/notifications.php:203
-msgid "Post a new friend activity"
-msgstr ""
-
-#: ../../mod/intro.php:96 ../../mod/notifications.php:156
-#: ../../mod/notifications.php:203
-msgid "if applicable"
-msgstr "еÑли Ñто применимо"
-
-#: ../../mod/intro.php:101 ../../mod/notifications.php:35
-#: ../../mod/notifications.php:163 ../../mod/notifications.php:209
-msgid "Discard"
-msgstr "Отменить"
-
-#: ../../mod/connections.php:64
-msgid "Could not access contact record."
-msgstr ""
-
-#: ../../mod/connections.php:78
-msgid "Could not locate selected profile."
-msgstr ""
-
-#: ../../mod/connections.php:121
-msgid "Failed to update connection record."
-msgstr ""
-
-#: ../../mod/connections.php:196
-msgid "Could not access address book record."
-msgstr ""
-
-#: ../../mod/connections.php:210
-msgid "Refresh failed - channel is currently unavailable."
-msgstr ""
-
-#: ../../mod/connections.php:217
-msgid "Channel has been unblocked"
-msgstr "Канал разблокирован"
-
-#: ../../mod/connections.php:218
-msgid "Channel has been blocked"
-msgstr "Канал заблокирован"
-
-#: ../../mod/connections.php:222 ../../mod/connections.php:234
-#: ../../mod/connections.php:246 ../../mod/connections.php:258
-#: ../../mod/connections.php:273
-msgid "Unable to set address book parameters."
-msgstr ""
-
-#: ../../mod/connections.php:229
-msgid "Channel has been unignored"
-msgstr "Канал не проигнорирован"
-
-#: ../../mod/connections.php:230
-msgid "Channel has been ignored"
-msgstr "Канал проигнорирован"
-
-#: ../../mod/connections.php:241
-msgid "Channel has been unarchived"
-msgstr "Канал разархивирован"
-
-#: ../../mod/connections.php:242
-msgid "Channel has been archived"
-msgstr "Канал заархивирован"
-
-#: ../../mod/connections.php:253
-msgid "Channel has been unhidden"
-msgstr "Канал открыт"
-
-#: ../../mod/connections.php:254
-msgid "Channel has been hidden"
-msgstr "Канал Ñкрыт"
-
-#: ../../mod/connections.php:268
-msgid "Channel has been approved"
-msgstr "Канал одобрен"
-
-#: ../../mod/connections.php:269
-msgid "Channel has been unapproved"
-msgstr "Канал не одобрен"
-
-#: ../../mod/connections.php:287
-msgid "Contact has been removed."
-msgstr "Канал удален."
-
-#: ../../mod/connections.php:307
-#, php-format
-msgid "View %s's profile"
-msgstr "ПроÑмотр %s's профилÑ"
-
-#: ../../mod/connections.php:311
-msgid "Refresh Permissions"
-msgstr "Обновить разрешениÑ"
-
-#: ../../mod/connections.php:314
-msgid "Fetch updated permissions"
-msgstr ""
-
-#: ../../mod/connections.php:318 ../../mod/connections.php:459
-#: ../../mod/admin.php:642
-msgid "Unblock"
-msgstr "Разрешить"
-
-#: ../../mod/connections.php:321
-msgid "Block or Unblock this connection"
-msgstr "Запретить или разрешить Ñтот канал"
-
-#: ../../mod/connections.php:325 ../../mod/connections.php:460
-msgid "Unignore"
-msgstr "Ðе игнорировать"
-
-#: ../../mod/connections.php:328
-msgid "Ignore or Unignore this connection"
-msgstr "Игнорировать или не игнорировать Ñтот канал"
-
-#: ../../mod/connections.php:331
-msgid "Unarchive"
-msgstr "Разархивировать"
-
-#: ../../mod/connections.php:331
-msgid "Archive"
-msgstr "Заархивировать"
-
-#: ../../mod/connections.php:334
-msgid "Archive or Unarchive this connection"
-msgstr " Заархивировать или разархивировать Ñтот канал"
-
-#: ../../mod/connections.php:337
-msgid "Unhide"
-msgstr "Показать"
-
-#: ../../mod/connections.php:337
-msgid "Hide"
-msgstr "Скрыть"
-
-#: ../../mod/connections.php:340
-msgid "Hide or Unhide this connection"
-msgstr "Скрыть или показывать Ñтот канал"
-
-#: ../../mod/connections.php:347
-msgid "Delete this connection"
-msgstr "Удалить Ñтот контакт"
-
-#: ../../mod/connections.php:380
-msgid "Unknown"
-msgstr "ÐеизвеÑтный"
-
-#: ../../mod/connections.php:390 ../../mod/connections.php:418
-msgid "Approve this connection"
-msgstr "Утвердить Ñтот контакт"
-
-#: ../../mod/connections.php:390
-msgid "Accept connection to allow communication"
-msgstr ""
-
-#: ../../mod/connections.php:406
-msgid "Automatic Permissions Settings"
-msgstr "ÐаÑтройки автоматичеÑких разрешений"
-
-#: ../../mod/connections.php:406
-#, php-format
-msgid "Connections: settings for %s"
-msgstr ""
-
-#: ../../mod/connections.php:410
-msgid ""
-"When receiving a channel introduction, any permissions provided here will be"
-" applied to the new connection automatically and the introduction approved. "
-"Leave this page if you do not wish to use this feature."
-msgstr ""
-
-#: ../../mod/connections.php:412
-msgid "Slide to adjust your degree of friendship"
-msgstr ""
-
-#: ../../mod/connections.php:419
-msgid "Connection has no individual permissions!"
-msgstr ""
-
-#: ../../mod/connections.php:420
-msgid ""
-"This may be appropriate based on your <a href=\"settings\">privacy "
-"settings</a>, though you may wish to review the \"Advanced Permissions\"."
-msgstr ""
-
-#: ../../mod/connections.php:422
-msgid "Profile Visibility"
-msgstr "ВидимоÑÑ‚ÑŒ профилÑ"
-
-#: ../../mod/connections.php:423
-#, php-format
-msgid ""
-"Please choose the profile you would like to display to %s when viewing your "
-"profile securely."
-msgstr ""
-
-#: ../../mod/connections.php:424
-msgid "Contact Information / Notes"
-msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ / ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð¾ канале"
-
-#: ../../mod/connections.php:425
-msgid "Edit contact notes"
-msgstr "Редактировать Ð¿Ñ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð°"
-
-#: ../../mod/connections.php:427
-msgid "Their Settings"
-msgstr "Их наÑтройки"
-
-#: ../../mod/connections.php:428
-msgid "My Settings"
-msgstr "Мои наÑтройки"
-
-#: ../../mod/connections.php:430
-msgid "Forum Members"
-msgstr "УчаÑтники форума"
-
-#: ../../mod/connections.php:431
-msgid "Soapbox"
-msgstr "Soapbox"
-
-#: ../../mod/connections.php:432
-msgid "Full Sharing"
-msgstr "Полный обмен"
-
-#: ../../mod/connections.php:433
-msgid "Cautious Sharing"
-msgstr ""
-
-#: ../../mod/connections.php:434
-msgid "Follow Only"
-msgstr "Только Ñледовать"
-
-#: ../../mod/connections.php:435
-msgid "Individual Permissions"
-msgstr "Индивидуальные разрешениÑ"
-
-#: ../../mod/connections.php:436
-msgid ""
-"Individual permissions are only enabled for <a href=\"settings\">privacy "
-"settings</a> which are set to \"Only those you specifically allow\". "
-"Otherwise they are controlled by your privacy settings."
-msgstr ""
-
-#: ../../mod/connections.php:437
-msgid "Advanced Permissions"
-msgstr "Дополнительные разрешениÑ"
-
-#: ../../mod/connections.php:438
-msgid "Quick Links"
-msgstr "БыÑтрые ÑÑылки"
-
-#: ../../mod/connections.php:442
-#, php-format
-msgid "Visit %s's profile - %s"
-msgstr "ПоÑетить %s's ​​профиль - %s"
-
-#: ../../mod/connections.php:443
-msgid "Block/Unblock contact"
-msgstr "Запретить/разрешить контакт"
-
-#: ../../mod/connections.php:444
-msgid "Ignore contact"
-msgstr "Игнорировать контакт"
-
-#: ../../mod/connections.php:445
-msgid "Repair URL settings"
-msgstr "Ремонт наÑтройки URL"
-
-#: ../../mod/connections.php:446
-msgid "View conversations"
-msgstr "ПроÑмотр разговоров"
-
-#: ../../mod/connections.php:448
-msgid "Delete contact"
-msgstr "Удалить контакт"
-
-#: ../../mod/connections.php:451
-msgid "Last update:"
-msgstr "ПоÑледнее обновление:"
-
-#: ../../mod/connections.php:453
-msgid "Update public posts"
-msgstr "Обновить публичные ÑообщениÑ"
-
-#: ../../mod/connections.php:455
-msgid "Update now"
-msgstr "Обновить ÑейчаÑ"
+#: ../../mod/directory.php:143 ../../mod/profiles.php:573
+#: ../../mod/dirprofile.php:95
+msgid "Age: "
+msgstr "ВозраÑÑ‚:"
-#: ../../mod/connections.php:461
-msgid "Currently blocked"
-msgstr "Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½"
+#: ../../mod/directory.php:146 ../../mod/dirprofile.php:98
+msgid "Gender: "
+msgstr "Пол:"
-#: ../../mod/connections.php:462
-msgid "Currently ignored"
-msgstr "Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€ÑƒÑŽÑ‚ÑÑ"
+#: ../../mod/directory.php:206
+msgid "Finding:"
+msgstr "ПоиÑк:"
-#: ../../mod/connections.php:463
-msgid "Currently archived"
-msgstr "Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹"
+#: ../../mod/directory.php:214
+msgid "next page"
+msgstr "ÑÐ»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ñтраница"
-#: ../../mod/connections.php:464
-msgid "Currently pending"
-msgstr "Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð² ожидании"
+#: ../../mod/directory.php:214
+msgid "previous page"
+msgstr "Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ñтраница"
-#: ../../mod/connections.php:465
-msgid ""
-"Replies/likes to your public posts <strong>may</strong> still be visible"
+#: ../../mod/directory.php:221
+msgid "No entries (some entries may be hidden)."
msgstr ""
-#: ../../mod/connections.php:501 ../../mod/connections.php:573
+#: ../../mod/connections.php:189 ../../mod/connections.php:261
msgid "Blocked"
msgstr "Заблокированные"
-#: ../../mod/connections.php:506 ../../mod/connections.php:580
+#: ../../mod/connections.php:194 ../../mod/connections.php:268
msgid "Ignored"
msgstr "Игнорируемые"
-#: ../../mod/connections.php:511 ../../mod/connections.php:594
+#: ../../mod/connections.php:199 ../../mod/connections.php:282
msgid "Hidden"
msgstr "Скрытые"
-#: ../../mod/connections.php:516 ../../mod/connections.php:587
+#: ../../mod/connections.php:204 ../../mod/connections.php:275
msgid "Archived"
msgstr "Зархивированные"
-#: ../../mod/connections.php:527
+#: ../../mod/connections.php:215
msgid "All"
msgstr "Ð’Ñе"
-#: ../../mod/connections.php:548
-msgid "Suggestions"
-msgstr "Рекомендации"
-
-#: ../../mod/connections.php:551
+#: ../../mod/connections.php:239
msgid "Suggest new connections"
msgstr "Предлагать новые контакты"
-#: ../../mod/connections.php:557
+#: ../../mod/connections.php:245
msgid "Show pending (new) connections"
msgstr "ПроÑмотр (новых) ждущих контактов"
-#: ../../mod/connections.php:560
+#: ../../mod/connections.php:248
msgid "All Connections"
msgstr "Ð’Ñе контакты"
-#: ../../mod/connections.php:563
+#: ../../mod/connections.php:251
msgid "Show all connections"
msgstr "ПроÑмотр вÑех контактов"
-#: ../../mod/connections.php:566
+#: ../../mod/connections.php:254
msgid "Unblocked"
msgstr "Разрешенные"
-#: ../../mod/connections.php:569
+#: ../../mod/connections.php:257
msgid "Only show unblocked connections"
msgstr "Показать только разрешенные контакты"
-#: ../../mod/connections.php:576
+#: ../../mod/connections.php:264
msgid "Only show blocked connections"
msgstr "Показать только заблокированные контакты"
-#: ../../mod/connections.php:583
+#: ../../mod/connections.php:271
msgid "Only show ignored connections"
msgstr "Показать только проигнорированные контакты"
-#: ../../mod/connections.php:590
+#: ../../mod/connections.php:278
msgid "Only show archived connections"
msgstr "Показать только архивированные контакты"
-#: ../../mod/connections.php:597
+#: ../../mod/connections.php:285
msgid "Only show hidden connections"
msgstr "Показать только Ñкрытые контакты"
-#: ../../mod/connections.php:639
+#: ../../mod/connections.php:329
#, php-format
msgid "%1$s [%2$s]"
msgstr "%1$s [%2$s]"
-#: ../../mod/connections.php:640 ../../mod/nogroup.php:41
+#: ../../mod/connections.php:330
msgid "Edit contact"
msgstr "Редактировать контакт"
-#: ../../mod/connections.php:664
+#: ../../mod/connections.php:353
msgid "Search your connections"
msgstr "ПоиÑк ваших ÑвÑзей"
-#: ../../mod/connections.php:665
+#: ../../mod/connections.php:354
msgid "Finding: "
msgstr "ПоиÑк:"
+#: ../../mod/layouts.php:52
+msgid "Layout Help"
+msgstr ""
+
+#: ../../mod/layouts.php:55
+msgid "Help with this feature"
+msgstr ""
+
+#: ../../mod/layouts.php:74
+msgid "Layout Name"
+msgstr ""
+
+#: ../../mod/help.php:43 ../../mod/help.php:49 ../../mod/help.php:55
+msgid "Help:"
+msgstr "Помощь:"
+
+#: ../../mod/help.php:68 ../../index.php:224
+msgid "Not Found"
+msgstr "Ðе найдено"
+
+#: ../../mod/rmagic.php:56
+msgid "Remote Authentication"
+msgstr "Ð£Ð´Ð°Ð»ÐµÐ½Ð½Ð°Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ"
+
+#: ../../mod/rmagic.php:57
+msgid "Enter your channel address (e.g. channel@example.com)"
+msgstr "Введите Ð°Ð´Ñ€ÐµÑ Ð²Ð°ÑˆÐµÐ³Ð¾ канала (например: channel@example.com)"
+
+#: ../../mod/rmagic.php:58
+msgid "Authenticate"
+msgstr "Проверка подлинноÑти"
+
+#: ../../mod/network.php:79
+msgid "No such group"
+msgstr "Ðет такой группы"
+
+#: ../../mod/network.php:118
+msgid "Search Results For:"
+msgstr "Результаты поиÑка длÑ:"
+
+#: ../../mod/network.php:172
+msgid "Collection is empty"
+msgstr "ÐšÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ñ Ð¿ÑƒÑта"
+
+#: ../../mod/network.php:180
+msgid "Collection: "
+msgstr "Коллекции: "
+
+#: ../../mod/network.php:193
+msgid "Connection: "
+msgstr "Контакты: "
+
+#: ../../mod/network.php:196
+msgid "Invalid connection."
+msgstr ""
+
+#: ../../mod/follow.php:25
+msgid "Channel added."
+msgstr "Контакт добавлен."
+
+#: ../../mod/post.php:226
+msgid ""
+"Remote authentication blocked. You are logged into this site locally. Please"
+" logout and retry."
+msgstr ""
+
+#: ../../mod/post.php:256
+#, php-format
+msgid "Welcome %s. Remote authentication successful."
+msgstr ""
+
#: ../../mod/dirsearch.php:21
msgid "This site is not a directory server"
msgstr "Этот Ñайт не ÑвлÑетÑÑ Ñервером каталога"
@@ -4918,8 +5366,12 @@ msgstr ""
msgid "Visible to:"
msgstr "Кому видно:"
+#: ../../mod/magic.php:70
+msgid "Hub not found."
+msgstr "Hub не найден."
+
#: ../../mod/profiles.php:18 ../../mod/profiles.php:138
-#: ../../mod/profiles.php:179 ../../mod/profiles.php:486
+#: ../../mod/profiles.php:168 ../../mod/profiles.php:475
msgid "Profile not found."
msgstr "Профиль не найден."
@@ -4939,244 +5391,232 @@ msgstr "Ðовый профиль Ñоздан."
msgid "Profile unavailable to clone."
msgstr "Профиль недоÑтупен Ð´Ð»Ñ ÐºÐ»Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ."
-#: ../../mod/profiles.php:189
+#: ../../mod/profiles.php:178
msgid "Profile Name is required."
msgstr "Ð˜Ð¼Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ÑÑ."
-#: ../../mod/profiles.php:317
+#: ../../mod/profiles.php:306
msgid "Marital Status"
msgstr "Семейное положение"
-#: ../../mod/profiles.php:321
+#: ../../mod/profiles.php:310
msgid "Romantic Partner"
msgstr "РомантичеÑкий партнер"
-#: ../../mod/profiles.php:325
+#: ../../mod/profiles.php:314
msgid "Likes"
msgstr "мне нравитьÑÑ"
-#: ../../mod/profiles.php:329
+#: ../../mod/profiles.php:318
msgid "Dislikes"
msgstr "мне не-нравитьÑÑ"
-#: ../../mod/profiles.php:333
+#: ../../mod/profiles.php:322
msgid "Work/Employment"
msgstr "Работа / ЗанÑтоÑÑ‚ÑŒ"
-#: ../../mod/profiles.php:336
+#: ../../mod/profiles.php:325
msgid "Religion"
msgstr "РелигиÑ"
-#: ../../mod/profiles.php:340
+#: ../../mod/profiles.php:329
msgid "Political Views"
msgstr "ПолитичеÑкие взглÑды"
-#: ../../mod/profiles.php:344
+#: ../../mod/profiles.php:333
msgid "Gender"
msgstr "Пол"
-#: ../../mod/profiles.php:348
+#: ../../mod/profiles.php:337
msgid "Sexual Preference"
msgstr "СекÑÑƒÐ°Ð»ÑŒÐ½Ð°Ñ Ð¾Ñ€Ð¸ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ"
-#: ../../mod/profiles.php:352
+#: ../../mod/profiles.php:341
msgid "Homepage"
msgstr "ДомашнÑÑ Ñтраница"
-#: ../../mod/profiles.php:356
+#: ../../mod/profiles.php:345
msgid "Interests"
msgstr "ИнтереÑÑ‹"
-#: ../../mod/profiles.php:360
+#: ../../mod/profiles.php:349
msgid "Address"
msgstr "ÐдреÑ"
-#: ../../mod/profiles.php:367
+#: ../../mod/profiles.php:356 ../../mod/pubsites.php:31
msgid "Location"
msgstr "МеÑто"
-#: ../../mod/profiles.php:450
+#: ../../mod/profiles.php:439
msgid "Profile updated."
msgstr "Профиль обновлен."
-#: ../../mod/profiles.php:505
+#: ../../mod/profiles.php:494
msgid "Hide your contact/friend list from viewers of this profile?"
msgstr ""
-#: ../../mod/profiles.php:528
+#: ../../mod/profiles.php:517
msgid "Edit Profile Details"
msgstr "Редактирование профилÑ"
-#: ../../mod/profiles.php:530
+#: ../../mod/profiles.php:519
msgid "View this profile"
msgstr "ПоÑмотреть Ñтот профиль"
-#: ../../mod/profiles.php:531
+#: ../../mod/profiles.php:520
msgid "Change Profile Photo"
msgstr "Изменить фотографию профилÑ"
-#: ../../mod/profiles.php:532
+#: ../../mod/profiles.php:521
msgid "Create a new profile using these settings"
msgstr "Создайте новый профиль Ñо Ñледующими наÑтройками"
-#: ../../mod/profiles.php:533
+#: ../../mod/profiles.php:522
msgid "Clone this profile"
msgstr "Клонировать Ñтот профиль"
-#: ../../mod/profiles.php:534
+#: ../../mod/profiles.php:523
msgid "Delete this profile"
msgstr "Удалить Ñтот профиль"
-#: ../../mod/profiles.php:535
+#: ../../mod/profiles.php:524
msgid "Profile Name:"
msgstr "Ð˜Ð¼Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ:"
-#: ../../mod/profiles.php:536
+#: ../../mod/profiles.php:525
msgid "Your Full Name:"
msgstr "Ваше полное имÑ:"
-#: ../../mod/profiles.php:537
+#: ../../mod/profiles.php:526
msgid "Title/Description:"
msgstr "Ðазвание / ОпиÑание:"
-#: ../../mod/profiles.php:538
+#: ../../mod/profiles.php:527
msgid "Your Gender:"
msgstr "Ваш пол:"
-#: ../../mod/profiles.php:539
+#: ../../mod/profiles.php:528
#, php-format
msgid "Birthday (%s):"
msgstr "Ваш День Ð Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ (%s):"
-#: ../../mod/profiles.php:540
+#: ../../mod/profiles.php:529
msgid "Street Address:"
msgstr "Улица:"
-#: ../../mod/profiles.php:541
+#: ../../mod/profiles.php:530
msgid "Locality/City:"
msgstr "ÐаÑеленный пункт / город:"
-#: ../../mod/profiles.php:542
+#: ../../mod/profiles.php:531
msgid "Postal/Zip Code:"
msgstr "Почтовый индекÑ:"
-#: ../../mod/profiles.php:543
+#: ../../mod/profiles.php:532
msgid "Country:"
msgstr "Страна:"
-#: ../../mod/profiles.php:544
+#: ../../mod/profiles.php:533
msgid "Region/State:"
msgstr "Регион / ОблаÑÑ‚ÑŒ:"
-#: ../../mod/profiles.php:545
+#: ../../mod/profiles.php:534
msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
msgstr ""
-#: ../../mod/profiles.php:546
+#: ../../mod/profiles.php:535
msgid "Who: (if applicable)"
msgstr "Кто: (еÑли Ñто применимо)"
-#: ../../mod/profiles.php:547
+#: ../../mod/profiles.php:536
msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
msgstr ""
-#: ../../mod/profiles.php:548
+#: ../../mod/profiles.php:537
msgid "Since [date]:"
msgstr "С тех пор [date]:"
-#: ../../mod/profiles.php:550
+#: ../../mod/profiles.php:539
msgid "Homepage URL:"
msgstr "URL-Ð°Ð´Ñ€ÐµÑ Ð´Ð¾Ð¼Ð°ÑˆÐ½ÐµÐ¹ Ñтраницы:"
-#: ../../mod/profiles.php:553
+#: ../../mod/profiles.php:542
msgid "Religious Views:"
msgstr "Религиозные взглÑды:"
-#: ../../mod/profiles.php:554
+#: ../../mod/profiles.php:543
msgid "Keywords:"
msgstr "Ключевые Ñлова:"
-#: ../../mod/profiles.php:557
+#: ../../mod/profiles.php:546
msgid "Example: fishing photography software"
msgstr "Пример: fishing photography software"
-#: ../../mod/profiles.php:558
+#: ../../mod/profiles.php:547
msgid "Used in directory listings"
msgstr ""
-#: ../../mod/profiles.php:559
+#: ../../mod/profiles.php:548
msgid "Tell us about yourself..."
msgstr "РаÑÑкажите нам о Ñебе ..."
-#: ../../mod/profiles.php:560
+#: ../../mod/profiles.php:549
msgid "Hobbies/Interests"
msgstr "Хобби / интереÑÑ‹"
-#: ../../mod/profiles.php:561
+#: ../../mod/profiles.php:550
msgid "Contact information and Social Networks"
msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¸ Ñоциальные Ñети контакта"
-#: ../../mod/profiles.php:562
+#: ../../mod/profiles.php:551
msgid "My other channels"
msgstr "Мои другие контакты"
-#: ../../mod/profiles.php:563
+#: ../../mod/profiles.php:552
msgid "Musical interests"
msgstr "Музыкальные интереÑÑ‹"
-#: ../../mod/profiles.php:564
+#: ../../mod/profiles.php:553
msgid "Books, literature"
msgstr "Книги, литература"
-#: ../../mod/profiles.php:565
+#: ../../mod/profiles.php:554
msgid "Television"
msgstr "Телевидение"
-#: ../../mod/profiles.php:566
+#: ../../mod/profiles.php:555
msgid "Film/dance/culture/entertainment"
msgstr "Кино / танцы / культура / развлечениÑ"
-#: ../../mod/profiles.php:567
+#: ../../mod/profiles.php:556
msgid "Love/romance"
msgstr "Любовь / РоманÑ"
-#: ../../mod/profiles.php:568
+#: ../../mod/profiles.php:557
msgid "Work/employment"
msgstr "Работа / ЗанÑтоÑÑ‚ÑŒ"
-#: ../../mod/profiles.php:569
+#: ../../mod/profiles.php:558
msgid "School/education"
msgstr "Школа / образование"
-#: ../../mod/profiles.php:574
+#: ../../mod/profiles.php:563
msgid ""
"This is your <strong>public</strong> profile.<br />It <strong>may</strong> "
"be visible to anybody using the internet."
msgstr ""
-#: ../../mod/profiles.php:623
+#: ../../mod/profiles.php:612
msgid "Edit/Manage Profiles"
msgstr "Редактирование / Управление профилей"
-#: ../../mod/profiles.php:624 ../../boot.php:1710
-msgid "Change profile photo"
-msgstr "Изменить фотографию профилÑ"
-
-#: ../../mod/profiles.php:625 ../../boot.php:1717
-msgid "Create New Profile"
-msgstr "Создать новый профиль"
-
-#: ../../mod/profiles.php:636 ../../boot.php:1731
-msgid "Profile Image"
-msgstr "Изображение профилÑ"
-
-#: ../../mod/profiles.php:639 ../../boot.php:1734
-msgid "visible to everybody"
-msgstr "видно вÑем"
+#: ../../mod/profiles.php:613
+msgid "Add profile things"
+msgstr ""
-#: ../../mod/profiles.php:640 ../../boot.php:1735
-msgid "Edit visibility"
-msgstr "Редактировать видимоÑÑ‚ÑŒ"
+#: ../../mod/profiles.php:614
+msgid "Include desirable objects in your profile"
+msgstr ""
#: ../../mod/new_channel.php:107
msgid "Add a Channel"
@@ -5190,10 +5630,6 @@ msgid ""
"service provider allows."
msgstr ""
-#: ../../mod/new_channel.php:110
-msgid "Channel Name"
-msgstr "Ð˜Ð¼Ñ ÐºÐ°Ð½Ð°Ð»Ð°"
-
#: ../../mod/new_channel.php:111
msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "
msgstr ""
@@ -5212,494 +5648,49 @@ msgstr ""
msgid "Or <a href=\"import\">import an existing channel</a> from another location"
msgstr ""
-#: ../../mod/admin.php:48
-msgid "Theme settings updated."
-msgstr "ÐаÑтройки темы обновленны."
-
-#: ../../mod/admin.php:83 ../../mod/admin.php:408
-msgid "Site"
-msgstr "Сайт"
-
-#: ../../mod/admin.php:84 ../../mod/admin.php:632 ../../mod/admin.php:644
-msgid "Users"
-msgstr "Пользователи"
-
-#: ../../mod/admin.php:85 ../../mod/admin.php:726 ../../mod/admin.php:768
-msgid "Plugins"
-msgstr "Плагины"
-
-#: ../../mod/admin.php:86 ../../mod/admin.php:931 ../../mod/admin.php:967
-msgid "Themes"
-msgstr "Темы"
-
-#: ../../mod/admin.php:87
-msgid "DB updates"
-msgstr "ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ð°Ð·Ñ‹ данных"
-
-#: ../../mod/admin.php:101 ../../mod/admin.php:108 ../../mod/admin.php:1054
-msgid "Logs"
-msgstr "Журналы"
-
-#: ../../mod/admin.php:107
-msgid "Plugin Features"
-msgstr "Функции плагинов"
-
-#: ../../mod/admin.php:109
-msgid "User registrations waiting for confirmation"
-msgstr "РегиÑтрации пользователей, которые ждут подтверждениÑ"
-
-#: ../../mod/admin.php:180
-msgid "Message queues"
-msgstr "Очередь недоÑтавленных Ñообщений"
-
-#: ../../mod/admin.php:185 ../../mod/admin.php:407 ../../mod/admin.php:631
-#: ../../mod/admin.php:725 ../../mod/admin.php:767 ../../mod/admin.php:930
-#: ../../mod/admin.php:966 ../../mod/admin.php:1053
-msgid "Administration"
-msgstr "ÐдминиÑтрациÑ"
-
-#: ../../mod/admin.php:186
-msgid "Summary"
-msgstr "Резюме"
-
-#: ../../mod/admin.php:188
-msgid "Registered users"
-msgstr "Ð’Ñего пользователeй"
-
-#: ../../mod/admin.php:190
-msgid "Pending registrations"
-msgstr "Ждут утверждениÑ"
-
-#: ../../mod/admin.php:191
-msgid "Version"
-msgstr "ВерÑÐ¸Ñ ÑиÑтемы"
-
-#: ../../mod/admin.php:193
-msgid "Active plugins"
-msgstr "Ðктивные плагины"
-
-#: ../../mod/admin.php:332
-msgid "Site settings updated."
-msgstr "ÐаÑтройки Ñайта обновлены."
-
-#: ../../mod/admin.php:363
-msgid "No special theme for accessibility"
-msgstr ""
-
-#: ../../mod/admin.php:388
-msgid "Closed"
-msgstr "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð°"
-
-#: ../../mod/admin.php:389
-msgid "Requires approval"
-msgstr "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ подтверждениÑ"
-
-#: ../../mod/admin.php:390
-msgid "Open"
-msgstr "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð°"
-
-#: ../../mod/admin.php:395
-msgid "Private"
-msgstr "Личный доÑтуп"
-
-#: ../../mod/admin.php:396
-msgid "Paid Access"
-msgstr "Платный доÑтуп"
-
-#: ../../mod/admin.php:397
-msgid "Free Access"
-msgstr "Свободный доÑтуп"
-
-#: ../../mod/admin.php:410 ../../mod/register.php:172
-msgid "Registration"
-msgstr "РегиÑтрациÑ"
-
-#: ../../mod/admin.php:411
-msgid "File upload"
-msgstr "Загрузка файла"
-
-#: ../../mod/admin.php:412
-msgid "Policies"
-msgstr "Правила"
-
-#: ../../mod/admin.php:413
-msgid "Advanced"
-msgstr "Дополнительно"
-
-#: ../../mod/admin.php:417
-msgid "Site name"
-msgstr "Ðазвание Ñайта"
-
-#: ../../mod/admin.php:418
-msgid "Banner/Logo"
-msgstr "Баннер / логотип"
-
-#: ../../mod/admin.php:419
-msgid "System language"
-msgstr "Язык ÑиÑтемы"
-
-#: ../../mod/admin.php:420
-msgid "System theme"
-msgstr "Тема ÑиÑтемы"
-
-#: ../../mod/admin.php:420
-msgid ""
-"Default system theme - may be over-ridden by user profiles - <a href='#' "
-"id='cnftheme'>change theme settings</a>"
-msgstr ""
-
-#: ../../mod/admin.php:421
-msgid "Mobile system theme"
-msgstr "ÐœÐ¾Ð±Ð¸Ð»ÑŒÐ½Ð°Ñ Ñ‚ÐµÐ¼Ð° ÑиÑтемы"
-
-#: ../../mod/admin.php:421
-msgid "Theme for mobile devices"
-msgstr "Тема Ð´Ð»Ñ Ð¼Ð¾Ð±Ð¸Ð»ÑŒÐ½Ñ‹Ñ… уÑтройÑтв"
-
-#: ../../mod/admin.php:422
-msgid "Accessibility system theme"
-msgstr ""
-
-#: ../../mod/admin.php:422
-msgid "Accessibility theme"
-msgstr ""
-
-#: ../../mod/admin.php:423
-msgid "Channel to use for this website's static pages"
-msgstr ""
-
-#: ../../mod/admin.php:423
-msgid "Site Channel"
-msgstr "Канал Ñайта"
-
-#: ../../mod/admin.php:425
-msgid "Maximum image size"
-msgstr "МакÑимальный размер"
-
-#: ../../mod/admin.php:425
-msgid ""
-"Maximum size in bytes of uploaded images. Default is 0, which means no "
-"limits."
-msgstr ""
-
-#: ../../mod/admin.php:426
-msgid "Register policy"
-msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ€ÐµÐ³Ð¸Ñтрации"
-
-#: ../../mod/admin.php:427
-msgid "Access policy"
-msgstr "Правила доÑтупа"
-
-#: ../../mod/admin.php:428
-msgid "Register text"
-msgstr "ТекÑÑ‚ региÑтрации"
-
-#: ../../mod/admin.php:428
-msgid "Will be displayed prominently on the registration page."
-msgstr ""
-
-#: ../../mod/admin.php:429
-msgid "Accounts abandoned after x days"
-msgstr ""
-
-#: ../../mod/admin.php:429
-msgid ""
-"Will not waste system resources polling external sites for abandonded "
-"accounts. Enter 0 for no time limit."
-msgstr ""
-
-#: ../../mod/admin.php:430
-msgid "Allowed friend domains"
-msgstr ""
-
-#: ../../mod/admin.php:430
-msgid ""
-"Comma separated list of domains which are allowed to establish friendships "
-"with this site. Wildcards are accepted. Empty to allow any domains"
-msgstr ""
-
-#: ../../mod/admin.php:431
-msgid "Allowed email domains"
-msgstr ""
-
-#: ../../mod/admin.php:431
-msgid ""
-"Comma separated list of domains which are allowed in email addresses for "
-"registrations to this site. Wildcards are accepted. Empty to allow any "
-"domains"
-msgstr ""
-
-#: ../../mod/admin.php:432
-msgid "Block public"
-msgstr "Блокировать публичный доÑтуп"
-
-#: ../../mod/admin.php:432
-msgid ""
-"Check to block public access to all otherwise public personal pages on this "
-"site unless you are currently logged in."
-msgstr ""
-
-#: ../../mod/admin.php:433
-msgid "Force publish"
-msgstr "ЗаÑтавить публиковать"
-
-#: ../../mod/admin.php:433
-msgid ""
-"Check to force all profiles on this site to be listed in the site directory."
-msgstr ""
-
-#: ../../mod/admin.php:435
-msgid "Proxy user"
-msgstr "Proxy пользователь"
-
-#: ../../mod/admin.php:436
-msgid "Proxy URL"
-msgstr "Proxy URL"
-
-#: ../../mod/admin.php:437
-msgid "Network timeout"
-msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ñети"
-
-#: ../../mod/admin.php:437
-msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
-msgstr ""
-
-#: ../../mod/admin.php:438
-msgid "Delivery interval"
-msgstr "Интервал доÑтавки"
-
-#: ../../mod/admin.php:438
-msgid ""
-"Delay background delivery processes by this many seconds to reduce system "
-"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
-"for large dedicated servers."
-msgstr ""
-
-#: ../../mod/admin.php:439
-msgid "Poll interval"
-msgstr "Интервал опроÑа"
-
-#: ../../mod/admin.php:439
-msgid ""
-"Delay background polling processes by this many seconds to reduce system "
-"load. If 0, use delivery interval."
-msgstr ""
-
-#: ../../mod/admin.php:440
-msgid "Maximum Load Average"
-msgstr ""
-
-#: ../../mod/admin.php:440
-msgid ""
-"Maximum system load before delivery and poll processes are deferred - "
-"default 50."
-msgstr ""
+#: ../../mod/filestorage.php:68
+msgid "Permission Denied."
+msgstr "ДоÑтуп запрещен."
-#: ../../mod/admin.php:456
-msgid "Update has been marked successful"
-msgstr ""
+#: ../../mod/filestorage.php:86
+msgid "File not found."
+msgstr "Файл не найден."
-#: ../../mod/admin.php:466
-#, php-format
-msgid "Executing %s failed. Check system logs."
-msgstr ""
+#: ../../mod/filestorage.php:120
+msgid "Edit file permissions"
+msgstr "Редактировать Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð°"
-#: ../../mod/admin.php:469
-#, php-format
-msgid "Update %s was successfully applied."
+#: ../../mod/filestorage.php:127
+msgid "Include all files and sub folders"
msgstr ""
-#: ../../mod/admin.php:473
-#, php-format
-msgid "Update %s did not return a status. Unknown if it succeeded."
+#: ../../mod/filestorage.php:128
+msgid "Return to file list"
msgstr ""
-#: ../../mod/admin.php:476
-#, php-format
-msgid "Update function %s could not be found."
+#: ../../mod/filestorage.php:130
+msgid "Copy/paste this code to attach file to a post"
msgstr ""
-#: ../../mod/admin.php:491
-msgid "No failed updates."
-msgstr "Ошибок обновлений нет."
-
-#: ../../mod/admin.php:495
-msgid "Failed Updates"
-msgstr "ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°Ð¼Ð¸"
-
-#: ../../mod/admin.php:497
-msgid "Mark success (if update was manually applied)"
+#: ../../mod/filestorage.php:131
+msgid "Copy/paste this URL to link file from a web page"
msgstr ""
-#: ../../mod/admin.php:498
-msgid "Attempt to execute this update step automatically"
+#: ../../mod/filestorage.php:168
+msgid "Download"
msgstr ""
-#: ../../mod/admin.php:524
-#, php-format
-msgid "%s user blocked/unblocked"
-msgid_plural "%s users blocked/unblocked"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-#: ../../mod/admin.php:531
-#, php-format
-msgid "%s user deleted"
-msgid_plural "%s users deleted"
-msgstr[0] "%s канал удален"
-msgstr[1] "%s канала удалены"
-msgstr[2] "%s каналов удалено"
-
-#: ../../mod/admin.php:562
-msgid "Account not found"
-msgstr "Ðккаунт не найден"
-
-#: ../../mod/admin.php:573
-#, php-format
-msgid "User '%s' deleted"
-msgstr "Пользователь '%s' удален"
-
-#: ../../mod/admin.php:582
-#, php-format
-msgid "User '%s' unblocked"
-msgstr "Пользователь '%s' разрешен"
-
-#: ../../mod/admin.php:582
-#, php-format
-msgid "User '%s' blocked"
-msgstr "Пользователь '%s' заблокирован"
-
-#: ../../mod/admin.php:613
-msgid "Normal Account"
-msgstr "Ðормальный аккаунт"
-
-#: ../../mod/admin.php:614
-msgid "Soapbox Account"
-msgstr "Soapbox аккаунт"
-
-#: ../../mod/admin.php:615
-msgid "Community/Celebrity Account"
-msgstr "Community/Celebrity аккаунт"
-
-#: ../../mod/admin.php:616
-msgid "Automatic Friend Account"
-msgstr "Ðккаунт \"автоматичеÑки друзьÑ\""
-
-#: ../../mod/admin.php:634
-msgid "select all"
-msgstr "выбрать вÑе"
-
-#: ../../mod/admin.php:635
-msgid "User registrations waiting for confirm"
-msgstr "РегиÑтрации пользователей ждут подтверждениÑ"
-
-#: ../../mod/admin.php:636
-msgid "Request date"
-msgstr "Дата запроÑа"
-
-#: ../../mod/admin.php:637
-msgid "No registrations."
-msgstr "Ðовых региÑтраций пока нет."
-
-#: ../../mod/admin.php:639
-msgid "Deny"
-msgstr "Запретить"
-
-#: ../../mod/admin.php:645
-msgid "Register date"
-msgstr "Дата региÑтрации"
-
-#: ../../mod/admin.php:645
-msgid "Last login"
-msgstr "ПоÑледний вход"
-
-#: ../../mod/admin.php:645
-msgid "Service Class"
-msgstr "КлаÑÑ Ñлужбы"
-
-#: ../../mod/admin.php:647
-msgid ""
-"Selected users will be deleted!\\n\\nEverything these users had posted on "
-"this site will be permanently deleted!\\n\\nAre you sure?"
+#: ../../mod/filestorage.php:174
+msgid "Used: "
msgstr ""
-#: ../../mod/admin.php:648
-msgid ""
-"The user {0} will be deleted!\\n\\nEverything this user has posted on this "
-"site will be permanently deleted!\\n\\nAre you sure?"
+#: ../../mod/filestorage.php:175
+msgid "[directory]"
msgstr ""
-#: ../../mod/admin.php:689
-#, php-format
-msgid "Plugin %s disabled."
-msgstr "Плагин %s отключен."
-
-#: ../../mod/admin.php:693
-#, php-format
-msgid "Plugin %s enabled."
-msgstr "Плагин %s включен."
-
-#: ../../mod/admin.php:703 ../../mod/admin.php:901
-msgid "Disable"
-msgstr "Запретить"
-
-#: ../../mod/admin.php:705 ../../mod/admin.php:903
-msgid "Enable"
-msgstr "Разрешить"
-
-#: ../../mod/admin.php:727 ../../mod/admin.php:932
-msgid "Toggle"
-msgstr "Переключить"
-
-#: ../../mod/admin.php:735 ../../mod/admin.php:942
-msgid "Author: "
-msgstr "Ðвтор: "
-
-#: ../../mod/admin.php:736 ../../mod/admin.php:943
-msgid "Maintainer: "
-msgstr "ОбÑлуживающий: "
-
-#: ../../mod/admin.php:865
-msgid "No themes found."
-msgstr "Темы не найдены."
-
-#: ../../mod/admin.php:924
-msgid "Screenshot"
-msgstr "Скриншот"
-
-#: ../../mod/admin.php:972
-msgid "[Experimental]"
-msgstr "[ÑкÑпериментальный]"
-
-#: ../../mod/admin.php:973
-msgid "[Unsupported]"
-msgstr "[неподдерживаемый]"
-
-#: ../../mod/admin.php:1000
-msgid "Log settings updated."
-msgstr "ÐаÑтройки журнала обновленны."
-
-#: ../../mod/admin.php:1056
-msgid "Clear"
-msgstr "ОчиÑтить"
-
-#: ../../mod/admin.php:1062
-msgid "Debugging"
-msgstr "Включить/Выключить"
-
-#: ../../mod/admin.php:1063
-msgid "Log file"
-msgstr "Файл журнала"
-
-#: ../../mod/admin.php:1063
-msgid ""
-"Must be writable by web server. Relative to your Red top-level directory."
-msgstr "Должна быть доÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи веб-Ñервером. ОтноÑительно верхнего ÑƒÑ€Ð¾Ð²Ð½Ñ Ð²ÐµÐ±-Ñайта."
-
-#: ../../mod/admin.php:1064
-msgid "Log level"
-msgstr "Уровень журнала"
+#: ../../mod/filestorage.php:177
+msgid "Limit: "
+msgstr "Предел: "
#: ../../mod/lostpass.php:15
msgid "No valid account found."
@@ -5725,7 +5716,7 @@ msgid ""
"Password reset failed."
msgstr ""
-#: ../../mod/lostpass.php:85 ../../boot.php:1439
+#: ../../mod/lostpass.php:85 ../../boot.php:1426
msgid "Password Reset"
msgstr "СброÑить пароль"
@@ -5799,19 +5790,19 @@ msgstr ""
msgid "Cloned channel not found. Import failed."
msgstr ""
-#: ../../mod/import.php:356
+#: ../../mod/import.php:358
msgid "Import completed."
msgstr "Импорт завершен."
-#: ../../mod/import.php:369
+#: ../../mod/import.php:371
msgid "You must be logged in to use this feature."
msgstr "Ð’Ñ‹ должны войти в ÑиÑтему, чтобы иÑпользовать Ñту функцию."
-#: ../../mod/import.php:374
+#: ../../mod/import.php:376
msgid "Import Channel"
msgstr "Импорт канала"
-#: ../../mod/import.php:375
+#: ../../mod/import.php:377
msgid ""
"Use this form to import an existing channel from a different server/hub. You"
" may retrieve the channel identity from the old server/hub via the network "
@@ -5819,27 +5810,27 @@ msgid ""
"be imported. Importation of content is not yet available."
msgstr ""
-#: ../../mod/import.php:376
+#: ../../mod/import.php:378
msgid "File to Upload"
msgstr "Файл Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸"
-#: ../../mod/import.php:377
+#: ../../mod/import.php:379
msgid "Or provide the old server/hub details"
msgstr ""
-#: ../../mod/import.php:378
+#: ../../mod/import.php:380
msgid "Your old identity address (xyz@example.com)"
msgstr ""
-#: ../../mod/import.php:379
+#: ../../mod/import.php:381
msgid "Your old login email address"
msgstr "Ваш Ñтарый Ð°Ð´Ñ€ÐµÑ Ñлектронной почты"
-#: ../../mod/import.php:380
+#: ../../mod/import.php:382
msgid "Your old login password"
msgstr "Ваш Ñтарый пароль"
-#: ../../mod/import.php:381
+#: ../../mod/import.php:383
msgid ""
"For either option, please choose whether to make this hub your new primary "
"address, or whether your old location should continue this role. You will be"
@@ -5847,36 +5838,36 @@ msgid ""
"primary location for files, photos, and media."
msgstr ""
-#: ../../mod/import.php:382
+#: ../../mod/import.php:384
msgid "Make this hub my primary location"
msgstr ""
-#: ../../mod/manage.php:62
+#: ../../mod/manage.php:63
#, php-format
msgid "You have created %1$.0f of %2$.0f allowed channels."
msgstr ""
-#: ../../mod/manage.php:70
+#: ../../mod/manage.php:71
msgid "Create a new channel"
msgstr "Создать новый канал"
-#: ../../mod/manage.php:75
+#: ../../mod/manage.php:76
msgid "Channel Manager"
msgstr "ÐаÑтройки канала"
-#: ../../mod/manage.php:76
+#: ../../mod/manage.php:77
msgid "Current Channel"
msgstr "Текущий канал"
-#: ../../mod/manage.php:78
+#: ../../mod/manage.php:79
msgid "Attach to one of your channels by selecting it."
msgstr ""
-#: ../../mod/manage.php:79
+#: ../../mod/manage.php:80
msgid "Default Channel"
msgstr "Канал по умолчанию"
-#: ../../mod/manage.php:80
+#: ../../mod/manage.php:81
msgid "Make Default"
msgstr "Сделать Ñтандартным"
@@ -5888,354 +5879,620 @@ msgstr ""
msgid "Average Rating"
msgstr ""
-#: ../../mod/match.php:12
+#: ../../mod/match.php:16
msgid "Profile Match"
msgstr ""
-#: ../../mod/match.php:20
+#: ../../mod/match.php:24
msgid "No keywords to match. Please add keywords to your default profile."
msgstr ""
-#: ../../mod/match.php:57
+#: ../../mod/match.php:61
msgid "is interested in:"
msgstr "заинтереÑован в:"
-#: ../../mod/crepair.php:102
-msgid "Contact settings applied."
+#: ../../mod/match.php:69
+msgid "No matches"
+msgstr "Ðет ÑоответÑтвий"
+
+#: ../../mod/zfinger.php:23
+msgid "invalid target signature"
msgstr ""
-#: ../../mod/crepair.php:104
-msgid "Contact update failed."
-msgstr "Ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ð°."
+#: ../../mod/settings.php:71
+msgid "Name is required"
+msgstr "Ðеобходимо имÑ"
-#: ../../mod/crepair.php:129 ../../mod/fsuggest.php:20
-#: ../../mod/fsuggest.php:92
-msgid "Contact not found."
-msgstr "Контакт не найден."
+#: ../../mod/settings.php:75
+msgid "Key and Secret are required"
+msgstr ""
-#: ../../mod/crepair.php:135
-msgid "Repair Contact Settings"
-msgstr "Починить наÑтройки контакта"
+#: ../../mod/settings.php:79 ../../mod/settings.php:533
+msgid "Update"
+msgstr "Обновление"
-#: ../../mod/crepair.php:137
-msgid ""
-"<strong>WARNING: This is highly advanced</strong> and if you enter incorrect"
-" information your communications with this contact may stop working."
+#: ../../mod/settings.php:192
+msgid "Passwords do not match. Password unchanged."
+msgstr "Пароли не Ñовпадают. Пароль не изменён."
+
+#: ../../mod/settings.php:196
+msgid "Empty passwords are not allowed. Password unchanged."
+msgstr "ПуÑтые пароли не допуÑкаютÑÑ. Пароль не изменён."
+
+#: ../../mod/settings.php:209
+msgid "Password changed."
+msgstr "Пароль изменен."
+
+#: ../../mod/settings.php:211
+msgid "Password update failed. Please try again."
+msgstr "Изменение Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð·Ð°ÐºÐ¾Ð½Ñ‡Ð¸Ð»Ð¾ÑÑŒ неуÑпешно. ПожалуйÑта, попробуйте еще раз."
+
+#: ../../mod/settings.php:225
+msgid "Not valid email."
+msgstr "Ðе дейÑтвительный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты."
+
+#: ../../mod/settings.php:228
+msgid "Protected email address. Cannot change to that email."
+msgstr ""
+
+#: ../../mod/settings.php:237
+msgid "System failure storing new email. Please try again."
msgstr ""
-#: ../../mod/crepair.php:138
+#: ../../mod/settings.php:435
+msgid "Settings updated."
+msgstr "ÐаÑтройки обновленны."
+
+#: ../../mod/settings.php:506 ../../mod/settings.php:532
+#: ../../mod/settings.php:568
+msgid "Add application"
+msgstr "Добавить приложениÑ"
+
+#: ../../mod/settings.php:509
+msgid "Name of application"
+msgstr ""
+
+#: ../../mod/settings.php:510 ../../mod/settings.php:536
+msgid "Consumer Key"
+msgstr "Ключ клиента"
+
+#: ../../mod/settings.php:510 ../../mod/settings.php:511
+msgid "Automatically generated - change if desired. Max length 20"
+msgstr ""
+
+#: ../../mod/settings.php:511 ../../mod/settings.php:537
+msgid "Consumer Secret"
+msgstr "Секрет клиента"
+
+#: ../../mod/settings.php:512 ../../mod/settings.php:538
+msgid "Redirect"
+msgstr "Перенаправление"
+
+#: ../../mod/settings.php:512
msgid ""
-"Please use your browser 'Back' button <strong>now</strong> if you are "
-"uncertain what to do on this page."
+"Redirect URI - leave blank unless your application specifically requires "
+"this"
+msgstr ""
+
+#: ../../mod/settings.php:513 ../../mod/settings.php:539
+msgid "Icon url"
+msgstr "URL-Ð°Ð´Ñ€ÐµÑ Ð·Ð½Ð°Ñ‡ÐºÐ°"
+
+#: ../../mod/settings.php:513
+msgid "Optional"
+msgstr "ÐеобÑзательно"
+
+#: ../../mod/settings.php:524
+msgid "You can't edit this application."
+msgstr "Ð’Ñ‹ не можете редактировать Ñто приложение."
+
+#: ../../mod/settings.php:567
+msgid "Connected Apps"
+msgstr "Подключенные приложениÑ"
+
+#: ../../mod/settings.php:571
+msgid "Client key starts with"
msgstr ""
-#: ../../mod/crepair.php:144
-msgid "Return to contact editor"
-msgstr "ВернутьÑÑ Ðº редактору контакта"
+#: ../../mod/settings.php:572
+msgid "No name"
+msgstr "Без названиÑ"
+
+#: ../../mod/settings.php:573
+msgid "Remove authorization"
+msgstr "Удалить разрешение"
+
+#: ../../mod/settings.php:584
+msgid "No feature settings configured"
+msgstr "Параметры функций не наÑтроены"
+
+#: ../../mod/settings.php:592
+msgid "Feature Settings"
+msgstr "ÐаÑтройки функции"
+
+#: ../../mod/settings.php:615
+msgid "Account Settings"
+msgstr "ÐаÑтройки аккаунта"
+
+#: ../../mod/settings.php:616
+msgid "Password Settings"
+msgstr "ÐаÑтройки паролÑ"
+
+#: ../../mod/settings.php:617
+msgid "New Password:"
+msgstr "Ðовый пароль:"
+
+#: ../../mod/settings.php:618
+msgid "Confirm:"
+msgstr "Подтверждение:"
-#: ../../mod/crepair.php:149
-msgid "Account Nickname"
-msgstr "ПÑевдоним аккаунта"
+#: ../../mod/settings.php:618
+msgid "Leave password fields blank unless changing"
+msgstr "ОÑтавьте Ð¿Ð¾Ð»Ñ Ð¿ÑƒÑтыми, еÑли не менÑетÑÑ"
+
+#: ../../mod/settings.php:620 ../../mod/settings.php:912
+msgid "Email Address:"
+msgstr "ÐÐ´Ñ€ÐµÑ Ñлектронной почты:"
-#: ../../mod/crepair.php:150
-msgid "@Tagname - overrides Name/Nickname"
+#: ../../mod/settings.php:621
+msgid "Remove Account"
+msgstr "Удалить аккаунт"
+
+#: ../../mod/settings.php:622
+msgid "Warning: This action is permanent and cannot be reversed."
msgstr ""
-#: ../../mod/crepair.php:151
-msgid "Account URL"
-msgstr "URL аккаунта"
+#: ../../mod/settings.php:638
+msgid "Off"
+msgstr "Выкл."
+
+#: ../../mod/settings.php:638
+msgid "On"
+msgstr "Вкл."
+
+#: ../../mod/settings.php:645
+msgid "Additional Features"
+msgstr "Дополнительные функции"
-#: ../../mod/crepair.php:152
-msgid "Friend Request URL"
+#: ../../mod/settings.php:670
+msgid "Connector Settings"
+msgstr "ÐаÑтройки ÑоединителÑ"
+
+#: ../../mod/settings.php:740
+msgid "Display Settings"
+msgstr "ÐаÑтройки отображениÑ"
+
+#: ../../mod/settings.php:746
+msgid "Display Theme:"
+msgstr "Тема отображениÑ:"
+
+#: ../../mod/settings.php:747
+msgid "Mobile Theme:"
+msgstr "ÐœÐ¾Ð±Ð¸Ð»ÑŒÐ½Ð°Ñ Ñ‚ÐµÐ¼Ð° отображениÑ:"
+
+#: ../../mod/settings.php:748
+msgid "Update browser every xx seconds"
+msgstr "Обновление браузера каждые ХХ Ñекунд"
+
+#: ../../mod/settings.php:748
+msgid "Minimum of 10 seconds, no maximum"
+msgstr "Минимум 10 Ñекунд, без макÑимума"
+
+#: ../../mod/settings.php:749
+msgid "Maximum number of conversations to load at any time:"
msgstr ""
-#: ../../mod/crepair.php:153
-msgid "Friend Confirm URL"
+#: ../../mod/settings.php:749
+msgid "Maximum of 100 items"
+msgstr "МакÑимум 100 Ñлементов"
+
+#: ../../mod/settings.php:750
+msgid "Don't show emoticons"
+msgstr "Ðе показывать emoticons"
+
+#: ../../mod/settings.php:786
+msgid "Nobody except yourself"
+msgstr "Ðикто, кроме ваÑ"
+
+#: ../../mod/settings.php:787
+msgid "Only those you specifically allow"
+msgstr "Только комы вы разрешили"
+
+#: ../../mod/settings.php:788
+msgid "Anybody in your address book"
+msgstr "Любой в вашей адреÑной книге"
+
+#: ../../mod/settings.php:789
+msgid "Anybody on this website"
+msgstr "Любой на Ñтом веб-Ñайте"
+
+#: ../../mod/settings.php:790
+msgid "Anybody in this network"
+msgstr "Любой в Ñтой Ñети"
+
+#: ../../mod/settings.php:791
+msgid "Anybody on the internet"
+msgstr "Любой в интернете"
+
+#: ../../mod/settings.php:865
+msgid "Publish your default profile in the network directory"
+msgstr "ÐŸÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Ð¿Ð¾ умолчанию в каталоге Ñети"
+
+#: ../../mod/settings.php:870
+msgid "Allow us to suggest you as a potential friend to new members?"
msgstr ""
-#: ../../mod/crepair.php:154
-msgid "Notification Endpoint URL"
+#: ../../mod/settings.php:874 ../../mod/profile_photo.php:288
+msgid "or"
+msgstr "или"
+
+#: ../../mod/settings.php:879
+msgid "Your channel address is"
+msgstr "ÐÐ´Ñ€ÐµÑ Ð²Ð°ÑˆÐµÐ³Ð¾ канала:"
+
+#: ../../mod/settings.php:901
+msgid "Channel Settings"
+msgstr "ÐаÑтройки канала"
+
+#: ../../mod/settings.php:910
+msgid "Basic Settings"
+msgstr "ОÑновные наÑтройки"
+
+#: ../../mod/settings.php:913
+msgid "Your Timezone:"
+msgstr "Ваш чаÑовой поÑÑ:"
+
+#: ../../mod/settings.php:914
+msgid "Default Post Location:"
+msgstr "Откуда по умолчанию:"
+
+#: ../../mod/settings.php:915
+msgid "Use Browser Location:"
+msgstr "ИÑпользуйте указание браузерa:"
+
+#: ../../mod/settings.php:917
+msgid "Adult Content"
msgstr ""
-#: ../../mod/crepair.php:155
-msgid "Poll/Feed URL"
+#: ../../mod/settings.php:917
+msgid "This channel publishes adult content."
msgstr ""
-#: ../../mod/crepair.php:156
-msgid "New photo from this URL"
-msgstr "Ðовое фото из Ñтого URL"
+#: ../../mod/settings.php:919
+msgid "Security and Privacy Settings"
+msgstr "Параметры безопаÑноÑти и конфиденциальноÑти"
-#: ../../mod/zfinger.php:23
-msgid "invalid target signature"
+#: ../../mod/settings.php:921
+msgid "Quick Privacy Settings:"
+msgstr "БыÑтрые параметры безопаÑноÑти и конфиденциальноÑти:"
+
+#: ../../mod/settings.php:922
+msgid "Very Public - extremely permissive"
+msgstr "Очень публично - чрезвычайно разрешающе"
+
+#: ../../mod/settings.php:923
+msgid "Typical - default public, privacy when desired"
+msgstr "Типично - по умолчанию публично, конфиденциальноÑÑ‚ÑŒ, только еÑли наÑтроена"
+
+#: ../../mod/settings.php:924
+msgid "Private - default private, rarely open or public"
+msgstr "ЧаÑтно - по умолчанию чаÑтно, редко открыто или публично"
+
+#: ../../mod/settings.php:925
+msgid "Blocked - default blocked to/from everybody"
+msgstr "Заблокированно - по умолчанию заблокировано длÑ/от вÑех"
+
+#: ../../mod/settings.php:928
+msgid "Maximum Friend Requests/Day:"
msgstr ""
-#: ../../mod/follow.php:25
-msgid "Channel added."
-msgstr "Контакт добавлен."
+#: ../../mod/settings.php:928
+msgid "May reduce spam activity"
+msgstr ""
+
+#: ../../mod/settings.php:929
+msgid "Default Post Permissions"
+msgstr ""
+
+#: ../../mod/settings.php:941
+msgid "Maximum private messages per day from unknown people:"
+msgstr ""
+
+#: ../../mod/settings.php:941
+msgid "Useful to reduce spamming"
+msgstr ""
+
+#: ../../mod/settings.php:944
+msgid "Notification Settings"
+msgstr "ÐаÑтройки уведомлений"
+
+#: ../../mod/settings.php:945
+msgid "By default post a status message when:"
+msgstr ""
+
+#: ../../mod/settings.php:946
+msgid "accepting a friend request"
+msgstr ""
+
+#: ../../mod/settings.php:947
+msgid "joining a forum/community"
+msgstr ""
+
+#: ../../mod/settings.php:948
+msgid "making an <em>interesting</em> profile change"
+msgstr ""
+
+#: ../../mod/settings.php:949
+msgid "Send a notification email when:"
+msgstr "Отправить уведомление по Ñлектронной почте, еÑли:"
+
+#: ../../mod/settings.php:950
+msgid "You receive an introduction"
+msgstr "Вы получили введение"
+
+#: ../../mod/settings.php:951
+msgid "Your introductions are confirmed"
+msgstr ""
+
+#: ../../mod/settings.php:952
+msgid "Someone writes on your profile wall"
+msgstr ""
+
+#: ../../mod/settings.php:953
+msgid "Someone writes a followup comment"
+msgstr ""
+
+#: ../../mod/settings.php:954
+msgid "You receive a private message"
+msgstr ""
+
+#: ../../mod/settings.php:955
+msgid "You receive a friend suggestion"
+msgstr ""
+
+#: ../../mod/settings.php:956
+msgid "You are tagged in a post"
+msgstr ""
+
+#: ../../mod/settings.php:957
+msgid "You are poked/prodded/etc. in a post"
+msgstr ""
+
+#: ../../mod/settings.php:960
+msgid "Advanced Account/Page Type Settings"
+msgstr ""
+
+#: ../../mod/settings.php:961
+msgid "Change the behaviour of this account for special situations"
+msgstr ""
+
+#: ../../mod/mail.php:33
+msgid "Unable to lookup recipient."
+msgstr ""
+
+#: ../../mod/mail.php:41
+msgid "Unable to communicate with requested channel."
+msgstr ""
+
+#: ../../mod/mail.php:48
+msgid "Cannot verify requested channel."
+msgstr ""
+
+#: ../../mod/mail.php:74
+msgid "Selected channel has private message restrictions. Send failed."
+msgstr ""
-#: ../../mod/editlayout.php:37 ../../mod/editwebpage.php:31
-#: ../../mod/editpost.php:20 ../../mod/editblock.php:37
+#: ../../mod/mail.php:121 ../../mod/message.php:31
+msgid "Messages"
+msgstr "ПерепиÑка"
+
+#: ../../mod/mail.php:132
+msgid "Message deleted."
+msgstr "Сообщение удалено."
+
+#: ../../mod/mail.php:149
+msgid "Message recalled."
+msgstr ""
+
+#: ../../mod/mail.php:206
+msgid "Send Private Message"
+msgstr "Отправить личное Ñообщение"
+
+#: ../../mod/mail.php:207 ../../mod/mail.php:323
+msgid "To:"
+msgstr "Кому:"
+
+#: ../../mod/mail.php:212 ../../mod/mail.php:325
+msgid "Subject:"
+msgstr "Тема:"
+
+#: ../../mod/mail.php:249
+msgid "Message not found."
+msgstr "Сообщение не найдено."
+
+#: ../../mod/mail.php:292 ../../mod/message.php:72
+msgid "Delete message"
+msgstr "Удалить Ñообщение"
+
+#: ../../mod/mail.php:293
+msgid "Recall message"
+msgstr ""
+
+#: ../../mod/mail.php:295
+msgid "Message has been recalled."
+msgstr ""
+
+#: ../../mod/mail.php:312
+msgid "Private Conversation"
+msgstr "Личный разговор"
+
+#: ../../mod/mail.php:316
+msgid "Delete conversation"
+msgstr "Удалить разговор"
+
+#: ../../mod/mail.php:318
+msgid ""
+"No secure communications available. You <strong>may</strong> be able to "
+"respond from the sender's profile page."
+msgstr ""
+
+#: ../../mod/mail.php:322
+msgid "Send Reply"
+msgstr "Отправить Ñнова"
+
+#: ../../mod/editlayout.php:36 ../../mod/editpost.php:20
+#: ../../mod/editwebpage.php:32 ../../mod/editblock.php:36
msgid "Item not found"
msgstr "Элемент не найден"
-#: ../../mod/editlayout.php:69
+#: ../../mod/editlayout.php:68
msgid "Edit Layout"
msgstr ""
-#: ../../mod/editlayout.php:105 ../../mod/editwebpage.php:124
-#: ../../mod/editpost.php:98 ../../mod/editblock.php:119
+#: ../../mod/editlayout.php:105 ../../mod/editpost.php:102
+#: ../../mod/editwebpage.php:148 ../../mod/editblock.php:119
msgid "Insert YouTube video"
msgstr "Ð’Ñтавить YouTube видео"
-#: ../../mod/editlayout.php:106 ../../mod/editwebpage.php:125
-#: ../../mod/editpost.php:99 ../../mod/editblock.php:120
+#: ../../mod/editlayout.php:106 ../../mod/editpost.php:103
+#: ../../mod/editwebpage.php:149 ../../mod/editblock.php:120
msgid "Insert Vorbis [.ogg] video"
msgstr "Ð’Ñтавить Vorbis [.ogg] видео"
-#: ../../mod/editlayout.php:107 ../../mod/editwebpage.php:126
-#: ../../mod/editpost.php:100 ../../mod/editblock.php:121
+#: ../../mod/editlayout.php:107 ../../mod/editpost.php:104
+#: ../../mod/editwebpage.php:150 ../../mod/editblock.php:121
msgid "Insert Vorbis [.ogg] audio"
msgstr "Ð’Ñтавить Vorbis [.ogg] музыку"
-#: ../../mod/editlayout.php:138
+#: ../../mod/editlayout.php:141
msgid "Delete Layout"
msgstr ""
-#: ../../mod/nogroup.php:58
-msgid "Contacts who are not members of a group"
-msgstr ""
-
-#: ../../mod/profile_photo.php:54
+#: ../../mod/profile_photo.php:44
msgid "Image uploaded but image cropping failed."
msgstr ""
-#: ../../mod/profile_photo.php:107
+#: ../../mod/profile_photo.php:97
msgid "Image resize failed."
msgstr "Изменение размера Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð½Ðµ удалоÑÑŒ."
-#: ../../mod/profile_photo.php:151
+#: ../../mod/profile_photo.php:141
msgid ""
"Shift-reload the page or clear browser cache if the new photo does not "
"display immediately."
msgstr ""
-#: ../../mod/profile_photo.php:173
+#: ../../mod/profile_photo.php:163
#, php-format
msgid "Image exceeds size limit of %d"
msgstr ""
-#: ../../mod/profile_photo.php:182
+#: ../../mod/profile_photo.php:172
msgid "Unable to process image."
msgstr ""
-#: ../../mod/profile_photo.php:224 ../../mod/profile_photo.php:272
+#: ../../mod/profile_photo.php:214 ../../mod/profile_photo.php:262
msgid "Photo not available."
msgstr "Ð¤Ð¾Ñ‚Ð¾Ð³Ñ€Ð°Ñ„Ð¸Ñ Ð½Ðµ доÑтупна."
-#: ../../mod/profile_photo.php:291
+#: ../../mod/profile_photo.php:281
msgid "Upload File:"
msgstr "Загрузить файл:"
-#: ../../mod/profile_photo.php:292
+#: ../../mod/profile_photo.php:282
msgid "Select a profile:"
msgstr "Выберите профиль:"
-#: ../../mod/profile_photo.php:293
+#: ../../mod/profile_photo.php:283
msgid "Upload Profile Photo"
msgstr "Загрузить фотографию профилÑ"
-#: ../../mod/profile_photo.php:294
+#: ../../mod/profile_photo.php:284
msgid "Upload"
msgstr "Загрузка"
-#: ../../mod/profile_photo.php:298
+#: ../../mod/profile_photo.php:288
msgid "skip this step"
msgstr "пропуÑтить Ñтот шаг"
-#: ../../mod/profile_photo.php:298
+#: ../../mod/profile_photo.php:288
msgid "select a photo from your photo albums"
msgstr ""
-#: ../../mod/profile_photo.php:312
+#: ../../mod/profile_photo.php:302
msgid "Crop Image"
msgstr "Обрезать изображение"
-#: ../../mod/profile_photo.php:313
+#: ../../mod/profile_photo.php:303
msgid "Please adjust the image cropping for optimum viewing."
msgstr ""
-#: ../../mod/profile_photo.php:315
+#: ../../mod/profile_photo.php:305
msgid "Done Editing"
msgstr "Закончить редактирование"
-#: ../../mod/profile_photo.php:350
+#: ../../mod/profile_photo.php:340
msgid "Image uploaded successfully."
msgstr "Загрузка Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸ÐµÑ Ð¿Ñ€Ð¾ÑˆÐ»Ð° уÑпешно."
-#: ../../mod/profile_photo.php:352
+#: ../../mod/profile_photo.php:342
msgid "Image upload failed."
msgstr "Загрузка Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸ÐµÑ Ð¿Ñ€Ð¾ÑˆÐ»Ð° безуÑпешно."
-#: ../../mod/profile_photo.php:361
+#: ../../mod/profile_photo.php:351
#, php-format
msgid "Image size reduction [%s] failed."
msgstr ""
-#: ../../mod/editwebpage.php:88
-msgid "Edit Webpage"
-msgstr ""
+#: ../../mod/editpost.php:31
+msgid "Item is not editable"
+msgstr "Элемент Ð½ÐµÐ»ÑŒÐ·Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ"
-#: ../../mod/editwebpage.php:159
-msgid "Delete Webpage"
-msgstr ""
+#: ../../mod/editpost.php:53
+msgid "Delete item?"
+msgstr "Удалить Ñлемент?"
#: ../../mod/notifications.php:26
msgid "Invalid request identifier."
msgstr ""
-#: ../../mod/notifications.php:76
-msgid "System"
-msgstr "СиÑтема"
-
-#: ../../mod/notifications.php:96
-msgid "Introductions"
-msgstr "ВведениÑ"
-
-#: ../../mod/notifications.php:121
-msgid "Show Ignored Requests"
-msgstr "Показать проигнорированные запроÑÑ‹"
-
-#: ../../mod/notifications.php:121
-msgid "Hide Ignored Requests"
-msgstr "Скрыть проигнорированные запроÑÑ‹"
-
-#: ../../mod/notifications.php:147 ../../mod/notifications.php:193
-msgid "Notification type: "
-msgstr "Тип оповещениÑ:"
-
-#: ../../mod/notifications.php:148
-msgid "Friend Suggestion"
-msgstr ""
-
-#: ../../mod/notifications.php:150
-#, php-format
-msgid "suggested by %s"
-msgstr ""
-
-#: ../../mod/notifications.php:179
-msgid "Claims to be known to you: "
-msgstr ""
-
-#: ../../mod/notifications.php:179
-msgid "yes"
-msgstr "да"
-
-#: ../../mod/notifications.php:179
-msgid "no"
-msgstr "нет"
-
-#: ../../mod/notifications.php:186
-msgid "Approve as: "
-msgstr "Утвердить в качеÑтве:"
-
-#: ../../mod/notifications.php:187
-msgid "Friend"
-msgstr "Друг"
-
-#: ../../mod/notifications.php:188
-msgid "Sharer"
-msgstr ""
-
-#: ../../mod/notifications.php:188
-msgid "Fan/Admirer"
-msgstr "Поклонник"
-
-#: ../../mod/notifications.php:194
-msgid "Friend/Connect Request"
-msgstr ""
-
-#: ../../mod/notifications.php:194
-msgid "New Follower"
-msgstr "Ðовый поÑледователь"
-
-#: ../../mod/notifications.php:215
-msgid "No introductions."
-msgstr "Введений нет."
-
-#: ../../mod/notifications.php:257 ../../mod/notifications.php:382
-#: ../../mod/notifications.php:465
-#, php-format
-msgid "%s liked %s's post"
-msgstr "%s нравитÑÑ %s's Ñообщение"
-
-#: ../../mod/notifications.php:266 ../../mod/notifications.php:391
-#: ../../mod/notifications.php:474
-#, php-format
-msgid "%s disliked %s's post"
-msgstr "%s не нравитÑÑ %s's Ñообщение"
-
-#: ../../mod/notifications.php:280 ../../mod/notifications.php:405
-#: ../../mod/notifications.php:488
-#, php-format
-msgid "%s is now friends with %s"
-msgstr "%s теперь в друзьÑÑ… Ñ %s"
-
-#: ../../mod/notifications.php:287 ../../mod/notifications.php:412
-#, php-format
-msgid "%s created a new post"
-msgstr "%s Ñоздал новое Ñообщение"
-
-#: ../../mod/notifications.php:288 ../../mod/notifications.php:413
-#: ../../mod/notifications.php:497
-#, php-format
-msgid "%s commented on %s's post"
-msgstr "%s прокомментировал %s's Ñообщение"
-
-#: ../../mod/notifications.php:302
-msgid "No more network notifications."
-msgstr "Ðовых оповещений Ñети пока нет."
-
-#: ../../mod/notifications.php:306
-msgid "Network Notifications"
-msgstr "ÐžÐ¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ñети"
+#: ../../mod/notifications.php:35
+msgid "Discard"
+msgstr "Отменить"
-#: ../../mod/notifications.php:332 ../../mod/notify.php:54
+#: ../../mod/notifications.php:93 ../../mod/notify.php:54
msgid "No more system notifications."
msgstr "Ðовых оповещений ÑиÑтемы пока нет."
-#: ../../mod/notifications.php:336 ../../mod/notify.php:58
+#: ../../mod/notifications.php:97 ../../mod/notify.php:58
msgid "System Notifications"
msgstr "СиÑтемные Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ "
-#: ../../mod/notifications.php:427
-msgid "No more personal notifications."
-msgstr "Ðовых личных оповещений пока нет."
-
-#: ../../mod/notifications.php:431
-msgid "Personal Notifications"
-msgstr "Личные Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ "
-
-#: ../../mod/notifications.php:504
-msgid "No more home notifications."
-msgstr "Ðовых домашних оповещений пока нет."
+#: ../../mod/blocks.php:65
+msgid "Block Name"
+msgstr ""
-#: ../../mod/notifications.php:508
-msgid "Home Notifications"
-msgstr "Домашние оповещениÑ"
+#: ../../mod/oexchange.php:23
+msgid "Unable to find your hub."
+msgstr ""
-#: ../../mod/oexchange.php:22
+#: ../../mod/oexchange.php:37
msgid "Post successful."
msgstr "ÐŸÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ñ€Ð¾ÑˆÐ»Ð° уÑпешно."
-#: ../../mod/editpost.php:31
-msgid "Item is not editable"
-msgstr "Элемент Ð½ÐµÐ»ÑŒÐ·Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ"
+#: ../../mod/editwebpage.php:106
+msgid "Edit Webpage"
+msgstr ""
-#: ../../mod/editpost.php:40
-msgid "Edit post"
-msgstr "Редактировать Ñообщение"
+#: ../../mod/editwebpage.php:116
+msgid "Delete webpage?"
+msgstr ""
+
+#: ../../mod/editwebpage.php:189
+msgid "Delete Webpage"
+msgstr ""
-#: ../../mod/profile.php:111
+#: ../../mod/profile.php:64 ../../mod/profile.php:72
msgid "Access to this profile has been restricted."
msgstr "ДоÑтуп к Ñтому профилю ограничен."
@@ -6259,10 +6516,18 @@ msgstr ""
msgid "Make this post private"
msgstr "Сделать Ñто Ñообщение личным"
-#: ../../mod/wall_upload.php:41 ../../mod/item.php:1077
+#: ../../mod/wall_upload.php:41 ../../mod/item.php:1068
msgid "Wall Photos"
msgstr "Стена фотографий"
+#: ../../mod/channel.php:25
+msgid "You must be logged in to see this page."
+msgstr ""
+
+#: ../../mod/channel.php:85
+msgid "Insufficient permissions. Request redirected to profile page."
+msgstr ""
+
#: ../../mod/community.php:23
msgid "Not available."
msgstr "ÐедоÑтупно."
@@ -6275,9 +6540,9 @@ msgstr "СообщеÑтво"
msgid "No results."
msgstr "Ðичего не найдено."
-#: ../../mod/fbrowser.php:113
-msgid "Files"
-msgstr "Файлы"
+#: ../../mod/fsuggest.php:20 ../../mod/fsuggest.php:92
+msgid "Contact not found."
+msgstr "Контакт не найден."
#: ../../mod/fsuggest.php:63
msgid "Friend suggestion sent."
@@ -6292,193 +6557,192 @@ msgstr "ПриглаÑить друзей"
msgid "Suggest a friend for %s"
msgstr ""
-#: ../../mod/editblock.php:83
+#: ../../mod/editblock.php:82
msgid "Edit Block"
-msgstr ""
+msgstr "Редактировать блок"
-#: ../../mod/editblock.php:154
+#: ../../mod/editblock.php:157
msgid "Delete Block"
-msgstr ""
+msgstr "Удалить блок"
-#: ../../mod/profperm.php:34 ../../mod/profperm.php:64
+#: ../../mod/profperm.php:25 ../../mod/profperm.php:55
msgid "Invalid profile identifier."
msgstr ""
-#: ../../mod/profperm.php:110
+#: ../../mod/profperm.php:101
msgid "Profile Visibility Editor"
msgstr "Редактор видимоÑти профилÑ"
-#: ../../mod/profperm.php:114
+#: ../../mod/profperm.php:105
msgid "Click on a contact to add or remove."
msgstr ""
-#: ../../mod/profperm.php:123
+#: ../../mod/profperm.php:114
msgid "Visible To"
msgstr "Видно"
-#: ../../mod/profperm.php:139
+#: ../../mod/profperm.php:130
msgid "All Contacts (with secure profile access)"
msgstr "Ð’Ñе контакты (Ñ Ð´Ð¾Ñтупом защищенному профилю)"
-#: ../../mod/item.php:133
-msgid "Unable to locate original post."
-msgstr "Ðе удалоÑÑŒ найти оригинал."
-
-#: ../../mod/item.php:301
-msgid "Empty post discarded."
-msgstr "ОтказатьÑÑ Ð¾Ñ‚ пуÑтой почты."
-
-#: ../../mod/item.php:345
-msgid "Executable content type not permitted to this channel."
-msgstr ""
-
-#: ../../mod/item.php:792
-msgid "System error. Post not saved."
-msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. Сообщение не Ñохранено."
-
-#: ../../mod/item.php:1153
-#, php-format
-msgid "You have reached your limit of %1$.0f top level posts."
-msgstr ""
-
-#: ../../mod/item.php:1159
-#, php-format
-msgid "You have reached your limit of %1$.0f webpages."
-msgstr ""
-
-#: ../../mod/siteinfo.php:51
+#: ../../mod/siteinfo.php:57
#, php-format
msgid "Version %s"
msgstr "ВерÑÐ¸Ñ %s"
-#: ../../mod/siteinfo.php:65
+#: ../../mod/siteinfo.php:76
msgid "Installed plugins/addons/apps:"
msgstr ""
-#: ../../mod/siteinfo.php:78
+#: ../../mod/siteinfo.php:89
msgid "No installed plugins/addons/apps"
msgstr ""
-#: ../../mod/siteinfo.php:81
+#: ../../mod/siteinfo.php:92
msgid "Red"
msgstr "Red"
-#: ../../mod/siteinfo.php:82
+#: ../../mod/siteinfo.php:93
msgid ""
-"This is Red - another decentralized, distributed communications project by "
-"the folks at Friendica."
+"This is a hub of the Red Matrix - a global cooperative network of "
+"decentralised privacy enhanced websites."
msgstr ""
-#: ../../mod/siteinfo.php:84
+#: ../../mod/siteinfo.php:96
msgid "Running at web location"
msgstr ""
-#: ../../mod/siteinfo.php:85
+#: ../../mod/siteinfo.php:97
msgid ""
-"Please visit <a href=\"http://friendica.com\">Friendica.com</a> to learn "
-"more about the Friendica and/or Red project."
+"Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more "
+"about the Red Matrix."
msgstr ""
-#: ../../mod/siteinfo.php:86
+#: ../../mod/siteinfo.php:98
msgid "Bug reports and issues: please visit"
msgstr ""
-#: ../../mod/siteinfo.php:89
+#: ../../mod/siteinfo.php:101
msgid ""
-"Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - "
-"dot com"
+"Suggestions, praise, donations, etc. - please email \"redmatrix\" at "
+"librelist - dot com"
msgstr ""
-#: ../../mod/suggest.php:41
+#: ../../mod/suggest.php:35
msgid ""
"No suggestions available. If this is a new site, please try again in 24 "
"hours."
msgstr ""
-#: ../../mod/suggest.php:58
-msgid "Ignore/Hide"
-msgstr "Игнорировать / Скрыть"
+#: ../../mod/message.php:41
+msgid "Conversation removed."
+msgstr "Разговор удален."
+
+#: ../../mod/message.php:56
+msgid "No messages."
+msgstr "Ðет Ñообщений."
+
+#: ../../mod/message.php:74
+msgid "D, d M Y - g:i A"
+msgstr "D, d M Y - g:i A"
#: ../../mod/pubsites.php:22
msgid "Public Sites"
msgstr ""
-#: ../../mod/pubsites.php:28
-msgid "Site URL"
+#: ../../mod/pubsites.php:25
+msgid ""
+"The listed sites allow public registration into the Red Matrix. All sites in"
+" the matrix are interlinked so membership on any of them conveys membership "
+"in the matrix as a whole. Some sites may require subscription or provide "
+"tiered service plans. The provider links <strong>may</strong> provide "
+"additional details."
msgstr ""
-#: ../../mod/pubsites.php:28
+#: ../../mod/pubsites.php:31
+msgid "Site URL"
+msgstr "URL веб-Ñайта"
+
+#: ../../mod/pubsites.php:31
msgid "Access Type"
msgstr ""
-#: ../../mod/pubsites.php:28
+#: ../../mod/pubsites.php:31
msgid "Registration Policy"
-msgstr ""
+msgstr "Правила региÑтрации"
-#: ../../mod/register.php:35
+#: ../../mod/register.php:43
msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
msgstr ""
-#: ../../mod/register.php:41
+#: ../../mod/register.php:49
msgid ""
"Please indicate acceptance of the Terms of Service. Registration failed."
msgstr ""
-#: ../../mod/register.php:69
+#: ../../mod/register.php:77
msgid "Passwords do not match."
-msgstr ""
+msgstr "Пароли не Ñовпадают."
-#: ../../mod/register.php:97
+#: ../../mod/register.php:105
msgid ""
"Registration successful. Please check your email for validation "
"instructions."
msgstr ""
-#: ../../mod/register.php:103
+#: ../../mod/register.php:111
msgid "Your registration is pending approval by the site owner."
msgstr ""
-#: ../../mod/register.php:106
+#: ../../mod/register.php:114
msgid "Your registration can not be processed."
msgstr ""
-#: ../../mod/register.php:141
+#: ../../mod/register.php:147
+msgid "Registration on this site/hub is by approval only."
+msgstr ""
+
+#: ../../mod/register.php:148
+msgid "<a href=\"pubsites\">Register at another affiliated site/hub</a>"
+msgstr ""
+
+#: ../../mod/register.php:156
msgid ""
"This site has exceeded the number of allowed daily account registrations. "
"Please try again tomorrow."
msgstr ""
-#: ../../mod/register.php:152
+#: ../../mod/register.php:167
msgid "Terms of Service"
msgstr ""
-#: ../../mod/register.php:158
+#: ../../mod/register.php:173
#, php-format
msgid "I accept the %s for this website"
msgstr ""
-#: ../../mod/register.php:160
+#: ../../mod/register.php:175
#, php-format
msgid "I am over 13 years of age and accept the %s for this website"
msgstr ""
-#: ../../mod/register.php:175
+#: ../../mod/register.php:194
msgid "Membership on this site is by invitation only."
msgstr ""
-#: ../../mod/register.php:176
+#: ../../mod/register.php:195
msgid "Please enter your invitation code"
msgstr ""
-#: ../../mod/register.php:179
+#: ../../mod/register.php:198
msgid "Your email address"
msgstr "Ваш Ð°Ð´Ñ€ÐµÑ Ñлектронной почты"
-#: ../../mod/register.php:180
+#: ../../mod/register.php:199
msgid "Choose a password"
msgstr "Выберите пароль"
-#: ../../mod/register.php:181
+#: ../../mod/register.php:200
msgid "Please re-enter your password"
msgstr ""
@@ -6486,215 +6750,384 @@ msgstr ""
msgid "Please login."
msgstr "Войдите пожалуйÑта."
-#: ../../mod/post.php:114
+#: ../../mod/removeme.php:49
+msgid "Remove This Channel"
+msgstr "Удалить Ñтот канал"
+
+#: ../../mod/removeme.php:50
msgid ""
-"Remote authentication blocked. You are logged into this site locally. Please"
-" logout and retry."
+"This will completely remove this channel from the network. Once this has "
+"been done it is not recoverable."
msgstr ""
-#: ../../mod/post.php:127
-#, php-format
-msgid "Welcome %s. Remote authentication successful."
+#: ../../mod/removeme.php:51
+msgid "Please enter your password for verification:"
+msgstr ""
+
+#: ../../mod/removeme.php:52
+msgid "Remove this channel and all its clones from the network"
+msgstr ""
+
+#: ../../mod/removeme.php:52
+msgid ""
+"By default only the instance of the channel located on this hub will be "
+"removed from the network"
msgstr ""
-#: ../../mod/removeme.php:45 ../../mod/removeme.php:48
+#: ../../mod/removeme.php:53
msgid "Remove My Account"
msgstr "Удалить мой аккаунт"
-#: ../../mod/removeme.php:46
-msgid ""
-"This will completely remove your account. Once this has been done it is not "
-"recoverable."
+#: ../../mod/item.php:145
+msgid "Unable to locate original post."
+msgstr "Ðе удалоÑÑŒ найти оригинал."
+
+#: ../../mod/item.php:343
+msgid "Empty post discarded."
+msgstr "ОтказатьÑÑ Ð¾Ñ‚ пуÑтой почты."
+
+#: ../../mod/item.php:385
+msgid "Executable content type not permitted to this channel."
msgstr ""
-#: ../../mod/removeme.php:47
-msgid "Please enter your password for verification:"
+#: ../../mod/item.php:812
+msgid "System error. Post not saved."
+msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. Сообщение не Ñохранено."
+
+#: ../../mod/item.php:1148
+#, php-format
+msgid "You have reached your limit of %1$.0f top level posts."
msgstr ""
-#: ../../mod/filestorage.php:22
-msgid "Permission Denied."
+#: ../../mod/item.php:1154
+#, php-format
+msgid "You have reached your limit of %1$.0f webpages."
msgstr ""
-#: ../../mod/filestorage.php:59
-msgid "Download"
+#: ../../mod/mood.php:138
+msgid "Mood"
msgstr ""
-#: ../../mod/filestorage.php:64
-msgid "Used: "
+#: ../../mod/mood.php:139
+msgid "Set your current mood and tell your friends"
msgstr ""
-#: ../../mod/filestorage.php:66
-msgid "Limit: "
+#: ../../mod/ping.php:160
+msgid "sent you a private message"
+msgstr "отправил вам личное Ñообщение"
+
+#: ../../mod/ping.php:218
+msgid "added your channel"
+msgstr "добавил ваш канал"
+
+#: ../../mod/ping.php:262
+msgid "posted an event"
msgstr ""
-#: ../../mod/mood.php:133
-msgid "Mood"
+#: ../../mod/dirprofile.php:111
+msgid "Status: "
msgstr ""
-#: ../../mod/mood.php:134
-msgid "Set your current mood and tell your friends"
+#: ../../mod/dirprofile.php:112
+msgid "Sexual Preference: "
+msgstr "СекÑÑƒÐ°Ð»ÑŒÐ½Ð°Ñ Ð¾Ñ€Ð¸ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ:"
+
+#: ../../mod/dirprofile.php:114
+msgid "Homepage: "
+msgstr "ДомашнÑÑ Ñтраница:"
+
+#: ../../mod/dirprofile.php:115
+msgid "Hometown: "
+msgstr ""
+
+#: ../../mod/dirprofile.php:117
+msgid "About: "
+msgstr "О Ñебе:"
+
+#: ../../mod/dirprofile.php:163
+msgid "Keywords: "
+msgstr "Ключевые Ñлова:"
+
+#: ../../view/theme/redbasic/php/config.php:74
+msgid "Scheme Default"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:138
-#: ../../view/theme/redbasic/php/config.php:156
-#: ../../view/theme/redstrap/php/config.php:133
+#: ../../view/theme/redbasic/php/config.php:75
+msgid "red"
+msgstr ""
+
+#: ../../view/theme/redbasic/php/config.php:76
+msgid "black"
+msgstr ""
+
+#: ../../view/theme/redbasic/php/config.php:77
+msgid "silver"
+msgstr ""
+
+#: ../../view/theme/redbasic/php/config.php:88
+#: ../../view/theme/apw/php/config.php:234
+#: ../../view/theme/blogga/view/theme/blog/config.php:69
+#: ../../view/theme/blogga/php/config.php:69
msgid "Theme settings"
msgstr "ÐаÑтройки темы"
-#: ../../view/theme/redbasic/php/config.php:139
-#: ../../view/theme/redbasic/php/config.php:157
-#: ../../view/theme/redstrap/php/config.php:134
+#: ../../view/theme/redbasic/php/config.php:89
+#: ../../view/theme/apw/php/config.php:235
+msgid "Set scheme"
+msgstr ""
+
+#: ../../view/theme/redbasic/php/config.php:90
+msgid "Navigation bar colour"
+msgstr ""
+
+#: ../../view/theme/redbasic/php/config.php:91
+msgid "Set font-colour for banner"
+msgstr ""
+
+#: ../../view/theme/redbasic/php/config.php:92
+msgid "Set the background colour"
+msgstr ""
+
+#: ../../view/theme/redbasic/php/config.php:93
+msgid "Set the background image"
+msgstr ""
+
+#: ../../view/theme/redbasic/php/config.php:94
+msgid "Set the background colour of items"
+msgstr ""
+
+#: ../../view/theme/redbasic/php/config.php:95
+msgid "Set the opacity of items"
+msgstr ""
+
+#: ../../view/theme/redbasic/php/config.php:96
+msgid "Set the basic colour for item icons"
+msgstr ""
+
+#: ../../view/theme/redbasic/php/config.php:97
+msgid "Set the hover colour for item icons"
+msgstr ""
+
+#: ../../view/theme/redbasic/php/config.php:98
+msgid "Set font-size for the entire application"
+msgstr ""
+
+#: ../../view/theme/redbasic/php/config.php:99
+#: ../../view/theme/apw/php/config.php:236
msgid "Set font-size for posts and comments"
msgstr "УÑтановить размер шрифта Ð´Ð»Ñ Ñообщений и комментариев"
-#: ../../view/theme/redbasic/php/config.php:140
-#: ../../view/theme/redbasic/php/config.php:158
-#: ../../view/theme/redstrap/php/config.php:135
-msgid "Set line-height for posts and comments"
+#: ../../view/theme/redbasic/php/config.php:100
+msgid "Set font-colour for posts and comments"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:141
-#: ../../view/theme/redbasic/php/config.php:159
-#: ../../view/theme/redstrap/php/config.php:136
-msgid "Set colour scheme"
-msgstr "УÑтановите цветовую Ñхему"
+#: ../../view/theme/redbasic/php/config.php:101
+msgid "Set radius of corners"
+msgstr ""
-#: ../../view/theme/redbasic/php/config.php:142
-#: ../../view/theme/redstrap/php/config.php:137
-msgid "Draw shadows"
+#: ../../view/theme/redbasic/php/config.php:102
+msgid "Set shadow depth of photos"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:143
-#: ../../view/theme/redstrap/php/config.php:138
-msgid "Navigation bar colour"
+#: ../../view/theme/redbasic/php/config.php:103
+msgid "Set maximum width of conversation regions"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:144
-#: ../../view/theme/redstrap/php/config.php:139
-msgid "Display style"
-msgstr "Стиль отображениÑ"
+#: ../../view/theme/redbasic/php/config.php:104
+msgid "Set minimum opacity of nav bar - to hide it"
+msgstr ""
-#: ../../view/theme/redbasic/php/config.php:145
-#: ../../view/theme/redstrap/php/config.php:140
-msgid "Display colour of links - hex value, do not include the #"
+#: ../../view/theme/redbasic/php/config.php:105
+msgid "Set size of conversation author photo"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:146
-#: ../../view/theme/redstrap/php/config.php:141
-msgid "Icons"
-msgstr "Значки"
+#: ../../view/theme/redbasic/php/config.php:106
+msgid "Set size of followup author photos"
+msgstr ""
-#: ../../view/theme/redbasic/php/config.php:147
-#: ../../view/theme/redstrap/php/config.php:142
-msgid "Shiny style"
+#: ../../view/theme/redbasic/php/config.php:107
+msgid "Sloppy photo albums"
msgstr ""
-#: ../../view/theme/redbasic/php/config.php:148
-msgid "Corner radius"
-msgstr "Угловой радиуÑ"
+#: ../../view/theme/redbasic/php/config.php:107
+msgid "Are you a clean desk or a messy desk person?"
+msgstr ""
-#: ../../view/theme/redbasic/php/config.php:148
-msgid "0-99 default: 5"
-msgstr "0-99 по умолчанию: 5"
+#: ../../view/theme/apw/php/config.php:193
+#: ../../view/theme/apw/php/config.php:211
+msgid "Schema Default"
+msgstr ""
-#: ../../boot.php:1242
-#, php-format
-msgid "Update %s failed. See error logs."
+#: ../../view/theme/apw/php/config.php:194
+msgid "Sans-Serif"
msgstr ""
-#: ../../boot.php:1245
-#, php-format
-msgid "Update Error at %s"
-msgstr "Ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° %s"
+#: ../../view/theme/apw/php/config.php:195
+msgid "Monospace"
+msgstr ""
-#: ../../boot.php:1403
-msgid "Create a New Account"
-msgstr "Создать новый аккаунт"
+#: ../../view/theme/apw/php/config.php:237
+msgid "Set font face"
+msgstr ""
-#: ../../boot.php:1432
-msgid "Password"
-msgstr "Пароль"
+#: ../../view/theme/apw/php/config.php:238
+msgid "Set iconset"
+msgstr ""
-#: ../../boot.php:1433
-msgid "Remember me"
-msgstr "Запомнить"
+#: ../../view/theme/apw/php/config.php:239
+msgid "Set big shadow size, default 15px 15px 15px"
+msgstr ""
-#: ../../boot.php:1438
-msgid "Forgot your password?"
-msgstr "Забыли пароль или логин?"
+#: ../../view/theme/apw/php/config.php:240
+msgid "Set small shadow size, default 5px 5px 5px"
+msgstr ""
-#: ../../boot.php:1557
-msgid "Requested channel is not available."
-msgstr "Запрашиваемый канал не доÑтупен."
+#: ../../view/theme/apw/php/config.php:241
+msgid "Set shadow colour, default #000"
+msgstr ""
-#: ../../boot.php:1569
-msgid " Sorry, you don't have the permission to view this profile. "
+#: ../../view/theme/apw/php/config.php:242
+msgid "Set radius size, default 5px"
msgstr ""
-#: ../../boot.php:1716
-msgid "Profiles"
-msgstr "Профили"
+#: ../../view/theme/apw/php/config.php:243
+msgid "Set line-height for posts and comments"
+msgstr ""
-#: ../../boot.php:1716
-msgid "Manage/edit profiles"
-msgstr "Управление / Редактирование профилей"
+#: ../../view/theme/apw/php/config.php:244
+msgid "Set background image"
+msgstr ""
-#: ../../boot.php:1720
-msgid "Edit Profile"
-msgstr "Редактировать профиль"
+#: ../../view/theme/apw/php/config.php:245
+msgid "Set background colour"
+msgstr ""
-#: ../../boot.php:1809 ../../boot.php:1889
-msgid "F d"
-msgstr "F d"
+#: ../../view/theme/apw/php/config.php:246
+msgid "Set section background image"
+msgstr ""
-#: ../../boot.php:1866
-msgid "Birthday Reminders"
-msgstr "ÐÐ°Ð¿Ð¾Ð¼Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¾ ДнÑÑ… РождениÑ"
+#: ../../view/theme/apw/php/config.php:247
+msgid "Set section background colour"
+msgstr ""
-#: ../../boot.php:1867
-msgid "Birthdays this week:"
-msgstr "Дни Ð Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð½Ð° Ñтой неделе:"
+#: ../../view/theme/apw/php/config.php:248
+msgid "Set colour of items - use hex"
+msgstr ""
-#: ../../boot.php:1922
-msgid "[No description]"
-msgstr "[без опиÑаниÑ]"
+#: ../../view/theme/apw/php/config.php:249
+msgid "Set colour of links - use hex"
+msgstr ""
-#: ../../boot.php:1940
-msgid "Event Reminders"
-msgstr "ÐÐ°Ð¿Ð¾Ð¼Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¼ÐµÑ€Ð¾Ð¿Ñ€Ð¸Ñтий"
+#: ../../view/theme/apw/php/config.php:250
+msgid "Set max-width for items. Default 400px"
+msgstr ""
-#: ../../boot.php:1941
-msgid "Events this week:"
-msgstr "МероприÑÑ‚Ð¸Ñ Ð½Ð° Ñтой неделе:"
+#: ../../view/theme/apw/php/config.php:251
+msgid "Set min-width for items. Default 240px"
+msgstr ""
-#: ../../boot.php:2175
-msgid "Channel"
-msgstr "Канал"
+#: ../../view/theme/apw/php/config.php:252
+msgid "Set the generic content wrapper width. Default 48%"
+msgstr ""
-#: ../../boot.php:2178
-msgid "Status Messages and Posts"
+#: ../../view/theme/apw/php/config.php:253
+msgid "Set colour of fonts - use hex"
msgstr ""
-#: ../../boot.php:2182
-msgid "About"
-msgstr "О Ñебе"
+#: ../../view/theme/apw/php/config.php:254
+msgid "Set background-size element"
+msgstr ""
-#: ../../boot.php:2185
-msgid "Profile Details"
-msgstr "Ð¡Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ профиле"
+#: ../../view/theme/apw/php/config.php:255
+msgid "Item opacity"
+msgstr ""
-#: ../../boot.php:2203
-msgid "Events and Calendar"
-msgstr "МероприÑÑ‚Ð¸Ñ Ð¸ календарь"
+#: ../../view/theme/apw/php/config.php:256
+msgid "Display post previews only"
+msgstr ""
-#: ../../boot.php:2208
-msgid "Webpages"
-msgstr "Веб-Ñтраницы"
+#: ../../view/theme/apw/php/config.php:257
+msgid "Display side bar on channel page"
+msgstr ""
-#: ../../boot.php:2211
-msgid "Manage Webpages"
-msgstr "Управление веб-Ñтраниц"
+#: ../../view/theme/apw/php/config.php:258
+msgid "Colour of the navigation bar"
+msgstr ""
+
+#: ../../view/theme/apw/php/config.php:259
+msgid "Item float"
+msgstr ""
+
+#: ../../view/theme/apw/php/config.php:260
+msgid "Left offset of the section element"
+msgstr ""
+
+#: ../../view/theme/apw/php/config.php:261
+msgid "Right offset of the section element"
+msgstr ""
+
+#: ../../view/theme/apw/php/config.php:262
+msgid "Section width"
+msgstr ""
+
+#: ../../view/theme/apw/php/config.php:263
+msgid "Left offset of the aside"
+msgstr ""
+
+#: ../../view/theme/apw/php/config.php:264
+msgid "Right offset of the aside element"
+msgstr ""
+
+#: ../../view/theme/blogga/view/theme/blog/config.php:47
+#: ../../view/theme/blogga/php/config.php:47
+msgid "None"
+msgstr ""
+
+#: ../../view/theme/blogga/view/theme/blog/config.php:70
+#: ../../view/theme/blogga/php/config.php:70
+msgid "Header image"
+msgstr ""
+
+#: ../../view/theme/blogga/view/theme/blog/config.php:71
+#: ../../view/theme/blogga/php/config.php:71
+msgid "Header image only on profile pages"
+msgstr ""
+
+#: ../../boot.php:1224
+#, php-format
+msgid "Update %s failed. See error logs."
+msgstr ""
+
+#: ../../boot.php:1227
+#, php-format
+msgid "Update Error at %s"
+msgstr "Ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° %s"
+
+#: ../../boot.php:1391
+msgid ""
+"Create an account to access services and applications within the Red Matrix"
+msgstr ""
+
+#: ../../boot.php:1419
+msgid "Password"
+msgstr "Пароль"
+
+#: ../../boot.php:1420
+msgid "Remember me"
+msgstr "Запомнить"
+
+#: ../../boot.php:1425
+msgid "Forgot your password?"
+msgstr "Забыли пароль или логин?"
+
+#: ../../boot.php:1490
+msgid "permission denied"
+msgstr "доÑтуп запрещен"
+
+#: ../../boot.php:1491
+msgid "Got Zot?"
+msgstr "Got Zot?"
-#: ../../boot.php:2493
+#: ../../boot.php:1887
msgid "toggle mobile"
msgstr "мобильное подключение"
diff --git a/view/ru/strings.php b/view/ru/strings.php
index 9404d0c55..3ac8bbf67 100644
--- a/view/ru/strings.php
+++ b/view/ru/strings.php
@@ -13,55 +13,103 @@ $a->strings["%1\$s changed %2\$s to &ldquo;%3\$s&rdquo;"] = "%1\$s измениÐ
$a->strings["Visit %1\$s's %2\$s"] = "ПоÑетить %1\$s's %2\$s";
$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "";
$a->strings["Public Timeline"] = "ÐŸÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð°Ñ ÑˆÐºÐ°Ð»Ð° времени";
-$a->strings["Red Matrix Notification"] = "ÐžÐ¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Red матрицы";
-$a->strings["Thank You,"] = "СпаÑибо,";
-$a->strings["%s Administrator"] = "%s админиÑтратор";
-$a->strings["%s <!item_type!>"] = "%s <!item_type!>";
-$a->strings["[Red:Notify] New mail received at %s"] = "[Red:Уведомление] Получено новое Ñообщение в %s";
-$a->strings["%1\$s sent you a new private message at %2\$s."] = "%1\$s отправил вам новое личное Ñообщение в %2\$s.";
-$a->strings["%1\$s sent you %2\$s."] = "%1\$s поÑлал вам %2\$s.";
-$a->strings["a private message"] = "личное Ñообщение";
-$a->strings["Please visit %s to view and/or reply to your private messages."] = "ПожалуйÑта, поÑетите %s Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра и/или ответа на ваши личные ÑообщениÑ.";
-$a->strings["%1\$s commented on [zrl=%2\$s]a %3\$s[/zrl]"] = "%1\$s прокомментировал на [zrl=%2\$s]a %3\$s[/zrl]";
-$a->strings["%1\$s commented on [zrl=%2\$s]%3\$s's %4\$s[/zrl]"] = "%1\$s прокомментировал на [zrl=%2\$s]%3\$s's %4\$s[/zrl]";
-$a->strings["%1\$s commented on [zrl=%2\$s]your %3\$s[/zrl]"] = "%1\$s прокомментировал на [zrl=%2\$s]your %3\$s[/zrl]";
-$a->strings["[Red:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Red:Уведомление] Комментарий к разговору #%1\$d по %2\$s";
-$a->strings["%s commented on an item/conversation you have been following."] = "";
-$a->strings["Please visit %s to view and/or reply to the conversation."] = "ПожалуйÑта, поÑетите %s Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра и/или ответа разговора.";
-$a->strings["[Red:Notify] %s posted to your profile wall"] = "[Red:Уведомление] %s добавил Ñообщениe на Ñтену вашего профилÑ";
-$a->strings["%1\$s posted to your profile wall at %2\$s"] = "%1\$s добавил Ñообщениe на Ñтену вашего Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Ð² %2\$s";
-$a->strings["%1\$s posted to [zrl=%2\$s]your wall[/zrl]"] = "%1\$s добавил Ñообщениe на [zrl=%2\$s]Ñтену вашего профилÑ[/zrl]";
-$a->strings["[Red:Notify] %s tagged you"] = "[Red:Уведомление] %s добавил у Ð²Ð°Ñ Ñ‚ÐµÐ³";
-$a->strings["%1\$s tagged you at %2\$s"] = "%1\$s добавил у Ð²Ð°Ñ Ñ‚ÐµÐ³ в %2\$s";
-$a->strings["%1\$s [zrl=%2\$s]tagged you[/zrl]."] = "%1\$s [zrl=%2\$s]добавил у Ð²Ð°Ñ Ñ‚ÐµÐ³[/zrl].";
-$a->strings["[Red:Notify] %1\$s poked you"] = "[Red:Уведомление] %1\$s подпихнул ваÑ";
-$a->strings["%1\$s poked you at %2\$s"] = "%1\$s подпихнул Ð²Ð°Ñ Ð² %2\$s";
-$a->strings["%1\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s [zrl=%2\$s]подпихнул ваÑ[/zrl].";
-$a->strings["[Red:Notify] %s tagged your post"] = "[Red:Уведомление] %s добавил у Ð²Ð°Ñ Ð² Ñообщении тег";
-$a->strings["%1\$s tagged your post at %2\$s"] = "%1\$s добавил у Ð²Ð°Ñ Ð² Ñообщении тег %2\$s";
-$a->strings["%1\$s tagged [zrl=%2\$s]your post[/zrl]"] = "%1\$s добавил тег [zrl=%2\$s] у Ð²Ð°Ñ Ð² Ñообщении[/zrl]";
-$a->strings["[Red:Notify] Introduction received"] = "[Red:Уведомление] введение получено";
-$a->strings["You've received an introduction from '%1\$s' at %2\$s"] = "Вы получили введение от '%1\$s' at %2\$s";
-$a->strings["You've received [zrl=%1\$s]an introduction[/zrl] from %2\$s."] = "Вы получили [zrl=%1\$s]введение[/zrl] от %2\$s.";
-$a->strings["You may visit their profile at %s"] = "Ð’Ñ‹ можете поÑетить ​​профиль в %s";
-$a->strings["Please visit %s to approve or reject the introduction."] = "";
-$a->strings["[Red:Notify] Friend suggestion received"] = "[Red:Уведомление] Получено предложение дружить";
-$a->strings["You've received a friend suggestion from '%1\$s' at %2\$s"] = "Ð’Ñ‹ получили предложение дружить Ñ '%1\$s' от %2\$s";
-$a->strings["You've received [zrl=%1\$s]a friend suggestion[/zrl] for %2\$s from %3\$s."] = "";
-$a->strings["Name:"] = "ИмÑ:";
-$a->strings["Photo:"] = "Фото:";
-$a->strings["Please visit %s to approve or reject the suggestion."] = "";
-$a->strings["Default"] = "";
+$a->strings["Logout"] = "Выход";
+$a->strings["End this session"] = "Закончить Ñту ÑеÑÑию";
+$a->strings["Home"] = "Мой канал";
+$a->strings["Your posts and conversations"] = "Ваши ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸ разговоры";
+$a->strings["View Profile"] = "ПроÑмотр профилÑ";
+$a->strings["Your profile page"] = "Страницa вашего профилÑ";
+$a->strings["Edit Profiles"] = "Редактирование профилей";
+$a->strings["Manage/Edit Profiles"] = "Управление / Редактирование профилей";
+$a->strings["Photos"] = "Фотографии";
+$a->strings["Your photos"] = "Ваши фотографии";
+$a->strings["Login"] = "Войти";
+$a->strings["Sign in"] = "Войти";
+$a->strings["%s - click to logout"] = "%s - нажмите чтобы выйти";
+$a->strings["Click to authenticate to your home hub"] = "";
+$a->strings["Home Page"] = "ÐœÐ¾Ñ Ñтраница";
+$a->strings["Register"] = "РегиÑтрациÑ";
+$a->strings["Create an account"] = "Создать аккаунт";
+$a->strings["Help"] = "Помощь";
+$a->strings["Help and documentation"] = "Ð¡Ð¿Ñ€Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¸ документациÑ";
+$a->strings["Apps"] = "ПриложениÑ";
+$a->strings["Addon applications, utilities, games"] = "";
+$a->strings["Search"] = "ПоиÑк";
+$a->strings["Search site content"] = "ПоиÑк по Ñодержанию Ñайту";
+$a->strings["Directory"] = "Каталог";
+$a->strings["Channel Locator"] = "Локатор каналов";
+$a->strings["Matrix"] = "Матрица";
+$a->strings["Your matrix"] = "СобÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†Ð°";
+$a->strings["Mark all matrix notifications seen"] = "Пометить вÑе Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†Ñ‹ как прочитанное";
+$a->strings["Channel Home"] = "";
+$a->strings["Channel home"] = "";
+$a->strings["Mark all channel notifications seen"] = "Пометить вÑе Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð° как прочитанное";
+$a->strings["Intros"] = "Контакты";
+$a->strings["New Connections"] = "Ðовые контакты";
+$a->strings["Notices"] = "ОповещениÑ";
+$a->strings["Notifications"] = "ОповещениÑ";
+$a->strings["See all notifications"] = "ПроÑмотреть вÑе оповещениÑ";
+$a->strings["Mark all system notifications seen"] = "Пометить вÑе Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ ÐºÐ°Ðº прочитанное";
+$a->strings["Mail"] = "ПерепиÑка";
+$a->strings["Private mail"] = "Ваша Ð»Ð¸Ñ‡Ð½Ð°Ñ Ð¿ÐµÑ€ÐµÐ¿Ð¸Ñка";
+$a->strings["See all private messages"] = "ПроÑмотреть вÑе личные ÑообщениÑ";
+$a->strings["Mark all private messages seen"] = "Пометить вÑе личные ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÐºÐ°Ðº прочитанное";
+$a->strings["Inbox"] = "ВходÑщие";
+$a->strings["Outbox"] = "ИÑходÑщие";
+$a->strings["New Message"] = "Ðовое личное Ñообщение";
+$a->strings["Events"] = "МероприÑтиÑ";
+$a->strings["Event Calendar"] = "Календарь мероприÑтий";
+$a->strings["See all events"] = "Показать вÑе мероприÑтиÑ";
+$a->strings["Mark all events seen"] = "Пометить вÑе мероприÑÑ‚Ð¸Ñ ÐºÐ°Ðº прочитанное";
+$a->strings["Channel Select"] = "Выбор канала";
+$a->strings["Manage Your Channels"] = "Управление каналов";
+$a->strings["Settings"] = "ÐаÑтройки";
+$a->strings["Account/Channel Settings"] = "ÐаÑтройки аккаунта/канала";
+$a->strings["Connections"] = "Контакты";
+$a->strings["Manage/Edit Friends and Connections"] = "Управление/Редактирование друзей и ÑвÑзей";
+$a->strings["Admin"] = "ÐдминиÑтрациÑ";
+$a->strings["Site Setup and Configuration"] = "УÑтановка и ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ñайта";
+$a->strings["Nothing new here"] = "Ðичего нового здеÑÑŒ";
+$a->strings["Please wait..."] = "Подождите пожалуйÑта ...";
+$a->strings["Edit File properties"] = "";
$a->strings["Connect"] = "Подключить";
$a->strings["New window"] = "Ðовое окно";
$a->strings["Open the selected location in a different window or browser tab"] = "";
-$a->strings["Poke"] = "Подпихнуть";
-$a->strings["View Status"] = "ПроÑмотр ÑоÑтоÑниÑ";
-$a->strings["View Profile"] = "ПроÑмотр профилÑ";
-$a->strings["View Photos"] = "ПроÑмотр фотографий";
-$a->strings["Network Posts"] = "Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñети";
-$a->strings["Edit Contact"] = "Редактировать контакт";
-$a->strings["Send PM"] = "Отправить личное Ñообщение";
+$a->strings["Categories"] = "Категории";
+$a->strings["Ignore/Hide"] = "Игнорировать / Скрыть";
+$a->strings["Suggestions"] = "Рекомендации";
+$a->strings["See more..."] = "ПроÑмотреть больше...";
+$a->strings["You have %1$.0f of %2$.0f allowed connections."] = "";
+$a->strings["Add New Connection"] = "Добавить новый контакт";
+$a->strings["Enter the channel address"] = "Введите Ð°Ð´Ñ€ÐµÑ ÐºÐ°Ð½Ð°Ð»Ð°";
+$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Пример: bob@example.com, http://example.com/barbara";
+$a->strings["Notes"] = "Заметки";
+$a->strings["Save"] = "Запомнить";
+$a->strings["Remove term"] = "Удалить термин";
+$a->strings["Saved Searches"] = "Запомненные поиÑки";
+$a->strings["add"] = "добавить";
+$a->strings["Saved Folders"] = "Запомненные папки";
+$a->strings["Everything"] = "Ð’Ñе";
+$a->strings["Archives"] = "Ðрхивы";
+$a->strings["Refresh"] = "Обновить";
+$a->strings["Me"] = "Я";
+$a->strings["Best Friends"] = "Лучшие друзьÑ";
+$a->strings["Friends"] = "ДрузьÑ";
+$a->strings["Co-workers"] = "Сотрудники";
+$a->strings["Former Friends"] = "ПриÑтели";
+$a->strings["Acquaintances"] = "Знакомые";
+$a->strings["Everybody"] = "Ð’Ñе";
+$a->strings["Account settings"] = "ÐаÑтройки аккаунта";
+$a->strings["Channel settings"] = "ÐаÑтройки канала";
+$a->strings["Additional features"] = "Дополнительные функции";
+$a->strings["Feature settings"] = "ÐаÑтройки компонентов";
+$a->strings["Display settings"] = "ÐаÑтройки отображениÑ";
+$a->strings["Connected apps"] = "Подключенные приложениÑ";
+$a->strings["Export channel"] = "ЭкÑпорт канала";
+$a->strings["Automatic Permissions (Advanced)"] = "ÐвтоматичеÑкие Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ (дополнительно)";
+$a->strings["Premium Channel Settings"] = "";
+$a->strings["Channel Sources"] = "";
+$a->strings["Check Mail"] = "Проверить Ñнова";
$a->strings["Unknown | Not categorised"] = "ÐеизвеÑтные | Без категории";
$a->strings["Block immediately"] = "Ðемедленно заблокировать";
$a->strings["Shady, spammer, self-marketer"] = "";
@@ -107,15 +155,149 @@ $a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A";
$a->strings["Starts:"] = "Ðачало:";
$a->strings["Finishes:"] = "\t\nКонец:";
$a->strings["Location:"] = "Откуда:";
+$a->strings["prev"] = "предыдущий";
+$a->strings["first"] = "первый";
+$a->strings["last"] = "поÑледний";
+$a->strings["next"] = "Ñледующий";
+$a->strings["older"] = "Ñтарший";
+$a->strings["newer"] = "новее";
+$a->strings["No connections"] = "Ðет каналов";
+$a->strings["%d Connection"] = array(
+ 0 => "%d канал",
+ 1 => "%d канала",
+ 2 => "%d каналов",
+);
+$a->strings["View Connections"] = "ПроÑмотр контактов";
+$a->strings["poke"] = "подпихнуть";
+$a->strings["poked"] = "подпихнул";
+$a->strings["ping"] = "";
+$a->strings["pinged"] = "";
+$a->strings["prod"] = "";
+$a->strings["prodded"] = "";
+$a->strings["slap"] = "";
+$a->strings["slapped"] = "";
+$a->strings["finger"] = "";
+$a->strings["fingered"] = "";
+$a->strings["rebuff"] = "";
+$a->strings["rebuffed"] = "";
+$a->strings["happy"] = "ÑчаÑтливый";
+$a->strings["sad"] = "";
+$a->strings["mellow"] = "";
+$a->strings["tired"] = "";
+$a->strings["perky"] = "";
+$a->strings["angry"] = "Ñердитый";
+$a->strings["stupified"] = "";
+$a->strings["puzzled"] = "";
+$a->strings["interested"] = "";
+$a->strings["bitter"] = "озлобленный";
+$a->strings["cheerful"] = "";
+$a->strings["alive"] = "";
+$a->strings["annoyed"] = "";
+$a->strings["anxious"] = "";
+$a->strings["cranky"] = "капризный";
+$a->strings["disturbed"] = "вÑтревоженный";
+$a->strings["frustrated"] = "разочарованный";
+$a->strings["motivated"] = "мотивированный";
+$a->strings["relaxed"] = "раÑÑлабленный";
+$a->strings["surprised"] = "удивленный";
+$a->strings["Monday"] = "Понедельник";
+$a->strings["Tuesday"] = "Вторник";
+$a->strings["Wednesday"] = "Среда";
+$a->strings["Thursday"] = "Четверг";
+$a->strings["Friday"] = "ПÑтница";
+$a->strings["Saturday"] = "Суббота";
+$a->strings["Sunday"] = "ВоÑкреÑенье";
+$a->strings["January"] = "Январь";
+$a->strings["February"] = "Февраль";
+$a->strings["March"] = "Март";
+$a->strings["April"] = "Ðпрель";
+$a->strings["May"] = "Май";
+$a->strings["June"] = "Июнь";
+$a->strings["July"] = "Июль";
+$a->strings["August"] = "ÐвгуÑÑ‚";
+$a->strings["September"] = "СентÑбрь";
+$a->strings["October"] = "ОктÑбрь";
+$a->strings["November"] = "ÐоÑбрь";
+$a->strings["December"] = "Декабрь";
+$a->strings["unknown.???"] = "неизвеÑтный.???";
+$a->strings["bytes"] = "байт";
+$a->strings["remove category"] = "";
+$a->strings["remove from file"] = "";
+$a->strings["Click to open/close"] = "Ðажмите, чтобы открыть/закрыть";
+$a->strings["link to source"] = "ÑÑылка на иÑточник";
+$a->strings["Select a page layout: "] = "";
+$a->strings["default"] = "по умолчанию";
+$a->strings["Page content type: "] = "";
+$a->strings["Select an alternate language"] = "Выбор альтернативного Ñзыка";
+$a->strings["photo"] = "фото";
+$a->strings["event"] = "мероприÑтие";
+$a->strings["status"] = "ÑтатуÑ";
+$a->strings["comment"] = "комментарий";
+$a->strings["activity"] = "активноÑÑ‚ÑŒ";
+$a->strings["Design"] = "Дизайн";
+$a->strings["Blocks"] = "";
+$a->strings["Menus"] = "";
+$a->strings["Layouts"] = "";
+$a->strings["Pages"] = "Страницы";
+$a->strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "";
+$a->strings["Default privacy group for new contacts"] = "";
+$a->strings["All Channels"] = "Ð’Ñе каналы";
+$a->strings["edit"] = "редактировать";
+$a->strings["Collections"] = "Коллекции";
+$a->strings["Edit collection"] = "Редактировать коллекцию";
+$a->strings["Create a new collection"] = "Создать новую коллекцию";
+$a->strings["Channels not in any collection"] = "Контакты не в какой коллекции";
+$a->strings["Delete this item?"] = "Удалить Ñтот Ñлемент?";
+$a->strings["Comment"] = "Комментарий";
+$a->strings["show more"] = "показать вÑе";
+$a->strings["show fewer"] = "показать меньше";
+$a->strings["Password too short"] = "Пароль Ñлишком короткий";
+$a->strings["Passwords do not match"] = "Пароли не Ñовпадают";
+$a->strings["everybody"] = "вÑе";
+$a->strings["Secret Passphrase"] = "";
+$a->strings["Passphrase hint"] = "";
+$a->strings["timeago.prefixAgo"] = "timeago.prefixAgo";
+$a->strings["timeago.suffixAgo"] = "timeago.suffixAgo";
+$a->strings["ago"] = "тому назад";
+$a->strings["from now"] = "Ñ Ñтого времени";
+$a->strings["less than a minute"] = "менее чем одну минуту назад";
+$a->strings["about a minute"] = "около минуты";
+$a->strings["%d minutes"] = "%d мин.";
+$a->strings["about an hour"] = "около чаÑа";
+$a->strings["about %d hours"] = "около %d чаÑ.";
+$a->strings["a day"] = "день";
+$a->strings["%d days"] = "%d дней";
+$a->strings["about a month"] = "около меÑÑца";
+$a->strings["%d months"] = "%d меÑ.";
+$a->strings["about a year"] = "около года";
+$a->strings["%d years"] = "%d лет";
+$a->strings[" "] = " ";
+$a->strings["timeago.numbers"] = "timeago.numbers";
+$a->strings["No recipient provided."] = "";
+$a->strings["[no subject]"] = "[без темы]";
+$a->strings["Unable to determine sender."] = "Ðевозможно определить отправителÑ.";
+$a->strings["Stored post could not be verified."] = "";
+$a->strings["Profile Photos"] = "Фотографии профилÑ";
+$a->strings["view full size"] = "поÑмотреть в полный размер";
+$a->strings["Image/photo"] = "Изображение / фото";
+$a->strings["Encrypted content"] = "Зашифрованное Ñодержание";
+$a->strings["QR code"] = "QR код";
+$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s напиÑал Ñледующее %2\$s %3\$s";
+$a->strings["post"] = "Ñообщение";
+$a->strings["$1 wrote:"] = "$1 пиÑал:";
+$a->strings["Embedded content"] = "";
+$a->strings["Embedding disabled"] = "";
$a->strings["General Features"] = "Главные функции";
+$a->strings["Content Expiration"] = "";
+$a->strings["Remove posts/comments and/or private messages at a future time"] = "";
$a->strings["Multiple Profiles"] = "ÐеÑколько профилей";
$a->strings["Ability to create multiple profiles"] = "ВозможноÑÑ‚ÑŒ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½ÐµÑкольких профилей";
$a->strings["Web Pages"] = "Веб-Ñтраницы";
$a->strings["Provide managed web pages on your channel"] = "";
-$a->strings["Enhanced Photo Albums"] = "РаÑширенные фотоальбомы";
-$a->strings["Enable photo album with enhanced features"] = "Включить фотоальбом Ñ Ñ€Ð°Ñширенными функциÑми";
+$a->strings["Private Notes"] = "Личные заметки";
+$a->strings["Enables a tool to store notes and reminders"] = "";
$a->strings["Extended Identity Sharing"] = "РаÑширенный обмен идентичноÑти";
-$a->strings[" "] = " ";
+$a->strings["Share your identity with all websites on the internet. When disabled, identity is only shared with sites in the matrix."] = "";
$a->strings["Expert Mode"] = "ЭкÑпертный режим";
$a->strings["Enable Expert Mode to provide advanced configuration options"] = "";
$a->strings["Premium Channel"] = "";
@@ -125,12 +307,14 @@ $a->strings["Richtext Editor"] = "Редактор RichText";
$a->strings["Enable richtext editor"] = "Включить редактор RichText";
$a->strings["Post Preview"] = "Предварительный проÑмотр ÑообщениÑ";
$a->strings["Allow previewing posts and comments before publishing them"] = "Разрешить предварительный проÑмотр Ñообщений и комментариев перед их публикацией";
+$a->strings["Automatically import channel content from other channels or feeds"] = "";
+$a->strings["Even More Encryption"] = "";
+$a->strings["Allow optional encryption of content end-to-end with a shared secret key"] = "";
$a->strings["Network and Stream Filtering"] = "Ð¤Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ñети и потока";
$a->strings["Search by Date"] = "ПоиÑк по дате";
$a->strings["Ability to select posts by date ranges"] = "ВозможноÑÑ‚ÑŒ выбора Ñообщений по датам";
$a->strings["Collections Filter"] = "Фильтр коллекций";
$a->strings["Enable widget to display Network posts only from selected collections"] = "";
-$a->strings["Saved Searches"] = "Запомненные поиÑки";
$a->strings["Save search terms for re-use"] = "СохранÑÑ‚ÑŒ результаты поиÑка Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð³Ð¾ иÑпользованиÑ";
$a->strings["Network Personal Tab"] = "";
$a->strings["Enable tab to display only Network posts that you've interacted on"] = "";
@@ -138,16 +322,15 @@ $a->strings["Network New Tab"] = "";
$a->strings["Enable tab to display all new Network activity"] = "";
$a->strings["Affinity Tool"] = "";
$a->strings["Filter stream activity by depth of relationships"] = "";
+$a->strings["Suggest Channels"] = "";
+$a->strings["Show channel suggestions"] = "";
$a->strings["Post/Comment Tools"] = "ИнÑтрументы Ñообщений/комментарий ";
-$a->strings["Multiple Deletion"] = "МножеÑтвенное удаление";
-$a->strings["Select and delete multiple posts/comments at once"] = "Выбор и удаление неÑкольких Ñообщений/комментариев Ñразу";
$a->strings["Edit Sent Posts"] = "Редактировать отправленные ÑообщениÑ";
$a->strings["Edit and correct posts and comments after sending"] = "Редактировать и иÑправлÑÑ‚ÑŒ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸ комментарии поÑле отправки";
$a->strings["Tagging"] = "Пометка";
$a->strings["Ability to tag existing posts"] = "";
$a->strings["Post Categories"] = "Категории ÑообщениÑ";
$a->strings["Add categories to your posts"] = "Добавить категории Ð´Ð»Ñ Ð²Ð°ÑˆÐ¸Ñ… Ñообщений";
-$a->strings["Saved Folders"] = "Запомненные папки";
$a->strings["Ability to file posts under folders"] = "";
$a->strings["Dislike Posts"] = "Сообщение не нравитÑÑ";
$a->strings["Ability to dislike posts/comments"] = "";
@@ -155,147 +338,117 @@ $a->strings["Star Posts"] = "Помечать ÑообщениÑ";
$a->strings["Ability to mark special posts with a star indicator"] = "";
$a->strings["Tag Cloud"] = "Облако тегов";
$a->strings["Provide a personal tag cloud on your channel page"] = "";
-$a->strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "";
-$a->strings["Default privacy group for new contacts"] = "";
-$a->strings["All Channels"] = "Ð’Ñе каналы";
-$a->strings["edit"] = "редактировать";
-$a->strings["Collections"] = "Коллекции";
-$a->strings["Edit collection"] = "Редактировать коллекцию";
-$a->strings["Create a new collection"] = "Создать новую коллекцию";
-$a->strings["Channels not in any collection"] = "Контакты не в какой коллекции";
-$a->strings["add"] = "добавить";
-$a->strings["Delete this item?"] = "Удалить Ñтот Ñлемент?";
-$a->strings["Comment"] = "Комментарий";
-$a->strings["show more"] = "показать вÑе";
-$a->strings["show fewer"] = "показать меньше";
-$a->strings["Password too short"] = "Пароль Ñлишком короткий";
-$a->strings["Passwords do not match"] = "Пароли не Ñовпадают";
-$a->strings["everybody"] = "вÑе";
-$a->strings["timeago.prefixAgo"] = "timeago.prefixAgo";
-$a->strings["timeago.suffixAgo"] = "timeago.suffixAgo";
-$a->strings["ago"] = "тому назад";
-$a->strings["from now"] = "Ñ Ñтого времени";
-$a->strings["less than a minute"] = "менее чем одну минуту назад";
-$a->strings["about a minute"] = "около минуты";
-$a->strings["%d minutes"] = "%d мин.";
-$a->strings["about an hour"] = "около чаÑа";
-$a->strings["about %d hours"] = "около %d чаÑ.";
-$a->strings["a day"] = "день";
-$a->strings["%d days"] = "%d дней";
-$a->strings["about a month"] = "около меÑÑца";
-$a->strings["%d months"] = "%d меÑ.";
-$a->strings["about a year"] = "около года";
-$a->strings["%d years"] = "%d лет";
-$a->strings["timeago.numbers"] = "timeago.numbers";
-$a->strings["No recipient provided."] = "";
-$a->strings["[no subject]"] = "[без темы]";
-$a->strings["Unable to determine sender."] = "Ðевозможно определить отправителÑ.";
-$a->strings["Stored post could not be verified."] = "";
-$a->strings["view full size"] = "поÑмотреть в полный размер";
-$a->strings["Profile Photos"] = "Фотографии профилÑ";
-$a->strings["Profile"] = "Профиль";
-$a->strings["Full Name:"] = "Полное имÑ:";
-$a->strings["Gender:"] = "Пол:";
-$a->strings["j F, Y"] = "j F, Y";
-$a->strings["j F"] = "j F";
-$a->strings["Birthday:"] = "День РождениÑ:";
-$a->strings["Age:"] = "ВозраÑÑ‚:";
-$a->strings["Status:"] = "СтатуÑ:";
-$a->strings["for %1\$d %2\$s"] = "Ð´Ð»Ñ %1\$d %2\$s";
-$a->strings["Sexual Preference:"] = "СекÑÑƒÐ°Ð»ÑŒÐ½Ð°Ñ Ð¾Ñ€Ð¸ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ:";
-$a->strings["Homepage:"] = "ДомашнÑÑ Ñтраница:";
-$a->strings["Hometown:"] = "Родной город:";
-$a->strings["Tags:"] = "ТÑги:";
-$a->strings["Political Views:"] = "ПолитичеÑкие взглÑды:";
-$a->strings["Religion:"] = "РелигиÑ:";
-$a->strings["About:"] = "О Ñебе:";
-$a->strings["Hobbies/Interests:"] = "Хобби / интереÑÑ‹:";
-$a->strings["Likes:"] = "Что вам нравитÑÑ:";
-$a->strings["Dislikes:"] = "Что вам не нравитÑÑ:";
-$a->strings["Contact information and Social Networks:"] = "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¸ Ñоциальные Ñети контакта:";
-$a->strings["Musical interests:"] = "Музыкальные интереÑÑ‹:";
-$a->strings["Books, literature:"] = "Книги, литература:";
-$a->strings["Television:"] = "Телевидение:";
-$a->strings["Film/dance/culture/entertainment:"] = "Кино / танцы / культура / развлечениÑ:";
-$a->strings["Love/Romance:"] = "Любовь / РоманÑ:";
-$a->strings["Work/employment:"] = "Работа / ЗанÑтоÑÑ‚ÑŒ:";
-$a->strings["School/education:"] = "Школа / образование:";
-$a->strings["Logout"] = "Выход";
-$a->strings["End this session"] = "Закончить Ñту ÑеÑÑию";
-$a->strings["Home"] = "Мой канал";
-$a->strings["Your posts and conversations"] = "Ваши ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸ разговоры";
-$a->strings["Your profile page"] = "Страницa вашего профилÑ";
-$a->strings["Edit Profiles"] = "Редактирование профилей";
-$a->strings["Manage/Edit Profiles"] = "Управление / Редактирование профилей";
-$a->strings["Photos"] = "Фотографии";
-$a->strings["Your photos"] = "Ваши фотографии";
-$a->strings["Login"] = "Войти";
-$a->strings["Sign in"] = "Войти";
-$a->strings["%s - click to logout"] = "%s - нажмите чтобы выйти";
-$a->strings["Click to authenticate to your home hub"] = "";
-$a->strings["Home Page"] = "ÐœÐ¾Ñ Ñтраница";
-$a->strings["Register"] = "РегиÑтрациÑ";
-$a->strings["Create an account"] = "Создать аккаунт";
-$a->strings["Help"] = "Помощь";
-$a->strings["Help and documentation"] = "Ð¡Ð¿Ñ€Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¸ документациÑ";
-$a->strings["Apps"] = "ПриложениÑ";
-$a->strings["Addon applications, utilities, games"] = "";
-$a->strings["Search"] = "ПоиÑк";
-$a->strings["Search site content"] = "ПоиÑк по Ñодержанию Ñайту";
-$a->strings["Directory"] = "Каталог";
-$a->strings["Channel Locator"] = "Локатор каналов";
-$a->strings["Matrix"] = "Матрица";
-$a->strings["Conversations from your grid"] = "";
-$a->strings["See all matrix notifications"] = "ПроÑмотреть вÑе Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†Ñ‹";
-$a->strings["Mark all matrix notifications seen"] = "Пометить вÑе Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†Ñ‹ как прочитанное";
-$a->strings["See all channel notifications"] = "ПроÑмотреть вÑе ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð°";
-$a->strings["Mark all channel notifications seen"] = "Пометить вÑе Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð° как прочитанное";
-$a->strings["Intros"] = "Контакты";
-$a->strings["New Connections"] = "Ðовые контакты";
-$a->strings["See all channel introductions"] = "ПроÑмотреть вÑе Ð²Ð²ÐµÐ´ÐµÐ½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð°";
-$a->strings["Notices"] = "ОповещениÑ";
-$a->strings["Notifications"] = "ОповещениÑ";
-$a->strings["See all notifications"] = "ПроÑмотреть вÑе оповещениÑ";
-$a->strings["Mark all system notifications seen"] = "Пометить вÑе Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ ÐºÐ°Ðº прочитанное";
-$a->strings["Mail"] = "ПерепиÑка";
-$a->strings["Private mail"] = "Ваша Ð»Ð¸Ñ‡Ð½Ð°Ñ Ð¿ÐµÑ€ÐµÐ¿Ð¸Ñка";
-$a->strings["See all private messages"] = "ПроÑмотреть вÑе личные ÑообщениÑ";
-$a->strings["Mark all private messages seen"] = "Пометить вÑе личные ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÐºÐ°Ðº прочитанное";
-$a->strings["Inbox"] = "ВходÑщие";
-$a->strings["Outbox"] = "ИÑходÑщие";
-$a->strings["New Message"] = "Ðовое личное Ñообщение";
-$a->strings["Events"] = "МероприÑтиÑ";
-$a->strings["Event Calendar"] = "Календарь мероприÑтий";
-$a->strings["See all events"] = "Показать вÑе мероприÑтиÑ";
-$a->strings["Mark all events seen"] = "Пометить вÑе мероприÑÑ‚Ð¸Ñ ÐºÐ°Ðº прочитанное";
-$a->strings["Channel Select"] = "Выбор канала";
-$a->strings["Manage Your Channels"] = "Управление каналов";
-$a->strings["Settings"] = "ÐаÑтройки";
-$a->strings["Account/Channel Settings"] = "ÐаÑтройки аккаунта/канала";
-$a->strings["Connections"] = "Контакты";
-$a->strings["Manage/Edit Friends and Connections"] = "Управление/Редактирование друзей и ÑвÑзей";
-$a->strings["Admin"] = "ÐдминиÑтрациÑ";
-$a->strings["Site Setup and Configuration"] = "УÑтановка и ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ñайта";
-$a->strings["Nothing new here"] = "Ðичего нового здеÑÑŒ";
-$a->strings["Please wait..."] = "Подождите пожалуйÑта ...";
-$a->strings["Unable to obtain identity information from database"] = "Ðевозможно получить идентификационную информацию из базы данных";
-$a->strings["Empty name"] = "ПуÑтое имÑ";
-$a->strings["Name too long"] = "Слишком длинное имÑ";
-$a->strings["No account identifier"] = "идентификатор аккаунта отÑутÑтвует";
-$a->strings["Nickname has unsupported characters or is already being used on this site."] = "ПÑевдоним имеет недопуÑтимые Ñимволы или уже иÑпользуетÑÑ Ð½Ð° Ñтом Ñайте.";
-$a->strings["Unable to retrieve created identity"] = "";
-$a->strings["Default Profile"] = "Профиль по умолчанию";
-$a->strings["Friends"] = "ДрузьÑ";
+$a->strings["channel"] = "канал";
+$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s нравитÑÑ %2\$s's %3\$s";
+$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s не нравитÑÑ %2\$s's %3\$s";
+$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s теперь Ñоединен Ñ %2\$s";
+$a->strings["%1\$s poked %2\$s"] = "%1\$s подпихнул %2\$s";
+$a->strings["%1\$s is currently %2\$s"] = "%1\$s в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ %2\$s";
+$a->strings["Select"] = "Выбрать";
+$a->strings["Delete"] = "Удалить";
+$a->strings["Message is verified"] = "";
+$a->strings["View %s's profile @ %s"] = "ПроÑмотр %s's Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ @ %s";
+$a->strings["Categories:"] = "Категории:";
+$a->strings["Filed under:"] = "Хранить под:";
+$a->strings[" from %s"] = " от %s";
+$a->strings["last edited: %s"] = "";
+$a->strings["View in context"] = "Показать в контекÑте";
+$a->strings["Please wait"] = "Подождите пожалуйÑта";
+$a->strings["remove"] = "удалить";
+$a->strings["Loading..."] = "Загрузка...";
+$a->strings["Delete Selected Items"] = "Удалить выбранные Ñлементы";
+$a->strings["View Source"] = "";
+$a->strings["Follow Thread"] = "Следобать теме";
+$a->strings["View Status"] = "ПроÑмотр ÑоÑтоÑниÑ";
+$a->strings["View Photos"] = "ПроÑмотр фотографий";
+$a->strings["Matrix Activity"] = "ÐктивноÑÑ‚ÑŒ матрицы";
+$a->strings["Edit Contact"] = "Редактировать контакт";
+$a->strings["Send PM"] = "Отправить личное Ñообщение";
+$a->strings["Poke"] = "Подпихнуть";
+$a->strings["%s likes this."] = "%s нравитÑÑ Ñто.";
+$a->strings["%s doesn't like this."] = "%s не нравитÑÑ Ñто.";
+$a->strings["<span %1\$s>%2\$d people</span> like this."] = array(
+ 0 => "",
+ 1 => "",
+ 2 => "<span %1\$s>%2\$d чел.</span> нравитÑÑ Ñто.",
+);
+$a->strings["<span %1\$s>%2\$d people</span> don't like this."] = array(
+ 0 => "",
+ 1 => "",
+ 2 => "<span %1\$s>%2\$d чел.</span> не нравитÑÑ Ñто.",
+);
+$a->strings["and"] = "и";
+$a->strings[", and %d other people"] = array(
+ 0 => "",
+ 1 => "",
+ 2 => ", и %d другие люди",
+);
+$a->strings["%s like this."] = "%s нравитÑÑ Ñто.";
+$a->strings["%s don't like this."] = "%s не нравитÑÑ Ñто.";
+$a->strings["Visible to <strong>everybody</strong>"] = "Видно Ð´Ð»Ñ <strong>вÑех</strong>";
+$a->strings["Please enter a link URL:"] = "ПожалуйÑта, введите URL ÑÑылки:";
+$a->strings["Please enter a video link/URL:"] = "ПожалуйÑта, введите URL видео-ÑÑылки:";
+$a->strings["Please enter an audio link/URL:"] = "ПожалуйÑта, введите URL аудио-ÑÑылки:";
+$a->strings["Tag term:"] = "Теги:";
+$a->strings["Save to Folder:"] = "Сохранить в папку:";
+$a->strings["Where are you right now?"] = "Где вы ÑейчаÑ?";
+$a->strings["Expires YYYY-MM-DD HH:MM"] = "";
+$a->strings["Preview"] = "Предварительный проÑмотр";
+$a->strings["Share"] = "ПоделитьÑÑ";
+$a->strings["Page link title"] = "СÑылка заголовока Ñтраницы";
+$a->strings["Upload photo"] = "Загрузить фотографию";
+$a->strings["upload photo"] = "загрузить фотографию";
+$a->strings["Attach file"] = "Прикрепить файл";
+$a->strings["attach file"] = "прикрепить файл";
+$a->strings["Insert web link"] = "Ð’Ñтавить веб-ÑÑылку";
+$a->strings["web link"] = "веб-ÑÑылка";
+$a->strings["Insert video link"] = "Ð’Ñтавить видео-ÑÑылку";
+$a->strings["video link"] = "видео-ÑÑылка";
+$a->strings["Insert audio link"] = "Ð’Ñтавить аудио-ÑÑылку";
+$a->strings["audio link"] = "аудио-ÑÑылка";
+$a->strings["Set your location"] = "Указание Ñвоего раÑположениÑ";
+$a->strings["set location"] = "указание раÑположениÑ";
+$a->strings["Clear browser location"] = "Стереть указание раÑположениÑ";
+$a->strings["clear location"] = "Ñтереть указание раÑположениÑ";
+$a->strings["Set title"] = "Заголовок";
+$a->strings["Categories (comma-separated list)"] = "Категории (ÑпиÑок через запÑтую)";
+$a->strings["Permission settings"] = "ÐаÑтройки разрешений";
+$a->strings["permissions"] = "разрешениÑ";
+$a->strings["Public post"] = "Публичное Ñообщение";
+$a->strings["Example: bob@example.com, mary@example.com"] = "Пример: bob@example.com, mary@example.com";
+$a->strings["Set expiration date"] = "";
+$a->strings["Encrypt text"] = "";
+$a->strings["OK"] = "OK";
+$a->strings["Cancel"] = "Отменить";
+$a->strings["Commented Order"] = "По комментириÑм";
+$a->strings["Sort by Comment Date"] = "Сортировка по дате ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸ÐµÐ²";
+$a->strings["Posted Order"] = "По добавлениÑм";
+$a->strings["Sort by Post Date"] = "Сортировка по дате ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑообщениÑ";
+$a->strings["Personal"] = "Личные";
+$a->strings["Posts that mention or involve you"] = "СообщениÑ, в которых упоминули или вовлекли ваÑ";
+$a->strings["New"] = "Ðовые";
+$a->strings["Activity Stream - by date"] = "Лента активноÑти - по дате";
+$a->strings["Starred"] = "Помеченные";
+$a->strings["Favourite Posts"] = "Фаворит-ÑообщениÑ";
+$a->strings["Spam"] = "Спам";
+$a->strings["Posts flagged as SPAM"] = "Как СПÐÐœ помеченные ÑообщениÑ";
+$a->strings["Channel"] = "Канал";
+$a->strings["Status Messages and Posts"] = "";
+$a->strings["About"] = "О Ñебе";
+$a->strings["Profile Details"] = "Ð¡Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ профиле";
+$a->strings["Photo Albums"] = "Фотоальбомы";
+$a->strings["Files"] = "Файлы";
+$a->strings["Files and Storage"] = "";
+$a->strings["Events and Calendar"] = "МероприÑÑ‚Ð¸Ñ Ð¸ календарь";
+$a->strings["Webpages"] = "Веб-Ñтраницы";
+$a->strings["Manage Webpages"] = "Управление веб-Ñтраниц";
$a->strings["created a new post"] = "Ñоздал новое Ñообщение";
$a->strings["commented on %s's post"] = "прокомментировал %s's Ñообщение";
-$a->strings["Embedded content"] = "";
-$a->strings["Embedding disabled"] = "";
$a->strings["Permission denied."] = "ДоÑтуп запрещен.";
$a->strings["Image exceeds website size limit of %lu bytes"] = "";
$a->strings["Image file is empty."] = "файл пуÑÑ‚.";
$a->strings["Unable to process image"] = "";
$a->strings["Photo storage failed."] = "";
-$a->strings["Photo Albums"] = "Фотоальбомы";
$a->strings["Upload New Photos"] = "Загрузить новые фотографии";
$a->strings["Male"] = "МужÑкой";
$a->strings["Female"] = "ЖенÑкий";
@@ -363,6 +516,21 @@ $a->strings["You have reached your limit of %1$.0f Mbytes attachment storage."]
$a->strings["File upload failed. Possible system limit or action terminated."] = "Загрузка файла не удалаÑÑŒ. Возможно ÑиÑтема перегружена или попытка прекращена.";
$a->strings["Stored file could not be verified. Upload failed."] = "";
$a->strings["Path not available."] = "Путь недоÑтупен.";
+$a->strings["Empty pathname"] = "";
+$a->strings["duplicate filename or path"] = "";
+$a->strings["Path not found."] = "Путь не найден.";
+$a->strings["mkdir failed."] = "";
+$a->strings["database storage failed."] = "";
+$a->strings["Tags"] = "ТÑги";
+$a->strings["Keywords"] = "Ключевые Ñлова";
+$a->strings["have"] = "иметь";
+$a->strings["has"] = "еÑÑ‚ÑŒ";
+$a->strings["want"] = "хотеть";
+$a->strings["wants"] = "хочет";
+$a->strings["like"] = "мне нравитьÑÑ";
+$a->strings["likes"] = "мне нравитьÑÑ";
+$a->strings["dislike"] = "мне не-нравитьÑÑ";
+$a->strings["dislikes"] = "мне не-нравитьÑÑ";
$a->strings["Not a valid email address"] = "Ðе дейÑтвительный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты";
$a->strings["Your email domain is not among those allowed on this site"] = "Домен Ñлектронной почты не входит в чиÑло тех, которые разрешены на Ñтом Ñайте";
$a->strings["Your email address is already registered at this site."] = "Ваш Ð°Ð´Ñ€ÐµÑ Ñлектронной почты уже зарегиÑтрирован на Ñтом Ñайте.";
@@ -376,106 +544,55 @@ $a->strings["your registration password"] = "Ваш пароль региÑÑ‚Ñ€Ð
$a->strings["Registration details for %s"] = "РегиÑтрационные данные Ð´Ð»Ñ %s";
$a->strings["Account approved."] = "Ðккаунт утвержден.";
$a->strings["Registration revoked for %s"] = "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¾Ñ‚Ð¾Ð·Ð²Ð°Ð½Ð° Ð´Ð»Ñ %s";
-$a->strings["Image/photo"] = "Изображение / фото";
-$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s напиÑал Ñледующее %2\$s %3\$s";
-$a->strings["post"] = "Ñообщение";
-$a->strings["$1 wrote:"] = "$1 пиÑал:";
-$a->strings["Encrypted content"] = "Зашифрованное Ñодержание";
-$a->strings["prev"] = "предыдущий";
-$a->strings["first"] = "первый";
-$a->strings["last"] = "поÑледний";
-$a->strings["next"] = "Ñледующий";
-$a->strings["older"] = "Ñтарший";
-$a->strings["newer"] = "новее";
-$a->strings["No connections"] = "Ðет каналов";
-$a->strings["%d Connection"] = array(
- 0 => "%d канал",
- 1 => "%d канала",
- 2 => "%d каналов",
-);
-$a->strings["View Connections"] = "ПроÑмотр контактов";
-$a->strings["Save"] = "Запомнить";
-$a->strings["poke"] = "подпихнуть";
-$a->strings["poked"] = "подпихнул";
-$a->strings["ping"] = "";
-$a->strings["pinged"] = "";
-$a->strings["prod"] = "";
-$a->strings["prodded"] = "";
-$a->strings["slap"] = "";
-$a->strings["slapped"] = "";
-$a->strings["finger"] = "";
-$a->strings["fingered"] = "";
-$a->strings["rebuff"] = "";
-$a->strings["rebuffed"] = "";
-$a->strings["happy"] = "ÑчаÑтливый";
-$a->strings["sad"] = "";
-$a->strings["mellow"] = "";
-$a->strings["tired"] = "";
-$a->strings["perky"] = "";
-$a->strings["angry"] = "Ñердитый";
-$a->strings["stupified"] = "";
-$a->strings["puzzled"] = "";
-$a->strings["interested"] = "";
-$a->strings["bitter"] = "озлобленный";
-$a->strings["cheerful"] = "";
-$a->strings["alive"] = "";
-$a->strings["annoyed"] = "";
-$a->strings["anxious"] = "";
-$a->strings["cranky"] = "капризный";
-$a->strings["disturbed"] = "вÑтревоженный";
-$a->strings["frustrated"] = "разочарованный";
-$a->strings["motivated"] = "мотивированный";
-$a->strings["relaxed"] = "раÑÑлабленный";
-$a->strings["surprised"] = "удивленный";
-$a->strings["Monday"] = "Понедельник";
-$a->strings["Tuesday"] = "Вторник";
-$a->strings["Wednesday"] = "Среда";
-$a->strings["Thursday"] = "Четверг";
-$a->strings["Friday"] = "ПÑтница";
-$a->strings["Saturday"] = "Суббота";
-$a->strings["Sunday"] = "ВоÑкреÑенье";
-$a->strings["January"] = "Январь";
-$a->strings["February"] = "Февраль";
-$a->strings["March"] = "Март";
-$a->strings["April"] = "Ðпрель";
-$a->strings["May"] = "Май";
-$a->strings["June"] = "Июнь";
-$a->strings["July"] = "Июль";
-$a->strings["August"] = "ÐвгуÑÑ‚";
-$a->strings["September"] = "СентÑбрь";
-$a->strings["October"] = "ОктÑбрь";
-$a->strings["November"] = "ÐоÑбрь";
-$a->strings["December"] = "Декабрь";
-$a->strings["unknown.???"] = "неизвеÑтный.???";
-$a->strings["bytes"] = "байт";
-$a->strings["remove"] = "удалить";
-$a->strings["[remove]"] = "[удалить]";
-$a->strings["Categories:"] = "Категории:";
-$a->strings["Filed under:"] = "Хранить под:";
-$a->strings["Click to open/close"] = "Ðажмите, чтобы открыть/закрыть";
-$a->strings["link to source"] = "ÑÑылка на иÑточник";
-$a->strings["Select a page layout: "] = "";
-$a->strings["default"] = "по умолчанию";
-$a->strings["Page content type: "] = "";
-$a->strings["Select an alternate language"] = "Выбор альтернативного Ñзыка";
-$a->strings["photo"] = "фото";
-$a->strings["event"] = "мероприÑтие";
-$a->strings["status"] = "ÑтатуÑ";
-$a->strings["comment"] = "комментарий";
-$a->strings["activity"] = "активноÑÑ‚ÑŒ";
-$a->strings["Design"] = "";
-$a->strings["Blocks"] = "";
-$a->strings["Menus"] = "";
-$a->strings["Layouts"] = "";
-$a->strings["Pages"] = "";
-$a->strings["New Page"] = "";
+$a->strings["Sort Options"] = "";
+$a->strings["Alphabetic"] = "По алфавиту";
+$a->strings["Reverse Alphabetic"] = "По обратному алфавиту";
+$a->strings["Newest to Oldest"] = "От новых к Ñтарым";
+$a->strings["Enable Safe Search"] = "";
+$a->strings["Disable Safe Search"] = "";
+$a->strings["Safe Mode"] = "";
+$a->strings["Red Matrix Notification"] = "ÐžÐ¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Red матрицы";
+$a->strings["redmatrix"] = "redmatrix";
+$a->strings["Thank You,"] = "СпаÑибо,";
+$a->strings["%s Administrator"] = "%s админиÑтратор";
+$a->strings["%s <!item_type!>"] = "%s <!item_type!>";
+$a->strings["[Red:Notify] New mail received at %s"] = "[Red:Уведомление] Получено новое Ñообщение в %s";
+$a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "";
+$a->strings["%1\$s sent you %2\$s."] = "%1\$s поÑлал вам %2\$s.";
+$a->strings["a private message"] = "личное Ñообщение";
+$a->strings["Please visit %s to view and/or reply to your private messages."] = "ПожалуйÑта, поÑетите %s Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра и/или ответа на ваши личные ÑообщениÑ.";
+$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "";
+$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "";
+$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "";
+$a->strings["[Red:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Red:Уведомление] Комментарий к разговору #%1\$d по %2\$s";
+$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "";
+$a->strings["Please visit %s to view and/or reply to the conversation."] = "ПожалуйÑта, поÑетите %s Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра и/или ответа разговора.";
+$a->strings["[Red:Notify] %s posted to your profile wall"] = "[Red:Уведомление] %s добавил Ñообщениe на Ñтену вашего профилÑ";
+$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "";
+$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "";
+$a->strings["[Red:Notify] %s tagged you"] = "[Red:Уведомление] %s добавил у Ð²Ð°Ñ Ñ‚ÐµÐ³";
+$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "";
+$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "";
+$a->strings["[Red:Notify] %1\$s poked you"] = "[Red:Уведомление] %1\$s подпихнул ваÑ";
+$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "";
+$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "";
+$a->strings["[Red:Notify] %s tagged your post"] = "[Red:Уведомление] %s добавил у Ð²Ð°Ñ Ð² Ñообщении тег";
+$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "";
+$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "";
+$a->strings["[Red:Notify] Introduction received"] = "[Red:Уведомление] введение получено";
+$a->strings["%1\$s, you've received an introduction from '%2\$s' at %3\$s"] = "";
+$a->strings["%1\$s, you've received [zrl=%2\$s]an introduction[/zrl] from %3\$s."] = "";
+$a->strings["You may visit their profile at %s"] = "Ð’Ñ‹ можете поÑетить ​​профиль в %s";
+$a->strings["Please visit %s to approve or reject the introduction."] = "";
+$a->strings["[Red:Notify] Friend suggestion received"] = "[Red:Уведомление] Получено предложение дружить";
+$a->strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "";
+$a->strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "";
+$a->strings["Name:"] = "ИмÑ:";
+$a->strings["Photo:"] = "Фото:";
+$a->strings["Please visit %s to approve or reject the suggestion."] = "";
$a->strings["Logged out."] = "Вышел из ÑиÑтемы.";
$a->strings["Failed authentication"] = "Ошибка аутентификации";
$a->strings["Login failed."] = "Ðе удалоÑÑŒ войти.";
-$a->strings["You have %1$.0f of %2$.0f allowed connections."] = "";
-$a->strings["Add New Connection"] = "Добавить новый контакт";
-$a->strings["Enter the channel address"] = "Введите Ð°Ð´Ñ€ÐµÑ ÐºÐ°Ð½Ð°Ð»Ð°";
-$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Пример: bob@example.com, http://example.com/barbara";
$a->strings["%d invitation available"] = array(
0 => "имеетÑÑ %d приглашение",
1 => "имеютÑÑ %d приглашениÑ",
@@ -487,16 +604,18 @@ $a->strings["Connect/Follow"] = "Подключить/Ñледовать";
$a->strings["Examples: Robert Morgenstein, Fishing"] = "Примеры: Владимир Ильич, Революционер";
$a->strings["Find"] = "ПоиÑк";
$a->strings["Channel Suggestions"] = "Рекомендации каналов";
-$a->strings["Similar Interests"] = "Похожие интереÑÑ‹";
$a->strings["Random Profile"] = "Случайные";
$a->strings["Invite Friends"] = "ПриглаÑить друзей";
-$a->strings["Everything"] = "Ð’Ñе";
-$a->strings["Categories"] = "Категории";
$a->strings["%d connection in common"] = array(
0 => "%d ÑовмеÑтный контакт",
1 => "%d ÑовмеÑтных контакта",
2 => "%d ÑовмеÑтных контактов",
);
+$a->strings["New Page"] = "ÐÐ¾Ð²Ð°Ñ Ñтраница";
+$a->strings["Edit"] = "Редактировать";
+$a->strings["Click here to upgrade."] = "Ðажмите здеÑÑŒ, чтобы обновить.";
+$a->strings["This action exceeds the limits set by your subscription plan."] = "";
+$a->strings["This action is not available under your subscription plan."] = "";
$a->strings["Channel is blocked on this site."] = "Канал блокируетÑÑ Ð½Ð° Ñтом Ñайте.";
$a->strings["Channel location missing."] = "МеÑтоположение канала отÑутÑтвует.";
$a->strings["Channel discovery failed. Website may be down or misconfigured."] = "";
@@ -521,24 +640,73 @@ $a->strings["Can chat with me (when available)"] = "Можете общатьÑÑ
$a->strings["Requires compatible chat plugin"] = "ТребуетÑÑ ÑовмеÑтимый чат-плагин";
$a->strings["Can write to my \"public\" file storage"] = "";
$a->strings["Can edit my \"public\" pages"] = "Может редактировать мои \"публичные\" Ñтраницы";
+$a->strings["Can source my \"public\" posts in derived channels"] = "";
+$a->strings["Somewhat advanced - very useful in open communities"] = "";
$a->strings["Can administer my channel resources"] = "Может админиÑтрировать мои реÑурÑÑ‹ канала";
$a->strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "";
-$a->strings["Tags"] = "ТÑги";
-$a->strings["have"] = "иметь";
-$a->strings["has"] = "еÑÑ‚ÑŒ";
-$a->strings["want"] = "хотеть";
-$a->strings["wants"] = "хочет";
-$a->strings["like"] = "мне нравитьÑÑ";
-$a->strings["likes"] = "мне нравитьÑÑ";
-$a->strings["dislike"] = "мне не-нравитьÑÑ";
-$a->strings["dislikes"] = "мне не-нравитьÑÑ";
-$a->strings["Click here to upgrade."] = "Ðажмите здеÑÑŒ, чтобы обновить.";
-$a->strings["This action exceeds the limits set by your subscription plan."] = "";
-$a->strings["This action is not available under your subscription plan."] = "";
+$a->strings["Default"] = "По умолчанию";
+$a->strings["Unable to obtain identity information from database"] = "Ðевозможно получить идентификационную информацию из базы данных";
+$a->strings["Empty name"] = "ПуÑтое имÑ";
+$a->strings["Name too long"] = "Слишком длинное имÑ";
+$a->strings["No account identifier"] = "идентификатор аккаунта отÑутÑтвует";
+$a->strings["Nickname is required."] = "ТребуетÑÑ Ð¿Ñевдоним.";
+$a->strings["Nickname has unsupported characters or is already being used on this site."] = "ПÑевдоним имеет недопуÑтимые Ñимволы или уже иÑпользуетÑÑ Ð½Ð° Ñтом Ñайте.";
+$a->strings["Unable to retrieve created identity"] = "";
+$a->strings["Default Profile"] = "Профиль по умолчанию";
+$a->strings["Requested channel is not available."] = "Запрашиваемый канал не доÑтупен.";
+$a->strings[" Sorry, you don't have the permission to view this profile. "] = "";
+$a->strings["Requested profile is not available."] = "Запрашиваемый профиль не доÑтупен.";
+$a->strings["Change profile photo"] = "Изменить фотографию профилÑ";
+$a->strings["Profiles"] = "Профили";
+$a->strings["Manage/edit profiles"] = "Управление / Редактирование профилей";
+$a->strings["Create New Profile"] = "Создать новый профиль";
+$a->strings["Edit Profile"] = "Редактировать профиль";
+$a->strings["Profile Image"] = "Изображение профилÑ";
+$a->strings["visible to everybody"] = "видно вÑем";
+$a->strings["Edit visibility"] = "Редактировать видимоÑÑ‚ÑŒ";
+$a->strings["Gender:"] = "Пол:";
+$a->strings["Status:"] = "СтатуÑ:";
+$a->strings["Homepage:"] = "ДомашнÑÑ Ñтраница:";
+$a->strings["g A l F d"] = "g A l F d";
+$a->strings["F d"] = "F d";
+$a->strings["[today]"] = "[ÑегоднÑ]";
+$a->strings["Birthday Reminders"] = "ÐÐ°Ð¿Ð¾Ð¼Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¾ ДнÑÑ… РождениÑ";
+$a->strings["Birthdays this week:"] = "Дни Ð Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð½Ð° Ñтой неделе:";
+$a->strings["[No description]"] = "[без опиÑаниÑ]";
+$a->strings["Event Reminders"] = "ÐÐ°Ð¿Ð¾Ð¼Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¼ÐµÑ€Ð¾Ð¿Ñ€Ð¸Ñтий";
+$a->strings["Events this week:"] = "МероприÑÑ‚Ð¸Ñ Ð½Ð° Ñтой неделе:";
+$a->strings["Profile"] = "Профиль";
+$a->strings["Full Name:"] = "Полное имÑ:";
+$a->strings["j F, Y"] = "j F, Y";
+$a->strings["j F"] = "j F";
+$a->strings["Birthday:"] = "День РождениÑ:";
+$a->strings["Age:"] = "ВозраÑÑ‚:";
+$a->strings["for %1\$d %2\$s"] = "Ð´Ð»Ñ %1\$d %2\$s";
+$a->strings["Sexual Preference:"] = "СекÑÑƒÐ°Ð»ÑŒÐ½Ð°Ñ Ð¾Ñ€Ð¸ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ:";
+$a->strings["Hometown:"] = "Родной город:";
+$a->strings["Tags:"] = "ТÑги:";
+$a->strings["Political Views:"] = "ПолитичеÑкие взглÑды:";
+$a->strings["Religion:"] = "РелигиÑ:";
+$a->strings["About:"] = "О Ñебе:";
+$a->strings["Hobbies/Interests:"] = "Хобби / интереÑÑ‹:";
+$a->strings["Likes:"] = "Что вам нравитÑÑ:";
+$a->strings["Dislikes:"] = "Что вам не нравитÑÑ:";
+$a->strings["Contact information and Social Networks:"] = "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¸ Ñоциальные Ñети контакта:";
+$a->strings["Musical interests:"] = "Музыкальные интереÑÑ‹:";
+$a->strings["Books, literature:"] = "Книги, литература:";
+$a->strings["Television:"] = "Телевидение:";
+$a->strings["Film/dance/culture/entertainment:"] = "Кино / танцы / культура / развлечениÑ:";
+$a->strings["Love/Romance:"] = "Любовь / РоманÑ:";
+$a->strings["Work/employment:"] = "Работа / ЗанÑтоÑÑ‚ÑŒ:";
+$a->strings["School/education:"] = "Школа / образование:";
+$a->strings["Permission denied"] = "ДоÑтуп запрещен";
+$a->strings["Item not found."] = "Элемент не найден.";
+$a->strings["Collection not found."] = "ÐšÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ñ Ð½Ðµ найдена.";
+$a->strings["Collection is empty."] = "ÐšÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ñ Ð¿ÑƒÑта.";
+$a->strings["Collection: %s"] = "Коллекции: %s";
+$a->strings["Connection: %s"] = "Контакты: %s";
+$a->strings["Connection not found."] = "Контакт не найден.";
$a->strings["Private Message"] = "Личное Ñообщение";
-$a->strings["Edit"] = "Редактировать";
-$a->strings["Delete"] = "Удалить";
-$a->strings["Select"] = "Выбрать";
$a->strings["save to folder"] = "Ñохранить в папку";
$a->strings["add star"] = "добавить маркировку";
$a->strings["remove star"] = "удалить маркировку";
@@ -551,10 +719,10 @@ $a->strings["Share this"] = "ПоделитьÑÑ Ñтим";
$a->strings["share"] = "поделитьÑÑ";
$a->strings["View %s's profile - %s"] = "ПроÑмотр %s's Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ - %s";
$a->strings["to"] = "к";
+$a->strings["via"] = "через";
$a->strings["Wall-to-Wall"] = "Стена-к-Стене";
$a->strings["via Wall-To-Wall:"] = "через Стена-к-Стене:";
-$a->strings[" from %s"] = " от %s";
-$a->strings["Please wait"] = "Подождите пожалуйÑта";
+$a->strings["Expires: %s"] = "";
$a->strings["%d comment"] = array(
0 => "%d комментарий",
1 => "%d комментариÑ",
@@ -570,61 +738,6 @@ $a->strings["Code"] = "Код";
$a->strings["Image"] = "Изображение";
$a->strings["Link"] = "СÑылка";
$a->strings["Video"] = "Видео";
-$a->strings["Preview"] = "Предварительный проÑмотр";
-$a->strings["channel"] = "канал";
-$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s нравитÑÑ %2\$s's %3\$s";
-$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s не нравитÑÑ %2\$s's %3\$s";
-$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s теперь Ñоединен Ñ %2\$s";
-$a->strings["%1\$s poked %2\$s"] = "%1\$s подпихнул %2\$s";
-$a->strings["%1\$s is currently %2\$s"] = "%1\$s в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ %2\$s";
-$a->strings["View %s's profile @ %s"] = "ПроÑмотр %s's Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ @ %s";
-$a->strings["View in context"] = "Показать в контекÑте";
-$a->strings["Loading..."] = "Загрузка...";
-$a->strings["Delete Selected Items"] = "Удалить выбранные Ñлементы";
-$a->strings["Follow Thread"] = "Следобать теме";
-$a->strings["%s likes this."] = "%s нравитÑÑ Ñто.";
-$a->strings["%s doesn't like this."] = "%s не нравитÑÑ Ñто.";
-$a->strings["<span %1\$s>%2\$d people</span> like this."] = "<span %1\$s>%2\$d чел.</span> нравитÑÑ Ñто.";
-$a->strings["<span %1\$s>%2\$d people</span> don't like this."] = "<span %1\$s>%2\$d чел.</span> не нравитÑÑ Ñто.";
-$a->strings["and"] = "и";
-$a->strings[", and %d other people"] = ", и %d другие люди";
-$a->strings["%s like this."] = "%s нравитÑÑ Ñто.";
-$a->strings["%s don't like this."] = "%s не нравитÑÑ Ñто.";
-$a->strings["Visible to <strong>everybody</strong>"] = "Видно Ð´Ð»Ñ <strong>вÑех</strong>";
-$a->strings["Please enter a link URL:"] = "ПожалуйÑта, введите URL ÑÑылки:";
-$a->strings["Please enter a video link/URL:"] = "ПожалуйÑта, введите URL видео-ÑÑылки:";
-$a->strings["Please enter an audio link/URL:"] = "ПожалуйÑта, введите URL аудио-ÑÑылки:";
-$a->strings["Tag term:"] = "Теги:";
-$a->strings["Save to Folder:"] = "Сохранить в папку:";
-$a->strings["Where are you right now?"] = "Где вы ÑейчаÑ?";
-$a->strings["Share"] = "ПоделитьÑÑ";
-$a->strings["Page link title"] = "СÑылка заголовока Ñтраницы";
-$a->strings["Upload photo"] = "Загрузить фотографию";
-$a->strings["upload photo"] = "загрузить фотографию";
-$a->strings["Attach file"] = "Прикрепить файл";
-$a->strings["attach file"] = "прикрепить файл";
-$a->strings["Insert web link"] = "Ð’Ñтавить веб-ÑÑылку";
-$a->strings["web link"] = "веб-ÑÑылка";
-$a->strings["Insert video link"] = "Ð’Ñтавить видео-ÑÑылку";
-$a->strings["video link"] = "видео-ÑÑылка";
-$a->strings["Insert audio link"] = "Ð’Ñтавить аудио-ÑÑылку";
-$a->strings["audio link"] = "аудио-ÑÑылка";
-$a->strings["Set your location"] = "Указание Ñвоего раÑположениÑ";
-$a->strings["set location"] = "указание раÑположениÑ";
-$a->strings["Clear browser location"] = "Стереть указание раÑположениÑ";
-$a->strings["clear location"] = "Ñтереть указание раÑположениÑ";
-$a->strings["Set title"] = "Заголовок";
-$a->strings["Categories (comma-separated list)"] = "Категории (ÑпиÑок через запÑтую)";
-$a->strings["Permission settings"] = "ÐаÑтройки разрешений";
-$a->strings["permissions"] = "разрешениÑ";
-$a->strings["Public post"] = "Публичное Ñообщение";
-$a->strings["Example: bob@example.com, mary@example.com"] = "Пример: bob@example.com, mary@example.com";
-$a->strings["Permission denied"] = "ДоÑтуп запрещен";
-$a->strings["Item not found."] = "Элемент не найден.";
-$a->strings["Archives"] = "Ðрхивы";
-$a->strings["Collection not found."] = "ÐšÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ñ Ð½Ðµ найдена.";
-$a->strings["Collection has no members."] = "Ð’ коллекции нет ни одного пользователÑ.";
-$a->strings["Connection not found."] = "Контакт не найден.";
$a->strings["Welcome "] = "Добро пожаловать";
$a->strings["Please upload a profile photo."] = "Загрузите пожалуйÑта фотографию профилÑ.";
$a->strings["Welcome back "] = "Добро пожаловать";
@@ -652,16 +765,19 @@ $a->strings["Adjust for viewer timezone"] = "Отрегулируйте Ð´Ð»Ñ Ð
$a->strings["Description:"] = "ОпиÑание:";
$a->strings["Title:"] = "Заголовок:";
$a->strings["Share this event"] = "ПоделитьÑÑ Ñтим мероприÑтием";
+$a->strings["Thing updated"] = "";
$a->strings["Object store: failed"] = "";
-$a->strings["thing/stuff added"] = "";
+$a->strings["Thing added"] = "";
$a->strings["OBJ: %1\$s %2\$s %3\$s"] = "";
-$a->strings["not yet implemented."] = "еще не реализовано.";
-$a->strings["Add Stuff to your Profile"] = "";
+$a->strings["Show Thing"] = "";
+$a->strings["item not found."] = "Элемент не найден.";
+$a->strings["Edit Thing"] = "";
$a->strings["Select a profile"] = "Выберите профиль";
$a->strings["Select a category of stuff. e.g. I ______ something"] = "";
-$a->strings["Name of thing or stuff e.g. something"] = "";
-$a->strings["URL of thing or stuff (optional)"] = "";
-$a->strings["URL for photo of thing or stuff (optional)"] = "";
+$a->strings["Name of thing e.g. something"] = "";
+$a->strings["URL of thing (optional)"] = "";
+$a->strings["URL for photo of thing (optional)"] = "";
+$a->strings["Add Thing to your Profile"] = "";
$a->strings["Total invitation limit exceeded."] = "";
$a->strings["%s : Not a valid email address."] = "%s : Ðе дейÑтвительный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты.";
$a->strings["Please join us on Red"] = "ПожалуйÑта, приÑоединÑйтеÑÑŒ к нам в Red";
@@ -676,14 +792,88 @@ $a->strings["You have no more invitations available"] = "У Ð²Ð°Ñ Ð±Ð¾Ð»ÑŒÑˆÐµ
$a->strings["Send invitations"] = "ПоÑлать приглашениÑ";
$a->strings["Enter email addresses, one per line:"] = "Введите адреÑа Ñлектронной почты, по одному на Ñтроку:";
$a->strings["Your message:"] = "Ваше Ñообщение:";
-$a->strings["You are cordially invited to join me and some other close friends on the Red Matrix - a revolutionary new decentralised social and information tool."] = "";
+$a->strings["You are cordially invited to join me and some other close friends on the Red Matrix - a revolutionary new decentralised communication and information tool."] = "";
$a->strings["You will need to supply this invitation code: \$invite_code"] = "";
$a->strings["Please visit my channel at"] = "ПожалуйÑта, поÑетите мой канал на";
-$a->strings["Once you have registered, please connect with my Red Matrix channel address:"] = "";
+$a->strings["Once you have registered (on ANY Red Matrix site - they are all inter-connected), please connect with my Red Matrix channel address:"] = "";
+$a->strings["Click the [Register] link on the following page to join."] = "";
$a->strings["For more information about the Red Matrix Project and why it has the potential to change the internet as we know it, please visit http://getzot.com"] = "";
-$a->strings["Friends of %s"] = "Ð”Ñ€ÑƒÐ·ÑŒÑ %s";
-$a->strings["No friends to display."] = "Ðет друзей Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°.";
-$a->strings["Requested profile is not available."] = "Запрашиваемый профиль не доÑтупен.";
+$a->strings["Could not access contact record."] = "";
+$a->strings["Could not locate selected profile."] = "";
+$a->strings["Connection updated."] = "Канал обновлен.";
+$a->strings["Failed to update connection record."] = "";
+$a->strings["Could not access address book record."] = "";
+$a->strings["Refresh failed - channel is currently unavailable."] = "";
+$a->strings["Channel has been unblocked"] = "Канал разблокирован";
+$a->strings["Channel has been blocked"] = "Канал заблокирован";
+$a->strings["Unable to set address book parameters."] = "";
+$a->strings["Channel has been unignored"] = "Канал не проигнорирован";
+$a->strings["Channel has been ignored"] = "Канал проигнорирован";
+$a->strings["Channel has been unarchived"] = "Канал разархивирован";
+$a->strings["Channel has been archived"] = "Канал заархивирован";
+$a->strings["Channel has been unhidden"] = "Канал открыт";
+$a->strings["Channel has been hidden"] = "Канал Ñкрыт";
+$a->strings["Channel has been approved"] = "Канал одобрен";
+$a->strings["Channel has been unapproved"] = "Канал не одобрен";
+$a->strings["Contact has been removed."] = "Канал удален.";
+$a->strings["View %s's profile"] = "ПроÑмотр %s's профилÑ";
+$a->strings["Refresh Permissions"] = "Обновить разрешениÑ";
+$a->strings["Fetch updated permissions"] = "";
+$a->strings["Recent Activity"] = "";
+$a->strings["View recent posts and comments"] = "";
+$a->strings["Unblock"] = "Разрешить";
+$a->strings["Block"] = "Заблокировать";
+$a->strings["Block or Unblock this connection"] = "Запретить или разрешить Ñтот канал";
+$a->strings["Unignore"] = "Ðе игнорировать";
+$a->strings["Ignore"] = "Игнорировать";
+$a->strings["Ignore or Unignore this connection"] = "Игнорировать или не игнорировать Ñтот канал";
+$a->strings["Unarchive"] = "Разархивировать";
+$a->strings["Archive"] = "Заархивировать";
+$a->strings["Archive or Unarchive this connection"] = " Заархивировать или разархивировать Ñтот канал";
+$a->strings["Unhide"] = "Показать";
+$a->strings["Hide"] = "Скрыть";
+$a->strings["Hide or Unhide this connection"] = "Скрыть или показывать Ñтот канал";
+$a->strings["Delete this connection"] = "Удалить Ñтот контакт";
+$a->strings["Unknown"] = "ÐеизвеÑтный";
+$a->strings["Approve this connection"] = "Утвердить Ñтот контакт";
+$a->strings["Accept connection to allow communication"] = "";
+$a->strings["Automatic Permissions Settings"] = "ÐаÑтройки автоматичеÑких разрешений";
+$a->strings["Connections: settings for %s"] = "";
+$a->strings["When receiving a channel introduction, any permissions provided here will be applied to the new connection automatically and the introduction approved. Leave this page if you do not wish to use this feature."] = "";
+$a->strings["Slide to adjust your degree of friendship"] = "";
+$a->strings["inherited"] = "унаÑледованный";
+$a->strings["Connection has no individual permissions!"] = "";
+$a->strings["This may be appropriate based on your <a href=\"settings\">privacy settings</a>, though you may wish to review the \"Advanced Permissions\"."] = "";
+$a->strings["Profile Visibility"] = "ВидимоÑÑ‚ÑŒ профилÑ";
+$a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "";
+$a->strings["Contact Information / Notes"] = "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ / ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð¾ канале";
+$a->strings["Edit contact notes"] = "Редактировать Ð¿Ñ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð°";
+$a->strings["Their Settings"] = "Их наÑтройки";
+$a->strings["My Settings"] = "Мои наÑтройки";
+$a->strings["Forum Members"] = "УчаÑтники форума";
+$a->strings["Soapbox"] = "Soapbox";
+$a->strings["Full Sharing"] = "Полный обмен";
+$a->strings["Cautious Sharing"] = "";
+$a->strings["Follow Only"] = "Только Ñледовать";
+$a->strings["Individual Permissions"] = "Индивидуальные разрешениÑ";
+$a->strings["Some permissions may be inherited from your channel <a href=\"settings\">privacy settings</a>, which have higher priority. Changing those inherited settings on this page will have no effect."] = "";
+$a->strings["Advanced Permissions"] = "Дополнительные разрешениÑ";
+$a->strings["Quick Links"] = "БыÑтрые ÑÑылки";
+$a->strings["Visit %s's profile - %s"] = "ПоÑетить %s's ​​профиль - %s";
+$a->strings["Block/Unblock contact"] = "Запретить/разрешить контакт";
+$a->strings["Ignore contact"] = "Игнорировать контакт";
+$a->strings["Repair URL settings"] = "Ремонт наÑтройки URL";
+$a->strings["View conversations"] = "ПроÑмотр разговоров";
+$a->strings["Delete contact"] = "Удалить контакт";
+$a->strings["Last update:"] = "ПоÑледнее обновление:";
+$a->strings["Update public posts"] = "Обновить публичные ÑообщениÑ";
+$a->strings["Update now"] = "Обновить ÑейчаÑ";
+$a->strings["Currently blocked"] = "Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½";
+$a->strings["Currently ignored"] = "Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€ÑƒÑŽÑ‚ÑÑ";
+$a->strings["Currently archived"] = "Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹";
+$a->strings["Currently pending"] = "Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð² ожидании";
+$a->strings["Hide this contact from others"] = "Скрыть Ñтот канал от других";
+$a->strings["Replies/likes to your public posts <strong>may</strong> still be visible"] = "";
$a->strings["View"] = "ПроÑмотр";
$a->strings["Authorize application connection"] = "";
$a->strings["Return to your app and insert this Securty Code:"] = "";
@@ -691,11 +881,11 @@ $a->strings["Please login to continue."] = "ПожалуйÑта, войдите
$a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "";
$a->strings["Yes"] = "Да";
$a->strings["No"] = "Ðет";
-$a->strings["You must be logged in to see this page."] = "";
$a->strings["No installed applications."] = "Ðет уÑтановленных приложений.";
$a->strings["Applications"] = "ПриложениÑ";
$a->strings["Invalid item."] = "ÐедейÑтвительный Ñлемент.";
$a->strings["Channel not found."] = "Канал не найден.";
+$a->strings["Page not found."] = "Страница не найдена.";
$a->strings["Item not available."] = "Элемент недоÑтупен.";
$a->strings["Red Matrix Server - Setup"] = "Red Matrix Сервер - УÑтановка";
$a->strings["Could not connect to database."] = "Ðе удалоÑÑŒ подключитьÑÑ Ðº Ñерверу баз данных.";
@@ -760,6 +950,8 @@ $a->strings["In order to store these compiled templates, the web server needs to
$a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "";
$a->strings["Note: as a security measure, you should give the web server write access to view/tpl/smarty3/ only--not the template files (.tpl) that it contains."] = "";
$a->strings["view/tpl/smarty3 is writable"] = "view/tpl/smarty3 доÑтупен Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи";
+$a->strings["Red uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder"] = "";
+$a->strings["store is writable"] = "";
$a->strings["SSL certificate validation"] = "проверка Ñертификата SSL";
$a->strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "";
$a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = "";
@@ -768,115 +960,11 @@ $a->strings["The database configuration file \".htconfig.php\" could not be writ
$a->strings["Errors encountered creating database tables."] = "";
$a->strings["<h1>What next</h1>"] = "<h1>Что дальше</h1>";
$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "";
+$a->strings["Edit post"] = "Редактировать Ñообщение";
$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s Ñледит %2\$s's %3\$s";
$a->strings["[Embedded content - reload page to view]"] = "";
$a->strings["toggle full screen mode"] = "переключение полноÑкранного режима";
$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "";
-$a->strings["Account settings"] = "ÐаÑтройки аккаунта";
-$a->strings["Channel settings"] = "ÐаÑтройки канала";
-$a->strings["Additional features"] = "Дополнительные функции";
-$a->strings["Feature settings"] = "ÐаÑтройки компонентов";
-$a->strings["Display settings"] = "ÐаÑтройки отображениÑ";
-$a->strings["Connected apps"] = "Подключенные приложениÑ";
-$a->strings["Export channel"] = "ЭкÑпорт канала";
-$a->strings["Automatic Permissions (Advanced)"] = "ÐвтоматичеÑкие Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ (дополнительно)";
-$a->strings["Premium Channel Settings"] = "";
-$a->strings["Missing some important data!"] = "ОтÑутÑтвуют некоторые важные данные!";
-$a->strings["Update"] = "Обновление";
-$a->strings["Passwords do not match. Password unchanged."] = "Пароли не Ñовпадают. Пароль не изменён.";
-$a->strings["Empty passwords are not allowed. Password unchanged."] = "ПуÑтые пароли не допуÑкаютÑÑ. Пароль не изменён.";
-$a->strings["Password changed."] = "Пароль изменен.";
-$a->strings["Password update failed. Please try again."] = "Изменение Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð·Ð°ÐºÐ¾Ð½Ñ‡Ð¸Ð»Ð¾ÑÑŒ неуÑпешно. ПожалуйÑта, попробуйте еще раз.";
-$a->strings["Not valid email."] = "Ðе дейÑтвительный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты.";
-$a->strings["Protected email address. Cannot change to that email."] = "";
-$a->strings["System failure storing new email. Please try again."] = "";
-$a->strings["Settings updated."] = "ÐаÑтройки обновленны.";
-$a->strings["Add application"] = "Добавить приложениÑ";
-$a->strings["Cancel"] = "Отменить";
-$a->strings["Name"] = "ИмÑ";
-$a->strings["Consumer Key"] = "Ключ клиента";
-$a->strings["Consumer Secret"] = "Секрет клиента";
-$a->strings["Redirect"] = "Перенаправление";
-$a->strings["Icon url"] = "URL-Ð°Ð´Ñ€ÐµÑ Ð·Ð½Ð°Ñ‡ÐºÐ°";
-$a->strings["You can't edit this application."] = "Ð’Ñ‹ не можете редактировать Ñто приложение.";
-$a->strings["Connected Apps"] = "Подключенные приложениÑ";
-$a->strings["Client key starts with"] = "";
-$a->strings["No name"] = "Без названиÑ";
-$a->strings["Remove authorization"] = "Удалить разрешение";
-$a->strings["No feature settings configured"] = "Параметры функций не наÑтроены";
-$a->strings["Feature Settings"] = "ÐаÑтройки функции";
-$a->strings["Account Settings"] = "ÐаÑтройки аккаунта";
-$a->strings["Password Settings"] = "ÐаÑтройки паролÑ";
-$a->strings["New Password:"] = "Ðовый пароль:";
-$a->strings["Confirm:"] = "Подтверждение:";
-$a->strings["Leave password fields blank unless changing"] = "ОÑтавьте Ð¿Ð¾Ð»Ñ Ð¿ÑƒÑтыми, еÑли не менÑетÑÑ";
-$a->strings["Email Address:"] = "ÐÐ´Ñ€ÐµÑ Ñлектронной почты:";
-$a->strings["Remove Account"] = "Удалить аккаунт";
-$a->strings["Warning: This action is permanent and cannot be reversed."] = "";
-$a->strings["Off"] = "Выкл.";
-$a->strings["On"] = "Вкл.";
-$a->strings["Additional Features"] = "Дополнительные функции";
-$a->strings["Connector Settings"] = "ÐаÑтройки ÑоединителÑ";
-$a->strings["No special theme for mobile devices"] = "Ðет Ñпециальной темы Ð´Ð»Ñ Ð¼Ð¾Ð±Ð¸Ð»ÑŒÐ½Ñ‹Ñ… уÑтройÑтв";
-$a->strings["Display Settings"] = "ÐаÑтройки отображениÑ";
-$a->strings["Display Theme:"] = "Тема отображениÑ:";
-$a->strings["Mobile Theme:"] = "ÐœÐ¾Ð±Ð¸Ð»ÑŒÐ½Ð°Ñ Ñ‚ÐµÐ¼Ð° отображениÑ:";
-$a->strings["Update browser every xx seconds"] = "Обновление браузера каждые ХХ Ñекунд";
-$a->strings["Minimum of 10 seconds, no maximum"] = "Минимум 10 Ñекунд, без макÑимума";
-$a->strings["Maximum number of conversations to load at any time:"] = "";
-$a->strings["Maximum of 100 items"] = "МакÑимум 100 Ñлементов";
-$a->strings["Don't show emoticons"] = "Ðе показывать emoticons";
-$a->strings["Nobody except yourself"] = "Ðикто, кроме ваÑ";
-$a->strings["Only those you specifically allow"] = "Только комы вы разрешили";
-$a->strings["Anybody in your address book"] = "Любой в вашей адреÑной книге";
-$a->strings["Anybody on this website"] = "Любой на Ñтом веб-Ñайте";
-$a->strings["Anybody in this network"] = "Любой в Ñтой Ñети";
-$a->strings["Anybody on the internet"] = "Любой в интернете";
-$a->strings["Publish your default profile in the network directory"] = "ÐŸÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Ð¿Ð¾ умолчанию в каталоге Ñети";
-$a->strings["Allow us to suggest you as a potential friend to new members?"] = "";
-$a->strings["or"] = "или";
-$a->strings["Your channel address is"] = "ÐÐ´Ñ€ÐµÑ Ð²Ð°ÑˆÐµÐ³Ð¾ канала:";
-$a->strings["Automatically expire posts after this many days:"] = "";
-$a->strings["If empty, posts will not expire. Expired posts will be deleted"] = "";
-$a->strings["Advanced expiration settings"] = "";
-$a->strings["Advanced Expiration"] = "Дополнительное иÑтечение Ñрока давноÑти";
-$a->strings["Expire posts:"] = "";
-$a->strings["Expire starred posts:"] = "";
-$a->strings["Expire photos:"] = "";
-$a->strings["Only expire posts by others:"] = "";
-$a->strings["Channel Settings"] = "ÐаÑтройки канала";
-$a->strings["Basic Settings"] = "ОÑновные наÑтройки";
-$a->strings["Your Timezone:"] = "Ваш чаÑовой поÑÑ:";
-$a->strings["Default Post Location:"] = "Откуда по умолчанию:";
-$a->strings["Use Browser Location:"] = "ИÑпользуйте указание браузерa:";
-$a->strings["Security and Privacy Settings"] = "Параметры безопаÑноÑти и конфиденциальноÑти";
-$a->strings["Quick Privacy Settings:"] = "БыÑтрые параметры безопаÑноÑти и конфиденциальноÑти:";
-$a->strings["Very Public - extremely permissive"] = "Очень публично - чрезвычайно разрешающе";
-$a->strings["Typical - default public, privacy when desired"] = "Типично - по умолчанию публично, конфиденциальноÑÑ‚ÑŒ, только еÑли наÑтроена";
-$a->strings["Private - default private, rarely open or public"] = "ЧаÑтно - по умолчанию чаÑтно, редко открыто или публично";
-$a->strings["Blocked - default blocked to/from everybody"] = "Заблокированно - по умолчанию заблокировано длÑ/от вÑех";
-$a->strings["Maximum Friend Requests/Day:"] = "";
-$a->strings["May reduce spam activity"] = "";
-$a->strings["Default Post Permissions"] = "";
-$a->strings["(click to open/close)"] = "(нажмите, чтобы открыть / закрыть)";
-$a->strings["Maximum private messages per day from unknown people:"] = "";
-$a->strings["Useful to reduce spamming"] = "";
-$a->strings["Notification Settings"] = "ÐаÑтройки уведомлений";
-$a->strings["By default post a status message when:"] = "";
-$a->strings["accepting a friend request"] = "";
-$a->strings["joining a forum/community"] = "";
-$a->strings["making an <em>interesting</em> profile change"] = "";
-$a->strings["Send a notification email when:"] = "Отправить уведомление по Ñлектронной почте, еÑли:";
-$a->strings["You receive an introduction"] = "Вы получили введение";
-$a->strings["Your introductions are confirmed"] = "";
-$a->strings["Someone writes on your profile wall"] = "";
-$a->strings["Someone writes a followup comment"] = "";
-$a->strings["You receive a private message"] = "";
-$a->strings["You receive a friend suggestion"] = "";
-$a->strings["You are tagged in a post"] = "";
-$a->strings["You are poked/prodded/etc. in a post"] = "";
-$a->strings["Advanced Account/Page Type Settings"] = "";
-$a->strings["Change the behaviour of this account for special situations"] = "";
$a->strings["Public access denied."] = "ОбщеÑтвенный доÑтуп запрещен.";
$a->strings["No connections."] = "Ðикаких ÑвÑзей.";
$a->strings["Visit %s's profile [%s]"] = "ПоÑетить %s's ​​профиль [%s]";
@@ -902,45 +990,181 @@ $a->strings["Existing Page Delegates"] = "";
$a->strings["Potential Delegates"] = "";
$a->strings["Add"] = "Добавить";
$a->strings["No entries."] = "Ðет запиÑей.";
-$a->strings["Age: "] = "ВозраÑÑ‚:";
-$a->strings["Gender: "] = "Пол:";
-$a->strings["Finding:"] = "ПоиÑк:";
-$a->strings["next page"] = "ÑÐ»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ñтраница";
-$a->strings["previous page"] = "Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ñтраница";
-$a->strings["No entries (some entries may be hidden)."] = "";
-$a->strings["People Search"] = "ПоиÑк людей";
-$a->strings["No matches"] = "Ðет ÑоответÑтвий";
-$a->strings["Menu not found."] = "";
-$a->strings["Menu element updated."] = "";
+$a->strings["Failed to create source. No channel selected."] = "";
+$a->strings["Source created."] = "";
+$a->strings["Source updated."] = "";
+$a->strings["Manage remote sources of content for your channel."] = "";
+$a->strings["New Source"] = "";
+$a->strings["Import all or selected content from the following channel into this channel and distribute it according to your channel settings."] = "";
+$a->strings["Only import content with these words (one per line)"] = "";
+$a->strings["Leave blank to import all public content"] = "";
+$a->strings["Channel Name"] = "Ð˜Ð¼Ñ ÐºÐ°Ð½Ð°Ð»Ð°";
+$a->strings["Source not found."] = "";
+$a->strings["Edit Source"] = "";
+$a->strings["Delete Source"] = "";
+$a->strings["Source removed"] = "";
+$a->strings["Unable to remove source."] = "";
+$a->strings["Theme settings updated."] = "ÐаÑтройки темы обновленны.";
+$a->strings["Site"] = "Сайт";
+$a->strings["Users"] = "Пользователи";
+$a->strings["Plugins"] = "Плагины";
+$a->strings["Themes"] = "Темы";
+$a->strings["Server"] = "Сервер";
+$a->strings["DB updates"] = "ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ð°Ð·Ñ‹ данных";
+$a->strings["Logs"] = "Журналы";
+$a->strings["Plugin Features"] = "Функции плагинов";
+$a->strings["User registrations waiting for confirmation"] = "РегиÑтрации пользователей, которые ждут подтверждениÑ";
+$a->strings["Message queues"] = "Очередь недоÑтавленных Ñообщений";
+$a->strings["Administration"] = "ÐдминиÑтрациÑ";
+$a->strings["Summary"] = "Резюме";
+$a->strings["Registered users"] = "Ð’Ñего пользователeй";
+$a->strings["Pending registrations"] = "Ждут утверждениÑ";
+$a->strings["Version"] = "ВерÑÐ¸Ñ ÑиÑтемы";
+$a->strings["Active plugins"] = "Ðктивные плагины";
+$a->strings["Site settings updated."] = "ÐаÑтройки Ñайта обновлены.";
+$a->strings["No special theme for mobile devices"] = "Ðет Ñпециальной темы Ð´Ð»Ñ Ð¼Ð¾Ð±Ð¸Ð»ÑŒÐ½Ñ‹Ñ… уÑтройÑтв";
+$a->strings["No special theme for accessibility"] = "";
+$a->strings["Closed"] = "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð°";
+$a->strings["Requires approval"] = "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ подтверждениÑ";
+$a->strings["Open"] = "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð°";
+$a->strings["Private"] = "Личный доÑтуп";
+$a->strings["Paid Access"] = "Платный доÑтуп";
+$a->strings["Free Access"] = "Свободный доÑтуп";
+$a->strings["Tiered Access"] = "";
+$a->strings["Registration"] = "РегиÑтрациÑ";
+$a->strings["File upload"] = "Загрузка файла";
+$a->strings["Policies"] = "Правила";
+$a->strings["Advanced"] = "Дополнительно";
+$a->strings["Site name"] = "Ðазвание Ñайта";
+$a->strings["Banner/Logo"] = "Баннер / логотип";
+$a->strings["System language"] = "Язык ÑиÑтемы";
+$a->strings["System theme"] = "Тема ÑиÑтемы";
+$a->strings["Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"] = "";
+$a->strings["Mobile system theme"] = "ÐœÐ¾Ð±Ð¸Ð»ÑŒÐ½Ð°Ñ Ñ‚ÐµÐ¼Ð° ÑиÑтемы";
+$a->strings["Theme for mobile devices"] = "Тема Ð´Ð»Ñ Ð¼Ð¾Ð±Ð¸Ð»ÑŒÐ½Ñ‹Ñ… уÑтройÑтв";
+$a->strings["Accessibility system theme"] = "";
+$a->strings["Accessibility theme"] = "";
+$a->strings["Channel to use for this website's static pages"] = "";
+$a->strings["Site Channel"] = "Канал Ñайта";
+$a->strings["Maximum image size"] = "МакÑимальный размер";
+$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "";
+$a->strings["Register policy"] = "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ€ÐµÐ³Ð¸Ñтрации";
+$a->strings["Access policy"] = "Правила доÑтупа";
+$a->strings["Register text"] = "ТекÑÑ‚ региÑтрации";
+$a->strings["Will be displayed prominently on the registration page."] = "";
+$a->strings["Accounts abandoned after x days"] = "";
+$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "";
+$a->strings["Allowed friend domains"] = "";
+$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "";
+$a->strings["Allowed email domains"] = "";
+$a->strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = "";
+$a->strings["Block public"] = "Блокировать публичный доÑтуп";
+$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "";
+$a->strings["Force publish"] = "ЗаÑтавить публиковать";
+$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "";
+$a->strings["No login on Homepage"] = "";
+$a->strings["Check to hide the login form from your sites homepage when visitors arrive who are not logged in (e.g. when you put the content of the homepage in via the site channel)."] = "";
+$a->strings["Proxy user"] = "Proxy пользователь";
+$a->strings["Proxy URL"] = "Proxy URL";
+$a->strings["Network timeout"] = "Ð’Ñ€ÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ñети";
+$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "";
+$a->strings["Delivery interval"] = "Интервал доÑтавки";
+$a->strings["Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers."] = "";
+$a->strings["Poll interval"] = "Интервал опроÑа";
+$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "";
+$a->strings["Maximum Load Average"] = "";
+$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "";
+$a->strings["No server found"] = "Сервер не найден";
+$a->strings["ID"] = "ID";
+$a->strings["for channel"] = "";
+$a->strings["on server"] = "";
+$a->strings["Status"] = "СтатуÑ";
+$a->strings["Update has been marked successful"] = "";
+$a->strings["Executing %s failed. Check system logs."] = "";
+$a->strings["Update %s was successfully applied."] = "";
+$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "";
+$a->strings["Update function %s could not be found."] = "";
+$a->strings["No failed updates."] = "Ошибок обновлений нет.";
+$a->strings["Failed Updates"] = "ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°Ð¼Ð¸";
+$a->strings["Mark success (if update was manually applied)"] = "";
+$a->strings["Attempt to execute this update step automatically"] = "";
+$a->strings["%s user blocked/unblocked"] = array(
+ 0 => "",
+ 1 => "",
+ 2 => "",
+);
+$a->strings["%s user deleted"] = array(
+ 0 => "%s канал удален",
+ 1 => "%s канала удалены",
+ 2 => "%s каналов удалено",
+);
+$a->strings["Account not found"] = "Ðккаунт не найден";
+$a->strings["User '%s' deleted"] = "Пользователь '%s' удален";
+$a->strings["User '%s' unblocked"] = "Пользователь '%s' разрешен";
+$a->strings["User '%s' blocked"] = "Пользователь '%s' заблокирован";
+$a->strings["select all"] = "выбрать вÑе";
+$a->strings["User registrations waiting for confirm"] = "РегиÑтрации пользователей ждут подтверждениÑ";
+$a->strings["Request date"] = "Дата запроÑа";
+$a->strings["Name"] = "ИмÑ";
+$a->strings["No registrations."] = "Ðовых региÑтраций пока нет.";
+$a->strings["Approve"] = "Утвердить";
+$a->strings["Deny"] = "Запретить";
+$a->strings["Register date"] = "Дата региÑтрации";
+$a->strings["Last login"] = "ПоÑледний вход";
+$a->strings["Expires"] = "";
+$a->strings["Service Class"] = "КлаÑÑ Ñлужбы";
+$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "";
+$a->strings["The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "";
+$a->strings["Plugin %s disabled."] = "Плагин %s отключен.";
+$a->strings["Plugin %s enabled."] = "Плагин %s включен.";
+$a->strings["Disable"] = "Запретить";
+$a->strings["Enable"] = "Разрешить";
+$a->strings["Toggle"] = "Переключить";
+$a->strings["Author: "] = "Ðвтор: ";
+$a->strings["Maintainer: "] = "ОбÑлуживающий: ";
+$a->strings["No themes found."] = "Темы не найдены.";
+$a->strings["Screenshot"] = "Скриншот";
+$a->strings["[Experimental]"] = "[ÑкÑпериментальный]";
+$a->strings["[Unsupported]"] = "[неподдерживаемый]";
+$a->strings["Log settings updated."] = "ÐаÑтройки журнала обновленны.";
+$a->strings["Clear"] = "ОчиÑтить";
+$a->strings["Debugging"] = "Включить/Выключить";
+$a->strings["Log file"] = "Файл журнала";
+$a->strings["Must be writable by web server. Relative to your Red top-level directory."] = "Должна быть доÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи веб-Ñервером. ОтноÑительно верхнего ÑƒÑ€Ð¾Ð²Ð½Ñ Ð²ÐµÐ±-Ñайта.";
+$a->strings["Log level"] = "Уровень журнала";
+$a->strings["Menu not found."] = "Меню не найдено.";
+$a->strings["Menu element updated."] = "Меню обновлено.";
$a->strings["Unable to update menu element."] = "";
-$a->strings["Menu element added."] = "";
+$a->strings["Menu element added."] = "Элемент меню добавлен.";
$a->strings["Unable to add menu element."] = "";
$a->strings["Not found."] = "Ðе найдено.";
$a->strings["Manage Menu Elements"] = "";
-$a->strings["Edit menu"] = "";
-$a->strings["Edit element"] = "";
-$a->strings["Drop element"] = "";
-$a->strings["New element"] = "";
+$a->strings["Edit menu"] = "Редактировать меню";
+$a->strings["Edit element"] = "Редактировать Ñлемент";
+$a->strings["Drop element"] = "Удалить Ñлемент";
+$a->strings["New element"] = "Ðовый Ñлемент";
$a->strings["Edit this menu container"] = "";
-$a->strings["Add menu element"] = "";
+$a->strings["Add menu element"] = "Добавить Ñлемент меню";
$a->strings["Delete this menu item"] = "";
$a->strings["Edit this menu item"] = "";
-$a->strings["New Menu Element"] = "";
-$a->strings["Link text"] = "";
+$a->strings["New Menu Element"] = "Ðовый Ñлемент меню";
+$a->strings["Menu Item Permissions"] = "";
+$a->strings["(click to open/close)"] = "(нажмите, чтобы открыть / закрыть)";
+$a->strings["Link text"] = "ТекÑÑ‚ ÑÑылки";
$a->strings["URL of link"] = "";
$a->strings["Use Red magic-auth if available"] = "";
$a->strings["Open link in new window"] = "";
$a->strings["Order in list"] = "";
$a->strings["Higher numbers will sink to bottom of listing"] = "";
$a->strings["Create"] = "Создать";
-$a->strings["Menu item not found."] = "";
+$a->strings["Menu item not found."] = "Элемент меню не найден.";
$a->strings["Menu item deleted."] = "";
$a->strings["Menu item could not be deleted."] = "";
-$a->strings["Edit Menu Element"] = "";
+$a->strings["Edit Menu Element"] = "Редактировать Ñлемент меню";
$a->strings["Modify"] = "";
$a->strings["Collection created."] = "ÐšÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ñ Ñоздана.";
$a->strings["Could not create collection."] = "Ðе удалоÑÑŒ Ñоздать коллекцию.";
-$a->strings["Collection name changed."] = "Ð˜Ð¼Ñ ÐºÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ð¸ изменено.";
+$a->strings["Collection updated."] = "";
$a->strings["Create a collection of channels."] = "Создать коллекцию контактов";
$a->strings["Collection Name: "] = "Ðазвание коллекции:";
$a->strings["Members are visible to other channels"] = "";
@@ -983,169 +1207,38 @@ $a->strings["Add a Tag"] = "Добавить тег";
$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Ðапример: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping";
$a->strings["View Album"] = "ПоÑмотреть фотоальбом";
$a->strings["Recent Photos"] = "ПоÑледние фотографии";
-$a->strings["sent you a private message"] = "отправил вам личное Ñообщение";
-$a->strings["added your channel"] = "добавил ваш канал";
-$a->strings["g A l F d"] = "g A l F d";
-$a->strings["[today]"] = "[ÑегоднÑ]";
-$a->strings["posted an event"] = "";
$a->strings["- select -"] = "- выбрать -";
-$a->strings["Menu updated."] = "";
-$a->strings["Unable to update menu."] = "";
-$a->strings["Menu created."] = "";
-$a->strings["Unable to create menu."] = "";
-$a->strings["Manage Menus"] = "";
-$a->strings["Drop"] = "";
-$a->strings["New"] = "Ðовые";
-$a->strings["Create a new menu"] = "";
-$a->strings["Delete this menu"] = "";
-$a->strings["Edit menu contents"] = "";
-$a->strings["Edit this menu"] = "";
-$a->strings["New Menu"] = "";
-$a->strings["Menu name"] = "";
+$a->strings["Menu updated."] = "Меню обновлено.";
+$a->strings["Unable to update menu."] = "Ðевозможно обновление меню.";
+$a->strings["Menu created."] = "Меню Ñоздано.";
+$a->strings["Unable to create menu."] = "Ðевозможно Ñоздать меню.";
+$a->strings["Manage Menus"] = "Управление меню";
+$a->strings["Drop"] = "Удалить";
+$a->strings["Create a new menu"] = "Создать новое меню";
+$a->strings["Delete this menu"] = "Удалить Ñто меню";
+$a->strings["Edit menu contents"] = "Редактировать Ñодержание меню";
+$a->strings["Edit this menu"] = "Редактировать Ñто меню";
+$a->strings["New Menu"] = "Ðовое меню";
+$a->strings["Menu name"] = "Ðазвание меню";
$a->strings["Must be unique, only seen by you"] = "";
-$a->strings["Menu title"] = "";
+$a->strings["Menu title"] = "Ðазвание меню";
$a->strings["Menu title as seen by others"] = "";
-$a->strings["Menu deleted."] = "";
+$a->strings["Menu deleted."] = "Меню удалено.";
$a->strings["Menu could not be deleted."] = "";
-$a->strings["Edit Menu"] = "";
+$a->strings["Edit Menu"] = "Редактировать меню";
$a->strings["Add or remove entries to this menu"] = "";
$a->strings["Welcome to %s"] = "Добро пожаловать в %s";
-$a->strings["Check Mail"] = "Проверить Ñнова";
-$a->strings["Unable to lookup recipient."] = "";
-$a->strings["Unable to communicate with requested channel."] = "";
-$a->strings["Cannot verify requested channel."] = "";
-$a->strings["Selected channel has private message restrictions. Send failed."] = "";
-$a->strings["Messages"] = "ПерепиÑка";
-$a->strings["Message deleted."] = "Сообщение удалено.";
-$a->strings["Conversation removed."] = "Разговор удален.";
-$a->strings["Send Private Message"] = "Отправить личное Ñообщение";
-$a->strings["To:"] = "Кому:";
-$a->strings["Subject:"] = "Тема:";
-$a->strings["No messages."] = "Ðет Ñообщений.";
-$a->strings["Delete message"] = "Удалить Ñообщение";
-$a->strings["D, d M Y - g:i A"] = "D, d M Y - g:i A";
-$a->strings["Message not found."] = "Сообщение не найдено.";
-$a->strings["Delete conversation"] = "Удалить разговор";
-$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "";
-$a->strings["Send Reply"] = "Отправить Ñнова";
-$a->strings["No profile"] = "Профиль отÑутÑтвует";
-$a->strings["Help:"] = "Помощь:";
-$a->strings["Not Found"] = "Ðе найдено";
-$a->strings["Page not found."] = "Страница не найдена.";
-$a->strings["Remote Authentication"] = "Ð£Ð´Ð°Ð»ÐµÐ½Ð½Ð°Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ";
-$a->strings["Enter your channel address (e.g. channel@example.com)"] = "Введите Ð°Ð´Ñ€ÐµÑ Ð²Ð°ÑˆÐµÐ³Ð¾ канала (например: channel@example.com)";
-$a->strings["Authenticate"] = "Проверка подлинноÑти";
-$a->strings["Remove term"] = "Удалить термин";
-$a->strings["Commented Order"] = "По комментириÑм";
-$a->strings["Sort by Comment Date"] = "Сортировка по дате ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸ÐµÐ²";
-$a->strings["Posted Order"] = "По добавлениÑм";
-$a->strings["Sort by Post Date"] = "Сортировка по дате ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑообщениÑ";
-$a->strings["Personal"] = "Личные";
-$a->strings["Posts that mention or involve you"] = "СообщениÑ, в которых упоминули или вовлекли ваÑ";
-$a->strings["Activity Stream - by date"] = "Лента активноÑти - по дате";
-$a->strings["Starred"] = "Помеченные";
-$a->strings["Favourite Posts"] = "Фаворит-ÑообщениÑ";
-$a->strings["Spam"] = "Спам";
-$a->strings["Posts flagged as SPAM"] = "Как СПÐÐœ помеченные ÑообщениÑ";
-$a->strings["Refresh"] = "Обновить";
-$a->strings["Me"] = "Я";
-$a->strings["Best Friends"] = "Лучшие друзьÑ";
-$a->strings["Co-workers"] = "Сотрудники";
-$a->strings["Former Friends"] = "ПриÑтели";
-$a->strings["Acquaintances"] = "Знакомые";
-$a->strings["Everybody"] = "Ð’Ñе";
-$a->strings["Search Results For:"] = "Результаты поиÑка длÑ:";
-$a->strings["No such group"] = "Ðет такой группы";
-$a->strings["Group is empty"] = "Группа пуÑта";
-$a->strings["Contact: "] = "Канал: ";
-$a->strings["Invalid contact."] = "ÐедейÑтвительный канал.";
-$a->strings["Approve"] = "Утвердить";
-$a->strings["Block"] = "Заблокировать";
-$a->strings["Ignore"] = "Игнорировать";
-$a->strings["Connection updated."] = "Канал обновлен.";
-$a->strings["Connection update failed."] = "Ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð°.";
-$a->strings["Introductions and Connection Requests"] = "";
-$a->strings["No pending introductions."] = "Введений в ожидании нет.";
-$a->strings["System error. Please try again later."] = "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. ПожалуйÑта, повторите попытку позже.";
-$a->strings["Hide this contact from others"] = "Скрыть Ñтот канал от других";
-$a->strings["Post a new friend activity"] = "";
-$a->strings["if applicable"] = "еÑли Ñто применимо";
-$a->strings["Discard"] = "Отменить";
-$a->strings["Could not access contact record."] = "";
-$a->strings["Could not locate selected profile."] = "";
-$a->strings["Failed to update connection record."] = "";
-$a->strings["Could not access address book record."] = "";
-$a->strings["Refresh failed - channel is currently unavailable."] = "";
-$a->strings["Channel has been unblocked"] = "Канал разблокирован";
-$a->strings["Channel has been blocked"] = "Канал заблокирован";
-$a->strings["Unable to set address book parameters."] = "";
-$a->strings["Channel has been unignored"] = "Канал не проигнорирован";
-$a->strings["Channel has been ignored"] = "Канал проигнорирован";
-$a->strings["Channel has been unarchived"] = "Канал разархивирован";
-$a->strings["Channel has been archived"] = "Канал заархивирован";
-$a->strings["Channel has been unhidden"] = "Канал открыт";
-$a->strings["Channel has been hidden"] = "Канал Ñкрыт";
-$a->strings["Channel has been approved"] = "Канал одобрен";
-$a->strings["Channel has been unapproved"] = "Канал не одобрен";
-$a->strings["Contact has been removed."] = "Канал удален.";
-$a->strings["View %s's profile"] = "ПроÑмотр %s's профилÑ";
-$a->strings["Refresh Permissions"] = "Обновить разрешениÑ";
-$a->strings["Fetch updated permissions"] = "";
-$a->strings["Unblock"] = "Разрешить";
-$a->strings["Block or Unblock this connection"] = "Запретить или разрешить Ñтот канал";
-$a->strings["Unignore"] = "Ðе игнорировать";
-$a->strings["Ignore or Unignore this connection"] = "Игнорировать или не игнорировать Ñтот канал";
-$a->strings["Unarchive"] = "Разархивировать";
-$a->strings["Archive"] = "Заархивировать";
-$a->strings["Archive or Unarchive this connection"] = " Заархивировать или разархивировать Ñтот канал";
-$a->strings["Unhide"] = "Показать";
-$a->strings["Hide"] = "Скрыть";
-$a->strings["Hide or Unhide this connection"] = "Скрыть или показывать Ñтот канал";
-$a->strings["Delete this connection"] = "Удалить Ñтот контакт";
-$a->strings["Unknown"] = "ÐеизвеÑтный";
-$a->strings["Approve this connection"] = "Утвердить Ñтот контакт";
-$a->strings["Accept connection to allow communication"] = "";
-$a->strings["Automatic Permissions Settings"] = "ÐаÑтройки автоматичеÑких разрешений";
-$a->strings["Connections: settings for %s"] = "";
-$a->strings["When receiving a channel introduction, any permissions provided here will be applied to the new connection automatically and the introduction approved. Leave this page if you do not wish to use this feature."] = "";
-$a->strings["Slide to adjust your degree of friendship"] = "";
-$a->strings["Connection has no individual permissions!"] = "";
-$a->strings["This may be appropriate based on your <a href=\"settings\">privacy settings</a>, though you may wish to review the \"Advanced Permissions\"."] = "";
-$a->strings["Profile Visibility"] = "ВидимоÑÑ‚ÑŒ профилÑ";
-$a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "";
-$a->strings["Contact Information / Notes"] = "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ / ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð¾ канале";
-$a->strings["Edit contact notes"] = "Редактировать Ð¿Ñ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð°";
-$a->strings["Their Settings"] = "Их наÑтройки";
-$a->strings["My Settings"] = "Мои наÑтройки";
-$a->strings["Forum Members"] = "УчаÑтники форума";
-$a->strings["Soapbox"] = "Soapbox";
-$a->strings["Full Sharing"] = "Полный обмен";
-$a->strings["Cautious Sharing"] = "";
-$a->strings["Follow Only"] = "Только Ñледовать";
-$a->strings["Individual Permissions"] = "Индивидуальные разрешениÑ";
-$a->strings["Individual permissions are only enabled for <a href=\"settings\">privacy settings</a> which are set to \"Only those you specifically allow\". Otherwise they are controlled by your privacy settings."] = "";
-$a->strings["Advanced Permissions"] = "Дополнительные разрешениÑ";
-$a->strings["Quick Links"] = "БыÑтрые ÑÑылки";
-$a->strings["Visit %s's profile - %s"] = "ПоÑетить %s's ​​профиль - %s";
-$a->strings["Block/Unblock contact"] = "Запретить/разрешить контакт";
-$a->strings["Ignore contact"] = "Игнорировать контакт";
-$a->strings["Repair URL settings"] = "Ремонт наÑтройки URL";
-$a->strings["View conversations"] = "ПроÑмотр разговоров";
-$a->strings["Delete contact"] = "Удалить контакт";
-$a->strings["Last update:"] = "ПоÑледнее обновление:";
-$a->strings["Update public posts"] = "Обновить публичные ÑообщениÑ";
-$a->strings["Update now"] = "Обновить ÑейчаÑ";
-$a->strings["Currently blocked"] = "Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½";
-$a->strings["Currently ignored"] = "Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€ÑƒÑŽÑ‚ÑÑ";
-$a->strings["Currently archived"] = "Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹";
-$a->strings["Currently pending"] = "Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð² ожидании";
-$a->strings["Replies/likes to your public posts <strong>may</strong> still be visible"] = "";
+$a->strings["Age: "] = "ВозраÑÑ‚:";
+$a->strings["Gender: "] = "Пол:";
+$a->strings["Finding:"] = "ПоиÑк:";
+$a->strings["next page"] = "ÑÐ»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ñтраница";
+$a->strings["previous page"] = "Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ñтраница";
+$a->strings["No entries (some entries may be hidden)."] = "";
$a->strings["Blocked"] = "Заблокированные";
$a->strings["Ignored"] = "Игнорируемые";
$a->strings["Hidden"] = "Скрытые";
$a->strings["Archived"] = "Зархивированные";
$a->strings["All"] = "Ð’Ñе";
-$a->strings["Suggestions"] = "Рекомендации";
$a->strings["Suggest new connections"] = "Предлагать новые контакты";
$a->strings["Show pending (new) connections"] = "ПроÑмотр (новых) ждущих контактов";
$a->strings["All Connections"] = "Ð’Ñе контакты";
@@ -1160,9 +1253,27 @@ $a->strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]";
$a->strings["Edit contact"] = "Редактировать контакт";
$a->strings["Search your connections"] = "ПоиÑк ваших ÑвÑзей";
$a->strings["Finding: "] = "ПоиÑк:";
+$a->strings["Layout Help"] = "";
+$a->strings["Help with this feature"] = "";
+$a->strings["Layout Name"] = "";
+$a->strings["Help:"] = "Помощь:";
+$a->strings["Not Found"] = "Ðе найдено";
+$a->strings["Remote Authentication"] = "Ð£Ð´Ð°Ð»ÐµÐ½Ð½Ð°Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ";
+$a->strings["Enter your channel address (e.g. channel@example.com)"] = "Введите Ð°Ð´Ñ€ÐµÑ Ð²Ð°ÑˆÐµÐ³Ð¾ канала (например: channel@example.com)";
+$a->strings["Authenticate"] = "Проверка подлинноÑти";
+$a->strings["No such group"] = "Ðет такой группы";
+$a->strings["Search Results For:"] = "Результаты поиÑка длÑ:";
+$a->strings["Collection is empty"] = "ÐšÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ñ Ð¿ÑƒÑта";
+$a->strings["Collection: "] = "Коллекции: ";
+$a->strings["Connection: "] = "Контакты: ";
+$a->strings["Invalid connection."] = "";
+$a->strings["Channel added."] = "Контакт добавлен.";
+$a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "";
+$a->strings["Welcome %s. Remote authentication successful."] = "";
$a->strings["This site is not a directory server"] = "Этот Ñайт не ÑвлÑетÑÑ Ñервером каталога";
$a->strings["Remote privacy information not available."] = "";
$a->strings["Visible to:"] = "Кому видно:";
+$a->strings["Hub not found."] = "Hub не найден.";
$a->strings["Profile not found."] = "Профиль не найден.";
$a->strings["Profile deleted."] = "Профиль удален.";
$a->strings["Profile-"] = "Профиль-";
@@ -1222,137 +1333,25 @@ $a->strings["Work/employment"] = "Работа / ЗанÑтоÑÑ‚ÑŒ";
$a->strings["School/education"] = "Школа / образование";
$a->strings["This is your <strong>public</strong> profile.<br />It <strong>may</strong> be visible to anybody using the internet."] = "";
$a->strings["Edit/Manage Profiles"] = "Редактирование / Управление профилей";
-$a->strings["Change profile photo"] = "Изменить фотографию профилÑ";
-$a->strings["Create New Profile"] = "Создать новый профиль";
-$a->strings["Profile Image"] = "Изображение профилÑ";
-$a->strings["visible to everybody"] = "видно вÑем";
-$a->strings["Edit visibility"] = "Редактировать видимоÑÑ‚ÑŒ";
+$a->strings["Add profile things"] = "";
+$a->strings["Include desirable objects in your profile"] = "";
$a->strings["Add a Channel"] = "Добавить контакт";
$a->strings["A channel is your own collection of related web pages. A channel can be used to hold social network profiles, blogs, conversation groups and forums, celebrity pages, and much more. You may create as many channels as your service provider allows."] = "";
-$a->strings["Channel Name"] = "Ð˜Ð¼Ñ ÐºÐ°Ð½Ð°Ð»Ð°";
$a->strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "] = "";
$a->strings["Choose a short nickname"] = "Выберите короткий пÑевдоним";
$a->strings["Your nickname will be used to create an easily remembered channel address (like an email address) which you can share with others."] = "";
$a->strings["Or <a href=\"import\">import an existing channel</a> from another location"] = "";
-$a->strings["Theme settings updated."] = "ÐаÑтройки темы обновленны.";
-$a->strings["Site"] = "Сайт";
-$a->strings["Users"] = "Пользователи";
-$a->strings["Plugins"] = "Плагины";
-$a->strings["Themes"] = "Темы";
-$a->strings["DB updates"] = "ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ð°Ð·Ñ‹ данных";
-$a->strings["Logs"] = "Журналы";
-$a->strings["Plugin Features"] = "Функции плагинов";
-$a->strings["User registrations waiting for confirmation"] = "РегиÑтрации пользователей, которые ждут подтверждениÑ";
-$a->strings["Message queues"] = "Очередь недоÑтавленных Ñообщений";
-$a->strings["Administration"] = "ÐдминиÑтрациÑ";
-$a->strings["Summary"] = "Резюме";
-$a->strings["Registered users"] = "Ð’Ñего пользователeй";
-$a->strings["Pending registrations"] = "Ждут утверждениÑ";
-$a->strings["Version"] = "ВерÑÐ¸Ñ ÑиÑтемы";
-$a->strings["Active plugins"] = "Ðктивные плагины";
-$a->strings["Site settings updated."] = "ÐаÑтройки Ñайта обновлены.";
-$a->strings["No special theme for accessibility"] = "";
-$a->strings["Closed"] = "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð°";
-$a->strings["Requires approval"] = "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ подтверждениÑ";
-$a->strings["Open"] = "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð°";
-$a->strings["Private"] = "Личный доÑтуп";
-$a->strings["Paid Access"] = "Платный доÑтуп";
-$a->strings["Free Access"] = "Свободный доÑтуп";
-$a->strings["Registration"] = "РегиÑтрациÑ";
-$a->strings["File upload"] = "Загрузка файла";
-$a->strings["Policies"] = "Правила";
-$a->strings["Advanced"] = "Дополнительно";
-$a->strings["Site name"] = "Ðазвание Ñайта";
-$a->strings["Banner/Logo"] = "Баннер / логотип";
-$a->strings["System language"] = "Язык ÑиÑтемы";
-$a->strings["System theme"] = "Тема ÑиÑтемы";
-$a->strings["Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"] = "";
-$a->strings["Mobile system theme"] = "ÐœÐ¾Ð±Ð¸Ð»ÑŒÐ½Ð°Ñ Ñ‚ÐµÐ¼Ð° ÑиÑтемы";
-$a->strings["Theme for mobile devices"] = "Тема Ð´Ð»Ñ Ð¼Ð¾Ð±Ð¸Ð»ÑŒÐ½Ñ‹Ñ… уÑтройÑтв";
-$a->strings["Accessibility system theme"] = "";
-$a->strings["Accessibility theme"] = "";
-$a->strings["Channel to use for this website's static pages"] = "";
-$a->strings["Site Channel"] = "Канал Ñайта";
-$a->strings["Maximum image size"] = "МакÑимальный размер";
-$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "";
-$a->strings["Register policy"] = "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ€ÐµÐ³Ð¸Ñтрации";
-$a->strings["Access policy"] = "Правила доÑтупа";
-$a->strings["Register text"] = "ТекÑÑ‚ региÑтрации";
-$a->strings["Will be displayed prominently on the registration page."] = "";
-$a->strings["Accounts abandoned after x days"] = "";
-$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "";
-$a->strings["Allowed friend domains"] = "";
-$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "";
-$a->strings["Allowed email domains"] = "";
-$a->strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = "";
-$a->strings["Block public"] = "Блокировать публичный доÑтуп";
-$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "";
-$a->strings["Force publish"] = "ЗаÑтавить публиковать";
-$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "";
-$a->strings["Proxy user"] = "Proxy пользователь";
-$a->strings["Proxy URL"] = "Proxy URL";
-$a->strings["Network timeout"] = "Ð’Ñ€ÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ñети";
-$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "";
-$a->strings["Delivery interval"] = "Интервал доÑтавки";
-$a->strings["Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers."] = "";
-$a->strings["Poll interval"] = "Интервал опроÑа";
-$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "";
-$a->strings["Maximum Load Average"] = "";
-$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "";
-$a->strings["Update has been marked successful"] = "";
-$a->strings["Executing %s failed. Check system logs."] = "";
-$a->strings["Update %s was successfully applied."] = "";
-$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "";
-$a->strings["Update function %s could not be found."] = "";
-$a->strings["No failed updates."] = "Ошибок обновлений нет.";
-$a->strings["Failed Updates"] = "ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°Ð¼Ð¸";
-$a->strings["Mark success (if update was manually applied)"] = "";
-$a->strings["Attempt to execute this update step automatically"] = "";
-$a->strings["%s user blocked/unblocked"] = array(
- 0 => "",
- 1 => "",
- 2 => "",
-);
-$a->strings["%s user deleted"] = array(
- 0 => "%s канал удален",
- 1 => "%s канала удалены",
- 2 => "%s каналов удалено",
-);
-$a->strings["Account not found"] = "Ðккаунт не найден";
-$a->strings["User '%s' deleted"] = "Пользователь '%s' удален";
-$a->strings["User '%s' unblocked"] = "Пользователь '%s' разрешен";
-$a->strings["User '%s' blocked"] = "Пользователь '%s' заблокирован";
-$a->strings["Normal Account"] = "Ðормальный аккаунт";
-$a->strings["Soapbox Account"] = "Soapbox аккаунт";
-$a->strings["Community/Celebrity Account"] = "Community/Celebrity аккаунт";
-$a->strings["Automatic Friend Account"] = "Ðккаунт \"автоматичеÑки друзьÑ\"";
-$a->strings["select all"] = "выбрать вÑе";
-$a->strings["User registrations waiting for confirm"] = "РегиÑтрации пользователей ждут подтверждениÑ";
-$a->strings["Request date"] = "Дата запроÑа";
-$a->strings["No registrations."] = "Ðовых региÑтраций пока нет.";
-$a->strings["Deny"] = "Запретить";
-$a->strings["Register date"] = "Дата региÑтрации";
-$a->strings["Last login"] = "ПоÑледний вход";
-$a->strings["Service Class"] = "КлаÑÑ Ñлужбы";
-$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "";
-$a->strings["The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "";
-$a->strings["Plugin %s disabled."] = "Плагин %s отключен.";
-$a->strings["Plugin %s enabled."] = "Плагин %s включен.";
-$a->strings["Disable"] = "Запретить";
-$a->strings["Enable"] = "Разрешить";
-$a->strings["Toggle"] = "Переключить";
-$a->strings["Author: "] = "Ðвтор: ";
-$a->strings["Maintainer: "] = "ОбÑлуживающий: ";
-$a->strings["No themes found."] = "Темы не найдены.";
-$a->strings["Screenshot"] = "Скриншот";
-$a->strings["[Experimental]"] = "[ÑкÑпериментальный]";
-$a->strings["[Unsupported]"] = "[неподдерживаемый]";
-$a->strings["Log settings updated."] = "ÐаÑтройки журнала обновленны.";
-$a->strings["Clear"] = "ОчиÑтить";
-$a->strings["Debugging"] = "Включить/Выключить";
-$a->strings["Log file"] = "Файл журнала";
-$a->strings["Must be writable by web server. Relative to your Red top-level directory."] = "Должна быть доÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи веб-Ñервером. ОтноÑительно верхнего ÑƒÑ€Ð¾Ð²Ð½Ñ Ð²ÐµÐ±-Ñайта.";
-$a->strings["Log level"] = "Уровень журнала";
+$a->strings["Permission Denied."] = "ДоÑтуп запрещен.";
+$a->strings["File not found."] = "Файл не найден.";
+$a->strings["Edit file permissions"] = "Редактировать Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð°";
+$a->strings["Include all files and sub folders"] = "";
+$a->strings["Return to file list"] = "";
+$a->strings["Copy/paste this code to attach file to a post"] = "";
+$a->strings["Copy/paste this URL to link file from a web page"] = "";
+$a->strings["Download"] = "";
+$a->strings["Used: "] = "";
+$a->strings["[directory]"] = "";
+$a->strings["Limit: "] = "Предел: ";
$a->strings["No valid account found."] = "ДейÑтвительный аккаунт не найден.";
$a->strings["Password reset request issued. Check your email."] = "";
$a->strings["Site Member (%s)"] = "УчаÑтник Ñайта (%s)";
@@ -1398,30 +1397,123 @@ $a->strings["Average Rating"] = "";
$a->strings["Profile Match"] = "";
$a->strings["No keywords to match. Please add keywords to your default profile."] = "";
$a->strings["is interested in:"] = "заинтереÑован в:";
-$a->strings["Contact settings applied."] = "";
-$a->strings["Contact update failed."] = "Ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ð°.";
-$a->strings["Contact not found."] = "Контакт не найден.";
-$a->strings["Repair Contact Settings"] = "Починить наÑтройки контакта";
-$a->strings["<strong>WARNING: This is highly advanced</strong> and if you enter incorrect information your communications with this contact may stop working."] = "";
-$a->strings["Please use your browser 'Back' button <strong>now</strong> if you are uncertain what to do on this page."] = "";
-$a->strings["Return to contact editor"] = "ВернутьÑÑ Ðº редактору контакта";
-$a->strings["Account Nickname"] = "ПÑевдоним аккаунта";
-$a->strings["@Tagname - overrides Name/Nickname"] = "";
-$a->strings["Account URL"] = "URL аккаунта";
-$a->strings["Friend Request URL"] = "";
-$a->strings["Friend Confirm URL"] = "";
-$a->strings["Notification Endpoint URL"] = "";
-$a->strings["Poll/Feed URL"] = "";
-$a->strings["New photo from this URL"] = "Ðовое фото из Ñтого URL";
+$a->strings["No matches"] = "Ðет ÑоответÑтвий";
$a->strings["invalid target signature"] = "";
-$a->strings["Channel added."] = "Контакт добавлен.";
+$a->strings["Name is required"] = "Ðеобходимо имÑ";
+$a->strings["Key and Secret are required"] = "";
+$a->strings["Update"] = "Обновление";
+$a->strings["Passwords do not match. Password unchanged."] = "Пароли не Ñовпадают. Пароль не изменён.";
+$a->strings["Empty passwords are not allowed. Password unchanged."] = "ПуÑтые пароли не допуÑкаютÑÑ. Пароль не изменён.";
+$a->strings["Password changed."] = "Пароль изменен.";
+$a->strings["Password update failed. Please try again."] = "Изменение Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð·Ð°ÐºÐ¾Ð½Ñ‡Ð¸Ð»Ð¾ÑÑŒ неуÑпешно. ПожалуйÑта, попробуйте еще раз.";
+$a->strings["Not valid email."] = "Ðе дейÑтвительный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты.";
+$a->strings["Protected email address. Cannot change to that email."] = "";
+$a->strings["System failure storing new email. Please try again."] = "";
+$a->strings["Settings updated."] = "ÐаÑтройки обновленны.";
+$a->strings["Add application"] = "Добавить приложениÑ";
+$a->strings["Name of application"] = "";
+$a->strings["Consumer Key"] = "Ключ клиента";
+$a->strings["Automatically generated - change if desired. Max length 20"] = "";
+$a->strings["Consumer Secret"] = "Секрет клиента";
+$a->strings["Redirect"] = "Перенаправление";
+$a->strings["Redirect URI - leave blank unless your application specifically requires this"] = "";
+$a->strings["Icon url"] = "URL-Ð°Ð´Ñ€ÐµÑ Ð·Ð½Ð°Ñ‡ÐºÐ°";
+$a->strings["Optional"] = "ÐеобÑзательно";
+$a->strings["You can't edit this application."] = "Ð’Ñ‹ не можете редактировать Ñто приложение.";
+$a->strings["Connected Apps"] = "Подключенные приложениÑ";
+$a->strings["Client key starts with"] = "";
+$a->strings["No name"] = "Без названиÑ";
+$a->strings["Remove authorization"] = "Удалить разрешение";
+$a->strings["No feature settings configured"] = "Параметры функций не наÑтроены";
+$a->strings["Feature Settings"] = "ÐаÑтройки функции";
+$a->strings["Account Settings"] = "ÐаÑтройки аккаунта";
+$a->strings["Password Settings"] = "ÐаÑтройки паролÑ";
+$a->strings["New Password:"] = "Ðовый пароль:";
+$a->strings["Confirm:"] = "Подтверждение:";
+$a->strings["Leave password fields blank unless changing"] = "ОÑтавьте Ð¿Ð¾Ð»Ñ Ð¿ÑƒÑтыми, еÑли не менÑетÑÑ";
+$a->strings["Email Address:"] = "ÐÐ´Ñ€ÐµÑ Ñлектронной почты:";
+$a->strings["Remove Account"] = "Удалить аккаунт";
+$a->strings["Warning: This action is permanent and cannot be reversed."] = "";
+$a->strings["Off"] = "Выкл.";
+$a->strings["On"] = "Вкл.";
+$a->strings["Additional Features"] = "Дополнительные функции";
+$a->strings["Connector Settings"] = "ÐаÑтройки ÑоединителÑ";
+$a->strings["Display Settings"] = "ÐаÑтройки отображениÑ";
+$a->strings["Display Theme:"] = "Тема отображениÑ:";
+$a->strings["Mobile Theme:"] = "ÐœÐ¾Ð±Ð¸Ð»ÑŒÐ½Ð°Ñ Ñ‚ÐµÐ¼Ð° отображениÑ:";
+$a->strings["Update browser every xx seconds"] = "Обновление браузера каждые ХХ Ñекунд";
+$a->strings["Minimum of 10 seconds, no maximum"] = "Минимум 10 Ñекунд, без макÑимума";
+$a->strings["Maximum number of conversations to load at any time:"] = "";
+$a->strings["Maximum of 100 items"] = "МакÑимум 100 Ñлементов";
+$a->strings["Don't show emoticons"] = "Ðе показывать emoticons";
+$a->strings["Nobody except yourself"] = "Ðикто, кроме ваÑ";
+$a->strings["Only those you specifically allow"] = "Только комы вы разрешили";
+$a->strings["Anybody in your address book"] = "Любой в вашей адреÑной книге";
+$a->strings["Anybody on this website"] = "Любой на Ñтом веб-Ñайте";
+$a->strings["Anybody in this network"] = "Любой в Ñтой Ñети";
+$a->strings["Anybody on the internet"] = "Любой в интернете";
+$a->strings["Publish your default profile in the network directory"] = "ÐŸÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Ð¿Ð¾ умолчанию в каталоге Ñети";
+$a->strings["Allow us to suggest you as a potential friend to new members?"] = "";
+$a->strings["or"] = "или";
+$a->strings["Your channel address is"] = "ÐÐ´Ñ€ÐµÑ Ð²Ð°ÑˆÐµÐ³Ð¾ канала:";
+$a->strings["Channel Settings"] = "ÐаÑтройки канала";
+$a->strings["Basic Settings"] = "ОÑновные наÑтройки";
+$a->strings["Your Timezone:"] = "Ваш чаÑовой поÑÑ:";
+$a->strings["Default Post Location:"] = "Откуда по умолчанию:";
+$a->strings["Use Browser Location:"] = "ИÑпользуйте указание браузерa:";
+$a->strings["Adult Content"] = "";
+$a->strings["This channel publishes adult content."] = "";
+$a->strings["Security and Privacy Settings"] = "Параметры безопаÑноÑти и конфиденциальноÑти";
+$a->strings["Quick Privacy Settings:"] = "БыÑтрые параметры безопаÑноÑти и конфиденциальноÑти:";
+$a->strings["Very Public - extremely permissive"] = "Очень публично - чрезвычайно разрешающе";
+$a->strings["Typical - default public, privacy when desired"] = "Типично - по умолчанию публично, конфиденциальноÑÑ‚ÑŒ, только еÑли наÑтроена";
+$a->strings["Private - default private, rarely open or public"] = "ЧаÑтно - по умолчанию чаÑтно, редко открыто или публично";
+$a->strings["Blocked - default blocked to/from everybody"] = "Заблокированно - по умолчанию заблокировано длÑ/от вÑех";
+$a->strings["Maximum Friend Requests/Day:"] = "";
+$a->strings["May reduce spam activity"] = "";
+$a->strings["Default Post Permissions"] = "";
+$a->strings["Maximum private messages per day from unknown people:"] = "";
+$a->strings["Useful to reduce spamming"] = "";
+$a->strings["Notification Settings"] = "ÐаÑтройки уведомлений";
+$a->strings["By default post a status message when:"] = "";
+$a->strings["accepting a friend request"] = "";
+$a->strings["joining a forum/community"] = "";
+$a->strings["making an <em>interesting</em> profile change"] = "";
+$a->strings["Send a notification email when:"] = "Отправить уведомление по Ñлектронной почте, еÑли:";
+$a->strings["You receive an introduction"] = "Вы получили введение";
+$a->strings["Your introductions are confirmed"] = "";
+$a->strings["Someone writes on your profile wall"] = "";
+$a->strings["Someone writes a followup comment"] = "";
+$a->strings["You receive a private message"] = "";
+$a->strings["You receive a friend suggestion"] = "";
+$a->strings["You are tagged in a post"] = "";
+$a->strings["You are poked/prodded/etc. in a post"] = "";
+$a->strings["Advanced Account/Page Type Settings"] = "";
+$a->strings["Change the behaviour of this account for special situations"] = "";
+$a->strings["Unable to lookup recipient."] = "";
+$a->strings["Unable to communicate with requested channel."] = "";
+$a->strings["Cannot verify requested channel."] = "";
+$a->strings["Selected channel has private message restrictions. Send failed."] = "";
+$a->strings["Messages"] = "ПерепиÑка";
+$a->strings["Message deleted."] = "Сообщение удалено.";
+$a->strings["Message recalled."] = "";
+$a->strings["Send Private Message"] = "Отправить личное Ñообщение";
+$a->strings["To:"] = "Кому:";
+$a->strings["Subject:"] = "Тема:";
+$a->strings["Message not found."] = "Сообщение не найдено.";
+$a->strings["Delete message"] = "Удалить Ñообщение";
+$a->strings["Recall message"] = "";
+$a->strings["Message has been recalled."] = "";
+$a->strings["Private Conversation"] = "Личный разговор";
+$a->strings["Delete conversation"] = "Удалить разговор";
+$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "";
+$a->strings["Send Reply"] = "Отправить Ñнова";
$a->strings["Item not found"] = "Элемент не найден";
$a->strings["Edit Layout"] = "";
$a->strings["Insert YouTube video"] = "Ð’Ñтавить YouTube видео";
$a->strings["Insert Vorbis [.ogg] video"] = "Ð’Ñтавить Vorbis [.ogg] видео";
$a->strings["Insert Vorbis [.ogg] audio"] = "Ð’Ñтавить Vorbis [.ogg] музыку";
$a->strings["Delete Layout"] = "";
-$a->strings["Contacts who are not members of a group"] = "";
$a->strings["Image uploaded but image cropping failed."] = "";
$a->strings["Image resize failed."] = "Изменение размера Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð½Ðµ удалоÑÑŒ.";
$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "";
@@ -1440,42 +1532,18 @@ $a->strings["Done Editing"] = "Закончить редактирование";
$a->strings["Image uploaded successfully."] = "Загрузка Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸ÐµÑ Ð¿Ñ€Ð¾ÑˆÐ»Ð° уÑпешно.";
$a->strings["Image upload failed."] = "Загрузка Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸ÐµÑ Ð¿Ñ€Ð¾ÑˆÐ»Ð° безуÑпешно.";
$a->strings["Image size reduction [%s] failed."] = "";
-$a->strings["Edit Webpage"] = "";
-$a->strings["Delete Webpage"] = "";
+$a->strings["Item is not editable"] = "Элемент Ð½ÐµÐ»ÑŒÐ·Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ";
+$a->strings["Delete item?"] = "Удалить Ñлемент?";
$a->strings["Invalid request identifier."] = "";
-$a->strings["System"] = "СиÑтема";
-$a->strings["Introductions"] = "ВведениÑ";
-$a->strings["Show Ignored Requests"] = "Показать проигнорированные запроÑÑ‹";
-$a->strings["Hide Ignored Requests"] = "Скрыть проигнорированные запроÑÑ‹";
-$a->strings["Notification type: "] = "Тип оповещениÑ:";
-$a->strings["Friend Suggestion"] = "";
-$a->strings["suggested by %s"] = "";
-$a->strings["Claims to be known to you: "] = "";
-$a->strings["yes"] = "да";
-$a->strings["no"] = "нет";
-$a->strings["Approve as: "] = "Утвердить в качеÑтве:";
-$a->strings["Friend"] = "Друг";
-$a->strings["Sharer"] = "";
-$a->strings["Fan/Admirer"] = "Поклонник";
-$a->strings["Friend/Connect Request"] = "";
-$a->strings["New Follower"] = "Ðовый поÑледователь";
-$a->strings["No introductions."] = "Введений нет.";
-$a->strings["%s liked %s's post"] = "%s нравитÑÑ %s's Ñообщение";
-$a->strings["%s disliked %s's post"] = "%s не нравитÑÑ %s's Ñообщение";
-$a->strings["%s is now friends with %s"] = "%s теперь в друзьÑÑ… Ñ %s";
-$a->strings["%s created a new post"] = "%s Ñоздал новое Ñообщение";
-$a->strings["%s commented on %s's post"] = "%s прокомментировал %s's Ñообщение";
-$a->strings["No more network notifications."] = "Ðовых оповещений Ñети пока нет.";
-$a->strings["Network Notifications"] = "ÐžÐ¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ñети";
+$a->strings["Discard"] = "Отменить";
$a->strings["No more system notifications."] = "Ðовых оповещений ÑиÑтемы пока нет.";
$a->strings["System Notifications"] = "СиÑтемные Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ ";
-$a->strings["No more personal notifications."] = "Ðовых личных оповещений пока нет.";
-$a->strings["Personal Notifications"] = "Личные Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ ";
-$a->strings["No more home notifications."] = "Ðовых домашних оповещений пока нет.";
-$a->strings["Home Notifications"] = "Домашние оповещениÑ";
+$a->strings["Block Name"] = "";
+$a->strings["Unable to find your hub."] = "";
$a->strings["Post successful."] = "ÐŸÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ñ€Ð¾ÑˆÐ»Ð° уÑпешно.";
-$a->strings["Item is not editable"] = "Элемент Ð½ÐµÐ»ÑŒÐ·Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ";
-$a->strings["Edit post"] = "Редактировать Ñообщение";
+$a->strings["Edit Webpage"] = "";
+$a->strings["Delete webpage?"] = "";
+$a->strings["Delete Webpage"] = "";
$a->strings["Access to this profile has been restricted."] = "ДоÑтуп к Ñтому профилю ограничен.";
$a->strings["Poke/Prod"] = "";
$a->strings["poke, prod or do other things to somebody"] = "";
@@ -1483,47 +1551,48 @@ $a->strings["Recipient"] = "Получатель";
$a->strings["Choose what you wish to do to recipient"] = "";
$a->strings["Make this post private"] = "Сделать Ñто Ñообщение личным";
$a->strings["Wall Photos"] = "Стена фотографий";
+$a->strings["You must be logged in to see this page."] = "";
+$a->strings["Insufficient permissions. Request redirected to profile page."] = "";
$a->strings["Not available."] = "ÐедоÑтупно.";
$a->strings["Community"] = "СообщеÑтво";
$a->strings["No results."] = "Ðичего не найдено.";
-$a->strings["Files"] = "Файлы";
+$a->strings["Contact not found."] = "Контакт не найден.";
$a->strings["Friend suggestion sent."] = "";
$a->strings["Suggest Friends"] = "ПриглаÑить друзей";
$a->strings["Suggest a friend for %s"] = "";
-$a->strings["Edit Block"] = "";
-$a->strings["Delete Block"] = "";
+$a->strings["Edit Block"] = "Редактировать блок";
+$a->strings["Delete Block"] = "Удалить блок";
$a->strings["Invalid profile identifier."] = "";
$a->strings["Profile Visibility Editor"] = "Редактор видимоÑти профилÑ";
$a->strings["Click on a contact to add or remove."] = "";
$a->strings["Visible To"] = "Видно";
$a->strings["All Contacts (with secure profile access)"] = "Ð’Ñе контакты (Ñ Ð´Ð¾Ñтупом защищенному профилю)";
-$a->strings["Unable to locate original post."] = "Ðе удалоÑÑŒ найти оригинал.";
-$a->strings["Empty post discarded."] = "ОтказатьÑÑ Ð¾Ñ‚ пуÑтой почты.";
-$a->strings["Executable content type not permitted to this channel."] = "";
-$a->strings["System error. Post not saved."] = "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. Сообщение не Ñохранено.";
-$a->strings["You have reached your limit of %1$.0f top level posts."] = "";
-$a->strings["You have reached your limit of %1$.0f webpages."] = "";
$a->strings["Version %s"] = "ВерÑÐ¸Ñ %s";
$a->strings["Installed plugins/addons/apps:"] = "";
$a->strings["No installed plugins/addons/apps"] = "";
$a->strings["Red"] = "Red";
-$a->strings["This is Red - another decentralized, distributed communications project by the folks at Friendica."] = "";
+$a->strings["This is a hub of the Red Matrix - a global cooperative network of decentralised privacy enhanced websites."] = "";
$a->strings["Running at web location"] = "";
-$a->strings["Please visit <a href=\"http://friendica.com\">Friendica.com</a> to learn more about the Friendica and/or Red project."] = "";
+$a->strings["Please visit <a href=\"http://getzot.com\">GetZot.com</a> to learn more about the Red Matrix."] = "";
$a->strings["Bug reports and issues: please visit"] = "";
-$a->strings["Suggestions, praise, donations, etc. - please email \"Info\" at Friendica - dot com"] = "";
+$a->strings["Suggestions, praise, donations, etc. - please email \"redmatrix\" at librelist - dot com"] = "";
$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "";
-$a->strings["Ignore/Hide"] = "Игнорировать / Скрыть";
+$a->strings["Conversation removed."] = "Разговор удален.";
+$a->strings["No messages."] = "Ðет Ñообщений.";
+$a->strings["D, d M Y - g:i A"] = "D, d M Y - g:i A";
$a->strings["Public Sites"] = "";
-$a->strings["Site URL"] = "";
+$a->strings["The listed sites allow public registration into the Red Matrix. All sites in the matrix are interlinked so membership on any of them conveys membership in the matrix as a whole. Some sites may require subscription or provide tiered service plans. The provider links <strong>may</strong> provide additional details."] = "";
+$a->strings["Site URL"] = "URL веб-Ñайта";
$a->strings["Access Type"] = "";
-$a->strings["Registration Policy"] = "";
+$a->strings["Registration Policy"] = "Правила региÑтрации";
$a->strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "";
$a->strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "";
-$a->strings["Passwords do not match."] = "";
+$a->strings["Passwords do not match."] = "Пароли не Ñовпадают.";
$a->strings["Registration successful. Please check your email for validation instructions."] = "";
$a->strings["Your registration is pending approval by the site owner."] = "";
$a->strings["Your registration can not be processed."] = "";
+$a->strings["Registration on this site/hub is by approval only."] = "";
+$a->strings["<a href=\"pubsites\">Register at another affiliated site/hub</a>"] = "";
$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "";
$a->strings["Terms of Service"] = "";
$a->strings["I accept the %s for this website"] = "";
@@ -1534,51 +1603,94 @@ $a->strings["Your email address"] = "Ваш Ð°Ð´Ñ€ÐµÑ Ñлектронной п
$a->strings["Choose a password"] = "Выберите пароль";
$a->strings["Please re-enter your password"] = "";
$a->strings["Please login."] = "Войдите пожалуйÑта.";
-$a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "";
-$a->strings["Welcome %s. Remote authentication successful."] = "";
-$a->strings["Remove My Account"] = "Удалить мой аккаунт";
-$a->strings["This will completely remove your account. Once this has been done it is not recoverable."] = "";
+$a->strings["Remove This Channel"] = "Удалить Ñтот канал";
+$a->strings["This will completely remove this channel from the network. Once this has been done it is not recoverable."] = "";
$a->strings["Please enter your password for verification:"] = "";
-$a->strings["Permission Denied."] = "";
-$a->strings["Download"] = "";
-$a->strings["Used: "] = "";
-$a->strings["Limit: "] = "";
+$a->strings["Remove this channel and all its clones from the network"] = "";
+$a->strings["By default only the instance of the channel located on this hub will be removed from the network"] = "";
+$a->strings["Remove My Account"] = "Удалить мой аккаунт";
+$a->strings["Unable to locate original post."] = "Ðе удалоÑÑŒ найти оригинал.";
+$a->strings["Empty post discarded."] = "ОтказатьÑÑ Ð¾Ñ‚ пуÑтой почты.";
+$a->strings["Executable content type not permitted to this channel."] = "";
+$a->strings["System error. Post not saved."] = "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. Сообщение не Ñохранено.";
+$a->strings["You have reached your limit of %1$.0f top level posts."] = "";
+$a->strings["You have reached your limit of %1$.0f webpages."] = "";
$a->strings["Mood"] = "";
$a->strings["Set your current mood and tell your friends"] = "";
+$a->strings["sent you a private message"] = "отправил вам личное Ñообщение";
+$a->strings["added your channel"] = "добавил ваш канал";
+$a->strings["posted an event"] = "";
+$a->strings["Status: "] = "";
+$a->strings["Sexual Preference: "] = "СекÑÑƒÐ°Ð»ÑŒÐ½Ð°Ñ Ð¾Ñ€Ð¸ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ:";
+$a->strings["Homepage: "] = "ДомашнÑÑ Ñтраница:";
+$a->strings["Hometown: "] = "";
+$a->strings["About: "] = "О Ñебе:";
+$a->strings["Keywords: "] = "Ключевые Ñлова:";
+$a->strings["Scheme Default"] = "";
+$a->strings["red"] = "";
+$a->strings["black"] = "";
+$a->strings["silver"] = "";
$a->strings["Theme settings"] = "ÐаÑтройки темы";
+$a->strings["Set scheme"] = "";
+$a->strings["Navigation bar colour"] = "";
+$a->strings["Set font-colour for banner"] = "";
+$a->strings["Set the background colour"] = "";
+$a->strings["Set the background image"] = "";
+$a->strings["Set the background colour of items"] = "";
+$a->strings["Set the opacity of items"] = "";
+$a->strings["Set the basic colour for item icons"] = "";
+$a->strings["Set the hover colour for item icons"] = "";
+$a->strings["Set font-size for the entire application"] = "";
$a->strings["Set font-size for posts and comments"] = "УÑтановить размер шрифта Ð´Ð»Ñ Ñообщений и комментариев";
+$a->strings["Set font-colour for posts and comments"] = "";
+$a->strings["Set radius of corners"] = "";
+$a->strings["Set shadow depth of photos"] = "";
+$a->strings["Set maximum width of conversation regions"] = "";
+$a->strings["Set minimum opacity of nav bar - to hide it"] = "";
+$a->strings["Set size of conversation author photo"] = "";
+$a->strings["Set size of followup author photos"] = "";
+$a->strings["Sloppy photo albums"] = "";
+$a->strings["Are you a clean desk or a messy desk person?"] = "";
+$a->strings["Schema Default"] = "";
+$a->strings["Sans-Serif"] = "";
+$a->strings["Monospace"] = "";
+$a->strings["Set font face"] = "";
+$a->strings["Set iconset"] = "";
+$a->strings["Set big shadow size, default 15px 15px 15px"] = "";
+$a->strings["Set small shadow size, default 5px 5px 5px"] = "";
+$a->strings["Set shadow colour, default #000"] = "";
+$a->strings["Set radius size, default 5px"] = "";
$a->strings["Set line-height for posts and comments"] = "";
-$a->strings["Set colour scheme"] = "УÑтановите цветовую Ñхему";
-$a->strings["Draw shadows"] = "";
-$a->strings["Navigation bar colour"] = "";
-$a->strings["Display style"] = "Стиль отображениÑ";
-$a->strings["Display colour of links - hex value, do not include the #"] = "";
-$a->strings["Icons"] = "Значки";
-$a->strings["Shiny style"] = "";
-$a->strings["Corner radius"] = "Угловой радиуÑ";
-$a->strings["0-99 default: 5"] = "0-99 по умолчанию: 5";
+$a->strings["Set background image"] = "";
+$a->strings["Set background colour"] = "";
+$a->strings["Set section background image"] = "";
+$a->strings["Set section background colour"] = "";
+$a->strings["Set colour of items - use hex"] = "";
+$a->strings["Set colour of links - use hex"] = "";
+$a->strings["Set max-width for items. Default 400px"] = "";
+$a->strings["Set min-width for items. Default 240px"] = "";
+$a->strings["Set the generic content wrapper width. Default 48%"] = "";
+$a->strings["Set colour of fonts - use hex"] = "";
+$a->strings["Set background-size element"] = "";
+$a->strings["Item opacity"] = "";
+$a->strings["Display post previews only"] = "";
+$a->strings["Display side bar on channel page"] = "";
+$a->strings["Colour of the navigation bar"] = "";
+$a->strings["Item float"] = "";
+$a->strings["Left offset of the section element"] = "";
+$a->strings["Right offset of the section element"] = "";
+$a->strings["Section width"] = "";
+$a->strings["Left offset of the aside"] = "";
+$a->strings["Right offset of the aside element"] = "";
+$a->strings["None"] = "";
+$a->strings["Header image"] = "";
+$a->strings["Header image only on profile pages"] = "";
$a->strings["Update %s failed. See error logs."] = "";
$a->strings["Update Error at %s"] = "Ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° %s";
-$a->strings["Create a New Account"] = "Создать новый аккаунт";
+$a->strings["Create an account to access services and applications within the Red Matrix"] = "";
$a->strings["Password"] = "Пароль";
$a->strings["Remember me"] = "Запомнить";
$a->strings["Forgot your password?"] = "Забыли пароль или логин?";
-$a->strings["Requested channel is not available."] = "Запрашиваемый канал не доÑтупен.";
-$a->strings[" Sorry, you don't have the permission to view this profile. "] = "";
-$a->strings["Profiles"] = "Профили";
-$a->strings["Manage/edit profiles"] = "Управление / Редактирование профилей";
-$a->strings["Edit Profile"] = "Редактировать профиль";
-$a->strings["F d"] = "F d";
-$a->strings["Birthday Reminders"] = "ÐÐ°Ð¿Ð¾Ð¼Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¾ ДнÑÑ… РождениÑ";
-$a->strings["Birthdays this week:"] = "Дни Ð Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð½Ð° Ñтой неделе:";
-$a->strings["[No description]"] = "[без опиÑаниÑ]";
-$a->strings["Event Reminders"] = "ÐÐ°Ð¿Ð¾Ð¼Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¼ÐµÑ€Ð¾Ð¿Ñ€Ð¸Ñтий";
-$a->strings["Events this week:"] = "МероприÑÑ‚Ð¸Ñ Ð½Ð° Ñтой неделе:";
-$a->strings["Channel"] = "Канал";
-$a->strings["Status Messages and Posts"] = "";
-$a->strings["About"] = "О Ñебе";
-$a->strings["Profile Details"] = "Ð¡Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ профиле";
-$a->strings["Events and Calendar"] = "МероприÑÑ‚Ð¸Ñ Ð¸ календарь";
-$a->strings["Webpages"] = "Веб-Ñтраницы";
-$a->strings["Manage Webpages"] = "Управление веб-Ñтраниц";
+$a->strings["permission denied"] = "доÑтуп запрещен";
+$a->strings["Got Zot?"] = "Got Zot?";
$a->strings["toggle mobile"] = "мобильное подключение";
diff --git a/view/theme/redbasic/css/dark.css b/view/theme/redbasic/css/dark.css
deleted file mode 100644
index 3bcf15bc9..000000000
--- a/view/theme/redbasic/css/dark.css
+++ /dev/null
@@ -1,186 +0,0 @@
-/* This file is deprecated. We'll keep it here as reference until somebody
-defines a dark colour scheme */
-
-
-body { font-family: sans-serif;
- font-size: 12px;
- background-color: #101010;
- background-image: -moz-linear-gradient(top, #000 16%, #101010 82%);
- background-image: linear-gradient(bottom, #000 16%, #101010 82%);
- background-image: -o-linear-gradient(bottom, #000 16%, #101010 82%);
- background-image: -webkit-linear-gradient(bottom, #000 16%, #101010 82%);
- background-image: -ms-linear-gradient(bottom, #000 16%, #101010 82%);
- background-repeat: no-repeat;
- background-attachment: fixed;
- color: #eec;
-
-}
-
-aside {
-border: none;
-color: #fff;
-}
-
-.fn {
- color: #fff;
-}
-
-.acl-list-item,
-.profile-jot-net {
- color: #000;
-}
-
-
-.tab.active {
- color: #fff;
-}
-
-blockquote {color: #000;}
-
-.wall-item-content-wrapper {
- background: #262626;
- border-radius: 5px;
- box-shadow: 12px 12px 12px #000;
- margin-bottom: 20px;
-}
-
-.wall-item-content-wrapper.comment {
- margin-left: 50px;
- box-shadow: 5px 5px 5px #000;
-}
-
-.comment-edit-text-empty, .comment-edit-text-full {
- border-radius: 5px 5px 5px 5px;
- box-shadow: 5px 5px 5px #000 inset;
-}
-
-
-#profile-jot-text {
- height: 20px;
- color:#000;
- border: 1px solid #cccccc;
- padding: 8px;
- margin-right: 0px;
- width: 90%;
- -moz-border-radius: 5px;
- border-radius: 5px;
- box-shadow: 4px 4px 3px 0 #666 inset;
-}
-#profile-jot-text:hover {
- color: #000000;
-}
-
-#profile-jot-submit {
- height: auto;
- background-color: #0080FF;
- color: #eeeeec;
- font-weight: bold;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- border-radius: 5px;
- border: 2px outset #222420 !important;
- margin: 0;
- float: right;
- text-shadow: 1px 1px #111;
- width: auto;
- box-shadow: 5px 5px 5px #444;
-}
-
-
-.widget {
- border-bottom: 1px solid #eec;
- padding: 8px;
- margin-top: 5px;
- -moz-border-radius:5px;
- -webkit-border-radius:5px;
- border-radius:5px;
-
-}
-
-nav a,
-nav a:active,
-nav a:visited,
-nav a:link {
- color: #ffffff;
- text-decoration: none;
- outline: none;
-}
-
-.nav-menu.selected a {
- color: #0080ff !important;
-}
-
-nav .nav-menu-icon {
- position: relative;
- height: 22px;
- padding: 5px;
-/* margin: 3px 10px; */
- -moz-border-radius: 5px 5px 0 0;
- -webkit-border-radius: 5px 5px 0 0;
- border-radius: 5px 5px 0 0;
-}
-
-nav .nav-notify {
- background-color: #0080FF;
- color: #fff;
- -moz-border-radius: 5px 5px 5px 5px;
- -webkit-border-radius: 5px 5px 5px 5px;
- border-radius: 5px 5px 5px 5px;
- opacity: 0.6;
- filter:alpha(opacity=60);
-
-}
-.nav-notify:hover, nav .nav-notify.selected span {
- color: #ffffff;
-}
-
-ul.menu-popup {
-
- position: absolute;
- display: none;
- width: 10em;
- background: #000;
- color: #fff;
- padding: 0px;
- list-style: none;
- border-radius: 0px 0px 20px 20px;
- z-index: 100000;
- -webkit-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
- -moz-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
- box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
-}
-ul.menu-popup a {
- display: block;
- color: #FFFFFF;
- padding: 5px 10px;
- text-decoration: none;
-}
-
-
-ul.menu-popup a:hover {
- background-color: #888888;
- color: #FFFFFF;
-}
-ul.menu-popup .menu-sep {
- border-top: 1px solid #9eabb0;
-}
-
-.wall-item-photo,
-.photo,
-.contact-block-img,
-.my-comment-photo {
- border-radius: 5px;
- box-shadow: 4px 4px 3px #000;
-}
-
-
-div#pagelist-content-wrapper {
-width: 80%;
-background: #111;
-margin-left: auto;
-margin-right: auto;
-}
-
-div.page-list-item {
-margin: 20px;
-}
diff --git a/view/theme/redbasic/css/fancy.css b/view/theme/redbasic/css/fancy.css
deleted file mode 100644
index 9b8899d2f..000000000
--- a/view/theme/redbasic/css/fancy.css
+++ /dev/null
@@ -1,107 +0,0 @@
-/*This file is deprecated. We'll keep it for reference until we provide window decorations */
-
-
-aside {
-border-radius: $radiuspx;}
-
-
-.tab {
- height: auto;
- background-color: #f00;
- color: #fff !important;
- font-weight: bold;
- -webkit-border-radius: $radiuspx;
- -moz-border-radius: $radiuspx;
- border-radius: $radiuspx;
- margin: 0;
- width: auto;
- margin-left: 8px;
- padding: 4px;
- text-align: center;
-}
-.tab:hover, .tab.active:hover {
- background: #d00;
- color: #fff;
- ;
-}
-.tab:active {
- background: #fff;
- color: #f00;
-}
-.tab.active {
- background: #f00;
- color: #fff;
- box-shadow: 3px 3px 3px #333 inset;
- padding: 5px; /* strageness of the human mind - has to be larger than inactive tabs, or it looks smaller than them */
-}
-
-
-
-.wall-item-content-wrapper {
- position: relative;
- border-radius: $radiuspx;
- box-shadow: 8px 8px 8px #000;
- border: 1px solid #eec;
-}
-
-.wall-item-content-wrapper.comment {
- margin-top: 15px;
-}
-
-.wall-item-like:hover, .wall-item-dislike:hover{
-opacity: 1;
-}
-
-.wall-item-author {
- margin-top: 10px;
-}
-
-.comment-edit-wrapper {
- margin-top: 15px;
- background: #ffffff;
- margin-left: 50px;
-}
-
-#profile-jot-submit {
- background-color: #dd0000;
-}
-
-ul.menu-popup {
- background: #dd0000;
- color: #eec;
- border-radius: $radiuspx;
- z-index: 100000;
- -webkit-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
- -moz-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
- box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
-}
-ul.menu-popup a {
- color: #eec;
-}
-ul.menu-popup a:hover {
- background-color: #eec;
- color: #f00;
-}
-
-section {
-left: 0px;
-width: 800px;
-margin-left: auto;
-margin-right: auto;
-}
-body {background-color: #d00 !important;}
-
-.page-content-wrapper {background: #fff;
- color: #000;
- border-radius: 20px;
- box-shadow: 5px 5px 5px #111;
-}
-
-h3.page-title {
-padding-top: 30px;
- color: #033}
-.page-body {padding: 40px;}
-
-.page-body strong {color: #033;}
-
-.nav-links {margin-top: 5px;}
diff --git a/view/theme/redbasic/css/narrow_navbar.css b/view/theme/redbasic/css/narrow_navbar.css
new file mode 100644
index 000000000..b05f46797
--- /dev/null
+++ b/view/theme/redbasic/css/narrow_navbar.css
@@ -0,0 +1,27 @@
+.navbar-nav > li > a {padding-top:5px !important; padding-bottom:5px !important;}
+.navbar {min-height:25px !important;}
+nav img {
+height: 25px;
+width: 25px;
+margin: 2px 0px 1px 10px;
+border-radius: 0px;
+}
+.navbar-left{height: 30px;}
+.container-fluid {min-height:30px;}
+.collapse .navbar-collapse {min-height:30px;}
+#nav-search-text {margin:5px;}
+header #banner {margin-top:5px;}
+nav .dropdown-menu {
+top: 30px;}
+nav .badge {
+ position: relative;
+ top: -30px;
+ float: right;
+ font-size: 10px;
+ padding: 2px 6px;
+ cursor: pointer;
+}
+#jGrowl.top-right {
+ top: 30px;
+ right: 15px;
+} \ No newline at end of file
diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css
index e13bc1edb..2402e514e 100644
--- a/view/theme/redbasic/css/style.css
+++ b/view/theme/redbasic/css/style.css
@@ -40,11 +40,11 @@ abbr {
a, a:visited, a:link, .fakelink, .fakelink:visited, .fakelink:link {
font-weight: bold;
- color: #0080FF;
+ color: $link_colour;
text-decoration: none;
}
-a:hover, .fakelink:hover { color: #44AAFF; text-decoration: underline; }
+a:hover, .fakelink:hover { color: $link_colour; text-decoration: underline; }
.fakelink {
cursor: pointer;
@@ -91,6 +91,7 @@ blockquote {
border-left: 4px solid #dae4ee;
padding: 0.4em;
color: #000;
+ margin-left: 20px;
}
.ccollapse-wrapper {
@@ -113,6 +114,15 @@ blockquote {
margin-right: 5px;
}
+.subdued {
+ opacity: 0.3;
+ filter:alpha(opacity=30);
+}
+
+.subdued:hover {
+ opacity: 1.0;
+ filter:alpha(opacity=100);
+}
#langselector {
@@ -130,6 +140,8 @@ blockquote {
filter:alpha(opacity=100);
}
+/* this is not yet supported
+
nav {
background-image: linear-gradient(bottom, $nav_bg_1 26%, $nav_bg_2 82%);
background-image: -o-linear-gradient(bottom, $nav_bg_1 26%, $nav_bg_2 82%);
@@ -141,8 +153,6 @@ nav {
}
-
-
nav:hover {
background-image: linear-gradient(bottom, $nav_bg_3 26%, $nav_bg_4 82%);
background-image: -o-linear-gradient(bottom, $nav_bg_3 26%, $nav_bg_4 82%);
@@ -153,7 +163,7 @@ nav:hover {
filter:alpha(opacity=100);
}
-
+*/
nav #site-location {
color: #888a85;
@@ -194,15 +204,15 @@ header #site-location {
}
header #banner {
-
overflow: hidden;
text-align: center;
- font-size: 1.4em;
+ font-size: 14px;
font-family: tahoma, "Lucida Sans", sans;
color: $banner_colour;
font-weight: bold;
- margin-top: 1px;
+ margin-top: 14px;
}
+
header #banner a,
header #banner a:active,
header #banner a:visited,
@@ -221,49 +231,6 @@ header #banner #logo-text {
font-size: 22px;
}
-.nav-commlink, .nav-login-link {
- display: block;
- height: 15px;
- margin-top: 67px;
- margin-right: 2px;
- padding: 6px 3px;
- float: left;
- bottom: 140px;
- border: 1px solid #babdb6;
- border-bottom: 0px;
- background-color: #aec0d3;
- color: #565854;
- -moz-border-radius: $radiuspx;
- border-radius: $radiuspx;;
-}
-
-nav .nav-link {
- float: right;
- margin: 0.2em 0em;
- padding: 0em 0.5em;
- background-color: transparent !important;
-}
-
-.nav-commlink.active {
- background-color: #ffffff;
- border-bottom: 1px solid #ffffff;
- color: #000000 !important;
- margin-top: 64px;
- padding-top: 6px;
- padding-bottom: 8px;
-}
-
-.nav-ajax-left {
- font-size: 0.8em;
- float: left;
- margin-top: 62px;
-}
-
-
-nav #nav-link-wrapper .nav-link {
- border-right: 1px solid #babdb6;
-}
-
.tabs {
height: 28px;
border-bottom: 1px solid #aaaaaa;
@@ -327,11 +294,8 @@ footer {
margin-bottom: 15px;
}
-#group-sidebar {
- margin-bottom: 10px;
-}
-
-.group-selected, .nets-selected, .fileas-selected, .categories-selected, .search-selected, .active {
+/*TODO: we should use one class for all this. */
+.group-selected, .fileas-selected, .categories-selected, .search-selected, .active {
color: #444444 !important;
}
@@ -530,6 +494,64 @@ footer {
top: 22px;
}
+ul.menu-popup {
+ position: absolute;
+ display: none;
+ width: 10em;
+ background: #0080FF;
+ color: #eec;
+ padding: 0px;
+ list-style: none;
+/* border-radius: 0px 0px 20px 20px; */
+ z-index: 100000;
+ -webkit-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+ -moz-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+ box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
+}
+ul.menu-popup a {
+ display: block;
+ color: #FFFFFF;
+ padding: 5px 10px;
+ text-decoration: none;
+}
+
+
+ul.menu-popup a:hover {
+ background-color: #888888;
+ color: #FFFFFF;
+}
+ul.menu-popup .menu-sep {
+ border-top: 1px solid #9eabb0;
+}
+ul.menu-popup li {
+ float: none;
+ overflow: auto;
+ height: auto;
+ display: block;
+}
+ul.menu-popup li img {
+ float: left;
+ width: 16px;
+ height: 16px;
+ padding-right: 5px;
+}
+ul.menu-popup .empty {
+ padding: 5px;
+ text-align: center;
+ color: #9eabb0;
+}
+ul.menu-popup .toolbar {
+ background-color: #9eabb0;
+ height: auto;
+ overflow: auto;
+}
+ul.menu-popup .toolbar a {
+ float: right;
+}
+ul.menu-popup .toolbar a:hover {
+ background-color: #ffffff;
+}
+
#profile-in-dir-yes-label,
@@ -585,15 +607,6 @@ footer {
.thread-end-wrapper {
margin-left: 50px;
}
-
-#profile-listing-desc {
- margin-left: 30px;
-}
-
-#profile-listing-new-link-wrapper {
- margin-left: 30px;
- margin-bottom: 30px;
-}
.profile-listing-photo-wrapper {
float: left;
}
@@ -671,36 +684,6 @@ footer {
box-shadow: $shadowpx $shadowpx $shadowpx 0 #444444;
}
-
-#datebrowse-sidebar select {
- margin-left: 25px;
- border-radius: $radiuspx;
- -moz-border-radius: $radiuspx;
- opacity: 0.3;
- filter:alpha(opacity=30);
-}
-
-#datebrowse-sidebar select:hover {
- opacity: 1.0;
- filter:alpha(opacity=100);
-}
-
-#posted-date-selector {
- margin-left: 30px !important;
- margin-top: 5px !important;
- margin-right: 0px !important;
- margin-bottom: 0px !important;
-}
-
-#posted-date-selector:hover {
- box-shadow: 4px 4px 3px 0 #444444;
- margin-left: 25px !important;
- margin-top: 0px !important;
- margin-right: 5px !important;
- margin-bottom: 5px !important;
-
-}
-
#side-bar-photos-albums {
margin-top: 15px;
}
@@ -709,7 +692,7 @@ footer {
list-style: none;
}
-.contact-entry-photo img, .profile-match-photo img, #photo-photo img, .directory-photo-img, .photo-album-photo, .photo-top-photo {
+.profile-match-photo img, #photo-photo img, .directory-photo-img, .photo-album-photo, .photo-top-photo {
border-radius: $radiuspx;
-moz-border-radius: $radiuspx;
box-shadow: $shadowpx $shadowpx $shadowpx 0 #444444;
@@ -767,75 +750,15 @@ footer {
#netsearch-box { margin-bottom: 5px; }
-#sidebar-group-list ul {
- list-style-type: none;
-}
-
-#sidebar-group-list .icon, #sidebar-group-list .iconspacer {
- display: inline-block;
- height: 12px;
- width: 12px;
-}
-
-#sidebar-group-list li,
-.saved-search-li {
- margin-top: 3px;
-}
-
-
-.nets-ul, .fileas-ul, .categories-ul {
- list-style-type: none;
-}
-
-.nets-ul li, .fileas-ul li, .categories-ul li {
- margin-top: 10px;
-}
-
-.nets-link {
- margin-left: 24px;
-}
-.nets-all {
- margin-left: 42px;
-}
-
-.fileas-link, .categories-link {
- margin-left: 24px;
-}
-
-.fileas-all, .categories-all {
- margin-left: 0px;
-}
-
#search-save {
margin-left: 5px;
}
-.groupsideedit {
- margin-right: 10px;
-}
-
-#saved-search-ul {
- list-style-type: none;
-}
-
-.saved-search-li i {
- opacity: 0;
-}
-
-.saved-search-li:hover i {
- opacity: 1;
-}
-
-
-
-.savedsearchterm {
- margin-left: 10px;
-}
-
#side-follow-wrapper {
margin-top: 20px;
}
-#side-follow-url, #side-peoplefind-url {
+
+#side-peoplefind-url {
margin-top: 5px;
}
@@ -851,7 +774,7 @@ footer {
font-family: FontAwesome;
}
-#side-follow-submit, #side-peoplefind-submit {
+#side-peoplefind-submit {
margin-top: 15px;
}
@@ -860,7 +783,7 @@ footer {
}
-.widget, .pmenu {
+.pmenu {
border-bottom: 1px solid #eec;
padding: 8px;
margin-top: 5px;
@@ -971,8 +894,8 @@ footer {
}
#nav-search-spinner {
- float: right;
- margin: 12px 12px 0px 0px;
+ float: left;
+ margin: 25px 0px 0px 25px;
color: #fff;
}
@@ -984,6 +907,7 @@ footer {
#nav-search-text {
height: 20px;
+ margin: 15px;
padding: 0px 5px 0px 5px;
border-radius: 10px;
border: none;
@@ -1011,22 +935,6 @@ footer {
font-family: FontAwesome;
}
-#nav-user-linkmenu img {
- border-radius: $radiuspx;
- margin-top: -4px;
-}
-
-.nav-dropdown-indicator {
- opacity: 0.8;
- filter:alpha(opacity=80);
-}
-
-.nav-dropdown-indicator:hover {
- opacity: 1.0;
- filter:alpha(opacity=100);
-}
-
-
.location-label, .gender-label, .marital-label, .homepage-label {
float: left;
text-align: right;
@@ -1626,7 +1534,7 @@ div.jGrowl div.info {
padding-left: 58px;
}
#jGrowl.top-right {
- top: 15px;
+ top: 65px;
right: 15px;
}
@@ -1640,8 +1548,8 @@ div.jGrowl div.info {
#nav-search-text-ac .autocomplete {
position: fixed;
- top: 24px;
- border: 1px solid $nav_bg_1;
+ top: 51px;
+ border: 1px solid #222;
border-top: none;
}
@@ -1679,12 +1587,6 @@ div.jGrowl div.info {
text-overflow: ellipsis;
}
-#datebrowse-sidebar select {
- margin-left: 25px;
-}
-
-
-
.jslider .jslider-scale ins {
color: #333;
font-size: $body_font_size;
@@ -1692,46 +1594,21 @@ div.jGrowl div.info {
text-align: center;
}
-
-.slider {
- margin-top: 10px;
- margin-bottom: 45px;
-}
-
-
-#main-slider {
- position: relative;
- left: 5px;
- width: 90%;
-
-}
-
-
#contact-slider {
position: relative;
left: 5%;
width: 90%;
}
-a.rconnect,
-nav a,
-nav a:active,
-nav a:visited,
-nav a:link {
+a.rconnect {
color: #ffffff;
text-decoration: none;
outline: none;
}
-a.rconnect:hover, nav a:hover {
+a.rconnect:hover {
color: #0080FF;
}
-nav .fakelink {
- color: #ffffff;
- text-decoration: none;
- outline: none;
-}
-nav .fakelink:hover { text-decoration: none; }
#profiles-menu li a {
color: #ffffff;
@@ -1741,230 +1618,16 @@ nav .fakelink:hover { text-decoration: none; }
color: #000000;
}
-nav ul {
- margin: 0px;
- padding: 0px 20px;
-}
-nav ul li {
- list-style: none;
- margin: 0px;
- padding: 0px;
- float: left;
-}
-nav ul li .menu-popup {
- left: 0px;
- right: auto;
- top: 33px;
-}
-
-#nav-user-linkmenu {
- margin-left: 5px;
-}
-
-nav .nav-menu-icon {
- position: relative;
- height: 22px;
- padding: 5px;
-/* margin: 3px 10px; */
- -moz-border-radius: $radiuspx;
- -webkit-border-radius: $radiuspx;
- border-radius: $radiuspx;
-}
-nav .nav-menu-icon.active {
- background-color: #FF0000;
-}
-nav .nav-menu-icon img {
- width: 22px;
- height: 22px;
-}
-nav .nav-menu-icon .nav-notify {
- top: 3px;
-}
-nav .nav-menu {
- position: relative;
- height: 16px;
- padding: 5px;
- margin: 0px 5px 0px;
- font-size: 1.0em;
-/* border-bottom: 3px solid #f88; */
-}
-
-nav:hover .nav-menu {
-/* border-bottom: 3px solid #f00; */
-}
-
-nav .nav-menu.active i {
- color: $active_colour;
-}
-
-nav .nav-notify {
- background-color: #0080FF;
- color: #fff;
- -moz-border-radius: $radiuspx;
- -webkit-border-radius: $radiuspx;
- border-radius: $radiuspx;
-/* opacity: 0.6;
- filter:alpha(opacity=60); */
-
-}
-.nav-notify:hover, nav .nav-notify.active span {
- color: #ffffff;
-}
-
-nav .nav-notify.show {
- display: block;
-}
-nav #nav-help-link,
-nav #nav-login-link,
-nav #nav-search-link,
-nav #nav-directory-link,
-nav #nav-apps-link {
- float: right;
-}
-nav #nav-help-link .menu-popup,
-nav #nav-search-link .menu-popup,
-nav #nav-directory-link .menu-popup,
-nav #nav-apps-link .menu-popup,
-nav #nav-site-linkmenu .menu-popup {
- right: 0px;
- left: auto;
-}
-nav #nav-notifications-linkmenu.on .icon.s22.notify,
-nav #nav-notifications-linkmenu.active .icon.s22.notify {
- background-image: url("../../../../images/icons/22/notify_on.png");
-}
-nav #nav-apps-link.active {
- background-color: #364e59;
-}
-ul.menu-popup {
- position: absolute;
- display: none;
- width: 10em;
- background: #0080FF;
- color: #eec;
- padding: 0px;
- list-style: none;
-/* border-radius: 0px 0px 20px 20px; */
- z-index: 100000;
- -webkit-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
- -moz-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
- box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
-}
-ul.menu-popup a {
- display: block;
- color: #FFFFFF;
- padding: 5px 10px;
- text-decoration: none;
-}
-
-ul.menu-popup a:hover {
- background-color: #888888;
- color: #FFFFFF;
-}
-ul.menu-popup .menu-sep {
- border-top: 1px solid #9eabb0;
-}
-ul.menu-popup li {
- float: none;
- overflow: auto;
- height: auto;
- display: block;
-}
-ul.menu-popup li img {
- float: left;
- width: 16px;
- height: 16px;
- padding-right: 5px;
-}
-ul.menu-popup .empty {
- padding: 5px;
- text-align: center;
- color: #9eabb0;
-}
-ul.menu-popup .toolbar {
- background-color: #9eabb0;
- height: auto;
- overflow: auto;
-}
-ul.menu-popup .toolbar a {
- float: right;
-}
-ul.menu-popup .toolbar a:hover {
- background-color: #ffffff;
-}
/* header */
header {
position: fixed;
left: 43%;
right: 43%;
- top: 0px;
margin: 0px;
padding: 0px;
- /*width: 100%; height: 12px; */
-
- z-index: 110;
- color: #ffffff;
-}
-
-
-/* notifications popup menu */
-.nav-notify {
- display: none;
- position: absolute;
- font-size: 10px;
- padding: 1px 3px;
- top: 0px;
- right: -5px;
- min-width: 15px;
- text-align: right;
-}
-.nav-notify.show {
- display: block;
-}
-ul.menu-popup {
- position: absolute;
- display: none;
- width: 10em;
- margin: 0px;
- padding: 0px;
- list-style: none;
- z-index: 100000;
-/* top: 90px; */
-/* left: 400px; */
-}
-
-.notify-menus {
- width: 320px !important;
- max-height: 400px;
- overflow-y: scroll;overflow-style:scrollbar;
-}
-
-#nav-notifications-menu {
- width: 320px;
- max-height: 400px;
- overflow-y: scroll;overflow-style:scrollbar;
- background-color:#FFFFFF;
- -moz-border-radius: $radiuspx;
- -webkit-border-radius: $radiuspx;
- border-radius: $radiuspx;
- border: 1px solid #888;
-}
-#nav-notifications-menu .contactname { font-weight: bold; font-size: 0.9em; }
-#nav-notifications-menu img { float: left; margin-right: 5px; }
-#nav-notifications-menu .notif-when { font-size: 0.8em; display: block; }
-#nav-notifications-menu li {
- padding: 7px 0px 7px 10px;
- word-wrap:normal;
- border-bottom: 1px solid #000;
-}
-
-#nav-notifications-menu li:hover {
-
-}
-
-#nav-notifications-menu a:hover {
- text-decoration: underline;
+ z-index: 1400;
+ color: #fff;
}
.notif-item a {
@@ -2099,13 +1762,6 @@ ul.menu-popup {
.reshared-content { margin-left: 30px; }
.shared_header img { margin-right: 10px; }
-/* might be obsolete
-span.mail-delete {
-float: left;
-width: 30px;
-}
-*/
-
.tag1 {
font-size : 1.0em !important;
}
@@ -2202,18 +1858,13 @@ margin-right: 50px;
color: $toolicon_colour;
}
-.nav-icon {
- font-size: 1.4em;
- margin-right: 15px;
-}
-
a .drop-icons {
- color: #777;
+ color: $toolicon_colour;;
font-size: 1.2em;
text-decoration: none;
}
-.drop-icons:hover {
+a .drop-icons:hover {
color: #FF0000;
}
@@ -2243,6 +1894,10 @@ a .drop-icons {
margin-right: 10px;
}
+.design-tools ul {
+ list-style-type: none;
+}
+
.design-icons {
margin-right: 10px;
}
@@ -2255,11 +1910,6 @@ text-decoration: none;
list-style-type: none;
}
-.group-edit-icon,
-.savedsearchdrop {
- opacity: 0;
-}
-
.admin-icons {
color: $toolicon_colour;
margin-right: 10px;
@@ -2391,12 +2041,10 @@ img.mail-list-sender-photo {
border-left: 2px solid #eee;
}
-.thread-wrapper .toplevel_item {
+.thread-wrapper.toplevel_item {
max-width: $converse_width;
}
-/* conv_item */
-
.wall-item-content-wrapper {
border-radius: $radiuspx;
background-color: $item_colour;
@@ -2492,16 +2140,10 @@ img.mail-list-sender-photo {
color: $toolicon_activecolour;
}
-.drop-icons.item-tool {
- color: $toolicon_colour;
-}
-
.like-rotator {
color: $toolicon_colour;
}
-/* comment_item */
-
.my-comment-photo {
border-radius: $radiuspx;
-moz-border-radius: $radiuspx;
@@ -2538,14 +2180,96 @@ img.mail-list-sender-photo {
.comment-edit-text-full {
color: black;
}
-.suggest-widget-more { margin-top: 10px; }
+/* widgets */
+
+.widget {
+ border-bottom: 1px solid #eec;
+ -moz-border-radius: $radiuspx;
+ -webkit-border-radius: $radiuspx;
+ border-radius: $radiuspx;
+}
#note-text {
- width: 190px;
- max-width: 190px;
- height: 150px;
+ border: 1px solid #ccc;
+ border-radius: $radiuspx;
+ -moz-border-radius: $radiuspx;
}
-#note-save { margin-top: 10px; }
+#saved-search-ul {
+ list-style-type: none;
+}
+.fileas-ul {
+ list-style-type: none;
+}
+
+#datebrowse-sidebar select {
+ border: 1px solid #ccc;
+ border-radius: $radiuspx;
+ -moz-border-radius: $radiuspx;
+}
+
+.categories-ul {
+ list-style-type: none;
+}
+
+#sidebar-group-list ul {
+ list-style-type: none;
+}
+
+.profile-thing-list img, .thing-show img, .thing-edit-links a {
+ margin-top: 8px;
+ margin-right: 15px;
+}
+
+.abook-self {
+ background-color: #ffdddd;
+}
+
+.online-now {
+ color: red;
+ cursor: pointer;
+}
+
+.chat-item-photo {
+ border-radius: $radiuspx;
+}
+
+.chat-item-text {
+ border-radius: $radiuspx;
+ background-color: #eee;
+}
+
+/* nav bootstrap */
+nav i {
+ font-size: 14px;
+}
+
+nav img {
+ height: 47px;
+ width: 47px;
+ margin-top: 2px;
+ border-radius: $radiuspx;
+}
+
+nav ul li {
+ max-height: 50px
+}
+
+nav .badge {
+ border-radius: $radiuspx;
+}
+
+nav .dropdown-menu {
+ font-size: $body_font_size;
+ border-top-right-radius: 0px;
+ border-top-left-radius: 0px;
+ border-bottom-right-radius: $radiuspx;
+ border-bottom-left-radius: $radiuspx;
+}
+
+/* bootstrap overrides */
+blockquote {
+ font-size: $body_font_size;
+}
diff --git a/view/theme/redbasic/js/redbasic.js b/view/theme/redbasic/js/redbasic.js
index e89c51119..e41fde2b8 100644
--- a/view/theme/redbasic/js/redbasic.js
+++ b/view/theme/redbasic/js/redbasic.js
@@ -47,16 +47,6 @@ $('.savedsearchdrop').hover(
$(this).css('opacity','0');}
);
-$('.savedsearchterm').hover(
- function() {
- id = $(this).attr('id');
- $('#dropicon-' + id).css('opacity','1.0');},
-
- function() {
- id = $(this).attr('id');
- $('#dropicon-' + id).css('opacity','0');
- });
-
});
@@ -72,4 +62,4 @@ $(document).ready(function(){
}
};
setInterval(function () {checkNotify();}, 10 * 1000);
-}); \ No newline at end of file
+});
diff --git a/view/theme/redbasic/php/config.php b/view/theme/redbasic/php/config.php
index 20355197f..2235a9742 100644
--- a/view/theme/redbasic/php/config.php
+++ b/view/theme/redbasic/php/config.php
@@ -6,7 +6,9 @@ function theme_content(&$a) {
$arr = array();
$arr['schema'] = get_pconfig(local_user(),'redbasic', 'schema' );
+ $arr['narrow_navbar'] = get_pconfig(local_user(),'redbasic', 'narrow_navbar' );
$arr['nav_colour'] = get_pconfig(local_user(),'redbasic', 'nav_colour' );
+ $arr['link_colour'] = get_pconfig(local_user(),'redbasic', 'link_colour' );
$arr['banner_colour'] = get_pconfig(local_user(),'redbasic', 'banner_colour' );
$arr['bgcolour'] = get_pconfig(local_user(),'redbasic', 'background_colour' );
$arr['background_image'] = get_pconfig(local_user(),'redbasic', 'background_image' );
@@ -32,7 +34,9 @@ function theme_post(&$a) {
if (isset($_POST['redbasic-settings-submit'])) {
set_pconfig(local_user(), 'redbasic', 'schema', $_POST['redbasic_schema']);
+ set_pconfig(local_user(), 'redbasic', 'narrow_navbar', $_POST['redbasic_narrow_navbar']);
set_pconfig(local_user(), 'redbasic', 'nav_colour', $_POST['redbasic_nav_colour']);
+ set_pconfig(local_user(), 'redbasic', 'link_colour', $_POST['redbasic_link_colour']);
set_pconfig(local_user(), 'redbasic', 'background_colour', $_POST['redbasic_background_colour']);
set_pconfig(local_user(), 'redbasic', 'banner_colour', $_POST['redbasic_banner_colour']);
set_pconfig(local_user(), 'redbasic', 'background_image', $_POST['redbasic_background_image']);
@@ -72,9 +76,17 @@ function redbasic_form(&$a, $arr) {
$nav_colours = array (
'' => t('Scheme Default'),
- 'red' => t('red'),
- 'black' => t('black'),
- 'silver' => t('silver'),
+ 'red' => 'red',
+ 'pink' => 'pink',
+ 'green' => 'green',
+ 'blue' => 'blue',
+ 'purple' => 'purple',
+ 'black' => 'black',
+ 'orange' => 'orange',
+ 'brown' => 'brown',
+ 'grey' => 'grey',
+ 'gold' => 'gold',
+ 'silver' => t('silver'),
);
if(feature_enabled(local_user(),'expert'))
@@ -87,7 +99,9 @@ if(feature_enabled(local_user(),'expert'))
'$expert' => $expert,
'$title' => t("Theme settings"),
'$schema' => array('redbasic_schema', t('Set scheme'), $arr['schema'], '', $scheme_choices),
+ '$narrow_navbar' => array('redbasic_narrow_navbar',t('Narrow navbar'),$arr['narrow_navbar']),
'$nav_colour' => array('redbasic_nav_colour', t('Navigation bar colour'), $arr['nav_colour'], '', $nav_colours),
+ '$link_colour' => array('redbasic_link_colour', t('link colour'), $arr['link_colour'], '', $link_colours),
'$banner_colour' => array('redbasic_banner_colour', t('Set font-colour for banner'), $arr['banner_colour']),
'$bgcolour' => array('redbasic_background_colour', t('Set the background colour'), $arr['bgcolour']),
'$background_image' => array('redbasic_background_image', t('Set the background image'), $arr['background_image']),
diff --git a/view/theme/redbasic/php/style.php b/view/theme/redbasic/php/style.php
index 9956ccd31..901d06af7 100644
--- a/view/theme/redbasic/php/style.php
+++ b/view/theme/redbasic/php/style.php
@@ -1,5 +1,7 @@
<?php
-// Get the UID of the channel owner
+
+if(! $a->install) {
+ // Get the UID of the channel owner
$uid = get_theme_uid();
if($uid)
@@ -12,7 +14,9 @@
$nav_colour = get_pconfig($uid, "redbasic", "nav_colour");
// Load the owners pconfig
+ $narrow_navbar = get_pconfig($uid,'redbasic','narrow_navbar');
$banner_colour = get_pconfig($uid,'redbasic','banner_colour');
+ $link_colour = get_pconfig($uid, "redbasic", "link_colour");
$schema = get_pconfig($uid,'redbasic','schema');
$bgcolour = get_pconfig($uid, "redbasic", "background_colour");
$background_image = get_pconfig($uid, "redbasic", "background_image");
@@ -31,6 +35,8 @@
$top_photo=get_pconfig($uid,'redbasic','top_photo');
$reply_photo=get_pconfig($uid,'redbasic','reply_photo');
+}
+
// Now load the scheme. If a value is changed above, we'll keep the settings
// If not, we'll keep those defined by the schema
// Setting $scheme to '' wasn't working for some reason, so we'll check it's
@@ -63,6 +69,8 @@
$nav_bg_3 = "#f00";
$nav_bg_4 = "#b00";
}
+ if (! $link_colour)
+ $link_colour = "#0080FF";
if (! $banner_colour)
$banner_colour = "fff";
if (! $bgcolour)
@@ -130,6 +138,38 @@
$nav_bg_1 = $nav_bg_2 = $nav_bg_3 = $nav_bg_4 = "silver";
$search_background = '#EEEEEE';
}
+ if($nav_colour === "pink") {
+ $nav_bg_1 = $nav_bg_3 = "#FFC1CA";
+ $nav_bg_2 = $nav_bg_4 = "#FFC1CA";
+ }
+ if($nav_colour === "green") {
+ $nav_bg_1 = $nav_bg_3 = "#5CD65C";
+ $nav_bg_2 = $nav_bg_4 = "#5CD65C";
+ }
+ if($nav_colour === "blue") {
+ $nav_bg_1 = $nav_bg_3 = "#1872a2";
+ $nav_bg_2 = $nav_bg_4 = "#1872a2";
+ }
+ if($nav_colour === "purple") {
+ $nav_bg_1 = $nav_bg_3 = "#551A8B";
+ $nav_bg_2 = $nav_bg_4 = "#551A8B";
+ }
+ if($nav_colour === "orange") {
+ $nav_bg_1 = $nav_bg_3 = "#FF3D0D";
+ $nav_bg_2 = $nav_bg_4 = "#FF3D0D";
+ }
+ if($nav_colour === "brown") {
+ $nav_bg_1 = $nav_bg_3 = "#330000";
+ $nav_bg_2 = $nav_bg_4 = "#330000";
+ }
+ if($nav_colour === "grey") {
+ $nav_bg_1 = $nav_bg_3 = "#2e2f2e";
+ $nav_bg_2 = $nav_bg_4 = "#2e2f2e";
+ }
+ if($nav_colour === "gold") {
+ $nav_bg_1 = $nav_bg_3 = "#FFAA00";
+ $nav_bg_2 = $nav_bg_4 = "#FFAA00";
+ }
// Apply the settings
@@ -141,6 +181,7 @@ $options = array (
'$nav_bg_2' => $nav_bg_2,
'$nav_bg_3' => $nav_bg_3,
'$nav_bg_4' => $nav_bg_4,
+'$link_colour' => $link_colour,
'$banner_colour' => $banner_colour,
'$search_background' => $search_background,
'$bgcolour' => $bgcolour,
@@ -173,3 +214,6 @@ echo str_replace(array_keys($options), array_values($options), $x);
if($sloppy_photos && file_exists('view/theme/redbasic/css/sloppy_photos.css')) {
echo file_get_contents('view/theme/redbasic/css/sloppy_photos.css');
}
+if($narrow_navbar && file_exists('view/theme/redbasic/css/narrow_navbar.css')) {
+ echo file_get_contents('view/theme/redbasic/css/narrow_navbar.css');
+}
diff --git a/view/theme/redbasic/schema/notred.php b/view/theme/redbasic/schema/notred.php
new file mode 100644
index 000000000..5a6dda336
--- /dev/null
+++ b/view/theme/redbasic/schema/notred.php
@@ -0,0 +1,5 @@
+<?php
+
+ if (! $nav_colour)
+ $nav_colour = "black";
+
diff --git a/view/theme/redbasic/tpl/theme_settings.tpl b/view/theme/redbasic/tpl/theme_settings.tpl
index e0f546896..af2969397 100644
--- a/view/theme/redbasic/tpl/theme_settings.tpl
+++ b/view/theme/redbasic/tpl/theme_settings.tpl
@@ -4,8 +4,10 @@
</div>
{{if $expert}}
-{{include file="field_select.tpl" field=$nav_colour}}
+{{* include file="field_select.tpl" field=$nav_colour *}}
+{{include file="field_checkbox.tpl" field=$narrow_navbar}}
{{include file="field_input.tpl" field=$banner_colour}}
+{{include file="field_input.tpl" field=$link_colour}}
{{include file="field_input.tpl" field=$bgcolour}}
{{include file="field_input.tpl" field=$background_image}}
{{include file="field_input.tpl" field=$item_colour}}
@@ -18,7 +20,7 @@
{{include file="field_input.tpl" field=$radius}}
{{include file="field_input.tpl" field=$shadow}}
{{include file="field_input.tpl" field=$converse_width}}
-{{include file="field_input.tpl" field=$nav_min_opacity}}
+{{* include file="field_input.tpl" field=$nav_min_opacity *}}
{{include file="field_input.tpl" field=$top_photo}}
{{include file="field_input.tpl" field=$reply_photo}}
{{include file="field_checkbox.tpl" field=$sloppy_photos}}
diff --git a/view/tpl/abook_edit.tpl b/view/tpl/abook_edit.tpl
index 30abcc6b3..274d0d5de 100755
--- a/view/tpl/abook_edit.tpl
+++ b/view/tpl/abook_edit.tpl
@@ -16,6 +16,10 @@
<div id="contact-edit-wrapper">
+{{if $last_update}}
+{{$lastupdtext}} {{$last_update}}
+{{/if}}
+
{{if $notself}}
{{if $slide}}
<h3>{{$lbl_slider}}</h3>
@@ -26,28 +30,40 @@
{{/if}}
+<form id="abook-edit-form" action="connedit/{{$contact_id}}" method="post" >
+<input type="hidden" name="contact_id" value="{{$contact_id}}">
+<input id="contact-closeness-mirror" type="hidden" name="closeness" value="{{$close}}" />
+
+
+{{if $is_pending}}
+<div class="abook-pending-contact">
+{{include file="field_checkbox.tpl" field=$unapproved}}
+</div>
+{{/if}}
+
+{{if $multiprofs }}
+<div>
+<h3>{{$lbl_vis1}}</h3>
+<div>{{$lbl_vis2}}</div>
+
+{{$profile_select}}
+</div>
+{{/if}}
<h3>{{$permlbl}}</h3>
<div id="perm-desc" class="descriptive-text">{{$permnote}}</div>
-<form id="abook-edit-form" action="connections/{{$contact_id}}" method="post" >
-<input type="hidden" name="contact_id" value="{{$contact_id}}">
-<input id="contact-closeness-mirror" type="hidden" name="closeness" value="{{$close}}" />
-{{if $noperms}}
+{{* {{if $noperms}}
<div id="noperm-msg" class="warning-text">{{$noperms}}</div>
<div id="noperm-text" class="descriptive-text">{{$noperm_desc}}</div>
{{/if}}
+*}}
-{{if $is_pending}}
-<div class="abook-pending-contact">
-{{include file="field_checkbox.tpl" field=$unapproved}}
-</div>
-{{/if}}
<br />
-<b>{{$quick}}</b>
+<h3>{{$quick}}</h3>
<ul>
{{if $self}}
<li><span class="fakelink" onclick="connectForum(); // $('#abook-edit-form').submit();">{{$forum}}</span></li>
@@ -58,6 +74,9 @@
<li><span class="fakelink" onclick="connectFollowOnly(); // $('#abook-edit-form').submit();">{{$follow}}</span></li>
</ul>
+<input class="contact-edit-submit" type="submit" name="done" value="{{$submit}}" />
+
+
<div id="abook-advanced" class="fakelink" onclick="openClose('abook-advanced-panel');">{{$advanced}}</div>
<div id="abook-advanced-panel" style="display: block;">
@@ -72,14 +91,6 @@
</div>
-{{if $multiprofs }}
-<div>
-<h3>{{$lbl_vis1}}</h3>
-<div>{{$lbl_vis2}}</div>
-
-{{$profile_select}}
-</div>
-{{/if}}
<input class="contact-edit-submit" type="submit" name="done" value="{{$submit}}" />
diff --git a/view/tpl/admin_hubloc.tpl b/view/tpl/admin_hubloc.tpl
index a9f250652..06a8cdf6a 100755
--- a/view/tpl/admin_hubloc.tpl
+++ b/view/tpl/admin_hubloc.tpl
@@ -1,9 +1,6 @@
<div class="generic-content-wrapper" id='adminpage'>
<h1>{{$title}} - {{$page}}</h1>
- <form action="{{$baseurl}}/admin/hubloc" method="post">
- <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
<table id='server'>
<thead>
<tr>
@@ -14,6 +11,14 @@
{{foreach $hubloc as $hub}}<tr>
<td>{{$hub.hubloc_id}}</td><td>{{$hub.hubloc_addr}}</td><td>{{$hub.hubloc_host}}</td><td>{{$hub.hubloc_status}}</td>
+ <td>
+ <form action="{{$baseurl}}/admin/hubloc" method="post">
+ <input type="hidden" name="hublocid" value="{{$hub.hubloc_id}}">
+ <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
+ <input type='hidden' name='url' value='{{$hub.hubloc_host}}'>
+ <input type="submit" name="check" value="check" >
+ <input type="submit" name="repair" value="repair" ></td>
+ </form>
</tr>{{/foreach}}
</tbody>
</table>
diff --git a/view/tpl/admin_site.tpl b/view/tpl/admin_site.tpl
index b0f9d4a74..9b90fb4b0 100755
--- a/view/tpl/admin_site.tpl
+++ b/view/tpl/admin_site.tpl
@@ -42,6 +42,7 @@
{{include file="field_input.tpl" field=$sitename}}
{{include file="field_textarea.tpl" field=$banner}}
+ {{include file="field_textarea.tpl" field=$admininfo}}
{{include file="field_select.tpl" field=$language}}
{{include file="field_select.tpl" field=$theme}}
{{include file="field_select.tpl" field=$theme_mobile}}
diff --git a/view/tpl/admin_users.tpl b/view/tpl/admin_users.tpl
index 3549dc5c2..65fffd17c 100755
--- a/view/tpl/admin_users.tpl
+++ b/view/tpl/admin_users.tpl
@@ -29,9 +29,8 @@
<tbody>
{{foreach $pending as $u}}
<tr>
- <td class="created">{{$u.created}}</td>
- <td class="name">{{$u.name}}</td>
- <td class="email">{{$u.email}}</td>
+ <td class="created">{{$u.account_created}}</td>
+ <td class="email">{{$u.account_email}}</td>
<td class="checkbox"><input type="checkbox" class="pending_ckbx" id="id_pending_{{$u.hash}}" name="pending[]" value="{{$u.hash}}" /></td>
<td class="tools">
<a href="{{$baseurl}}/regmod/allow/{{$u.hash}}" title='{{$approve}}'><i class='icon-thumbs-up-alt admin-icons'></i></a>
diff --git a/view/tpl/attach_edit.tpl b/view/tpl/attach_edit.tpl
new file mode 100644
index 000000000..77f32b5bc
--- /dev/null
+++ b/view/tpl/attach_edit.tpl
@@ -0,0 +1,39 @@
+
+<h1>{{$header}}</h1>
+
+<h2>{{$file.filename}}</h2>
+
+
+<div id="attach-edit-backlink"><a href="filestorage/{{$channelnick}}">{{$backlink}}</a></div>
+
+
+<form action="filestorage/{{$channelnick}}/{{$file.id}}/edit" method="post" >
+
+<input type="hidden" name="channelnick" value="{{$channelnick}}" />
+<input type="hidden" name="filehash" value="{{$file.hash}}" />
+<input type="hidden" name="uid" value="{{$uid}}" />
+<input type="hidden" name="fileid" value="{{$file.id}}" />
+
+
+{{if $isadir}}
+<div id="attach-edit-recurse" >
+ <label id="attach-edit-recurse-text" for="attach-recurse-input" >{{$recurse}}</label>
+ <input id="attach-recurse-input" type="checkbox" name="recurse" value="1" />
+</div>
+{{else}}
+<div class="cut-paste-desc">{{$cpdesc}}</div>
+<input type="text" id="cutpasteinput" name="cutpastelink" value="[attachment]{{$file.hash}},{{$file.revision}}[/attachment]" onclick="this.select();" /><br />
+{{/if}}
+
+<div class="cut-paste-desc">{{$cpldesc}}</div>
+<input type="text" id="linkpasteinput" name="cutpasteextlink" value="{{$cloudpath}}" onclick="this.select();"/><br />
+
+<div id="attach-edit-perms" >
+{{$aclselect}}
+</div>
+
+<div class="clear"></div>
+<input id="attach-edit-submit" type="submit" name="submit" value="{{$submit}}" />
+</form>
+
+
diff --git a/view/tpl/build_query.tpl b/view/tpl/build_query.tpl
index 53a8c0f6b..98a1c7846 100755
--- a/view/tpl/build_query.tpl
+++ b/view/tpl/build_query.tpl
@@ -15,6 +15,7 @@
var bParam_new = {{$nouveau}};
var bParam_page = {{$page}};
var bParam_wall = {{$wall}};
+ var bParam_list = {{$list}};
var bParam_search = "{{$search}}";
var bParam_order = "{{$order}}";
@@ -38,6 +39,7 @@
if(bParam_spam != 0) bCmd = bCmd + "&spam=" + bParam_spam;
if(bParam_new != 0) bCmd = bCmd + "&new=" + bParam_new;
if(bParam_wall != 0) bCmd = bCmd + "&wall=" + bParam_wall;
+ if(bParam_list != 0) bCmd = bCmd + "&list=" + bParam_list;
if(bParam_search != "") bCmd = bCmd + "&search=" + bParam_search;
if(bParam_order != "") bCmd = bCmd + "&order=" + bParam_order;
if(bParam_file != "") bCmd = bCmd + "&file=" + bParam_file;
diff --git a/view/tpl/channel.tpl b/view/tpl/channel.tpl
index d6462d1e4..1ed2fbd2c 100755
--- a/view/tpl/channel.tpl
+++ b/view/tpl/channel.tpl
@@ -1,9 +1,9 @@
<div class="channel-selection">
{{if $channel.default_links}}
{{if $channel.default}}
-<div class="channel-selection-default default">{{$msg_default}}</div>
+<div class="channel-selection-default default"><i class="icon-check"></i> {{$msg_default}}</div>
{{else}}
-<div class="channel-selection-default"><a href="manage/{{$channel.channel_id}}/default">{{$msg_make_default}}</a></div>
+<div class="channel-selection-default"><a href="manage/{{$channel.channel_id}}/default"><i class="icon-check-empty" title="{{$msg_make_default}}"></i></a></div>
{{/if}}
{{/if}}
<a href="{{$channel.link}}" class="channel-selection-photo-link" title="{{$channel.channel_name}}"><img class="channel-photo" src="{{$channel.xchan_photo_m}}" alt="{{$channel.channel_name}}" /></a>
diff --git a/view/tpl/channels.tpl b/view/tpl/channels.tpl
index af6b36b1d..2c31cb498 100755
--- a/view/tpl/channels.tpl
+++ b/view/tpl/channels.tpl
@@ -6,6 +6,7 @@
<a class="channels-links" href="{{$l.0}}" title="{{$l.1}}">{{$l.2}}</a>
{{/foreach}}
{{/if}}
+<div class="channels-break"></div>
{{if $channel_usage_message}}
<div id="channel-usage-message" class="usage-message">
@@ -16,10 +17,10 @@
<div id="selected-channel">
<div id="channels-selected">{{$msg_selected}}</div>
{{include file="channel.tpl" channel=$selected}}
-<div class="channels-end selected"></div>
</div>
+<div class="channels-end selected"></div>
{{/if}}
-
+<br />
<div id="channels-desc" class="descriptive-text">{{$desc}}</div>
<div id="all-channels">
diff --git a/view/tpl/chanview.tpl b/view/tpl/chanview.tpl
index 4df327bf9..a43ea1b5d 100755
--- a/view/tpl/chanview.tpl
+++ b/view/tpl/chanview.tpl
@@ -1,2 +1,2 @@
-<div id="chanview-iframe-border" class="fakelink" onclick="chanviewFull(); return true;" title="{{$full}}" >&#x2610;</div>
+<div id="chanview-iframe-border" class="fakelink" onclick="chanviewFull(); return true;" title="{{$full}}" ><i class="icon-fullscreen"></i></div>
<iframe id="remote-channel" width="100%" src="{{$url}}" onload="resize_iframe()"></iframe>
diff --git a/view/tpl/chat.tpl b/view/tpl/chat.tpl
new file mode 100644
index 000000000..acb7e5bef
--- /dev/null
+++ b/view/tpl/chat.tpl
@@ -0,0 +1,117 @@
+<h1>{{$room_name}}</h1>
+<div id="chatContainer">
+
+ <div id="chatTopBar">
+ <div id="chatLineHolder"></div>
+ </div>
+
+ <div id="chatUsers"></div>
+
+ <div class="clear"></div>
+ <div id="chatBottomBar">
+ <div class="tip"></div>
+
+ <form id="chat-form" method="post" action="#">
+ <input type="hidden" name="room_id" value="{{$room_id}}" />
+ <textarea id="chatText" name="chat_text" rows=3 cols=80></textarea><br />
+ <input type="submit" name="submit" value="{{$submit}}" />
+ </form>
+
+ <a href="{{$baseurl}}/chat/{{$nickname}}/{{$room_id}}/leave">{{$leave}}</a> | <a href="{{$baseurl}}/chatsvc?f=&room_id={{$room_id}}&status=away">{{$away}}</a> | <a href="{{$baseurl}}/chatsvc?f=&room_id={{$room_id}}&status=online">{{$online}}</a>{{if $bookmark_link}} | <a href="{{$bookmark_link}}" target="_blank" >{{$bookmark}}</a>{{/if}}
+
+ </div>
+
+</div>
+
+<script>
+var room_id = {{$room_id}};
+var last_chat = 0;
+var chat_timer = null;
+
+$(document).ready(function() {
+ chat_timer = setTimeout(load_chats,300);
+
+});
+
+
+$('#chat-form').submit(function(ev) {
+ $('body').css('cursor','wait');
+ $.post("chatsvc", $('#chat-form').serialize(),function(data) {
+ if(chat_timer) clearTimeout(chat_timer);
+ $('#chatText').val('');
+ load_chats();
+ $('body').css('cursor','auto');
+ },'json');
+ ev.preventDefault();
+});
+
+function load_chats() {
+
+ $.get("chatsvc?f=&room_id=" + room_id + '&last=' + last_chat + ((stopped) ? '&stopped=1' : ''),function(data) {
+ if(data.success && (! stopped)) {
+ update_inroom(data.inroom);
+ update_chats(data.chats);
+ }
+ });
+
+ chat_timer = setTimeout(load_chats,10000);
+
+}
+
+function update_inroom(inroom) {
+ var html = document.createElement('div');
+ var count = inroom.length;
+ $.each( inroom, function(index, item) {
+ var newNode = document.createElement('div');
+ $(newNode).html('<img style="height: 32px; width: 32px;" src="' + item.img + '" alt="' + item.name + '" /> ' + item.status + '<br />' + item.name + '<br/>');
+ html.appendChild(newNode);
+ });
+ $('#chatUsers').html(html);
+}
+
+function update_chats(chats) {
+
+ var count = chats.length;
+ $.each( chats, function(index, item) {
+ last_chat = item.id;
+ var newNode = document.createElement('div');
+ newNode.setAttribute('class', 'chat-item');
+ $(newNode).html('<img class="chat-item-photo" src="' + item.img + '" alt="' + item.name + '" /><div class="chat-body"><span class="chat-item-name">' + item.name + ' </span><span class="autotime chat-item-time" title="' + item.isotime + '">' + item.localtime + '</span><br /><span class="chat-item-text">' + item.text + '</span></div><div class="chat-item-end"></div>');
+ $('#chatLineHolder').append(newNode);
+ $(".autotime").timeago();
+
+ });
+ var elem = document.getElementById('chatTopBar');
+ elem.scrollTop = elem.scrollHeight;
+
+}
+
+</script>
+<script>
+function isMobile() {
+if( navigator.userAgent.match(/Android/i)
+ || navigator.userAgent.match(/webOS/i)
+ || navigator.userAgent.match(/iPhone/i)
+ || navigator.userAgent.match(/iPad/i)
+ || navigator.userAgent.match(/iPod/i)
+ || navigator.userAgent.match(/BlackBerry/i)
+ || navigator.userAgent.match(/Windows Phone/i)
+ ){
+ return true;
+ }
+ else {
+ return false;
+ }
+}
+$(function(){
+
+ $('#chatText').keypress(function(e){
+ if (e.keyCode == 13 && e.shiftKey||isMobile()) {
+ }
+ else if (e.keyCode == 13) {
+ e.preventDefault();
+ $(this).parent('form').trigger('submit');
+ }
+ });
+});
+</script>
diff --git a/view/tpl/chatroom_new.tpl b/view/tpl/chatroom_new.tpl
new file mode 100644
index 000000000..86eadb132
--- /dev/null
+++ b/view/tpl/chatroom_new.tpl
@@ -0,0 +1,12 @@
+<h1>{{$header}}</h1>
+
+<form action="chat" method="post" >
+{{include file="field_input.tpl" field=$name}}
+<br />
+<br />
+{{$acl}}
+<div class="clear"></div>
+<input type="submit" name="submit" value="{{$submit}}" />
+</form>
+
+
diff --git a/view/tpl/chatroomlist.tpl b/view/tpl/chatroomlist.tpl
new file mode 100644
index 000000000..c26ba0c33
--- /dev/null
+++ b/view/tpl/chatroomlist.tpl
@@ -0,0 +1,11 @@
+<div class="widget">
+<h3>{{$header}}</h3>
+{{if $items}}
+<table>
+{{foreach $items as $item}}
+<tr><td align="left"><a href="{{$baseurl}}/chat/{{$nickname}}/{{$item.cr_id}}">{{$item.cr_name}}</a></td><td align="right">{{$item.cr_inroom}}</td></tr>
+{{/foreach}}
+</table>
+{{/if}}
+</div>
+
diff --git a/view/tpl/chatrooms.tpl b/view/tpl/chatrooms.tpl
new file mode 100644
index 000000000..c3dae6627
--- /dev/null
+++ b/view/tpl/chatrooms.tpl
@@ -0,0 +1,10 @@
+<h2>{{$header}}</h2>
+
+{{if $is_owner}}
+<p>
+<a href="{{$baseurl}}/chat/{{$nickname}}/new">{{$newroom}}</a>
+</p>
+{{/if}}
+
+{{$rooms}}
+
diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl
index fb36f5dca..869692bfa 100755
--- a/view/tpl/conv_item.tpl
+++ b/view/tpl/conv_item.tpl
@@ -39,7 +39,7 @@
<div class="wall-item-author">
<a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>{{if $item.owner_url}} {{$item.via}} <a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a>{{/if}}<br />
- <div class="wall-item-ago" id="wall-item-ago-{{$item.id}}">{{if $item.verified}}<i class="icon-ok" title="{{$item.verified}}"></i>&nbsp;{{/if}}<span class="autotime" title="{{$item.isotime}}">{{$item.localtime}}{{if $item.editedtime}} {{$item.editedtime}}{{/if}}</span>{{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}}</div>
+ <div class="wall-item-ago" id="wall-item-ago-{{$item.id}}">{{if $item.verified}}<i class="icon-ok" title="{{$item.verified}}"></i>&nbsp;{{/if}}<span class="autotime" title="{{$item.isotime}}">{{$item.localtime}}{{if $item.editedtime}} {{$item.editedtime}}{{/if}}{{if $item.expiretime}} {{$item.expiretime}}{{/if}}</span>{{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}}</div>
</div>
<div class="wall-item-content" id="wall-item-content-{{$item.id}}" >
<div class="wall-item-title" id="wall-item-title-{{$item.id}}">{{$item.title}}</div>
@@ -72,10 +72,10 @@
<i class="icon-retweet item-tool" title="{{$item.share.0}}" onclick="jotShare({{$item.id}}); return false"></i>
{{/if}}
{{if $item.plink}}
- <i class="icon-external-link item-tool" onclick="window.location.href='{{$item.plink.href}}'; return false;" title="{{$item.plink.title}}"></i>
+ <a href="{{$item.plink.href}}" title="{{$item.plink.title}}" ><i class="icon-external-link item-tool"></i></a>
{{/if}}
{{if $item.edpost}}
- <i class="editpost icon-pencil item-tool" onclick="window.location.href='{{$item.edpost.0}}'; return false;" title="{{$item.edpost.1}}"></i>
+ <a href="{{$item.edpost.0}}" title="{{$item.edpost.1}}"><i class="editpost icon-pencil item-tool"></i></a>
{{/if}}
{{if $item.star}}
<i id="starred-{{$item.id}}" onclick="dostar({{$item.id}}); return false;" class="star-item item-tool {{$item.star.isstarred}}" title="{{$item.star.toggle}}"></i>
@@ -85,6 +85,9 @@
{{/if}}
{{if $item.filer}}
<i id="filer-{{$item.id}}" onclick="itemFiler({{$item.id}}); return false;" class="filer-item icon-folder-open item-tool" title="{{$item.filer}}"></i>
+ {{/if}}
+ {{if $item.bookmark}}
+ <i id="bookmarker-{{$item.id}}" onclick="itemBookmark({{$item.id}}); return false;" class="bookmark-item icon-bookmark item-tool" title="{{$item.bookmark}}"></i>
{{/if}}
<div id="like-rotator-{{$item.id}}" class="like-rotator"></div>
diff --git a/view/tpl/design_tools.tpl b/view/tpl/design_tools.tpl
index eb082dc37..80a538231 100644
--- a/view/tpl/design_tools.tpl
+++ b/view/tpl/design_tools.tpl
@@ -1,7 +1,9 @@
<div id="design-tools" class="widget design-tools">
<h3>{{$title}}</h3>
+<ul>
<li><a href="blocks/{{$who}}">{{$blocks}}</a></li>
<li><a href="menu">{{$menus}}</a></li>
<li><a href="layouts/{{$who}}">{{$layout}}</a></li>
<li><a href="webpages/{{$who}}">{{$pages}}</a></li>
+</ul>
</div>
diff --git a/view/tpl/direntry.tpl b/view/tpl/direntry.tpl
index 35bbbe0fd..e40504c8f 100755
--- a/view/tpl/direntry.tpl
+++ b/view/tpl/direntry.tpl
@@ -7,7 +7,7 @@
</div>
</div>
-<div class="contact-name" id="directory-name-{{$entry.id}}">{{$entry.name}}</div>
+<div class="contact-name" id="directory-name-{{$entry.id}}" ><span onclick="dirdetails('{{$entry.hash}}');" class="fakelink" >{{$entry.name}}</span></div>
{{if $entry.connect}}
<div class="directory-connect"><a href="{{$entry.connect}}">{{$entry.conn_label}}</a></div>
{{/if}}
diff --git a/view/tpl/direntry_large.tpl b/view/tpl/direntry_large.tpl
new file mode 100755
index 000000000..f00448175
--- /dev/null
+++ b/view/tpl/direntry_large.tpl
@@ -0,0 +1,43 @@
+<div class="directory-popup-item lframe" id="directory-item-{{$id}}" >
+<div class="generic-content-wrapper">
+
+<div class="contact-photo-wrapper" id="directory-photo-wrapper-{{$id}}" >
+ <div class="contact-photo dirpopup" id="directory-photo-{{$id}}" >
+ <a href="{{$profile_link}}" class="directory-profile-link" id="directory-profile-link-{{$id}}" ><img class="directory-photo-img" style="height:175px; width:175px;" src="{{$photo}}" alt="{{$alttext}}" title="{{$alttext}}" /></a>
+ </div>
+ <div class="contact-photo dirpopup" id="directory-qr-{{$id}}" >
+ <img class="directory-photo-img" style="height:175px; width:175px;" src="photo/qr?f=&qr={{$qrlink}}" alt="QR" title="{{$qrlink}}" />
+ </div>
+</div>
+
+<div class="clear"></div>
+
+
+<div class="contact-name" id="directory-name-{{$id}}" >{{$name}}{{if $online}} <i class="icon-asterisk online-now" title="{{$online}}"></i>{{/if}}</div>
+{{if $connect}}
+<div class="directory-connect"><a href="{{$connect}}">{{$conn_label}}</a></div>
+{{/if}}
+
+<div class="contact-webbie">{{$address}}</div>
+
+<div class="contact-details">{{$details}}</div>
+{{if $marital}}
+<div class="directory-marital">{{$marital}} </div>
+{{/if}}
+{{if $sexual}}
+<div class="directory-sexual">{{$sexual}} </div>
+{{/if}}
+{{if $homepage}}
+<div class="directory-homepage">{{$homepage}} </div>
+{{/if}}
+{{if $hometown}}
+<div class="directory-hometown">{{$hometown}} </div>
+{{/if}}
+{{if $about}}
+<div class="directory-about">{{$about}} </div>
+{{/if}}
+{{if $kw}}
+<div class="directory-keywords">{{$kw}} {{$keywords}}</div>
+{{/if}}
+</div>
+</div>
diff --git a/view/tpl/field_combobox.tpl b/view/tpl/field_combobox.tpl
index c4356e1cd..1f9218954 100755
--- a/view/tpl/field_combobox.tpl
+++ b/view/tpl/field_combobox.tpl
@@ -1,6 +1,6 @@
<div class='field combobox'>
<label for='id_{{$field.0}}' id='id_{{$field.0}}_label'>{{$field.1}}</label>
- {{* html5 don't work on Chrome, Safari and IE9
+ {{* html5 don't work on Chrome, Safari and IE9 see https://github.com/thgreasi/datalist-polyfill
<input id="id_{{$field.0}}" type="text" list="data_{{$field.0}}" >
<datalist id="data_{{$field.0}}" >
{{foreach $field.4 as $opt=>$val}}<option value="{{$val}}">{{/foreach}}
diff --git a/view/tpl/field_select_disabled.tpl b/view/tpl/field_select_disabled.tpl
new file mode 100644
index 000000000..f0090cf98
--- /dev/null
+++ b/view/tpl/field_select_disabled.tpl
@@ -0,0 +1,7 @@
+ <div class='field select'>
+ <label style="font-weight: normal;" for='id_{{$field.0}}'>{{$field.1}}</label>
+ <select disabled="true" name='{{$field.0}}' id='id_{{$field.0}}'>
+ {{foreach $field.4 as $opt=>$val}}<option value="{{$opt}}" {{if $opt==$field.2}}selected="selected"{{/if}}>{{$val}}</option>{{/foreach}}
+ </select>
+ <span class='field_help'>{{$field.3}}</span>
+ </div>
diff --git a/view/tpl/filestorage.tpl b/view/tpl/filestorage.tpl
index 995b52cc8..1995b95e1 100644
--- a/view/tpl/filestorage.tpl
+++ b/view/tpl/filestorage.tpl
@@ -2,15 +2,16 @@
<div class="generic-content-wrapper">
{{if $limit}}{{$limitlabel}}{{$limit}}{{/if}} {{if $used}} {{$usedlabel}}{{$used}}{{/if}}
-
+ <br />
+ <br />
{{foreach $files as $key => $items}}
{{foreach $items as $item}}
<div class="files-list-item">
- <a href="attach/{{$item.download}}">{{$download}}</a> |
- <a href="{{$baseurl}}/{{$item.id}}/delete">{{$delete}}
- <a href="page/{{$channel}}/{{$item.title}}">{{$title}}</a> {{$item.title}} |
- {{$item.size}} bytes
+ <a href="{{$baseurl}}/{{$item.id}}/edit" title="{{$edit}}"><i class="icon-pencil"></i></a>&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="{{$baseurl}}/{{$item.id}}/delete" title="{{$delete}}"><i class="icon-remove drop-icons"></i></a>&nbsp;&nbsp;&nbsp;&nbsp;
+ {{if ! $item.dir}}<a href="attach/{{$item.download}}">{{/if}}{{$item.title}}{{if ! $item.dir}}</a>{{/if}}
+ {{if ! $item.dir}} | {{$item.size}} bytes{{else}}{{$directory}}{{/if}}
</div>
{{/foreach}}
diff --git a/view/tpl/head.tpl b/view/tpl/head.tpl
index eb4c6c2ad..c676cd773 100755
--- a/view/tpl/head.tpl
+++ b/view/tpl/head.tpl
@@ -1,5 +1,6 @@
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<base href="{{$baseurl}}/" />
+<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="generator" content="{{$generator}}" />
<!--[if IE]>
diff --git a/view/tpl/item_attach.tpl b/view/tpl/item_attach.tpl
index 25c127a15..7dc8dfd59 100644
--- a/view/tpl/item_attach.tpl
+++ b/view/tpl/item_attach.tpl
@@ -1,6 +1,6 @@
+<div class="clear"></div>
<div class="body-attach">
{{foreach $attaches as $a}}
<a href="{{$a.url}}" title="{{$a.title}}" class="attachlink" ><i class="icon-paper-clip attach-icons attach-clip"></i><i class="{{$a.icon}} attach-icons"></i></a>
{{/foreach}}
-<div class="clear"></div>
</div>
diff --git a/view/tpl/jot-header.tpl b/view/tpl/jot-header.tpl
index 1ceca04c6..80421d552 100755
--- a/view/tpl/jot-header.tpl
+++ b/view/tpl/jot-header.tpl
@@ -103,7 +103,7 @@ function enableOnUser(){
}
</script>
-<script type="text/javascript" src="{{$baseurl}}/js/ajaxupload.js" ></script>
+<script type="text/javascript" src="{{$baseurl}}/view/js/ajaxupload.js" ></script>
<script>
var ispublic = '{{$ispublic}}';
@@ -185,7 +185,6 @@ function enableOnUser(){
}
}
-
function jotGetLocation() {
reply = prompt("{{$whereareu}}", $('#jot-location').val());
if(reply && reply.length) {
@@ -194,10 +193,17 @@ function enableOnUser(){
}
function jotGetExpiry() {
- reply = prompt("{{$expirewhen}}", $('#jot-expire').val());
- if(reply && reply.length) {
+ //reply = prompt("{{$expirewhen}}", $('#jot-expire').val());
+ $('#expiryModal').modal();
+ $('#expiry-modal-OKButton').on('click', function() {
+ reply=$('#expiration-date').val();
+ if(reply && reply.length) {
$('#jot-expire').val(reply);
+ $('#expiryModal').modal('hide');
}
+})
+
+
}
function jotShare(id) {
@@ -288,6 +294,13 @@ function enableOnUser(){
}
+ function itemBookmark(id) {
+ $.get('{{$baseurl}}/bookmarks?f=&item=' + id);
+ if(timer) clearTimeout(timer);
+ timer = setTimeout(NavUpdate,1000);
+ }
+
+
function jotClearLocation() {
$('#jot-coord').val('');
$('#profile-nolocation-wrapper').hide();
@@ -299,3 +312,20 @@ function enableOnUser(){
</script>
+<script>
+$( document ).on( "click", ".wall-item-delete-link,.page-delete-link,.layout-delete-link,.block-delete-link", function(e) {
+ var link = $(this).attr("href"); // "get" the intended link in a var
+
+ if (typeof(eval($.fn.modal)) === 'function'){
+ e.preventDefault();
+ bootbox.confirm("<h4>{{$confirmdelete}}</h4>",function(result) {
+ if (result) {
+ document.location.href = link;}
+ });}
+ else {
+ return confirm("{{$confirmdelete}}");
+ }
+ });
+</script>
+
+
diff --git a/view/tpl/jot.tpl b/view/tpl/jot.tpl
index 666fae9cd..e1e1e3080 100755
--- a/view/tpl/jot.tpl
+++ b/view/tpl/jot.tpl
@@ -12,7 +12,6 @@
<input type="hidden" name="post_id" value="{{$post_id}}" />
<input type="hidden" name="webpage" value="{{$webpage}}" />
<input type="hidden" name="preview" id="jot-preview" value="0" />
-
{{$mimeselect}}
{{$layoutselect}}
@@ -71,7 +70,7 @@
</div>
{{/if}}
- {{if $preview}}<span onclick="preview_post();" id="jot-preview-link" class="fakelink"><i class="icon-eye-open jot-icons" title="{{$preview}}"></i></span>{{/if}}
+ {{if $preview}}<span onclick="preview_post();" id="jot-preview-link"><i class="icon-eye-open jot-icons" title="{{$preview}}"></i></span>{{/if}}
<div id="profile-jot-perms-end"></div>
@@ -90,9 +89,49 @@
{{$jotnets}}
</div>
</div>
+<!-- Modal for item expiry-->
+<div class="modal fade" id="expiryModal" tabindex="-1" role="dialog" aria-labelledby="expiryModalLabel" aria-hidden="true">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+ <h4 class="modal-title" id="expiryModalLabel">{{$expires}}</h4>
+ </div>
+ <!-- <div class="modal-body"> -->
+ <div class="modal-body form-group" style="width:90%">
+ <div class="input-group input-group-sm date" id="datetimepicker1">
+ <span class="input-group-addon"><!-- <span class="glyphicon glyphicon-calendar"></span> -->
+ <span class="icon-calendar"></span>
+ </span>
+ <input id="expiration-date" type='text' class="form-control" data-format="YYYY-MM-DD HH:mm" size="20"/>
+ </div>
+ </div>
+ <!-- </div> -->
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal">{{$expiryModalCANCEL}}</button>
+ <button id="expiry-modal-OKButton" type="button" class="btn btn-primary">{{$expiryModalOK}}</button>
+ </div>
+ </div><!-- /.modal-content -->
+ </div><!-- /.modal-dialog -->
+</div><!-- /.modal -->
+<script type="text/javascript">
+ $(function() {
+ $('#datetimepicker1').datetimepicker({
+ language: 'us',
+ icons: {
+ time: "icon-time",
+ date: "icon-calendar",
+ up: "icon-arrow-up",
+ down: "icon-arrow-down"
+ }
+ });
+ });
+</script>
+</div>
+
+
-</div>
<div id="profile-jot-end"></div>
</form>
diff --git a/view/tpl/js_strings.tpl b/view/tpl/js_strings.tpl
index 144ecb17c..fe5228ee9 100755
--- a/view/tpl/js_strings.tpl
+++ b/view/tpl/js_strings.tpl
@@ -2,33 +2,35 @@
var aStr = {
- 'delitem' : '{{$delitem}}',
- 'comment' : '{{$comment}}',
- 'showmore' : '{{$showmore}}',
- 'showfewer' : '{{$showfewer}}',
- 'pwshort' : '{{$pwshort}}',
- 'pwnomatch' : '{{$pwnomatch}}',
- 'everybody' : '{{$everybody}}',
- 'passphrase' : '{{$passphrase}}',
- 'passhint' : '{{$passhint}}',
+ 'delitem' : "{{$delitem}}",
+ 'comment' : "{{$comment}}",
+ 'showmore' : "{{$showmore}}",
+ 'showfewer' : "{{$showfewer}}",
+ 'divgrowmore' : "{{$divgrowmore}}",
+ 'divgrowless' : "{{$divgrowless}}",
+ 'pwshort' : "{{$pwshort}}",
+ 'pwnomatch' : "{{$pwnomatch}}",
+ 'everybody' : "{{$everybody}}",
+ 'passphrase' : "{{$passphrase}}",
+ 'passhint' : "{{$passhint}}",
- 't01' : {{$t01}},
- 't02' : {{$t02}},
- 't03' : '{{$t03}}',
- 't04' : '{{$t04}}',
- 't05' : '{{$t05}}',
- 't06' : '{{$t06}}',
- 't07' : '{{$t07}}',
- 't08' : '{{$t08}}',
- 't09' : '{{$t09}}',
- 't10' : '{{$t10}}',
- 't11' : '{{$t11}}',
- 't12' : '{{$t12}}',
- 't13' : '{{$t13}}',
- 't14' : '{{$t14}}',
- 't15' : '{{$t15}}',
- 't16' : '{{$t16}}',
- 't17' : '{{$t17}}',
+ 't01' : "{{$t01}}",
+ 't02' : "{{$t02}}",
+ 't03' : "{{$t03}}",
+ 't04' : "{{$t04}}",
+ 't05' : "{{$t05}}",
+ 't06' : "{{$t06}}",
+ 't07' : "{{$t07}}",
+ 't08' : "{{$t08}}",
+ 't09' : "{{$t09}}",
+ 't10' : "{{$t10}}",
+ 't11' : "{{$t11}}",
+ 't12' : "{{$t12}}",
+ 't13' : "{{$t13}}",
+ 't14' : "{{$t14}}",
+ 't15' : "{{$t15}}",
+ 't16' : "{{$t16}}",
+ 't17' : "{{$t17}}",
};
</script>
diff --git a/view/tpl/list_things.tpl b/view/tpl/list_things.tpl
new file mode 100644
index 000000000..fb8935d82
--- /dev/null
+++ b/view/tpl/list_things.tpl
@@ -0,0 +1,13 @@
+{{if $things}}
+{{foreach $things as $key => $items}}
+<b>{{$items.profile}} {{$key}}</b>
+<ul class="profile-thing-list">
+{{foreach $items as $item}}
+<li>{{if $item.img}}<img src="{{$item.img}}" width="100" height="100" alt="{{$item.term}}" />{{/if}}
+<a href="{{$item.url}}" >{{$item.term}}</a>
+</li>
+{{/foreach}}
+</ul>
+<div class="clear"></div>
+{{/foreach}}
+{{/if}}
diff --git a/view/tpl/mail_conv.tpl b/view/tpl/mail_conv.tpl
index 84bdb451a..f794ffc78 100755
--- a/view/tpl/mail_conv.tpl
+++ b/view/tpl/mail_conv.tpl
@@ -8,9 +8,9 @@
<div class="mail-conv-date">{{$mail.date}}</div>
<div class="mail-conv-subject">{{$mail.subject}}</div>
<div class="mail-conv-body">{{$mail.body}}</div>
- <div class="mail-conv-delete-wrapper" id="mail-conv-delete-wrapper-{{$mail.id}}" ><a href="message/drop/{{$mail.id}}" onclick="return confirmDelete();" title="{{$mail.delete}}" id="mail-conv-delete-icon-{{$mail.id}}" class="mail-conv-delete-icon" ><i class="icon-remove mail-icons drop-icons"></i></a></div><div class="mail-conv-delete-end"></div>
+ <div class="mail-conv-delete-wrapper" id="mail-conv-delete-wrapper-{{$mail.id}}" ><a href="mail/drop/{{$mail.id}}" onclick="return confirmDelete();" title="{{$mail.delete}}" id="mail-conv-delete-icon-{{$mail.id}}" class="mail-conv-delete-icon" ><i class="icon-remove mail-icons drop-icons"></i></a></div><div class="mail-conv-delete-end"></div>
{{if $mail.can_recall}}
- <div class="mail-conv-recall-wrapper" id="mail-conv-recall-wrapper-{{$mail.id}}" ><a href="message/recall/{{$mail.id}}" title="{{$mail.recall}}" id="mail-conv-recall-icon-{{$mail.id}}" class="mail-conv-recall-icon" ><i class="icon-undo mail-icons drop-icons"></i></a></div><div class="mail-conv-recall-end"></div>
+ <div class="mail-conv-recall-wrapper" id="mail-conv-recall-wrapper-{{$mail.id}}" ><a href="mail/recall/{{$mail.id}}" title="{{$mail.recall}}" id="mail-conv-recall-icon-{{$mail.id}}" class="mail-conv-recall-icon" ><i class="icon-undo mail-icons drop-icons"></i></a></div><div class="mail-conv-recall-end"></div>
{{/if}}
<div class="mail-conv-outside-wrapper-end"></div>
</div>
diff --git a/view/tpl/mail_list.tpl b/view/tpl/mail_list.tpl
index c96827996..e17a206a0 100755
--- a/view/tpl/mail_list.tpl
+++ b/view/tpl/mail_list.tpl
@@ -1,7 +1,7 @@
<div class="generic-content-wrapper" id="mail-list-wrapper">
<a href="{{$from_url}}" class ="mail-list" ><img class="mail-list-sender-photo" src="{{$from_photo}}" alt="{{$from_name}}" /></a>
<span class="mail-list">{{$from_name}}</span>
- <span class="mail-list {{if $seen}}seen{{else}}unseen{{/if}}"><a href="message/{{$id}}" class="mail-link">{{$subject}}</a></span>
+ <span class="mail-list {{if $seen}}seen{{else}}unseen{{/if}}"><a href="mail/{{$id}}" class="mail-link">{{$subject}}</a></span>
<span class="mail-list" title="{{$date}}">{{$date}}</span>
<span class="mail-list mail-list-remove"><a href="message/dropconv/{{$id}}" onclick="return confirmDelete();" title="{{$delete}}" ><i class="icon-remove mail-icons drop-icons"></i></a></span>
<div class="clear">&nbsp;</div>
diff --git a/view/tpl/menuedit.tpl b/view/tpl/menuedit.tpl
index ea9e775e2..1ccfb3d68 100644
--- a/view/tpl/menuedit.tpl
+++ b/view/tpl/menuedit.tpl
@@ -10,10 +10,14 @@
{{if $menu_id}}
<input type="hidden" name="menu_id" value="{{$menu_id}}" />
{{/if}}
+{{if $menu_system}}
+<input type="hidden" name="menu_system" value="{{$menu_system}}" />
+{{/if}}
+
{{include file="field_input.tpl" field=$menu_name}}
{{include file="field_input.tpl" field=$menu_desc}}
-
+{{include file="field_checkbox.tpl" field=$menu_bookmark}}
<div class="menuedit-submit-wrapper" >
<input type="submit" name="submit" class="menuedit-submit" value="{{$submit}}" />
</div>
diff --git a/view/tpl/mitemlist.tpl b/view/tpl/mitemlist.tpl
index 057665d49..421b610f1 100644
--- a/view/tpl/mitemlist.tpl
+++ b/view/tpl/mitemlist.tpl
@@ -5,11 +5,12 @@
<a href="mitem/{{$menu_id}}/new" title="{{$hintnew}}">{{$hintnew}}</a>
<br />
+<br />
{{if $mlist }}
-<ul id="mitemlist">
+<ul id="mitemlist" class="menu-item-list">
{{foreach $mlist as $m }}
-<li><a href="mitem/{{$menu_id}}/{{$m.mitem_id}}" title="{{$hintedit}}">{{$edit}}</a> | <a href="mitem/{{$menu_id}}/{{$m.mitem_id}}/drop" title={{$hintdrop}}>{{$drop}}</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="mitem/{{$menu_id}}/{{$m.mitem_id}}" title="{{$hintcontent}}">{{$m.mitem_desc}}</a> ({{$m.mitem_link}})</li>
+<li><a href="mitem/{{$menu_id}}/{{$m.mitem_id}}" title="{{$hintedit}}"><i class="icon-pencil mitem-edit"></i></a><a href="mitem/{{$menu_id}}/{{$m.mitem_id}}/drop" title={{$hintdrop}}><i class="icon-remove"></i></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="mitem/{{$menu_id}}/{{$m.mitem_id}}" title="{{$hintcontent}}">{{$m.mitem_desc}}</a> ({{$m.mitem_link}})</li>
{{/foreach}}
</ul>
{{/if}}
diff --git a/view/tpl/msg-header.tpl b/view/tpl/msg-header.tpl
index 79f9e23c1..b6cff7c74 100755
--- a/view/tpl/msg-header.tpl
+++ b/view/tpl/msg-header.tpl
@@ -45,7 +45,7 @@ else
</script>
-<script type="text/javascript" src="js/ajaxupload.js" ></script>
+<script type="text/javascript" src="view/js/ajaxupload.js" ></script>
<script>
$(document).ready(function() {
var uploader = new window.AjaxUpload(
diff --git a/view/tpl/nav.tpl b/view/tpl/nav.tpl
index f27afed09..20600ccd7 100755
--- a/view/tpl/nav.tpl
+++ b/view/tpl/nav.tpl
@@ -1,151 +1,184 @@
<header>
- <div id="site-location">{{$sitelocation}}</div>
- <div id="banner">{{$banner}}</div>
+<!-- <div id="site-location">{{$sitelocation}}</div> -->
+ <div id="banner" class="hidden-sm hidden-xs">{{$banner}}</div>
</header>
-<nav>
- <ul>
- {{if $userinfo}}
- <li id="nav-user-linkmenu" class="nav-menu-icon"><a href="#" rel="#nav-user-menu" title="{{$userinfo.name}}"><img src="{{$userinfo.icon}}" alt="{{$userinfo.name}}"><span class="nav-dropdown-indicator">&#x25BC;</span></a>
- {{if $localuser}}
- <ul id="nav-user-menu" class="menu-popup">
- {{foreach $nav.usermenu as $usermenu}}
- <li><a class="{{$usermenu.2}}" href="{{$usermenu.0}}" title="{{$usermenu.3}}">{{$usermenu.1}}</a></li>
- {{/foreach}}
- {{if $nav.profiles}}<li><a class="{{$nav.profiles.2}}" href="{{$nav.profiles.0}}" title="{{$nav.profiles.3}}">{{$nav.profiles.1}}</a></li>{{/if}}
- {{if $nav.manage}}<li><a class="{{$nav.manage.2}}" href="{{$nav.manage.0}}" title="{{$nav.manage.3}}">{{$nav.manage.1}}</a></li>{{/if}}
- {{if $nav.contacts}}<li><a class="{{$nav.contacts.2}}" href="{{$nav.contacts.0}}" title="{{$nav.contacts.3}}" >{{$nav.contacts.1}}</a></li>{{/if}}
- {{if $nav.settings}}<li><a class="{{$nav.settings.2}}" href="{{$nav.settings.0}}" title="{{$nav.settings.3}}">{{$nav.settings.1}}</a></li>{{/if}}
-
- {{if $nav.admin}}<li><a class="{{$nav.admin.2}}" href="{{$nav.admin.0}}" title="{{$nav.admin.3}}" >{{$nav.admin.1}}</a></li>{{/if}}
-
- {{if $nav.logout}}<li><a class="menu-sep {{$nav.logout.2}}" href="{{$nav.logout.0}}" title="{{$nav.logout.3}}" >{{$nav.logout.1}}</a></li>{{/if}}
-
- </ul>
- {{/if}}
- </li>
- {{/if}}
-
-
- {{if $nav.lock}}
- <li id="nav-rmagic-link" class="nav-menu-icon" >
- <i class="{{if $nav.locked}}icon-lock{{else}}icon-unlock{{/if}} fakelink nav-icon" onclick="window.location.href='{{$nav.lock.0}}'; return false;" title="{{$nav.lock.3}}" ></i>
- </li>
- {{/if}}
-
-
- {{if $nav.network}}
- <li id="nav-network-link" class="nav-menu {{$sel.network}}">
- <a class="{{$nav.network.2}}" href="{{$nav.network.0}}" title="{{$nav.network.3}}" ><i class="icon-th nav-icon"></i></a>
- <span id="net-update" class="nav-notify fakelink" rel="#nav-network-menu"></span>
- <ul id="nav-network-menu" class="menu-popup notify-menus" rel="network">
- <li id="nav-network-see-all"><a href="{{$nav.network.all.0}}">{{$nav.network.all.1}}</a></li>
- <li id="nav-network-mark-all"><a href="#" onclick="markRead('network'); return false;">{{$nav.network.mark.1}}</a></li>
- <li class="empty">{{$emptynotifications}}</li>
- </ul>
- </li>
- {{/if}}
-
- {{if $nav.home}}
- <li id="nav-home-link" class="nav-menu {{$sel.home}}">
- <a class="{{$nav.home.2}}" href="{{$nav.home.0}}" title="{{$nav.home.3}}" ><i class="icon-home nav-icon"></i></a>
- <span id="home-update" class="nav-notify fakelink" rel="#nav-home-menu"></span>
- <ul id="nav-home-menu" class="menu-popup notify-menus" rel="home">
- <li id="nav-home-see-all"><a href="{{$nav.home.all.0}}">{{$nav.home.all.1}}</a></li>
- <li id="nav-home-mark-all"><a href="#" onclick="markRead('home'); return false;">{{$nav.home.mark.1}}</a></li>
- <li class="empty">{{$emptynotifications}}</li>
- </ul>
- </li>
- {{/if}}
-
- {{if $nav.register}}<li id="nav-register-link" class="nav-menu {{$nav.register.2}}"><a href="{{$nav.register.0}}" title="{{$nav.register.3}}" >{{$nav.register.1}}</a><li>{{/if}}
-
-
- {{if $nav.messages}}
- <li id="nav-mail-link" class="nav-menu {{$sel.messages}}">
- <a class="{{$nav.messages.2}}" href="{{$nav.messages.0}}" title="{{$nav.messages.3}}" ><i class="icon-envelope nav-icon"></i></a>
- <span id="mail-update" class="nav-notify fakelink" rel="#nav-messages-menu"></span>
- <ul id="nav-messages-menu" class="menu-popup notify-menus" rel="messages">
- <li id="nav-messages-see-all"><a href="{{$nav.messages.all.0}}">{{$nav.messages.all.1}}</a></li>
- <li id="nav-messages-mark-all"><a href="#" onclick="markRead('messages'); return false;">{{$nav.messages.mark.1}}</a></li>
- <li class="empty">{{$emptynotifications}}</li>
- </ul>
- </li>
- {{/if}}
-
- {{if $nav.all_events}}
- <li id="nav-all_events-link" class="nav-menu {{$sel.all_events}}">
- <a class="{{$nav.all_events.2}}" href="{{$nav.all_events.0}}" title="{{$nav.all_events.3}}" ><i class="icon-calendar nav-icon"></i></a>
- <span id="all_events-update" class="nav-notify fakelink" rel="#nav-all_events-menu"></span>
- <ul id="nav-all_events-menu" class="menu-popup notify-menus" rel="all_events">
- <li id="nav-all_events-see-all"><a href="{{$nav.all_events.all.0}}">{{$nav.all_events.all.1}}</a></li>
- <li id="nav-all_events-mark-all"><a href="#" onclick="markRead('all_events'); return false;">{{$nav.all_events.mark.1}}</a></li>
- <li class="empty">{{$emptynotifications}}</li>
- </ul>
- </li>
- {{/if}}
-
- {{if $nav.intros}}
- <li id="nav-intros-link" class="nav-menu {{$sel.intros}}">
- <a class="{{$nav.intros.2}}" href="{{$nav.intros.0}}" title="{{$nav.intros.3}}" ><i class="icon-user nav-icon"></i></a>
- <span id="intro-update" class="nav-notify fakelink" rel="#nav-intros-menu"></span>
- <ul id="nav-intros-menu" class="menu-popup notify-menus" rel="intros">
- <li id="nav-intros-see-all"><a href="{{$nav.intros.all.0}}">{{$nav.intros.all.1}}</a></li>
- <li class="empty">{{$emptynotifications}}</li>
- </ul>
- </li>
- {{/if}}
+<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+ <div class="container-fluid">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse-1">
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ {{if $userinfo}}
+ <img class="dropdown-toggle fakelink" data-toggle="dropdown" id="avatar" src="{{$userinfo.icon}}" alt="{{$userinfo.name}}"><span class="caret"></span>
+ {{if $localuser}}
+ <ul class="dropdown-menu" role="menu" aria-labelledby="avatar">
+ {{foreach $nav.usermenu as $usermenu}}
+ <li role="presentation"><a href="{{$usermenu.0}}" title="{{$usermenu.3}}" role="menuitem">{{$usermenu.1}}</a></li>
+ {{/foreach}}
+ {{if $nav.profiles}}<li role="presentation"><a href="{{$nav.profiles.0}}" title="{{$nav.profiles.3}}" role="menuitem">{{$nav.profiles.1}}</a></li>{{/if}}
+ {{if $nav.manage}}<li role="presentation"><a href="{{$nav.manage.0}}" title="{{$nav.manage.3}}" role="menuitem">{{$nav.manage.1}}</a></li>{{/if}}
+ {{if $nav.contacts}}<li role="presentation"><a href="{{$nav.contacts.0}}" title="{{$nav.contacts.3}}" role="menuitem">{{$nav.contacts.1}}</a></li>{{/if}}
+ {{if $nav.settings}}<li role="presentation"><a href="{{$nav.settings.0}}" title="{{$nav.settings.3}}" role="menuitem">{{$nav.settings.1}}</a></li>{{/if}}
+ {{if $nav.admin}}<li role="presentation"><a href="{{$nav.admin.0}}" title="{{$nav.admin.3}}" role="menuitem">{{$nav.admin.1}}</a></li>{{/if}}
+ {{if $nav.logout}}
+ <li role="presentation" class="divider"></li>
+ <li role="presentation"><a href="{{$nav.logout.0}}" title="{{$nav.logout.3}}" role="menuitem">{{$nav.logout.1}}</a></li>
+ {{/if}}
+ </ul>
+ {{/if}}
+ {{/if}}
+ </div>
+ <div class="collapse navbar-collapse" id="navbar-collapse-1">
+ <ul class="nav navbar-nav navbar-left">
+ {{if $nav.lock}}
+ <li>
+ <a class="fakelink" title="{{$nav.lock.3}}" onclick="window.location.href='{{$nav.lock.0}}'; return false;"><i class="{{if $nav.locked}}icon-lock{{else}}icon-unlock{{/if}}"></i></a>
+ </li>
+ {{/if}}
+
+ {{if $nav.network}}
+ <li class="{{$sel.network}} hidden-xs">
+ <a href="{{$nav.network.0}}" title="{{$nav.network.3}}" ><i class="icon-th"></i></a>
+ <span class="net-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-network-menu"></span>
+ <ul id="nav-network-menu" role="menu" class="dropdown-menu" rel="network">
+ {{* <li id="nav-network-see-all"><a href="{{$nav.network.all.0}}">{{$nav.network.all.1}}</a></li> *}}
+ <li id="nav-network-mark-all"><a href="#" onclick="markRead('network'); return false;">{{$nav.network.mark.1}}</a></li>
+ <li class="empty">{{$emptynotifications}}</li>
+ </ul>
+ </li>
+ <li class="{{$sel.network}} visible-xs">
+ <a href="{{$nav.network.0}}" title="{{$nav.network.3}}" ><i class="icon-th"></i></a>
+ <span class="net-update badge" rel="#nav-network-menu"></span>
+ </li>
+ {{/if}}
+
+ {{if $nav.home}}
+ <li class="{{$sel.home}} hidden-xs">
+ <a class="{{$nav.home.2}}" href="{{$nav.home.0}}" title="{{$nav.home.3}}" ><i class="icon-home"></i></a>
+ <span class="home-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-home-menu"></span>
+ <ul id="nav-home-menu" class="dropdown-menu" rel="home">
+ {{* <li id="nav-home-see-all"><a href="{{$nav.home.all.0}}">{{$nav.home.all.1}}</a></li> *}}
+ <li id="nav-home-mark-all"><a href="#" onclick="markRead('home'); return false;">{{$nav.home.mark.1}}</a></li>
+ <li class="empty">{{$emptynotifications}}</li>
+ </ul>
+ </li>
+ <li class="{{$sel.home}} visible-xs">
+ <a class="{{$nav.home.2}}" href="{{$nav.home.0}}" title="{{$nav.home.3}}" ><i class="icon-home"></i></a>
+ <span class="home-update badge"rel="#nav-home-menu"></span>
+ </li>
+ {{/if}}
+
+ {{if $nav.register}}<li class="{{$nav.register.2}}"><a href="{{$nav.register.0}}" title="{{$nav.register.3}}" >{{$nav.register.1}}</a><li>{{/if}}
+
+ {{if $nav.messages}}
+ <li class="{{$sel.messages}} hidden-xs">
+ <a class="{{$nav.messages.2}}" href="{{$nav.messages.0}}" title="{{$nav.messages.3}}" ><i class="icon-envelope"></i></a>
+ <span class="mail-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-messages-menu"></span>
+ <ul id="nav-messages-menu" class="dropdown-menu" rel="messages">
+ <li id="nav-messages-see-all"><a href="{{$nav.messages.all.0}}">{{$nav.messages.all.1}}</a></li>
+ <li id="nav-messages-mark-all"><a href="#" onclick="markRead('messages'); return false;">{{$nav.messages.mark.1}}</a></li>
+ <li class="empty">{{$emptynotifications}}</li>
+ </ul>
+ </li>
+ <li class="{{$sel.messages}} visible-xs">
+ <a class="{{$nav.messages.2}}" href="{{$nav.messages.0}}" title="{{$nav.messages.3}}" ><i class="icon-envelope"></i></a>
+ <span class="mail-update badge" rel="#nav-messages-menu"></span>
+ </li>
+ {{/if}}
+
+ {{if $nav.all_events}}
+ <li class="{{$sel.all_events}} hidden-xs">
+ <a class="{{$nav.all_events.2}}" href="{{$nav.all_events.0}}" title="{{$nav.all_events.3}}" ><i class="icon-calendar"></i></a>
+ <span class="all_events-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-all_events-menu"></span>
+ <ul id="nav-all_events-menu" class="dropdown-menu" rel="all_events">
+ <li id="nav-all_events-see-all"><a href="{{$nav.all_events.all.0}}">{{$nav.all_events.all.1}}</a></li>
+ <li id="nav-all_events-mark-all"><a href="#" onclick="markRead('all_events'); return false;">{{$nav.all_events.mark.1}}</a></li>
+ <li class="empty">{{$emptynotifications}}</li>
+ </ul>
+ </li>
+ <li class="{{$sel.all_events}} visible-xs">
+ <a class="{{$nav.all_events.2}}" href="{{$nav.all_events.0}}" title="{{$nav.all_events.3}}" ><i class="icon-calendar"></i></a>
+ <span class="all_events-update badge" rel="#nav-all_events-menu"></span>
+ </li>
+ {{/if}}
+
+ {{if $nav.intros}}
+ <li class="{{$sel.intros}} hidden-xs">
+ <a class="{{$nav.intros.2}}" href="{{$nav.intros.0}}" title="{{$nav.intros.3}}" ><i class="icon-user"></i></a>
+ <span class="intro-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-intros-menu"></span>
+ <ul id="nav-intros-menu" class="dropdown-menu" rel="intros">
+ <li id="nav-intros-see-all"><a href="{{$nav.intros.all.0}}">{{$nav.intros.all.1}}</a></li>
+ <li class="empty">{{$emptynotifications}}</li>
+ </ul>
+ </li>
+ <li class="{{$sel.intros}} visible-xs">
+ <a class="{{$nav.intros.2}}" href="{{$nav.intros.0}}" title="{{$nav.intros.3}}" ><i class="icon-user"></i></a>
+ <span class="intro-update badge" rel="#nav-intros-menu"></span>
+ </li>
+ {{/if}}
- {{if $nav.notifications}}
- <li id="nav-notify-linkmenu" class="nav-menu fakelink {{$sel.notifications}}">
- <a href="{{$nav.notifications.0}}" title="{{$nav.notifications.1}}"><i class="icon-exclamation nav-icon"></i></a>
- <span id="notify-update" class="nav-notify fakelink" rel="#nav-notify-menu"></span>
- <ul id="nav-notify-menu" class="menu-popup notify-menus" rel="notify">
- <li id="nav-notify-see-all"><a href="{{$nav.notifications.all.0}}">{{$nav.notifications.all.1}}</a></li>
- <li id="nav-notify-mark-all"><a href="#" onclick="markRead('notify'); return false;">{{$nav.notifications.mark.1}}</a></li>
- <li class="empty">{{$emptynotifications}}</li>
+ {{if $nav.notifications}}
+ <li class="{{$sel.notifications}} hidden-xs">
+ <a href="{{$nav.notifications.0}}" title="{{$nav.notifications.1}}"><i class="icon-exclamation"></i></a>
+ <span class="notify-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-notify-menu"></span>
+ <ul id="nav-notify-menu" class="dropdown-menu" rel="notify">
+ <li id="nav-notify-see-all"><a href="{{$nav.notifications.all.0}}">{{$nav.notifications.all.1}}</a></li>
+ <li id="nav-notify-mark-all"><a href="#" onclick="markRead('notify'); return false;">{{$nav.notifications.mark.1}}</a></li>
+ <li class="empty">{{$emptynotifications}}</li>
+ </ul>
+ </li>
+ <li class="{{$sel.notifications}} visible-xs">
+ <a href="{{$nav.notifications.0}}" title="{{$nav.notifications.1}}"><i class="icon-exclamation"></i></a>
+ <span class="notify-update badge" rel="#nav-notify-menu"></span>
+ </li>
+ {{/if}}
</ul>
- </li>
- {{/if}}
-
- {{if $nav.login}}<li id="nav-login-link" class="nav-menu {{$nav.login.2}}"><a href="{{$nav.login.0}}" title="{{$nav.login.3}}" >{{$nav.login.1}}</a><li>{{/if}}
- {{if $nav.alogout}}<li id=nav-alogout-link" class="nav-menu {{$nav}}-alogout.2"><a href="{{$nav.alogout.0}}" title="{{$nav.alogout.3}}" >{{$nav.alogout.1}}</a></li>{{/if}}
-
- {{if $nav.directory}}
- <li id="nav-directory-link" class="nav-menu {{$sel.directory}}">
- <a class="{{$nav.directory.2}}" href="{{$nav.directory.0}}" title="{{$nav.directory.3}}"><i class="icon-sitemap nav-icon"></i></a>
- </li>
- {{/if}}
-
- {{if $nav.help}}
- <li id="nav-help-link" class="nav-menu {{$sel.help}}">
- <a class="{{$nav.help.2}}" target="friendika-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}" ><i class="icon-question nav-icon"></i></a>
- </li>
- {{/if}}
-
- {{if $nav.apps}}
- <li id="nav-apps-link" class="nav-menu {{$sel.apps}}">
- <a class=" {{$nav.apps.2}}" href="#" rel="#nav-apps-menu" title="{{$nav.apps.3}}" ><i class="icon-cogs nav-icon"></i></a>
- <ul id="nav-apps-menu" class="menu-popup">
- {{foreach $apps as $ap}}
- <li>{{$ap}}</li>
- {{/foreach}}
+ <ul class="nav navbar-nav navbar-right">
+ <li class="hidden-xs">
+ <form method="get" action="search" role="search">
+ <div id="nav-search-spinner"></div><input class="icon-search" id="nav-search-text" type="text" value="" placeholder="&#xf002;" name="search" title="{{$nav.search.3}}" onclick="this.submit();" />
+ </form>
+ </li>
+ <li class="visible-xs">
+ <a href="/search" title="Search"><i class="icon-search"></i></a>
+ </li>
+
+ {{if $nav.login}}<li class="{{$nav.login.2}}"><a href="{{$nav.login.0}}" title="{{$nav.login.3}}" >{{$nav.login.1}}</a><li>{{/if}}
+
+ {{if $nav.alogout}}<li class="{{$nav}}-alogout.2"><a href="{{$nav.alogout.0}}" title="{{$nav.alogout.3}}" >{{$nav.alogout.1}}</a></li>{{/if}}
+
+ {{if $nav.directory}}
+ <li class="{{$sel.directory}}">
+ <a class="{{$nav.directory.2}}" href="{{$nav.directory.0}}" title="{{$nav.directory.3}}"><i class="icon-sitemap"></i></a>
+ </li>
+ {{/if}}
+
+ {{if $nav.apps}}
+ <li class="{{$sel.apps}} hidden-xs">
+ <a class="{{$nav.apps.2}} dropdown-toggle" data-toggle="dropdown" href="#" rel="#nav-apps-menu" title="{{$nav.apps.3}}" ><i class="icon-cogs"></i></a>
+ <ul class="dropdown-menu">
+ {{foreach $apps as $ap}}
+ <li>{{$ap}}</li>
+ {{/foreach}}
+ </ul>
+ </li>
+ {{/if}}
+
+ {{if $nav.help}}
+ <li class="{{$sel.help}}">
+ <a class="{{$nav.help.2}}" target="friendika-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}" ><i class="icon-question"></i></a>
+ </li>
+ {{/if}}
</ul>
- </li>
- {{/if}}
-
- <li id="nav-searchbar">
- <form method="get" action="search">
- <input class="icon-search" id="nav-search-text" type="text" value="" placeholder="&#xf002;" name="search" title="{{$nav.search.3}}" onclick="this.submit();" />
- </form>
- </li>
- <div id="nav-search-spinner"></div>
-
- </ul>
+ </div>
+ </div>
</nav>
<ul id="nav-notifications-template" style="display:none;" rel="template">
- <li class="{4}"><a href="{0}"><img src="{1}">{2} <span class="notif-when">{3}</span></a></li>
+ <li class="{5}"><a href="{0}" title="{2} {3}"><img src="{1}"><span class='contactname'>{2}</span>{3}<br><span class="notif-when">{4}</span></a></li>
</ul>
{{if $langselector}}<div id="langselector" >{{$langselector}}</div>{{/if}}
diff --git a/view/tpl/notes.tpl b/view/tpl/notes.tpl
index 7300779f4..09932e545 100644
--- a/view/tpl/notes.tpl
+++ b/view/tpl/notes.tpl
@@ -1,13 +1,10 @@
<div class="widget">
<script>
-function notePost() {
- $('#note-rotator').spin('tiny');
- $.post('notes', { 'note_text' : $('#note-text').val() },function(data) { $('#note-rotator').spin(false); });
-}
+$("#note-text").live('input paste',function(e){
+ $.post('notes', { 'note_text' : $('#note-text').val() });
+});
</script>
<h3>{{$banner}}</h3>
<textarea name="note_text" id="note-text">{{$text}}</textarea>
-<input type="submit" name="submit" id="note-save" value="{{$save}}" onclick="notePost(); return true;">
-<div id="note-rotator"></div>
</div>
diff --git a/view/tpl/oembed_video.tpl b/view/tpl/oembed_video.tpl
index 4ad75a82e..b0cfed2e5 100755
--- a/view/tpl/oembed_video.tpl
+++ b/view/tpl/oembed_video.tpl
@@ -1,4 +1,4 @@
-<a href='{{$embedurl}}' onclick='this.innerHTML=Base64.decode("{{$escapedhtml}}"); return false;' style='float:left; margin: 1em; position: relative;'>
- <img width='{{$tw}}' height='{{$th}}' src='{{$turl}}' >
- <div style='position: absolute; top: 0px; left: 0px; width: {{$twpx}}; height: {{$thpx}}; background: url({{$baseurl}}/images/icons/48/play.png) no-repeat center center;'></div>
+<a href="{{$embedurl}}" onclick="this.innerHTML=Base64.decode('{{$escapedhtml}}'); return false;" style="float:left; margin: 1em; position: relative;">
+ <img width="{{$tw}}" height="{{$th}}" src="{{$turl}}" />
+ <div style="position: absolute; top: 0px; left: 0px; width: {{$twpx}}; height: {{$thpx}}; background: url({{$baseurl}}/images/icons/48/play.png) no-repeat center center;"></div>
</a>
diff --git a/view/tpl/page_display.tpl b/view/tpl/page_display.tpl
index d8175bdd2..9b6b182c8 100755
--- a/view/tpl/page_display.tpl
+++ b/view/tpl/page_display.tpl
@@ -2,7 +2,7 @@
<div class="generic-content-wrapper" id="page-content-wrapper" >
<h3 class="page-title">{{$title}}</h3>
- <div class="page-author"><a class=="page-author-link" href="{{$auth_url}}">{{$author}}</a></div>
+ <div class="page-author"><a class=="page-author-link" href="{{$auth_url}}{{if $zid}}?zid={{$zid}}{{/if}}">{{$author}}</a></div>
<div class="page-date">{{$date}}</div>
<div class="page-body">{{$body}}</div>
</div>
diff --git a/view/tpl/peoplefind.tpl b/view/tpl/peoplefind.tpl
index aef341d41..45b3d7d4b 100755
--- a/view/tpl/peoplefind.tpl
+++ b/view/tpl/peoplefind.tpl
@@ -7,8 +7,8 @@
</form>
<br />
{{if $similar}}<a href="match" >{{$similar}}</a><br />{{/if}}
- <a href="suggest" >{{$suggest}}</a><br />
+ {{if $loggedin}}<a href="suggest" >{{$suggest}}</a><br />{{/if}}
<a href="randprof" >{{$random}}</a><br />
- {{if $inv}}<a href="invite" >{{$inv}}</a>{{/if}}
+ {{if $loggedin}}{{if $inv}}<a href="invite" >{{$inv}}</a>{{/if}}{{/if}}
</div>
diff --git a/view/tpl/photo_album.tpl b/view/tpl/photo_album.tpl
index c170d47a3..a63bff78c 100755
--- a/view/tpl/photo_album.tpl
+++ b/view/tpl/photo_album.tpl
@@ -1,4 +1,3 @@
-{{include file="prettyphoto.tpl"}}
<div class="photo-album-image-wrapper{{$twist}}" id="photo-album-image-wrapper-{{$id}}">
<a href="{{$photolink}}" class="photo-album-photo-link" id="photo-album-photo-link-{{$id}}" title="{{$phototitle}}" rel="{{$rel}}">
<img src="{{$imgsrc}}" alt="{{$imgalt}}" title="{{$phototitle}}" class="photo-album-photo lframe resize" id="photo-album-photo-{{$id}}" />
diff --git a/view/tpl/photo_view.tpl b/view/tpl/photo_view.tpl
index cdaae67e4..f5e5bb7b5 100755
--- a/view/tpl/photo_view.tpl
+++ b/view/tpl/photo_view.tpl
@@ -1,6 +1,4 @@
-{{include file="prettyphoto.tpl"}}
-
-<div id="live-display"></div>
+<div id="live-photos"></div>
<h3><a href="{{$album.0}}">{{$album.1}}</a></h3>
<div id="photo-edit-link-wrap">
@@ -11,22 +9,24 @@
</div>
{{if $prevlink}}<div id="photo-prev-link"><a href="{{$prevlink.0}}"><i class="icon-backward photo-icons"></i></div>{{/if}}
-<div id="photo-photo"><a href="{{$photo.href}}" title="{{$photo.title}}" rel="prettyPhoto"><img src="{{$photo.src}}" /></a></div>
+<div id="photo-photo"><a href="{{$photo.href}}" title="{{$photo.title}}" onclick="$.colorbox({href: '{{$photo.href}}'}); return false;" ><img src="{{$photo.src}}" /></a></div>
{{if $nextlink}}<div id="photo-next-link"><a href="{{$nextlink.0}}"><i class="icon-forward photo-icons"></i></a></div>{{/if}}
<div id="photo-photo-end"></div>
<div id="photo-caption">{{$desc}}</div>
{{if $tags}}
-<div id="in-this-photo-text">{{$tags.0}}</div>
-<div id="in-this-photo">{{$tags.1}}</div>
+<div id="in-this-photo-text">{{$tag_hdr}}</div>
+{{foreach $tags as $t}}
+<div id="in-this-photo">{{$t.0}}</div>
+{{if $edit}}<div id="tag-remove"><a href="{{$t.1}}">{{$t.2}}</a></div>{{/if}}
+{{/foreach}}
{{/if}}
-{{if $tags.2}}<div id="tag-remove"><a href="{{$tags.2}}">{{$tags.3}}</a></div>{{/if}}
{{if $edit}}
<div id="photo-edit-edit-wrapper" class="fakelink" onclick="openClose('photo-edit-edit');">{{$edit.edit}}</div>
<div id="photo-edit-edit" style="display: none;">
<form action="photos/{{$edit.nickname}}/{{$edit.resource_id}}" method="post" id="photo_edit_form" >
- <input type="hidden" name="item_id" value="{{$item_id}}" />
+ <input type="hidden" name="item_id" value="{{$edit.item_id}}" />
<label id="photo-edit-albumname-label" for="photo-edit-albumname">{{$edit.newalbum}}</label>
<input id="photo-edit-albumname" type="text" size="32" name="albname" value="{{$edit.album}}" />
@@ -52,19 +52,20 @@
</div>
<div id="photo-edit-rotate-end"></div>
- <div id="photo-edit-perms" class="photo-edit-perms" >
- <a href="#photo-edit-perms-select" id="photo-edit-perms-menu" class="button popupbox" title="{{$edit.permissions}}"/>
- <span id="jot-perms-icon" class="icon {{$edit.lockstate}}" ></span>{{$edit.permissions}}
- </a>
- <div id="photo-edit-perms-menu-end"></div>
-
- <div style="display: none;">
- <div id="photo-edit-perms-select" >
- {{$edit.aclselect}}
+ <div id="settings-default-perms" class="settings-default-perms" >
+ <span id="jot-perms-icon" class="icon {{$edit.lockstate}}" ></span>
+ <a href="#profile-jot-acl-wrapper" id="settings-default-perms-menu" >{{$edit.permissions}}</a>
+ <div id="settings-default-perms-menu-end"></div>
+ <div id="settings-default-perms-select" style="display: none; margin-bottom: 20px" >
+ <div style="display: none;">
+ <div id="profile-jot-acl-wrapper" style="width:auto;height:auto;overflow:auto;">
+ {{$edit.aclselect}}
+ </div>
</div>
</div>
- </div>
- <div id="photo-edit-perms-end"></div>
+ </div>
+ <br/>
+ <div id="settings-default-perms-end"></div>
<input id="photo-edit-submit-button" type="submit" name="submit" value="{{$edit.submit}}" />
<input id="photo-edit-delete-button" type="submit" name="delete" value="{{$edit.delete}}" onclick="return confirmDelete()"; />
diff --git a/view/tpl/prettyphoto.tpl b/view/tpl/prettyphoto.tpl
deleted file mode 100644
index 6d047e620..000000000
--- a/view/tpl/prettyphoto.tpl
+++ /dev/null
@@ -1,6 +0,0 @@
-<script type="text/javascript" charset="utf-8">
- $(document).ready(function(){
- $("a[rel^='prettyPhoto']").prettyPhoto();
- });
-</script>
-
diff --git a/view/tpl/profile_advanced.tpl b/view/tpl/profile_advanced.tpl
index 9f17a0ffa..f25608430 100755
--- a/view/tpl/profile_advanced.tpl
+++ b/view/tpl/profile_advanced.tpl
@@ -111,6 +111,13 @@
</dl>
{{/if}}
+{{if $profile.channels}}
+<dl id="aprofile-channels" class="aprofile">
+ <dt>{{$profile.channels.0}}</dt>
+ <dd>{{$profile.channels.1}}</dd>
+</dl>
+{{/if}}
+
{{if $profile.music}}
<dl id="aprofile-music" class="aprofile">
diff --git a/view/tpl/profile_edit.tpl b/view/tpl/profile_edit.tpl
index 183389b9b..196b3ac6d 100755
--- a/view/tpl/profile_edit.tpl
+++ b/view/tpl/profile_edit.tpl
@@ -108,8 +108,10 @@
<label id="profile-edit-marital-label" for="profile-edit-marital" >{{$lbl_marital}} </label>
{{$marital}}
</div>
+<div class="clear"></div>
<label id="profile-edit-with-label" for="profile-edit-with" > {{$lbl_with}} </label>
<input type="text" size="32" name="with" id="profile-edit-with" title="{{$lbl_ex1}}" value="{{$with}}" />
+<div class="clear"></div>
<label id="profile-edit-howlong-label" for="profile-edit-howlong" > {{$lbl_howlong}} </label>
<input type="text" size="32" name="howlong" id="profile-edit-howlong" title="{{$lbl_howlong}}" value="{{$howlong}}" />
diff --git a/view/tpl/profile_listing_header.tpl b/view/tpl/profile_listing_header.tpl
index b771a1ea2..856d689f1 100755
--- a/view/tpl/profile_listing_header.tpl
+++ b/view/tpl/profile_listing_header.tpl
@@ -2,7 +2,10 @@
<p id="profile-listing-desc" class="button" >
<a href="profile_photo" >{{$chg_photo}}</a>
</p>
-<div id="profile-listing-new-link-wrapper" class="button" >
+<p id="profile-stuff-link" class="button">
+<a href="thing" title="{{$stuff_desc}}">{{$addstuff}}</a>
+</p>
+<p id="profile-listing-new-link-wrapper" class="button" >
<a href="{{$cr_new_link}}" id="profile-listing-new-link" title="{{$cr_new}}" >{{$cr_new}}</a>
</div>
diff --git a/view/tpl/profile_vcard.tpl b/view/tpl/profile_vcard.tpl
index aaee02ab5..10a928e1c 100755
--- a/view/tpl/profile_vcard.tpl
+++ b/view/tpl/profile_vcard.tpl
@@ -2,21 +2,20 @@
{{if $profile.edit}}
<div class="action">
- <a class="profile-edit-side-link" rel="#profiles-menu" title="{{$profile.edit.3}}" href="#" ><i class="icon-pencil vcard-profile-edit-icon" title="{{$profile.edit.1}}" ></i></a>
- <ul id="profiles-menu" class="menu-popup">
+ <a class="profile-edit-side-link dropdown-toggle" data-toggle="dropdown" rel="#profiles-menu" title="{{$profile.edit.3}}" href="#" ><i class="icon-pencil vcard-profile-edit-icon" title="{{$profile.edit.1}}" ></i></a>
+ <ul id="profiles-menu" class="menu-popup dropdown-menu">
{{foreach $profile.menu.entries as $e}}
<li>
<a href="profiles/{{$e.id}}"><img src='{{$e.photo}}'>{{$e.profile_name}}</a>
</li>
{{/foreach}}
<li><a href="profile_photo" >{{$profile.menu.chg_photo}}</a></li>
- <li><a href="profiles/new" id="profile-listing-new-link">{{$profile.menu.cr_new}}</a></li>
-
+ {{if $profile.menu.cr_new}}<li><a href="profiles/new" id="profile-listing-new-link">{{$profile.menu.cr_new}}</a></li>{{/if}}
</ul>
</div>
{{/if}}
- <div class="fn label">{{$profile.name}}</div>
+ <div class="fn label">{{$profile.name}}{{if $profile.online}} <i class="icon-asterisk online-now" title="{{$profile.online}}"></i>{{/if}}</div>
{{if $pdesc}}<div class="title">{{$profile.pdesc}}</div>{{/if}}
<div id="profile-photo-wrapper"><img class="photo" width="175" height="175" src="{{$profile.photo}}?rev={{$profile.picdate}}" alt="{{$profile.name}}"></div>
diff --git a/view/tpl/prv_message.tpl b/view/tpl/prv_message.tpl
index b7654dc2d..3330a338f 100755
--- a/view/tpl/prv_message.tpl
+++ b/view/tpl/prv_message.tpl
@@ -1,7 +1,7 @@
<h3>{{$header}}</h3>
<div id="prvmail-wrapper" >
-<form id="prvmail-form" action="message" method="post" >
+<form id="prvmail-form" action="mail" method="post" >
{{$parent}}
diff --git a/view/tpl/pwdreset.tpl b/view/tpl/pwdreset.tpl
index 3993dec64..a9106343f 100755
--- a/view/tpl/pwdreset.tpl
+++ b/view/tpl/pwdreset.tpl
@@ -6,9 +6,7 @@
<p>
{{$lbl3}}
</p>
-<p>
-{{$newpass}}
-</p>
+<p>{{$newpass}}</p>
<p>
{{$lbl4}} {{$lbl5}}
</p>
diff --git a/view/tpl/rbmark.tpl b/view/tpl/rbmark.tpl
new file mode 100644
index 000000000..bead1de2f
--- /dev/null
+++ b/view/tpl/rbmark.tpl
@@ -0,0 +1,16 @@
+<h3>{{$header}}</h3>
+
+
+<form action="rbmark" method="post" >
+
+<input type="hidden" name="private" value="{{$private}}" />
+<input type="hidden" name="ischat" value="{{$ischat}}" />
+
+{{include file="field_input.tpl" field=$url}}
+{{include file="field_input.tpl" field=$title}}
+{{include file="field_select.tpl" field=$menus}}
+{{include file="field_input.tpl" field=$menu_name}}
+
+<input type="submit" name="submit" value="{{$submit}}" />
+
+</form>
diff --git a/view/tpl/register.tpl b/view/tpl/register.tpl
index 48c1ba525..916a946d3 100755
--- a/view/tpl/register.tpl
+++ b/view/tpl/register.tpl
@@ -2,8 +2,14 @@
<form action="register" method="post" id="register-form">
-{{if $registertext}}
-<div id="register-desc" class="descriptive-paragraph">{{$registertext}}</div>
+
+
+{{if $reg_is}}
+<div id="register-desc" class="descriptive-paragraph">{{$reg_is}}</div>
+{{/if}}
+{{if $registertext}}<div id="register-text" class="descriptive-paragraph">{{$registertext}}</div>
+{{/if}}
+{{if $other_sites}}<div id="register-sites" class="descriptive-paragraph">{{$other_sites}}</div>
{{/if}}
{{if $invitations}}
diff --git a/view/tpl/saved_searches.tpl b/view/tpl/saved_searches.tpl
index bdff72ba1..d0f9e2b0e 100644
--- a/view/tpl/saved_searches.tpl
+++ b/view/tpl/saved_searches.tpl
@@ -5,7 +5,7 @@
<ul id="saved-search-ul">
{{foreach $saved as $search}}
<li id="search-term-{{$search.id}}" class="saved-search-li clear">
- <a title="{{$search.delete}}" onclick="return confirmDelete();" id="drop-saved-search-term-{{$search.id}}" href="{{$search.dellink}}"><i id="dropicon-saved-search-term-{{$search.id}}" class="icon-remove drop-icons iconspacer savedsearchdrop" ></i></a>
+ <a title="{{$search.delete}}" onclick="return confirmDelete();" id="drop-saved-search-term-{{$search.id}}" href="{{$search.dellink}}"><i id="dropicon-saved-search-term-{{$search.id}}" class="icon-remove drop-icons iconspacer" ></i></a>
<a id="saved-search-term-{{$search.id}}" class="savedsearchterm{{if $search.selected}} search-selected{{/if}}" href="{{$search.srchlink}}">{{$search.displayterm}}</a>
</li>
{{/foreach}}
diff --git a/view/tpl/search_item.tpl b/view/tpl/search_item.tpl
index 3018fc747..c5acfa4a4 100755
--- a/view/tpl/search_item.tpl
+++ b/view/tpl/search_item.tpl
@@ -29,13 +29,7 @@
<div class="wall-item-content" id="wall-item-content-{{$item.id}}" >
<div class="wall-item-title" id="wall-item-title-{{$item.id}}">{{$item.title}}</div>
<div class="wall-item-title-end"></div>
- <div class="wall-item-body" id="wall-item-body-{{$item.id}}" >{{$item.body}}
- <div class="body-tag">
- {{foreach $item.tags as $tag}}
- <span class='tag'>{{$tag}}</span>
- {{/foreach}}
- </div>
- </div>
+ <div class="wall-item-body" id="wall-item-body-{{$item.id}}" >{{$item.body}}</div>
</div>
<div class="wall-item-tools" id="wall-item-tools-{{$item.id}}">
<div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-{{$item.id}}" >
diff --git a/view/tpl/settings.tpl b/view/tpl/settings.tpl
index 7b6add231..49dff4822 100755
--- a/view/tpl/settings.tpl
+++ b/view/tpl/settings.tpl
@@ -16,41 +16,61 @@
{{include file="field_checkbox.tpl" field=$adult}}
<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
+<input type="submit" name="submit" class="settings-submit" value="{{$submit}}"{{if !$expert}} onclick="$('select').prop('disabled', false);"{{/if}} />
</div>
<h3 class="settings-heading">{{$h_prv}}</h3>
-<div id="settings-privacy-macros">{{$lbl_pmacro}}</div>
+{{include file="field_checkbox.tpl" field=$hide_presence}}
+
+
+<h3 id="settings-privacy-macros">{{$lbl_pmacro}}</h3>
<ul>
-<li><a href="#" onclick="channel_privacy_macro(3); return false" id="settings_pmacro3">{{$pmacro3}}</a></li>
<li><a href="#" onclick="channel_privacy_macro(2); return false" id="settings_pmacro2">{{$pmacro2}}</a></li>
<li><a href="#" onclick="channel_privacy_macro(1); return false" id="settings_pmacro1">{{$pmacro1}}</a></li>
+<li><a href="#" onclick="channel_privacy_macro(3); return false" id="settings_pmacro3">{{$pmacro3}}</a></li>
<li><a href="#" onclick="channel_privacy_macro(0); return false" id="settings_pmacro0">{{$pmacro0}}</a></li>
</ul>
+<button type="button" class="btn btn-xs btn-warning" data-toggle="collapse" data-target="#settings-permissions-wrapper">{{$lbl_p2macro}}</button>
+
+
+
+<div class="collapse well" id="settings-permissions-wrapper">
+{{if !$expert}}
+ <div class="alert alert-info">{{$hint}}</div>
+{{/if}}
-<div id="settings-permissions-wrapper">
{{foreach $permiss_arr as $permit}}
-{{include file="field_select.tpl" field=$permit}}
+ {{if $expert}}
+ {{include file="field_select.tpl" field=$permit}}
+ {{else}}
+ {{include file="field_select_disabled.tpl" field=$permit}}
+ {{/if}}
{{/foreach}}
-</div>
+{{if $expert}}
+ <div class="settings-submit-wrapper" >
+ <input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
+ </div>
+{{/if}}
-<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
</div>
+<div class="settings-common-perms">
{{$profile_in_dir}}
{{$suggestme}}
+{{include file="field_yesno.tpl" field=$blocktags}}
+
{{include file="field_input.tpl" field=$maxreq}}
{{include file="field_input.tpl" field=$cntunkmail}}
+</div>
<div id="settings-default-perms" class="settings-default-perms" >
<a href="#profile-jot-acl-wrapper" id="settings-default-perms-menu" >{{$permissions}} {{$permdesc}}</a>
@@ -73,7 +93,7 @@
<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
+<input type="submit" name="submit" class="settings-submit" value="{{$submit}}"{{if !$expert}} onclick="$('select').prop('disabled', false);"{{/if}} />
</div>
@@ -104,7 +124,26 @@
</div>
<div class="settings-submit-wrapper" >
-<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
+<input type="submit" name="submit" class="settings-submit" value="{{$submit}}"{{if !$expert}} onclick="$('select').prop('disabled', false);"{{/if}} />
+</div>
+
+
+{{if $menus}}
+<h3 class="settings-heading">{{$lbl_misc}}</h3>
+
+<div id="settings-menu-desc">{{$menu_desc}}</div>
+<div class="settings-channel-menu-div">
+<select name="channel_menu" class="settings-channel-menu-sel">
+{{foreach $menus as $menu }}
+<option value="{{$menu.name}}" {{$menu.selected}} >{{$menu.name}} </option>
+{{/foreach}}
+</select>
+</div>
+<div class="settings-submit-wrapper" >
+<input type="submit" name="submit" class="settings-submit" value="{{$submit}}"{{if !$expert}} onclick="$('select').prop('disabled', false);"{{/if}} />
</div>
+<div id="settings-channel-menu-end"></div>
+{{/if}}
+
</div>
diff --git a/view/tpl/settings_display.tpl b/view/tpl/settings_display.tpl
index ddd3ca56d..a8fb002fb 100755
--- a/view/tpl/settings_display.tpl
+++ b/view/tpl/settings_display.tpl
@@ -9,6 +9,7 @@
{{include file="field_input.tpl" field=$ajaxint}}
{{include file="field_input.tpl" field=$itemspage}}
{{include file="field_checkbox.tpl" field=$nosmile}}
+{{include file="field_checkbox.tpl" field=$chanview_full}}
<div class="settings-submit-wrapper" >
diff --git a/view/tpl/show_thing.tpl b/view/tpl/show_thing.tpl
new file mode 100644
index 000000000..2a8c06076
--- /dev/null
+++ b/view/tpl/show_thing.tpl
@@ -0,0 +1,16 @@
+<h2>{{$header}}</h2>
+{{if $thing}}
+<div class="thing-show">
+{{if $thing.imgurl}}<img src="{{$thing.imgurl}}" width="175" height="175" alt="{{$thing.term}}" />{{/if}}
+<a href="{{$thing.url}}" >{{$thing.term}}</a>
+</div>
+{{if $canedit}}
+<div class="thing-edit-links">
+<a href="thing/edit/{{$thing.term_hash}}" title="{{$edit}}"><i class="icon-pencil thing-edit-icon"></i></a>
+<a href="thing/drop/{{$thing.term_hash}}" onclick="return confirmDelete();" title="{{$delete}}" ><i class="icon-remove drop-icons"></i></a>
+</div>
+<div class="thing-edit-links-end"></div>
+{{/if}}
+
+{{/if}}
+
diff --git a/view/tpl/siteinfo.tpl b/view/tpl/siteinfo.tpl
index f6647110c..d956a7228 100755
--- a/view/tpl/siteinfo.tpl
+++ b/view/tpl/siteinfo.tpl
@@ -2,13 +2,16 @@
<p></p>
<p>{{$description}}</p>
{{if $version}}
-<p>{{$version}}</p>
+<p>{{$version}}{{if $commit}}+{{$commit}}{{/if}}</p>
{{/if}}
<p>{{$web_location}}</p>
<p>{{$visit}}</p>
<p>{{$bug_text}} <a href="{{$bug_link_url}}">{{$bug_link_text}}</a></p>
+<p>{{$adminlabel}}</p>
+<p>{{$admininfo}}</p>
<p>{{$contact}}</p>
<p>{{$plugins_text}}</p>
{{if $plugins_list}}
<div style="margin-left: 25px; margin-right: 25px;">{{$plugins_list}}</div>
{{/if}}
+<p>{{$donate}}</p>
diff --git a/view/tpl/sources_edit.tpl b/view/tpl/sources_edit.tpl
index 6e9cee32b..34023e03f 100644
--- a/view/tpl/sources_edit.tpl
+++ b/view/tpl/sources_edit.tpl
@@ -4,7 +4,7 @@
<form action="sources" method="post">
<input type="hidden" name="source" value="{{$id}}" />
-<input type="hidden" id="id_xchan" name="xchan" value="{{$xchan}}" />
+<input type="hidden" id="id_abook" name="abook" value="{{$abook}}" />
{{include file="field_input.tpl" field=$name}}
{{include file="field_textarea.tpl" field=$words}}
diff --git a/view/tpl/sources_new.tpl b/view/tpl/sources_new.tpl
index 267245ae4..3c6a4be30 100644
--- a/view/tpl/sources_new.tpl
+++ b/view/tpl/sources_new.tpl
@@ -3,7 +3,7 @@
<div class="descriptive-text">{{$desc}}</div>
<form action="sources" method="post">
-<input type="hidden" id="id_xchan" name="xchan" value="{{$xchan}}" />
+<input type="hidden" id="id_abook" name="abook" value="{{$abook}}" />
{{include file="field_input.tpl" field=$name}}
{{include file="field_textarea.tpl" field=$words}}
diff --git a/view/tpl/thing_edit.tpl b/view/tpl/thing_edit.tpl
new file mode 100644
index 000000000..b170f152c
--- /dev/null
+++ b/view/tpl/thing_edit.tpl
@@ -0,0 +1,33 @@
+<h2>{{$thing_hdr}}</h2>
+<form action="thing" method="post" >
+<input type="hidden" name="term_hash" value="{{$thing_hash}}" />
+
+{{if $multiprof }}
+<div class="thing-profile-label">{{$profile_lbl}}</div>
+
+<div class="thing-profile">{{$profile_select}}</div>
+<div class="thing-field-end"></div>
+{{/if}}
+
+<div class="thing-verb-label">{{$verb_lbl}}</div>
+
+<div class="thing-verb">{{$verb_select}}</div>
+<div class="thing-field-end"></div>
+
+
+<label class="thing-label" for="thing-term">{{$thing_lbl}}</label>
+<input type="text" class="thing-input" id="thing-term" name="term" value="{{$thething}}" />
+<div class="thing-field-end"></div>
+<label class="thing-label" for="thing-url">{{$url_lbl}}</label>
+<input type="text" class="thing-input" id="thing-url" name="url" value="{{$theurl}}" />
+<div class="thing-field-end"></div>
+<label class="thing-label" for="thing-img">{{$img_lbl}}</label>
+<input type="text" class="thing-input" id="thing-img" name="img" value="{{$imgurl}}" />
+<div class="thing-field-end"></div>
+
+{{include file="field_checkbox.tpl" field=$activity}}
+
+<div class="thing-end"></div>
+
+<input type="submit" class="thing-submit" name="submit" value="{{$submit}}" />
+</form>
diff --git a/view/tpl/thing_input.tpl b/view/tpl/thing_input.tpl
index 06cbfe917..e93a1aa65 100644
--- a/view/tpl/thing_input.tpl
+++ b/view/tpl/thing_input.tpl
@@ -5,11 +5,14 @@
<div class="thing-profile-label">{{$profile_lbl}}</div>
<div class="thing-profile">{{$profile_select}}</div>
+<div class="thing-field-end"></div>
{{/if}}
+
<div class="thing-verb-label">{{$verb_lbl}}</div>
<div class="thing-verb">{{$verb_select}}</div>
+<div class="thing-field-end"></div>
<label class="thing-label" for="thing-term">{{$thing_lbl}}</label>
@@ -22,6 +25,8 @@
<input type="text" class="thing-input" id="thing-img" name="img" />
<div class="thing-field-end"></div>
+{{include file="field_checkbox.tpl" field=$activity}}
+
<div class="thing-end"></div>
<input type="submit" class="thing-submit" name="submit" value="{{$submit}}" />
diff --git a/view/tpl/usermenu.tpl b/view/tpl/usermenu.tpl
index 3904f4696..80e160fdf 100644
--- a/view/tpl/usermenu.tpl
+++ b/view/tpl/usermenu.tpl
@@ -2,6 +2,9 @@
{{if $menu.menu_desc}}
<h3 class="pmenu-title">{{$menu.menu_desc}}</h3>
{{/if}}
+{{if $edit}}
+<a href="mitem/{{$menu.menu_id}}" title="{{$edit}}"><i class="icon-pencil fakelink" title="{{$edit}}"></i></a>
+{{/if}}
{{if $items }}
<ul class="pmenu-body">
{{foreach $items as $mitem }}
diff --git a/view/tpl/webpagelist.tpl b/view/tpl/webpagelist.tpl
index 437e93348..c19836a28 100644
--- a/view/tpl/webpagelist.tpl
+++ b/view/tpl/webpagelist.tpl
@@ -1,5 +1,3 @@
-{{include file="prettyphoto.tpl"}}
-
{{if $pages}}
<div id="pagelist-content-wrapper" class="generic-content-wrapper">
@@ -8,7 +6,7 @@
<div class="page-list-item">
{{if $edit}}<a href="{{$baseurl}}/{{$item.url}}" title="{{$edit}}"><i class="icon-pencil design-icons design-edit-icon"></i></a> {{/if}}
{{if $view}}<a href="page/{{$channel}}/{{$item.title}}" title="{{$view}}"><i class="icon-external-link design-icons design-view-icon"></i></a> {{/if}}
- {{if $preview}}<a href="page/{{$channel}}/{{$item.title}}?iframe=true&width=80%&height=80%" rel="xprettyPhoto[iframesx]" title="{{$preview}}"><i class="icon-eye-open design-icons design-preview-icon"></i></a> {{/if}}
+ {{if $preview}}<a href="page/{{$channel}}/{{$item.title}}?iframe=true&width=80%&height=80%" title="{{$preview}}" class="webpage-preview" ><i class="icon-eye-open design-icons design-preview-icon"></i></a> {{/if}}
{{$item.title}}
</div>
{{/foreach}}